windows-nt/Source/XPSP1/NT/sdktools/hotfixmanager/ocx/clistviews.h
2020-09-26 16:20:57 +08:00

107 lines
3 KiB
C++

//
// CListViews -- Class Descriptions for the main list views.
//
//
// File: Globals.h
// Contains Global definitions for the Hotfix OCX
//
#include "Resource.h"
typedef struct _FILELIST
{
_TCHAR FileName[255];
_TCHAR InstallPath[255];
_TCHAR FileVersion[255];
_TCHAR IsCurrent[255];
_TCHAR FileDate[255];
struct _FILELIST * pPrev;
struct _FILELIST * pNext;
} * PFILELIST,FILELIST;
typedef struct _HOTFIXLIST
{
_TCHAR HotfixName[255];
_TCHAR Description[255];
_TCHAR InstalledDate[255];
_TCHAR InstalledBy[255];
_TCHAR Type[255];
_TCHAR Locale[255];
_TCHAR PackageCode[255];
_TCHAR ServicePack[255];
_TCHAR Uninstall[255];
struct _HOTFIXLIST * pPrev;
struct _HOTFIXLIST * pNext;
PFILELIST FileList;
} * PHOTFIXLIST,HOTFIXLIST;
typedef struct _ProductNode {
_TCHAR ProductName[255];
_ProductNode * pPrev;
_ProductNode * pNext;
PHOTFIXLIST HotfixList;
} * PPRODUCT, PRODUCTLIST;
static BOOL m_SortOrder ; // True = Acending false = Decending
static HWND TopList;
class CListViews
{
private:
HWND BottomList;
PPRODUCT DataBase ;
BOOL FreeDatabase();
BOOL FreeHotfixList(PHOTFIXLIST CurrentHotfix);
BOOL FreeFileList(PFILELIST CurrentFile);
// BOOL BuildDataBase(_TCHAR * ComputerName);
PHOTFIXLIST GetHotfixInfo( _TCHAR * pszProductName, HKEY* hUpdateKey );
PPRODUCT BuildDatabase(_TCHAR * lpszComputerName);
PFILELIST GetFileInfo(HKEY* hHotfixKey);
VOID VerifyFiles(PPRODUCT Database);
BOOL AddItemsTop();
BOOL AddItemsBottom ();
BOOL bUserAbort;
HWND hDlgPrint;
_TCHAR m_ProductName[255];
DWORD m_CurrentView; // TRUE = By Hotfix, FALSE = BY File
HINSTANCE m_hInst;
_TCHAR CurrentProductName[255];
_TCHAR CurrentFile[255];
_TCHAR m_ComputerName[255];
HWND m_WebButton;
HWND m_UninstButton;
HWND m_RptButton;
public:
_TCHAR m_CurrentHotfix[255];
BOOL m_bRemoted;
CListViews() {DataBase = NULL; m_CurrentView = VIEW_ALL_HOTFIX; m_SortOrder = TRUE;}
~CListViews() {;}
BOOL Initialize( HWND ParentWnd, HINSTANCE hInst,_TCHAR *ComputerName,
HWND WebButton, HWND UninstButton, HWND RptButton);
BOOL Initialize( _TCHAR * ComputerName);
BOOL ShowLists(RECT * rc);
BOOL Resize(RECT *rc);
DWORD GetCurrentView () { return m_CurrentView;}
void SetViewMode(DWORD ViewType) ;
/* void RefreshView (BOOL Reload) {;} // TRUE - if we just uninstalled or Refresh option selected
// FALSE - for view and product selection changes. */
void PrintReport();
void SetProductName(_TCHAR * NewName);
DWORD GetState();
LRESULT OnNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled, HWND m_hWnd);
_TCHAR * GetCurrentHotfix();
BOOL Uninstall();
HWND GetTopList() { return TopList; }
void SaveToCSV();
static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
// BOOL CALLBACK AbortProc(HDC PrinterDC, int iCode);
// BOOL CALLBACK PrintDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
};