Win32 API 日本語リファレンス
ホームMedia.Audio.Apo › IAudioProcessingObjectRT

IAudioProcessingObjectRT

COM
IID9e1d6a6d-ddbc-4e95-a4c7-ad64ba37846c継承元IUnknown自前メソッド開始 vtbl3

メソッド 3

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

vtbl 3 void APOProcess(DWORD u32NumInputConnections, APO_CONNECTION_PROPERTY** ppInputConnections, DWORD u32NumOutputConnections, APO_CONNECTION_PROPERTY** ppOutputConnections)
u32NumInputConnectionsDWORDin入力接続の数を指定する。
ppInputConnectionsAPO_CONNECTION_PROPERTY**in各入力接続のプロパティ配列を指す入力ポインタ。
u32NumOutputConnectionsDWORDin出力接続の数を指定する。
ppOutputConnectionsAPO_CONNECTION_PROPERTY**inout各出力接続のプロパティ配列を指す入出力ポインタ。
vtbl 4 DWORD CalcInputFrames(DWORD u32OutputFrameCount)
u32OutputFrameCountDWORDin目標とする出力フレーム数を指定する。戻り値で必要入力フレーム数を返す。
vtbl 5 DWORD CalcOutputFrames(DWORD u32InputFrameCount)
u32InputFrameCountDWORDin与える入力フレーム数を指定する。戻り値で生成される出力フレーム数を返す。

HSP用 COM定義

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

出力引数:
#define global IID_IAudioProcessingObjectRT "{9E1D6A6D-DDBC-4E95-A4C7-AD64BA37846C}"
#usecom global IAudioProcessingObjectRT IID_IAudioProcessingObjectRT "{}"
#comfunc global IAudioProcessingObjectRT_APOProcess        3 int,var,int,var
#comfunc global IAudioProcessingObjectRT_CalcInputFrames   4 int
#comfunc global IAudioProcessingObjectRT_CalcOutputFrames  5 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。