Microsoft DirectX 8.0 |
Microsoft® DirectShow® アプリケーションを (C++ ではなく) C で書いているなら、メソッドを呼び出す際に vtable を使用しなければならない。以下の例は IUnknown::QueryInterface メソッドを C で書かれたアプリケーションから呼び出す方法を示す :
pGraph->lpVtbl->QueryInterface(pGraph, &IID_IMediaEvent, (void **)&pEvent);
以下は上記と等しい C++ の呼び出しである :
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
C ではインターフェイスは構造体として定義されている。lpVtbl メンバはインターフェイス メソッドの表 (vtable) へのポインタである。すべてのメソッドはインターフェイスへのポインタである追加パラメータを持っている。