ホーム › Media.DeviceManager › IWMDMStorage3
IWMDMStorage3
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 15 HRESULT GetMetadata(IWMDMMetaData** ppMetadata)
| ppMetadata | IWMDMMetaData** | out | このストレージのメタデータを表すIWMDMMetaDataを受け取る出力ポインター。 |
vtbl 16 HRESULT SetMetadata(IWMDMMetaData* pMetadata)
| pMetadata | IWMDMMetaData* | inoptional | ストレージに設定するメタデータを保持するIWMDMMetaDataへのポインター。 |
vtbl 17 HRESULT CreateEmptyMetadataObject(IWMDMMetaData** ppMetadata)
| ppMetadata | IWMDMMetaData** | out | 新規に生成された空のIWMDMMetaDataを受け取る出力ポインター。 |
vtbl 18 HRESULT SetEnumPreference(WMDM_STORAGE_ENUM_MODE* pMode, DWORD nViews, WMDMMetadataView* pViews)
| pMode | WMDM_STORAGE_ENUM_MODE* | inout | 列挙モードを指定するWMDM_STORAGE_ENUM_MODEへのポインター。 |
| nViews | DWORD | in | pViews配列に含まれるビュー定義の数を示すDWORD値。 |
| pViews | WMDMMetadataView* | inoptional | 列挙対象を絞り込むメタデータビュー定義を格納したWMDMMetadataView配列へのポインター。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWMDMStorage3 "{97717EEA-926A-464E-96A4-247B0216026E}" #usecom global IWMDMStorage3 IID_IWMDMStorage3 "{807B3CE0-357A-11D3-8471-00C04F79DBC0}" #comfunc global IWMDMStorage3_GetMetadata 15 sptr #comfunc global IWMDMStorage3_SetMetadata 16 sptr #comfunc global IWMDMStorage3_CreateEmptyMetadataObject 17 sptr #comfunc global IWMDMStorage3_SetEnumPreference 18 var,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWMDMStorage3 "{97717EEA-926A-464E-96A4-247B0216026E}" #usecom global IWMDMStorage3 IID_IWMDMStorage3 "{807B3CE0-357A-11D3-8471-00C04F79DBC0}" #comfunc global IWMDMStorage3_GetMetadata 15 sptr #comfunc global IWMDMStorage3_SetMetadata 16 sptr #comfunc global IWMDMStorage3_CreateEmptyMetadataObject 17 sptr #comfunc global IWMDMStorage3_SetEnumPreference 18 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。