CopyImage 関数 (winuser.h)

新しいイメージ (アイコン、カーソル、またはビットマップ) を作成し、指定したイメージの属性を新しいイメージにコピーします。 必要に応じて、関数は新しいイメージの目的のサイズに合わせてビットを拡張します。

構文

HANDLE CopyImage(
  [in] HANDLE h,
  [in] UINT   type,
  [in] int    cx,
  [in] int    cy,
  [in] UINT   flags
);

パラメーター

[in] h

型: HANDLE

コピーするイメージへのハンドル。

[in] type

型: UINT

コピーするイメージの種類。 このパラメーターには、次の値のいずれかを指定できます。

意味
IMAGE_BITMAP
0
ビットマップをコピーします。
IMAGE_CURSOR
2
カーソルをコピーします。
IMAGE_ICON
1
アイコンをコピーします。

[in] cx

型: int

イメージの目的の幅 (ピクセル単位)。 この値が 0 の場合、返されるイメージの幅は元の hImage と同じです。

[in] cy

型: int

イメージの目的の高さ (ピクセル単位)。 この値が 0 の場合、返されるイメージの高さは元の hImage と同じになります。

[in] flags

型: UINT

このパラメーターには、次の 1 つ以上の値を指定できます。

意味
LR_COPYDELETEORG
0x00000008
コピーの作成後に元のイメージを削除します。
LR_COPYFROMRESOURCE
0x00004000
単に現在のイメージをコピーするのではなく、元のリソース ファイルからアイコンまたはカーソル リソースを再読み込みしようとします。 これは、リソース ファイルに複数のサイズのリソースが含まれている場合に、異なるサイズのコピーを作成する場合に便利です。 このフラグがない場合、 CopyImage は 元のイメージを新しいサイズに拡大します。 このフラグが設定されている場合、 CopyImage は目的のサイズに最も近いリソース ファイルのサイズを使用します。 これは、 hImageLoadIcon または LoadCursor によって読み込まれた場合、または LR_SHARED フラグを持つ LoadImage によって読み込まれた場合にのみ成功します。
LR_COPYRETURNORG
0x00000004
コピーの基準 (正しい寸法と色深度) を満たす場合は、元の hImage を返します。この場合、 LR_COPYDELETEORG フラグは無視されます。 このフラグが指定されていない場合は、常に新しいオブジェクトが作成されます。
LR_CREATEDIBSECTION
0x00002000
これが設定され、新しいビットマップが作成された場合、ビットマップは DIB セクションとして作成されます。 それ以外の場合、ビットマップ イメージはデバイスに依存するビットマップとして作成されます。 このフラグは、 uTypeIMAGE_BITMAPされている場合にのみ有効です。
LR_DEFAULTCOLOR
0x00000000
既定の色形式を使用します。
LR_DEFAULTSIZE
0x00000040
cxDesired 値または cyDesired 値が 0 に設定されている場合は、カーソルまたはアイコンのシステム メトリック値で指定された幅または高さを使用します。 このフラグが指定されておらず、 cxDesiredcyDesired が 0 に設定されている場合、関数は実際のリソース サイズを使用します。 リソースに複数のイメージが含まれている場合、関数は最初のイメージのサイズを使用します。
LR_MONOCHROME
0x00000001
新しいモノクロ イメージを作成します。

戻り値

型: HANDLE

関数が成功した場合、戻り値は新しく作成されたイメージへのハンドルです。

関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

リソースの使用が完了したら、次の表のいずれかの関数を呼び出すことによって、関連付けられているメモリを解放できます。

リソース Release 関数
Bitmap DeleteObject
カーソル DestroyCursor
アイコン DestroyIcon
 

ただし、システムはプロセスの終了時にリソースを自動的に削除しますが、適切な関数を呼び出すとメモリが節約され、プロセスのワーキング セットのサイズが小さくなります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-gui-l1-3-0 (Windows 10 バージョン 10.0.10240 で導入)

関連項目

概念

Loadimage

リファレンス

リソース