From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- public/sdk/inc/mfc42/afxstat_.h | 363 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 363 insertions(+) create mode 100644 public/sdk/inc/mfc42/afxstat_.h (limited to 'public/sdk/inc/mfc42/afxstat_.h') diff --git a/public/sdk/inc/mfc42/afxstat_.h b/public/sdk/inc/mfc42/afxstat_.h new file mode 100644 index 000000000..1b0dc5ab0 --- /dev/null +++ b/public/sdk/inc/mfc42/afxstat_.h @@ -0,0 +1,363 @@ +// This is a part of the Microsoft Foundation Classes C++ library. +// Copyright (C) 1992-1995 Microsoft Corporation +// All rights reserved. +// +// This source code is only intended as a supplement to the +// Microsoft Foundation Classes Reference and related +// electronic documentation provided with the library. +// See these sources for detailed information regarding the +// Microsoft Foundation Classes product. + +#ifndef __AFXSTATE_H__ +#define __AFXSTATE_H__ + +#ifdef _AFX_PACKING +#pragma pack(push, _AFX_PACKING) +#endif + +#ifndef __AFXTLS_H__ + #include +#endif + +#undef AFX_DATA +#define AFX_DATA AFX_CORE_DATA + +///////////////////////////////////////////////////////////////////////////// +// _AFX_DEBUG_STATE + +#ifdef _DEBUG + +class _AFX_DEBUG_STATE : public CNoTrackObject +{ +public: + _AFX_DEBUG_STATE(); + virtual ~_AFX_DEBUG_STATE(); +}; + +EXTERN_PROCESS_LOCAL(_AFX_DEBUG_STATE, afxDebugState) + +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// _AFX_WIN_STATE + +#undef AFX_DATA +#define AFX_DATA + +class _AFX_WIN_STATE : public CNoTrackObject +{ +public: + _AFX_WIN_STATE(); + virtual ~_AFX_WIN_STATE(); + + // gray dialog support + HBRUSH m_hDlgBkBrush; // dialog and message box background brush + COLORREF m_crDlgTextClr; +#ifdef _MAC + COLORREF m_crDlgBkClr; +#endif + + // printing abort + BOOL m_bUserAbort; +}; + +EXTERN_PROCESS_LOCAL(_AFX_WIN_STATE, _afxWinState) + +///////////////////////////////////////////////////////////////////////////// +// Type library cache - AFX_INTERNAL + +#ifndef _AFX_NO_OLE_SUPPORT + +struct ITypeInfo; +typedef ITypeInfo* LPTYPEINFO; + +struct ITypeLib; +typedef ITypeLib* LPTYPELIB; + +typedef struct _GUID GUID; +#ifndef _REFCLSID_DEFINED +#define REFGUID const GUID & +#endif + +class CTypeLibCache +{ +public: + CTypeLibCache() : m_cRef(0), m_lcid((LCID)-1), m_ptlib(NULL), m_ptinfo(NULL) {} + void Lock(); + void Unlock(); + BOOL Lookup(LCID lcid, LPTYPELIB* pptlib); + void Cache(LCID lcid, LPTYPELIB ptlib); + BOOL LookupTypeInfo(LCID lcid, REFGUID guid, LPTYPEINFO* pptinfo); + void CacheTypeInfo(LCID lcid, REFGUID guid, LPTYPEINFO ptinfo); + const GUID* m_pTypeLibID; + +protected: + LCID m_lcid; + LPTYPELIB m_ptlib; + GUID m_guidInfo; + LPTYPEINFO m_ptinfo; + long m_cRef; +}; + +#endif //!_AFX_NO_OLE_SUPPORT + +///////////////////////////////////////////////////////////////////////////// +// AFX_MODULE_STATE : portion of state that is pushed/popped + +// forward references required for AFX_MODULE_THREAD_STATE definition +class CWinThread; +class CHandleMap; +class CFrameWnd; + +#ifndef _PNH_DEFINED +typedef int (__cdecl * _PNH)( size_t ); +#define _PNH_DEFINED +#endif + +// AFX_MODULE_THREAD_STATE (local to thread *and* module) +class AFX_MODULE_THREAD_STATE : public CNoTrackObject +{ +public: + AFX_MODULE_THREAD_STATE(); + virtual ~AFX_MODULE_THREAD_STATE(); + + // current CWinThread pointer + CWinThread* m_pCurrentWinThread; + + // list of CFrameWnd objects for thread + CTypedSimpleList m_frameList; + + // temporary/permanent map state + DWORD m_nTempMapLock; // if not 0, temp maps locked + CHandleMap* m_pmapHWND; + CHandleMap* m_pmapHMENU; + CHandleMap* m_pmapHDC; + CHandleMap* m_pmapHGDIOBJ; + CHandleMap* m_pmapHIMAGELIST; + + // thread-local MFC new handler (separate from C-runtime) + _PNH m_pfnNewHandler; + +#ifndef _AFX_NO_SOCKET_SUPPORT + // WinSock specific thread state + HWND m_hSocketWindow; + CMapPtrToPtr m_mapSocketHandle; + CMapPtrToPtr m_mapDeadSockets; + CPtrList m_listSocketNotifications; +#endif +}; + +// forward references required for AFX_MODULE_STATE definition +class CWinApp; +class COleObjectFactory; + +class CWnd; + +#ifdef _AFXDLL +class CDynLinkLibrary; +#endif + +#ifndef _AFX_NO_OCC_SUPPORT +class COccManager; +class COleControlLock; +#endif + +#ifndef _AFX_NO_DAO_SUPPORT +class _AFX_DAO_STATE; +#endif + +// AFX_MODULE_STATE (global data for a module) +class AFX_MODULE_STATE : public CNoTrackObject +{ +public: +#ifdef _AFXDLL + AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion); + AFX_MODULE_STATE(BOOL bDLL, WNDPROC pfnAfxWndProc, DWORD dwVersion, + BOOL bSystem); +#else + AFX_MODULE_STATE(BOOL bDLL); +#endif + ~AFX_MODULE_STATE(); + + CWinApp* m_pCurrentWinApp; + HINSTANCE m_hCurrentInstanceHandle; + HINSTANCE m_hCurrentResourceHandle; + LPCTSTR m_lpszCurrentAppName; + BYTE m_bDLL; // TRUE if module is a DLL, FALSE if it is an EXE + BYTE m_bSystem; // TRUE if module is a "system" module, FALSE if not + BYTE m_bReserved[2]; // padding + + short m_fRegisteredClasses; // flags for registered window classes + + // runtime class data +#ifdef _AFXDLL + CRuntimeClass* m_pClassInit; +#endif + CTypedSimpleList m_classList; + + // OLE object factories +#ifndef _AFX_NO_OLE_SUPPORT +#ifdef _AFXDLL + COleObjectFactory* m_pFactoryInit; +#endif + CTypedSimpleList m_factoryList; +#endif + // number of locked OLE objects + long m_nObjectCount; + BOOL m_bUserCtrl; + + // AfxRegisterClass and AfxRegisterWndClass data + TCHAR m_szUnregisterList[4096]; +#ifdef _AFXDLL + WNDPROC m_pfnAfxWndProc; + DWORD m_dwVersion; // version that module linked against +#endif + + // variables related to a given process in a module + // (used to be AFX_MODULE_PROCESS_STATE) +#ifdef _AFX_OLD_EXCEPTIONS + // exceptions + AFX_TERM_PROC m_pfnTerminate; +#endif + void (PASCAL *m_pfnFilterToolTipMessage)(MSG*, CWnd*); + +#ifdef _AFXDLL + // CDynLinkLibrary objects (for resource chain) + CTypedSimpleList m_libraryList; + + // special case for MFCxxLOC.DLL (localized MFC resources) + HINSTANCE m_appLangDLL; +#endif + +#ifndef _AFX_NO_OCC_SUPPORT + // OLE control container manager + COccManager* m_pOccManager; + // locked OLE controls + CTypedSimpleList m_lockList; +#endif + +#ifndef _AFX_NO_DAO_SUPPORT + _AFX_DAO_STATE* m_pDaoState; +#endif + +#ifndef _AFX_NO_OLE_SUPPORT + // Type library caches + CTypeLibCache m_typeLibCache; + CMapPtrToPtr* m_pTypeLibCacheMap; +#endif + + // define thread local portions of module state + THREAD_LOCAL(AFX_MODULE_THREAD_STATE, m_thread) +}; + +AFX_MODULE_STATE* AFXAPI AfxGetAppModuleState(); +#ifdef _AFXDLL +AFX_MODULE_STATE* AFXAPI AfxSetModuleState(AFX_MODULE_STATE* pNewState); +#endif +AFX_MODULE_STATE* AFXAPI AfxGetModuleState(); +AFX_MODULE_STATE* AFXAPI AfxGetStaticModuleState(); + +AFX_MODULE_THREAD_STATE* AFXAPI AfxGetModuleThreadState(); + +#ifdef _AFXDLL +#define _AFX_CMDTARGET_GETSTATE() (m_pModuleState) +#else +#define _AFX_CMDTARGET_GETSTATE() (AfxGetModuleState()) +#endif + +///////////////////////////////////////////////////////////////////////////// +// macros & classes to manage pushing/popping the module state + +#ifdef _AFXDLL +struct AFX_MAINTAIN_STATE +{ + AFX_MAINTAIN_STATE(AFX_MODULE_STATE* pModuleState); + ~AFX_MAINTAIN_STATE(); + +protected: + AFX_MODULE_STATE* m_pPrevModuleState; +}; +#define AFX_MANAGE_STATE(p) AFX_MAINTAIN_STATE _ctlState(p); +#else // _AFXDLL +#define AFX_MANAGE_STATE(p) +#endif //!_AFXDLL + +///////////////////////////////////////////////////////////////////////////// +// Thread global state + +// forward references required for _AFX_THREAD_STATE definition +class CView; +class CToolTipCtrl; +class CControlBar; + +class _AFX_THREAD_STATE : public CNoTrackObject +{ +public: + _AFX_THREAD_STATE(); + virtual ~_AFX_THREAD_STATE(); + + // override for m_pModuleState in _AFX_APP_STATE + AFX_MODULE_STATE* m_pModuleState; + AFX_MODULE_STATE* m_pPrevModuleState; + + // memory safety pool for temp maps + void* m_pSafetyPoolBuffer; // current buffer + + // thread local exception context + AFX_EXCEPTION_CONTEXT m_exceptionContext; + + // CWnd create, gray dialog hook, and other hook data + CWnd* m_pWndInit; + CWnd* m_pAlternateWndInit; // special case commdlg hooking + DWORD m_dwPropStyle; + DWORD m_dwPropExStyle; + HWND m_hWndInit; + BOOL m_bDlgCreate; + HHOOK m_hHookOldCbtFilter; + HHOOK m_hHookOldMsgFilter; + + // other CWnd modal data + MSG m_lastSentMsg; // see CWnd::WindowProc + HWND m_hTrackingWindow; // see CWnd::TrackPopupMenu + HMENU m_hTrackingMenu; + TCHAR m_szTempClassName[96]; // see AfxRegisterWndClass + HWND m_hLockoutNotifyWindow; // see CWnd::OnCommand + BOOL m_bInMsgFilter; + + // other framework modal data + CView* m_pRoutingView; // see CCmdTarget::GetRoutingView + CFrameWnd* m_pRoutingFrame; // see CCmdTarget::GetRoutingFrame + + // MFC/DB thread-local data + BOOL m_bWaitForDataSource; + + // common controls thread state + CToolTipCtrl* m_pToolTip; + CWnd* m_pLastHit; // last window to own tooltip + int m_nLastHit; // last hittest code + TOOLINFO m_lastInfo; // last TOOLINFO structure + int m_nLastStatus; // last flyby status message + CControlBar* m_pLastStatus; // last flyby status control bar + + // OLE control thread-local data + CWnd* m_pWndPark; // "parking space" window + long m_nCtrlRef; // reference count on parking window + BOOL m_bNeedTerm; // TRUE if OleUninitialize needs to be called +}; + +EXTERN_THREAD_LOCAL(_AFX_THREAD_STATE, _afxThreadState) + +_AFX_THREAD_STATE* AFXAPI AfxGetThreadState(); + +///////////////////////////////////////////////////////////////////////////// + +#ifdef _AFX_PACKING +#pragma pack(pop) +#endif + +#undef AFX_DATA +#define AFX_DATA + +#endif //__AFXSTATE_H__ + +///////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3