Windows2003-3790/inetcore/wininet/inc/globals.h
2020-09-30 16:53:55 +02:00

467 lines
11 KiB
C

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
globals.h
Abstract:
External definitions for data in dll\globals.c
Author:
Richard L Firth (rfirth) 15-Jul-1995
Revision History:
15-Jul-1995 rfirth
Created
--*/
#if defined(__cplusplus)
extern "C" {
#endif
// Side-By-Side (loading different urlmon )
#ifdef _SBS_
#define URLMON_DLL "sbsurlmk.dll"
#else
#define URLMON_DLL "urlmon.dll"
#endif // _SBS_
//
// macros
//
#define IsGlobalStateOnline() \
(((GlobalDllState & INTERNET_LINE_STATE_MASK) == INTERNET_STATE_ONLINE) \
? TRUE : FALSE)
#define IsGlobalStateOffline() \
(((GlobalDllState & INTERNET_LINE_STATE_MASK) == INTERNET_STATE_OFFLINE) \
? TRUE : FALSE)
#define IsGlobalStateOfflineUser() \
(((GlobalDllState \
& (INTERNET_LINE_STATE_MASK | INTERNET_STATE_OFFLINE_USER)) \
== (INTERNET_STATE_OFFLINE | INTERNET_STATE_OFFLINE_USER)) \
? TRUE : FALSE)
#define UPDATE_GLOBAL_PROXY_VERSION() \
InterlockedIncrement((LPLONG)&GlobalProxyVersionCount)
#define COOKIES_WARN 0 // warn with a dlg if using cookies
#define COOKIES_ALLOW 1 // allow cookies without any warning
#define COOKIES_DENY 2 // disable cookies completely
#define INTERNET_MAX_WELL_KNOWN_PORT 1023
#define INTERNET_DEFAULT_FTP_PORT 21
#define INTERNET_DEFAULT_SMTP_PORT 25
#define INTERNET_DEFAULT_POP3_PORT 110
#define INTERNET_DEFAULT_NNTP_PORT 119
#define INTERNET_DEFAULT_IMAP_PORT 143
//
// external variables
//
extern HINSTANCE GlobalDllHandle;
#define GlobalResHandle GlobalDllHandle // change for plugable ui
extern DWORD GlobalPlatformType;
extern DWORD GlobalPlatformVersion5;
extern DWORD GlobalPlatformMillennium;
extern DWORD GlobalPlatformWhistler;
extern DWORD GlobalDllState;
extern BOOL GlobalDataInitialized;
extern BOOL GlobalTruncateFileName;
extern DWORD InternetMajorVersion;
extern DWORD InternetMinorVersion;
extern DWORD InternetBuildNumber;
extern DWORD GlobalConnectTimeout;
extern DWORD GlobalConnectRetries;
extern DWORD GlobalSendTimeout;
extern DWORD GlobalReceiveTimeout;
extern DWORD GlobalDataSendTimeout;
extern DWORD GlobalDataReceiveTimeout;
extern DWORD GlobalFromCacheTimeout;
extern DWORD GlobalFtpAcceptTimeout;
extern DWORD GlobalTransportPacketLength;
extern DWORD GlobalKeepAliveSocketTimeout;
extern DWORD GlobalSocketSendBufferLength;
extern DWORD GlobalSocketReceiveBufferLength;
extern DWORD GlobalMaxHttpRedirects;
extern DWORD GlobalMaxConnectionsPerServer;
extern DWORD GlobalMaxConnectionsPer1_0Server;
extern DWORD GlobalConnectionInactiveTimeout;
extern DWORD GlobalServerInfoTimeout;
extern const DWORD GlobalMaxSizeStatusLineResultText;
extern BOOL GlobalHaveInternetOpened;
extern DWORD GlobalCacheMode;
#define CACHEMODE_NORMAL 0
#define CACHEMODE_REFRESH 1
#define CACHEMODE_BYPASS 2
extern BOOL InDllCleanup;
extern BOOL GlobalPleaseQuitWhatYouAreDoing;
extern BOOL GlobalDynaUnload;
extern BOOL GlobalUseSchannelDirectly;
extern BOOL GlobalDisableKeepAlive;
extern BOOL GlobalDisablePassport;
extern DWORD GlobalSecureProtocols;
extern BOOL GlobalEnableHttp1_1;
extern BOOL GlobalEnableProxyHttp1_1;
extern BOOL GlobalDisableReadRange;
extern BOOL GlobalIsProcessExplorer;
extern BOOL GlobalEnableFortezza;
extern BOOL GlobalEnableRevocation;
extern BOOL GlobalIsProcessNtService;
extern DWORD GlobalSslStateCount;
extern BOOL GlobalEnableGopher;
#if defined(SITARA)
extern BOOL GlobalEnableSitara;
extern BOOL GlobalHasSitaraModemConn;
#endif // SITARA
extern BOOL GlobalEnableUtf8Encoding;
extern BOOL GlobalBypassEditedEntry;
extern BOOL fDontUseDNSLoadBalancing;
extern BOOL GlobalDisableNT4RasCheck;
extern BOOL GlobalWarnOnPost;
extern BOOL GlobalWarnAlways;
extern BOOL GlobalWarnOnZoneCrossing;
extern BOOL GlobalWarnOnBadCertSending;
extern BOOL GlobalWarnOnBadCertRecving;
extern BOOL GlobalWarnOnPostRedirect;
extern BOOL GlobalAlwaysDrainOnRedirect;
extern BOOL GlobalBypassSSLNoCacheCheck;
extern BOOL GlobalWarnOnHTTPSToHTTPRedirect;
extern LONG GlobalInternetOpenHandleCount;
extern DWORD GlobalProxyVersionCount;
extern BOOL GlobalAutoProxyNeedsInit;
extern BOOL GlobalAutoProxyInInit;
extern BOOL GlobalAutoProxyCacheEnable;
extern BOOL GlobalDisplayScriptDownloadFailureUI;
extern BOOL GlobalUseLanSettings;
extern BOOL GlobalSendExtraCRLF;
extern BOOL GlobalBypassFtpTimeCheck;
extern BOOL GlobalSendUTF8ServerToProxy;
extern BOOL GlobalMBCSAPIforCrack;
extern BOOL GlobalUseUTF8ServerForNameRes;
extern BOOL g_bHibernating;
extern BOOL g_bDisableHibernation;
//extern BOOL GlobalAutoProxyInDeInit;
//extern DWORD GlobalServerInfoAllocCount;
//extern DWORD GlobalServerInfoDeAllocCount;
extern SERIALIZED_LIST GlobalObjectList;
extern SERIALIZED_LIST GlobalServerInfoList;
extern LONGLONG dwdwHttpDefaultExpiryDelta;
extern LONGLONG dwdwFtpDefaultExpiryDelta;
extern LONGLONG dwdwGopherDefaultExpiryDelta;
extern LONGLONG dwdwSessionStartTime;
extern LONGLONG dwdwSessionStartTimeDefaultDelta;
extern DWORD GlobalUrlCacheSyncMode;
extern DWORD GlobalDiskUsageLowerBound;
extern DWORD GlobalScavengeFileLifeTime;
extern BOOL GlobalLeashLegacyCookies;
extern LPSTR vszMimeExclusionList, vszHeaderExclusionList;
extern LPSTR *lpvrgszMimeExclusionTable, *lpvrgszHeaderExclusionTable;
extern DWORD *lpvrgdwMimeExclusionTableOfSizes;
extern DWORD vdwMimeExclusionTableCount, vdwHeaderExclusionTableCount;
extern SECURITY_CACHE_LIST GlobalCertCache;
extern BOOL GlobalDisableSslCaching;
extern BOOL GlobalDisableNTLMPreAuth;
extern CRITICAL_SECTION AuthenticationCritSec;
extern CRITICAL_SECTION GeneralInitCritSec;
extern CRITICAL_SECTION LockRequestFileCritSec;
extern CRITICAL_SECTION AutoProxyDllCritSec;
extern CRITICAL_SECTION ZoneMgrCritSec;
extern CRITICAL_SECTION MlangCritSec;
extern const char vszSyncMode[];
extern const char vszDisableSslCaching[];
// Default user agent string
// This will be used when no other information is available
extern const char gszDefaultUserAgent[];
// moved to proxysup.hxx
//extern PROXY_INFO GlobalProxyInfo;
extern BOOL vfPerUserCookies;
BOOL GetWininetUserName(VOID);
// BUGBUG: GetWininetUserName must be called before accessing vszCurrentUser.
// Instead, it should return the username ptr and the global not accessed.
extern char vszCurrentUser[];
extern DWORD vdwCurrentUserLen;
extern const char vszAllowCookies[];
extern const char vszPerUserCookies[];
extern INTERNET_VERSION_INFO InternetVersionInfo;
extern HTTP_VERSION_INFO HttpVersionInfo;
extern BOOL fCdromDialogActive;
extern DWORD g_dwCredPersistAvail;
extern CUserName GlobalUserName;
//
// The following globals are literal strings passed to winsock.
// Do NOT make them const, otherwise they end up in .text section,
// and web release of winsock2 has a bug where it locks and dirties
// send buffers, confusing the win95 vmm and resulting in code
// getting corrupted when it is paged back in. -RajeevD
//
extern char gszAt[];
extern char gszBang[];
extern char gszCRLF[3];
//
// novell client32 (hack) "support"
//
extern BOOL GlobalRunningNovellClient32;
extern BOOL GlobalNonBlockingClient32;
// shfolder.dll hmod handle
extern HMODULE g_HMODSHFolder;
// shell32.dll hmod handle
extern HMODULE g_HMODShell32;
extern DWORD GlobalIdentity;
extern GUID GlobalIdentityGuid;
#ifdef WININET6
extern HKEY GlobalCacheHKey;
#endif
extern BOOL GlobalSuppressCookiesPolicy;
//
// Localization Structures
//
//
// This definition must be big enough to hold the largest set of localized
// strings.
//
#define LOCAL_STRINGS_MAX_BUFFER 4096
//
// *WARNING* - The order of elements in the following structure must match the
// order of elements in the uStringId array in the FetchLocalStrings routine in
// dll/Globals.cxx.
//
typedef struct {
LPWSTR
szEnterAuthInfo,
szCertInfo,
szStrengthHigh,
szStrengthMedium,
szStrengthLow,
szCertSubject,
szCertIssuer,
szCertEffectiveDate,
szCertExpirationDate,
szCertProtocol,
szCertUsage,
szHttpsEncryptAlg,
szHttpsHashAlg,
szHttpsExchAlg,
szCertComment,
szCommentExpires,
szCommentNotValid,
szCommentBadCN,
szCommentBadCA,
szCommentBadSignature,
szCommentRevoked,
szCiphMsg,
szHashMsg,
szExchMsg,
szFingerprint,
szDomain,
szRealm,
szSite,
szFirewall;
WCHAR
rgchBuffer[LOCAL_STRINGS_MAX_BUFFER];
} LOCAL_STRINGS, *PLOCAL_STRINGS;
typedef struct {
LPSTR
szEnterAuthInfo,
szCertInfo,
szStrengthHigh,
szStrengthMedium,
szStrengthLow,
szCertSubject,
szCertIssuer,
szCertEffectiveDate,
szCertExpirationDate,
szCertProtocol,
szCertUsage,
szHttpsEncryptAlg,
szHttpsHashAlg,
szHttpsExchAlg,
szCertComment,
szCommentExpires,
szCommentNotValid,
szCommentBadCN,
szCommentBadCA,
szCommentBadSignature,
szCommentRevoked,
szCiphMsg,
szHashMsg,
szExchMsg,
szFingerprint,
szDomain,
szRealm,
szSite,
szFirewall;
CHAR
rgchBuffer[LOCAL_STRINGS_MAX_BUFFER];
} LOCAL_STRINGSA, *PLOCAL_STRINGSA;
//
// prototypes
//
void SetUserOrPass (LPSTR lpszIn, BOOL fUser);
void TimeStampCreds(void);
PSYSTEMTIME GetCredTimeStamp(void);
BOOL GetUserAndPass (LPSTR *pszUser, LPSTR *pszPass);
VOID
GlobalDllInitialize(
VOID
);
VOID
GlobalDllTerminate(
VOID
);
DWORD
GlobalDataInitialize(
VOID
);
VOID
GlobalDataTerminate(
VOID
);
BOOL
IsHttp1_1(
VOID
);
BOOL
IsOffline(
VOID
);
DWORD
SetOfflineUserState(
IN DWORD dwState,
IN BOOL bForce
);
VOID
GlobalDataReadWarningUIFlags(
VOID
);
PLOCAL_STRINGS
FetchLocalStrings(
VOID
);
PLOCAL_STRINGSA
FetchLocalStringsA(
VOID
);
VOID
ChangeGlobalSettings(
VOID
);
VOID
RefreshOfflineFromRegistry(
VOID
);
VOID
PerformStartupProcessing(
VOID
);
DWORD
GetSitaraProtocol(
VOID
);
typedef HRESULT
(STDAPICALLTYPE * PFNINETMULTIBYTETOUNICODE)
(
LPDWORD lpdword,
DWORD dwSrcEncoding,
LPCSTR lpSrcStr,
LPINT lpnSrcSize,
LPWSTR lpDstStr,
LPINT lpDstStrSize
);
// Loads Mlang and returns a pointer to the MultiByte to Unicode converter.
// Could return NULL if mlang.dll couldn't be loaded for some reason.
PFNINETMULTIBYTETOUNICODE GetInetMultiByteToUnicode( );
#if defined(__cplusplus)
}
#endif