com.sun.jna.platform.win32

## Interface GDI32

All Superinterfaces:
  AltCallingConvention, Library, StdCall, StdCallLibrary

    public interface GDI32
    extends StdCallLibrary

Definition (incomplete) of `gdi32.dll`.

Author:
  Andreas "PAX" Lück, onkelpax-git[at]yahoo.de

### Nested Class Summary

### Nested classes/interfaces inherited from interface com.sun.jna.win32.StdCallLibrary

`StdCallLibrary.StdCallCallback`

### Nested classes/interfaces inherited from interface com.sun.jna.Library

`Library.Handler`

### Field Summary

Fields
`static GDI32` `INSTANCE`
`static int` `SRCCOPY` Used with BitBlt.

### Fields inherited from interface com.sun.jna.win32.StdCallLibrary

`FUNCTION_MAPPER, STDCALL_CONVENTION`

### Fields inherited from interface com.sun.jna.Library

`OPTION_ALLOW_OBJECTS, OPTION_CALLING_CONVENTION, OPTION_CLASSLOADER, OPTION_FUNCTION_MAPPER, OPTION_INVOCATION_MAPPER, OPTION_OPEN_FLAGS, OPTION_STRING_ENCODING, OPTION_STRUCTURE_ALIGNMENT, OPTION_SYMBOL_PROVIDER, OPTION_TYPE_MAPPER`

### Method Summary

All Methods Instance Methods Abstract Methods
`boolean` `BitBlt(WinDef.HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, WinDef.HDC hdcSrc, int nXSrc, int nYSrc, int dwRop)` The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.
`int` `ChoosePixelFormat(WinDef.HDC hdc, WinGDI.PIXELFORMATDESCRIPTOR.ByReference ppfd)` The ChoosePixelFormat function attempts to match an appropriate pixel format supported by a device context to a given pixel format specification.
`int` `CombineRgn(WinDef.HRGN hrgnDest, WinDef.HRGN hrgnSrc1, WinDef.HRGN hrgnSrc2, int fnCombineMode)` The CombineRgn function combines two regions and stores the result in a third region.
`WinDef.HBITMAP` `CreateCompatibleBitmap(WinDef.HDC hDC, int width, int height)` The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context.
`WinDef.HDC` `CreateCompatibleDC(WinDef.HDC hDC)` The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device.
`WinDef.HBITMAP` `CreateDIBitmap(WinDef.HDC hDC, WinGDI.BITMAPINFOHEADER lpbmih, int fdwInit, Pointer lpbInit, WinGDI.BITMAPINFO lpbmi, int fuUsage)` The CreateDIBitmap function creates a compatible bitmap (DDB) from a DIB and, optionally, sets the bitmap bits.
`WinDef.HBITMAP` `CreateDIBSection(WinDef.HDC hDC, WinGDI.BITMAPINFO pbmi, int iUsage, PointerByReference ppvBits, Pointer hSection, int dwOffset)` The CreateDIBSection function creates a DIB that applications can write to directly.
`WinDef.HRGN` `CreatePolyPolygonRgn(WinDef.POINT[] lppt, int[] lpPolyCounts, int nCount, int fnPolyFillMode)` The CreatePolyPolygonRgn function creates a region consisting of a series of polygons.
`WinDef.HRGN` `CreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect)` The CreateRectRgn function creates a rectangular region.
`WinDef.HRGN` `CreateRoundRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse)` The CreateRoundRectRgn function creates a rectangular region with rounded corners.
`boolean` `DeleteDC(WinDef.HDC hDC)` The DeleteDC function deletes the specified device context (DC).
`boolean` `DeleteObject(WinNT.HANDLE hObject)` The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object.
`WinDef.HRGN` `ExtCreateRegion(Pointer lpXform, int nCount, WinGDI.RGNDATA lpRgnData)` The ExtCreateRegion function creates a region from the specified region and transformation data.
`int` `GetDeviceCaps(WinDef.HDC hdc, int nIndex)` The GetDeviceCaps function retrieves device-specific information for the specified device.
`int` `GetDIBits(WinDef.HDC hdc, WinDef.HBITMAP hbmp, int uStartScan, int cScanLines, Pointer lpvBits, WinGDI.BITMAPINFO lpbi, int uUsage)` The GetDIBits function retrieves the bits fo the specified compatible bitmap and copies them into a buffer as a DIB using the specified format.
`int` `GetObject(WinNT.HANDLE hgdiobj, int cbBuffer, Pointer lpvObject)` Retrieves information for the specified graphics object.
`WinNT.HANDLE` `SelectObject(WinDef.HDC hDC, WinNT.HANDLE hGDIObj)` The SelectObject function selects an object into the specified device context (DC).
`int` `SetPixel(WinDef.HDC hDC, int x, int y, int crColor)` The SetPixel function sets the pixel at the specified coordinates to the specified color.
`boolean` `SetPixelFormat(WinDef.HDC hdc, int iPixelFormat, WinGDI.PIXELFORMATDESCRIPTOR.ByReference ppfd)` The SetPixelFormat function sets the pixel format of the specified device context to the format specified by the iPixelFormat index.
`boolean` `SetRectRgn(WinDef.HRGN hrgn, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect)` The SetRectRgn function converts a region into a rectangular region with the specified coordinates.

### Field Detail

#### INSTANCE

    static final GDI32 INSTANCE

#### SRCCOPY

    static final int SRCCOPY

Used with BitBlt. Copies the source rectangle directly to the destination rectangle.

See Also:
  Constant Field Values

### Method Detail

#### ExtCreateRegion

    WinDef.HRGN ExtCreateRegion(Pointer lpXform,
                                int nCount,
                                WinGDI.RGNDATA lpRgnData)

The ExtCreateRegion function creates a region from the specified region and transformation data.

Parameters:
  `lpXform` - Pointer to an XFORM structure that defines the transformation to be performed on the region. If this pointer is NULL, the identity transformation is used.
  `nCount` - Specifies the number of bytes pointed to by lpRgnData.
  `lpRgnData` - Pointer to a RGNDATA structure that contains the region data in logical units.
Returns:
  If the function succeeds, the return value is the value of the region. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### CombineRgn

    int CombineRgn(WinDef.HRGN hrgnDest,
                   WinDef.HRGN hrgnSrc1,
                   WinDef.HRGN hrgnSrc2,
                   int fnCombineMode)

The CombineRgn function combines two regions and stores the result in a third region. The two regions are combined according to the specified mode.

Parameters:
  `hrgnDest` - Handle to a new region with dimensions defined by combining two other regions.
  `hrgnSrc1` - Handle to the first of two regions to be combined.
  `hrgnSrc2` - Handle to the second of two regions to be combined.
  `fnCombineMode` - Specifies a mode indicating how the two regions will be combined.
Returns:
  The return value specifies the type of the resulting region.

#### CreateRectRgn

    WinDef.HRGN CreateRectRgn(int nLeftRect,
                              int nTopRect,
                              int nRightRect,
                              int nBottomRect)

The CreateRectRgn function creates a rectangular region.

Parameters:
  `nLeftRect` - Specifies the x-coordinate of the upper-left corner of the region in logical units.
  `nTopRect` - Specifies the y-coordinate of the upper-left corner of the region in logical units.
  `nRightRect` - Specifies the x-coordinate of the lower-right corner of the region in logical units.
  `nBottomRect` - Specifies the y-coordinate of the lower-right corner of the region in logical units.
Returns:
  If the function succeeds, the return value is the handle to the region. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### CreateRoundRectRgn

    WinDef.HRGN CreateRoundRectRgn(int nLeftRect,
                                   int nTopRect,
                                   int nRightRect,
                                   int nBottomRect,
                                   int nWidthEllipse,
                                   int nHeightEllipse)

The CreateRoundRectRgn function creates a rectangular region with rounded corners.

Parameters:
  `nLeftRect` - Specifies the x-coordinate of the upper-left corner of the region in logical units.
  `nTopRect` - Specifies the y-coordinate of the upper-left corner of the region in logical units.
  `nRightRect` - Specifies the x-coordinate of the lower-right corner of the region in logical units.
  `nBottomRect` - Specifies the y-coordinate of the lower-right corner of the region in logical units.
  `nWidthEllipse` - Specifies the width of the ellipse used to create the rounded corners in logical units.
  `nHeightEllipse` - Specifies the height of the ellipse used to create the rounded corners in logical units.
Returns:
  If the function succeeds, the return value is the handle to the region. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### CreatePolyPolygonRgn

    WinDef.HRGN CreatePolyPolygonRgn(WinDef.POINT[] lppt,
                                     int[] lpPolyCounts,
                                     int nCount,
                                     int fnPolyFillMode)

The CreatePolyPolygonRgn function creates a region consisting of a series of polygons. The polygons can overlap.

Parameters:
  `lppt` - Pointer to an array of POINT structures that define the vertices of the polygons in logical units. The polygons are specified consecutively. Each polygon is presumed closed and each vertex is specified only once.
  `lpPolyCounts` - Pointer to an array of integers, each of which specifies the number of points in one of the polygons in the array pointed to by lppt.
  `nCount` - Specifies the total number of integers in the array pointed to by lpPolyCounts.
  `fnPolyFillMode` - Specifies the fill mode used to determine which pixels are in the region.
Returns:
  If the function succeeds, the return value is the handle to the region. If the function fails, the return value is zero. To get extended error information, call GetLastError.

#### SetRectRgn

    boolean SetRectRgn(WinDef.HRGN hrgn,
                       int nLeftRect,
                       int nTopRect,
                       int nRightRect,
                       int nBottomRect)

The SetRectRgn function converts a region into a rectangular region with the specified coordinates.

Parameters:
  `hrgn` - Handle to the region.
  `nLeftRect` - Specifies the x-coordinate of the upper-left corner of the rectangular region in logical units.
  `nTopRect` - Specifies the y-coordinate of the upper-left corner of the rectangular region in logical units.
  `nRightRect` - Specifies the x-coordinate of the lower-right corner of the rectangular region in logical units.
  `nBottomRect` - Specifies the y-coordinate of the lower-right corner of the rectangular region in logical units.
Returns:
  If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

#### SetPixel

    int SetPixel(WinDef.HDC hDC,
                 int x,
                 int y,
                 int crColor)

The SetPixel function sets the pixel at the specified coordinates to the specified color.

Parameters:
  `hDC` - Handle to the device context.
  `x` - Specifies the x-coordinate, in logical units, of the point to be set.
  `y` - Specifies the y-coordinate, in logical units, of the point to be set.
  `crColor` - Specifies the color to be used to paint the point. To create a COLORREF color value, use the RGB macro.
Returns:
  If the function succeeds, the return value is the RGB value that the function sets the pixel to. This value may differ from the color specified by crColor; that occurs when an exact match for the specified color cannot be found. If the function fails, the return value is 1. To get extended error information, call GetLastError. This can be the following value.

#### CreateCompatibleDC

    WinDef.HDC CreateCompatibleDC(WinDef.HDC hDC)

The CreateCompatibleDC function creates a memory device context (DC) compatible with the specified device.

Parameters:
  `hDC` - Handle to an existing DC. If this handle is NULL, the function creates a memory DC compatible with the application's current screen.
Returns:
  If the function succeeds, the return value is the handle to a memory DC. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### DeleteDC

    boolean DeleteDC(WinDef.HDC hDC)

The DeleteDC function deletes the specified device context (DC).

Parameters:
  `hDC` - Handle to the device context.
Returns:
  If the function succeeds, the return value is nonzero. If the function fails, the return value is zero. To get extended error information, call GetLastError.

#### CreateDIBitmap

    WinDef.HBITMAP CreateDIBitmap(WinDef.HDC hDC,
                                  WinGDI.BITMAPINFOHEADER lpbmih,
                                  int fdwInit,
                                  Pointer lpbInit,
                                  WinGDI.BITMAPINFO lpbmi,
                                  int fuUsage)

The CreateDIBitmap function creates a compatible bitmap (DDB) from a DIB and, optionally, sets the bitmap bits.

Parameters:
  `hDC` - Handle to a device context.
  `lpbmih` - Pointer to a bitmap information header structure, which may be one of those shown in the following table.
  `fdwInit` - Specifies how the system initializes the bitmap bits.
  `lpbInit` - Pointer to an array of bytes containing the initial bitmap data.
  `lpbmi` - Pointer to a BITMAPINFO structure that describes the dimensions and color format of the array pointed to by the lpbInit parameter.
  `fuUsage` - Specifies whether the bmiColors member of the BITMAPINFO structure was initialized and, if so, whether bmiColors contains explicit red, green, blue (RGB) values or palette indexes. The fuUsage parameter must be one of the following values.
Returns:
  If the function succeeds, the return value is a handle to the compatible bitmap. If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### CreateDIBSection

    WinDef.HBITMAP CreateDIBSection(WinDef.HDC hDC,
                                    WinGDI.BITMAPINFO pbmi,
                                    int iUsage,
                                    PointerByReference ppvBits,
                                    Pointer hSection,
                                    int dwOffset)

The CreateDIBSection function creates a DIB that applications can write to directly. The function gives you a pointer to the location of the bitmap bit values. You can supply a handle to a file-mapping object that the function will use to create the bitmap, or you can let the system allocate the memory for the bitmap.

Parameters:
  `hDC` - Handle to a device context. If the value of iUsage is DIB_PAL_COLORS, the function uses this device context's logical palette to initialize the DIB colors.
  `pbmi` - Pointer to a BITMAPINFO structure that specifies various attributes of the DIB, including the bitmap dimensions and colors.
  `iUsage` - Specifies the type of data contained in the bmiColors array member of the BITMAPINFO structure pointed to by pbmi (either logical palette indexes or literal RGB values).
  `ppvBits` - Pointer to a variable that receives a pointer to the location of the DIB bit values.
  `hSection` - Handle to a file-mapping object that the function will use to create the DIB. This parameter can be NULL.
  `dwOffset` - Specifies the offset from the beginning of the file-mapping object referenced by hSection where storage for the bitmap bit values is to begin.
Returns:
  Specifies the offset from the beginning of the file-mapping object referenced by hSection where storage for the bitmap bit values is to begin.

#### CreateCompatibleBitmap

    WinDef.HBITMAP CreateCompatibleBitmap(WinDef.HDC hDC,
                                          int width,
                                          int height)

The CreateCompatibleBitmap function creates a bitmap compatible with the device that is associated with the specified device context.

Parameters:
  `hDC` - Handle to a device context.
  `width` - Specifies the bitmap width, in pixels.
  `height` - Specifies the bitmap height, in pixels.
Returns:
  If the function succeeds, the return value is a handle to the compatible bitmap (DDB). If the function fails, the return value is NULL. To get extended error information, call GetLastError.

#### SelectObject

    WinNT.HANDLE SelectObject(WinDef.HDC hDC,
                              WinNT.HANDLE hGDIObj)

The SelectObject function selects an object into the specified device context (DC). The new object replaces the previous object of the same type.

Parameters:
  `hDC` - Handle to the DC.
  `hGDIObj` - Handle to the object to be selected.
Returns:
  If the selected object is not a region and the function succeeds, the return value is a handle to the object being replaced. If the selected object is a region and the function succeeds, the return value is one of the REGION values.

#### DeleteObject

    boolean DeleteObject(WinNT.HANDLE hObject)

The DeleteObject function deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid.

Parameters:
  `hObject` - Handle to a logical pen, brush, font, bitmap, region, or palette.
Returns:
  If the function succeeds, the return value is nonzero. If the specified handle is not valid or is currently selected into a DC, the return value is zero. To get extended error information, call GetLastError.

#### GetDeviceCaps

    int GetDeviceCaps(WinDef.HDC hdc,
                      int nIndex)

The GetDeviceCaps function retrieves device-specific information for the specified device.

Parameters:
  `hdc` - A handle to the DC.
  `nIndex` - The item to be returned.
Returns:
  The return value specifies the value of the desired item. When nIndex is `BITSPIXEL` and the device has 15bpp or 16bpp, the return value is 16.

#### GetDIBits

    int GetDIBits(WinDef.HDC hdc,
                  WinDef.HBITMAP hbmp,
                  int uStartScan,
                  int cScanLines,
                  Pointer lpvBits,
                  WinGDI.BITMAPINFO lpbi,
                  int uUsage)

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

Parameters:
  `hdc` - A handle to the device context.
  `hbmp` - A handle to the bitmap. This must be a compatible bitmap (DDB).
  `uStartScan` - The first scan line to retrieve
  `cScanLines` - The number of scan lines to retrieve.
  `lpvBits` - 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 `WinGDI.BITMAPINFO` structure pointed to by the lpbi parameter.
  `lpbi` - A pointer to a `WinGDI.BITMAPINFO` structure that specifies the desired format for the DIB data.
  `uUsage` - The format of the bmiColors member of the `WinGDI.BITMAPINFO` structure.
Returns:
  status

#### ChoosePixelFormat

    int ChoosePixelFormat(WinDef.HDC hdc,
                          WinGDI.PIXELFORMATDESCRIPTOR.ByReference ppfd)

The ChoosePixelFormat function attempts to match an appropriate pixel format supported by a device context to a given pixel format specification.

Parameters:
  `hdc` - Specifies the device context that the function examines to determine the best match for the pixel format descriptor pointed to by ppfd.
  `ppfd` - Pointer to a PIXELFORMATDESCRIPTOR structure that specifies the requested pixel format.
Returns:
  If the function succeeds, the return value is a pixel format index (one-based) that is the closest match to the given pixel format descriptor.

#### SetPixelFormat

    boolean SetPixelFormat(WinDef.HDC hdc,
                           int iPixelFormat,
                           WinGDI.PIXELFORMATDESCRIPTOR.ByReference ppfd)

The SetPixelFormat function sets the pixel format of the specified device context to the format specified by the iPixelFormat index.

Parameters:
  `hdc` - Specifies the device context whose pixel format the function attempts to set.
  `iPixelFormat` - Index that identifies the pixel format to set. The various pixel formats supported by a device context are identified by one-based indexes.
  `ppfd` - Pointer to a PIXELFORMATDESCRIPTOR structure that contains the logical pixel format specification.
Returns:
  true if successful

#### GetObject

    int GetObject(WinNT.HANDLE hgdiobj,
                  int cbBuffer,
                  Pointer lpvObject)

Retrieves information for the specified graphics object.

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(com.sun.jna.platform.win32.WinDef.HDC, com.sun.jna.platform.win32.WinGDI.BITMAPINFO, int, com.sun.jna.ptr.PointerByReference, com.sun.jna.Pointer, int)` function.
  `cbBuffer` - The number of bytes of information to be written to the buffer.
  `lpvObject` -

  A pointer to a buffer that receives 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.

  Information Received
  Object type | Data written to buffer
  `WinDef.HBITMAP` | `WinGDI.BITMAP`
  `WinDef.HBITMAP` returned from a call to `CreateDIBSection(com.sun.jna.platform.win32.WinDef.HDC, com.sun.jna.platform.win32.WinGDI.BITMAPINFO, int, com.sun.jna.ptr.PointerByReference, com.sun.jna.Pointer, int)` | DIBSECTION, if cbBuffer is set to sizeof(DIBSECTION), or BITMAP, if cbBuffer is set to sizeof (BITMAP).
  `WinDef.HPALETTE` | A `WinDef.WORD` count of the number of entries in the logical palette
  `WinDef.HPEN` returned from a call to ExtCreatePen | `EXTLOGPEN`
  `WinDef.HPEN` | `LOGPEN`
  `WinDef.HBRUSH` | `LOGBRUSH`
  `WinDef.HFONT` | `LOGFONT`

Returns:
  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.

#### BitBlt

    boolean BitBlt(WinDef.HDC hdcDest,
                   int nXDest,
                   int nYDest,
                   int nWidth,
                   int nHeight,
                   WinDef.HDC hdcSrc,
                   int nXSrc,
                   int nYSrc,
                   int dwRop)

The BitBlt function performs a bit-block transfer of the color data corresponding to a rectangle of pixels from the specified source device context into a destination device context.

Parameters:
  `hdcDest` - A handle to the destination device context.
  `nXDest` - The x-coordinate, in logical units, of the upper-left corner of the destination rectangle.
  `nYDest` - The y-coordinate, in logical units, of the upper-left corner of the destination rectangle.
  `nWidth` - The width, in logical units, of the source and destination rectangles.
  `nHeight` - The height, in logical units, of the source and the destination rectangles.
  `hdcSrc` - A handle to the source device context.
  `nXSrc` - The x-coordinate, in logical units, of the upper-left corner of the source rectangle.
  `nYSrc` - The y-coordinate, in logical units, of the upper-left corner of the source rectangle.
  `dwRop` - A raster-operation code.
  These codes define how the color data for the source rectangle is to be combined with the color data for the destination rectangle to achieve the final color.
  The following list shows some common raster operation codes.

  Value | Meaning
  --- | ---
  BLACKNESS | Fills the destination rectangle using the color associated with index 0 in the physical palette. (This color is black for the default physical palette.)
  CAPTUREBLT | Includes any windows that are layered on top of your window in the resulting image. By default, the image only contains your window. Note that this generally cannot be used for printing device contexts.
  DSTINVERT | Inverts the destination rectangle.
  MERGECOPY | Merges the colors of the source rectangle with the brush currently selected in hdcDest, by using the Boolean AND operator.
  MERGEPAINT | Merges the colors of the inverted source rectangle with the colors of the destination rectangle by using the Boolean OR operator.
  NOMIRRORBITMAP | Prevents the bitmap from being mirrored.
  NOTSRCCOPY | Copies the inverted source rectangle to the destination.
  NOTSRCERASE | Combines the colors of the source and destination rectangles by using the Boolean OR operator and then inverts the resultant color.
  PATCOPY | Copies the brush currently selected in hdcDest, into the destination bitmap.
  PATINVERT | Combines the colors of the brush currently selected in hdcDest, with the colors of the destination rectangle by using the Boolean XOR operator.
  PATPAINT | Combines the colors of the brush currently selected in hdcDest, with the colors of the inverted source rectangle by using the Boolean OR operator. The result of this operation is combined with the colors of the destination rectangle by using the Boolean OR operator.
  SRCAND | Combines the colors of the source and destination rectangles by using the Boolean AND operator.
  SRCCOPY | Copies the source rectangle directly to the destination rectangle.
  SRCERASE | Combines the inverted colors of the destination rectangle with the colors of the source rectangle by using the Boolean AND operator.
  SRCINVERT | Combines the colors of the source and destination rectangles by using the Boolean XOR operator.
  SRCPAINT | Combines the colors of the source and destination rectangles by using the Boolean OR operator.
  WHITENESS | Fills the destination rectangle using the color associated with index 1 in the physical palette. (This color is white for the default physical palette.)

Returns:
  True if the function succeeded, False if not. To get extended error information, call GetLastError.

Copyright © 2007-2018 Timothy Wall. All Rights Reserved.