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

IWMPropertyVault

COM
IID72995a79-5090-42a4-9c8c-d9d0b6d34be5継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT GetPropertyCount(DWORD* pdwCount)
pdwCountDWORD*in保持されているプロパティの総数を受け取る出力先。DWORDポインタ。
vtbl 4 HRESULT GetPropertyByName(LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, DWORD* pdwSize)
pszNameLPWSTRin取得対象プロパティ名を指す広域文字列。
pTypeWMT_ATTR_DATATYPE*outプロパティ値のデータ型WMT_ATTR_DATATYPEを受け取る出力先。
pValueBYTE*outプロパティ値を受け取るバイトバッファ。NULLでサイズ問い合わせ。
pdwSizeDWORD*inout入力で確保バイト数、出力で実バイト数を示すDWORDポインタ。
vtbl 5 HRESULT SetProperty(LPWSTR pszName, WMT_ATTR_DATATYPE pType, BYTE* pValue, DWORD dwSize)
pszNameLPWSTRin設定するプロパティ名を指す広域文字列。
pTypeWMT_ATTR_DATATYPEin設定値のデータ型を示すWMT_ATTR_DATATYPE列挙値。
pValueBYTE*in設定する値が格納されたバイトバッファへのポインタ。
dwSizeDWORDin設定値のバイト長を指定する。
vtbl 6 HRESULT GetPropertyByIndex(DWORD dwIndex, LPWSTR pszName, DWORD* pdwNameLen, WMT_ATTR_DATATYPE* pType, BYTE* pValue, DWORD* pdwSize)
dwIndexDWORDin取得対象プロパティの0起点インデックス。
pszNameLPWSTRoutプロパティ名を受け取る文字列バッファ。NULLで長さ問い合わせ。
pdwNameLenDWORD*inout入力で名前バッファ確保文字数、出力で必要文字数を示すポインタ。
pTypeWMT_ATTR_DATATYPE*out値のデータ型WMT_ATTR_DATATYPEを受け取る出力先。
pValueBYTE*out値を受け取るバイトバッファ。NULLでサイズ問い合わせ。
pdwSizeDWORD*inout入力で確保バイト数、出力で実バイト数を示すDWORDポインタ。
vtbl 7 HRESULT CopyPropertiesFrom(IWMPropertyVault* pIWMPropertyVault)
pIWMPropertyVaultIWMPropertyVault*inプロパティのコピー元となるIWMPropertyVaultへのポインタ。
vtbl 8 HRESULT Clear()

HSP用 COM定義

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

出力引数:
#define global IID_IWMPropertyVault "{72995A79-5090-42A4-9C8C-D9D0B6D34BE5}"
#usecom global IWMPropertyVault IID_IWMPropertyVault "{}"
#comfunc global IWMPropertyVault_GetPropertyCount    3 var
#comfunc global IWMPropertyVault_GetPropertyByName   4 wstr,var,var,var
#comfunc global IWMPropertyVault_SetProperty         5 wstr,int,var,int
#comfunc global IWMPropertyVault_GetPropertyByIndex  6 int,var,var,var,var,var
#comfunc global IWMPropertyVault_CopyPropertiesFrom  7 sptr
#comfunc global IWMPropertyVault_Clear               8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。