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.
110 lines
3.7 KiB
110 lines
3.7 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation 1996-2001.
|
|
//
|
|
// File: regdlg.h
|
|
//
|
|
// Contents: definition of CRegistryDialog
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
#if !defined(AFX_REGISTRYDIALOG_H__C84DDDBB_D7CA_11D0_9C69_00C04FB6C6FA__INCLUDED_)
|
|
#define AFX_REGISTRYDIALOG_H__C84DDDBB_D7CA_11D0_9C69_00C04FB6C6FA__INCLUDED_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
#include "snapmgr.h"
|
|
#include "HelpDlg.h"
|
|
|
|
// This structure is used by CResistryDialog to save the HKEY value
|
|
// and enumeration state of a HTREEITEM
|
|
typedef struct _tag_TI_KEYINFO
|
|
{
|
|
HKEY hKey; // HKEY value of this tree item
|
|
bool Enum; // true if the item has already been enumerated
|
|
} TI_KEYINFO, *LPTI_KEYINFO;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CRegistryDialog dialog
|
|
// Used to select a registry item. If the dialog returns IDOK
|
|
// 'm_strReg' will contain the full path of the registry item.
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
class CRegistryDialog : public CHelpDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
void SetCookie(MMC_COOKIE cookie);
|
|
void SetConsole(LPCONSOLE pConsole);
|
|
void SetComponentData(CComponentDataImpl *pComponentData);
|
|
void SetDataObj(LPDATAOBJECT pDataObj) { m_pDataObj = pDataObj; }
|
|
void SetProfileInfo(PEDITTEMPLATE pspi, FOLDER_TYPES ft);
|
|
void SetHandle(PVOID hDB) { m_dbHandle = hDB; };
|
|
|
|
virtual ~CRegistryDialog();
|
|
CRegistryDialog(); // standard constructor
|
|
|
|
// Create a new TI_KEYINFO structure
|
|
static LPTI_KEYINFO CreateKeyInfo(HKEY hKey = 0, bool Enum = 0);
|
|
|
|
// Checks to see if strReg is a valid registry key
|
|
BOOL IsValidRegPath(LPCTSTR strReg);
|
|
|
|
// Add subkeys to a tree item as children.
|
|
void EnumerateChildren(HTREEITEM hParent);
|
|
|
|
// Makes the last item in the path visible.
|
|
void MakePathVisible(LPCTSTR strReg);
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(CRegistryDialog)
|
|
enum { IDD = IDD_REGISTRY_DIALOG };
|
|
CTreeCtrl m_tcReg;
|
|
CString m_strReg;
|
|
//}}AFX_DATA
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CRegistryDialog)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CRegistryDialog)
|
|
virtual void OnOK();
|
|
virtual BOOL OnInitDialog();
|
|
afx_msg void OnItemexpandingRegtree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnDeleteitemRegtree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnSelchangedRegtree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnChangeRegkey();
|
|
afx_msg void OnSetFocus();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
// Public data members
|
|
public:
|
|
PEDITTEMPLATE m_pTemplate;
|
|
PVOID m_dbHandle;
|
|
|
|
private:
|
|
MMC_COOKIE m_cookie;
|
|
CComponentDataImpl * m_pComponentData;
|
|
LPCONSOLE m_pConsole;
|
|
WTL::CImageList m_pIl; // The image list used
|
|
// by the tree ctrl.
|
|
LPDATAOBJECT m_pDataObj;
|
|
BOOL m_bNoUpdate; // When we don't want the edit
|
|
// control to be updated because
|
|
// of a selection
|
|
};
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_REGISTRYDIALOG_H__C84DDDBB_D7CA_11D0_9C69_00C04FB6C6FA__INCLUDED_)
|