Compartilhar via


Criando um ponteiro de objeto

[O recurso associado a esta página, Arquivos Personalizados e Manipuladores de Fluxo, é um recurso herdado. Ele foi substituído pela classe MediaStreamSource. A classe MediaStreamSource foi otimizada para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use a classe MediaStreamSource em vez de manipuladores de arquivos personalizados e de fluxo, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O AVIBall usa a estrutura a seguir como seu ponteiro de objeto. O primeiro membro dessa estrutura aponta para a tabela de funções virtuais que a AVIBall usa para acessar suas funções. Os aplicativos podem converter essa estrutura no tipo de dados PAVISTREAM. Os métodos que usam o tipo de dados PAVISTREAM usam apenas o ponteiro para a tabela de funções virtuais. Os membros que seguem o ponteiro para a tabela de funções virtuais são usados internamente pelo 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;