GetObject 関数 (wingdi.h)
GetObject 関数は、指定したグラフィックス オブジェクトの情報を取得します。
構文
int GetObject(
[in] HANDLE h,
[in] int c,
[out] LPVOID pv
);
パラメーター
[in] h
目的のグラフィックス オブジェクトへのハンドル。 これは、論理ビットマップ、ブラシ、フォント、パレット、ペン、または CreateDIBSection 関数を呼び出して作成されたデバイスに依存しないビットマップのいずれかへのハンドルです。
[in] c
バッファーに書き込まれる情報のバイト数。
[out] pv
指定したグラフィックス オブジェクトに関する情報を受け取るバッファーへのポインター。
次の表は、 hgdiobj で指定できるグラフィックス オブジェクトの種類ごとにバッファーが受け取る情報の種類を示しています。
オブジェクトの種類 | バッファーに書き込まれたデータ |
---|---|
|
|
|
cbBuffer が に設定されている場合は DIBSECTION、cbBuffer が に |
|
論理パレット内のエントリ数の WORD 数 |
|
|
|
|
|
|
|
lpvObject パラメーターが NULL の場合、関数の戻り値は、指定されたグラフィックス オブジェクトのバッファーに書き込む情報を格納するために必要なバイト数です。
lpvObject のアドレスは、4 バイト境界上にある必要があります。それ以外の場合、GetObject は失敗します。
戻り値
関数が成功し、 lpvObject が有効なポインターである場合、戻り値はバッファーに格納されているバイト数です。
関数が成功し、 lpvObject が NULL の場合、戻り値は関数がバッファーに格納する情報を保持するために必要なバイト数です。
関数が失敗した場合は、0 を返します。
注釈
lpvObject パラメーターが指すバッファーは、グラフィックス オブジェクトに関する情報を受け取るために十分な大きさである必要があります。 グラフィックス オブジェクトに応じて、この関数は BITMAP、DIBSECTION、EXTLOGPEN、LOGBRUSH、LOGFONT、または LOGPEN 構造体、またはテーブル エントリの数 (論理パレットの場合) を使用します。
hgdiobj が CreateDIBSection を呼び出して作成されたビットマップのハンドルであり、指定されたバッファーが十分な大きさである場合、GetObject 関数は DIBSECTION 構造体を返します。 さらに、DIBSECTION 内に含まれる BITMAP 構造体の bmBits メンバーには、ビットマップのビット値へのポインターが含まれます。
hgdiobj が他の方法で作成されたビットマップへのハンドルである場合、GetObject はビットマップの幅、高さ、および色の書式情報のみを返します。 ビットマップのビット値を取得するには、 GetDIBits または GetBitmapBits 関数を 呼び出します。
hgdiobj が論理パレットのハンドルである場合、GetObject はパレット内のエントリ数を指定する 2 バイトの整数を取得します。 この関数は、パレットを定義する LOGPALETTE 構造体を取得しません。 パレット エントリに関する情報を取得するために、アプリケーションは GetPaletteEntries 関数を呼び出すことができます。
hgdiobj がフォントのハンドルである場合、返される LOGFONT は、フォントの作成に使用される LOGFONT です。 正確な LOGFONT を表せなかったために、Windows でフォントの補間を行う必要がある場合、補間は LOGFONT に反映されません。 たとえば、垂直方向の塗りつぶしをサポートしていないフォントの垂直バージョンを求める場合、 LOGFONT はフォントが垂直であることを示しますが、Windows では水平方向に描画されます。
例
例については、「 イメージの格納」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |