Функция GetObject


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

Синтаксис 

int GetObject(
  HGDIOBJ hgdiobj,  // дескриптор графического объекта
  int cbBuffer,     // размер буфера для информации об объекте
  LPVOID lpvObject  // буфер с информацией об объекте
);

Параметры

hgdiobj

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

cbBuffer

[in] Устанавливает число байтов информации, которая будет записана на буфер.

lpvObject

[out] Указатель на буфер, который принимает информацию об заданном графическом объекте.

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

 

Тип объекта Записываемые данные в буфер
HBITMAP BITMAP 
HBITMAP возвращается при вызове функции CreateDIBSection DIBSECTION, если параметр cbBuffer установлен в sizeof(DIBSECTION), или BITMAP, если параметр cbBuffer установлен в sizeof(BITMAP) 
HPALETTE  Тип WORD (СЛОВО) итоговое число  записей в логической палитре 
HPEN возвращается при вызове функции  ExtCreatePen EXTLOGPEN
HPEN LOGPEN 
HBRUSH LOGBRUSH 
HFONT LOGFONT 
 

Если параметр lpvObject равен ПУСТО (NULL), функция возвращает значение равное числу байтов, необходимых, чтобы сохранить информацию, которую она запишет в буфер для заданного графического объекта.

Возвращаемые значения

Если функция завершается успешно, а параметр lpvObject - правильный указатель, возвращаемое значение - число байтов, сохраненных в буфере.

Если функция завершается успешно, а параметр lpvObject равен  ПУСТО (NULL), возвращаемое значение - число(номер) байтов, необходимых, чтобы вместить  информацию, которую функция должна сохранить  в буфере.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль.

Windows NT/2000/XP: Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.

Замечания 

Буфер, на который указывает параметр 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, которая возвращается, является структурой LOGFONT,  использованной  для создания шрифта. Если Windows должен сделать некоторую интерполяцию шрифта, потому что точный LOGFONT не может быть представлен, интерполяция не будет отражена в LOGFONT. Например, если Вы просите  вертикальную версию шрифта, который не поддерживает рисование по вертикали, LOGFONT указывает, что шрифт - вертикальный, но Windows будет рисовать его горизонтально.

Windows 95/98/Me: GetObjectW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Код примера

Пример смотри в статье Сохранение изображения.

Смотри также 

Обзор Контексты  устройства, Функции, используемые контекстами устройства, CreateDIBSection, GetBitmapBits, GetDIBits, GetPaletteEntries, GetRegionData, BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT, LOGPALETTE, LOGPEN

Размещение и совместимость GetObject

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Gdi32.lib

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Реализуется как версии Unicode и  ANSI для Windows 2000/XP. А также поддерживается программой Microsoft Layer for Unicode.

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz