IKsPin インターフェイスは、カーネルモードフィルターのピンがサポートするメディア(medium)を取得するメソッドを提供します。IKsPin にはここに示すもの以外にもメソッドがありますが、DirectShow ではサポートされていません。
[このページに関連する機能である DirectShow は、レガシー機能です。この機能は MediaPlayer 、IMFMediaEngine 、および Media Foundation でのオーディオ/ビデオキャプチャ に置き換えられています。これらの機能は Windows 10 および Windows 11 向けに最適化されています。Microsoft は、可能な場合は新しいコードで DirectShow の代わりに MediaPlayer 、IMFMediaEngine 、および Media Foundation でのオーディオ/ビデオキャプチャ を使用することを強く推奨します。Microsoft は、レガシー API を使用している既存のコードについても、可能であれば新しい API を使用するように書き直すことを推奨します。]
IKsPin インターフェイスは、カーネルモードフィルターのピンがサポートするメディア(medium)を取得するメソッドを提供します。IKsPin にはここに示すもの以外にもメソッドがありますが、DirectShow ではサポートされていません。
Ksproxy.h よりも前に Ks.h をインクルードする必要があります。
ピンがサポートするメディア(medium)を取得します。
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}" 、ある場合は "{CLSID}" 。
コピー 出力引数: var(変数直渡し) varptr(ポインタ)
#define global IID_IKsPin "{B61178D1-A2D9-11CF-9E53-00AA00A216A1}"
#usecom global IKsPin IID_IKsPin "{}"
#comfunc global IKsPin_KsQueryMediums 3 var
#comfunc global IKsPin_KsQueryInterfaces 4 var
#comfunc global IKsPin_KsCreateSinkPinHandle 5 var,var
#comfunc global IKsPin_KsGetCurrentCommunication 6 var,var,var
#comfunc global IKsPin_KsPropagateAcquire 7
#comfunc global IKsPin_KsDeliver 8 sptr,int
#comfunc global IKsPin_KsMediaSamplesCompleted 9 var
#comfunc global IKsPin_KsPeekAllocator 10 int
#comfunc global IKsPin_KsReceiveAllocator 11 sptr
#comfunc global IKsPin_KsRenegotiateAllocator 12
#comfunc global IKsPin_KsIncrementPendingIoCount 13
#comfunc global IKsPin_KsDecrementPendingIoCount 14
#comfunc global IKsPin_KsQualityNotify 15 int,int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IKsPin "{B61178D1-A2D9-11CF-9E53-00AA00A216A1}"
#usecom global IKsPin IID_IKsPin "{}"
#comfunc global IKsPin_KsQueryMediums 3 sptr
#comfunc global IKsPin_KsQueryInterfaces 4 sptr
#comfunc global IKsPin_KsCreateSinkPinHandle 5 sptr,sptr
#comfunc global IKsPin_KsGetCurrentCommunication 6 sptr,sptr,sptr
#comfunc global IKsPin_KsPropagateAcquire 7
#comfunc global IKsPin_KsDeliver 8 sptr,int
#comfunc global IKsPin_KsMediaSamplesCompleted 9 sptr
#comfunc global IKsPin_KsPeekAllocator 10 int
#comfunc global IKsPin_KsReceiveAllocator 11 sptr
#comfunc global IKsPin_KsRenegotiateAllocator 12
#comfunc global IKsPin_KsIncrementPendingIoCount 13
#comfunc global IKsPin_KsDecrementPendingIoCount 14
#comfunc global IKsPin_KsQualityNotify 15 int,int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。