ホーム › Media.KernelStreaming › IKsPropertySet
IKsPropertySet
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Set(GUID* guidPropSet, DWORD dwPropID, void* pInstanceData, DWORD cbInstanceData, void* pPropData, DWORD cbPropData)
| guidPropSet | GUID* | in | プロパティセットを識別する GUID へのポインタを指定する。 |
| dwPropID | DWORD | in | プロパティセット内のプロパティを識別する ID を指定する。 |
| pInstanceData | void* | in | プロパティを限定するインスタンスデータへのポインタを指定する。不要なら NULL。 |
| cbInstanceData | DWORD | in | pInstanceData のバイト数を指定する。 |
| pPropData | void* | in | 設定する値を保持するバッファへのポインタを指定する。 |
| cbPropData | DWORD | in | pPropData のバイト数を指定する。 |
vtbl 4 HRESULT Get(GUID* guidPropSet, DWORD dwPropID, void* pInstanceData, DWORD cbInstanceData, void* pPropData, DWORD cbPropData, DWORD* pcbReturned)
| guidPropSet | GUID* | in | プロパティセットを識別する GUID へのポインタを指定する。 |
| dwPropID | DWORD | in | プロパティセット内のプロパティを識別する ID を指定する。 |
| pInstanceData | void* | in | プロパティを限定するインスタンスデータへのポインタを指定する。不要なら NULL。 |
| cbInstanceData | DWORD | in | pInstanceData のバイト数を指定する。 |
| pPropData | void* | out | 取得した値を受け取るバッファへのポインタを指定する。 |
| cbPropData | DWORD | in | pPropData のバイト数を指定する。 |
| pcbReturned | DWORD* | out | 実際に書き込まれたバイト数を受け取る DWORD ポインタ。 |
| guidPropSet | GUID* | in | サポート状況を問い合わせるプロパティセットの GUID へのポインタを指定する。 |
| dwPropID | DWORD | in | サポート状況を問い合わせるプロパティの ID を指定する。 |
| pTypeSupport | DWORD* | out | Get/Set 等の対応種別(KSPROPERTY_SUPPORT_*)を受け取る DWORD ポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IKsPropertySet "{31EFAC30-515C-11D0-A9AA-00AA0061BE93}" #usecom global IKsPropertySet IID_IKsPropertySet "{}" #comfunc global IKsPropertySet_Set 3 var,int,sptr,int,sptr,int #comfunc global IKsPropertySet_Get 4 var,int,sptr,int,sptr,int,var #comfunc global IKsPropertySet_QuerySupported 5 var,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IKsPropertySet "{31EFAC30-515C-11D0-A9AA-00AA0061BE93}" #usecom global IKsPropertySet IID_IKsPropertySet "{}" #comfunc global IKsPropertySet_Set 3 sptr,int,sptr,int,sptr,int #comfunc global IKsPropertySet_Get 4 sptr,int,sptr,int,sptr,int,sptr #comfunc global IKsPropertySet_QuerySupported 5 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。