1*fc9fd3f1SPedro Giffuni /**************************************************************
2*fc9fd3f1SPedro Giffuni *
3*fc9fd3f1SPedro Giffuni * Licensed to the Apache Software Foundation (ASF) under one
4*fc9fd3f1SPedro Giffuni * or more contributor license agreements. See the NOTICE file
5*fc9fd3f1SPedro Giffuni * distributed with this work for additional information
6*fc9fd3f1SPedro Giffuni * regarding copyright ownership. The ASF licenses this file
7*fc9fd3f1SPedro Giffuni * to you under the Apache License, Version 2.0 (the
8*fc9fd3f1SPedro Giffuni * "License"); you may not use this file except in compliance
9*fc9fd3f1SPedro Giffuni * with the License. You may obtain a copy of the License at
10*fc9fd3f1SPedro Giffuni *
11*fc9fd3f1SPedro Giffuni * http://www.apache.org/licenses/LICENSE-2.0
12*fc9fd3f1SPedro Giffuni *
13*fc9fd3f1SPedro Giffuni * Unless required by applicable law or agreed to in writing,
14*fc9fd3f1SPedro Giffuni * software distributed under the License is distributed on an
15*fc9fd3f1SPedro Giffuni * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*fc9fd3f1SPedro Giffuni * KIND, either express or implied. See the License for the
17*fc9fd3f1SPedro Giffuni * specific language governing permissions and limitations
18*fc9fd3f1SPedro Giffuni * under the License.
19*fc9fd3f1SPedro Giffuni *
20*fc9fd3f1SPedro Giffuni *************************************************************/
21*fc9fd3f1SPedro Giffuni
22*fc9fd3f1SPedro Giffuni
23*fc9fd3f1SPedro Giffuni
24*fc9fd3f1SPedro Giffuni #ifndef _SV_SALDATA_HXX
25*fc9fd3f1SPedro Giffuni #define _SV_SALDATA_HXX
26*fc9fd3f1SPedro Giffuni
27*fc9fd3f1SPedro Giffuni #include <svdata.hxx>
28*fc9fd3f1SPedro Giffuni #include <salwtype.hxx>
29*fc9fd3f1SPedro Giffuni
30*fc9fd3f1SPedro Giffuni class Os2SalInstance;
31*fc9fd3f1SPedro Giffuni class Os2SalFrame;
32*fc9fd3f1SPedro Giffuni class Os2SalObject;
33*fc9fd3f1SPedro Giffuni
34*fc9fd3f1SPedro Giffuni extern "C" int debug_printf(const char *f, ...);
35*fc9fd3f1SPedro Giffuni
36*fc9fd3f1SPedro Giffuni // --------------
37*fc9fd3f1SPedro Giffuni // - SalIMEData -
38*fc9fd3f1SPedro Giffuni // --------------
39*fc9fd3f1SPedro Giffuni
40*fc9fd3f1SPedro Giffuni // YD FIXME #define ENABLE_IME
41*fc9fd3f1SPedro Giffuni
42*fc9fd3f1SPedro Giffuni #ifdef ENABLE_IME
43*fc9fd3f1SPedro Giffuni
44*fc9fd3f1SPedro Giffuni struct SalIMEData;
45*fc9fd3f1SPedro Giffuni
46*fc9fd3f1SPedro Giffuni #ifdef OS2IM_INCLUDED
47*fc9fd3f1SPedro Giffuni
48*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImAssociateInstanceFunc)( HWND hwnd, HIMI himi, PHIMI phimiPrev );
49*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImGetInstanceFunc)( HWND hwnd, PHIMI phimi );
50*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImReleaseInstanceFunc)( HWND hwnd, HIMI himi );
51*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImSetConversionFontFunc)( HIMI himi, PFATTRS pFontAttrs );
52*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImSetConversionFontSizeFunc)( HIMI himi, PSIZEF psizfxBox );
53*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImGetConversionStringFunc)( HIMI himi, ULONG ulIndex, PVOID pBuf, PULONG pulBufLen );
54*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImGetResultStringFunc)( HIMI himi, ULONG ulIndex, PVOID pBuf, PULONG pulBufLen );
55*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImSetCandidateWindowPosFunc)( HIMI himi, PCANDIDATEPOS pCandidatePos );
56*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImQueryIMEPropertyFunc)( HIMI himi, ULONG ulIndex, PULONG pulProp );
57*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImRequestIMEFunc)( HIMI himi, ULONG ulAction, ULONG ulIndex, ULONG ulValue );
58*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImSetIMModeFunc)( HIMI himi, ULONG ulInputMode, ULONG ulConversionMode );
59*fc9fd3f1SPedro Giffuni typedef APIRET (APIENTRY ImQueryIMModeFunc)( HIMI himi, PULONG pulInputMode, PULONG pulConversionMode );
60*fc9fd3f1SPedro Giffuni
61*fc9fd3f1SPedro Giffuni struct SalIMEData
62*fc9fd3f1SPedro Giffuni {
63*fc9fd3f1SPedro Giffuni HMODULE mhModIME;
64*fc9fd3f1SPedro Giffuni ImAssociateInstanceFunc* mpAssocIME;
65*fc9fd3f1SPedro Giffuni ImGetInstanceFunc* mpGetIME;
66*fc9fd3f1SPedro Giffuni ImReleaseInstanceFunc* mpReleaseIME;
67*fc9fd3f1SPedro Giffuni ImSetConversionFontFunc* mpSetConversionFont;
68*fc9fd3f1SPedro Giffuni ImSetConversionFontSizeFunc* mpSetConversionFontSize;
69*fc9fd3f1SPedro Giffuni ImGetConversionStringFunc* mpGetConversionString;
70*fc9fd3f1SPedro Giffuni ImGetResultStringFunc* mpGetResultString;
71*fc9fd3f1SPedro Giffuni ImSetCandidateWindowPosFunc* mpSetCandidateWin;
72*fc9fd3f1SPedro Giffuni ImQueryIMEPropertyFunc* mpQueryIMEProperty;
73*fc9fd3f1SPedro Giffuni ImRequestIMEFunc* mpRequestIME;
74*fc9fd3f1SPedro Giffuni ImSetIMModeFunc* mpSetIMEMode;
75*fc9fd3f1SPedro Giffuni ImQueryIMModeFunc* mpQueryIMEMode;
76*fc9fd3f1SPedro Giffuni };
77*fc9fd3f1SPedro Giffuni
78*fc9fd3f1SPedro Giffuni #endif
79*fc9fd3f1SPedro Giffuni
80*fc9fd3f1SPedro Giffuni #endif
81*fc9fd3f1SPedro Giffuni
82*fc9fd3f1SPedro Giffuni // --------------------
83*fc9fd3f1SPedro Giffuni // - Icon cache -
84*fc9fd3f1SPedro Giffuni // --------------------
85*fc9fd3f1SPedro Giffuni
86*fc9fd3f1SPedro Giffuni struct SalIcon
87*fc9fd3f1SPedro Giffuni {
88*fc9fd3f1SPedro Giffuni int nId;
89*fc9fd3f1SPedro Giffuni HPOINTER hIcon;
90*fc9fd3f1SPedro Giffuni SalIcon *pNext;
91*fc9fd3f1SPedro Giffuni };
92*fc9fd3f1SPedro Giffuni
93*fc9fd3f1SPedro Giffuni // -----------
94*fc9fd3f1SPedro Giffuni // - SalData -
95*fc9fd3f1SPedro Giffuni // -----------
96*fc9fd3f1SPedro Giffuni
97*fc9fd3f1SPedro Giffuni struct SalData
98*fc9fd3f1SPedro Giffuni {
99*fc9fd3f1SPedro Giffuni HAB mhAB; // anchor block handle
100*fc9fd3f1SPedro Giffuni HMQ mhMQ; // handle of os2 message queue
101*fc9fd3f1SPedro Giffuni int mnArgc; // commandline param count
102*fc9fd3f1SPedro Giffuni char** mpArgv; // commandline
103*fc9fd3f1SPedro Giffuni ULONG mnNewTimerMS; // Neue Zeit, mit dem der Timer gestartet werden soll
104*fc9fd3f1SPedro Giffuni ULONG mnTimerMS; // Current Time (in MS) of the Timer
105*fc9fd3f1SPedro Giffuni ULONG mnTimerOrgMS; // Current Original Time (in MS)
106*fc9fd3f1SPedro Giffuni ULONG mnNextTimerTime;
107*fc9fd3f1SPedro Giffuni ULONG mnLastEventTime;
108*fc9fd3f1SPedro Giffuni ULONG mnTimerId; // os2 timer id
109*fc9fd3f1SPedro Giffuni PM_BOOL mbInTimerProc; // timer event is currently being dispatched
110*fc9fd3f1SPedro Giffuni //SALTIMERPROC mpTimerProc; // timer callback proc
111*fc9fd3f1SPedro Giffuni HWND mhWantLeaveMsg; // window handle, that want a MOUSELEAVE message
112*fc9fd3f1SPedro Giffuni AutoTimer* mpMouseLeaveTimer; // Timer for MouseLeave Test
113*fc9fd3f1SPedro Giffuni Os2SalInstance* mpFirstInstance; // pointer of first instance
114*fc9fd3f1SPedro Giffuni Os2SalFrame* mpFirstFrame; // pointer of first frame
115*fc9fd3f1SPedro Giffuni Os2SalFrame* mpCreateFrame; // Create-Frame for WM_CREATE
116*fc9fd3f1SPedro Giffuni Os2SalObject* mpFirstObject; // pointer of first object window
117*fc9fd3f1SPedro Giffuni ULONG mnAppThreadId; // Id from Applikation-Thread
118*fc9fd3f1SPedro Giffuni ULONG mnFontMetricCount; // number of entries in the font list
119*fc9fd3f1SPedro Giffuni PFONTMETRICS mpFontMetrics; // cached font list
120*fc9fd3f1SPedro Giffuni PM_BOOL mbObjClassInit; // Ist SALOBJECTCLASS initialised
121*fc9fd3f1SPedro Giffuni #ifdef ENABLE_IME
122*fc9fd3f1SPedro Giffuni SalIMEData* mpIMEData; // SalIME-Data
123*fc9fd3f1SPedro Giffuni PM_BOOL mbIMEInit; // SalIME-Data-Init
124*fc9fd3f1SPedro Giffuni #endif
125*fc9fd3f1SPedro Giffuni
126*fc9fd3f1SPedro Giffuni SalIcon* mpFirstIcon; // icon cache, points to first icon, NULL if none
127*fc9fd3f1SPedro Giffuni
128*fc9fd3f1SPedro Giffuni };
129*fc9fd3f1SPedro Giffuni
SetSalData(SalData * pData)130*fc9fd3f1SPedro Giffuni inline void SetSalData( SalData* pData ) { ImplGetSVData()->mpSalData = (void*)pData; }
GetSalData()131*fc9fd3f1SPedro Giffuni inline SalData* GetSalData() { return (SalData*)ImplGetSVData()->mpSalData; }
GetAppSalData()132*fc9fd3f1SPedro Giffuni inline SalData* GetAppSalData() { return (SalData*)ImplGetAppSVData()->mpSalData; }
133*fc9fd3f1SPedro Giffuni
134*fc9fd3f1SPedro Giffuni // --------------
135*fc9fd3f1SPedro Giffuni // - SalShlData -
136*fc9fd3f1SPedro Giffuni // --------------
137*fc9fd3f1SPedro Giffuni
138*fc9fd3f1SPedro Giffuni #define OS2_VER_211 211
139*fc9fd3f1SPedro Giffuni #define OS2_VER_WARP3 230
140*fc9fd3f1SPedro Giffuni #define OS2_VER_WARP4 240
141*fc9fd3f1SPedro Giffuni
142*fc9fd3f1SPedro Giffuni struct SalShlData
143*fc9fd3f1SPedro Giffuni {
144*fc9fd3f1SPedro Giffuni HMODULE mhMod; // Module handle of SAL-DLL
145*fc9fd3f1SPedro Giffuni USHORT mnVersion; // 211 = OS2 2.11; 230 = OS2 3.0; 240 = OS2 4.0
146*fc9fd3f1SPedro Giffuni PFNWP mpFrameProc; // old frame proc
147*fc9fd3f1SPedro Giffuni };
148*fc9fd3f1SPedro Giffuni
149*fc9fd3f1SPedro Giffuni extern SalShlData aSalShlData;
150*fc9fd3f1SPedro Giffuni
151*fc9fd3f1SPedro Giffuni PM_BOOL SalImplHandleProcessMenu( HWND hWnd, ULONG nMsg, MPARAM nMP1, MPARAM nMP2 );
152*fc9fd3f1SPedro Giffuni
153*fc9fd3f1SPedro Giffuni // --------------------------------------------
154*fc9fd3f1SPedro Giffuni // - SALSHL.CXX - for accessing DLL resources -
155*fc9fd3f1SPedro Giffuni // --------------------------------------------
156*fc9fd3f1SPedro Giffuni
157*fc9fd3f1SPedro Giffuni HPOINTER ImplLoadSalCursor( int nId );
158*fc9fd3f1SPedro Giffuni HBITMAP ImplLoadSalBitmap( int nId );
159*fc9fd3f1SPedro Giffuni sal_Bool ImplLoadSalIcon( int nId, HPOINTER& rIcon);
160*fc9fd3f1SPedro Giffuni
161*fc9fd3f1SPedro Giffuni // SALGDI.CXX
162*fc9fd3f1SPedro Giffuni void ImplInitSalGDI();
163*fc9fd3f1SPedro Giffuni void ImplFreeSalGDI();
164*fc9fd3f1SPedro Giffuni
165*fc9fd3f1SPedro Giffuni // --------------
166*fc9fd3f1SPedro Giffuni // - Prototypes -
167*fc9fd3f1SPedro Giffuni // --------------
168*fc9fd3f1SPedro Giffuni
169*fc9fd3f1SPedro Giffuni // \\OS2\SOURCE\APP\SALINST.CXX
170*fc9fd3f1SPedro Giffuni void ImplSalYieldMutexAcquireWithWait();
171*fc9fd3f1SPedro Giffuni ULONG ImplSalReleaseYieldMutex();
172*fc9fd3f1SPedro Giffuni void ImplSalAcquireYieldMutex( ULONG nCount );
173*fc9fd3f1SPedro Giffuni ULONG GetCurrentThreadId();
174*fc9fd3f1SPedro Giffuni sal_Bool ImplSalYieldMutexTryToAcquire();
175*fc9fd3f1SPedro Giffuni void ImplSalYieldMutexAcquire();
176*fc9fd3f1SPedro Giffuni void ImplSalYieldMutexRelease();
177*fc9fd3f1SPedro Giffuni
178*fc9fd3f1SPedro Giffuni // \\OS2\SOURCE\WINDOW\SALFRAME.CXX
179*fc9fd3f1SPedro Giffuni MRESULT EXPENTRY SalFrameWndProc( HWND hWnd, ULONG nMsg, MPARAM nMP1, MPARAM nMP2 );
180*fc9fd3f1SPedro Giffuni MRESULT EXPENTRY SalFrameFrameProc( HWND hWnd, ULONG nMsg, MPARAM nMP1, MPARAM nMP2 );
181*fc9fd3f1SPedro Giffuni // \SV\WIN\SOURCE\APP\SALTIMER.CXX
182*fc9fd3f1SPedro Giffuni #define SALTIMERPROC_RECURSIVE 0xffffffff
183*fc9fd3f1SPedro Giffuni void SalTimerProc( HWND hWnd, UINT nMsg, UINT nId, ULONG nTime );
184*fc9fd3f1SPedro Giffuni
185*fc9fd3f1SPedro Giffuni // \WIN\SOURCE\WINDOW\SALFRAME.CXX
186*fc9fd3f1SPedro Giffuni void SalTestMouseLeave();
187*fc9fd3f1SPedro Giffuni
188*fc9fd3f1SPedro Giffuni // \\OS2\SOURCE\WINDOW\SALFRAME.CXX
189*fc9fd3f1SPedro Giffuni // return Frame for Message-Handling
190*fc9fd3f1SPedro Giffuni Os2SalFrame* GetSalDefaultFrame();
191*fc9fd3f1SPedro Giffuni
192*fc9fd3f1SPedro Giffuni // \\OS2\SOURCE\WINDOW\SALFRAME.CXX
193*fc9fd3f1SPedro Giffuni // IME-Daten wieder freigeben
194*fc9fd3f1SPedro Giffuni #ifdef ENABLE_IME
195*fc9fd3f1SPedro Giffuni void ImplReleaseSALIMEData();
196*fc9fd3f1SPedro Giffuni #endif
197*fc9fd3f1SPedro Giffuni
198*fc9fd3f1SPedro Giffuni // -----------
199*fc9fd3f1SPedro Giffuni // - Defines -
200*fc9fd3f1SPedro Giffuni // -----------
201*fc9fd3f1SPedro Giffuni
202*fc9fd3f1SPedro Giffuni #define SAL_PROFILE_APPNAME ((PSZ)"StarOffice")
203*fc9fd3f1SPedro Giffuni #define SAL_PROFILE_USEDJP ((PSZ)"UseDJP")
204*fc9fd3f1SPedro Giffuni #define SAL_PROFILE_PRINTDJP ((PSZ)"PrintDJP")
205*fc9fd3f1SPedro Giffuni #define SAL_PROFILE_PRINTRAW ((PSZ)"PrintRAW")
206*fc9fd3f1SPedro Giffuni
207*fc9fd3f1SPedro Giffuni #define SAL_FRAME_WNDEXTRA sizeof(ULONG)
208*fc9fd3f1SPedro Giffuni #define SAL_FRAME_THIS 0
209*fc9fd3f1SPedro Giffuni #define SAL_FRAME_CLASSNAME "SALFRAME"
210*fc9fd3f1SPedro Giffuni #define SAL_SUBFRAME_CLASSNAME "SALSUBFRAME"
211*fc9fd3f1SPedro Giffuni #define SAL_OBJECT_WNDEXTRA sizeof(ULONG)
212*fc9fd3f1SPedro Giffuni #define SAL_OBJECT_THIS 0
213*fc9fd3f1SPedro Giffuni #define SAL_OBJECT_CLASSNAME "SALOBJECT"
214*fc9fd3f1SPedro Giffuni #define SAL_OBJECT_CHILDCLASSNAME "SALOBJECTCHILD"
215*fc9fd3f1SPedro Giffuni #define SAL_OBJECT_CLIPCLASSNAME "SALOBJECTCLIP"
216*fc9fd3f1SPedro Giffuni #define SAL_COM_CLASSNAME "SALCOMWND"
217*fc9fd3f1SPedro Giffuni
218*fc9fd3f1SPedro Giffuni #define SAL_MOUSELEAVE_TIMEOUT 300
219*fc9fd3f1SPedro Giffuni
220*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == pData
221*fc9fd3f1SPedro Giffuni #define SAL_MSG_USEREVENT (WM_USER+111)
222*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == MousePosition relativ to upper left of screen
223*fc9fd3f1SPedro Giffuni #define SAL_MSG_MOUSELEAVE (WM_USER+112)
224*fc9fd3f1SPedro Giffuni // MP1 == hDC; MP2 == 0
225*fc9fd3f1SPedro Giffuni #define SAL_MSG_PRINTABORTJOB (WM_USER+113)
226*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == 0
227*fc9fd3f1SPedro Giffuni #define SAL_MSG_STARTTIMER (WM_USER+114)
228*fc9fd3f1SPedro Giffuni // MP1 == nFrameStyle; MP2 == pParent; lResult pFrame
229*fc9fd3f1SPedro Giffuni #define SAL_MSG_CREATEFRAME (WM_USER+115)
230*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == pParent; lResult pObject
231*fc9fd3f1SPedro Giffuni #define SAL_MSG_CREATEOBJECT (WM_USER+116)
232*fc9fd3f1SPedro Giffuni // MP1 == bWait; MP2 == pMutex
233*fc9fd3f1SPedro Giffuni #define SAL_MSG_THREADYIELD (WM_USER+117)
234*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == 0
235*fc9fd3f1SPedro Giffuni #define SAL_MSG_RELEASEWAITYIELD (WM_USER+118)
236*fc9fd3f1SPedro Giffuni // MP1 == 0; MP2 == pData
237*fc9fd3f1SPedro Giffuni #define SAL_MSG_SYSPROCESSMENU (WM_USER+119)
238*fc9fd3f1SPedro Giffuni // POSTFOCUS-Message; MP1 == nMP1; MP2 == nMP2 (SHORT1( bFocus ), 0)
239*fc9fd3f1SPedro Giffuni #define SAL_MSG_POSTFOCUS (WM_USER+120)
240*fc9fd3f1SPedro Giffuni // POSTSIZE-Message; MP1 == nMP1; MP2 == nMP2
241*fc9fd3f1SPedro Giffuni #define SAL_MSG_POSTSIZE (WM_USER+121)
242*fc9fd3f1SPedro Giffuni
243*fc9fd3f1SPedro Giffuni // wParam == wParam; lParam == lParam
244*fc9fd3f1SPedro Giffuni #define SAL_MSG_POSTMOVE (WM_USER+136)
245*fc9fd3f1SPedro Giffuni // wParam == pRECT; lParam == 0
246*fc9fd3f1SPedro Giffuni #define SAL_MSG_POSTPAINT (WM_USER+137)
247*fc9fd3f1SPedro Giffuni // wParam == nFlags; lParam == 0
248*fc9fd3f1SPedro Giffuni #define SAL_MSG_TOTOP (WM_USER+142)
249*fc9fd3f1SPedro Giffuni // wParam == bVisible; lParam == 0
250*fc9fd3f1SPedro Giffuni #define SAL_MSG_SHOW (WM_USER+143)
251*fc9fd3f1SPedro Giffuni
252*fc9fd3f1SPedro Giffuni // SysChild-ToTop; nMP1 = 0; nMP2 = 0
253*fc9fd3f1SPedro Giffuni #define SALOBJ_MSG_TOTOP (WM_USER+150)
254*fc9fd3f1SPedro Giffuni // POSTFOCUS-Message; MP1 == nMP1; MP2 == nMP2 (SHORT1( bFocus ), 0)
255*fc9fd3f1SPedro Giffuni #define SALOBJ_MSG_POSTFOCUS (WM_USER+151)
256*fc9fd3f1SPedro Giffuni
257*fc9fd3f1SPedro Giffuni // wParam == 0; lParam == 0
258*fc9fd3f1SPedro Giffuni #define SAL_MSG_DESTROYFRAME (WM_USER+160)
259*fc9fd3f1SPedro Giffuni // wParam == 0; lParam == pObject;
260*fc9fd3f1SPedro Giffuni #define SAL_MSG_DESTROYOBJECT (WM_USER+161)
261*fc9fd3f1SPedro Giffuni // wParam == 0; lParam == this; lResult == bRet
262*fc9fd3f1SPedro Giffuni #define SAL_MSG_CREATESOUND (WM_USER+162)
263*fc9fd3f1SPedro Giffuni // wParam == 0; lParam == this
264*fc9fd3f1SPedro Giffuni #define SAL_MSG_DESTROYSOUND (WM_USER+163)
265*fc9fd3f1SPedro Giffuni // wParam == hWnd; lParam == 0; lResult == hDC
266*fc9fd3f1SPedro Giffuni #define SAL_MSG_GETDC (WM_USER+164)
267*fc9fd3f1SPedro Giffuni // wParam == hWnd; lParam == 0
268*fc9fd3f1SPedro Giffuni #define SAL_MSG_RELEASEDC (WM_USER+165)
269*fc9fd3f1SPedro Giffuni // wParam == newParentHwnd; lParam == oldHwnd; lResult == newhWnd
270*fc9fd3f1SPedro Giffuni #define SAL_MSG_RECREATEHWND (WM_USER+166)
271*fc9fd3f1SPedro Giffuni // wParam == newParentHwnd; lParam == oldHwnd; lResult == newhWnd
272*fc9fd3f1SPedro Giffuni #define SAL_MSG_RECREATECHILDHWND (WM_USER+167)
273*fc9fd3f1SPedro Giffuni // wParam == 0; lParam == HWND;
274*fc9fd3f1SPedro Giffuni #define SAL_MSG_DESTROYHWND (WM_USER+168)
275*fc9fd3f1SPedro Giffuni // POSTTIMER-Message; wparam = 0, lParam == time
276*fc9fd3f1SPedro Giffuni #define SAL_MSG_POSTTIMER (WM_USER+169)
277*fc9fd3f1SPedro Giffuni
278*fc9fd3f1SPedro Giffuni // -----------------
279*fc9fd3f1SPedro Giffuni // - Helpfunctions -
280*fc9fd3f1SPedro Giffuni // -----------------
281*fc9fd3f1SPedro Giffuni
SetWindowPtr(HWND hWnd,SalFrame * pThis)282*fc9fd3f1SPedro Giffuni inline void SetWindowPtr( HWND hWnd, SalFrame* pThis )
283*fc9fd3f1SPedro Giffuni {
284*fc9fd3f1SPedro Giffuni WinSetWindowULong( hWnd, SAL_FRAME_THIS, (ULONG)pThis );
285*fc9fd3f1SPedro Giffuni }
286*fc9fd3f1SPedro Giffuni
GetWindowPtr(HWND hWnd)287*fc9fd3f1SPedro Giffuni inline Os2SalFrame* GetWindowPtr( HWND hWnd )
288*fc9fd3f1SPedro Giffuni {
289*fc9fd3f1SPedro Giffuni return (Os2SalFrame*)WinQueryWindowULong( hWnd, SAL_FRAME_THIS );
290*fc9fd3f1SPedro Giffuni }
291*fc9fd3f1SPedro Giffuni
SetSalObjWindowPtr(HWND hWnd,SalObject * pThis)292*fc9fd3f1SPedro Giffuni inline void SetSalObjWindowPtr( HWND hWnd, SalObject* pThis )
293*fc9fd3f1SPedro Giffuni {
294*fc9fd3f1SPedro Giffuni WinSetWindowULong( hWnd, SAL_OBJECT_THIS, (ULONG)pThis );
295*fc9fd3f1SPedro Giffuni }
296*fc9fd3f1SPedro Giffuni
GetSalObjWindowPtr(HWND hWnd)297*fc9fd3f1SPedro Giffuni inline Os2SalObject* GetSalObjWindowPtr( HWND hWnd )
298*fc9fd3f1SPedro Giffuni {
299*fc9fd3f1SPedro Giffuni return (Os2SalObject*)WinQueryWindowULong( hWnd, SAL_OBJECT_THIS );
300*fc9fd3f1SPedro Giffuni }
301*fc9fd3f1SPedro Giffuni
302*fc9fd3f1SPedro Giffuni #endif // _SV_SALDATA_HXX
303