From aldeid
Jump to navigation Jump to search


The GetDIBits function retrieves the bits of the specified compatible bitmap and copies them into a buffer as a DIB using the specified format.


int GetDIBits(
  _In_     HDC          hdc,
  _In_     HBITMAP      hbmp,
  _In_     UINT         uStartScan,
  _In_     UINT         cScanLines,
  _Out_    LPVOID       lpvBits,
  _Inout_  LPBITMAPINFO lpbi,
  _In_     UINT         uUsage


hdc [in]
A handle to the device context.
hbmp [in]
A handle to the bitmap. This must be a compatible bitmap (DDB).
uStartScan [in]
The first scan line to retrieve.
cScanLines [in]
The number of scan lines to retrieve.
lpvBits [out]
A pointer to a buffer to receive the bitmap data. If this parameter is NULL, the function passes the dimensions and format of the bitmap to the BITMAPINFO structure pointed to by the lpbi parameter.
lpbi [in, out]
A pointer to a BITMAPINFO structure that specifies the desired format for the DIB data.
uUsage [in]
The format of the bmiColors member of the BITMAPINFO structure. It must be one of the following values.
Value Meaning
DIB_PAL_COLORS The color table should consist of an array of 16-bit indexes into the current logical palette.
DIB_RGB_COLORS The color table should consist of literal red, green, blue (RGB) values.

Return value

If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap.

If the lpvBits parameter is NULL and GetDIBits successfully fills the BITMAPINFO structure, the return value is nonzero.

If the function fails, the return value is zero.

This function can return the following value.

Return code Description
ERROR_INVALID_PARAMETER One or more of the input parameters is invalid.