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