|
|
#ifndef __WIZARD_H
#define __WIZARD_H
#include "resource.h"
//////////////////////// Defines //////////////////////////////////////////////
// The maximum number of files that can be added when we are using auto-generate
#define MAX_AUTO_MATCH 7
///////////////////////////////////////////////////////////////////////////////
//////////////////////// Enums /////////////////////////////////////////////
/*++
The types of wizards for making fixes or apphelp --*/ enum { TYPE_FIXWIZARD = 0, // The wizard is used for creating an app-fix
TYPE_APPHELPWIZARD // The wizard is used for creatign an app help
};
///////////////////////////////////////////////////////////////////////////////
/*++
class CShimWizard Desc: The shim wizard. The apphelp wizard is subclasses from this. Make a object of this and call BeginWizard() to start the wizard
Members: UINT m_uType: The type of the wizard, one of TYPE_FIXWIZARD or TYPE_APPHELPWIZARD DBENTRY m_Entry: This will be entry on which the wizard works. If we are creating a new fix, then after the wizard ends, we create a new entry and assign m_Entry to that. If we are editing an existing wizard we first of all assign the entry being edited to m_Entry. The assignment operator for DBENTRY is overloaded BOOL m_bEditing: Are we creating a new entry or editing an existing one? DWORD dwMaskOfMainEntry: Matching attributes used for the main entry PDATABASE m_pDatabase: The presently selected database. The entry being edited lives here or if we are creatign a new fix or apphelp then the new entry will be placed here
--*/
class CShimWizard { public: UINT m_uType; DBENTRY m_Entry; BOOL m_bEditing; DWORD dwMaskOfMainEntry; PDATABASE m_pDatabase;
public:
void WipeEntry(BOOL bMatching, BOOL bShims, BOOL bLayers, BOOL bFlags); void GrabMatchingInfo(HWND hdlg); void WalkDirectory(PMATCHINGFILE* pMatchileFileListHead,LPCTSTR szDirectory, int nDepth); BOOL BeginWizard(HWND hParent, PDBENTRY pEntry, PDATABASE pDatabase, PBOOL pbShouldStartLUAWizard); BOOL CheckAndSetLongFilename(HWND hDlg, INT iStrID);
CShimWizard(); };
BOOL CALLBACK GetAppName( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL CALLBACK GetFixes( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
INT_PTR CALLBACK SelectFiles( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
INT_PTR CALLBACK ParamsDlgProc( HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
void ShowSelected( HWND hdlg );
BOOL HandleShimsNext( HWND hdlg );
BOOL ShimPresentInLayersOfEntry( PDBENTRY pEntry, PSHIM_FIX psf, PSHIM_FIX_LIST* ppsfList = NULL, PLAYER_FIX_LIST* pplfList = NULL );
BOOL FlagPresentInLayersOfEntry( PDBENTRY pEntry, PFLAG_FIX pff, PFLAG_FIX_LIST* ppffList = NULL, PLAYER_FIX_LIST* pplfl = NULL );
void ShowItems( HWND hDlg );
INT_PTR CALLBACK SelectLayer( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
BOOL HandleLayersNext( HWND hdlg, BOOL bCheckAndAddLua, CSTRINGLIST* pstrlShimsAdded = NULL );
void SetMask( HWND hwndTree ); void CheckLayers( HWND hwndList );
void ChangeShimFlagIcons( HWND hdlg, PLAYER_FIX_LIST plfl );
BOOL HandleShimDeselect( HWND hdlg, INT iIndex );
BOOL HandleLayerListNotification( HWND hdlg, LPARAM lParam );
#endif
|