OS/2 の場合のみ、 LOG_MESSAGE 動詞はエラー ログ ファイルにメッセージを記録し、必要に応じてユーザー画面にメッセージを表示します。 この動詞は、既存のアプリケーションとの互換性のために含まれています。
次の構造体では、 LOG_MESSAGE 動詞で使用される動詞制御ブロック (VCB) について説明します。
構文
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;
};
メンバー
オペコード
指定されたパラメーター。 操作コードを識別する動詞SV_LOG_MESSAGE。
opext
予約済みフィールド。
reserv2
予約済みフィールド。
primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定される主なリターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。
secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。
msg_num
指定されたパラメーター。
msg_file_nameで指定されたメッセージ ファイル内のメッセージの数を指定します。
origntr_id
指定されたパラメーター。
LOG_MESSAGEを発行するコンポーネントの名前、またはユーザー指定の 8 バイトの文字列を指定します。
msg_file_name
指定されたパラメーター。 ログに記録するメッセージを含むファイルの名前を指定します。
msg_act
指定されたパラメーター。 メッセージを処理するときに実行するアクションを指定します。
SV_INTRVを使用して、重大度レベル 12 の介入をログに記録し、ユーザー画面にメッセージを表示します。 ユーザーが画面からメッセージを削除するには、キーを押す必要があります。
SV_NO_INTRVを使用して、重大度レベルが 12 の介入をログに記録しますが、メッセージは表示しません。
msg_ins_len
指定されたパラメーター。 メッセージに挿入するデータの長さを指定します。 データを挿入しない場合は、このパラメーターを 0 に設定します。
msg_ins_ptr
指定されたパラメーター。 メッセージに挿入するデータのアドレスを指定します。
このパラメーターは 、msg_ins_len が 0 より大きい場合にのみ使用します。
リターン コード
SV_OK
プライマリ リターン コード。動詞が正常に実行されました。
SV_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞が実行されませんでした。
SV_INVALID_DATA_SEGMENT
セカンダリ リターン コード。セグメント境界を超えて拡張されたメッセージに挿入されるデータ。
SV_INVALID_MESSAGE_ACTION
セカンダリ リターン コード。 msg_act パラメーターに無効な値が含まれていました。
SV_COMM_SUBSYSTEM_NOT_LOADED
プライマリ リターン コード。動詞の処理中に必要なコンポーネントを読み込んだり終了したりできませんでした。 したがって、通信は行われませんでした。 修正措置については、システム管理者に問い合わせてください。
SV_INVALID_VERB
プライマリ リターン コード。 opcode パラメーターが動詞の操作コードと一致しませんでした。 動詞は実行されません。
SV_INVALID_VERB_SEGMENT
プライマリ リターン コード。データ セグメントの末尾を超えて拡張された VCB。
SV_UNEXPECTED_DOS_ERROR
プライマリ リターン コード。次のいずれかの条件が発生しました。
動詞の処理中に、Microsoft Windows システムでエラーが発生しました。 オペレーティング システムのリターン コードは、セカンダリ リターン コードを通じて返されました。 問題が解決しない場合は、修正措置についてシステム管理者に問い合わせてください。
CSV は、より一般的な Windows PostMessage 関数呼び出しではなく、Windows SendMessage 関数呼び出しを発行する別のアプリケーションによって呼び出されたメッセージ ループから発行されました。 動詞の処理は実行できません。
SendMessage がアプリケーションを呼び出したときに CSV が発行されました。 アプリケーションが SendMessage で呼び出されたかどうかを確認するには、 InSendMessage Windows API 関数呼び出しを使用します。
注釈
msg_file_nameの値は 3 文字にする必要があります。 必要に応じてスペースで埋め込みます。 ザ。MSG 拡張子が自動的に追加されます。
ヘッダー情報 (40 バイト)、メッセージ テキスト、挿入されたデータなど、 msg_ins_lenの合計長は 256 バイトを超えないようにしてください。 長さが 256 バイトを超える場合、通信システムはヘッダー情報と挿入されたテキストのみをログに記録しようとします。メッセージ テキストは除外されます。
ログ メッセージ ファイルを作成するときに、メッセージ内の追加データを挿入する場所を指定できます。 詳細については、以下を参照してください。
msg_ins_ptrのデータは、最大 9 つの null で終わる一連の文字列で構成されます。 (IBM OS/2 ES バージョン 1.0 では 3 つのデータ文字列のみがサポートされているため、互換性を確保するために、挿入されたテキストを 3 つの文字列に制限することができます)。
メッセージ ファイルの作成
独自のメッセージ・ファイルを作成する場合は、ユーティリティー MKMSGF を使用する必要があります。
メッセージ番号の最初の 3 文字は、ログ メッセージ ファイルの 3 文字の名前と一致する必要があります。 これら 3 つの文字は、ファイルの先頭でも宣言されます。
システムは、次のようにメッセージ ファイルを検索します。
独自のメッセージ・ファイルを使用する場合、システムはファイルがプログラム実行可能ファイルと同じディレクトリーにあると想定します。
既定のメッセージ ファイル COM を使用する場合。MSG を実行すると、Microsoft Host Integration Server の SnaBase が読み込まれた場合、システムはファイルを自動的に検索します。
前述のソフトウェアを読み込まずに既定のメッセージ ファイルを使用する場合、システムは DPATH がメッセージ ファイルへのパスを示す必要があります。 これは Windows バージョン 3 にのみ適用されます。x および OS/2 オペレーティング システム。