次の方法で共有


コンプレッサーの出力フォーマットの決定

[このページに関連付けられている機能 Video Compression Manager は、従来の機能です。 Microsoft では、新しいコードではこの機能を使用しないことを強くお勧めします。

次の例では、 ICCompressGetFormat サイズ マクロを使用して、圧縮形式を指定するデータに必要なバッファー サイズを決定し、 GlobalAlloc 関数を使用して適切なサイズのバッファーを割り当て、 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); 
 

次の例では 、ICCompressQuery マクロを使用して、コンプレッサーが入力および出力形式を処理できるかどうかを判断します。

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. 
 
}
 
 

次の例では 、ICCompressGetSize マクロを使用してバッファー サイズを決定し、 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);