00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef __OSLIBWIN_H__
00014 #define __OSLIBWIN_H__
00015 #include <oslibgdi.h>
00016
00017 #ifndef WIN_INCLUDED
00018 typedef struct _SWP
00019 {
00020 ULONG fl;
00021 LONG cy;
00022 LONG cx;
00023 LONG y;
00024 LONG x;
00025 HWND hwndInsertBehind;
00026 HWND hwnd;
00027 ULONG ulReserved1;
00028 ULONG ulReserved2;
00029 } SWP, *PSWP;
00030 #endif
00031
00032
00033 #define OSLIB_HWND_DESKTOP 1
00034 #define OSLIB_HWND_OBJECT 2
00035
00036 BOOL OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE);
00037 BOOL OSLibWinSetOwner(HWND hwnd, HWND hwndOwner);
00038
00039
00040 HWND OSLibWinCreateWindow(HWND hwndParent,ULONG dwWinStyle, ULONG dwOSFrameStyle,
00041 char *pszName, HWND Owner, ULONG fBottom,
00042 ULONG id, BOOL fTaskList,BOOL fShellPosition,
00043 int classStyle, HWND *hwndFrame);
00044
00045 BOOL OSLibWinConvertStyle(ULONG dwStyle, ULONG dwExStyle, ULONG *OSWinStyle, ULONG *OSFrameStyle);
00046 void OSLibSetWindowStyle(HWND hwndFrame, HWND hwndClient, ULONG dwStyle, ULONG dwExStyle);
00047 DWORD OSLibQueryWindowStyle(HWND hwnd);
00048
00049 BOOL OSLibWinPositionFrameControls(HWND hwndFrame, RECTLOS2 *pRect, DWORD dwStyle, DWORD dwExStyle, HICON hSysMenuIcon);
00050
00051 #define OSLIB_QWL_USER -4
00052
00053 BOOL OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value);
00054 ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset);
00055 BOOL OSLibSetWindowID(HWND hwnd, ULONG value);
00056
00057 #define WAOS_WARNING 0
00058 #define WAOS_NOTE 1
00059 #define WAOS_ERROR 2
00060 #define WAOS_CWINALARMS 13
00061
00062 BOOL OSLibWinAlarm(HWND hwndDeskTop,ULONG flStyle);
00063 ULONG OSLibDosBeep(ULONG freg,ULONG dur);
00064 HWND OSLibWinQueryFocus(HWND hwndDeskTop);
00065
00066 #define OSLIB_FID_SYSMENU 0x8002
00067 #define OSLIB_FID_TITLEBAR 0x8003
00068 #define OSLIB_FID_MINMAX 0x8004
00069 #define OSLIB_FID_MENU 0x8005
00070 #define OSLIB_FID_VERTSCROLL 0x8006
00071 #define OSLIB_FID_HORZSCROLL 0x8007
00072 #define OSLIB_FID_CLIENT 0x8008
00073
00074 HWND OSLibWinWindowFromID(HWND hwndParent,ULONG id);
00075 BOOL OSLibWinSetFocus(HWND hwndDeskTop,HWND hwndNewFocus, BOOL activate);
00076
00077 extern ULONG ScreenHeight, ScreenWidth;
00078 inline ULONG OSLibQueryScreenHeight(void) { return (ScreenHeight); }
00079 inline ULONG OSLibQueryScreenWidth(void) { return (ScreenWidth); }
00080
00081
00082
00083 #define SVOS_SWAPBUTTON 0
00084 #define SVOS_DBLCLKTIME 1
00085 #define SVOS_CXDBLCLK 2
00086 #define SVOS_CYDBLCLK 3
00087 #define SVOS_CXSIZEBORDER 4
00088 #define SVOS_CYSIZEBORDER 5
00089 #define SVOS_ALARM 6
00090 #define SVOS_CURSORRATE 9
00091 #define SVOS_FIRSTSCROLLRATE 10
00092 #define SVOS_SCROLLRATE 11
00093 #define SVOS_NUMBEREDLISTS 12
00094 #define SVOS_WARNINGFREQ 13
00095 #define SVOS_NOTEFREQ 14
00096 #define SVOS_ERRORFREQ 15
00097 #define SVOS_WARNINGDURATION 16
00098 #define SVOS_NOTEDURATION 17
00099 #define SVOS_ERRORDURATION 18
00100 #define SVOS_CXSCREEN 20
00101 #define SVOS_CYSCREEN 21
00102 #define SVOS_CXVSCROLL 22
00103 #define SVOS_CYHSCROLL 23
00104 #define SVOS_CYVSCROLLARROW 24
00105 #define SVOS_CXHSCROLLARROW 25
00106 #define SVOS_CXBORDER 26
00107 #define SVOS_CYBORDER 27
00108 #define SVOS_CXDLGFRAME 28
00109 #define SVOS_CYDLGFRAME 29
00110 #define SVOS_CYTITLEBAR 30
00111 #define SVOS_CYVSLIDER 31
00112 #define SVOS_CXHSLIDER 32
00113 #define SVOS_CXMINMAXBUTTON 33
00114 #define SVOS_CYMINMAXBUTTON 34
00115 #define SVOS_CYMENU 35
00116 #define SVOS_CXFULLSCREEN 36
00117 #define SVOS_CYFULLSCREEN 37
00118 #define SVOS_CXICON 38
00119 #define SVOS_CYICON 39
00120 #define SVOS_CXPOINTER 40
00121 #define SVOS_CYPOINTER 41
00122 #define SVOS_DEBUG 42
00123 #define SVOS_CMOUSEBUTTONS 43
00124 #define SVOS_CPOINTERBUTTONS 43
00125 #define SVOS_POINTERLEVEL 44
00126 #define SVOS_CURSORLEVEL 45
00127 #define SVOS_TRACKRECTLEVEL 46
00128 #define SVOS_CTIMERS 47
00129 #define SVOS_MOUSEPRESENT 48
00130 #define SVOS_CXBYTEALIGN 49
00131 #define SVOS_CXALIGN 49
00132 #define SVOS_CYBYTEALIGN 50
00133 #define SVOS_CYALIGN 50
00134 #define SVOS_DESKTOPWORKAREAYTOP 51
00135 #define SVOS_DESKTOPWORKAREAYBOTTOM 52
00136 #define SVOS_DESKTOPWORKAREAXRIGHT 53
00137 #define SVOS_DESKTOPWORKAREAXLEFT 54
00138
00139
00140
00141
00142 #define SVOS_NOTRESERVED 56
00143 #define SVOS_EXTRAKEYBEEP 57
00144
00145
00146
00147 #define SVOS_SETLIGHTS 58
00148 #define SVOS_INSERTMODE 59
00149
00150 #define SVOS_MENUROLLDOWNDELAY 64
00151 #define SVOS_MENUROLLUPDELAY 65
00152 #define SVOS_ALTMNEMONIC 66
00153 #define SVOS_TASKLISTMOUSEACCESS 67
00154 #define SVOS_CXICONTEXTWIDTH 68
00155 #define SVOS_CICONTEXTLINES 69
00156 #define SVOS_CHORDTIME 70
00157 #define SVOS_CXCHORD 71
00158 #define SVOS_CYCHORD 72
00159 #define SVOS_CXMOTIONSTART 73
00160 #define SVOS_CYMOTIONSTART 74
00161 #define SVOS_BEGINDRAG 75
00162 #define SVOS_ENDDRAG 76
00163 #define SVOS_SINGLESELECT 77
00164 #define SVOS_OPEN 78
00165 #define SVOS_CONTEXTMENU 79
00166 #define SVOS_CONTEXTHELP 80
00167 #define SVOS_TEXTEDIT 81
00168 #define SVOS_BEGINSELECT 82
00169 #define SVOS_ENDSELECT 83
00170 #define SVOS_BEGINDRAGKB 84
00171 #define SVOS_ENDDRAGKB 85
00172 #define SVOS_SELECTKB 86
00173 #define SVOS_OPENKB 87
00174 #define SVOS_CONTEXTMENUKB 88
00175 #define SVOS_CONTEXTHELPKB 89
00176 #define SVOS_TEXTEDITKB 90
00177 #define SVOS_BEGINSELECTKB 91
00178 #define SVOS_ENDSELECTKB 92
00179 #define SVOS_ANIMATION 93
00180 #define SVOS_ANIMATIONSPEED 94
00181 #define SVOS_MONOICONS 95
00182 #define SVOS_KBDALTERED 96
00183 #define SVOS_PRINTSCREEN 97
00184 #define SVOS_LOCKSTARTINPUT 98
00185 #define SVOS_DYNAMICDRAG 99
00186 #define SVOS_ALTTABWINDOW 100
00187 #define SVOS_VIOMOUSEACTIONS 101
00188 #define SVOS_ASYNCFOCUSCHANGE 102
00189 #define SVOS_AFCSENSITIVITY 103
00190 #define SVOS_CLOSEVIOWITHOUTCONFIRM 104
00191 #define SVOS_CXCURSOR 106
00192 #define SVOS_CYCURSOR 107
00193 #define SVOS_CSYSVALUES 108
00194
00195 LONG OSLibWinQuerySysValue(LONG iSysValue);
00196 BOOL OSLibWinSetSysValue(LONG iSysValue, ULONG val);
00197 ULONG OSLibWinQueryDlgItemText(HWND hwndDlg,ULONG idItem,LONG cchBufferMax,char* pchBuffer);
00198 BOOL OSLibWinSetDlgItemText(HWND hwndDlg,ULONG idItem,char* pszText);
00199 BOOL OSLibWinQueryPointerPos(PPOINT pptlPoint);
00200 BOOL OSLibWinSetPointerPos(int x, int y);
00201
00202 #define SWPOS_SIZE 0x0001
00203 #define SWPOS_MOVE 0x0002
00204 #define SWPOS_ZORDER 0x0004
00205 #define SWPOS_SHOW 0x0008
00206 #define SWPOS_HIDE 0x0010
00207 #define SWPOS_NOREDRAW 0x0020
00208 #define SWPOS_NOADJUST 0x0040
00209 #define SWPOS_ACTIVATE 0x0080
00210 #define SWPOS_DEACTIVATE 0x0100
00211 #define SWPOS_EXTSTATECHANGE 0x0200
00212 #define SWPOS_MINIMIZE 0x0400
00213 #define SWPOS_MAXIMIZE 0x0800
00214 #define SWPOS_RESTORE 0x1000
00215 #define SWPOS_FOCUSACTIVATE 0x2000
00216 #define SWPOS_FOCUSDEACTIVATE 0x4000
00217 #define SWPOS_NOAUTOCLOSE 0x8000
00218
00219 #define HWNDOS_TOP (HWND)3
00220 #define HWNDOS_BOTTOM (HWND)4
00221
00222 BOOL OSLibWinSetMultWindowPos(struct _SWP *pswp, ULONG num);
00223 BOOL OSLibWinShowWindow(HWND hwnd, ULONG fl);
00224
00225 BOOL OSLibWinDestroyWindow(HWND hwnd);
00226
00227 BOOL OSLibWinIsIconic(HWND hwnd);
00228 BOOL OSLibWinIsChild (HWND hwnd, HWND hwndOf);
00229 BOOL OSLibWinSetActiveWindow(HWND hwnd);
00230 BOOL OSLibWinSetFocus(HWND hwnd);
00231 BOOL OSLibWinEnableWindow(HWND hwnd, BOOL fEnable);
00232 BOOL OSLibWinIsWindowEnabled(HWND hwnd);
00233 BOOL OSLibWinIsWindowVisible(HWND hwnd);
00234 HWND OSLibWinQueryActiveWindow();
00235
00236
00237 #define RELATIVE_TO_WINDOW 0
00238 #define RELATIVE_TO_SCREEN 1
00239 BOOL OSLibWinQueryWindowRect(Win32BaseWindow *window, PRECT pRect, int RelativeTo = RELATIVE_TO_WINDOW);
00240 BOOL OSLibQueryWindowRectAbsolute (HWND hwndOS2, PRECT pRect);
00241 ULONG OSLibGetWindowHeight(HWND hwnd);
00242
00243 BOOL OSLibWinQueryWindowClientRect(HWND hwnd, PRECT pRect);
00244
00245 BOOL OSLibWinCalcFrameRect(HWND hwnd, RECT *pRect, BOOL fClient);
00246 BOOL OSLibGetMinMaxInfo(HWND hwndFrame, MINMAXINFO *pMinMax);
00247
00248 #define QWOS_NEXT 0
00249 #define QWOS_PREV 1
00250 #define QWOS_TOP 2
00251 #define QWOS_BOTTOM 3
00252 #define QWOS_OWNER 4
00253 #define QWOS_PARENT 5
00254 #define QWOS_NEXTTOP 6
00255 #define QWOS_PREVTOP 7
00256 #define QWOS_FRAMEOWNER 8
00257
00258 HWND OSLibWinQueryWindow(HWND hwnd, ULONG lCode);
00259
00260 LONG OSLibWinQueryWindowTextLength(HWND hwnd);
00261 LONG OSLibWinQueryWindowText(HWND hwnd, LONG length, LPSTR lpsz);
00262 BOOL OSLibWinSetWindowText(HWND hwnd, LPSTR lpsz);
00263 BOOL OSLibWinSetTitleBarText(HWND hwnd, LPSTR lpsz);
00264 BOOL OSLibWinFlashWindow(HWND hwnd, BOOL fFlash);
00265 HWND OSLibWinWindowFromPoint(HWND hwnd, PVOID ppoint);
00266 BOOL OSLibWinMinimizeWindow(HWND hwnd);
00267
00268 BOOL OSLibWinGetBorderSize(HWND hwnd, OSLIBPOINT *pointl);
00269 BOOL OSLibWinSetIcon(HWND hwnd, HANDLE hIcon);
00270
00271 BOOL OSLibWinQueryWindowPos (HWND hwnd, PSWP pswp);
00272 void OSLibMapSWPtoWINDOWPOS(PSWP pswp, PWINDOWPOS pwpos, PSWP pswpOld,
00273 int parentHeight, HWND hwnd);
00274 void OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld,
00275 int parentHeight, HWND hFrame);
00276
00277 void OSLibWinSetClientPos(HWND hwnd, int x, int y, int cx, int cy, int parentHeight);
00278
00279 HWND OSLibWinBeginEnumWindows(HWND hwnd);
00280 HWND OSLibWinGetNextWindow(HWND hwndEnum);
00281 HWND OSLibWinQueryClientWindow(HWND hwndFrame);
00282 BOOL OSLibWinEndEnumWindows(HWND hwndEnum);
00283 BOOL OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
00284 BOOL OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num);
00285
00286 HWND OSLibWinObjectWindowFromID(HWND hwndOwner, ULONG ID);
00287
00288 HWND OSLibWinQueryObjectWindow(VOID);
00289
00290 PVOID OSLibWinSubclassWindow(HWND hwnd,PVOID newWndProc);
00291
00292 BOOL OSLibSetWindowRestoreRect(HWND hwnd, PRECT pRect);
00293 BOOL OSLibSetWindowMinPos(HWND hwnd, ULONG x, ULONG y);
00294
00295 BOOL OSLibWinGetKeyboardStateTable(unsigned char * PMKeyState);
00296 BOOL OSLibWinSetKeyboardStateTable(unsigned char * PMKeyState);
00297
00298 #define TCF_LSHIFT 0x0001
00299 #define TCF_RSHIFT 0x0002
00300 #define TCF_SHIFT (TCF_LSHIFT | TCF_RSHIFT)
00301 #define TCF_LCONTROL 0x0004
00302 #define TCF_RCONTROL 0x0008
00303 #define TCF_CONTROL (TCF_LCONTROL | TCF_RCONTROL)
00304 #define TCF_ALT 0x0010
00305 #define TCF_ALTGR 0x0020
00306 #define TCF_CAPSLOCK 0x0040
00307 #define TCF_NUMLOCK 0x0080
00308 #define TCF_OEMSCANCODE 0x0100
00309 #define TCF_EXTENDEDKEY 0x0200
00310
00311 #define TC_CHARTOSCANCODE 0
00312 #define TC_SCANCODETOCHAR 1
00313 #define TC_VIRTUALKEYTOSCANCODE 2
00314 #define TC_SCANCODETOVIRTUALKEY 3
00315 #define TC_SCANTOOEMSCAN 4
00316 #define TC_OEMSCANTOSCAN 5
00317
00318 USHORT OSLibWinTranslateChar(USHORT usScanCode, ULONG type, USHORT shiftstate);
00319
00320 #define HTOS_NORMAL 0
00321 #define HTOS_TRANSPARENT (-1)
00322 #define HTOS_DISCARD (-2)
00323 #define HTOS_ERROR (-3)
00324
00325 BOOL OSLibWinEnableWindowUpdate(HWND hwndFrame, HWND hwndClient ,BOOL fEnable);
00326 ULONG OSLibWinGetLastError();
00327
00328 void OSLibWinShowTaskList(HWND hwndFrame);
00329
00330 void OSLibWinSetVisibleRegionNotify(HWND hwnd, BOOL fNotify);
00331
00332 HWND OSLibWinQueryCapture();
00333 BOOL OSLibWinSetCapture(HWND hwnd);
00334
00335 BOOL OSLibWinRemoveFromTasklist(HANDLE hTaskList);
00336 HANDLE OSLibWinAddToTaskList(HWND hwndFrame, char *title, BOOL fVisible);
00337 BOOL OSLibWinChangeTaskList(HANDLE hTaskList, HWND hwndFrame, char *title, BOOL fVisible);
00338
00339 inline ULONG GetScreenHeight()
00340 {
00341 return ScreenHeight;
00342 }
00343
00344 inline ULONG GetScreenWidth()
00345 {
00346 return ScreenWidth;
00347 }
00348
00349 ULONG OSLibGetScreenHeight();
00350 ULONG OSLibGetScreenWidth();
00351
00352 BOOL OSLibWinLockWindowUpdate(HWND hwnd);
00353 BOOL OSLibWinGetMaxPosition(HWND hwndOS2, RECT *rect);
00354
00355 BOOL OSLibWinShowPointer(BOOL fShow);
00356
00357
00358 #define PMSYSCLR_SHADOWHILITEBGND (-50L)
00359 #define PMSYSCLR_SHADOWHILITEFGND (-49L)
00360 #define PMSYSCLR_SHADOWTEXT (-48L)
00361 #define PMSYSCLR_ENTRYFIELD (-47L)
00362 #define PMSYSCLR_MENUDISABLEDTEXT (-46L)
00363 #define PMSYSCLR_MENUHILITE (-45L)
00364 #define PMSYSCLR_MENUHILITEBGND (-44L)
00365 #define PMSYSCLR_PAGEBACKGROUND (-43L)
00366 #define PMSYSCLR_FIELDBACKGROUND (-42L)
00367 #define PMSYSCLR_BUTTONLIGHT (-41L)
00368 #define PMSYSCLR_BUTTONMIDDLE (-40L)
00369 #define PMSYSCLR_BUTTONDARK (-39L)
00370 #define PMSYSCLR_BUTTONDEFAULT (-38L)
00371 #define PMSYSCLR_TITLEBOTTOM (-37L)
00372 #define PMSYSCLR_SHADOW (-36L)
00373 #define PMSYSCLR_ICONTEXT (-35L)
00374 #define PMSYSCLR_DIALOGBACKGROUND (-34L)
00375 #define PMSYSCLR_HILITEFOREGROUND (-33L)
00376 #define PMSYSCLR_HILITEBACKGROUND (-32L)
00377 #define PMSYSCLR_INACTIVETITLETEXTBGND (-31L)
00378 #define PMSYSCLR_ACTIVETITLETEXTBGND (-30L)
00379 #define PMSYSCLR_INACTIVETITLETEXT (-29L)
00380 #define PMSYSCLR_ACTIVETITLETEXT (-28L)
00381 #define PMSYSCLR_OUTPUTTEXT (-27L)
00382 #define PMSYSCLR_WINDOWSTATICTEXT (-26L)
00383 #define PMSYSCLR_SCROLLBAR (-25L)
00384 #define PMSYSCLR_BACKGROUND (-24L)
00385 #define PMSYSCLR_ACTIVETITLE (-23L)
00386 #define PMSYSCLR_INACTIVETITLE (-22L)
00387 #define PMSYSCLR_MENU (-21L)
00388 #define PMSYSCLR_WINDOW (-20L)
00389 #define PMSYSCLR_WINDOWFRAME (-19L)
00390 #define PMSYSCLR_MENUTEXT (-18L)
00391 #define PMSYSCLR_WINDOWTEXT (-17L)
00392 #define PMSYSCLR_TITLETEXT (-16L)
00393 #define PMSYSCLR_ACTIVEBORDER (-15L)
00394 #define PMSYSCLR_INACTIVEBORDER (-14L)
00395 #define PMSYSCLR_APPWORKSPACE (-13L)
00396 #define PMSYSCLR_HELPBACKGROUND (-12L)
00397 #define PMSYSCLR_HELPTEXT (-11L)
00398 #define PMSYSCLR_HELPHILITE (-10L)
00399
00400 #define PMSYSCLR_CSYSCOLORS 41L
00401 #define PMSYSCLR_BASE 50L
00402
00403 #define CONVERT_RGB(colorRef) ( ((colorRef) & 0x0000FF00 ) | \
00404 (((colorRef) & 0x00FF0000)>>16) | \
00405 (((colorRef) & 0x000000FF)<<16) )
00406
00407 ULONG OSLibWinQuerySysColor(int index);
00408
00409 #endif //__OSLIBWIN_H__