ホーム › Devices.ImageAcquisition › IWiaDevMgr
IWiaDevMgr
COMメソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT EnumDeviceInfo(INT lFlag, IEnumWIA_DEV_INFO** ppIEnum)
| lFlag | INT | in | 列挙する情報量を示すフラグ。WIA_DEVINFO_ENUM_LOCAL等を指定する。 |
| ppIEnum | IEnumWIA_DEV_INFO** | out | デバイス情報列挙子IEnumWIA_DEV_INFOを受け取る出力ポインタ。 |
| bstrDeviceID | LPWSTR | in | 接続対象デバイスのIDを示すBSTR文字列。 |
| ppWiaItemRoot | IWiaItem** | out | 生成されたデバイスのルートアイテムIWiaItemを受け取る出力ポインタ。 |
vtbl 5 HRESULT SelectDeviceDlg(HWND hwndParent, INT lDeviceType, INT lFlags, LPWSTR* pbstrDeviceID, IWiaItem** ppItemRoot)
| hwndParent | HWND | in | デバイス選択ダイアログの親ウィンドウハンドル。 |
| lDeviceType | INT | in | 選択対象のデバイス種別。StiDeviceTypeScanner等を指定する。 |
| lFlags | INT | in | ダイアログ動作フラグ。WIA_DEVICE_DIALOG_*値を指定する。 |
| pbstrDeviceID | LPWSTR* | inout | 選択されたデバイスIDを受け取るBSTRへのポインタ。 |
| ppItemRoot | IWiaItem** | out | 選択デバイスのルートアイテムIWiaItemを受け取る出力ポインタ。 |
vtbl 6 HRESULT SelectDeviceDlgID(HWND hwndParent, INT lDeviceType, INT lFlags, LPWSTR* pbstrDeviceID)
| hwndParent | HWND | in | デバイス選択ダイアログの親ウィンドウハンドル。 |
| lDeviceType | INT | in | 選択対象のデバイス種別。StiDeviceTypeScanner等を指定する。 |
| lFlags | INT | in | ダイアログ動作フラグ。WIA_DEVICE_DIALOG_*値を指定する。 |
| pbstrDeviceID | LPWSTR* | inout | 選択されたデバイスIDのみを受け取るBSTRへのポインタ。 |
vtbl 7 HRESULT GetImageDlg(HWND hwndParent, INT lDeviceType, INT lFlags, INT lIntent, IWiaItem* pItemRoot, LPWSTR bstrFilename, GUID* pguidFormat)
| hwndParent | HWND | in | 画像取得ダイアログの親ウィンドウハンドル。 |
| lDeviceType | INT | in | 対象デバイス種別。StiDeviceTypeScanner等を指定する。 |
| lFlags | INT | in | ダイアログ動作フラグ。WIA_DEVICE_DIALOG_*値を指定する。 |
| lIntent | INT | in | 取得目的を示すインテントフラグ。WIA_INTENT_IMAGE_TYPE_COLOR等。 |
| pItemRoot | IWiaItem* | in | 取得元デバイスのルートアイテムIWiaItem。NULL可。 |
| bstrFilename | LPWSTR | in | 保存先ファイルパスを示すBSTR文字列。 |
| pguidFormat | GUID* | inout | 入出力。希望/実際の画像形式GUIDを受け渡すポインタ。 |
vtbl 8 HRESULT RegisterEventCallbackProgram(INT lFlags, LPWSTR bstrDeviceID, GUID* pEventGUID, LPWSTR bstrCommandline, LPWSTR bstrName, LPWSTR bstrDescription, LPWSTR bstrIcon)
| lFlags | INT | in | 登録/解除を示すフラグ。WIA_REGISTER_EVENT_CALLBACK/WIA_UNREGISTER_EVENT_CALLBACK。 |
| bstrDeviceID | LPWSTR | in | 対象デバイスのIDを示すBSTR文字列。 |
| pEventGUID | GUID* | in | 登録対象イベントを識別するGUIDへのポインタ。 |
| bstrCommandline | LPWSTR | in | イベント発生時に起動するコマンドラインを示すBSTR文字列。 |
| bstrName | LPWSTR | in | 登録するハンドラの表示名を示すBSTR文字列。 |
| bstrDescription | LPWSTR | in | 登録するハンドラの説明を示すBSTR文字列。 |
| bstrIcon | LPWSTR | in | ハンドラのアイコン位置を示すBSTR文字列。 |
vtbl 9 HRESULT RegisterEventCallbackInterface(INT lFlags, LPWSTR bstrDeviceID, GUID* pEventGUID, IWiaEventCallback* pIWiaEventCallback, IUnknown** pEventObject)
| lFlags | INT | in | 登録/解除を示すフラグ。WIA_REGISTER_EVENT_CALLBACK等を指定する。 |
| bstrDeviceID | LPWSTR | in | 対象デバイスのIDを示すBSTR文字列。 |
| pEventGUID | GUID* | in | 登録対象イベントを識別するGUIDへのポインタ。 |
| pIWiaEventCallback | IWiaEventCallback* | in | イベント受信を行うIWiaEventCallback実装へのポインタ。 |
| pEventObject | IUnknown** | out | 登録解除に使う接続オブジェクトを受け取る出力ポインタ。 |
vtbl 10 HRESULT RegisterEventCallbackCLSID(INT lFlags, LPWSTR bstrDeviceID, GUID* pEventGUID, GUID* pClsID, LPWSTR bstrName, LPWSTR bstrDescription, LPWSTR bstrIcon)
| lFlags | INT | in | 登録/解除を示すフラグ。WIA_REGISTER_EVENT_CALLBACK等を指定する。 |
| bstrDeviceID | LPWSTR | in | 対象デバイスのIDを示すBSTR文字列。 |
| pEventGUID | GUID* | in | 登録対象イベントを識別するGUIDへのポインタ。 |
| pClsID | GUID* | in | 起動するCOMサーバーのCLSIDへのポインタ。 |
| bstrName | LPWSTR | in | 登録するハンドラの表示名を示すBSTR文字列。 |
| bstrDescription | LPWSTR | in | 登録するハンドラの説明を示すBSTR文字列。 |
| bstrIcon | LPWSTR | in | ハンドラのアイコン位置を示すBSTR文字列。 |
| hwndParent | HWND | in | デバイス追加ダイアログの親ウィンドウハンドル。 |
| lFlags | INT | in | 予約フラグ。現状は0を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWiaDevMgr "{5EB2502A-8CF1-11D1-BF92-0060081ED811}" #usecom global IWiaDevMgr IID_IWiaDevMgr "{A1F4E726-8CF1-11D1-BF92-0060081ED811}" #comfunc global IWiaDevMgr_EnumDeviceInfo 3 int,sptr #comfunc global IWiaDevMgr_CreateDevice 4 wstr,sptr #comfunc global IWiaDevMgr_SelectDeviceDlg 5 sptr,int,int,var,sptr #comfunc global IWiaDevMgr_SelectDeviceDlgID 6 sptr,int,int,var #comfunc global IWiaDevMgr_GetImageDlg 7 sptr,int,int,int,sptr,wstr,var #comfunc global IWiaDevMgr_RegisterEventCallbackProgram 8 int,wstr,var,wstr,wstr,wstr,wstr #comfunc global IWiaDevMgr_RegisterEventCallbackInterface 9 int,wstr,var,sptr,sptr #comfunc global IWiaDevMgr_RegisterEventCallbackCLSID 10 int,wstr,var,var,wstr,wstr,wstr #comfunc global IWiaDevMgr_AddDeviceDlg 11 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWiaDevMgr "{5EB2502A-8CF1-11D1-BF92-0060081ED811}" #usecom global IWiaDevMgr IID_IWiaDevMgr "{A1F4E726-8CF1-11D1-BF92-0060081ED811}" #comfunc global IWiaDevMgr_EnumDeviceInfo 3 int,sptr #comfunc global IWiaDevMgr_CreateDevice 4 wstr,sptr #comfunc global IWiaDevMgr_SelectDeviceDlg 5 sptr,int,int,sptr,sptr #comfunc global IWiaDevMgr_SelectDeviceDlgID 6 sptr,int,int,sptr #comfunc global IWiaDevMgr_GetImageDlg 7 sptr,int,int,int,sptr,wstr,sptr #comfunc global IWiaDevMgr_RegisterEventCallbackProgram 8 int,wstr,sptr,wstr,wstr,wstr,wstr #comfunc global IWiaDevMgr_RegisterEventCallbackInterface 9 int,wstr,sptr,sptr,sptr #comfunc global IWiaDevMgr_RegisterEventCallbackCLSID 10 int,wstr,sptr,sptr,wstr,wstr,wstr #comfunc global IWiaDevMgr_AddDeviceDlg 11 sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。