#ifndef _PRIV_H_ #define _PRIV_H_ /***************************************************************************** * * Magic comments: * * BUGBUG: Something that needs to be fixed before being released. * * _UNDOCUMENTED_: Something that is not documented in the SDK. * * _UNOBVIOUS_: Some unusual feature that isn't obvious from the * documentation. A candidate for a "Tips and Tricks" chapter. * * _HACKHACK_: Something that is gross but necessary. * * _CHARSET_: Character set issues. * * Magic ifdefs: * *****************************************************************************/ // WHH 05/10/99 //#define USE_IMONIKER_HELPER 1 #undef _WIN32_IE #define _WIN32_IE 0x0600 /***************************************************************************** * * Global Includes * *****************************************************************************/ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif // WIN32_LEAN_AND_MEAN #define NOIME #define NOSERVICE // This stuff must run on Win95 #define _WIN32_WINDOWS 0x0500 #ifndef WINVER #define WINVER 0x0500 #endif // WINVER #define _OLEAUT32_ // get DECLSPEC_IMPORT stuff right, we are defing these #define _FSMENU_ // for DECLSPEC_IMPORT #define _WINMM_ // for DECLSPEC_IMPORT in mmsystem.h #define _SHDOCVW_ // for DECLSPEC_IMPORT in shlobj.h #define _WINX32_ // get DECLSPEC_IMPORT stuff right for WININET API #define _URLCACHEAPI_ // get DECLSPEC_IMPORT stuff right for wininet urlcache #define STRICT #define POST_IE5_BETA #include #include #ifdef RC_INVOKED /* Define some tags to speed up rc.exe */ #define __RPCNDR_H__ /* Don't need RPC network data representation */ #define __RPC_H__ /* Don't need RPC */ #include /* Get the DROPEFFECT stuff */ #define _OLE2_H_ /* But none of the rest */ #define _WINDEF_ #define _WINBASE_ #define _WINGDI_ #define NONLS #define _WINCON_ #define _WINREG_ #define _WINNETWK_ #define _INC_COMMCTRL #define _INC_SHELLAPI #define _SHSEMIP_H_ /* _UNDOCUMENTED_: Internal header */ #else // RC_INVOKED #include #endif // RC_INVOKED #ifdef __cplusplus extern "C" { /* Assume C declarations for C++. */ #endif /* __cplusplus */ #ifdef __cplusplus } /* End of extern "C" {. */ #endif /* __cplusplus */ #include "resource.h" #define _FIX_ENABLEMODELESS_CONFLICT // for shlobj.h //WinInet need to be included BEFORE ShlObjp.h //#include //#include #include #include // For IProgressDialog #include #include #include #include #include #include #include "..\..\client\crtfree.h" #include #include #include #include #include // IDispatchEx #include #include //#include // GetProcessDword #include #define DISALLOW_Assert // Force to use ASSERT instead of Assert #define DISALLOW_DebugMsg // Force to use TraceMsg instead of DebugMsg //#include #include #include // for REGSTR_PATH_EXPLORE #define USE_SYSTEM_URL_MONIKER #define _INTSHCUT_ // get DECLSPEC_IMPORT stuff right for INTSHCUT.h #define HLINK_NO_GUIDS #include #include //#include //#include #include // Trace flags #define TF_WMAUTODISCOVERY 0x00000100 // AutoDiscovery #define TF_WMTRANSPORT 0x00000200 // Transport Layer #define TF_WMOTHER 0x00000400 // Other #define TF_WMSMTP_CALLBACK 0x00000800 // SMTP Callback /***************************************************************************** * * Global Helper Macros/Typedefs * *****************************************************************************/ // shorthand #ifndef ATOMICRELEASE #define ATOMICRELEASET(p,type) { type* punkT=p; p=NULL; punkT->Release(); } // doing this as a function instead of inline seems to be a size win. // #endif // ATOMICRELEASE #ifdef SAFERELEASE #undef SAFERELEASE #endif // SAFERELEASE #define SAFERELEASE(p) ATOMICRELEASE(p) #define IsInRange InRange // Include the automation definitions... #include #include #include #include #include #include #include // // Neutral ANSI/UNICODE types and macros... 'cus Chicago seems to lack them // #ifdef UNICODE typedef WCHAR TUCHAR, *PTUCHAR; #else /* UNICODE */ typedef unsigned char TUCHAR, *PTUCHAR; #endif /* UNICODE */ extern HINSTANCE g_hinst; #define HINST_THISDLL g_hinst // General flag macros // #define SetFlag(obj, f) do {obj |= (f);} while (0) #define ToggleFlag(obj, f) do {obj ^= (f);} while (0) #define ClearFlag(obj, f) do {obj &= ~(f);} while (0) #define IsFlagSet(obj, f) (BOOL)(((obj) & (f)) == (f)) #define IsFlagClear(obj, f) (BOOL)(((obj) & (f)) != (f)) /***************************************************************************** * * Baggage - Stuff I carry everywhere * *****************************************************************************/ // Convert an array name (A) to a generic count (c). #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0])) #ifdef DEBUG #define DEBUG_CODE(x) x #else // DEBUG #define DEBUG_CODE(x) #endif // DEBUG /*****************************************************************************\ Wrappers and other quickies \*****************************************************************************/ #define HRESULT_FROM_SUCCESS_VALUE(us) MAKE_HRESULT(SEVERITY_SUCCESS, 0, (USHORT)(us)) /*****************************************************************************\ Static globals: \*****************************************************************************/ extern HINSTANCE g_hinst; /* My instance handle */ #define INTERNET_MAX_PATH_LENGTH 2048 #define INTERNET_MAX_SCHEME_LENGTH 32 // longest protocol name length #define MAX_URL_STRING (INTERNET_MAX_SCHEME_LENGTH \ + sizeof("://") \ + INTERNET_MAX_PATH_LENGTH) // Just Works, AutoDiscovery #define SZ_REGKEY_GLOBALSERVICES L"Software\\Microsoft\\Windows\\CurrentVersion\\JustWorks\\AutoDiscovery\\GlobalServices" #define SZ_QUERYDATA_TRUE L"True" #define SZ_QUERYDATA_FALSE L"False" // AutoDiscovery #define SZ_SERVERPORT_DEFAULT L"Default" #define SZ_QUERYDATA_TRUE L"True" #define SZ_QUERYDATA_FALSE L"False" #define SZ_HTTP_VERB_POST "POST" // Parsing Characters #define CH_ADDRESS_SEPARATOR L';' #define CH_ADDRESS_QUOTES L'"' #define CH_EMAIL_START L'<' #define CH_EMAIL_END L'>' #define CH_EMAIL_AT L'@' #define CH_EMAIL_DOMAIN_SEPARATOR L'.' #define CH_HTML_ESCAPE L'%' /*****************************************************************************\ Local Includes \*****************************************************************************/ #include "util.h" #endif // _PRIV_H_