Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

oslibwin.h

Go to the documentation of this file.
00001 /* $Id: oslibwin.h,v 1.64 2002/01/20 15:26:21 sandervl Exp $ */
00002 /*
00003  * Window API wrappers for OS/2
00004  *
00005  *
00006  * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
00007  * Copyright 1999      Daniela Engert (dani@ngrt.de)
00008  *
00009  *
00010  * Project Odin Software License can be found in LICENSE.TXT
00011  *
00012  */
00013 #ifndef __OSLIBWIN_H__
00014 #define __OSLIBWIN_H__
00015 #include <oslibgdi.h>
00016 
00017 #ifndef WIN_INCLUDED
00018 typedef struct _SWP    /* 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 //SvL: Must be the same as HWND_DESKTOP/OBJECT in pmwin.h!
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     /* count of valid alarms     53304*/
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 //reserved deleted
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 /* The following value enables any greater value to be set by WinSetSysValue. */
00140 /* This is to enable the setting of SV_EXTRAKEYBEEP by applications.          */
00141 
00142 #define SVOS_NOTRESERVED             56
00143 #define SVOS_EXTRAKEYBEEP            57
00144 
00145 /* The following system value controls whether PM controls the keyboard      */
00146 /* lights for light key keystrokes (else applications will)                  */
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); //pptlPoint == POINTL pointer!
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    /* Valid in PROGDETAILS struct only */
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); //for point transformation
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__

Generated on Wed Jan 23 23:17:40 2002 for ODIN-user32 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001