1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Private routines for cursor/icon handling
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_CURICOP_H_
13 #define _WX_CURICOP_H_
15 // PRIVATE STUFF FOLLOWS UNTIL END
17 // Header signatures for various resources
18 #define BFT_ICON 0x4349 /* 'IC' */
19 #define BFT_BITMAP 0x4d42 /* 'BM' */
20 #define BFT_CURSOR 0x5450 /* 'PT(' */
22 // This WIDTHBYTES macro determines the number of BYTES per scan line.
23 #define WIDTHBYTES( i) ((i + 31) / 32 * 4)
24 #define IS_WIN30_DIB( lpbi) ((*(LPDWORD)( lpbi)) == sizeof( BITMAPINFOHEADER))
26 WORD
DIBNumColors(LPSTR pv
);
27 WORD
PaletteSize(LPSTR lpbi
);
30 struct tagCURFILEHEADER
{ WORD wReserved
; // Always 0
31 WORD wResourceType
; // 2 = cursor
32 WORD wResourceCount
; // Number of icons in the file
35 typedef struct tagCURFILEHEADER CURFILEHEADER
;
37 struct tagCURFILERES
{
38 BYTE bWidth
; // Width of image
39 BYTE bHeight
; // Height of image
40 BYTE bColorCount
; // Number of colors in image (2, 8, or 16)
41 BYTE bReserved1
; // Reserved
42 WORD wXHotspot
; // x coordinate of hotspot
43 WORD wYHotspot
; // y coordinate of hotspot
44 DWORD dwDIBSize
; // Size of DIB for this image
45 DWORD dwDIBOffset
; // Offset to DIB for this image
48 typedef struct tagCURFILERES CURFILERES
;
50 HANDLE
ReadCur( LPTSTR szFileName
, LPPOINT lpptHotSpot
, int *W
= 0, int *H
= 0);
51 HBITMAP
ColorDDBToMonoDDB( HBITMAP hbm
);
52 HCURSOR
MakeCursor( HANDLE hDIB
, LPPOINT lpptHotSpot
, HINSTANCE hInst
);
54 struct tagICONFILEHEADER
{
55 WORD wReserved
; // Always 0
56 WORD wResourceType
; // 1 = icon
57 WORD wResourceCount
; // Number of icons in the file
60 typedef struct tagICONFILEHEADER ICONFILEHEADER
;
62 struct tagICONFILERES
{
63 BYTE bWidth
; // Width of image
64 BYTE bHeight
; // Height of image
65 BYTE bColorCount
; // Number of colors in image (2, 8, or 16)
66 BYTE bReserved1
; // Reserved
69 DWORD dwDIBSize
; // Size of DIB for this image
70 DWORD dwDIBOffset
; // Offset to DIB for this image
73 typedef struct tagICONFILERES ICONFILERES
;
75 HANDLE
ReadIcon( wxChar
*szFileName
, int *W
= 0, int *H
= 0);
76 HICON
MakeIcon( HANDLE hDIB
, HINSTANCE hInst
);