Een objectaanwijzer maken
[De functie die is gekoppeld aan deze pagina, Aangepast Bestand en Stream-handlers, is een verouderde functie. Het is vervangen door MediaStreamSource-klasse. MediaStreamSource-klasse is geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code MediaStreamSource-klasse te gebruiken in plaats van aangepast bestand en Stream-handlers, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]
AVIBall gebruikt de volgende structuur als objectpointer. Het eerste lid van deze structuur verwijst naar de virtuele functietabel die AVIBall gebruikt voor toegang tot de functies. Toepassingen kunnen deze structuur casten naar het gegevenstype PAVISTREAM. Methoden die het gegevenstype PAVISTREAM gebruiken, gebruiken alleen de aanwijzer naar de virtuele functietabel. De leden die de aanwijzer volgen op de virtuele functietabel, worden intern gebruikt door 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;