Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than gdi32, prefix the name with the module name and a period.
<DllImport("gdi32.dll")> _
Private Shared Function CreateDIBSection(ByVal hdc As Int32, _
ByRef pbmi As BITMAPINFO, ByVal iUsage As System.UInt32, _
ByRef ppvBits As Int32, ByVal hSection As Int32, _
ByVal dwOffset As System.UInt32) As Int32
End Function
[StructLayout(LayoutKind.Sequential)]
public struct BITMAPINFO {
public Int32 biSize;
public Int32 biWidth;
public Int32 biHeight;
public Int16 biPlanes;
public Int16 biBitCount;
public Int32 biCompression;
public Int32 biSizeImage;
public Int32 biXPelsPerMeter;
public Int32 biYPelsPerMeter;
public Int32 biClrUsed;
public Int32 biClrImportant;
}
Notes:
The BITMAPINFO structure defines the dimensions and color information for a DIB, it contains the members
BITMAPINFOHEADER structure (contains information about the dimensions of color format) and bmiColors which contains one of the following:
An array of RGBQUAD. The elements of the array that make up the color table.
An array of 16-bit unsigned integers that specifies indexes into the currently realized logical palette.
See MSDN Documentation for BITMAPINFO concerning specific details concerning structure members.
VB.NET User-Defined Types:
<StructLayout(LayoutKind.Sequential)> _
Private Class BITMAPINFOHEADER
Public biSize As Int32
Public biWidth As Int32
Public biHeight As Int32
Public biPlanes As Int16
Public biBitCount As Int16
Public biCompression As Int32
Public biSizeImage As Int32
Public biXPelsPerMeter As Int32
Public biYPelsPerMeter As Int32
Public biClrUsed As Int32
Public biClrImportant As Int32
End Class
hSection is a handle to a file mapping object that the function will use to create the DIB and can be NULL. If hSectionis not NULL, it must be a handle to a file mapping object created by calling the CreateFileMapping function (otherwise CreateDIBSectionwill fail). Moreover, the CreateDIBSection function will locate the bitmap’s bit values at offset dwOffset in the file mapping object referred to by hSection. An application can retrieve the hSection handle by calling the GetObject function with the HBITMAP returned by CreateDIBSection.
<StructLayout(LayoutKind.Sequential)> _
Private Structure RGBQUAD
Dim rgbBlue As Byte
Dim rgbGreen As Byte
Dim rgbRed As Byte
Dim rgbReserved As Byte
End Structure
If hSectionis NULL, the O/S will allocate memory for the DIB (CreateDIBSection will ignore the dwOffset parameter). An application cannot later obtain a handle to this memory: the dshSection member of the DIBSECTION structure will be NULL.
<StructLayout(LayoutKind.Sequential)> _
Private Structure BITMAPINFO
Dim bmiheader As BITMAPINFOHEADER
Dim bmiColors As RGBQUAD
End Structure
dwOffset specifies the offset from the beginning of the file mapping object referenced by hSection where storage for the bitmap’s bit values is to begin (ignored if hSection is NULL). The bitmap’s bit values are aligned on doubleword boundaries, so dwOffset must be a multiple of the size of a DWORD.
Notes:
The BITMAPINFO structure defines the dimensions and color information for a DIB, it contains the members
BITMAPINFOHEADER structure (contains information about the dimensions of color format) and bmiColors which contains one of the following:
An array of RGBQUAD. The elements of the array that make up the color table.
An array of 16-bit unsigned integers that specifies indexes into the currently realized logical palette.
See MSDN Documentation for BITMAPINFO concerning specific details concerning structure members.
If the function succeeds, the return value is a handle to the newly created device-independent bitmap (and ppvBits will point to the bitmap’s bit values). If the function fails, the return value is NULL (and ptr ppvBits will be NULL). To get extended error information, call GetLastError.
hSection is a handle to a file mapping object that the function will use to create the DIB and can be NULL. If hSectionis not NULL, it must be a handle to a file mapping object created by calling the CreateFileMapping function (otherwise CreateDIBSectionwill fail). Moreover, the CreateDIBSection function will locate the bitmap’s bit values at offset dwOffset in the file mapping object referred to by hSection. An application can retrieve the hSection handle by calling the GetObject function with the HBITMAP returned by CreateDIBSection.
Tips & Tricks:
Please add some!
If hSectionis NULL, the O/S will allocate memory for the DIB (CreateDIBSection will ignore the dwOffset parameter). An application cannot later obtain a handle to this memory: the dshSection member of the DIBSECTION structure will be NULL.
Sample Code:
Please add some!
dwOffset specifies the offset from the beginning of the file mapping object referenced by hSection where storage for the bitmap’s bit values is to begin (ignored if hSection is NULL). The bitmap’s bit values are aligned on doubleword boundaries, so dwOffset must be a multiple of the size of a DWORD.
Alternative Managed API:
Do you know one? Please contribute it!
If the function succeeds, the return value is a handle to the newly created device-independent bitmap (and ppvBits will point to the bitmap’s bit values). If the function fails, the return value is NULL (and ptr ppvBits will be NULL). To get extended error information, call GetLastError.
Tips & Tricks:
Please add some!
Sample Code:
Please add some!
Alternative Managed API:
Do you know one? Please contribute it!
The CreateDIBSection function creates a Device Independent Bitmap (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.
7/15/2014 12:49:43 PM - -79.199.85.178
Defines the dimensions and color information for a DIB.
2/5/2022 11:09:27 AM - 82.69.113.219
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).