Функция GetObject (wingdi.h)
Функция GetObject извлекает сведения для указанного графического объекта.
Синтаксис
int GetObject(
[in] HANDLE h,
[in] int c,
[out] LPVOID pv
);
Параметры
[in] h
Дескриптор для интересующего графического объекта. Это может быть дескриптор одного из следующих объектов: логического растрового изображения, кисти, шрифта, палитры, пера или независимого от устройства растрового рисунка, созданного путем вызова функции CreateDIBSection .
[in] c
Количество байтов сведений, записываемых в буфер.
[out] pv
Указатель на буфер, получающий сведения о указанном графическом объекте.
В следующей таблице показан тип сведений, получаемых буфером для каждого типа графического объекта, который можно указать с помощью hgdiobj.
Тип объекта | Данные, записанные в буфер |
---|---|
|
|
|
DIBSECTION, если cbBuffer имеет значение |
|
Число СЛОВ для количества записей в логической палитре |
|
|
|
|
|
|
|
Если параметр lpvObject имеет значение NULL, возвращаемое значение функции — это количество байтов, необходимых для хранения сведений, записываемых в буфер для указанного графического объекта.
Адрес lpvObject должен находиться на 4-байтовой границе; в противном случае getObject завершается ошибкой .
Возвращаемое значение
Если функция выполнена успешно и lpvObject является допустимым указателем, возвращаемое значение — это количество байтов, хранящихся в буфере.
Если функция выполнена успешно и lpvObject имеет значение NULL, возвращаемое значение — это количество байтов, необходимых для хранения сведений, которые функция будет хранить в буфере.
Если функция выполняется неудачно, возвращается нулевое значение.
Комментарии
Буфер, на который указывает параметр lpvObject , должен быть достаточно большим для получения сведений о графическом объекте. В зависимости от графического объекта функция использует структуру BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT или LOGPEN или количество записей таблицы (для логической палитры).
Если hgdiobj является дескриптором растрового изображения, созданного путем вызова Метода CreateDIBSection, и указанный буфер достаточно велик, функция GetObject возвращает структуру DIBSECTION . Кроме того, член bmBits структуры BITMAP , содержащийся в DIBSECTION , будет содержать указатель на битовые значения растрового рисунка.
Если hgdiobj является дескриптором для растрового изображения, созданного любым другим способом, GetObject возвращает только сведения о ширине, высоте и цветовом формате растрового рисунка. Битовые значения растрового рисунка можно получить, вызвав функцию GetDIBits или GetBitmapBits .
Если hgdiobj является дескриптором для логической палитры, GetObject извлекает 2-байтовое целое число, указывающее количество записей в палитре. Функция не получает структуру LOGPALETTE , определяющую палитру. Чтобы получить сведения о записях палитры, приложение может вызвать функцию GetPaletteEntries .
Если hgdiobj является дескриптором шрифта, возвращается logFONT, используемый для создания шрифта. Если Windows пришлось выполнить некоторую интерполяцию шрифта, так как не удалось представить точный logFONT , интерполяция не будет отражена в LOGFONT. Например, если вы запрашиваете вертикальную версию шрифта, который не поддерживает вертикальную роспись, logFONT указывает, что шрифт является вертикальным, но Windows закрасит его по горизонтали.
Примеры
Пример см. в разделе Хранение образа.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | wingdi.h (включая Windows.h) |
Библиотека | Gdi32.lib |
DLL | Gdi32.dll |