CMTranslateRGBsExt 関数 (icm.h)
ビットマップを定義された 1 つの形式から別の定義済みの形式に変換し、コールバック関数が指定されている場合は定期的に呼び出して進行状況を報告し、呼び出し元のアプリケーションが翻訳を終了することを許可します。
構文
BOOL CMTranslateRGBsExt(
HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits,
BMFORMAT bmInput,
DWORD dwWidth,
DWORD dwHeight,
DWORD dwInputStride,
LPVOID lpDestBits,
BMFORMAT bmOutput,
DWORD dwOutputStride,
LPBMCALLBACKFN lpfnCallback,
LPARAM ulCallbackData
);
パラメーター
hcmTransform
使用する色変換を指定します。
lpSrcBits
変換するビットマップへのポインター。
bmInput
入力ビットマップ形式を指定します。
dwWidth
入力ビットマップ内のスキャン行あたりのピクセル数を指定します。
dwHeight
入力ビットマップ内のスキャン行の数を指定します。
dwInputStride
1 つのスキャン行の先頭から入力ビットマップ内の次のスキャン行の先頭までのバイト数を指定します。 dwInputStride が 0 に設定されている場合、CMM は、スキャン行が DWORD アラインされるように埋め込まれていると想定する必要があります。
lpDestBits
変換されたビットマップを配置するコピー先バッファーを指します。
bmOutput
出力ビットマップ形式を指定します。
dwOutputStride
1 つのスキャン行の先頭から入力ビットマップ内の次のスキャン行の先頭までのバイト数を指定します。 dwOutputStride が 0 に設定されている場合、CMM はスキャン行を DWORD で整列するように埋め込む必要があります。
lpfnCallback
CMTranslateRGBsExt によって定期的に呼び出されるアプリケーション指定のコールバック関数へのポインター。進行状況を報告し、呼び出し元のプロセスが翻訳を取り消せるようにします。 ( 「ICMProgressProcCallback」を参照してください)。
ulCallbackData
コールバック関数に返されるデータ。たとえば、進行状況を報告している翻訳を識別します。
戻り値
この関数が成功した場合、戻り値は TRUE になります。
この関数が失敗した場合、戻り値は FALSE で、CMM は SetLastError を呼び出して、最後のエラーを Winerror.h で定義された有効なエラー値に設定する必要があります。
解説
この関数をエクスポートするには、すべての CMM が必要です。
コピー先バッファーに書き込む場合、CMM はスキャン行が DWORD アラインメントされるように埋め込まれていることを確認する必要があります。
入力形式と出力形式がカラー変換と互換性がない場合、この関数は失敗します。
入力ビットマップ形式と出力ビットマップ形式の両方が、BM_xRGBQUADSの場合と同様に 1 ピクセルあたり 4 バイトの 3 チャネルである場合は、4 番目のバイトを保持して出力バッファーにコピーする必要があります。
コールバック関数が 0 を返す場合は、処理を取り消し、 CMTranslateRGBsExt はエラーを示すために 0 を返す必要があります。出力バッファは部分的に満たされ得る。
この関数は、インプレース翻訳をサポートする必要があることに注意してください。 つまり、出力のメモリ 占有領域が入力のメモリ 占有領域以下である場合は常に、この関数は、ソース バッファーとコピー先バッファーが同じ場合でもビットマップの色を変換できる必要があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | icm.h |