获取虚拟函数表的地址

在用 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; 
}