ホーム › Media.WindowsMediaFormat › IWMPropertyVault
IWMPropertyVault
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pdwCount | DWORD* | in | 保持されているプロパティの総数を受け取る出力先。DWORDポインタ。 |
vtbl 4 HRESULT GetPropertyByName(LPWSTR pszName, WMT_ATTR_DATATYPE* pType, BYTE* pValue, DWORD* pdwSize)
| pszName | LPWSTR | in | 取得対象プロパティ名を指す広域文字列。 |
| pType | WMT_ATTR_DATATYPE* | out | プロパティ値のデータ型WMT_ATTR_DATATYPEを受け取る出力先。 |
| pValue | BYTE* | out | プロパティ値を受け取るバイトバッファ。NULLでサイズ問い合わせ。 |
| pdwSize | DWORD* | inout | 入力で確保バイト数、出力で実バイト数を示すDWORDポインタ。 |
vtbl 5 HRESULT SetProperty(LPWSTR pszName, WMT_ATTR_DATATYPE pType, BYTE* pValue, DWORD dwSize)
| pszName | LPWSTR | in | 設定するプロパティ名を指す広域文字列。 |
| pType | WMT_ATTR_DATATYPE | in | 設定値のデータ型を示すWMT_ATTR_DATATYPE列挙値。 |
| pValue | BYTE* | in | 設定する値が格納されたバイトバッファへのポインタ。 |
| dwSize | DWORD | in | 設定値のバイト長を指定する。 |
vtbl 6 HRESULT GetPropertyByIndex(DWORD dwIndex, LPWSTR pszName, DWORD* pdwNameLen, WMT_ATTR_DATATYPE* pType, BYTE* pValue, DWORD* pdwSize)
| dwIndex | DWORD | in | 取得対象プロパティの0起点インデックス。 |
| pszName | LPWSTR | out | プロパティ名を受け取る文字列バッファ。NULLで長さ問い合わせ。 |
| pdwNameLen | DWORD* | inout | 入力で名前バッファ確保文字数、出力で必要文字数を示すポインタ。 |
| pType | WMT_ATTR_DATATYPE* | out | 値のデータ型WMT_ATTR_DATATYPEを受け取る出力先。 |
| pValue | BYTE* | out | 値を受け取るバイトバッファ。NULLでサイズ問い合わせ。 |
| pdwSize | DWORD* | inout | 入力で確保バイト数、出力で実バイト数を示すDWORDポインタ。 |
vtbl 7 HRESULT CopyPropertiesFrom(IWMPropertyVault* pIWMPropertyVault)
| pIWMPropertyVault | IWMPropertyVault* | 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 指定が可能。#define global IID_IWMPropertyVault "{72995A79-5090-42A4-9C8C-D9D0B6D34BE5}" #usecom global IWMPropertyVault IID_IWMPropertyVault "{}" #comfunc global IWMPropertyVault_GetPropertyCount 3 sptr #comfunc global IWMPropertyVault_GetPropertyByName 4 wstr,sptr,sptr,sptr #comfunc global IWMPropertyVault_SetProperty 5 wstr,int,sptr,int #comfunc global IWMPropertyVault_GetPropertyByIndex 6 int,sptr,sptr,sptr,sptr,sptr #comfunc global IWMPropertyVault_CopyPropertiesFrom 7 sptr #comfunc global IWMPropertyVault_Clear 8 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。