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

IPortableDeviceResources

COM
IIDfd8878ac-d841-4d17-891c-e6829cdb6934継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT GetSupportedResources(LPWSTR pszObjectID, IPortableDeviceKeyCollection** ppKeys)
pszObjectIDLPWSTRin対象オブジェクトのID文字列。
ppKeysIPortableDeviceKeyCollection**outそのオブジェクトがサポートするリソースキー集合を受け取る出力先。
vtbl 4 HRESULT GetResourceAttributes(LPWSTR pszObjectID, PROPERTYKEY* Key, IPortableDeviceValues** ppResourceAttributes)
pszObjectIDLPWSTRin対象オブジェクトのID文字列。
KeyPROPERTYKEY*in属性を取得するリソースのキーを指すPROPERTYKEYへのポインタ。
ppResourceAttributesIPortableDeviceValues**outリソースの属性(サイズ・形式等)を格納したIPortableDeviceValuesを受け取る出力先。
vtbl 5 HRESULT GetStream(LPWSTR pszObjectID, PROPERTYKEY* Key, DWORD dwMode, DWORD* pdwOptimalBufferSize, IStream** ppStream)
pszObjectIDLPWSTRin対象オブジェクトのID文字列。
KeyPROPERTYKEY*in読み込むリソースのキーを指すPROPERTYKEYへのポインタ。
dwModeDWORDinストリームのアクセスモードを示すフラグ(読み取り/書き込み等)。
pdwOptimalBufferSizeDWORD*inout転送に最適なバッファサイズ(バイト)を受け取る出力先。
ppStreamIStream**outリソースデータの読み出し用IStreamを受け取る出力先。
vtbl 6 HRESULT Delete(LPWSTR pszObjectID, IPortableDeviceKeyCollection* pKeys)
pszObjectIDLPWSTRin対象オブジェクトのID文字列。
pKeysIPortableDeviceKeyCollection*in削除するリソースのキー集合。
vtbl 7 HRESULT Cancel()
vtbl 8 HRESULT CreateResource(IPortableDeviceValues* pResourceAttributes, IStream** ppData, DWORD* pdwOptimalWriteBufferSize, LPWSTR* ppszCookie)
pResourceAttributesIPortableDeviceValues*in作成するリソースの属性を格納したIPortableDeviceValues。
ppDataIStream**outリソースデータ書き込み用のIStreamを受け取る出力先。
pdwOptimalWriteBufferSizeDWORD*inout書き込みに最適なバッファサイズ(バイト)を受け取る出力先。
ppszCookieLPWSTR*inout操作完了処理に用いるクッキー文字列を受け取る出力先。NULL可。

HSP用 COM定義

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

出力引数:
#define global IID_IPortableDeviceResources "{FD8878AC-D841-4D17-891C-E6829CDB6934}"
#usecom global IPortableDeviceResources IID_IPortableDeviceResources "{}"
#comfunc global IPortableDeviceResources_GetSupportedResources  3 wstr,sptr
#comfunc global IPortableDeviceResources_GetResourceAttributes  4 wstr,var,sptr
#comfunc global IPortableDeviceResources_GetStream              5 wstr,var,int,var,sptr
#comfunc global IPortableDeviceResources_Delete                 6 wstr,sptr
#comfunc global IPortableDeviceResources_Cancel                 7
#comfunc global IPortableDeviceResources_CreateResource         8 sptr,sptr,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。