xref: /AOO41X/main/vcl/inc/os2/saldata.hxx (revision fc9fd3f14a55d77b35643a64034752a178b2a5b0)
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