Функция CMTranslateRGBsExt переносит точечный рисунок с одного определенного формата в другой определенный формат и периодически запрашивает функцию обратного вызова, если Вы это задали, сообщать о ходе операции и разрешить вызывающему приложению завершить перенос.
Синтаксис
BOOL WINAPI CMTranslateRGBsExt( HCMTRANSFORM hcmTransform, LPVOID lpSrcBits, BMFORMAT bmInput, DWORD dwWidth, DWORD dwHeight, DWORD dwInputStride, LPVOID lpDestBits, BMFORMAT bmOutput, DWORD dwOutputStride, LPBMCALLBACKFN lpfnCallback, ULONG ulCallbackData ); |
hcmTransform
Определяет используемое преобразование цвета.
lpSrcBits
Указатель на переносимый точечный рисунок.
bmInput
Определяет вводимый формат точечного рисунка.
dwWidth
Определяет число пикселей на строку развертки во вводимом точечном рисунке.
dwHeight
Определяет число строк развертки во вводимом точечном рисунке.
dwInputStride
Определяет число байтов от начала одной строки развертки до начала следующей во вводимом точечном рисунке. Если параметр dwInputStride установлен в нуль, Модуль управления цветом (CMM) должен предположить, что строки развертки дополняются, чтобы выровняться по границе ДВОЙНОГО СЛОВА (DWORD).
lpDestBits
Указывает на целевой буфер, в который, помещается перенесенный точечный рисунок.
bmOutput
Определяет выводимый формат точечного рисунка.
dwOutputStride
Определяет число байтов от начала одной строки развертки до начала следующей во вводимом точечном рисунке. Если dwOutputStride установлен в нуль, Модуль управления цветом (CMM) должен дополнить строки развертки так, чтобы они выровнялись по границе ДВОЙНОГО СЛОВА (DWORD).
Specifies the number of bytes from the beginning of one scan line to the
beginning of the next in the input bitmap. If
dwOutputStride is set
to zero, the CMM should pad scan lines so that they are DWORD-aligned.
От переводчика: видимо здесь ошибка и все-таки (судя по названию параметра dwOutputStride) речь идет о выводимом точечном рисунке, так как output=вывод (данных) . |
lpfnCallback
Указатель на поставляемую приложением функцию обратного вызова, периодически вызываемую CMTranslateRGBsExt, чтобы сообщать о ходе операции и дать возможность вызываемому процессу отменить перенос. (См. описание функции ICMProgressProcCallback.)
ulCallbackData
Данные возвращаемые в функцию обратного вызова, например, чтобы идентифицировать перенос, который сообщает о ходе операции.
Если эта функция завершается успешно, возвращаемое значение - ИСТИНА (TRUE).
Если эта функция завершается ошибкой, возвращаемое значение - ЛОЖЬ (FALSE), а Модуль управления цветом (CMM) должен вызвать функцию SetLastError, чтобы установить код последней ошибки в правильное значение, определенное в Winerror.h.
Каждый Модуль управления цветом (CMM) обязан экспортировать эту функцию.
При записи в целевой буфер, Модуль управления цветом (CMM) должен удостовериться, что строки развертки дополняются, чтобы выровняться по границе ДВОЙНОГО СЛОВА (DWORD).
Если форматы вводимых данных и выводимых данных не совместимы с преобразованием цвета, эта функция завершается ошибкой.
Если и вводимый и выводимый формат данных точечного рисунка с 3 каналами, 4 байта на пиксель как в случае BM_xRGBQUADS, 4-ый байт должен быть сохранен и скопирован в буфер выводимых данных.
Если функция обратного вызова возвращает нуль, обработка должна быть отменена, а функция CMTranslateRGBsExt должен возвратить нуль, чтобы указать сбой; буфер выводимых данных может частично заполниться.
Обратите внимание! на то, что эта функция должна поддерживать перенос на месте работы. Таким образом, всякий раз, когда пространство, занимаемое в памяти выводимыми данными меньше или равно пространству, занимаемому в памяти вводимыми данными, эта функция должна быть в состоянии переносить цвета точечного рисунка, даже тогда, когда источник и буфера предназначения - те же самые. |
Смотри также
Обзор Основные концепции управления цветом, Функции, используемые ICM, ICMProgressProcCallback, Структуры заголовка точечного рисунка Windows
Размещение и совместимость CMTranslateRGBsExt |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Нет |
е | Windows Me | Да |
н | Windows 98 | Да |
т | Windows 95 | Нет |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Нет |
в | ||
е | ||
р | ||
Используемая библиотека | Gdi32.lib | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Wingdi.h | |
- включено в | - | |
Unicode | Нет | |
Замечания по платформе | Не имеется |