Drawing Data

The following example uses the ICDraw function and the ICDrawStart, ICDrawStop, ICDrawFlush, and ICDrawEnd macros to draw data on the screen.

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