Поделиться через


Функция GetObject (wingdi.h)

Функция GetObject извлекает сведения для указанного графического объекта.

Синтаксис

int GetObject(
  [in]  HANDLE h,
  [in]  int    c,
  [out] LPVOID pv
);

Параметры

[in] h

Дескриптор для интересующего графического объекта. Это может быть дескриптор одного из следующих объектов: логического растрового изображения, кисти, шрифта, палитры, пера или независимого от устройства растрового рисунка, созданного путем вызова функции CreateDIBSection .

[in] c

Количество байтов сведений, записываемых в буфер.

[out] pv

Указатель на буфер, получающий сведения о указанном графическом объекте.

В следующей таблице показан тип сведений, получаемых буфером для каждого типа графического объекта, который можно указать с помощью hgdiobj.

Тип объекта Данные, записанные в буфер
HBITMAP

РАСТРОВОГО ИЗОБРАЖЕНИЯ

HBITMAP , возвращенный вызовом CreateDIBSection

DIBSECTION, если cbBuffer имеет значение sizeof (DIBSECTION) , или BITMAP, если cbBuffer имеет значение sizeof (BITMAP).

HPALETTE
Число СЛОВ для количества записей в логической палитре
HPEN , возвращенный вызовом ExtCreatePen

EXTLOGPEN

HPEN

LOGPEN

HBRUSH

LOGBRUSH

HFONT

LOGFONT

 

Если параметр 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

См. также раздел

РАСТРОВОГО ИЗОБРАЖЕНИЯ

CreateDIBSection

DIBSECTION

Функции контекста устройства

Общие сведения о контекстах устройств

EXTLOGPEN

GetBitmapBits

Getdibits

GetPaletteEntries

GetRegionData

LOGBRUSH

LOGFONT

LOGPALETTE

LOGPEN