GetObject function (wingdi.h)

The GetObject function retrieves information for the specified graphics object.

Syntax

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

Parameters

[in] h

A handle to the graphics object of interest. This can be a handle to one of the following: a logical bitmap, a brush, a font, a palette, a pen, or a device independent bitmap created by calling the CreateDIBSection function.

[in] c

The number of bytes of information to be written to the buffer.

[out] pv

A pointer to a buffer that receives the information about the specified graphics object.

The following table shows the type of information the buffer receives for each type of graphics object you can specify with hgdiobj.

Object type Data written to buffer
HBITMAP

BITMAP

HBITMAP returned from a call to CreateDIBSection

DIBSECTION, if cbBuffer is set to sizeof (DIBSECTION), or BITMAP, if cbBuffer is set to sizeof (BITMAP).

HPALETTE
A WORD count of the number of entries in the logical palette
HPEN returned from a call to ExtCreatePen

EXTLOGPEN

HPEN

LOGPEN

HBRUSH

LOGBRUSH

HFONT

LOGFONT

 

If the lpvObject parameter is NULL, the function return value is the number of bytes required to store the information it writes to the buffer for the specified graphics object.

The address of lpvObject must be on a 4-byte boundary; otherwise, GetObject fails.

Return value

If the function succeeds, and lpvObject is a valid pointer, the return value is the number of bytes stored into the buffer.

If the function succeeds, and lpvObject is NULL, the return value is the number of bytes required to hold the information the function would store into the buffer.

If the function fails, the return value is zero.

Remarks

The buffer pointed to by the lpvObject parameter must be sufficiently large to receive the information about the graphics object. Depending on the graphics object, the function uses a BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT, or LOGPEN structure, or a count of table entries (for a logical palette).

If hgdiobj is a handle to a bitmap created by calling CreateDIBSection, and the specified buffer is large enough, the GetObject function returns a DIBSECTION structure. In addition, the bmBits member of the BITMAP structure contained within the DIBSECTION will contain a pointer to the bitmap's bit values.

If hgdiobj is a handle to a bitmap created by any other means, GetObject returns only the width, height, and color format information of the bitmap. You can obtain the bitmap's bit values by calling the GetDIBits or GetBitmapBits function.

If hgdiobj is a handle to a logical palette, GetObject retrieves a 2-byte integer that specifies the number of entries in the palette. The function does not retrieve the LOGPALETTE structure defining the palette. To retrieve information about palette entries, an application can call the GetPaletteEntries function.

If hgdiobj is a handle to a font, the LOGFONT that is returned is the LOGFONT used to create the font. If Windows had to make some interpolation of the font because the precise LOGFONT could not be represented, the interpolation will not be reflected in the LOGFONT. For example, if you ask for a vertical version of a font that doesn't support vertical painting, the LOGFONT indicates the font is vertical, but Windows will paint it horizontally.

Examples

For an example, see Storing an Image.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

See also

BITMAP

CreateDIBSection

DIBSECTION

Device Context Functions

Device Contexts Overview

EXTLOGPEN

GetBitmapBits

GetDIBits

GetPaletteEntries

GetRegionData

LOGBRUSH

LOGFONT

LOGPALETTE

LOGPEN