| 1 | /* $Id: open32wbase.h,v 1.1 1999-09-04 20:03:10 dengert Exp $ */
|
|---|
| 2 | /*
|
|---|
| 3 | * Open32 Window fake Base Class for OS/2
|
|---|
| 4 | *
|
|---|
| 5 | *
|
|---|
| 6 | * Copyright 1999 Daniela Engert (dani@ngrt.de)
|
|---|
| 7 | *
|
|---|
| 8 | *
|
|---|
| 9 | * Project Odin Software License can be found in LICENSE.TXT
|
|---|
| 10 | *
|
|---|
| 11 | */
|
|---|
| 12 | #ifndef __OPEN32WINBASE_H__
|
|---|
| 13 | #define __OPEN32WINBASE_H__
|
|---|
| 14 |
|
|---|
| 15 | extern "C" {
|
|---|
| 16 | void _System WinSetDAXData (HWND, PVOID);
|
|---|
| 17 | }
|
|---|
| 18 |
|
|---|
| 19 | #pragma pack(1)
|
|---|
| 20 |
|
|---|
| 21 | class fakeOpen32WinBaseClass
|
|---|
| 22 | {
|
|---|
| 23 | public:
|
|---|
| 24 | virtual BOOL clientArea(PRECTL pRectl) { pRectl=pRectl; return FALSE; }
|
|---|
| 25 | virtual BOOL redraw() { return bRedraw; }
|
|---|
| 26 | virtual VOID setRedraw( BOOL bOn = TRUE ) { bRedraw = bOn; }
|
|---|
| 27 |
|
|---|
| 28 | // private:
|
|---|
| 29 | char type;
|
|---|
| 30 | LONG lUserData;
|
|---|
| 31 | HWND hwndThisObject;
|
|---|
| 32 | HWND hwndFocusPartner;
|
|---|
| 33 | ULONG origStyle; /* Original windows style */
|
|---|
| 34 | ULONG origStyleEx; /* Original extended windows style */
|
|---|
| 35 | ULONG hevObjWinCreated; /* Posted by ObjWin thread upon creation of WinobjWin object */
|
|---|
| 36 | #define PMS_SIZE 10
|
|---|
| 37 | INT PMSIdx_beginPaint; /* Poor Man's Stack index for begin paint HPS handles */
|
|---|
| 38 | ULONG PMS_beginPaint[PMS_SIZE]; /* Poor Man's Stack for begin paint HPS handles */
|
|---|
| 39 | Win32WndClass *pWindowClass; /* ptr to window class */
|
|---|
| 40 | PVOID pWinExtra;
|
|---|
| 41 | PVOID beginPaintHPS_HDC;
|
|---|
| 42 | PVOID ownDeviceContext;
|
|---|
| 43 | ULONG ulNextChildId;
|
|---|
| 44 | PVOID pfnwpWindows;
|
|---|
| 45 | PVOID pfnwpPMOriginal;
|
|---|
| 46 |
|
|---|
| 47 | ULONG bZeroId:1, /* See Note 1 */
|
|---|
| 48 | bInCreate:1,
|
|---|
| 49 | bDragDrop:1, /* Set by DragAcceptFiles() */
|
|---|
| 50 | bEraseBkgnd:1, /* See Note 2 */
|
|---|
| 51 | bPSEraseFlag:1, /* See Note 2 */
|
|---|
| 52 | bSupressErase:1, /* See Note 2 */
|
|---|
| 53 | bPaintNow:1, /* See Note 2 */
|
|---|
| 54 | bRedraw:1,
|
|---|
| 55 | bDestroyed:1,
|
|---|
| 56 | bSendSetFocus:1,
|
|---|
| 57 | bGotSetFocus:1,
|
|---|
| 58 | ulReserved:21;
|
|---|
| 59 | };
|
|---|
| 60 |
|
|---|
| 61 | #pragma pack()
|
|---|
| 62 |
|
|---|
| 63 | /* NOTES:
|
|---|
| 64 | * 1) The window ID for many DAX windows will default to zero. This is
|
|---|
| 65 | * because the window ID is taken from the hmenu parameter in the
|
|---|
| 66 | * CreateWindow call and this parameter will very often be 0 for child
|
|---|
| 67 | * windows. Since PM sends many control messages with only an id as a
|
|---|
| 68 | * means of identification, we are forced to substitute another window ID
|
|---|
| 69 | * internally when a window is created with an ID of 0. The private
|
|---|
| 70 | * bZeroId flag indicates when this happens. One disadvantage is that
|
|---|
| 71 | * the window ID as queried from PM for a DAX window will not be the real
|
|---|
| 72 | * DAX window ID when it should be zero. Because of this the windowId
|
|---|
| 73 | * member function should be used any time the ID is going to be passed
|
|---|
| 74 | * back to a DAX app (in a message or structure, for instance).
|
|---|
| 75 | * Fortunately this does not happen often.
|
|---|
| 76 | * 2) bEraseBkgnd is set to TRUE if the background needs to be erased. The
|
|---|
| 77 | * bPSEraseFlag tells BeginPaint what to set the PAINTSTRUCT fErased flag
|
|---|
| 78 | * to when bEraseBkgnd is FALSE. The bPSEraseFlag is necessary because
|
|---|
| 79 | * RedrawWindow must set bEraseBkgnd to FALSE if RDW_ERASENOW is used,
|
|---|
| 80 | * but BeginPaint must still set fErase to TRUE if the WM_ERASEBKGND
|
|---|
| 81 | * message returned FALSE.
|
|---|
| 82 | */
|
|---|
| 83 |
|
|---|
| 84 | #endif
|
|---|
| 85 |
|
|---|