Win32 API 日本語リファレンス
ホームDevices.PortableDevices › IPortableDeviceConnector

IPortableDeviceConnector

COM
IID625e2df8-6392-4cf0-9ad1-3cfa5f17775c継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT Connect(IConnectionRequestCallback* pCallback)
pCallbackIConnectionRequestCallback*in接続完了の非同期通知を受け取るIConnectionRequestCallback。NULLで同期動作。
vtbl 4 HRESULT Disconnect(IConnectionRequestCallback* pCallback)
pCallbackIConnectionRequestCallback*in切断完了の非同期通知を受け取るIConnectionRequestCallback。NULLで同期動作。
vtbl 5 HRESULT Cancel(IConnectionRequestCallback* pCallback)
pCallbackIConnectionRequestCallback*in中止する接続/切断要求に紐づくIConnectionRequestCallback。
vtbl 6 HRESULT GetProperty(DEVPROPKEY* pPropertyKey, DEVPROPTYPE* pPropertyType, BYTE** ppData, DWORD* pcbData)
pPropertyKeyDEVPROPKEY*in取得するプロパティのDEVPROPKEYへのポインタ。
pPropertyTypeDEVPROPTYPE*out取得したプロパティの型(DEVPROPTYPE)を受け取る出力先。
ppDataBYTE**out取得したプロパティ値のバッファを受け取る出力先。呼び出し側が解放する。
pcbDataDWORD*out取得したデータのバイト数を受け取る出力先。
vtbl 7 HRESULT SetProperty(DEVPROPKEY* pPropertyKey, DEVPROPTYPE PropertyType, BYTE* pData, DWORD cbData)
pPropertyKeyDEVPROPKEY*in設定するプロパティのDEVPROPKEYへのポインタ。
PropertyTypeDEVPROPTYPEin設定するプロパティの型(DEVPROPTYPE)。
pDataBYTE*in設定するプロパティ値のデータへのポインタ。
cbDataDWORDin設定するデータのバイト数。
vtbl 8 HRESULT GetPnPID(LPWSTR* ppwszPnPID)
ppwszPnPIDLPWSTR*outこのコネクタのPnP ID文字列を受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_IPortableDeviceConnector "{625E2DF8-6392-4CF0-9AD1-3CFA5F17775C}"
#usecom global IPortableDeviceConnector IID_IPortableDeviceConnector "{}"
#comfunc global IPortableDeviceConnector_Connect      3 sptr
#comfunc global IPortableDeviceConnector_Disconnect   4 sptr
#comfunc global IPortableDeviceConnector_Cancel       5 sptr
#comfunc global IPortableDeviceConnector_GetProperty  6 var,var,var,var
#comfunc global IPortableDeviceConnector_SetProperty  7 var,int,var,int
#comfunc global IPortableDeviceConnector_GetPnPID     8 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。