Win32 API 日本語リファレンス
ホームSystem.ComponentServices › IComQCEvents

IComQCEvents

COM
IID683130b2-2e50-11d2-98a5-00c04f8ee1c4継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

キューに格納されたメッセージが作成、デキュー、または再試行キューやデッドレターキューへ移動された場合に、サブスクライバーへ通知します。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT OnQCRecord(COMSVCSEVENTINFO* pInfo, ULONGLONG objid, LPWSTR szQueue, GUID* guidMsgId, GUID* guidWorkFlowId, HRESULT msmqhr)

キューコンポーネントのレコーダーがキュー内メッセージを作成したときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
objidULONGLONGinジャストインタイムでアクティブ化されたオブジェクトです。
szQueueLPWSTRinキューの名前です。
guidMsgIdGUID*inキュー内メッセージの一意識別子です。
guidWorkFlowIdGUID*inこのパラメーターは予約済みです。
msmqhrHRESULTinキュー内メッセージに対する Message Queuing の戻りステータスです。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 4 HRESULT OnQCQueueOpen(COMSVCSEVENTINFO* pInfo, LPWSTR szQueue, ULONGLONG QueueID, HRESULT hr)

キューコンポーネントのキューが開かれたときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
szQueueLPWSTRinキューの名前です。
QueueIDULONGLONGinキューの一意識別子です。
hrHRESULTinMessage Queuing のキューオープンによるステータスです。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 5 HRESULT OnQCReceive(COMSVCSEVENTINFO* pInfo, ULONGLONG QueueID, GUID* guidMsgId, GUID* guidWorkFlowId, HRESULT hr)

キューコンポーネントサービスが内容に問題を検出する可能性はあるものの、メッセージが正常にデキューされたときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
QueueIDULONGLONGinキューの一意識別子です。
guidMsgIdGUID*inキュー内メッセージの一意識別子です。
guidWorkFlowIdGUID*inこのパラメーターは予約済みです。
hrHRESULTin受信メッセージに対するキューコンポーネント処理のステータスです。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 6 HRESULT OnQCReceiveFail(COMSVCSEVENTINFO* pInfo, ULONGLONG QueueID, HRESULT msmqhr)

メッセージの受信が失敗したときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
QueueIDULONGLONGinキューの一意識別子です。
msmqhrHRESULTin受信メッセージに対するキューコンポーネント処理のステータスです。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 7 HRESULT OnQCMoveToReTryQueue(COMSVCSEVENTINFO* pInfo, GUID* guidMsgId, GUID* guidWorkFlowId, DWORD RetryIndex)

メッセージがキューコンポーネントの再試行キューへ移動されたときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
guidMsgIdGUID*inメッセージの一意識別子です。
guidWorkFlowIdGUID*inこのパラメーターは予約済みです。
RetryIndexDWORDinメッセージの移動先となった再試行キューのインデックス番号です。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 8 HRESULT OnQCMoveToDeadQueue(COMSVCSEVENTINFO* pInfo, GUID* guidMsgId, GUID* guidWorkFlowId)

メッセージが配信できず、デッドレターキューへ移動されたときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
guidMsgIdGUID*inメッセージの一意識別子です。
guidWorkFlowIdGUID*inこのパラメーターは予約済みです。

戻り値

このメソッドの戻り値はユーザーが検証します。

vtbl 9 HRESULT OnQCPlayback(COMSVCSEVENTINFO* pInfo, ULONGLONG objid, GUID* guidMsgId, GUID* guidWorkFlowId, HRESULT hr)

メッセージの内容が再生されたときに生成されます。

pInfoCOMSVCSEVENTINFO*inCOMSVCSEVENTINFO 構造体へのポインターです。
objidULONGLONGinジャストインタイムでアクティブ化されたオブジェクトです。
guidMsgIdGUID*inキューの一意識別子です。
guidWorkFlowIdGUID*inこのパラメーターは予約済みです。
hrHRESULTinMessage Queuing の受信メッセージによるステータスです。

戻り値

このメソッドの戻り値はユーザーが検証します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IComQCEvents "{683130B2-2E50-11D2-98A5-00C04F8EE1C4}"
#usecom global IComQCEvents IID_IComQCEvents "{}"
#comfunc global IComQCEvents_OnQCRecord            3 var,int64,wstr,var,var,int
#comfunc global IComQCEvents_OnQCQueueOpen         4 var,wstr,int64,int
#comfunc global IComQCEvents_OnQCReceive           5 var,int64,var,var,int
#comfunc global IComQCEvents_OnQCReceiveFail       6 var,int64,int
#comfunc global IComQCEvents_OnQCMoveToReTryQueue  7 var,var,var,int
#comfunc global IComQCEvents_OnQCMoveToDeadQueue   8 var,var,var
#comfunc global IComQCEvents_OnQCPlayback          9 var,int64,var,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。