Создание указателя объекта
[Функция, связанная с этой страницей Пользовательские обработчики файлов и потоков, является устаревшей функцией. Он был заменен классом MediaStreamSource. Класс MediaStreamSource оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать класс MediaStreamSource вместо пользовательских обработчиков файлов и потоков. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
В AVIBall в качестве указателя на объект используется следующая структура. Первый элемент этой структуры указывает на виртуальную таблицу функций, которую AVIBall использует для доступа к своим функциям. Приложения могут привести эту структуру к типу данных PAVISTREAM. Методы, использующие тип данных PAVISTREAM, используют только указатель на виртуальную таблицу функций. Члены, следующие за указателем на таблицу виртуальных функций, используются AVIBall для внутренних целей.
typedef struct
{
IAVIStreamVtbl FAR * lpvtbl;
// Ball instance data.
ULONG ulRefCount;
DWORD fccType; // is this audio/video?
int width; // size, in pixels, of each frame
int height;
int length; // length, in frames
int size;
COLORREF color; // ball color
} AVIBALL, FAR * PAVIBALL;