CopyImage

The CopyImage function creates a new image (icon, cursor, or bitmap) and copies the attributes of the specified image to the new one. If necessary, the function stretches the bits to fit the desired size of the new image.

HANDLE CopyImage(
  HANDLE hImage,  // handle to the image to copy
  UINT uType,     // type of image to copy
  int cxDesired,  // desired width of new image
  int cyDesired,  // desired height of new image
  UINT fuFlags    // copy flags
);
 

Parameters

hinst
Handle to an instance of the module that contains the image to be copied.
uType
Specifies the type of image to be copied. This parameter can be one of the following values:
Value Meaning
IMAGE_BITMAP Copies a bitmap.
IMAGE_CURSOR Copies a cursor.
IMAGE_ICON Copies an icon.

cxDesired
Specifies the desired width, in pixels, of the image.
cyDesired
Specifies the desired height, in pixels, of the image.
fuFlags
Specifies a combination of the following values:
Value Meaning
LR_COPYDELETEORG Deletes the original image after creating the copy.
LR_COPYRETURNORG Creates an exact copy of the image, ignoring the cxDesired and cyDesired parameters.
LR_MONOCHROME Creates a new monochrome image.
LR_COPYFROMRESOURCE Tries to reload an icon or cursor resource from the original resource file rather than simply copying the current image. This is useful for creating a different-sized copy when the resource file contains multiple sizes of the resource. Without this flag, CopyImage stretches the original image to the new size. If this flag is set, CopyImage uses the size in the resource file closest to the desired size.

This will succeed only if hImage was loaded by LoadIcon or LoadCursor, or by LoadImage with the LR_SHARED flag.


Return Values

If the function succeeds, the return value is the handle to the newly created image.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

When you are finished using the resource, you can release its associated memory by calling one of the functions in the following table.

Resource Release function
Bitmap DeleteObject
Cursor DestroyCursor
Icon DestroyIcon

The system automatically deletes the resource when its process terminates, however, calling the appropriate function saves memory and decreases the size of the process's working set.

QuickInfo

  Windows NT: Requires version 3.5 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winuser.h.
  Import Library: Use user32.lib.

See Also

Resources Overview, Resource Functions, LoadImage