wingdi.h


GetObject

Obtiene información sobre un objeto gráfico especificado. Dependiendo del objeto concreto, la función rellena una estructura BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT o LOGPEN, o un número de entradas de la tabla, para paletas lógicas, dentro del buffer especificado.

Sintaxis

int GetObject(
    HGDIOBJ  hgdiobj,  // manipulador del objeto gráfico de interés
    int  cbBuffer,     // tamaño del buffer para la información sobre el objeto
    LPVOID  lpvObject  // puntero al buffer para la información
   );

Parámetros:

hgdiobj: un manipulador del objeto gráfico. Puede ser un manipulador a uno de los siguientes: un mapa de bits lógico, un pincel, una fuente, una paleta, una pluma o un mapa de bits independiente del dispositivo creado mediante una llamada a la función CreateDIBSection.

cbBuffer: especifica el número de bytes de información a escribir en el buffer.

lpvObject: apunta al buffer que recibirá la información sobre el objeto especificado.

La tabla siguiente muestra el tipo de información que recibirá el buffer para cada tipo de objeto gráfico que puede especificarse en hgdiobj:

Tipo hgdiobj Datos escritos en *lpvObject
HBITMAP BITMAP
HBITMAP devuelto por una llamada a CreateDIBSection DIBSECTION, si para cbBuffer se usa sizeof(DIBSECTION), o BITMAP, si se usa sizeof(BITMAP)
HPALETTE Un contador WORD del número de entradas en la paleta lógica
HPEN devuelto por una llamada a ExtCreatePen EXTLOGPEN
HPEN LOGPEN
HBRUSH LOGBRUSH
HFONT LOGFONT

Si el parámetro lpvObject es NULL, el valor de retorno de la función es el número de bytes necesarios para almacenar la información que escribirá en el buffer para el objeto gráfico especificado.

Valor de retorno

Si la función tiene éxito, y lpvObject es un puntero válido, el valor de retorno es el número de bytes almacenados en el buffer.

Si la función tiene éxito, y lpvObject es NULL, el valor de retorno es el número de bytes necesarios para contener la información que la función almacenaría en el buffer.

Si la función falla, el valor de retorno es cero. Para obtener mayor información sobre el error, llamar a GetLastError.

Observaciones

El buffer apuntado por el parámetro lpvObject debe ser suficientemente largo como para recibir la información sobre el objeto gráfico.

Si hgdiobj identifica a un mapa de bits creado mediante la función CreateDIBSection, y el buffer especificado tiene el tamaño suficiente, la función GetObject devuelve una estructura DIBSECTION. Además, el miembro bmBits de la estructura BITMAP contenido dentro de DIBSECTION contendrá un puntero a los valores de bit del mapa de bits.

Si hgdiobj identifica a un mapa de bits creado de otro modo, GetObject devuelve sólo la anchura, altura y formato de color del mapa de bits. Se puede obtener los valores de bit mediante una llamada a la función GetDIBits o GetBitmapBits.

Si hgdiobj identifica a una paleta lógica, GetObject recibirá un entero de dos bytes que especifica el número de entradas en la paleta. La función no recupera la estructura LOGPALETTE que define la paleta. Para obtener información sobre las entradas de la paleta, se puede llamar a la función GetPaletteEntries.