59 lines
1.9 KiB
C++
59 lines
1.9 KiB
C++
//=============================================================================
|
|
// The CMSInfoTool class encapsulates a tool (which can appear on the Tools
|
|
// menu or as part of a context sensitive menu).
|
|
//=============================================================================
|
|
|
|
#pragma once
|
|
|
|
extern void RemoveToolset(CMapWordToPtr & map);
|
|
extern void LoadGlobalToolset(CMapWordToPtr & map, HKEY hkeyTools = NULL);
|
|
extern void LoadGlobalToolsetWithOpenCAB(CMapWordToPtr & map, LPCTSTR szCABDir, HKEY hkeyTools = NULL);
|
|
|
|
struct MSITOOLINFO
|
|
{
|
|
UINT m_uiNameID;
|
|
UINT m_uiDescriptionID;
|
|
LPCTSTR m_szCommand;
|
|
LPCTSTR m_szParams;
|
|
LPCTSTR m_szCABCommand;
|
|
LPCTSTR m_szCABExtension;
|
|
LPCTSTR m_szCABParams;
|
|
};
|
|
|
|
class CMSInfoTool
|
|
{
|
|
public:
|
|
CMSInfoTool() : m_dwParentID(0), m_fHasSubitems(FALSE), m_hmenu(NULL) {};
|
|
~CMSInfoTool() {};
|
|
|
|
BOOL LoadGlobalFromRegistry(HKEY hkeyTool, DWORD dwID, BOOL fCABOpen, CMapWordToPtr & map);
|
|
BOOL LoadGlobalFromMSITOOLINFO(DWORD dwID, MSITOOLINFO * pTool, BOOL fCABOpen);
|
|
void Create(DWORD dwID, BOOL fCABOnly, LPCTSTR szName, LPCTSTR szCommand, LPCTSTR szDesc, LPCTSTR szParam, LPCTSTR szCABCommand, LPCTSTR szCABExt, LPCTSTR szCABParam);
|
|
void Execute();
|
|
DWORD GetID() { return m_dwID; };
|
|
DWORD GetParentID() { return m_dwParentID; };
|
|
CString GetName() { return m_strName; };
|
|
CString GetCABExtensions() { return (m_fCABOpen) ? m_strCABExtension : CString(_T("")); };
|
|
BOOL HasSubitems() { return m_fHasSubitems; };
|
|
void Replace(LPCTSTR szReplace, LPCTSTR szWith);
|
|
CMSInfoTool * CloneTool(DWORD dwID, LPCTSTR szName);
|
|
void SetHMENU(HMENU hmenu) { m_hmenu = hmenu; };
|
|
HMENU GetHMENU() { return m_hmenu; };
|
|
|
|
private:
|
|
DWORD m_dwID;
|
|
DWORD m_dwParentID;
|
|
|
|
BOOL m_fCABOpen;
|
|
BOOL m_fHasSubitems;
|
|
|
|
CString m_strName;
|
|
CString m_strCommand;
|
|
CString m_strDescription;
|
|
CString m_strParameters;
|
|
CString m_strCABCommand;
|
|
CString m_strCABExtension;
|
|
CString m_strCABParameters;
|
|
|
|
HMENU m_hmenu;
|
|
}; |