Partager via


Création d’un pointeur d’objet

[La fonctionnalité associée à cette page, Gestionnaires de fichiers personnalisés et de flux, est une fonctionnalité héritée. Il a été remplacé par la classe MediaStreamSource. La classe MediaStreamSource a été optimisée pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise la classe MediaStreamSource au lieu des gestionnaires de fichiers personnalisés et de flux, dans la mesure du possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

AVIBall utilise la structure suivante comme pointeur d’objet. Le premier membre de cette structure pointe vers la table de fonctions virtuelles qu’AVIBall utilise pour accéder à ses fonctions. Les applications peuvent caster cette structure en type de données PAVISTREAM. Les méthodes qui utilisent le type de données PAVISTREAM utilisent uniquement le pointeur vers la table de fonctions virtuelles. Les membres qui suivent le pointeur vers la table de fonctions virtuelles sont utilisés en interne par 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;