Поделиться через


Создание указателя объекта

[Функция, связанная с этой страницей Пользовательские обработчики файлов и потоков, является устаревшей функцией. Он был заменен классом 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;