Windows-Server-2003/sdktools/sysparse/globals.h

289 lines
6.6 KiB
C++

#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 <windows.h>
#include <dbt.h>
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
#include "cfgmgr32.h"
#include <objbase.h>
#include <objidl.h>
#include <shlobj.h>
#include <setupapi.h>
#include <tchar.h>
//#include <e:\root\dev\inc16\setupx.h>
//#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