WindowsXP-SP1/admin/snapin/adsiedit/createwiz.h
2020-09-30 16:53:49 +02:00

158 lines
3.6 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: createwiz.h
//
//--------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////
// createwiz.h
#ifndef _CREATEWIZ_H
#define _CREATEWIZ_H
#include "attredit.h"
#include "editor.h"
enum
{
first,
middle,
last
};
//////////////////////////////////////////////////////////////////////////
// CCreateClassPage
class CCreateClassPage : public CPropertyPageBase
{
public:
CCreateClassPage(CADSIEditContainerNode* pCurrentNode);
~CCreateClassPage();
virtual BOOL OnSetActive();
virtual LRESULT OnWizardNext();
virtual BOOL OnInitDialog();
protected:
void FillList();
CADSIEditContainerNode* m_pCurrentNode;
CString m_sClass;
DECLARE_MESSAGE_MAP()
};
////////////////////////////////////////////////////////////////////////
// CCreateAttributePage
class CCreateAttributePage : public CPropertyPageBase
{
public:
CCreateAttributePage(UINT nID, CADSIAttr* pAttr);
~CCreateAttributePage();
virtual BOOL OnSetActive();
virtual BOOL OnInitDialog();
virtual LRESULT OnWizardNext();
virtual void OnEditChangeValue();
CADSIAttr* GetAttr() { return m_pAttr; }
virtual void GetValue(CString& sVal);
void SetSyntax(CString sAttr);
void SetADsType(CString sProp);
protected:
CADSIAttr* m_pAttr;
CStringList m_sAttrValue;
BOOL m_bInitialized;
BOOL m_bNumber;
long m_lMaxRange;
long m_lMinRange;
DECLARE_MESSAGE_MAP()
};
////////////////////////////////////////////////////////////////////////
// CCreateFinishPage
class CCreateFinishPage : public CPropertyPageBase
{
public:
CCreateFinishPage(UINT nID);
~CCreateFinishPage();
virtual BOOL OnSetActive();
virtual BOOL OnInitDialog();
virtual BOOL OnWizardFinish();
virtual void OnMore();
protected:
BOOL m_bInitialized;
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////
// CPropertyPageList
typedef CList<CPropertyPageBase*,CPropertyPageBase*> CPropertyPageListBase;
class CPropertyPageList : public CPropertyPageListBase
{
public:
void RemoveAll()
{
while (!IsEmpty())
delete RemoveTail();
}
};
////////////////////////////////////////////////////////////////////////
// CCreatePageHolder
class CCreatePageHolder : public CPropertyPageHolderBase
{
public:
CCreatePageHolder(CContainerNode* pContNode, CADSIEditContainerNode* pNode,
CComponentDataObject* pComponentData);
~CCreatePageHolder();
void AddAttrPage(CString sClass); //Adds the dynamic attribute pages
void RemoveAllPages();
void GetMandatoryAttr(CString sClass, CStringList* sMandList);
void RemovePresetAttr(CStringList* sMandList);
void SetName(CString sName) { m_sName = m_sNamingAttr.GetHead() + _T("=") + sName; }
void GetNamingAttribute(CString& sNamingAttr) { sNamingAttr = m_sNamingAttr.GetHead(); }
void GetSchemaPath(CString sClass, CString& schema);
HRESULT EscapePath(CString& sEscapedName, const CString& sName);
void GetDN(PWSTR pwszName, CString& sDN);
CAttrList* GetAttrList() { return &m_AttrList; }
BOOL OnFinish();
void OnMore();
protected:
CPropertyPageList m_pageList;
CCreateClassPage* m_pClassPage;
CString m_sClass;
CString m_sName;
CStringList m_sNamingAttr;
CAttrList m_AttrList;
CADSIEditContainerNode* m_pCurrentNode;
CComponentDataObject* m_pComponentData;
};
#endif _CREATEWIZ_H