Browse Source

+ added the win16api bitmap functions, types and consts

git-svn-id: trunk@31701 -
nickysn 10 years ago
parent
commit
bccdafba1b
3 changed files with 213 additions and 0 deletions
  1. 4 0
      rtl/win16/win31.pp
  2. 57 0
      rtl/win16/winprocsh.inc
  3. 152 0
      rtl/win16/wintypes.inc

+ 4 - 0
rtl/win16/win31.pp

@@ -527,6 +527,10 @@ function GetRasterizerCaps(lpraststat: LPRASTERIZER_STATUS; cb: SmallInt): BOOL;
 function GetRasterizerCaps(var raststat: RASTERIZER_STATUS; cb: SmallInt): BOOL; external 'GDI';
 {$endif}
 
+{ Bitmap support }
+function SetBitmapDimensionEx(hbm: HBITMAP; nX, nY: SmallInt; lpSize: LPSIZE): BOOL; external 'GDI';
+function GetBitmapDimensionEx(hBitmap: HBITMAP; lpDimension: LPSIZE): BOOL; external 'GDI';
+
 implementation
 
 end.

+ 57 - 0
rtl/win16/winprocsh.inc

@@ -613,3 +613,60 @@ function GetTextMetrics(hdc: HDC; var tm: TEXTMETRIC): BOOL; external 'GDI';
 
 function EnumFonts(hdc: HDC; lpszFace: LPCSTR; fntenmprc: OLDFONTENUMPROC; lParam: LPARAM): SmallInt; external 'GDI';
 function EnumFonts(hdc: HDC; lpszFace: LPCSTR; fntenmprc: TFarProc; lParam: LPARAM): SmallInt; external 'GDI';
+
+{ Bitmap support }
+
+function CreateBitmap(nWidth, nHeight: SmallInt; cbPlanes, cbBits: UINT; lpvBits: FarPointer): HBITMAP; external 'GDI';
+function CreateBitmapIndirect(lpbm: LPBITMAP): HBITMAP; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function CreateBitmapIndirect(var bm: BITMAP): HBITMAP; external 'GDI';
+{$endif}
+function CreateCompatibleBitmap(hdc: HDC; nWidth, nHeight: SmallInt): HBITMAP; external 'GDI';
+function CreateDiscardableBitmap(hdc: HDC; nWidth, nHeight: SmallInt): HBITMAP; external 'GDI';
+function CreateDIBitmap(hdc: HDC; lpbmih: LPBITMAPINFOHEADER; dwInit: DWORD; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fnColorUse: UINT): HBITMAP; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function CreateDIBitmap(hdc: HDC; var bmih: BITMAPINFOHEADER; dwInit: DWORD; lpvBits: FarPointer; var bmi: BITMAPINFO; fnColorUse: UINT): HBITMAP; external 'GDI';
+{$endif}
+
+function LoadBitmap(hinst: HINST; lpszBitmap: LPCSTR): HBITMAP; external 'USER';
+
+function BitBlt(hdcDest: HDC; nXDest, nYDest, nWidth, nHeight: SmallInt; hdcSrc: HDC; nXSrc, nYSrc: SmallInt; dwRop: DWORD): BOOL; external 'GDI';
+
+function PatBlt(hdc: HDC; nLeftRect, nTopRect, nwidth, nheight: SmallInt; fdwRop: DWORD): BOOL; external 'GDI';
+
+function StretchBlt(hdcDest: HDC; nXOriginDest, nYOriginDest, nWidthDest, nHeightDest: SmallInt; hdcSrc: HDC; nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc: SmallInt; fdwRop: DWORD): BOOL; external 'GDI';
+function StretchDIBits(hdc: HDC; XDest, YDest, cxDest, cyDest, XSrc, YSrc, cxSrc, cySrc: SmallInt;
+                       lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT; fdwRop: DWORD): SmallInt; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function StretchDIBits(hdc: HDC; XDest, YDest, cxDest, cyDest, XSrc, YSrc, cxSrc, cySrc: SmallInt;
+                       lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT; fdwRop: DWORD): SmallInt; external 'GDI';
+{$endif}
+
+function SetPixel(hdc: HDC; nXPos, nYPos: SmallInt; clrref: COLORREF): COLORREF; external 'GDI';
+function GetPixel(hdc: HDC; nXPos, nYPos: SmallInt): COLORREF; external 'GDI';
+
+function SetStretchBltMode(hdc: HDC; fnStretchMode: SmallInt): SmallInt; external 'GDI';
+function GetStretchBltMode(hdc: HDC): SmallInt; external 'GDI';
+
+function SetBitmapDimension(hbmp: HBITMAP; nWidth, nHeight: SmallInt): DWORD; external 'GDI';
+function GetBitmapDimension(hbm: HBITMAP): DWORD; external 'GDI';
+
+function SetROP2(hdc: HDC; fnDrawMode: SmallInt): SmallInt; external 'GDI';
+function GetROP2(hdc: HDC): SmallInt; external 'GDI';
+
+function SetBitmapBits(hbmp: HBITMAP; cBits: DWORD; lpvBits: FarPointer): LONG; external 'GDI';
+function GetBitmapBits(hbm: HBITMAP; cbBuffer: LONG; lpvBits: FarPointer): LONG; external 'GDI';
+
+function SetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+function GetDIBits(hdc: HDC; hbmp: HBITMAP; nStartScan, cScanLines: UINT; lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function SetDIBits(hdc: HDC; hbmp: HBITMAP; uStartScan, cScanLines: UINT; lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+function GetDIBits(hdc: HDC; hbmp: HBITMAP; nStartScan, cScanLines: UINT; lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+{$endif}
+
+function SetDIBitsToDevice(hdc: HDC; XDest, YDest, cx, cy, XSrc, YSrc: SmallInt; uStartScan, cScanLines: UINT;
+                    lpvBits: FarPointer; lpbmi: LPBITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+{$ifdef VAR_PARAMS_ARE_FAR}
+function SetDIBitsToDevice(hdc: HDC; XDest, YDest, cx, cy, XSrc, YSrc: SmallInt; uStartScan, cScanLines: UINT;
+                    lpvBits: FarPointer; var bmi: BITMAPINFO; fuColorUse: UINT): SmallInt; external 'GDI';
+{$endif}

+ 152 - 0
rtl/win16/wintypes.inc

@@ -866,3 +866,155 @@ const
 { EnumFonts font type values }
   RASTER_FONTTYPE = $0001;
   DEVICE_FONTTYPE = $0002;
+
+type
+{ Bitmap support }
+  PBITMAP = ^BITMAP;
+  NPBITMAP = ^BITMAP; near;
+  LPBITMAP = ^BITMAP; far;
+  BITMAP = record
+    bmType: SmallInt;
+    bmWidth: SmallInt;
+    bmHeight: SmallInt;
+    bmWidthBytes: SmallInt;
+    bmPlanes: BYTE;
+    bmBitsPixel: BYTE;
+    bmBits: FarPointer;
+  end;
+  TBitmap = BITMAP;
+
+{ Bitmap Header structures }
+  PRGBTRIPLE = ^RGBTRIPLE;
+  LPRGBTRIPLE = ^RGBTRIPLE; far;
+  RGBTRIPLE = record
+    rgbtBlue: BYTE;
+    rgbtGreen: BYTE;
+    rgbtRed: BYTE;
+  end;
+  TRGBTriple = RGBTRIPLE;
+
+  PRGBQUAD = ^RGBQUAD;
+  LPRGBQUAD = ^RGBQUAD; far;
+  RGBQUAD = record
+    rgbBlue: BYTE;
+    rgbGreen: BYTE;
+    rgbRed: BYTE;
+    rgbReserved: BYTE;
+  end;
+  TRGBQuad = RGBQUAD;
+
+{ structures for defining DIBs }
+  PBITMAPCOREHEADER = ^BITMAPCOREHEADER;
+  LPBITMAPCOREHEADER = ^BITMAPCOREHEADER; far;
+  BITMAPCOREHEADER = record
+    bcSize: DWORD;
+    bcWidth: SmallInt;
+    bcHeight: SmallInt;
+    bcPlanes: WORD;
+    bcBitCount: WORD;
+  end;
+  TBitmapCoreHeader = BITMAPCOREHEADER;
+
+  PBITMAPINFOHEADER = ^BITMAPINFOHEADER;
+  LPBITMAPINFOHEADER = ^BITMAPINFOHEADER; far;
+  BITMAPINFOHEADER = record
+    biSize: DWORD;
+    biWidth: LONG;
+    biHeight: LONG;
+    biPlanes: WORD;
+    biBitCount: WORD;
+    biCompression: DWORD;
+    biSizeImage: DWORD;
+    biXPelsPerMeter: LONG;
+    biYPelsPerMeter: LONG;
+    biClrUsed: DWORD;
+    biClrImportant: DWORD;
+  end;
+  TBitmapInfoHeader = BITMAPINFOHEADER;
+
+const
+{ constants for the biCompression field }
+  BI_RGB  = 0;
+  BI_RLE8 = 1;
+  BI_RLE4 = 2;
+
+type
+  PBITMAPINFO = ^BITMAPINFO;
+  LPBITMAPINFO = ^BITMAPINFO; far;
+  BITMAPINFO = record
+    bmiHeader: BITMAPINFOHEADER;
+    bmiColors: array [0..0] of RGBQUAD;
+  end;
+  TBitmapInfo = BITMAPINFO;
+
+  PBITMAPCOREINFO = ^BITMAPCOREINFO;
+  LPBITMAPCOREINFO = ^BITMAPCOREINFO; far;
+  BITMAPCOREINFO = record
+    bmciHeader: BITMAPCOREHEADER;
+    bmciColors: array [0..0] of RGBTRIPLE;
+  end;
+  TBitmapCoreInfo = BITMAPCOREINFO;
+
+  PBITMAPFILEHEADER = ^BITMAPFILEHEADER;
+  LPBITMAPFILEHEADER = ^BITMAPFILEHEADER; far;
+  BITMAPFILEHEADER = record
+    bfType: UINT;
+    bfSize: DWORD;
+    bfReserved1: UINT;
+    bfReserved2: UINT;
+    bfOffBits: DWORD;
+  end;
+  TBitmapFileHeader = BITMAPFILEHEADER;
+
+const
+{ DIB color table identifiers }
+  DIB_RGB_COLORS = 0;
+  DIB_PAL_COLORS = 1;
+
+{ constants for CreateDIBitmap }
+  CBM_INIT = $00000004;
+
+{ Binary raster ops }
+  R2_BLACK       = 1;
+  R2_NOTMERGEPEN = 2;
+  R2_MASKNOTPEN  = 3;
+  R2_NOTCOPYPEN  = 4;
+  R2_MASKPENNOT  = 5;
+  R2_NOT         = 6;
+  R2_XORPEN      = 7;
+  R2_NOTMASKPEN  = 8;
+  R2_MASKPEN     = 9;
+  R2_NOTXORPEN   = 10;
+  R2_NOP         = 11;
+  R2_MERGENOTPEN = 12;
+  R2_COPYPEN     = 13;
+  R2_MERGEPENNOT = 14;
+  R2_MERGEPEN    = 15;
+  R2_WHITE       = 16;
+
+{ Ternary raster operations }
+  SRCCOPY     = $00CC0020;
+  SRCPAINT    = $00EE0086;
+  SRCAND      = $008800C6;
+  SRCINVERT   = $00660046;
+  SRCERASE    = $00440328;
+  NOTSRCCOPY  = $00330008;
+  NOTSRCERASE = $001100A6;
+  MERGECOPY   = $00C000CA;
+  MERGEPAINT  = $00BB0226;
+  PATCOPY     = $00F00021;
+  PATPAINT    = $00FB0A09;
+  PATINVERT   = $005A0049;
+  DSTINVERT   = $00550009;
+  BLACKNESS   = $00000042;
+  WHITENESS   = $00FF0062;
+
+{ StretchBlt() Modes }
+  BLACKONWHITE = 1;
+  WHITEONBLACK = 2;
+  COLORONCOLOR = 3;
+
+{ new StretchBlt() Modes (simpler names) }
+  STRETCH_ANDSCANS    = 1;
+  STRETCH_ORSCANS     = 2;
+  STRETCH_DELETESCANS = 3;