Creazione di un puntatore a oggetti
[La funzionalità associata a questa pagina, i gestori di file personalizzati e di flusso, è una funzionalità legacy. È stata sostituita dalla classe MediaStreamSource. La classe MediaStreamSource è stata ottimizzata per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi la classe MediaStreamSource anziché i gestori di flusso e file personalizzati, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
AVIBall usa la struttura seguente come puntatore a oggetti. Il primo membro di questa struttura punta alla tabella delle funzioni virtuali usata da AVIBall per accedere alle relative funzioni. Le applicazioni possono eseguire il cast di questa struttura al tipo di dati PAVISTREAM. I metodi che usano il tipo di dati PAVISTREAM usano solo il puntatore alla tabella delle funzioni virtuali. I membri che seguono il puntatore alla tabella delle funzioni virtuali vengono usati internamente da 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;