windows-nt/Source/XPSP1/NT/admin/snapin/adsiedit/editorui.h
2020-09-26 16:20:57 +08:00

142 lines
3.6 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: editorui.h
//
//--------------------------------------------------------------------------
#ifndef _EDITORUI_H
#define _EDITORUI_H
#include "attredit.h"
#include "snapdata.h"
#include "aclpage.h"
#include <initguid.h>
#include "IAttrEdt.h"
/////////////////////////////////////////////////////////////////////////////
// CADSIEditPropertyPage
class CADSIEditPropertyPage : public CPropertyPageBase
{
// Construction
public:
CADSIEditPropertyPage();
CADSIEditPropertyPage(CAttrList* pAttrList);
virtual ~CADSIEditPropertyPage()
{
}
// Used to initialize data that is needed in the UI
//
void SetClass(LPCWSTR sClass) { m_sClass = sClass; }
void SetServer(LPCWSTR sServer) { m_sServer = sServer; }
void SetPath(LPCWSTR sPath) { m_sPath = sPath; }
void SetConnectionData(CConnectionData* pConnectData) { m_pConnectData = pConnectData; }
void SetAttrList(CAttrList* pAttrList);
void CopyAttrList(CAttrList* pAttrList);
CAttrList* GetAttrList() { return m_pOldAttrList; }
// Implementation
protected:
// Message map functions
//
virtual BOOL OnInitDialog();
virtual BOOL OnApply();
virtual void OnCancel();
afx_msg void OnSelChangeAttrList();
afx_msg void OnSelChangePropList();
// Helper functions
//
void FillAttrList();
void AddPropertiesToBox(BOOL bMand, BOOL bOpt);
BOOL GetProperties();
// Member data
CString m_sPath;
CString m_sClass;
CString m_sServer;
CConnectionData* m_pConnectData;
CStringList m_sMandatoryAttrList;
CStringList m_sOptionalAttrList;
CAttrEditor m_attrEditor;
CAttrList* m_pOldAttrList;
// REVIEW_JEFFJON : since this is an imbedded member and its destructor deletes everything in the list,
// we have to remove everything in the list that is also in m_pOldAttrList so that it
// doesn't get deleted.
CAttrList m_AttrList;
BOOL m_bExisting;
DECLARE_MESSAGE_MAP()
};
///////////////////////////////////////////////////////////////////////////////
// CADSIEditPropertyPageHolder
class CADSIEditPropertyPageHolder : public CPropertyPageHolderBase
{
public:
CADSIEditPropertyPageHolder(CADSIEditContainerNode* pRootDataNode, CTreeNode* pContainerNode,
CComponentDataObject* pComponentData, LPCWSTR lpszClass, LPCWSTR lpszServer, LPCWSTR lpszPath);
~CADSIEditPropertyPageHolder()
{
if (m_pAclEditorPage != NULL)
{
delete m_pAclEditorPage;
m_pAclEditorPage = NULL;
}
}
HRESULT OnAddPage(int nPage, CPropertyPageBase* pPage);
virtual CADSIEditContainerNode* GetContainerNode() { return m_pContainer; }
private:
CAclEditorPage* m_pAclEditorPage;
CComPtr<IDsAttributeEditor> m_spIDsAttributeEditor;
CString m_sPath;
CComPtr<IADs> m_pADs;
CADSIEditContainerNode* m_pContainer;
};
/////////////////////////////////////////////////////////////////////////////////////
// CCreateWizPropertyPageHolder
class CCreateWizPropertyPageHolder : public CPropertyPageHolderBase
{
public:
CCreateWizPropertyPageHolder(CADSIEditContainerNode* pRootDataNode,
CComponentDataObject* pComponentData,
LPCWSTR lpszClass,
LPCWSTR lpszServer,
CAttrList* pAttrList);
~CCreateWizPropertyPageHolder()
{
}
virtual CADSIEditContainerNode* GetContainerNode() { return m_pContainer; }
private:
CADSIEditPropertyPage m_propPage;
CADSIEditContainerNode* m_pContainer;
};
#endif _EDITORUI_H