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.
183 lines
4.1 KiB
183 lines
4.1 KiB
#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
|