//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 2000. // // File: cconnect.hxx // // Contents: Header for Connection Object - object that implements the // IUmiConnection interface. // // History: 03-03-00 AjayR Created. // //---------------------------------------------------------------------------- #ifndef __CCONNECT_H__ #define __CCONNECT_H__ class CLDAPConObject : INHERIT_TRACKING, public IUmiConnection { public: // // IUknown support. // STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; DECLARE_STD_REFCOUNTING // // IUmiConnection Methods. // STDMETHOD(Open)( IN IUmiURL *pURL, IN ULONG uFlags, IN REFIID TargetIID, OUT void **ppvRes ); // IUmiBaseObject Methods (connection inherits from base object). // STDMETHOD(GetLastStatus)( IN ULONG uFlags, OUT ULONG *puSpecificStatus, IN REFIID riid, OUT LPVOID *pStatusObj ); STDMETHOD(GetInterfacePropList)( IN ULONG uFlags, OUT IUmiPropList **pPropList ); // // IUmiPropList Methods (base object inherits from proplist). // STDMETHOD(Put)( IN LPCWSTR pszName, IN ULONG uFlags, OUT UMI_PROPERTY_VALUES *pProp ); STDMETHOD(Get)( IN LPCWSTR pszName, IN ULONG uFlags, OUT UMI_PROPERTY_VALUES **pProp ); STDMETHOD(GetAt)( IN LPCWSTR pszName, IN ULONG uFlags, IN ULONG uBufferLength, OUT LPVOID pExistingMem ); STDMETHOD(GetAs)( IN LPCWSTR pszName, IN ULONG uFlags, IN ULONG uCoercionType, OUT UMI_PROPERTY_VALUES **pProp ); STDMETHOD (Delete)( IN LPCWSTR pszUrl, IN OPTIONAL ULONG uFlags ); STDMETHOD(FreeMemory)( ULONG uReserved, LPVOID pMem ); STDMETHOD(GetProps)( IN LPCWSTR *pszNames, IN ULONG uNameCount, IN ULONG uFlags, OUT UMI_PROPERTY_VALUES **pProps ); STDMETHOD(PutProps)( IN LPCWSTR *pszNames, IN ULONG uNameCount, IN ULONG uFlags, IN UMI_PROPERTY_VALUES *pProps ); STDMETHOD(PutFrom)( IN LPCWSTR pszName, IN ULONG uFlags, IN ULONG uBufferLength, IN LPVOID pExistingMem ); // // Other public methods. // CLDAPConObject:: CLDAPConObject(); CLDAPConObject:: ~CLDAPConObject(); // // Use this to initialize with property cache object. // The ldap handle is optional. If a handle is passed in, then // the connection objects is considered already initialized. // This is to handle the case of someone getting the connection // object after using ADsGetObject say. // static HRESULT CLDAPConObject:: CreateConnectionObject( CLDAPConObject FAR * FAR * ppConnectionObject, PADSLDP pLdapHandle = NULL ); protected: // // These are internal methods. // PADSLDP CLDAPConObject::GetLdapHandle() { return _pLdapHandle; } BOOL CLDAPConObject::IsConnected() { return _fConnected; } void SetLastStatus(ULONG ulErrorStatus) { _ulErrorStatus = ulErrorStatus; } protected: CPropertyManager * _pPropMgr; // used to handle GetInterfacePropList. BOOL _fConnected; // indicates if we are already connected. PADSLDP _pLdapHandle; // Handle to the ldap connection. CCredentials *_pCredentials; // Holds credentials. ULONG _ulErrorStatus; }; #endif // __CCONNECT_H__