|
From: <jos...@ya...> - 2001-06-25 07:11:32
|
Actually yes but indirectly. You call LoadImage to get the handle of
the bmp, then call GetObject to get the data you're asking for. See
below for a description of the GetObject function.
--- Gregor Peter <Gre...@dl...> escribió: > Hmmm, the
LoadImage( ... ) is a part of the Programmers Reference
> but returns
> (just) a HANDLE .
>
> What I need is a pointer to a BITMAPFILEHEADER to get some
> informations
> SetDIBBitsToDevice( ... ) needs to be able to display the loaded
> Image.
>
> I can't find any informations about HANDLEs in the Windows API
> reference.
> Is it possible to feed the BITMAPFILEHEADER structure via this
> HANDLE?
>
> Gregor
The GetObject function obtains information about a specified graphics
object. Depending on the graphics object, the function places a
filled-in BITMAP, DIBSECTION, EXTLOGPEN, LOGBRUSH, LOGFONT, or LOGPEN
structure, or a count of table entries (for a logical palette), into a
specified buffer.
int GetObject(
HGDIOBJ hgdiobj, // handle to graphics object of interest
int cbBuffer, // size of buffer for object information
LPVOID lpvObject // pointer to buffer for object information
);
Parameters
hgdiobj
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.
cbBuffer
Specifies the number of bytes of information to be written to the
buffer.
lpvObject
Points to a buffer that is to receive 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:
hgdiobj Type Data Written to *lpvObject
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.
Return Values
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. To get extended error
information, call GetLastError.
Remarks
The buffer pointed to by the lpvObject parameter must be sufficiently
large to receive the information about the graphics object.
If hgdiobj identifies 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 identifies 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 identifies a logical palette, GetObject retrieves a two-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.
_______________________________________________________________
Do You Yahoo!?
Yahoo! Messenger: Comunicación instantánea gratis con tu gente -
http://messenger.yahoo.es
|