Die PageControl DLL-Bibliothek

Die DLL-Bibliothek stellt die Funktionen IsDemo und DoPageControlCommand zur Verfügung.
Für die Verwendung der DLL (auch aus VisualBasic heraus) ist eine Lizenz der C-Bibliothek notwendig.

Für die Verwendung aus VisualBasic steht ein fertiges Modul mit den Deklarationen der Funktionen zur Verfügung.

Die DLL sowie ein Beispiel in C/C++ und VisualBasic können sie hier laden.

IsDemo

C

extern long IsDemo();

VisualBasic

Public Declare Function IsDemo Lib "PageLib" Alias "_IsDemo@0" () As Long

Prüft, ob die Schnittstelle und PageControl lizenziert sind.

Parameter

Die Funktion hat keine Parameter.

Ergebnis

0 Schnittstelle und PageControl sind lizensiert
-1 Die Schnittstelle oder PageControl arbeiten im Demomodus.
Die Schnittstelle liefert nach einer Stunde nur noch "* DEMO *" als Ergebnis und führt keine weiteren Befehle aus.
PageControl beendet sich nach einer Stunde.

 

DoPageControlCommand

C

extern long DoPageControlCommand(char* Command, char* Result, unsigned long MaxLength);

VisualBasic Public Declare Function DoPageControlCommand Lib "PageLib" Alias "_DoPageControlCommand@12"
(ByVal Command As String, ByVal Result As String, ByVal MaxLength As Long) As Long

Führt ein PageControl Kommando aus. Eine Liste der verfügbaren Kommandos finden Sie in der Beschreibung der DDE Schnittstelle.

Parameter

Command char* Das auszuführende PageControl Kommando
Result char* Puffer, in dem das Ergebnis des Kommandos zurückgegeben wird
MaxLength unsigned long Maximale Länge des Rückgabepuffers

Ergebnis

Tatsächliche Länge des Ergebnisses. Dieser Wert kann größer sein als der Wert des Parameters MaxLength. Das Ergebnis in Result ist in diesem Fall auf MaxLength Zeichen gekürzt.

 

 

 Die PageControl C-Bibliothek

Die C-Bibliothek stellt einige Funktionen zur Verfügung, mit deren Hilfe die DDE-Anbindung an PageControl in jedes C bzw. C++ Programm für Windows integriert werden kann. Zum Einsatz der Funktionsbibliothek werden keine Kenntnisse bezüglich der DDE-Funktionalität von MS-Windows vorausgesetzt.

Funktionen  
CcDdeInit initialisiert die DDE-Verbindung zu PageControl
CcDdeExit beendet die DDE-Verbindung zu PageControl
CcDdeGetSetupReceivers Empfängerliste abfragen
CcDdeGetSetupGroups Liste der Gruppen abfragen
CcDdeSend Meldung senden
CcDdeAbort Ruf abbrechen
CcDdeDelete Logbucheintrag löschen
CcDdeExitProgram PageControl beenden
CcDdeGetState momentaner Status abfragen
CcDdeGetStateText momentaner Status im Textformat abfragen
CcDdeGetDeviceState Device-Status abfragen
CcDdeGetJobCount Anzahl der Sendeaufträge abfragen
CcDdeGetLogCount Anzahl der Logbucheinträge abfragen
CCDDE_* Fehlercodes Beschreibung der Ergebniscodes der Funktionen

 

Funktionen

CcDdeInit (1.20)

Diese Funktion initialisiert die DDE-Verbindung zu PageControl. Sie muß vor der Verwendung einer anderen Funktion der CCDDE-Bibliothek aufgerufen werden, z.B. direkt nach Programmstart.

BOOL CcDdeInit(HANDLE hInst)

Parameter

hInst HANDLE Instanzhandle der aufrufenden Applikation (siehe WinMain).

Ergebnis

TRUE, wenn die Initialisierung erfolgreich durchgeführt werden konnte, sonst FALSE.

Beispiel

int PASCAL WinMain(HINSTANCE hinstCurrent, HINSTANCE hinstPrevious,
LPSTR lpszCmdLine, int nCmdShow)
{
...
if(!CcDdeInit(hinstCurrent))
return FALSE;
...
}

 

CcDdeExit (1.20)

Diese Funktion beendet die DDE-Verbindung zu PageControl. Sie muß vor dem Verlassen der Anwendung aufgerufen werden. Nach diesem Aufruf dürfen außer DcDdeInit keine anderen Funktionen der CCDDE-Bibliothek mehr aufgerufen werden.

void CcDdeExit(void)

Die Funktion hat keine Parameter.

Die Funktion liefert kein Ergebnis.

Beispiel

case WM_DESTROY:
CcDdeExit();
break;
 

CcDdeGetSetupReceivers (1.20)

Abfrage der konfigurierten Einzelempfänger in PageControl.

const char far* CcDdeGetSetupReceivers(void)

Die Funktion hat keine Parameter.

Ergebnis

Zeiger auf einen konstanten String, der die in PageControl konfigurierten Einzelempfänger enthält. Der Aufbau der Empfängerliste entspricht der DDE-Dokumentation pageCtrl|Setup!Receivers.

Hinweis

Die Zeichenkette darf nicht verändert werden.

Beispiel

CString SetupReceivers = CcDdeGetSetupReceivers();

 

CcDdeGetSetupGroups (1.20)

Abfrage der konfigurierten Empfängergruppen in PageControl.

const char far* CcDdeGetSetupGroups(void)

Die Funktion hat keine Parameter.

Ergebnis

Zeiger auf einen konstanten String, der die in PageControl konfigurierten Empfängergruppen enthält. Der Aufbau der Gruppenliste entspricht der DDE-Dokumentation pageCtrl|Setup!Groups.

Hinweis

Die Zeichenkette darf nicht verändert werden.

Beispiel

CString SetupGroups = CcDdeGetSetupGroups();

 

CcDdeSend (2.25)

Diese Funktion dient zur Rufauslösung über PageControl. Als Parameter werden der Empfänger bzw. die Gruppe wie in PageControl konfiguriert, die zu sendende Meldung und der gewünschte Sendezeitpunkt übergeben. Das Funktionsergebnis informiert den Aufrufer, ob der Auftrag an PageControl erfolgreich übergeben wurde.

int CcDdeSend(short nType,

const char far* lpcszReceiver,

const char far* lpcszMsgText,

const char far* lpcszMsgNumber,

const char far* lpcszMsgVoice,

const char far* lpcszMsgSound,

const char far* lpcszMsgArea,

const char far* lpcszTime)

Parameter

nType short Information, ob die Empfängerbezeichnung für eine Gruppe oder einen Einzelempfänger steht.
(0 - Einzelempfänger, 1 - Gruppe, -1 - automatische Auswahl)
lpcszReceiver const char far* Bezeichnung des Empfängers bzw. der Gruppe.
lpcszMsgText const char far* Textmeldung für alphanumerische Empfänger oder NULL, wenn diese Information nicht benötigt wird.
lpcszMsgNumber const char far* Numerische Meldung oder NULL, wenn diese Information nicht benötigt wird.
lpcszMsgVoice const char far* Bezeichnung einer Sprachmeldung wie in PageControl konfiguriert oder NULL, wenn diese Information nicht benötigt wird.
lpcszMsgSound const char far* Tonmeldung (‘A’, ‘B’, ‘C’, oder ‘D’) oder NULL, wenn diese Information nicht benötigt wird.
lpcszMsgArea const char far* Sendegebiet (nur Eurosignalempfänger, ‘N’ - Nord, ‘M’ - Mitte, ‘S’ - Süd, ‘A’ - Alle) oder NULL, wenn diese Information nicht benötigt wird.
lpcszTime const char far* Datum und Uhrzeit des gewünschten Sendezeitpunkts (Format: tt.mm.jjjj hh:mm) oder NULL, wenn eine sofortige Aussendung erwünscht ist.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Hinweis

Für nicht benötigte Meldungsteile kann statt dem Pointer auf einen String NULL übergeben werden. Die Funktion prüft, ob der angegebene Empfänger bzw. die Gruppe in PageControl konfiguriert ist und überprüft die Meldungstexte und die Sendezeit auf allgemeine Gültigkeit. Im Fehlerfall wird ein entsprechender Fehlercode zurückgeliefert.

Beispiel

if(CcDdeSend(FALSE, "Martin", "Störung in der Modemleitung","0721-680780-0",NULL, NULL, NULL, NULL) != CCDDE_Ok)
{
// Fehlerbehandlung
}
 

CcDdeAbort (2.03)

Diese Funktion löscht den ersten Eintrag in der PageControl-Sendeliste. Wenn dieser Ruf in diesem moment Aktiv ist, so wird der Ruf abgebrochen.

int CcDdeAbort(void)

Die Funktion hat keine Parameter.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Beispiel

case IDM_AbortJob:
if(CcDdeAbort() != CCDDE_Ok)
MessageBox("PageControl Abort Job failed !");
break;
 

CcDdeDelete (2.03)

Diese Funktion löscht den letzten Eintrag im PageControl-Logbuch.

int CcDdeDelete(void)

Die Funktion hat keine Parameter.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Beispiel

case IDM_DeleteLog:
if(CcDdeDelete() != CCDDE_Ok)
MessageBox("PageControl Delete Log failed !");
break;
 

CcDdeExitProgram (2.03)

Diese Funktion beendet PageControl. Es sind dann keine weiteren Kommandos möglich.

int CcDdeExitProgram(void)

Die Funktion hat keine Parameter.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Beispiel

case WM_CLOSE:
CcDdeExitProgram(); // terminate PageControl also
break;
 

CcDdeGetState (2.03)

Liefert den aktuellen PageControl-Status als numerischen Wert.

int CcDdeGetState(long far* lplState)

Parameter

lplState long far* Zeiger auf die Ergebnisvariable, die den aktuellen Status aufnehmen soll.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Wenn das Ergebnis CCDDE_Ok ist, enthält *lplState den aktuellen PageControl-Status. Die Bedeutung der Statuswerte ist mit den Konstanten JS_* definiert.

Beispiel

long State;
if(CcDdeGetState(&State) == CCDDE_Ok)
printf("PageControl State: %ld\n", State);

 

CcDdeGetStateText (2.03)

Liefert den aktuellen PageControl-Status als Text.

const char far* CcDdeGetStateText()

Die Funktion hat keine Parameter.

Ergebnis

Zeiger auf den Text, der den aktuellen PageControl-Status beschreibt, oder NULL, wenn ein Fehler aufgetreten ist.

Beispiel

char far* StateText;
StateText = CcDdeGetStateText();
if(StateText)
printf("PageControl StateText: %s\n", StateText);
 

CcDdeGetDeviceState (2.04)

Diese Funktion liefert den aktuellen Status der PageControl-Devices und Schnittstellen.

int CcDdeGetDeviceState(long far* lplDeviceState)

Parameter

lplDeviceState long far* Zeiger auf die Ergebnisvariable, die den aktuellen Status aufnehmen soll.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Wenn das Ergebnis CCDDE_Ok ist, enthält *lplDeviceState den aktuellen PageControl Devicestatus. Die Bedeutung der Statuswerte ist mit den Konstanten DS_* definiert.

Beispiel

long DeviceState;
if(CcDdeGetDeviceState(&DeviceState) == CCDDE_Ok)
printf("PageControl DeviceState: %ld\n", DeviceState);
 

CcDdeGetJobCount (2.03)

Liefert die Anzahl der Aufträge in der PageControl-Sendeliste.

int CcDdeGetJobCount(long far* lplCount)

Parameter

lplCount long far* Zeiger auf die Ergebnisvariable, die die aktuelle Anzahl aufnehmen soll.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Wenn das Ergebnis CCDDE_Ok ist, enthält *lplCount die Anzahl der Aufträge in der PageControl-Sendeliste.

Beispiel

long Count;
if(CcDdeGetJobCount(&Count) == CCDDE_Ok)
printf("Sendeaufträge: %ld\n", Count);

 

CcDdeGetLogCount (2.03)

Liefert die Anzahl der Aufträge im PageControl-Logbuch.

int CcDdeGetLogCount(long far* lplCount)

Parameter

lplCount long far* Zeiger auf die Ergebnisvariable, die die aktuelle Anzahl aufnehmen soll.

Ergebnis

CCDDE_* - Fehlercode (siehe unten).

Wenn das Ergebnis CCDDE_Ok ist, enthält *lplCount die Anzahl der Aufträge im PageControl-Logbuch.

Beispiel

long Count;
if(CcDdeGetLogCount(&Count) == CCDDE_Ok)
printf("Logbuch mit %ld Einträgen\n", Count);

 

CCDDE_* Fehlercodes (2.10)

Allgemein    
CCDDE_Ok 0 Aufruf fehlerfrei
Prüfung des Sendeauftrags    
CCDDE_ReceiverNotConfigured 10 Empfänger bzw. Gruppe in PageControl nicht konfiguriert
CCDDE_InvalidTextMessage 11 Textmeldung zu lang bzw. enthält unzulässige Zeichen
CCDDE_InvalidNumericMessage 12 Numerische Meldung zu lang bzw. enthält unzulässige Zeichen
CCDDE_InvalidVoiceMessage 13 Sprachmeldung in PageControl nicht konfiguriert
CCDDE_InvalidSoundMessage 14 Ungültige Tonmeldung (nicht A, B, C oder D)
CCDDE_InvalidSendArea 15 Ungültiger Sendebereich (nicht N, M, S oder A)
CCDDE_InvalidSendTime 16 Ungültige Sendezeit (Format oder Werte stimmen nicht)
DDE-Fehler    
CCDDE_NotInitialized 20 CcDdeInit wurde nicht aufgerufen oder hatte das Ergebnis FALSE
CCDDE_ServerNotResponding 21 PageControl ist nicht gestartet
CCDDE_ExecuteError 22 Fehler bei der Kommandoübergabe an PageControl
CCDDE_ExecuteTimeout 23 PageControl hat nicht innerhalb von einer Sekunde quittiert
CCDDE_MessageNotAccepted 24 Sendeauftrag von PageControl abgewiesen (z.B. ungenügende Meldungsinformation)
CCDDE_JobListFull (2.25) 25 Die Sendeliste von PageControl kann keine weiteren Sendeaufträge aufnehmen