test: globals.h Source File

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

# globals.h

Go to the documentation of this file.

    00001 /****************************** Module Header ******************************\
    00002 * Module Name: globals.h
    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 * History:
    00011 * 10-18-90 DarrinM      Created.
    00012 \***************************************************************************/
    00013
    00014 #ifndef _GLOBALS_
    00015 #define _GLOBALS_
    00016
    00017 // Debug globals
    00018 #if DBG
    00019 extern INT gbCheckHandleLevel;
    00020 #endif
    00021
    00022 extern CONST ALWAYSZERO gZero;
    00023
    00024 extern int gcWheelDelta;
    00025
    00026 extern WORD gDispatchTableValues;
    00027
    00028 extern WCHAR awchSlashStar[];
    00029 extern CHAR achSlashStar[];
    00030
    00031 extern PSERVERINFO gpsi;
    00032 extern SHAREDINFO gSharedInfo;
    00033
    00034 extern HMODULE hmodUser;            // USER.DLL's hmodule
    00035 extern ULONG_PTR gHighestUserAddress;
    00036
    00037 extern BOOL gfServerProcess;        // USER is linked on the CSR server side.
    00038 extern BOOL gfSystemInitialized;    // System has been initialized
    00039 extern ACCESS_MASK gamWinSta;       // ACCESS_MASK for the current WindowStation
    00040
    00041 extern PVOID pUserHeap;
    00042
    00043 extern CONST CFNSCSENDMESSAGE gapfnScSendMessage[];
    00044
    00045 extern WCHAR szUSER32[];
    00046 extern CONST WCHAR szNull[];
    00047 extern CONST WCHAR szOneChar[];
    00048 extern WCHAR szSLASHSTARDOTSTAR[];
    00049
    00050 extern CONST BYTE mpTypeCcmd[];
    00051 extern CONST BYTE mpTypeIich[];
    00052 extern CONST UINT SEBbuttons[];
    00053 extern CONST BYTE rgReturn[];
    00054
    00055 extern ATOM atomMDIActivateProp;
    00056 extern ATOM gatomReaderMode;
    00057
    00058 extern CRITICAL_SECTION gcsLookaside;
    00059 extern CRITICAL_SECTION gcsHdc;
    00060 extern CRITICAL_SECTION gcsClipboard;
    00061 extern CRITICAL_SECTION gcsAccelCache;
    00062
    00063 #ifdef _JANUS_
    00064 extern BOOL gfEMIEnable;
    00065 extern DWORD gdwEMIControl;
    00066 extern BOOL gfDMREnable;
    00067 extern HINSTANCE ghAdvApi;
    00068 #endif
    00069
    00070
    00071 extern HDC    ghdcBits2;
    00072 extern HDC    ghdcGray;
    00073 extern HFONT  ghFontSys;
    00074 extern HBRUSH ghbrWindowText;
    00075 extern int    gcxGray;
    00076 extern int    gcyGray;
    00077
    00078 extern LPWSTR pwcHighContrastScheme;
    00079 extern LPSTR   pcHighContrastScheme;
    00080
    00081
    00082 /*
    00083  * LATER: client-side user needs to use moveable memory objects for
    00084  * WOW compatibility (at least until/if/when we copy all the edit control
    00085  * code into 16-bit space);  that's also why we can't just party with
    00086  * handles like LMHtoP does... -JeffPar
    00087  */
    00088 #ifndef RC_INVOKED       // RC can't handle #pragmas
    00089 #undef  LHND
    00090 #define LHND                (LMEM_MOVEABLE | LMEM_ZEROINIT)
    00091
    00092 #undef  LMHtoP
    00093 #define LMHtoP(handle)      // Don't use this macro
    00094 #endif
    00095
    00096
    00097 /*
    00098  * WOW HACK - apps can pass a global handle as the hInstance on a call
    00099  * to CreateWindow for an edit control and expect allocations for the
    00100  * control to come out of that global block. (MSJ 1/91 p.122)
    00101  * WOW needs this hInstance during the LocalAlloc callback to set up
    00102  * the DS for the LocalAlloc, so we pass hInstance as an 'extra' parameter.
    00103  * !!! this is dependent on calling convention !!!
    00104  * (SAS 6-18-92) added hack for all macros
    00105  */
    00106
    00107 #define LOCALALLOC(dwFlags, dwBytes, hInstance)         \
    00108                             (*pfnLocalAlloc)(dwFlags, dwBytes, hInstance)
    00109 #define LOCALREALLOC(hMem, dwBytes, dwFlags, hInstance, ppv) \
    00110                             (*pfnLocalReAlloc)(hMem, dwBytes, dwFlags, hInstance, ppv)
    00111 #define LOCALLOCK(hMem, hInstance)                      \
    00112                             (*pfnLocalLock)(hMem, hInstance)
    00113 #define LOCALUNLOCK(hMem, hInstance)                    \
    00114                             (*pfnLocalUnlock)(hMem, hInstance)
    00115 #define LOCALSIZE(hMem, hInstance)                      \
    00116                             (*pfnLocalSize)(hMem, hInstance)
    00117 #define LOCALFREE(hMem, hInstance)                      \
    00118                             (*pfnLocalFree)(hMem, hInstance)
    00119
    00120 extern PFNFINDA             pfnFindResourceExA;
    00121 extern PFNFINDW             pfnFindResourceExW;
    00122 extern PFNLOAD              pfnLoadResource;
    00123 extern PFNLOCK              pfnLockResource;
    00124 extern PFNUNLOCK            pfnUnlockResource;
    00125 extern PFNFREE              pfnFreeResource;
    00126 extern PFNSIZEOF            pfnSizeofResource;
    00127 extern PFNLALLOC            pfnLocalAlloc;
    00128 extern PFNLREALLOC          pfnLocalReAlloc;
    00129 extern PFNLLOCK             pfnLocalLock;
    00130 extern PFNLUNLOCK           pfnLocalUnlock;
    00131 extern PFNLSIZE             pfnLocalSize;
    00132 extern PFNLFREE             pfnLocalFree;
    00133 extern PFNGETEXPWINVER      pfnGetExpWinVer;
    00134 extern PFN16GALLOC          pfn16GlobalAlloc;
    00135 extern PFN16GFREE           pfn16GlobalFree;
    00136 extern PFNGETMODFNAME       pfnGetModFileName;
    00137 extern PFNEMPTYCB           pfnWowEmptyClipBoard;
    00138 extern PFNWOWWNDPROCEX      pfnWowWndProcEx;
    00139 extern PFNWOWDLGPROCEX      pfnWowDlgProcEx;
    00140 extern PFNWOWEDITNEXTWORD   pfnWowEditNextWord;
    00141 extern PFNWOWCBSTOREHANDLE  pfnWowCBStoreHandle;
    00142 extern PFNGETPROCMODULE16   pfnWowGetProcModule;
    00143 extern PFNWOWTELLWOWTHEHDLG pfnWOWTellWOWThehDlg;
    00144 extern PFNWOWMSGBOXINDIRECTCALLBACK pfnWowMsgBoxIndirectCallback;
    00145 extern PFNWOWILSTRCMP       pfnWowIlstrcmp;
    00146
    00147 extern UNICODE_STRING strRootDirectory;
    00148
    00149 #ifdef WX86
    00150 /*
    00151  *  Client Global variables for Wx86.
    00152  *
    00153  */
    00154
    00155 extern int Wx86LoadCount;
    00156 extern HMODULE hWx86Dll;
    00157 extern PFNWX86LOADX86DLL pfnWx86LoadX86Dll;
    00158 extern PFNWX86FREEX86DLL pfnWx86FreeX86Dll;
    00159 extern PFNWX86HOOKCALLBACK pfnWx86HookCallBack;
    00160 extern RTL_CRITICAL_SECTION gcsWx86Load;
    00161
    00162 #endif
    00163
    00164 /*
    00165  * Menu Drag and Drop
    00166  */
    00167 extern HINSTANCE ghinstOLE;
    00168 extern FARPROC gpfnOLEOleUninitialize;
    00169 extern FARPROC gpfnOLERegisterDD;
    00170 extern FARPROC gpfnOLERevokeDD;
    00171 extern FARPROC gpfnOLEDoDD;
    00172
    00173 /*
    00174  * Accelerator table resources list.
    00175  */
    00176 extern PACCELCACHE gpac;
    00177
    00178 /*
    00179  * IME Window Handling.
    00180  */
    00181 extern DWORD gfConIme;
    00182 #define UNKNOWN_CONIME ~0
    00183
    00184 extern UNICODE_STRING strRootDirectory;
    00185
    00186 /*
    00187  * Used for TS Services Message Box handling
    00188  */
    00189 extern FARPROC      gfnWinStationSendMessageW;
    00190 extern HINSTANCE    ghinstWinStaDll;
    00191
    00192 #endif // ndef _GLOBALS_
    00193