You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
8.8 KiB
199 lines
8.8 KiB
#ifndef _HELPER_H_
|
|
#define _HELPER_H_
|
|
|
|
#include "wmrgexp.h"
|
|
#include "ocmanage.h"
|
|
#include "setupapi.h"
|
|
|
|
#if DBG == 1
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#define DECLARE_INFOLEVEL(comp) extern unsigned long comp##InfoLevel = DEF_INFOLEVEL;
|
|
#define DECLARE_DEBUG(comp) \
|
|
extern unsigned long comp##InfoLevel; \
|
|
_inline void \
|
|
comp##InlineDebugOut(unsigned long fDebugMask, TCHAR *pszfmt, ...) \
|
|
{ \
|
|
if (comp##InfoLevel & fDebugMask) \
|
|
{ \
|
|
TCHAR acsString[1000];\
|
|
va_list va; \
|
|
va_start(va, pszfmt);\
|
|
_vstprintf(acsString, pszfmt, va); \
|
|
va_end(va);\
|
|
OutputDebugString(acsString);\
|
|
} \
|
|
}\
|
|
_inline void \
|
|
comp##InlineDebugOut( TCHAR *pszfmt, ...) \
|
|
{ \
|
|
if ( TRUE ) \
|
|
{ \
|
|
TCHAR acsString[1000];\
|
|
va_list va; \
|
|
va_start(va, pszfmt);\
|
|
_vstprintf(acsString, pszfmt, va); \
|
|
va_end(va);\
|
|
OutputDebugString(acsString);\
|
|
} \
|
|
}
|
|
#else // DBG == 0
|
|
#define DECLARE_DEBUG(comp)
|
|
#define DECLARE_INFOLEVEL(comp)
|
|
#endif // DBG == 0
|
|
|
|
DECLARE_DEBUG(iis);
|
|
#define iisDebugOut(x) iisDebugOut2 x
|
|
#define iisDebugOutSafeParams(x) iisDebugOutSafeParams2 x
|
|
#define iisDebugOutSafe(x) iisDebugOutSafe2 x
|
|
|
|
#define DO_IT_FOR_W3SVC_ANONYMOUSUSER 1
|
|
#define DO_IT_FOR_MSFTPSVC_ANONYMOUSUSER 2
|
|
#define DO_IT_FOR_W3SVC_WAMUSER 4
|
|
|
|
// External globals from other .cpp files
|
|
class MyLogFile;
|
|
extern MyLogFile g_MyLogFile;
|
|
class CInitApp;
|
|
extern CInitApp* g_pTheApp;
|
|
extern HANDLE g_MyModuleHandle;
|
|
|
|
// structs
|
|
typedef struct _CLUSTER_SVC_INFO_FILL_STRUCT
|
|
{
|
|
LPTSTR szTheClusterName;
|
|
LPWSTR pszTheServiceType;
|
|
CString * csTheReturnServiceResName;
|
|
DWORD dwReturnStatus;
|
|
} CLUSTER_SVC_INFO_FILL_STRUCT;
|
|
|
|
typedef struct _ScriptMapNode {
|
|
TCHAR szExt[32];
|
|
TCHAR szProcessor[_MAX_PATH];
|
|
DWORD dwFlags;
|
|
TCHAR szMethods[_MAX_PATH];
|
|
struct _ScriptMapNode *prev, *next;
|
|
} ScriptMapNode;
|
|
|
|
//
|
|
// Functions
|
|
//
|
|
void iisDebugOut2(int iLogType, TCHAR *pszfmt, ...);
|
|
void iisDebugOutSafeParams2(int iLogType, TCHAR *pszfmt, ...);
|
|
void iisDebugOutSafe2(int iLogType, TCHAR *pszfmt);
|
|
void iisDebugOut_Start(TCHAR *pszString, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void iisDebugOut_Start1(TCHAR *pszString1, TCHAR *pszString2, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void iisDebugOut_Start1(TCHAR *pszString1, CString pszString2, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void iisDebugOut_End(TCHAR *pszString, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void iisDebugOut_End1(TCHAR *pszString1, TCHAR *pszString2, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void iisDebugOut_End1(TCHAR *pszString1, CString pszString2, int iLogType = LOG_TYPE_TRACE_WIN32_API);
|
|
void ProgressBarTextStack_Push(CString csText);
|
|
void ProgressBarTextStack_Push(LPTSTR szText);
|
|
void ProgressBarTextStack_Pop(void);
|
|
void ProgressBarTextStack_Set(int iStringID);
|
|
void ProgressBarTextStack_Set(int iStringID, const CString& csFileName);
|
|
void ProgressBarTextStack_Set(int iStringID, const CString& csString1, const CString& csString2);
|
|
void ProgressBarTextStack_Set(LPCTSTR szProgressTextString);
|
|
void ProgressBarTextStack_Inst_Set( int ServiceNameID, int iInstanceNum);
|
|
void ProgressBarTextStack_InstVRoot_Set( int ServiceNameID, int iInstanceNum, CString csVRName);
|
|
void ProgressBarTextStack_InstInProc_Set( int ServiceNameID, int iInstanceNum, CString csVRName);
|
|
void ListOfWarnings_Add(TCHAR * szEntry);
|
|
void ListOfWarnings_Display(void);
|
|
HRESULT GetLastSectionToBeCalled(void);
|
|
INT Register_iis_common();
|
|
INT Unregister_iis_common();
|
|
INT Unregister_old_asp();
|
|
INT Register_iis_core();
|
|
INT Unregister_iis_core();
|
|
INT Register_iis_inetmgr();
|
|
INT Unregister_iis_inetmgr();
|
|
INT Register_iis_pwmgr();
|
|
INT Unregister_iis_pwmgr();
|
|
INT Register_iis_www();
|
|
INT Unregister_iis_www();
|
|
INT Register_iis_doc();
|
|
INT Register_iis_ftp();
|
|
INT Unregister_iis_ftp();
|
|
LPWSTR MakeWideStrFromAnsi(LPSTR psz);
|
|
int GetMultiStrSize(LPTSTR p);
|
|
BOOL IsValidNumber(LPCTSTR szValue);
|
|
int GetRandomNum(void);
|
|
void SetRebootFlag(void);
|
|
BOOL RunProgram( LPCTSTR pszProgram, LPTSTR CmdLine, BOOL fMinimized , DWORD dwWaitTimeInSeconds, BOOL fCreateNewConsole);
|
|
void HandleSpecificErrors(DWORD iTheErrorCode, DWORD dwFormatReturn, CString csMsg, TCHAR pMsg[], CString *);
|
|
BOOL GetDataFromMetabase(LPCTSTR szPath, int nID, LPBYTE Buffer, int BufSize);
|
|
void AddOLEAUTRegKey();
|
|
DWORD RegisterOLEControl(LPCTSTR lpszOcxFile, BOOL fAction);
|
|
void lodctr(LPCTSTR lpszIniFile);
|
|
void unlodctr(LPCTSTR lpszDriver);
|
|
INT InstallPerformance(CString nlsRegPerf,CString nlsDll,CString nlsOpen,CString nlsClose,CString nlsCollect );
|
|
INT AddEventLog(BOOL fSystem, CString nlsService, CString nlsMsgFile, DWORD dwType);
|
|
INT RemoveEventLog(BOOL fSystem, CString nlsService );
|
|
INT InstallAgent( CString nlsName, CString nlsPath );
|
|
INT RemoveAgent( CString nlsServiceName );
|
|
void InstallMimeMap();
|
|
int CreateInProc(LPCTSTR lpszPath, int iUseOOPPool);
|
|
void CreateInProc_Wrap(LPCTSTR lpszPath, int iUseOOPPool);
|
|
void DeleteInProc(LPCTSTR lpszKeyPath);
|
|
void SetAppFriendlyName(LPCTSTR szKeyPath);
|
|
void SetInProc(LPCTSTR szKeyPath);
|
|
void AddCustomError(IN DWORD dwCustErr, IN INT intSubCode, IN LPCTSTR szErrorString, IN LPCTSTR szKeyPath, IN BOOL fOverwriteExisting );
|
|
ScriptMapNode *AllocNewScriptMapNode(LPTSTR szExt, LPTSTR szProcessor, DWORD dwFlags, LPTSTR szMethods);
|
|
void InsertScriptMapList(ScriptMapNode *pList, ScriptMapNode *p, BOOL fReplace);
|
|
void FreeScriptMapList(ScriptMapNode *pList);
|
|
void GetScriptMapListFromRegistry(ScriptMapNode *pList);
|
|
void GetScriptMapListFromMetabase(ScriptMapNode *pList, int iUpgradeType);
|
|
void WriteScriptMapListToMetabase(ScriptMapNode *pList, LPTSTR szKeyPath, DWORD dwFlags);
|
|
DWORD CallProcedureInDll_wrap(LPCTSTR lpszDLLFile, LPCTSTR lpszProcedureToCall, BOOL bDisplayMsgOnErrFlag, BOOL bInitOleFlag, BOOL iFunctionPrototypeFlag);
|
|
DWORD CallProcedureInDll(LPCTSTR lpszDLLFile, LPCTSTR lpszProcedureToCall, BOOL bDisplayMsgOnErrFlag, BOOL bInitOleFlag, BOOL iFunctionPrototypeFlag);
|
|
void GetDebugLevelFromInf(IN HINF hInfFileHandle);
|
|
int IsThisStringInThisCStringList(CStringList &strList, LPCTSTR szStringToLookFor);
|
|
int KillProcess_Wrap(LPCTSTR lpFullPathOrJustFileName);
|
|
int ProcessSection(IN HINF hFile, IN LPCTSTR szTheSection);
|
|
void uiCenterDialog( HWND hwndDlg );
|
|
int AfterRemoveAll_SaveMetabase(void);
|
|
int iOleInitialize(void);
|
|
void iOleUnInitialize(int iBalanceOLE);
|
|
BOOL SetupSetDirectoryId_Wrapper(HINF InfHandle,DWORD Id,LPCTSTR Directory);
|
|
BOOL SetupSetStringId_Wrapper(HINF InfHandle,DWORD Id,LPCTSTR TheString);
|
|
void LogImportantFiles(void);
|
|
HRESULT FTestForOutstandingCoInits(void);
|
|
void DisplayStringForMetabaseID(DWORD dwMetabaseID);
|
|
void ReturnStringForMetabaseID(DWORD dwMetabaseID, LPTSTR lpReturnString);
|
|
void SetErrorFlag(char *szFileName, int iLineNumber);
|
|
DWORD FillStrListWithListOfSections(IN HINF hFile, CStringList &strList, IN LPCTSTR szSection);
|
|
void MesssageBoxErrors_IIS(void);
|
|
void MesssageBoxErrors_MTS(int iMtsThingWeWereDoing, DWORD dwErrorCode);
|
|
void ShowIfModuleUsedForGroupOfSections(IN HINF hFile, int iUnlockThem);
|
|
int ReadGlobalsFromInf(HINF InfHandle);
|
|
int CheckIfPlatformMatchesInf(HINF InfHandle);
|
|
int CheckSpecificBuildinInf(HINF InfHandle);
|
|
int CheckForOldGopher(HINF InfHandle);
|
|
void SetOCGlobalPrivateData(void);
|
|
BOOL GetJavaTLD(LPTSTR lpszDir);
|
|
void SetDIRIDforThisInf(HINF InfHandle,BOOL bOCInit);
|
|
void ShowStateOfTheseServices(IN HINF hFile);
|
|
int GetScriptMapAllInclusionVerbs(CString &csTheVerbList);
|
|
void DumpScriptMapList();
|
|
int GetSectionNameToDo(IN HINF hFile, TSTR *pstrSectionName);
|
|
void CustomWWWRoot(LPCTSTR szWWWRoot);
|
|
void CustomFTPRoot(LPCTSTR szFTPRoot);
|
|
void AdvanceProgressBarTickGauge(int iTicks = 1);
|
|
int IsMetabaseCorrupt(void);
|
|
int ReadUserConfigurable(HINF InfHandle);
|
|
int ReverseExpandEnvironmentStrings(LPTSTR szOriginalDir,LPTSTR szNewlyMungedDir);
|
|
BOOL SetupFindFirstLine_Wrapped(IN HINF InfHandle,IN LPCTSTR Section,IN LPCTSTR Key,OPTIONAL INFCONTEXT *Context);
|
|
INT IsThisOnNotStopList(IN HINF hFile, CString csInputName, BOOL bServiceFlag);
|
|
HRESULT MofCompile(TCHAR * szPathMofFile);
|
|
DWORD DoesEntryPointExist(LPCTSTR lpszDLLFile, LPCTSTR lpszProcedure);
|
|
void CreateDummyMetabaseBin(void);
|
|
BOOL RunningAsAdministrator();
|
|
LPTSTR CreatePassword(int iSize);
|
|
void CreatePasswordOld(TCHAR *pszPassword,int iSize);
|
|
void StopAllServicesRegardless(int iShowErrorsFlag);
|
|
LPTSTR SafeCopy( LPTSTR szDestination, LPTSTR szSource, DWORD dwSize);
|
|
LPTSTR SafeCat( LPTSTR szDestination, LPTSTR szSource, DWORD dwSize);
|
|
BOOL DoesTheInstallDrivePreserveAcls( LPBOOL pbPreservesAcls );
|
|
BOOL UpdateAnonymousUsers( HINF InfHandle );
|
|
|
|
#endif // _HELPER_H_
|