Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1998
//
// File: gencreat.h
//
//--------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////
// gencreat.h
//
// Class definition for the "Generic Create" wizard and other dialogs.
//
// HISTORY
// 21-Aug-97 Dan Morin Creation.
//
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// The following structure is to map a attribute syntax OID to
// something that both the user and the developer better understand.
struct SCHEMA_ATTR_SYNTAX_INFO { LPCTSTR pszSyntaxOID; // OID of the attribute syntax (eg: "2.5.5.6")
UINT uStringIdDesc; // Resource Id describing the syntax OID. (eg: "Numerical String")
VARTYPE vtEnum; // Datatype of the attribute syntax (eg: VT_BSTR, VT_I4, VT_BOOL )
};
const SCHEMA_ATTR_SYNTAX_INFO * PFindSchemaAttrSyntaxInfo(LPCTSTR pszAttrSyntaxOID);
/////////////////////////////////////////////////////////////////////
// The following is a node in a linked-list of mandatory
// attributes to create a new object.
class CMandatoryADsAttribute { public: CString m_strAttrName; // Name of the attribute (eg: "cn", "mail", "streetAddress" )
CString m_strAttrDescription; // Description of attribute (eg: "Common Name", "Email Addresses", "Street Address")
const SCHEMA_ATTR_SYNTAX_INFO * m_pSchemaAttrSyntaxInfo; // Pointer to the syntax info for the attribute.
public: CComVariant m_varAttrValue; // OUT: Value of the attribute stored in a variant
public: CMandatoryADsAttribute( LPCTSTR pszAttrName, LPCTSTR pszAttrDesc, LPCTSTR pszSyntaxOID) { m_strAttrName = pszAttrName; m_strAttrDescription = pszAttrDesc; m_pSchemaAttrSyntaxInfo = PFindSchemaAttrSyntaxInfo(pszSyntaxOID); ASSERT(m_pSchemaAttrSyntaxInfo != NULL); }
~CMandatoryADsAttribute() { } }; // CMandatoryADsAttribute
class CMandatoryADsAttributeList : public CList< CMandatoryADsAttribute*, CMandatoryADsAttribute* > { public: ~CMandatoryADsAttributeList() { _RemoveAll(); } private: void _RemoveAll() { while(!IsEmpty()) delete RemoveHead(); } };
/////////////////////////////////////////////////////////////////////
// The "Generic Create" wizard will build a list of attributes
// and prompt the user to enter the value of the attribute.
class CCreateNewObjectGenericWizard { friend class CGenericCreateWizPage; protected: CNewADsObjectCreateInfo * m_pNewADsObjectCreateInfo; // INOUT: Temporary storage to hold the attributes
LPCTSTR m_pszObjectClass; // IN: Class of object to create.
CPropertySheet * m_paPropertySheet; // Property sheet holding all the property pages
int m_cMandatoryAttributes; // Number of attributes in the list
CMandatoryADsAttributeList* m_paMandatoryAttributeList; // list of mandatory attributes
public: CCreateNewObjectGenericWizard(); ~CCreateNewObjectGenericWizard();
BOOL FDoModal(INOUT CNewADsObjectCreateInfo * pNewADsObjectCreateInfo);
protected: CGenericCreateWizPage** m_pPageArr;
}; // CCreateNewObjectGenericWizard
|