IWiaEventCallback
COM公式ドキュメント
IWiaEventCallback インターフェイスは、アプリケーションが Windows Image Acquisition (WIA) ハードウェアデバイスイベントの通知を受け取るために使用します。
解説(Remarks)
IWiaEventCallback インターフェイスは、すべての Component Object Model (COM) インターフェイスと同様に、IUnknown インターフェイスのメソッドを継承します。
| IUnknown のメソッド | 説明 |
|---|---|
| IUnknown::QueryInterface | サポートされているインターフェイスへのポインターを返します。 |
| IUnknown::AddRef | 参照カウントを増加させます。 |
| IUnknown::Release | 参照カウントを減少させます。 |
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IWiaEventCallback::ImageEventCallback メソッドは、ハードウェアデバイスイベントが発生したときに Windows Image Acquisition (WIA) ランタイムシステムによって呼び出されます。
| pEventGUID | GUID* | in | イベントの一意な識別子を指定します。デバイスイベントの完全な一覧については、WIA Event Identifiers を参照してください。 |
| bstrEventDescription | LPWSTR | in | イベントの文字列による説明を指定します。 |
| bstrDeviceID | LPWSTR | in | WIA デバイスの一意な識別子を指定します。 |
| bstrDeviceDescription | LPWSTR | in | デバイスの文字列による説明を指定します。 |
| dwDeviceType | DWORD | in | デバイスの種類を指定します。指定可能な値の一覧については、WIA Device Type Specifiers を参照してください。 |
| bstrFullItemName | LPWSTR | in | デバイスを表す WIA アイテムの完全な名前を指定します。 |
| pulEventType | DWORD* | inout | イベントが通知イベントか、アクションイベントか、あるいはその両方かを示す ULONG へのポインターです。値 1 は通知イベント、値 2 はアクションイベント、値 3 は通知イベントとアクションイベントの両方の種類であることを示します。 |
| ulReserved | DWORD | in | ユーザー情報用に予約されています。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
WIA ハードウェアデバイスイベントの通知を受け取るには、アプリケーションは IWiaEventCallback インターフェイスへのポインターを RegisterEventCallbackInterface メソッドに渡します。WIA ランタイムシステムは、WIA ハードウェアデバイスイベントが発生するたびに、そのインターフェイスポインターを使用して IWiaEventCallback::ImageEventCallback メソッドを呼び出します。
コールバックが IWiaEventCallback インターフェイスを登録したスレッドと同じスレッドで呼び出される保証はない点に注意してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWiaEventCallback "{AE6287B0-0084-11D2-973B-00A0C9068F2E}" #usecom global IWiaEventCallback IID_IWiaEventCallback "{}" #comfunc global IWiaEventCallback_ImageEventCallback 3 var,wstr,wstr,wstr,int,wstr,var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IWiaEventCallback "{AE6287B0-0084-11D2-973B-00A0C9068F2E}" #usecom global IWiaEventCallback IID_IWiaEventCallback "{}" #comfunc global IWiaEventCallback_ImageEventCallback 3 sptr,wstr,wstr,wstr,int,wstr,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。