| 1 | /* $Id: oslibwin.h,v 1.21 1999-10-25 20:17:20 sandervl Exp $ */ | 
|---|
| 2 | /* | 
|---|
| 3 | * Window API wrappers for OS/2 | 
|---|
| 4 | * | 
|---|
| 5 | * | 
|---|
| 6 | * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl) | 
|---|
| 7 | * Copyright 1999      Daniela Engert (dani@ngrt.de) | 
|---|
| 8 | * | 
|---|
| 9 | * | 
|---|
| 10 | * Project Odin Software License can be found in LICENSE.TXT | 
|---|
| 11 | * | 
|---|
| 12 | */ | 
|---|
| 13 | #ifndef __OSLIBWIN_H__ | 
|---|
| 14 | #define __OSLIBWIN_H__ | 
|---|
| 15 | #include <oslibgdi.h> | 
|---|
| 16 |  | 
|---|
| 17 | #ifndef WIN_INCLUDED | 
|---|
| 18 | typedef struct _SWP    /* swp */ | 
|---|
| 19 | { | 
|---|
| 20 | ULONG   fl; | 
|---|
| 21 | LONG    cy; | 
|---|
| 22 | LONG    cx; | 
|---|
| 23 | LONG    y; | 
|---|
| 24 | LONG    x; | 
|---|
| 25 | HWND    hwndInsertBehind; | 
|---|
| 26 | HWND    hwnd; | 
|---|
| 27 | ULONG   ulReserved1; | 
|---|
| 28 | ULONG   ulReserved2; | 
|---|
| 29 | } SWP, *PSWP; | 
|---|
| 30 | #endif | 
|---|
| 31 |  | 
|---|
| 32 | #define OSLIB_HWND_DESKTOP      1 | 
|---|
| 33 | #define OSLIB_HWND_OBJECT       2 | 
|---|
| 34 |  | 
|---|
| 35 | BOOL  OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE); | 
|---|
| 36 | BOOL  OSLibWinSetOwner(HWND hwnd, HWND hwndOwner); | 
|---|
| 37 |  | 
|---|
| 38 |  | 
|---|
| 39 | HWND  OSLibWinCreateWindow(HWND hwndParent, ULONG dwWinStyle, ULONG dwFrameStyle, | 
|---|
| 40 | char *pszName, HWND Owner, ULONG fHWND_BOTTOM, | 
|---|
| 41 | HWND *hwndFrame, ULONG id); | 
|---|
| 42 |  | 
|---|
| 43 | BOOL  OSLibWinConvertStyle(ULONG dwStyle, ULONG *dwExStyle, ULONG *OSWinStyle, ULONG *OSFrameStyle, ULONG *borderWidth, ULONG *borderHeight); | 
|---|
| 44 | void  OSLibSetWindowStyle(HWND hwnd, ULONG dwStyle); | 
|---|
| 45 |  | 
|---|
| 46 | #define OSLIB_QWL_USER -4 | 
|---|
| 47 |  | 
|---|
| 48 | BOOL  OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value); | 
|---|
| 49 | ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset); | 
|---|
| 50 | BOOL  OSLibSetWindowID(HWND hwnd, ULONG value); | 
|---|
| 51 |  | 
|---|
| 52 | BOOL  OSLibPostMessage(HWND hwnd, ULONG msg, ULONG wParam, ULONG lParam); | 
|---|
| 53 | ULONG OSLibSendMessage(HWND hwnd, ULONG msg, ULONG wParam, ULONG lParam); | 
|---|
| 54 |  | 
|---|
| 55 | #define WAOS_WARNING                 0 | 
|---|
| 56 | #define WAOS_NOTE                    1 | 
|---|
| 57 | #define WAOS_ERROR                   2 | 
|---|
| 58 | #define WAOS_CWINALARMS             13     /* count of valid alarms     53304*/ | 
|---|
| 59 |  | 
|---|
| 60 | BOOL OSLibWinAlarm(HWND hwndDeskTop,ULONG flStyle); | 
|---|
| 61 | ULONG OSLibDosBeep(ULONG freg,ULONG dur); | 
|---|
| 62 | HWND OSLibWinQueryFocus(HWND hwndDeskTop); | 
|---|
| 63 |  | 
|---|
| 64 | #define OSLIB_FID_SYSMENU                0x8002 | 
|---|
| 65 | #define OSLIB_FID_TITLEBAR               0x8003 | 
|---|
| 66 | #define OSLIB_FID_MINMAX                 0x8004 | 
|---|
| 67 | #define OSLIB_FID_MENU                   0x8005 | 
|---|
| 68 | #define OSLIB_FID_VERTSCROLL             0x8006 | 
|---|
| 69 | #define OSLIB_FID_HORZSCROLL             0x8007 | 
|---|
| 70 | #define OSLIB_FID_CLIENT                 0x8008 | 
|---|
| 71 |  | 
|---|
| 72 | HWND OSLibWinWindowFromID(HWND hwndParent,ULONG id); | 
|---|
| 73 | BOOL OSLibWinSetFocus(HWND hwndDeskTop,HWND hwndNewFocus, BOOL activate); | 
|---|
| 74 | ULONG OSLibGetWindowHeight(HWND hwnd); //for point transformation | 
|---|
| 75 |  | 
|---|
| 76 | extern ULONG ScreenHeight; | 
|---|
| 77 | inline ULONG OSLibQueryScreenHeight(void) { return (ScreenHeight); } | 
|---|
| 78 |  | 
|---|
| 79 | //reserved deleted | 
|---|
| 80 |  | 
|---|
| 81 | #define SVOS_SWAPBUTTON              0 | 
|---|
| 82 | #define SVOS_DBLCLKTIME              1 | 
|---|
| 83 | #define SVOS_CXDBLCLK                2 | 
|---|
| 84 | #define SVOS_CYDBLCLK                3 | 
|---|
| 85 | #define SVOS_CXSIZEBORDER            4 | 
|---|
| 86 | #define SVOS_CYSIZEBORDER            5 | 
|---|
| 87 | #define SVOS_ALARM                   6 | 
|---|
| 88 | #define SVOS_CURSORRATE              9 | 
|---|
| 89 | #define SVOS_FIRSTSCROLLRATE         10 | 
|---|
| 90 | #define SVOS_SCROLLRATE              11 | 
|---|
| 91 | #define SVOS_NUMBEREDLISTS           12 | 
|---|
| 92 | #define SVOS_WARNINGFREQ             13 | 
|---|
| 93 | #define SVOS_NOTEFREQ                14 | 
|---|
| 94 | #define SVOS_ERRORFREQ               15 | 
|---|
| 95 | #define SVOS_WARNINGDURATION         16 | 
|---|
| 96 | #define SVOS_NOTEDURATION            17 | 
|---|
| 97 | #define SVOS_ERRORDURATION           18 | 
|---|
| 98 | #define SVOS_CXSCREEN                20 | 
|---|
| 99 | #define SVOS_CYSCREEN                21 | 
|---|
| 100 | #define SVOS_CXVSCROLL               22 | 
|---|
| 101 | #define SVOS_CYHSCROLL               23 | 
|---|
| 102 | #define SVOS_CYVSCROLLARROW          24 | 
|---|
| 103 | #define SVOS_CXHSCROLLARROW          25 | 
|---|
| 104 | #define SVOS_CXBORDER                26 | 
|---|
| 105 | #define SVOS_CYBORDER                27 | 
|---|
| 106 | #define SVOS_CXDLGFRAME              28 | 
|---|
| 107 | #define SVOS_CYDLGFRAME              29 | 
|---|
| 108 | #define SVOS_CYTITLEBAR              30 | 
|---|
| 109 | #define SVOS_CYVSLIDER               31 | 
|---|
| 110 | #define SVOS_CXHSLIDER               32 | 
|---|
| 111 | #define SVOS_CXMINMAXBUTTON          33 | 
|---|
| 112 | #define SVOS_CYMINMAXBUTTON          34 | 
|---|
| 113 | #define SVOS_CYMENU                  35 | 
|---|
| 114 | #define SVOS_CXFULLSCREEN            36 | 
|---|
| 115 | #define SVOS_CYFULLSCREEN            37 | 
|---|
| 116 | #define SVOS_CXICON                  38 | 
|---|
| 117 | #define SVOS_CYICON                  39 | 
|---|
| 118 | #define SVOS_CXPOINTER               40 | 
|---|
| 119 | #define SVOS_CYPOINTER               41 | 
|---|
| 120 | #define SVOS_DEBUG                   42 | 
|---|
| 121 | #define SVOS_CMOUSEBUTTONS           43 | 
|---|
| 122 | #define SVOS_CPOINTERBUTTONS         43 | 
|---|
| 123 | #define SVOS_POINTERLEVEL            44 | 
|---|
| 124 | #define SVOS_CURSORLEVEL             45 | 
|---|
| 125 | #define SVOS_TRACKRECTLEVEL          46 | 
|---|
| 126 | #define SVOS_CTIMERS                 47 | 
|---|
| 127 | #define SVOS_MOUSEPRESENT            48 | 
|---|
| 128 | #define SVOS_CXBYTEALIGN             49 | 
|---|
| 129 | #define SVOS_CXALIGN                 49 | 
|---|
| 130 | #define SVOS_CYBYTEALIGN             50 | 
|---|
| 131 | #define SVOS_CYALIGN                 50 | 
|---|
| 132 |  | 
|---|
| 133 | /* The following value enables any greater value to be set by WinSetSysValue. */ | 
|---|
| 134 | /* This is to enable the setting of SV_EXTRAKEYBEEP by applications.          */ | 
|---|
| 135 |  | 
|---|
| 136 | #define SVOS_NOTRESERVED             56 | 
|---|
| 137 | #define SVOS_EXTRAKEYBEEP            57 | 
|---|
| 138 |  | 
|---|
| 139 | /* The following system value controls whether PM controls the keyboard      */ | 
|---|
| 140 | /* lights for light key keystrokes (else applications will)                  */ | 
|---|
| 141 | #define SVOS_SETLIGHTS               58 | 
|---|
| 142 | #define SVOS_INSERTMODE              59 | 
|---|
| 143 |  | 
|---|
| 144 | #define SVOS_MENUROLLDOWNDELAY       64 | 
|---|
| 145 | #define SVOS_MENUROLLUPDELAY         65 | 
|---|
| 146 | #define SVOS_ALTMNEMONIC             66 | 
|---|
| 147 | #define SVOS_TASKLISTMOUSEACCESS     67 | 
|---|
| 148 | #define SVOS_CXICONTEXTWIDTH         68 | 
|---|
| 149 | #define SVOS_CICONTEXTLINES          69 | 
|---|
| 150 | #define SVOS_CHORDTIME               70 | 
|---|
| 151 | #define SVOS_CXCHORD                 71 | 
|---|
| 152 | #define SVOS_CYCHORD                 72 | 
|---|
| 153 | #define SVOS_CXMOTIONSTART           73 | 
|---|
| 154 | #define SVOS_CYMOTIONSTART           74 | 
|---|
| 155 | #define SVOS_BEGINDRAG               75 | 
|---|
| 156 | #define SVOS_ENDDRAG                 76 | 
|---|
| 157 | #define SVOS_SINGLESELECT            77 | 
|---|
| 158 | #define SVOS_OPEN                    78 | 
|---|
| 159 | #define SVOS_CONTEXTMENU             79 | 
|---|
| 160 | #define SVOS_CONTEXTHELP             80 | 
|---|
| 161 | #define SVOS_TEXTEDIT                81 | 
|---|
| 162 | #define SVOS_BEGINSELECT             82 | 
|---|
| 163 | #define SVOS_ENDSELECT               83 | 
|---|
| 164 | #define SVOS_BEGINDRAGKB             84 | 
|---|
| 165 | #define SVOS_ENDDRAGKB               85 | 
|---|
| 166 | #define SVOS_SELECTKB                86 | 
|---|
| 167 | #define SVOS_OPENKB                  87 | 
|---|
| 168 | #define SVOS_CONTEXTMENUKB           88 | 
|---|
| 169 | #define SVOS_CONTEXTHELPKB           89 | 
|---|
| 170 | #define SVOS_TEXTEDITKB              90 | 
|---|
| 171 | #define SVOS_BEGINSELECTKB           91 | 
|---|
| 172 | #define SVOS_ENDSELECTKB             92 | 
|---|
| 173 | #define SVOS_ANIMATION               93 | 
|---|
| 174 | #define SVOS_ANIMATIONSPEED          94 | 
|---|
| 175 | #define SVOS_MONOICONS               95 | 
|---|
| 176 | #define SVOS_KBDALTERED              96 | 
|---|
| 177 | #define SVOS_PRINTSCREEN             97 | 
|---|
| 178 | #define SVOS_LOCKSTARTINPUT          98 | 
|---|
| 179 | #define SVOS_CSYSVALUES              108 | 
|---|
| 180 |  | 
|---|
| 181 | LONG OSLibWinQuerySysValue(HWND hwndDeskTop,LONG iSysValue); | 
|---|
| 182 | ULONG OSLibWinQueryDlgItemText(HWND hwndDlg,ULONG idItem,LONG cchBufferMax,char* pchBuffer); | 
|---|
| 183 | BOOL OSLibWinSetDlgItemText(HWND hwndDlg,ULONG idItem,char* pszText); | 
|---|
| 184 | BOOL OSLibWinQueryPointerPos(HWND hwndDeskTop,PPOINT pptlPoint); //pptlPoint == POINTL pointer! | 
|---|
| 185 |  | 
|---|
| 186 | #define SWPOS_SIZE                   0x0001 | 
|---|
| 187 | #define SWPOS_MOVE                   0x0002 | 
|---|
| 188 | #define SWPOS_ZORDER                 0x0004 | 
|---|
| 189 | #define SWPOS_SHOW                   0x0008 | 
|---|
| 190 | #define SWPOS_HIDE                   0x0010 | 
|---|
| 191 | #define SWPOS_NOREDRAW               0x0020 | 
|---|
| 192 | #define SWPOS_NOADJUST               0x0040 | 
|---|
| 193 | #define SWPOS_ACTIVATE               0x0080 | 
|---|
| 194 | #define SWPOS_DEACTIVATE             0x0100 | 
|---|
| 195 | #define SWPOS_EXTSTATECHANGE         0x0200 | 
|---|
| 196 | #define SWPOS_MINIMIZE               0x0400 | 
|---|
| 197 | #define SWPOS_MAXIMIZE               0x0800 | 
|---|
| 198 | #define SWPOS_RESTORE                0x1000 | 
|---|
| 199 | #define SWPOS_FOCUSACTIVATE          0x2000 | 
|---|
| 200 | #define SWPOS_FOCUSDEACTIVATE        0x4000 | 
|---|
| 201 | #define SWPOS_NOAUTOCLOSE            0x8000    /* Valid in PROGDETAILS struct only */ | 
|---|
| 202 |  | 
|---|
| 203 | #define HWNDOS_TOP                      (HWND)3 | 
|---|
| 204 | #define HWNDOS_BOTTOM                   (HWND)4 | 
|---|
| 205 |  | 
|---|
| 206 | BOOL  OSLibWinSetWindowPos(HWND hwnd, HWND hwndInsertBehind, LONG x, LONG y, LONG cx, LONG cy, ULONG fl); | 
|---|
| 207 | BOOL  OSLibWinSetMultWindowPos(struct _SWP *pswp, ULONG num); | 
|---|
| 208 | BOOL  OSLibWinShowWindow(HWND hwnd, ULONG fl); | 
|---|
| 209 |  | 
|---|
| 210 | BOOL  OSLibWinDestroyWindow(HWND hwnd); | 
|---|
| 211 |  | 
|---|
| 212 | BOOL  OSLibWinIsIconic(HWND hwnd); | 
|---|
| 213 | BOOL  OSLibWinIsChild (HWND hwnd, HWND hwndOf); | 
|---|
| 214 | BOOL  OSLibWinSetActiveWindow(HWND hwnd); | 
|---|
| 215 | BOOL  OSLibWinSetFocus(HWND hwnd); | 
|---|
| 216 | BOOL  OSLibWinEnableWindow(HWND hwnd, BOOL fEnable); | 
|---|
| 217 | BOOL  OSLibWinIsWindowEnabled(HWND hwnd); | 
|---|
| 218 | BOOL  OSLibWinIsWindowVisible(HWND hwnd); | 
|---|
| 219 | BOOL  OSLibWinQueryActiveWindow(); | 
|---|
| 220 |  | 
|---|
| 221 |  | 
|---|
| 222 | #define RELATIVE_TO_WINDOW 0 | 
|---|
| 223 | #define RELATIVE_TO_SCREEN 1 | 
|---|
| 224 | BOOL  OSLibWinQueryWindowRect(HWND hwnd, PRECT pRect, int RelativeTo = RELATIVE_TO_WINDOW); | 
|---|
| 225 | BOOL  OSLibWinCalcFrameRect(HWND hwnd, RECT *pRect, BOOL fClient); | 
|---|
| 226 | BOOL  OSLibGetMinMaxInfo(HWND hwndFrame, MINMAXINFO *pMinMax); | 
|---|
| 227 |  | 
|---|
| 228 | #define QWOS_NEXT         0 | 
|---|
| 229 | #define QWOS_PREV         1 | 
|---|
| 230 | #define QWOS_TOP          2 | 
|---|
| 231 | #define QWOS_BOTTOM       3 | 
|---|
| 232 | #define QWOS_OWNER        4 | 
|---|
| 233 | #define QWOS_PARENT       5 | 
|---|
| 234 | #define QWOS_NEXTTOP      6 | 
|---|
| 235 | #define QWOS_PREVTOP      7 | 
|---|
| 236 | #define QWOS_FRAMEOWNER   8 | 
|---|
| 237 |  | 
|---|
| 238 | HWND  OSLibWinQueryWindow(HWND hwnd, ULONG lCode); | 
|---|
| 239 |  | 
|---|
| 240 | LONG  OSLibWinQueryWindowTextLength(HWND hwnd); | 
|---|
| 241 | LONG  OSLibWinQueryWindowText(HWND hwnd, LONG length, LPSTR lpsz); | 
|---|
| 242 | BOOL  OSLibWinSetWindowText(HWND hwnd, LPSTR lpsz); | 
|---|
| 243 | BOOL  OSLibWinFlashWindow(HWND hwnd, BOOL fFlash); | 
|---|
| 244 | HWND  OSLibWinWindowFromPoint(HWND hwnd, PVOID ppoint); | 
|---|
| 245 | BOOL  OSLibWinMinimizeWindow(HWND hwnd); | 
|---|
| 246 |  | 
|---|
| 247 | BOOL  OSLibWinGetBorderSize(HWND hwnd, OSLIBPOINT *pointl); | 
|---|
| 248 | BOOL  OSLibWinSetIcon(HWND hwnd, HANDLE hIcon); | 
|---|
| 249 |  | 
|---|
| 250 | BOOL  OSLibWinQueryWindowPos (HWND hwnd, PSWP pswp); | 
|---|
| 251 | void  OSLibMapSWPtoWINDOWPOS(PSWP pswp, struct tagWINDOWPOS *pwpos, PSWP pswpOld, HWND hParent, HWND hFrame); | 
|---|
| 252 | void  OSLibMapSWPtoWINDOWPOSFrame(PSWP pswp, struct tagWINDOWPOS *pwpos, PSWP pswpOld, HWND hParent, HWND hFrame); | 
|---|
| 253 | void  OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld, HWND hParent, HWND hFrame); | 
|---|
| 254 | void  OSLibMapWINDOWPOStoSWPFrame(PWINDOWPOS pwpos, PSWP pswp, PSWP pswpOld, HWND hParent, HWND hFrame); | 
|---|
| 255 |  | 
|---|
| 256 | HWND  OSLibWinBeginEnumWindows(HWND hwnd); | 
|---|
| 257 | HWND  OSLibWinGetNextWindow(HWND hwndEnum); | 
|---|
| 258 | HWND  OSLibWinQueryClientWindow(HWND hwndFrame); | 
|---|
| 259 | BOOL  OSLibWinEndEnumWindows(HWND hwndEnum); | 
|---|
| 260 | BOOL  OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid); | 
|---|
| 261 | BOOL  OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num); | 
|---|
| 262 |  | 
|---|
| 263 | HWND  OSLibWinObjectWindowFromID(HWND hwndOwner, ULONG ID); | 
|---|
| 264 |  | 
|---|
| 265 | #define OSLIB_HSCROLL   0 | 
|---|
| 266 | #define OSLIB_VSCROLL   1 | 
|---|
| 267 | BOOL  OSLibWinEnableScrollBar(HWND hwndParent, int scrollBar, BOOL fEnable); | 
|---|
| 268 | BOOL  OSLibWinShowScrollBar(HWND hwndParent, HWND hwndScroll, int scrollBar, BOOL fShow, BOOL fForceChange = FALSE); | 
|---|
| 269 | HWND  OSLibWinQueryScrollBarHandle(HWND hwndParent, int scrollBar); | 
|---|
| 270 | ULONG OSLibWinGetScrollPos(HWND hwndParent, HWND hwndScroll); | 
|---|
| 271 | ULONG OSLibWinSetScrollPos(HWND hwndParent, HWND hwndScroll, int pos, int fRedraw); | 
|---|
| 272 | BOOL  OSLibWinSetScrollRange(HWND hwndParent, HWND hwndScroll, int minpos, | 
|---|
| 273 | int maxpos, int fRedraw); | 
|---|
| 274 | BOOL  OSLibWinSetScrollPageSize(HWND hwndParent, HWND hwndScroll, int pagesize, | 
|---|
| 275 | int totalsize, int fRedraw); | 
|---|
| 276 |  | 
|---|
| 277 | void  OSLibTranslateScrollCmdAndMsg(ULONG *msg, ULONG *scrollcmd); | 
|---|
| 278 |  | 
|---|
| 279 | PVOID OSLibWinSubclassWindow(HWND hwnd,PVOID newWndProc); | 
|---|
| 280 |  | 
|---|
| 281 | BOOL OSLibSetWindowRestoreRect(HWND hwnd, PRECT pRect); | 
|---|
| 282 | BOOL OSLibSetWindowMinPos(HWND hwnd, ULONG x, ULONG y); | 
|---|
| 283 |  | 
|---|
| 284 | #endif //__OSLIBWIN_H__ | 
|---|