Share via


LOG_MESSAGE

僅限 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;  
};  

成員

opcode
提供的參數。 識別作業程式碼的動詞命令,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
提供的參數。 指定要插入訊息的資料長度。 如果未插入任何資料,請將此參數設定為零。

msg_ins_ptr
提供的參數。 指定要插入訊息的資料位址。

只有在 msg_ins_len 大於零時,才使用此參數。

傳回碼

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 SendMessage 函式呼叫的另一個應用程式叫用的訊息迴圈發出,而不是較常見的 Windows PostMessage 函式呼叫。 無法進行動詞處理。

  • 當 SendMessage叫用您的應用程式時,就會發出 CSV。 您可以使用InSendMessage Windows API 函式呼叫,判斷您的應用程式是否已使用SendMessage叫用。

備註

msg_file_name的值必須是三個字元長。 視需要填補空格。 。系統會自動新增 MSG 擴充功能。

msg_ins_len的總長度,包括標頭資訊 (40 個位元組) 、郵件內文和插入的資料,不應超過 256 個位元組。 如果長度大於 256 個位元組,則通訊系統會嘗試只記錄標頭資訊和插入的文字;郵件內文將會留下。

當您建立記錄訊息檔時,您可以在訊息中指定要插入其他資料的所在位置。 以下提供進一步的資訊。

msg_ins_ptr的資料包含一系列最多九個以 Null 結尾的字串。 (因為 IBM OS/2 ES 1.0 版僅支援三個數據字串,因此您可能會想要將插入的文字限制為三個字串,以確保 compatibility.)

建立訊息檔案

如果您想要建立自己的訊息檔案,您必須使用公用程式 MKMSGF。

訊息編號的前三個字元必須符合記錄訊息檔案的三個字元名稱。 這三個字元也會在檔案頂端宣告。

系統會尋找訊息檔案,如下所示:

  • 如果您使用自己的訊息檔,系統會假設檔案位於與程式可執行檔相同的目錄中。

  • 如果您使用預設訊息檔案,COM。MSG,系統會自動尋找檔案,前提是載入 Microsoft Host Integration Server 的 SnaBase。

  • 如果您使用預設訊息檔而不載入先前提及的軟體,則系統會預期 DPATH 指出訊息檔案的路徑。 這只適用于 Windows 版本 3。x 和 OS/2 作業系統。