Freigeben über


LOG_MESSAGE

Nur für OS/2 zeichnet das LOG_MESSAGE-Verb eine Nachricht in der Fehlerprotokolldatei auf und zeigt die Meldung optional auf dem Benutzerbildschirm an. Dieses Verb wird bereitgestellt, um die Kompatibilität mit vorhandenen Anwendungen zu gewährleisten.

In der folgenden Struktur wird der von LOG_MESSAGE verwendete Verbkontrollblock (Verb Control Block, VCB) beschrieben.

Syntax

  
struct log_message {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned short       msg_num;  
    unsigned char        origntr_id[8];  
    unsigned char        msg_file_name[3];  
    unsigned char        msg_act;  
    unsigned short       msg_ins_len;  
    unsigned char FAR *  msg_ins_ptr;  
};  

Member

opcode
Angegebener Parameter. Das Verb, das den Vorgangscode identifiziert, SV_LOG_MESSAGE.

opext
Ein reserviertes Feld.

reserv2
Ein reserviertes Feld.

primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

secondary_rc
Zurückgegebener Parameter. Gibt den sekundären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

msg_num
Angegebener Parameter. Gibt die Nummer der Nachricht in der Meldungsdatei an, die über msg_file_name angegeben wird.

origntr_id
Angegebener Parameter. Gibt den Namen der Komponente an, die LOG_MESSAGE oder eine vom Benutzer bereitgestellte 8-Byte-Zeichenfolge angibt.

msg_file_name
Angegebener Parameter. Gibt den Namen der Datei an, die die zu protokollierende Nachricht enthält.

msg_act
Angegebener Parameter. Gibt die Aktion an, die ausgeführt werden soll, wenn die Nachricht verarbeitet wird:

  • Verwenden SV_INTRV, um den Eingriff mit dem Schweregrad 12 zu protokollieren und die Nachricht auf dem Benutzerbildschirm anzuzeigen. Der Benutzer muss eine Taste drücken, um die Nachricht vom Bildschirm zu entfernen.

  • Verwenden SV_NO_INTRV, um den Eingriff mit dem Schweregrad 12 zu protokollieren, ohne die Nachricht anzuzeigen.

msg_ins_len
Angegebener Parameter. Gibt die Länge der Daten an, die in die Nachricht eingefügt werden sollen. Legen Sie diesen Parameter auf 0 fest, wenn keine Daten eingefügt werden sollen.

msg_ins_ptr
Angegebener Parameter. Gibt die Adresse der Daten an, die in die Nachricht eingefügt werden sollen.

Verwenden Sie diesen Parameter nur, wenn msg_ins_len größer ist als 0.

Rückgabecodes

SV_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.

SV_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.

SV_INVALID_DATA_SEGMENT
Sekundärer Rückgabecode; die in die Nachricht einzufügenden Daten wurden über die Segmentgrenze hinaus erweitert.

SV_INVALID_MESSAGE_ACTION
Sekundärer Rückgabecode; der dt_setmsg_act-Parameter enthielt einen ungültigen Wert.

SV_COMM_SUBSYSTEM_NOT_LOADED
Primärer Rückgabecode; eine erforderliche Komponente konnte während der Verarbeitung des Verbs nicht geladen oder beendet werden. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

SV_INVALID_VERB
Primärer Rückgabecode; der opcode-Parameter stimmte nicht mit dem Vorgangscode eines Verbs überein. Kein Verb ausgeführt.

SV_INVALID_VERB_SEGMENT
Primärer Rückgabecode; der VCB wurde über das Ende des Datensegments hinaus erweitert.

SV_UNEXPECTED_DOS_ERROR
Primärer Rückgabecode; eine der folgenden Bedingungen ist aufgetreten:

  • Das Microsoft Windows-System hat beim Verarbeiten des Verbs einen Fehler festgestellt. Der Rückgabecode des Betriebssystems wurde über den sekundären Rückgabecode zurückgegeben. Wenn das Problem weiterhin besteht, wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

  • Eine CSV-Datei wurde von einer Nachrichtenschleife ausgegeben, die von einer anderen Anwendung aufgerufen wurde, welche einen Windows-SendMessage-Funktionsaufruf statt des häufigeren Windows-PostMessage-Funktionsaufrufs ausgegeben hat. Die Verbverarbeitung kann nicht durchgeführt werden.

  • Eine CSV-Datei wurde ausgegeben, als Ihre Anwendung von SendMessage aufgerufen wurde. Sie können ermitteln, ob der Aufruf Ihrer Anwendung mit SendMessage durch Verwendung des Windows-API-Funktionsaufrufs InSendMessage erfolgt ist.

Hinweise

Der Wert für msg_file_name muss drei Zeichen lang sein. Füllen Sie bei Bedarf mit Leerzeichen auf. Die MSG-Erweiterung wird automatisch hinzugefügt.

Die Gesamtlänge von msg_ins_len – einschließlich Headerinformationen (40 Byte), Nachrichtentext und eingefügten Daten – darf 256 Byte nicht überschreiten. Wenn die Länge 256 Byte überschreitet, versucht das Kommunikationssystem, nur die Headerinformationen und den eingefügten Text zu protokollieren. Der Nachrichtentext wird ausgelassen.

Wenn Sie die Protokollnachrichtendatei erstellen, können Sie angeben, wo in der Nachricht die zusätzlichen Daten eingefügt werden sollen. Weitere Informationen finden Sie weiter unten.

Die Daten für msg_ins_ptr bestehen aus einer Reihe von bis zu neun auf NULL endende Zeichenfolgen. (Da IBM OS/2 ES Version 1.0 nur drei Datenzeichenfolgen unterstützt, sollten Sie zur Gewährleistung von Kompatibilität den eingefügten Text auf drei Zeichenfolgen beschränken.)

Erstellen einer Nachrichtendatei

Wenn Sie eine eigene Nachrichtendatei erstellen möchten, müssen Sie das Hilfsprogramm MKMSGF verwenden.

Die ersten drei Zeichen der Nachrichtennummer müssen mit dem aus drei Zeichen bestehenden Namen der Protokollnachrichtendatei übereinstimmen. Diese drei Zeichen werden auch am Anfang der Datei deklariert.

Das System sucht die Nachrichtendatei wie folgt:

  • Wenn Sie Ihre eigene Nachrichtendatei verwenden, geht das System davon aus, dass sich die Datei im selben Verzeichnis befindet wie die ausführbare Datei Ihrer Programme.

  • Wenn Sie die Standardnachrichtendatei (COM.MSG) verwenden, sucht das System die Datei automatisch, sofern die SnaBase für Microsoft Host Integration Server geladen ist.

  • Wenn Sie die Standardnachrichtendatei verwenden, ohne die zuvor erwähnte Software zu laden, erwartet das System, dass DPATH den Pfad zur Nachrichtendatei angibt. Dies gilt nur für Windows-Version 3.x und OS/2-Betriebssysteme.