|
|
class CPropertyCache;
class CLDAPSchema : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADs, public IADsContainer, public IGetAttributeSyntax { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS DECLARE_IADsContainer_METHODS
DECLARE_IGetAttributeSyntax_METHODS
/* Constructors, Destructors .... */ CLDAPSchema::CLDAPSchema();
CLDAPSchema::~CLDAPSchema();
static HRESULT CLDAPSchema::CreateSchema( BSTR bstrParent, BSTR bstrName, LPTSTR pszServerPath, CCredentials& Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CLDAPSchema::AllocateSchemaObject( CLDAPSchema **ppSchema, CCredentials& Credentials );
HRESULT CLDAPSchema::LDAPRefreshSchema(); STDMETHOD(GetInfo)(DWORD dwFlags);
protected:
CAggregatorDispMgr FAR * _pDispMgr;
VARIANT _vFilter; VARIANT _vHints;
TCHAR _szServerPath[MAX_PATH];
CCredentials _Credentials;
DWORD _dwPort;
CPropertyCache FAR * _pPropertyCache; };
class CLDAPClass : INHERIT_TRACKING, public CCoreADsObject, public IADsClass, public IGetAttributeSyntax, public ISupportErrorInfo, public IADsUmiHelperPrivate { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsClass_METHODS
DECLARE_IGetAttributeSyntax_METHODS
//
// Used for Umi Schema support.
//
STDMETHOD (GetPropertiesHelper)( void **ppPropertyInfo, PDWORD pdwPropCount );
STDMETHOD (GetOriginHelper)( LPCWSTR pszName, BSTR *pbstrOrigin );
/* Constructors, Destructors, .... */ CLDAPClass::CLDAPClass();
CLDAPClass::~CLDAPClass();
static HRESULT CLDAPClass::CreateClass( BSTR bstrParent, LDAP_SCHEMA_HANDLE hSchema, BSTR bstrName, CLASSINFO *pClassInfo, CCredentials& Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CLDAPClass::AllocateClassObject( CCredentials& Credentials, CLDAPClass **ppClass );
HRESULT CLDAPClass::LDAPSetObject( BOOL *pfChanged );
HRESULT CLDAPClass::LDAPCreateObject();
HRESULT CLDAPClass::LDAPRefreshSchema();
HRESULT CLDAPClass::FindModifications( int *pOIDs, DWORD nNumOfOids, LPTSTR pszPropName, LDAPModW ***aMods, DWORD *pdwNumOfMods );
HRESULT CLDAPClass::AddModifyRequest( LDAPModW ***aMods, DWORD *pdwNumOfMods, LPTSTR pszPropName, LPTSTR *aValuesAdd, LPTSTR *aValuesRemove );
HRESULT CLDAPClass::get_NTDSProp_Helper( BSTR bstrName, VARIANT FAR *pvProp );
HRESULT CLDAPClass::GetNTDSSchemaInfo( BOOL fForce );
STDMETHOD(GetInfo)(DWORD dwFlags);
HRESULT CLDAPClass::LoadInterfaceInfo(void);
protected:
CAggregatorDispMgr FAR * _pDispMgr;
CPropertyCache FAR * _pPropertyCache;
/* Properties */ BOOL _fLoadedInterfaceInfo; BSTR _bstrCLSID; BSTR _bstrPrimaryInterface; BSTR _bstrHelpFileName; long _lHelpFileContext;
LDAP_SCHEMA_HANDLE _hSchema; CLASSINFO *_pClassInfo;
/* NT Specific */ BOOL _fNTDS; ADS_LDP *_ld;
LPWSTR _pszLDAPServer; LPWSTR _pszLDAPDn;
CCredentials _Credentials;
DWORD _dwPort; };
class CLDAPProperty : INHERIT_TRACKING, public ISupportErrorInfo, public CCoreADsObject, public IADsProperty, public IGetAttributeSyntax { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsProperty_METHODS
DECLARE_IGetAttributeSyntax_METHODS
/* Constructors, Destructors, ... */ CLDAPProperty::CLDAPProperty();
CLDAPProperty::~CLDAPProperty();
HRESULT CLDAPProperty::LDAPSetObject( BOOL *pfChanged );
HRESULT CLDAPProperty::LDAPCreateObject();
HRESULT CLDAPProperty::LDAPRefreshSchema();
static HRESULT CLDAPProperty::CreateProperty( BSTR bstrParent, LDAP_SCHEMA_HANDLE hSchema, BSTR bstrName, PROPERTYINFO *pPropertyInfo, CCredentials& Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CLDAPProperty::AllocatePropertyObject( CCredentials& Credentials, CLDAPProperty **ppProperty );
STDMETHOD(GetInfo)(DWORD dwFlags);
HRESULT CLDAPProperty::GetNTDSSchemaInfo( BOOL fForce );
protected:
CAggregatorDispMgr FAR * _pDispMgr;
CPropertyCache FAR * _pPropertyCache;
/* Properties */
LDAP_SCHEMA_HANDLE _hSchema; PROPERTYINFO *_pPropertyInfo;
BSTR _bstrSyntax;
/* NT Specific */ BOOL _fNTDS; ADS_LDP *_ld; TCHAR *_pszLDAPPathName;
LPWSTR _pszLDAPServer; LPWSTR _pszLDAPDn;
CCredentials _Credentials;
DWORD _dwPort; };
class CLDAPSyntax : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsSyntax, public IGetAttributeSyntax { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING
/* Other methods */ DECLARE_IDispatch_METHODS
DECLARE_IADs_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADsSyntax_METHODS
DECLARE_IGetAttributeSyntax_METHODS
/* Constructors, Destructors, ... */ CLDAPSyntax::CLDAPSyntax();
CLDAPSyntax::~CLDAPSyntax();
static HRESULT CLDAPSyntax::CreateSyntax( BSTR bstrParent, SYNTAXINFO *pSyntaxInfo, CCredentials& Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj );
static HRESULT CLDAPSyntax::AllocateSyntaxObject( CCredentials& Credentials, CLDAPSyntax **ppSyntax );
protected:
CAggregatorDispMgr FAR * _pDispMgr;
/* Properties */ long _lOleAutoDataType;
CCredentials _Credentials; //
// Used only in Umi land.
//
CPropertyCache FAR * _pPropertyCache; };
extern DWORD g_cLDAPSyntax; extern SYNTAXINFO g_aLDAPSyntax[];
BOOL MapLdapClassToADsClass( LPTSTR *aLdapClasses, int nCount, LPTSTR pszADsClass );
BOOL MapLdapClassToADsClass( LPTSTR pszClassName, LDAP_SCHEMA_HANDLE hSchema, LPTSTR pszADsClass );
|