160 lines
5.1 KiB
C
160 lines
5.1 KiB
C
|
//=--------------------------------------------------------------------------=
|
||
|
// Globals.H
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// Copyright 1995 Microsoft Corporation. All Rights Reserved.
|
||
|
//
|
||
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||
|
// PARTICULAR PURPOSE.
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
//
|
||
|
// contains externs and stuff for Global variables, etc ..
|
||
|
//
|
||
|
#ifndef _GLOBALS_H_
|
||
|
|
||
|
// the library that we are
|
||
|
//
|
||
|
extern const CLSID *g_pLibid;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// support for licensing
|
||
|
//
|
||
|
extern BOOL g_fMachineHasLicense;
|
||
|
extern BOOL g_fCheckedForLicense;
|
||
|
|
||
|
extern const BOOL g_fUseRuntimeLicInCompositeCtl;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// does our server have a type library?
|
||
|
//
|
||
|
extern BOOL g_fServerHasTypeLibrary;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// our instance handle, and various pieces of information interesting to
|
||
|
// localization
|
||
|
//
|
||
|
extern HINSTANCE g_hInstance;
|
||
|
|
||
|
extern const VARIANT_BOOL g_fSatelliteLocalization;
|
||
|
|
||
|
#ifdef MDAC_BUILD
|
||
|
extern VARIANT_BOOL g_fSatelliteLangExtension;
|
||
|
#endif
|
||
|
|
||
|
extern VARIANT_BOOL g_fHaveLocale;
|
||
|
extern LCID g_lcidLocale;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// apartment threading support.
|
||
|
//
|
||
|
extern CRITICAL_SECTION g_CriticalSection;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// critical section for our heap memory leak detection
|
||
|
//
|
||
|
extern CRITICAL_SECTION g_csHeap;
|
||
|
extern BOOL g_fInitCrit;
|
||
|
extern BOOL g_flagConstructorAlloc;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// our global memory allocator and global memory pool
|
||
|
//
|
||
|
extern HANDLE g_hHeap;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// global parking window for parenting various things.
|
||
|
//
|
||
|
extern HWND g_hwndParking;
|
||
|
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// system information
|
||
|
//
|
||
|
extern BOOL g_fSysWin95; // we're under Win95 system, not just NT SUR
|
||
|
extern BOOL g_fSysWinNT; // we're under some form of Windows NT
|
||
|
extern BOOL g_fSysWin95Shell; // we're under Win95 or Windows NT SUR { > 3/51)
|
||
|
extern BOOL g_fDBCSEnabled; // system is DBCS enabled
|
||
|
|
||
|
//Vegas 21279 - joejo
|
||
|
//=--------------------------------------------------------------------------=
|
||
|
// OleAut Library Handle
|
||
|
//
|
||
|
#ifdef MDAC_BUILD
|
||
|
extern HINSTANCE g_hOleAutHandle;
|
||
|
#else
|
||
|
extern HANDLE g_hOleAutHandle;
|
||
|
#endif
|
||
|
//Vegas 21279 - joejo
|
||
|
|
||
|
//=-------------------------------------------------------------------------------
|
||
|
// Control Debug Switch implementation
|
||
|
//=-------------------------------------------------------------------------------
|
||
|
//---------------------------------------------------------------------------
|
||
|
// The following macros allow you declare global BOOL variables that are only
|
||
|
// included in the debug build (they map to FALSE in the retail build).
|
||
|
// These boolean switches are automatically persisted (in %WINDIR%\ctlswtch.ini)
|
||
|
// and a console app (ctlswtch.exe) is used to turn on/off the switches.
|
||
|
// All switches must be initialized. This can be done in the InitializeLibrary()
|
||
|
// routine of each control. All switches are initialized to FALSE using the
|
||
|
// INIT_SWITCH macro, and to TRUE using the INIT_SWITCH_TRUE macro.
|
||
|
//
|
||
|
//
|
||
|
// To declare a switch (global scope), define and intialize the switch e.g.
|
||
|
//
|
||
|
//
|
||
|
// DEFINE_SWITCH(fContainer);
|
||
|
//
|
||
|
// AND,
|
||
|
//
|
||
|
// INIT_SWITCH(fContainer);
|
||
|
//
|
||
|
//
|
||
|
// To test whether a switch is currently set (TRUE), use FSWITCH, e.g.
|
||
|
//
|
||
|
// if (FSWITCH(fContainer))
|
||
|
// *ppv = (IOleContainer*)this;
|
||
|
//
|
||
|
//
|
||
|
// To reference a switch declared in another file, use EXTERN_SWITCH, e.g.
|
||
|
//
|
||
|
// EXTERN_SWITCH(fContainer);
|
||
|
//
|
||
|
// AND
|
||
|
//
|
||
|
// INIT_SWITCH(fContainer);
|
||
|
//---------------------------------------------------------------------------
|
||
|
#if DEBUG
|
||
|
|
||
|
// private implementation; use SWITCH macros below to declare and use
|
||
|
class CtlSwitch {
|
||
|
public:
|
||
|
void InitSwitch(char * pszName);
|
||
|
|
||
|
BOOL m_fSet; // TRUE if switch is enabled
|
||
|
char * m_pszName; // name of the switch
|
||
|
CtlSwitch* m_pctlswNext; // next switch in global list
|
||
|
static CtlSwitch* g_pctlswFirst; // head of global list
|
||
|
};
|
||
|
|
||
|
#define DEFINE_SWITCH(NAME) CtlSwitch g_Switch_ ## NAME;
|
||
|
#define INIT_SWITCH(NAME) g_Switch_ ## NAME . InitSwitch(#NAME);
|
||
|
#define EXTERN_SWITCH(NAME) extern CtlSwitch g_Switch_ ## NAME;
|
||
|
#define INIT_SWITCH_TRUE(NAME) g_Switch_ ## NAME . InitSwitch(#NAME); g_Switch_ ## NAME . m_fSet = TRUE;
|
||
|
#define FSWITCH(NAME) (g_Switch_ ## NAME . m_fSet)
|
||
|
|
||
|
|
||
|
#else //DEBUG
|
||
|
|
||
|
#define DEFINE_SWITCH(NAME)
|
||
|
#define INIT_SWITCH(NAME)
|
||
|
#define EXTERN_SWITCH(NAME)
|
||
|
#define INIT_SWITCH_TRUE(NAME)
|
||
|
#define FSWITCH(NAME) FALSE
|
||
|
|
||
|
#endif //DEBUG
|
||
|
|
||
|
|
||
|
#define _GLOBALS_H_
|
||
|
#endif // _GLOBALS_H_
|
||
|
|