ホーム › Devices.PortableDevices › IPortableDeviceService
IPortableDeviceService
COMメソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Open(LPWSTR pszPnPServiceID, IPortableDeviceValues* pClientInfo)
| pszPnPServiceID | LPWSTR | in | 接続する対象サービスのPnP ID文字列。 |
| pClientInfo | IPortableDeviceValues* | in | アプリ名やバージョン等のクライアント情報を格納したIPortableDeviceValues。 |
vtbl 4 HRESULT Capabilities(IPortableDeviceServiceCapabilities** ppCapabilities)
| ppCapabilities | IPortableDeviceServiceCapabilities** | out | サービスの機能照会用IPortableDeviceServiceCapabilitiesを受け取る出力先。 |
vtbl 5 HRESULT Content(IPortableDeviceContent2** ppContent)
| ppContent | IPortableDeviceContent2** | out | サービス上のコンテンツ操作用IPortableDeviceContent2を受け取る出力先。 |
vtbl 6 HRESULT Methods(IPortableDeviceServiceMethods** ppMethods)
| ppMethods | IPortableDeviceServiceMethods** | out | サービスメソッド呼び出し用IPortableDeviceServiceMethodsを受け取る出力先。 |
vtbl 7 HRESULT Cancel()
vtbl 8 HRESULT Close()
| ppszServiceObjectID | LPWSTR* | out | サービスのルートオブジェクトID文字列を受け取る出力先。 |
| ppszPnPServiceID | LPWSTR* | out | 開いているサービスのPnP ID文字列を受け取る出力先。 |
vtbl 11 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で取得した登録解除用のクッキー文字列。 |
vtbl 13 HRESULT SendCommand(DWORD dwFlags, IPortableDeviceValues* pParameters, IPortableDeviceValues** ppResults)
| dwFlags | DWORD | in | コマンド送信動作を制御するフラグ。通常は0。 |
| pParameters | IPortableDeviceValues* | in | コマンドとそのパラメーターを格納したIPortableDeviceValues。 |
| ppResults | IPortableDeviceValues** | out | コマンド実行結果を格納したIPortableDeviceValuesを受け取る出力先。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IPortableDeviceService "{D3BD3A44-D7B5-40A9-98B7-2FA4D01DEC08}" #usecom global IPortableDeviceService IID_IPortableDeviceService "{EF5DB4C2-9312-422C-9152-411CD9C4DD84}" #comfunc global IPortableDeviceService_Open 3 wstr,sptr #comfunc global IPortableDeviceService_Capabilities 4 sptr #comfunc global IPortableDeviceService_Content 5 sptr #comfunc global IPortableDeviceService_Methods 6 sptr #comfunc global IPortableDeviceService_Cancel 7 #comfunc global IPortableDeviceService_Close 8 #comfunc global IPortableDeviceService_GetServiceObjectID 9 var #comfunc global IPortableDeviceService_GetPnPServiceID 10 var #comfunc global IPortableDeviceService_Advise 11 int,sptr,sptr,var #comfunc global IPortableDeviceService_Unadvise 12 wstr #comfunc global IPortableDeviceService_SendCommand 13 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPortableDeviceService "{D3BD3A44-D7B5-40A9-98B7-2FA4D01DEC08}" #usecom global IPortableDeviceService IID_IPortableDeviceService "{EF5DB4C2-9312-422C-9152-411CD9C4DD84}" #comfunc global IPortableDeviceService_Open 3 wstr,sptr #comfunc global IPortableDeviceService_Capabilities 4 sptr #comfunc global IPortableDeviceService_Content 5 sptr #comfunc global IPortableDeviceService_Methods 6 sptr #comfunc global IPortableDeviceService_Cancel 7 #comfunc global IPortableDeviceService_Close 8 #comfunc global IPortableDeviceService_GetServiceObjectID 9 sptr #comfunc global IPortableDeviceService_GetPnPServiceID 10 sptr #comfunc global IPortableDeviceService_Advise 11 int,sptr,sptr,sptr #comfunc global IPortableDeviceService_Unadvise 12 wstr #comfunc global IPortableDeviceService_SendCommand 13 int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。