仮想関数テーブルのアドレスの取得
C プログラミング言語で記述されたアプリケーションでは、NewBall 関数を使用して IAVIStreamVtbl 構造体のアドレスを取得できます。 この関数は、 IAVIStreamVtbl へのポインターを含む構造体のアドレスを返します。 IAVIStreamVtbl ポインターに続く情報は、AVIBall によって内部的に使用されるデータを指定します。 ストリーム ハンドラーは、 IAVIStreamVtbl ポインターの後に独自の情報を追加できます。 この情報は、ストリーム ハンドラーへの後続の呼び出しで返されます。
PAVISTREAM WINAPI NewBall(VOID)
{
PAVIBALL pball;
pball = (PAVIBALL) GlobalAllocPtr(GHND, sizeof(AVIBALL));
if (!pball)
return 0;
pball->lpvtbl = &AVIBallHandler;
pball->lpvtbl->Create((PAVISTREAM) pball, 0, 0);
return (PAVISTREAM) pball;
}