Compartir a través de


Creación de un puntero de objeto

[La característica asociada a esta página, Controladores personalizados de archivos y secuencias, es una característica heredada. Se ha reemplazado por la clase MediaStreamSource. La clase MediaStreamSource se ha optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use la clase MediaStreamSource en lugar de los controladores de secuencias y archivos personalizados, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

AVIBall usa la siguiente estructura como puntero de objeto. El primer miembro de esta estructura apunta a la tabla de funciones virtuales que AVIBall usa para acceder a sus funciones. Las aplicaciones pueden convertir esta estructura al tipo de datos PAVISTREAM. Los métodos que usan el tipo de datos PAVISTREAM solo usan el puntero a la tabla de funciones virtuales. AviBall usa internamente los miembros que siguen el puntero a la tabla de funciones virtuales.

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;