1 /* 2 ///////////////////////////////////////////////////////////////////////////// 3 // Name: microwin.h 4 // Purpose: Extra implementation for MicroWindows 5 // Author: Julian Smart 6 // Created: 2001-05-31 7 // RCS-ID: $Id: microwin.h 35650 2005-09-23 12:56:45Z MR $ 8 // Copyright: (c) Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 */ 12 13 #ifndef _WX_MICROWIN_H_ 14 #define _WX_MICROWIN_H_ 15 16 /* Implemented by microwin.cpp */ 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 BOOL SetCursorPos(int x, int y); 23 24 HCURSOR SetCursor(HCURSOR hCursor); 25 26 /* Implemented with wrong number of args by MicroWindows */ 27 /* so we need to use a different name */ 28 int GetScrollPosWX (HWND hWnd, int iSBar); 29 30 BOOL ScrollWindow(HWND, int xAmount, int yAmount, 31 CONST RECT* lpRect, CONST RECT* lpClipRect); 32 33 HWND WindowFromPoint(POINT pt); 34 SHORT GetKeyState(int nVirtKey); 35 HWND SetParent(HWND hWndChild, HWND hWndNewParent); 36 VOID DragAcceptFiles(HWND, BOOL); 37 BOOL IsDialogMessage(HWND hWnd, MSG* msg); 38 DWORD GetMessagePos(VOID); 39 BOOL IsIconic(HWND hWnd); 40 int SetMapMode(HDC hDC, int mode); 41 int GetMapMode(HDC hDC); 42 HCURSOR LoadCursor(HINSTANCE hInst, int cursor); 43 DWORD GetModuleFileName(HINSTANCE hInst, LPSTR name, DWORD sz); 44 VOID DestroyIcon(HICON hIcon); 45 COLORREF GetTextColor(HDC hdc); 46 COLORREF GetBkColor(HDC hdc); 47 HPALETTE SelectPalette(HDC hdc, HPALETTE hPalette, BOOL b); 48 BOOL IntersectClipRect(HDC hdc, int x, int y, 49 int w, int h); 50 BOOL GetClipBox(HDC hdc, RECT* rect); 51 BOOL DrawIconEx(HDC hdc, int x, int y, HICON hIcon, int w, int h, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags); 52 BOOL SetViewportExtEx(HDC hdc, int x, int y, LPSIZE lpSize); 53 BOOL SetViewportOrgEx(HDC hdc, int x, int y, LPPOINT lpPoint); 54 BOOL SetWindowExtEx(HDC hdc, int x, int y, LPSIZE lpSize); 55 BOOL SetWindowOrgEx(HDC hdc, int x, int y, LPPOINT lpSize); 56 BOOL ExtFloodFill(HDC hdc, int x, int y, COLORREF col, UINT flags); 57 int SetPolyFillMode(HDC hdc, int mode); 58 BOOL RoundRect(HDC hdc, int left, int top, int right, int bottom, int r1, int r2); 59 BOOL MaskBlt(HDC hdc, int x, int y, int w, int h, 60 HDC hDCSource, int xSrc, int ySrc, HBITMAP hBitmapMask, int xMask, int yMask, DWORD rop); 61 UINT RealizePalette(HDC hDC); 62 BOOL SetBrushOrgEx(HDC hdc, int xOrigin, int yOrigin, LPPOINT lpPoint); 63 int GetObject(HGDIOBJ hObj, int sz, LPVOID logObj); 64 65 /* For some reason these aren't defined in the headers */ 66 BOOL EnableScrollBar (HWND hWnd, int iSBar, BOOL bEnable) ; 67 BOOL GetScrollPos (HWND hWnd, int iSBar, int* pPos); 68 BOOL GetScrollRange (HWND hWnd, int iSBar, int* pMinPos, int* pMaxPos); 69 BOOL SetScrollPos (HWND hWnd, int iSBar, int iNewPos); 70 BOOL SetScrollRange (HWND hWnd, int iSBar, int iMinPos, int iMaxPos); 71 BOOL SetScrollInfo (HWND hWnd, int iSBar, 72 LPCSCROLLINFO lpsi, BOOL fRedraw); 73 BOOL GetScrollInfo(HWND hWnd, int iSBar, LPSCROLLINFO lpsi); 74 BOOL ShowScrollBar (HWND hWnd, int iSBar, BOOL bShow); 75 HBITMAP WINAPI 76 CreateBitmap( int width, int height, int nPlanes, int bPP, LPCVOID lpData); 77 78 #ifdef __cplusplus 79 } 80 #endif 81 82 /* 83 * Key State Masks for Mouse Messages 84 */ 85 #ifndef MK_LBUTTON 86 #define MK_LBUTTON 0x0001 87 #define MK_RBUTTON 0x0002 88 #define MK_SHIFT 0x0004 89 #define MK_CONTROL 0x0008 90 #define MK_MBUTTON 0x0010 91 #endif 92 93 /* 94 * DrawIcon flags 95 */ 96 97 #ifndef DI_MASK 98 #define DI_MASK 0x0001 99 #define DI_IMAGE 0x0002 100 #define DI_NORMAL 0x0003 101 #define DI_COMPAT 0x0004 102 #define DI_DEFAULTSIZE 0x0008 103 #endif 104 105 /* TODO: May have to fake these message */ 106 #ifndef WM_INITDIALOG 107 #define WM_INITDIALOG 0x0110 108 #endif 109 #ifndef WM_QUERYENDSESSION 110 #define WM_QUERYENDSESSION 0x0011 111 #endif 112 #ifndef WM_ENDSESSION 113 #define WM_ENDSESSION 0x0016 114 #endif 115 #ifndef WM_SETCURSOR 116 #define WM_SETCURSOR 0x0020 117 #endif 118 #ifndef WM_GETMINMAXINFO 119 #define WM_GETMINMAXINFO 0x0024 120 typedef struct tagMINMAXINFO { 121 POINT ptReserved; 122 POINT ptMaxSize; 123 POINT ptMaxPosition; 124 POINT ptMinTrackSize; 125 POINT ptMaxTrackSize; 126 } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; 127 128 #endif 129 #ifndef WM_SYSCOMMAND 130 #define WM_SYSCOMMAND 0x0112 131 #endif 132 #ifndef WM_SYSCOLORCHANGE 133 #define WM_SYSCOLORCHANGE 0x0015 134 #endif 135 #ifndef WM_QUERYNEWPALETTE 136 #define WM_QUERYNEWPALETTE 0x030F 137 #endif 138 #ifndef WM_PALETTEISCHANGING 139 #define WM_PALETTEISCHANGING 0x0310 140 #endif 141 #ifndef WM_PALETTECHANGED 142 #define WM_PALETTECHANGED 0x0311 143 #endif 144 #ifndef WM_NOTIFY 145 #define WM_NOTIFY 0x004E 146 #endif 147 #ifndef WM_DROPFILES 148 #define WM_DROPFILES 0x0233 149 #endif 150 151 #ifndef PALETTERGB 152 #define PALETTERGB RGB 153 #endif 154 155 #ifndef MM_TEXT 156 #define MM_TEXT 1 157 #define MM_LOMETRIC 2 158 #define MM_HIMETRIC 3 159 #define MM_LOENGLISH 4 160 #define MM_HIENGLISH 5 161 #define MM_TWIPS 6 162 #define MM_ISOTROPIC 7 163 #define MM_ANISOTROPIC 8 164 #endif 165 166 #ifndef SC_MAXIMIZE 167 #define SC_MINIMIZE 0xF020 168 #define SC_MAXIMIZE 0xF030 169 #endif 170 171 // TODO: all of them 172 #ifndef IDC_ARROW 173 #define IDC_ARROW 1 174 #endif 175 176 /* 177 * Standard Cursor IDs 178 */ 179 #ifndef MAKEINTRESOURCE 180 #define MAKEINTRESOURCE(r) r 181 #endif 182 183 #ifndef IDC_ARROW 184 #define IDC_ARROW MAKEINTRESOURCE(32512) 185 #define IDC_IBEAM MAKEINTRESOURCE(32513) 186 #define IDC_WAIT MAKEINTRESOURCE(32514) 187 #define IDC_CROSS MAKEINTRESOURCE(32515) 188 #define IDC_UPARROW MAKEINTRESOURCE(32516) 189 #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ 190 #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */ 191 #define IDC_SIZENWSE MAKEINTRESOURCE(32642) 192 #define IDC_SIZENESW MAKEINTRESOURCE(32643) 193 #define IDC_SIZEWE MAKEINTRESOURCE(32644) 194 #define IDC_SIZENS MAKEINTRESOURCE(32645) 195 #define IDC_SIZEALL MAKEINTRESOURCE(32646) 196 #define IDC_NO MAKEINTRESOURCE(32648) /* not in win3.1 */ 197 #if(WINVER >= 0x0500) 198 #define IDC_HAND MAKEINTRESOURCE(32649) 199 #endif /* WINVER >= 0x0500 */ 200 #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /* not in win3.1 */ 201 #if(WINVER >= 0x0400) 202 #define IDC_HELP MAKEINTRESOURCE(32651) 203 #endif /* WINVER >= 0x0400 */ 204 #endif 205 206 /* ExtFloodFill style flags */ 207 #define FLOODFILLBORDER 0 208 #define FLOODFILLSURFACE 1 209 210 /* PolyFill() Modes */ 211 #define ALTERNATE 1 212 #define WINDING 2 213 #define POLYFILL_LAST 2 214 215 /* Quaternary raster codes */ 216 #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore)) 217 218 /* Device Parameters for GetDeviceCaps() */ 219 #define DRIVERVERSION 0 /* Device driver version */ 220 #define TECHNOLOGY 2 /* Device classification */ 221 #define HORZSIZE 4 /* Horizontal size in millimeters */ 222 #define VERTSIZE 6 /* Vertical size in millimeters */ 223 224 /* Ternary raster operations */ 225 /* Now defined by MicroWindows */ 226 #if 0 227 #define DSTINVERT (DWORD)0x00550009 /* dest = (NOT dest) */ 228 #define WHITENESS (DWORD)0x00FF0062 /* dest = WHITE */ 229 #define SRCERASE (DWORD)0x00440328 /* dest = source AND (NOT dest ) */ 230 #define MERGEPAINT (DWORD)0x00BB0226 /* dest = (NOT source) OR dest */ 231 #define SRCPAINT (DWORD)0x00EE0086 /* dest = source OR dest */ 232 #define NOTSRCCOPY (DWORD)0x00330008 /* dest = (NOT source) */ 233 #endif 234 235 #endif /* _WX_MICROWIN_H_ */ 236