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

IWMDMStorageGlobals

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

メソッド 7

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

vtbl 3 HRESULT GetCapabilities(DWORD* pdwCapabilities)
pdwCapabilitiesDWORD*outストレージの機能を示す機能ビットマスクを受け取るDWORDへの出力ポインター。
vtbl 4 HRESULT GetSerialNumber(WMDMID* pSerialNum, BYTE* abMac)
pSerialNumWMDMID*outストレージのシリアル番号を受け取るWMDMIDへのポインター。
abMacBYTE*inout改ざん検出用のメッセージ認証コード(MAC)を格納するバイト配列。セキュア認証で使用する。
vtbl 5 HRESULT GetTotalSize(DWORD* pdwTotalSizeLow, DWORD* pdwTotalSizeHigh)
pdwTotalSizeLowDWORD*out総容量の下位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
pdwTotalSizeHighDWORD*out総容量の上位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
vtbl 6 HRESULT GetTotalFree(DWORD* pdwFreeLow, DWORD* pdwFreeHigh)
pdwFreeLowDWORD*out空き容量の下位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
pdwFreeHighDWORD*out空き容量の上位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
vtbl 7 HRESULT GetTotalBad(DWORD* pdwBadLow, DWORD* pdwBadHigh)
pdwBadLowDWORD*out不良領域サイズの下位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
pdwBadHighDWORD*out不良領域サイズの上位32ビットをバイト単位で受け取るDWORDへの出力ポインター。
vtbl 8 HRESULT GetStatus(DWORD* pdwStatus)
pdwStatusDWORD*outストレージの現在状態を示すステータスビットマスクを受け取るDWORDへの出力ポインター。
vtbl 9 HRESULT Initialize(DWORD fuMode, IWMDMProgress* pProgress)
fuModeDWORDin初期化(フォーマット)の動作モードを指定するフラグ。アクセス権や処理方法を制御する。
pProgressIWMDMProgress*inoptional進捗通知を受け取るIWMDMProgress実装へのポインター。不要ならNULL可。

HSP用 COM定義

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

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