Получение адреса виртуальной таблицы функций
[Функция, связанная с этой страницей, пользовательских обработчиков файлов и потоков, является устаревшей функцией. Он был заменен классом MediaStreamSource. класс MediaStreamSource оптимизирован для Windows 10 и Windows 11. Компания Microsoft настоятельно рекомендует в новом коде использовать класс MediaStreamSource вместо пользовательских обработчиков файлов и потоков , когда это возможно. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
В приложении, написанном на языке программирования C, можно получить адрес структуры IAVIStreamVtbl с помощью функции NewBall. Эта функция возвращает адрес структуры, содержащей указатель на 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;
}