#ifndef GLOBALS_H #define GLOBALS_H //Use alpha to build axp version. can use w/ internal or sb flags. //use sb or internal to build those specific versions. Default is external. //#define INTERNAL //#define SB //#define ALPHA #define NOCHKUPGRD #include #include #include #include #include #include "cfgmgr32.h" #include #include #include #include #include //#include //#define BRYANPARSE //#define NOCREDE //#define LOWORD(l) ((WORD) (l)) #define ENUM_SUCCESS 0 #define ENUM_SIBLINGFAILURE 1 #define ENUM_CHILDFAILURE 2 #define ENUM_POSTFAILURE 3 #define ENUM_GENFAILURE 4 #define PLATFORM_9X 0 #define PLATFORM_NT4 1 #define PLATFORM_NT5 2 #define REG_SUCCESS TRUE #define REG_FAILURE FALSE #define SYSP_MAX_STR_LEN 1024 //#define szLogFile "c:\\windows\\desktop\\logger.csv" BOOL LogString(char *szFile, char *szString, ...); void DebugOutf(char *szFormat, ...); int EnumerateDevices(DEVNODE dnDevNodeTraverse, int j, DEVNODE dnParentNode); DWORD EnumerateClasses(ULONG ulIndex); HRESULT ResolveIt(HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath); DWORD GetClassDevs(CHAR *szClassName); extern BOOL g_WalkStartMenu; //BOOL WalkStartMenu; //TCHAR g_WindowsDirectory[]; //HWND g_MainWindow; class kLogFile { public: BOOL LogString(TCHAR *szString, ...); BOOL InitFile(TCHAR *szTempFile, TCHAR* szTempDir); kLogFile(); ~kLogFile(); TCHAR *szFile; BOOL StripCommas(TCHAR *szString); void ValidateString(PTCHAR pString, int dwLen); TCHAR *szLogDir; private: }; class kWin9xDevWalk { public: int Go(); kLogFile *LogProc; kWin9xDevWalk(kLogFile *Proc); BOOL LoadResourceFile(PSTR FilePath,PSTR ResName); void AppendToLogFile(PTCHAR szFile); ~kWin9xDevWalk(); private: }; class kNT5DevWalk { public: int Go(); kLogFile *LogProc; kNT5DevWalk(kLogFile *Proc); BOOL LoadResourceFile(PSTR FilePath,PSTR ResName); void AppendToLogFile(PTCHAR szFile); ~kNT5DevWalk(); private: }; /* class kWin9xAppWalk { public: WORD wStartMenuLen; DWORD dwCurrentKey; HKEY hkeyRoot; BOOL bRegStat; char szRootKeyString[1024]; BOOL Begin(WORD dwPlatform); BOOL NextKey(WORD wPlatform); BOOL Walk(WORD wPlatform); BOOL GetUninstallValues(WORD wPlatform, char* szName); kWin9xAppWalk(kLogFile *Proc, HWND hIn); kLogFile *LogProc; HWND hMainWnd; BOOL WalkDir(char *szTempPath, char *szFile); BOOL WalkStartMenu(); HRESULT ResolveIt(LPCSTR lpszLinkFile, LPSTR lpszPath); BOOL EndsInLnk(char *szFile); void GetAppVer(LPSTR pszAppName); private: }; */ class kNT5AppWalk { public: WORD wStartMenuLen; DWORD dwCurrentKey; HKEY hkeyRoot; BOOL bRegStat; char szRootKeyString[1024]; BOOL Begin(); BOOL NextKey(); BOOL Walk(); BOOL GetUninstallValues(char* szName); kNT5AppWalk(kLogFile *Proc, HWND hIn); kLogFile *LogProc; HWND hMainWnd; BOOL WalkDir(char *szTempPath, char *szFile); BOOL WalkStartMenu(); HRESULT ResolveIt(LPCSTR lpszLinkFile, LPSTR lpszPath); BOOL EndsInLnk(char *szFile); void GetAppVer(LPSTR pszAppName); // BOOL GetNetStrings(); private: }; class kNT5NetWalk { public: WORD wStartMenuLen; DWORD dwCurrentKey; DWORD dwLevel2Key; HKEY hkeyRoot; char szRootKeyString[1024]; kLogFile *LogProc; HWND hMainWnd; kNT5NetWalk(kLogFile *Proc, HWND hIn); BOOL Begin(); BOOL Walk(); BOOL SearchSubKeys(char *szName); BOOL GetKeyValues(char* szName); private: }; class kNT4DevWalk { public: WORD wStartMenuLen; DWORD dwCurrentKey; DWORD dwLevel2Key; HKEY hkeyRoot; char szRootKeyString[1024]; kLogFile *LogProc; HWND hMainWnd; kNT4DevWalk(kLogFile *Proc, HWND hIn); BOOL Begin(); BOOL Walk(); BOOL SearchSubKeys(char *szName); BOOL GetKeyValues(char* szName); private: }; typedef UINT (CALLBACK* LPFNDLLFUNC1)(LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); typedef UINT (CALLBACK* LPFNDLLFUNC2)(LPTSTR, UINT); class CLASS_GeneralAppWalk { public: BOOL OpenRegistry(void); BOOL GetUninstallValues(TCHAR *KeyName); BOOL NextKey(void); BOOL Walk(void); CLASS_GeneralAppWalk(kLogFile *LogProc, HWND hIn); BOOL WalkStartMenu(void); BOOL WalkDir(TCHAR *TempPath, TCHAR *File); BOOL EndsInLnk(TCHAR *File); HRESULT ResolveIt(LPCSTR LinkFile, LPSTR Path); BOOL GetAppVer(LPSTR AppName); BOOL GetCurrentWinDir(void); TCHAR g_WindowsDirectory[MAX_PATH]; private: HKEY HandleToUninstallKeyRoot; kLogFile *LogProc; HWND gHandleToMainWindow; DWORD CurrentKey; TCHAR RootKeyString[1024]; WORD StartMenuLen; }; typedef enum { Win95, Win98, NT4, Win2000, Whistler, Unknown } ENUM_OS_VERSION; class CLASS_GeneralInfo { public: CLASS_GeneralInfo(kLogFile *LogProc, HWND hIn); void GetCurrentWindowsDirectory(void); void DetermineOS(void); BOOL InitLogFile(void); BOOL FillInArguments(void); BOOL DetermineArgumentValidity(void); void WriteVersions(void); void DetermineCommandLine(void); BOOL CopyInput(void); void GetUUID(void); void WriteArguments(void); void WriteFreeDiskSpace(void); void WriteVolumeType(void); void WriteMemorySize(void); void WriteOSVersion(void); /* WriteDevices WriteApps */ void InitHelpers(void); void AbuseOtherApps(void); BOOL Go(void); void ChangeSpaces(TCHAR *Input); BOOL ReadInFileInfo(TCHAR *FileName); void WriteGeneralInfo(void); BOOL AutoRun; BOOL RunMinimized; private: HWND gHandleToMainWindow; kLogFile *LogProc; TCHAR WindowsDirectory[MAX_PATH]; //no trailing "\" ENUM_OS_VERSION OSVersion; TCHAR Corporation[1024]; TCHAR Email[1024]; TCHAR Manufacturer[1024]; TCHAR Model[1024]; TCHAR NumComp[1024]; TCHAR SiteID[1024]; WORD SiteIDIndex; TCHAR Profile[1024]; TCHAR BetaID[1024]; TCHAR MachineType[1024]; WORD MachineTypeIndex; TCHAR OriginalMachineUUID[1024]; TCHAR szRegFile[1024]; TCHAR PlatformExtension[12]; BOOL RunChkupgrd; BOOL RunDevdump; void CatLogFile(TCHAR *szFile); BOOL LoadResourceFile(PSTR FilePath,PSTR ResName); BOOL OverWrite; BOOL UseComputerName; }; #endif //GLOBALS_H