EsbGetMessage

ESB_INIT_T構造体のClientErrorがEsbInit()を実行した際にESB_TRUEに設定されている場合、VB API関数の実行中に積み上げられたメッセージ・スタックから一番上のメッセージを取得します。

構文

            EsbGetMessage
             (
            hInst, ErrLevel, ErrNum, ErrMessage, szErrMessage
            )
ByVal 
            hInst
                    As Long
      
            ErrLevel
                 As Integer
      
            ErrNum
                   As Long
ByVal 
            ErrMessage
               As String
ByVal 
            szErrMessage
             As Integer
         
パラメータ説明

hInst

VB APIインスタンス・ハンドル。

ErrLevel

メッセージ・レベルを受け取る変数へのポインタ。

ErrNum

メッセージ・データベース内のメッセージ番号を受け取る変数へのポインタ。

ErrMessage

メッセージ文字列を受け取るバッファ。

szErrMessage

メッセージ文字列を受け取るバッファのサイズ。

備考

戻り値

正常終了の場合は、メッセージ・レベルへのポインタ、メッセージ番号へのポインタおよびメッセージ文字列が戻されます。内部メッセージ・スタック・ポインタも減分されます。

アクセス

この関数を使用するのに、特別な権限は必要ありません。

         Declare Function EsbGetMessage Lib "ESBAPIN" (ByVal hInst As Long, ErrLevel As Integer, ErrNum As Long, ByVal Message As String, ByVal szMessage As Integer) As Long

Sub ESB_GetMessage ()
   Dim Items As Integer
   Dim AppName As String
   Dim DbName As String 
   Dim FilterName As String
   Const szMessage = 256
   Dim Message As String * szMessage
   Dim Number As Long
   Dim Level As Integer 
   Dim sts As Long   AppName = "Demo"
   DbName = "Basic"
   FilterName = "Filter"   '****************
   ' Get Filter List
   '**************** 
   sts = EsbGetFilterList (hCtx, AppName, DbName,
    FilterName, Items)   '*******************************
   ' Process all messages if error 
   ' occurred till the bottom of the
   ' message stack enItemsered
   '*******************************
   If sts > 0 Then
      sts = EsbGetMessage (hInst, Level, Number,
            Message, szMessage) 
      Do While Mid$(Message, 1, 1) <> Chr$(0)
         Print Level
         Print Number
         Print Message 
         sts = EsbGetMessage (hInst, Level,
               Number, Message, szMessage)
     Loop 
   End If
End Sub
      

関連トピック