Détermination du format de sortie d’un compresseur
[La fonctionnalité associée à cette page, Video Compression Manager, est une fonctionnalité héritée. Microsoft recommande vivement que le nouveau code n’utilise pas cette fonctionnalité.]
L’exemple suivant utilise la macro de taille ICCompressGetFormat pour déterminer la taille de mémoire tampon nécessaire pour les données spécifiant le format de compression, alloue une mémoire tampon de la taille appropriée à l’aide de la fonction GlobalAlloc et récupère les informations de format de compression à l’aide de 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);
L’exemple suivant utilise la macro ICCompressQuery pour déterminer si un compresseur peut gérer les formats d’entrée et de sortie.
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.
}
L’exemple suivant utilise la macro ICCompressGetSize pour déterminer la taille de la mémoire tampon et alloue une mémoire tampon de cette taille à l’aide de 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);