Desenhando dados
[O recurso associado a esta página, Gerenciador de Compactação de Vídeo, é um recurso herdado. A Microsoft recomenda fortemente que o novo código não use esse recurso.]
O exemplo a seguir usa a função ICDraw e as macros ICDrawStart, ICDrawStop, ICDrawFlush e ICDrawEnd para desenhar dados na tela.
DWORD dwNumBuffers;
// Find out how many buffers need filling before drawing starts.
ICGetBuffersWanted(hIC, &dwNumBuffers);
for (dw = 0; dw < dwNumBuffers; dw++)
{
ICDraw(hIC, 0, lpFormat, lpData, cbData, dw); // fill the pipeline
// Point lpFormat and lpData to next format and buffer.
}
ICDrawStart(hIC); // starts the clock
dw = 0;
while (fPlaying)
{
ICDraw(hIC, 0, lpFormat, lpData, chData, dw); // fill more buffers
// Point lpFormat and lpData to next format and buffer,
// update dw.
}
ICDrawStop(hIC); // stops drawing and decompressing when done
ICDrawFlush(hIC); // flushes any existing buffers
ICDrawEnd(hIC); // ends decompression