Determinazione del formato di output di un compressore
[La funzionalità associata a questa pagina, Gestione compressione video, è una funzionalità legacy. Microsoft consiglia vivamente che il nuovo codice non usi questa funzionalità.
Nell'esempio seguente viene usata la macro icCompressGetFormat per determinare le dimensioni del buffer necessarie per i dati che specificano il formato di compressione, alloca un buffer delle dimensioni appropriate usando la funzione GlobalAlloc e recupera le informazioni sul formato di compressione usando la macro ICCompressGetFormat .
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// *lpbiIn must be initialized to the input format.
dwFormatSize = ICCompressGetFormatSize(hIC, lpbiIn);
h = GlobalAlloc(GHND, dwFormatSize);
lpbiOut = (LPBITMAPINFOHEADER)GlobalLock(h);
ICCompressGetFormat(hIC, lpbiIn, lpbiOut);
Nell'esempio seguente viene usata la macro ICCompressQuery per determinare se un compressore può gestire i formati di input e output.
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// Both *lpbiIn and *lpbiOut must be initialized to the respective
// formats.
if (ICCompressQuery(hIC, lpbiIn, lpbiOut) == ICERR_OK)
{
// Format is supported; use the compressor.
}
Nell'esempio seguente viene usata la macro ICCompressGetSize per determinare le dimensioni del buffer e alloca un buffer di tale dimensione usando GlobalAlloc.
// Find the worst-case buffer size.
dwCompressBufferSize = ICCompressGetSize(hIC, lpbiIn, lpbiOut);
// Allocate a buffer and get lpOutput to point to it.
h = GlobalAlloc(GHND, dwCompressBufferSize);
lpOutput = (LPVOID)GlobalLock(h);