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