22#include <config_features.h>
26#include <osl/module.h>
31#include <systools/win32/comtools.hxx>
54#define MAX_STOCKBRUSH 4
55#define SAL_CLIPRECT_COUNT 16
57#define CACHESIZE_HDC 3
60#define CACHED_HDC_DRAW 2
61#define CACHED_HDC_DEFEXT 64
80class SalData :
public sal::systools::CoInitializeGuard
145 std::unique_ptr<SkiaControlsCache> m_pSkiaControlsCache;
193#define SAL_FRAME_WNDEXTRA sizeof( DWORD )
194#define SAL_FRAME_THIS GWLP_USERDATA
195#define SAL_FRAME_CLASSNAMEW L"SALFRAME"
196#define SAL_SUBFRAME_CLASSNAMEW L"SALSUBFRAME"
197#define SAL_TMPSUBFRAME_CLASSNAMEW L"SALTMPSUBFRAME"
198#define SAL_OBJECT_WNDEXTRA sizeof( DWORD )
199#define SAL_OBJECT_THIS GWLP_USERDATA
200#define SAL_OBJECT_CLASSNAMEW L"SALOBJECT"
201#define SAL_OBJECT_CHILDCLASSNAMEW L"SALOBJECTCHILD"
202#define SAL_COM_CLASSNAMEW L"SALCOMWND"
205#define SAL_MSG_THREADYIELD (WM_USER+111)
207#define SAL_MSG_STARTTIMER (WM_USER+113)
209#define SAL_MSG_CREATEFRAME (WM_USER+114)
211#define SAL_MSG_DESTROYFRAME (WM_USER+115)
213#define SAL_MSG_CREATEOBJECT (WM_USER+116)
215#define SAL_MSG_DESTROYOBJECT (WM_USER+117)
217#define SAL_MSG_GETCACHEDDC (WM_USER+120)
219#define SAL_MSG_RELEASEDC (WM_USER+121)
221#define SAL_MSG_RECREATEHWND (WM_USER+122)
223#define SAL_MSG_RECREATECHILDHWND (WM_USER+123)
225#define SAL_MSG_DESTROYHWND (WM_USER+124)
228#define SAL_MSG_USEREVENT (WM_USER+130)
230#define SAL_MSG_MOUSELEAVE (WM_USER+131)
232#define SAL_MSG_DUMMY (WM_USER+132)
235#define SAL_MSG_POSTFOCUS (WM_USER+133)
237#define SAL_MSG_POSTQUERYNEWPAL (WM_USER+134)
239#define SAL_MSG_POSTPALCHANGED (WM_USER+135)
241#define SAL_MSG_POSTMOVE (WM_USER+136)
243#define SAL_MSG_POSTCALLSIZE (WM_USER+137)
245#define SAL_MSG_POSTPAINT (WM_USER+138)
247#define SAL_MSG_FORCEPALETTE (WM_USER+139)
249#define SAL_MSG_CAPTUREMOUSE (WM_USER+140)
251#define SAL_MSG_RELEASEMOUSE (WM_USER+141)
253#define SAL_MSG_TOTOP (WM_USER+142)
255#define SAL_MSG_SHOW (WM_USER+143)
257#define SAL_MSG_SETINPUTCONTEXT (WM_USER+144)
259#define SAL_MSG_ENDEXTTEXTINPUT (WM_USER+145)
262#define SALOBJ_MSG_TOTOP (WM_USER+160)
265#define SALOBJ_MSG_POSTFOCUS (WM_USER+161)
269#define SAL_MSG_TIMER_CALLBACK (WM_USER+162)
271#define SAL_MSG_STOPTIMER (WM_USER+163)
273#define SAL_MSG_FORCE_REAL_TIMER (WM_USER+164)
277 SetWindowLongPtrW( hWnd,
SAL_FRAME_THIS,
reinterpret_cast<LONG_PTR
>(pThis) );
287 SetWindowLongPtrW( hWnd,
SAL_OBJECT_THIS,
reinterpret_cast<LONG_PTR
>(pThis) );
An auto-timer is a multi-shot timer re-emitting itself at interval until destroyed or stopped.
std::unique_ptr< TextOutRenderer > m_pD2DWriteTextOutRenderer
sal_uInt16 mnStockBrushCount
WinSalPrinter * mpFirstPrinter
std::array< HDCCache, CACHESIZE_HDC > maHDCCache
std::map< UINT, sal_uInt16 > maVKMap
HPEN mhStockPenAry[MAX_STOCKPEN]
bool mbResourcesAlreadyFreed
std::unique_ptr< BYTE[]> mpDitherHigh
std::unique_ptr< BYTE[]> mpDitherLow
COLORREF maStockBrushColorAry[MAX_STOCKBRUSH]
WinSalInstance * mpInstance
bool IsKnownMenuHandle(HMENU hMenu)
HBRUSH mhStockBrushAry[MAX_STOCKBRUSH]
std::unique_ptr< TextOutRenderer > m_pExTextOutRenderer
WinSalVirtualDevice * mpFirstVD
sal_uInt16 mnStockPenCount
std::set< HMENU > mhMenuSet
WinSalFrame * mpFirstFrame
WPARAM mnSalObjWantKeyEvt
TempFontItem * mpSharedTempFontItem
TempFontItem * mpOtherTempFontItem
std::unique_ptr< tools::Long[]> mpDitherDiff
COLORREF maStockPenColorAry[MAX_STOCKPEN]
WinSalObject * mpFirstObject
bool ImplHandleSalObjSysCharMsg(HWND hWnd, WPARAM wParam, LPARAM lParam)
void ImplSalYieldMutexAcquireWithWait(sal_uInt32 nCount=1)
bool ImplLoadSalIcon(int nId, HICON &rIcon, HICON &rSmallIcon)
void ImplSalYieldMutexRelease()
HBITMAP ImplLoadSalBitmap(int nId)
WinSalObject * ImplFindSalObject(HWND hWndChild)
HDC ImplGetCachedDC(sal_uLong nID, HBITMAP hBmp=nullptr)
WinSalObject * GetSalObjWindowPtr(HWND hWnd)
void ImplReleaseTempFonts(SalData &, bool bAll)
WinSalFrame * GetWindowPtr(HWND hWnd)
bool ImplHandleSalObjKeyMsg(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
void SetWindowPtr(HWND hWnd, WinSalFrame *pThis)
bool ImplHandleGlobalMsg(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam, LRESULT &rlResult)
bool ImplSalPreDispatchMsg(const MSG *pMsg)
int ImplSalWICompareAscii(const wchar_t *pStr1, const char *pStr2)
bool ImplSalYieldMutexTryToAcquire()
HCURSOR ImplLoadSalCursor(int nId)
OUString ImplSalGetUniString(const char *pStr, sal_Int32 nLen=-1)
void ImplReleaseCachedDC(sal_uLong nID)
void ImplClearHDCCache(SalData *pData)
rtl_TextEncoding ImplSalGetSystemEncoding()
void ImplSalLogFontToFontW(HDC hDC, const LOGFONTW &rLogFont, vcl::Font &rFont)
void SetSalObjWindowPtr(HWND hWnd, WinSalObject *pThis)
void ImplSalPostDispatchMsg(const MSG *pMsg)
LRESULT CALLBACK SalFrameWndProcW(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)