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.
666 lines
21 KiB
666 lines
21 KiB
//
|
|
|
|
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
|
|
//
|
|
// ***************************************************************************
|
|
//
|
|
// Original Author: Rajesh Rao
|
|
//
|
|
// $Author: rajeshr $
|
|
// $Date: 6/11/98 4:43p $
|
|
// $Workfile:adsiclas.h $
|
|
//
|
|
// $Modtime: 6/11/98 11:21a $
|
|
// $Revision: 1 $
|
|
// $Nokeywords: $
|
|
//
|
|
//
|
|
// Description: Contains the declaration for the CADSIClass which encapsulates an ADSI class
|
|
//
|
|
//***************************************************************************
|
|
|
|
#ifndef ADSI_CLASS_H
|
|
#define ADSI_CLASS_H
|
|
|
|
|
|
class CADSIClass : public CRefCountedObject
|
|
{
|
|
|
|
public:
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass::CADSIClass
|
|
//
|
|
// Purpose : Constructor
|
|
//
|
|
// Parameters:
|
|
// lpszWBEMClassName : The WBEM name of the Class being created. A copy of this is made
|
|
// lpszADSIClassName : The ADSI name of the Class being created. A copy of this is made
|
|
//***************************************************************************
|
|
CADSIClass(LPCWSTR lpszWBEMClassName, LPCWSTR lpszADSIClassName);
|
|
virtual ~CADSIClass();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetWBEMClassName
|
|
//
|
|
// Purpose : Returns the WBEM Class name of this Class
|
|
//***************************************************************************
|
|
LPCWSTR GetWBEMClassName();
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetWBEMClassName
|
|
//
|
|
// Purpose : Sets the WBEM Class name of this Class
|
|
//***************************************************************************
|
|
void CADSIClass::SetWBEMClassName(LPCWSTR lpszName);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetADSIClassName
|
|
//
|
|
// Purpose : Returns the ADSI Class name of this Class
|
|
//***************************************************************************
|
|
LPCWSTR GetADSIClassName();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetADSIClassName
|
|
//
|
|
// Purpose : Sets the ADSI Class name of this Class
|
|
//***************************************************************************
|
|
void SetADSIClassName(LPCWSTR lpszName);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetCommonName
|
|
//
|
|
// Purpose : Returns the CommonName attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the CommonName attribute name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetCommonName();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetCommonName
|
|
//
|
|
// Purpose : Sets the CommonName attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The CommonName attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetCommonName(LPCWSTR lpszCommonName);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSuperClassLDAPName
|
|
//
|
|
// Purpose : Returns the SuperClassLDAPName name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the SuperClassLDAPName name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetSuperClassLDAPName();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSuperClassLDAPName
|
|
//
|
|
// Purpose : Sets the SuperClassLDAPName for this class
|
|
//
|
|
// Parameters:
|
|
// The SuperClassLDAPName for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSuperClassLDAPName(LPCWSTR lpszSuperClassLDAPName);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetGovernsID
|
|
//
|
|
// Purpose : Returns the GovernsID attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the GovernsID attribute name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetGovernsID();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetGovernsID
|
|
//
|
|
// Purpose : Sets the GovernsID attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The GovernsID attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetGovernsID(LPCWSTR lpszGovernsID);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSchemaIDGUID
|
|
//
|
|
// Purpose : Returns the SchemaIDGUID attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the SchemaIDGUID attribute name
|
|
//
|
|
//***************************************************************************
|
|
const LPBYTE GetSchemaIDGUID(DWORD *pdwLength);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSchemaIDGUID
|
|
//
|
|
// Purpose : Sets the SchemaIDGUID attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The SchemaIDGUID attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSchemaIDGUID(LPBYTE pOctets, DWORD dwLength);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetRDNAttribute
|
|
//
|
|
// Purpose : Returns the RDN attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the RDN attribute name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetRDNAttribute();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetRDNAttribute
|
|
//
|
|
// Purpose : Sets the RDN attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The RDN attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetRDNAttribute(LPCWSTR lpszRDNName);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetDefaultSecurityDescriptor
|
|
//
|
|
// Purpose : Returns the DefaultSecurityDescriptor attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the DefaultSecurityDescriptor attribute name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetDefaultSecurityDescriptor();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetDefaultSecurityDescriptor
|
|
//
|
|
// Purpose : Sets the DefaultSecurityDescriptor attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The DefaultSecurityDescriptor attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetDefaultSecurityDescriptor(LPCWSTR lpszDefaultSecurityDescriptor);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetObjectClassCategory
|
|
//
|
|
// Purpose : Returns the ObjectClassCategory attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the ObjectClassCategory attribute name
|
|
//
|
|
//***************************************************************************
|
|
DWORD GetObjectClassCategory();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetObjectClassCategory
|
|
//
|
|
// Purpose : Sets the ObjectClassCategory attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The ObjectClassCategory attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetObjectClassCategory(DWORD dwObjectClassCategory);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetNTSecurityDescriptor
|
|
//
|
|
// Purpose : Returns the SchemaIDGUID attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the SchemaIDGUID attribute name
|
|
//
|
|
//***************************************************************************
|
|
const LPBYTE GetNTSecurityDescriptor(DWORD *pdwLength);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetNTSecurityDescriptor
|
|
//
|
|
// Purpose : Sets the SetNTSecurityDescriptor attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The SetNTSecurityDescriptor attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetNTSecurityDescriptor(LPBYTE pOctets, DWORD dwLength);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetDefaultObjectCategory
|
|
//
|
|
// Purpose : Returns the DefaultObjectCategory attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the DefaultObjectCategory attribute name
|
|
//
|
|
//***************************************************************************
|
|
LPCWSTR GetDefaultObjectCategory();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetDefaultObjectCategory
|
|
//
|
|
// Purpose : Sets the DefaultObjectCategory attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The DefaultObjectCategory attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetDefaultObjectCategory(LPCWSTR lpszDefaultObjectCategory);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSystemOnly
|
|
//
|
|
// Purpose : Returns the SystemOnly attribute name
|
|
//
|
|
// Parameters:
|
|
// None
|
|
//
|
|
// Return Value:
|
|
// The the SystemOnly attribute name
|
|
//
|
|
//***************************************************************************
|
|
BOOLEAN GetSystemOnly();
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSystemOnly
|
|
//
|
|
// Purpose : Sets the SystemOnly attribute name for this class
|
|
//
|
|
// Parameters:
|
|
// The SystemOnly attribute name for this class
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSystemOnly(BOOLEAN bSystemOnly);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetAuxiliaryClasses
|
|
//
|
|
// Purpose : Gets the list of auxiliary classes for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the auxiliary of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetAuxiliaryClasses(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetAuxiliaryClasses
|
|
//
|
|
// Purpose : Sets the list of auxiliary classes for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetAuxiliaryClasses(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSystemAuxiliaryClasses
|
|
//
|
|
// Purpose : Gets the list of System auxiliary classes for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the System auxiliary of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetSystemAuxiliaryClasses(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSystemAuxiliaryClasses
|
|
//
|
|
// Purpose : Sets the list of System auxiliary classes for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSystemAuxiliaryClasses(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetPossibleSuperiors
|
|
//
|
|
// Purpose : Gets the list of possible superiors for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the possible superiors of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetPossibleSuperiors(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetPossibleSuperiors
|
|
//
|
|
// Purpose : Sets the list of possible superiors for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetPossibleSuperiors(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSystemPossibleSuperiors
|
|
//
|
|
// Purpose : Gets the list of System possible superiors for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the System possible superiors of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetSystemPossibleSuperiors(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSystemPossibleSuperiors
|
|
//
|
|
// Purpose : Sets the list of System possible superiors for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSystemPossibleSuperiors(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetMayContains
|
|
//
|
|
// Purpose : Gets the list of May Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the May Contains of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetMayContains(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetMayContains
|
|
//
|
|
// Purpose : Sets the list of MayContains for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetMayContains(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSystemMayContains
|
|
//
|
|
// Purpose : Gets the list of System MayC ontains for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the System May Contains of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetSystemMayContains(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSystemMayContains
|
|
//
|
|
// Purpose : Sets the list of System May Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSystemMayContains(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetMustContains
|
|
//
|
|
// Purpose : Gets the list of Must Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the Must Contains of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetMustContains(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetMustContains
|
|
//
|
|
// Purpose : Sets the list of Must Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetMustContains(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: GetSystemMustContains
|
|
//
|
|
// Purpose : Gets the list of System Must Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pdwCount : The address where the number of elements in the returned array will be put
|
|
//
|
|
// Return Value:
|
|
// An array of strings which are the names of the System Must Contains of this class
|
|
//***************************************************************************
|
|
LPCWSTR *GetSystemMustContains(DWORD *pdwCount);
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CADSIClass :: SetSystemMustContains
|
|
//
|
|
// Purpose : Sets the list of System Must Contains for this class
|
|
//
|
|
// Parameters:
|
|
// pValues : The values of this property
|
|
// dwNumValues : The number of values
|
|
//
|
|
// Return Value:
|
|
// None
|
|
//***************************************************************************
|
|
void SetSystemMustContains(PADSVALUE pValues, DWORD dwNumValues);
|
|
|
|
protected:
|
|
// The WBEM name of this class
|
|
LPWSTR m_lpszWBEMClassName;
|
|
|
|
// The Common Name (cn) of this class
|
|
LPWSTR m_lpszCommonName;
|
|
|
|
// The LDAP Name of the super class
|
|
LPWSTR m_lpszSuperClassLDAPName;
|
|
|
|
// The GovernsID attribute
|
|
LPWSTR m_lpszGovernsID;
|
|
|
|
// The SchemaIDGUID attribute
|
|
LPBYTE m_pSchemaIDGUIDOctets;
|
|
DWORD m_dwSchemaIDGUIDLength;
|
|
|
|
// The RDN Attribute for this class
|
|
LPWSTR m_lpszRDNAttribute;
|
|
|
|
// The Default Security Descriptor Attribute for this class
|
|
LPWSTR m_lpszDefaultSecurityDescriptor;
|
|
|
|
// The Object Class Category
|
|
DWORD m_dwObjectClassCategory;
|
|
|
|
// The NT Security Descriptor Attribute for this class
|
|
LPBYTE m_pNTSecurityDescriptor;
|
|
DWORD m_dwNTSecurityDescriptorLength;
|
|
|
|
// The system-only attribute
|
|
BOOLEAN m_bSystemOnly;
|
|
|
|
// The Default Object Category
|
|
LPWSTR m_lpszDefaultObjectCategory;
|
|
|
|
// The list of auxiliary classes and its count
|
|
LPWSTR *m_lppszAuxiliaryClasses;
|
|
DWORD m_dwAuxiliaryClassesCount;
|
|
|
|
// The list of System auxiliary classes and its count
|
|
LPWSTR *m_lppszSystemAuxiliaryClasses;
|
|
DWORD m_dwSystemAuxiliaryClassesCount;
|
|
|
|
// The list of possible superiors and its count
|
|
LPWSTR *m_lppszPossibleSuperiors;
|
|
DWORD m_dwPossibleSuperiorsCount;
|
|
|
|
// The list of System possible superiors and its count
|
|
LPWSTR *m_lppszSystemPossibleSuperiors;
|
|
DWORD m_dwSystemPossibleSuperiorsCount;
|
|
|
|
// The list of may contains and its count
|
|
LPWSTR *m_lppszMayContains;
|
|
DWORD m_dwMayContainsCount;
|
|
|
|
// The list of System may contains and its count
|
|
LPWSTR *m_lppszSystemMayContains;
|
|
DWORD m_dwSystemMayContainsCount;
|
|
|
|
// The list of must contains and its count
|
|
LPWSTR *m_lppszMustContains;
|
|
DWORD m_dwMustContainsCount;
|
|
|
|
// The list of System must contains and its count
|
|
LPWSTR *m_lppszSystemMustContains;
|
|
DWORD m_dwSystemMustContainsCount;
|
|
|
|
};
|
|
|
|
#endif /* ADSI_CLASS_H */
|