|
|
class CLDAPNamespace;
class CLDAPNamespace : INHERIT_TRACKING, public CCoreADsObject, public ISupportErrorInfo, public IADsContainer, public IADs, public IADsOpenDSObject, public IADsPathnameProvider { public:
/* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
DECLARE_STD_REFCOUNTING
DECLARE_IDispatch_METHODS
DECLARE_ISupportErrorInfo_METHODS
DECLARE_IADs_METHODS
DECLARE_IADsContainer_METHODS
DECLARE_IADsOpenDSObject_METHODS
CLDAPNamespace::CLDAPNamespace();
CLDAPNamespace::~CLDAPNamespace();
STDMETHOD(ParsePath)(THIS_ BSTR bstrPath, DWORD dwType, PPATH_OBJECTINFO pObjectInfo); STDMETHOD(ConstructPath)(THIS_ PPATH_OBJECTINFO pObjectInfo, DWORD dwType, DWORD dwFlag, DWORD dwEscapedMode, BSTR *pbstrPath); static HRESULT CLDAPNamespace::CreateNamespace( BSTR Parent, BSTR NamespaceName, CCredentials& Credentials, DWORD dwObjectState, REFIID riid, void **ppvObj ); static HRESULT CLDAPNamespace::SetObjInfoComponents(OBJECTINFO *pObjectInfo, PATH_OBJECTINFO *pObjectInfoTarget);
static void CLDAPNamespace::FreeObjInfoComponents( PATH_OBJECTINFO *pObjectInfo );
static HRESULT CLDAPNamespace::AllocateNamespaceObject( CCredentials& Credentials, CLDAPNamespace ** ppNamespace ); void CLDAPNamespace::SetComponent( LPWSTR szReturn, DWORD cComponents, DWORD dwEscaped );
HRESULT CLDAPNamespace::SetComponents( LPWSTR szReturn, BOOLEAN fIsWindowsPath, LPWSTR chSeparator, DWORD dwType, DWORD dwEscaped ); STDMETHODIMP CLDAPNamespace::GetEscapedElement( LONG lnReserved, BSTR bstrInStr, BSTR* pbstrOutStr );
protected:
VARIANT _vFilter;
CAggregatorDispMgr *_pDispMgr;
CCredentials _Credentials; PPATH_OBJECTINFO _pObjectInfo; // PathCracker pathinfo
BOOLEAN _fNamingAttribute; // PathCracker naming attribute
};
enum { ADS_COMPONENT_LEAF, ADS_COMPONENT_DN, ADS_COMPONENT_PARENT };
BOOL NeedsEscaping (WCHAR c); WCHAR * EscapedVersion (WCHAR c); HRESULT HelperEscapeRDN (IN BSTR bstrIn,OUT BSTR * pbstrOut);
|