Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

clglobal.c

Go to the documentation of this file.
00001 /****************************** Module Header ******************************\ 00002 * Module Name: clglobal.c 00003 * 00004 * Copyright (c) 1985 - 1999, Microsoft Corporation 00005 * 00006 * This module contains all of USER.DLL's global variables. These are all 00007 * instance-specific, i.e. each client has his own copy of these. In general, 00008 * there shouldn't be much reason to create instance globals. 00009 * 00010 * NOTE: In this case what we mean by global is that this data is shared by 00011 * all threads of a given process, but not shared between processes 00012 * or between the client and the server. None of this data is useful 00013 * (or even accessable) to the server. 00014 * 00015 * History: 00016 * 10-18-90 DarrinM Created. 00017 \***************************************************************************/ 00018 00019 #include "precomp.h" 00020 #pragma hdrstop 00021 00022 00023 // Debug globals 00024 #if DBG 00025 INT gbCheckHandleLevel; 00026 #endif 00027 00028 /* 00029 * We get this warning if we don't explicitly initalize gZero: 00030 * 00031 * C4132: 'gZero' : const object should be initialized 00032 * 00033 * But we can't explicitly initialize it since it is a union. So 00034 * we turn the warning off. 00035 */ 00036 #pragma warning(disable:4132) 00037 CONST ALWAYSZERO gZero; 00038 #pragma warning(default:4132) 00039 00040 /* 00041 * Amount wheel has been scrolled in a control less than WHEEL_DELTA. Each 00042 * control resets this variable to 0 in WM_KILLFOCUS, and verifies it is 00043 * 0 in WM_SETFOCUS. 00044 * CONSIDER: Should be per-queue rather than per client? 00045 */ 00046 int gcWheelDelta; 00047 00048 WCHAR awchSlashStar[] = L"\\*"; 00049 CHAR achSlashStar[] = "\\*"; 00050 00051 PSERVERINFO gpsi; 00052 SHAREDINFO gSharedInfo; 00053 HMODULE hmodUser; // USER.DLL's hmodule 00054 ULONG_PTR gHighestUserAddress; 00055 00056 BOOL gfServerProcess; // USER is linked on the CSR server side 00057 BOOL gfSystemInitialized; // System has been initialized 00058 00059 ACCESS_MASK gamWinSta; // ACCESS_MASK for the current WindowStation 00060 00061 PVOID pUserHeap; 00062 00063 WCHAR szUSER32[] = TEXT("USER32"); 00064 CONST WCHAR szNull[2] = { TEXT('\0'), TEXT('\015') }; 00065 CONST WCHAR szOneChar[] = TEXT("0"); 00066 WCHAR szSLASHSTARDOTSTAR[] = TEXT("\\*"); /* This is a single "\" */ 00067 00068 LPWSTR pwcHighContrastScheme; 00069 LPSTR pcHighContrastScheme; 00070 00071 /* Maps MessageBox type to number of buttons in the MessageBox */ 00072 CONST BYTE mpTypeCcmd[] = { 1, 2, 3, 3, 2, 2, 3 }; 00073 00074 /* Maps MessageBox type to index into SEBbuttons array */ 00075 CONST BYTE mpTypeIich[] = { 0, 2, 5, 12, 9, 16, 19 }; 00076 00077 CONST UINT SEBbuttons[] = { 00078 SEB_OK, SEB_HELP, 00079 SEB_OK, SEB_CANCEL, SEB_HELP, 00080 SEB_ABORT, SEB_RETRY, SEB_IGNORE, SEB_HELP, 00081 SEB_YES, SEB_NO, SEB_HELP, 00082 SEB_YES, SEB_NO, SEB_CANCEL, SEB_HELP, 00083 SEB_RETRY, SEB_CANCEL, SEB_HELP, 00084 SEB_CANCEL, SEB_TRYAGAIN, SEB_CONTINUE, SEB_HELP, 00085 }; 00086 00087 ATOM atomMDIActivateProp; 00088 00089 CRITICAL_SECTION gcsLookaside; 00090 CRITICAL_SECTION gcsHdc; 00091 CRITICAL_SECTION gcsClipboard; 00092 CRITICAL_SECTION gcsAccelCache; 00093 00094 #ifdef _JANUS_ 00095 BOOL gfEMIEnable; 00096 DWORD gdwEMIControl = 0; 00097 BOOL gfDMREnable = FALSE; 00098 HINSTANCE ghAdvApi; 00099 #endif 00100 00101 HDC ghdcBits2; 00102 HDC ghdcGray; 00103 HFONT ghFontSys; 00104 HBRUSH ghbrWindowText; 00105 int gcxGray; 00106 int gcyGray; 00107 00108 FPLPKTABBEDTEXTOUT fpLpkTabbedTextOut = UserLpkTabbedTextOut; 00109 FPLPKPSMTEXTOUT fpLpkPSMTextOut = UserLpkPSMTextOut; 00110 FPLPKDRAWTEXTEX fpLpkDrawTextEx = (FPLPKDRAWTEXTEX)NULL; 00111 PLPKEDITCALLOUT fpLpkEditControl = (PLPKEDITCALLOUT)NULL; 00112 00113 /* 00114 * These are the resource call procedure addresses. If WOW is running, 00115 * it makes a call to set all these up to point to it. If it isn't 00116 * running, it defaults to the values you see below. 00117 */ 00118 PFNFINDA pfnFindResourceExA; // Assigned dynamically - _declspec (PFNFINDA)FindResourceExA, 00119 PFNFINDW pfnFindResourceExW; // Assigned dynamically - _declspec (PFNFINDW)FindResourceExW, 00120 PFNLOAD pfnLoadResource; // Assigned dynamically - _declspec (PFNLOAD)LoadResource, 00121 PFNLOCK pfnLockResource = (PFNLOCK)_LockResource; 00122 PFNUNLOCK pfnUnlockResource = (PFNUNLOCK)_UnlockResource; 00123 PFNFREE pfnFreeResource = (PFNFREE)_FreeResource; 00124 PFNSIZEOF pfnSizeofResource; // Assigned dynamically - _declspec (PFNSIZEOF)SizeofResource 00125 PFNLALLOC pfnLocalAlloc = (PFNLALLOC)DispatchLocalAlloc; 00126 PFNLREALLOC pfnLocalReAlloc = (PFNLREALLOC)DispatchLocalReAlloc; 00127 PFNLLOCK pfnLocalLock = (PFNLLOCK)DispatchLocalLock; 00128 PFNLUNLOCK pfnLocalUnlock = (PFNUNLOCK)DispatchLocalUnlock; 00129 PFNLSIZE pfnLocalSize = (PFNLSIZE)DispatchLocalSize; 00130 PFNLFREE pfnLocalFree = (PFNLFREE)DispatchLocalFree; 00131 PFNGETEXPWINVER pfnGetExpWinVer = RtlGetExpWinVer; 00132 PFN16GALLOC pfn16GlobalAlloc; 00133 PFN16GFREE pfn16GlobalFree; 00134 PFNEMPTYCB pfnWowEmptyClipBoard; 00135 PFNWOWWNDPROCEX pfnWowWndProcEx; 00136 PFNWOWDLGPROCEX pfnWowDlgProcEx; 00137 PFNWOWEDITNEXTWORD pfnWowEditNextWord; 00138 PFNWOWCBSTOREHANDLE pfnWowCBStoreHandle; 00139 PFNGETPROCMODULE16 pfnWowGetProcModule; 00140 PFNWOWTELLWOWTHEHDLG pfnWOWTellWOWThehDlg; 00141 PFNWOWMSGBOXINDIRECTCALLBACK pfnWowMsgBoxIndirectCallback; 00142 PFNWOWILSTRCMP pfnWowIlstrcmp; 00143 00144 #ifdef WX86 00145 00146 /* 00147 * Client Global variables for Wx86. 00148 * 00149 */ 00150 int Wx86LoadCount; 00151 HMODULE hWx86Dll; 00152 PFNWX86LOADX86DLL pfnWx86LoadX86Dll; 00153 PFNWX86FREEX86DLL pfnWx86FreeX86Dll; 00154 PFNWX86HOOKCALLBACK pfnWx86HookCallBack; 00155 RTL_CRITICAL_SECTION gcsWx86Load; 00156 #endif 00157 00158 /* 00159 * Menu Drag and Drop 00160 */ 00161 HINSTANCE ghinstOLE; 00162 FARPROC gpfnOLEOleUninitialize; 00163 FARPROC gpfnOLERegisterDD; 00164 FARPROC gpfnOLERevokeDD; 00165 FARPROC gpfnOLEDoDD; 00166 00167 /* 00168 * Accelerator table resources list. 00169 */ 00170 PACCELCACHE gpac; 00171 00172 /* 00173 * IME Window Handling. 00174 */ 00175 DWORD gfConIme = UNKNOWN_CONIME; 00176 00177 /* 00178 * Used for TS Services Message Box handling 00179 */ 00180 FARPROC gfnWinStationSendMessageW; 00181 HINSTANCE ghinstWinStaDll; 00182 00183 

Generated on Sat May 15 19:39:24 2004 for test by doxygen 1.3.7