Win32 API 日本語リファレンス
ホームMedia.DeviceManager › IMDSPStorage

IMDSPStorage

COM
IID1dcb3a16-33ed-11d3-8470-00c04f79dbc0継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

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

vtbl 3 HRESULT SetAttributes(DWORD dwAttributes, WAVEFORMATEX* pFormat)
dwAttributesDWORDin設定するストレージ属性を示すWMDM_STORAGE_ATTR系フラグ。読み取り専用等を制御する。
pFormatWAVEFORMATEX*inoptionalオブジェクトの音声フォーマットを指定するWAVEFORMATEX。NULL可。
vtbl 4 HRESULT GetStorageGlobals(IMDSPStorageGlobals** ppStorageGlobals)
ppStorageGlobalsIMDSPStorageGlobals**outストレージ全体の情報を扱うIMDSPStorageGlobalsを受け取る出力。
vtbl 5 HRESULT GetAttributes(DWORD* pdwAttributes, WAVEFORMATEX* pFormat)
pdwAttributesDWORD*outストレージ属性を示すフラグを受け取る出力。
pFormatWAVEFORMATEX*inoutoptionalオブジェクトの音声フォーマットを受け取るWAVEFORMATEXの出力。NULL可。
vtbl 6 HRESULT GetName(LPWSTR pwszName, DWORD nMaxChars)
pwszNameLPWSTRoutストレージ(ファイル/フォルダ)名を受け取る出力バッファ。
nMaxCharsDWORDinpwszNameバッファの最大文字数を指定する。
vtbl 7 HRESULT GetDate(WMDMDATETIME* pDateTimeUTC)
pDateTimeUTCWMDMDATETIME*outストレージの日時をUTCで受け取るWMDMDATETIME構造体の出力。
vtbl 8 HRESULT GetSize(DWORD* pdwSizeLow, DWORD* pdwSizeHigh)
pdwSizeLowDWORD*outサイズの下位32ビットを受け取る出力。pdwSizeHighと合わせ64ビット値を構成する。
pdwSizeHighDWORD*outサイズの上位32ビットを受け取る出力。NULL可。
vtbl 9 HRESULT GetRights(WMDMRIGHTS** ppRights, DWORD* pnRightsCount, BYTE* abMac)
ppRightsWMDMRIGHTS**outオブジェクトに付与された権利情報WMDMRIGHTS配列を受け取る出力。
pnRightsCountDWORD*out権利配列の要素数を受け取る出力。
abMacBYTE*inout改ざん検証用のMACを受け取るバイト配列。
vtbl 10 HRESULT CreateStorage(DWORD dwAttributes, WAVEFORMATEX* pFormat, LPWSTR pwszName, IMDSPStorage** ppNewStorage)
dwAttributesDWORDin新規ストレージに設定する属性フラグ。フォルダ/ファイル種別等を指定する。
pFormatWAVEFORMATEX*inoptional新規オブジェクトの音声フォーマットを指定するWAVEFORMATEX。NULL可。
pwszNameLPWSTRin作成するストレージの名前を示す文字列。
ppNewStorageIMDSPStorage**out作成されたIMDSPStorageを受け取る出力。
vtbl 11 HRESULT EnumStorage(IMDSPEnumStorage** ppEnumStorage)
ppEnumStorageIMDSPEnumStorage**outこのストレージ配下の子ストレージ列挙子を受け取る出力。
vtbl 12 HRESULT SendOpaqueCommand(OPAQUECOMMAND* pCommand)
pCommandOPAQUECOMMAND*inoutプロバイダ固有コマンドを受け渡すOPAQUECOMMAND構造体。入出力に使う。

HSP用 COM定義

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

出力引数:
#define global IID_IMDSPStorage "{1DCB3A16-33ED-11D3-8470-00C04F79DBC0}"
#usecom global IMDSPStorage IID_IMDSPStorage "{}"
#comfunc global IMDSPStorage_SetAttributes      3 int,var
#comfunc global IMDSPStorage_GetStorageGlobals  4 sptr
#comfunc global IMDSPStorage_GetAttributes      5 var,var
#comfunc global IMDSPStorage_GetName            6 var,int
#comfunc global IMDSPStorage_GetDate            7 var
#comfunc global IMDSPStorage_GetSize            8 var,var
#comfunc global IMDSPStorage_GetRights          9 var,var,var
#comfunc global IMDSPStorage_CreateStorage      10 int,var,wstr,sptr
#comfunc global IMDSPStorage_EnumStorage        11 sptr
#comfunc global IMDSPStorage_SendOpaqueCommand  12 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。