72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
|
#define MAXCOMPONENTS 64
|
||
|
|
||
|
class CPathname : INHERIT_TRACKING,
|
||
|
public ISupportErrorInfo,
|
||
|
public IADsPathname
|
||
|
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
|
||
|
|
||
|
DECLARE_STD_REFCOUNTING
|
||
|
|
||
|
DECLARE_IDispatch_METHODS
|
||
|
|
||
|
DECLARE_ISupportErrorInfo_METHODS
|
||
|
|
||
|
DECLARE_IADsPathname_METHODS
|
||
|
|
||
|
CPathname::CPathname();
|
||
|
|
||
|
CPathname::~CPathname();
|
||
|
|
||
|
HRESULT SetComponent(DWORD cComponents, BSTR *pbstrElement);
|
||
|
|
||
|
HRESULT
|
||
|
CPathname::SetAll(BSTR bstrADsPath);
|
||
|
|
||
|
HRESULT
|
||
|
CPathname::GetNamespace(
|
||
|
BSTR bstrADsPath,
|
||
|
PWSTR *ppszName
|
||
|
);
|
||
|
|
||
|
static
|
||
|
HRESULT
|
||
|
CPathname::CreatePathname(
|
||
|
REFIID riid,
|
||
|
void **ppvObj
|
||
|
);
|
||
|
|
||
|
static
|
||
|
HRESULT
|
||
|
CPathname::AllocatePathnameObject(
|
||
|
CPathname ** ppPathname
|
||
|
);
|
||
|
|
||
|
static
|
||
|
void
|
||
|
FreeObjInfoComponents(PATH_OBJECTINFO *pObjectInfo);
|
||
|
|
||
|
static
|
||
|
void
|
||
|
CPathname::FreePathInfo(PPATH_OBJECTINFO pPathObjectInfo);
|
||
|
|
||
|
private:
|
||
|
IADsPathnameProvider *m_pPathnameProvider; // pointer to the provider
|
||
|
// that we have initialized
|
||
|
PATH_OBJECTINFO _PathObjectInfo; // Internal storage for cracked
|
||
|
// components
|
||
|
BOOLEAN _fNamingAttribute; // flag indicating the presense
|
||
|
// of the naming attribute
|
||
|
DWORD _dwEscaped; // flag indicating the result
|
||
|
// should be escaped or not
|
||
|
|
||
|
protected:
|
||
|
|
||
|
CDispatchMgr FAR * _pDispMgr;
|
||
|
|
||
|
};
|
||
|
|