ホーム › Devices.PortableDevices › IPortableDevice
IPortableDevice
COMメソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Open(LPWSTR pszPnPDeviceID, IPortableDeviceValues* pClientInfo)
| pszPnPDeviceID | LPWSTR | in | 接続する対象デバイスのPnP ID文字列。 |
| pClientInfo | IPortableDeviceValues* | in | アプリ名やバージョン等のクライアント情報を格納したIPortableDeviceValues。 |
vtbl 4 HRESULT SendCommand(DWORD dwFlags, IPortableDeviceValues* pParameters, IPortableDeviceValues** ppResults)
| dwFlags | DWORD | in | コマンド送信動作を制御するフラグ。通常は0を指定する。 |
| pParameters | IPortableDeviceValues* | in | コマンドとそのパラメーターを格納したIPortableDeviceValues。 |
| ppResults | IPortableDeviceValues** | out | コマンド実行結果を格納したIPortableDeviceValuesを受け取る出力先。 |
vtbl 5 HRESULT Content(IPortableDeviceContent** ppContent)
| ppContent | IPortableDeviceContent** | out | デバイス上のコンテンツ操作用IPortableDeviceContentを受け取る出力先。 |
vtbl 6 HRESULT Capabilities(IPortableDeviceCapabilities** ppCapabilities)
| ppCapabilities | IPortableDeviceCapabilities** | out | デバイスの機能照会用IPortableDeviceCapabilitiesを受け取る出力先。 |
vtbl 7 HRESULT Cancel()
vtbl 8 HRESULT Close()
vtbl 9 HRESULT Advise(DWORD dwFlags, IPortableDeviceEventCallback* pCallback, IPortableDeviceValues* pParameters, LPWSTR* ppszCookie)
| dwFlags | DWORD | in | イベント登録動作を制御するフラグ。通常は0。 |
| pCallback | IPortableDeviceEventCallback* | in | イベント通知を受け取るIPortableDeviceEventCallback実装へのポインタ。 |
| pParameters | IPortableDeviceValues* | in | 登録時の追加パラメーターを格納したIPortableDeviceValues。NULL可。 |
| ppszCookie | LPWSTR* | out | 登録解除に用いるクッキー文字列を受け取る出力先。 |
| pszCookie | LPWSTR | in | Adviseで取得した登録解除用のクッキー文字列。 |
| ppszPnPDeviceID | LPWSTR* | out | 開いているデバイスのPnP ID文字列を受け取る出力先。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IPortableDevice "{625E2DF8-6392-4CF0-9AD1-3CFA5F17775C}" #usecom global IPortableDevice IID_IPortableDevice "{728A21C5-3D9E-48D7-9810-864848F0F404}" #comfunc global IPortableDevice_Open 3 wstr,sptr #comfunc global IPortableDevice_SendCommand 4 int,sptr,sptr #comfunc global IPortableDevice_Content 5 sptr #comfunc global IPortableDevice_Capabilities 6 sptr #comfunc global IPortableDevice_Cancel 7 #comfunc global IPortableDevice_Close 8 #comfunc global IPortableDevice_Advise 9 int,sptr,sptr,var #comfunc global IPortableDevice_Unadvise 10 wstr #comfunc global IPortableDevice_GetPnPDeviceID 11 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPortableDevice "{625E2DF8-6392-4CF0-9AD1-3CFA5F17775C}" #usecom global IPortableDevice IID_IPortableDevice "{728A21C5-3D9E-48D7-9810-864848F0F404}" #comfunc global IPortableDevice_Open 3 wstr,sptr #comfunc global IPortableDevice_SendCommand 4 int,sptr,sptr #comfunc global IPortableDevice_Content 5 sptr #comfunc global IPortableDevice_Capabilities 6 sptr #comfunc global IPortableDevice_Cancel 7 #comfunc global IPortableDevice_Close 8 #comfunc global IPortableDevice_Advise 9 int,sptr,sptr,sptr #comfunc global IPortableDevice_Unadvise 10 wstr #comfunc global IPortableDevice_GetPnPDeviceID 11 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。