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.
71 lines
1.8 KiB
71 lines
1.8 KiB
#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;
|
|
|
|
};
|
|
|