| Platform SDK: Active Directory, ADSI, and Directory Services |
The IADsPathname interface is designed for parsing the X.500 and Windows® paths in ADSI. You can use this interface to:
The IADsPathname interface is implemented on a Pathname object. You need to instantiate the Pathname object in order to use the methods defined in the IADsPathname interface. This requirement amounts to calling the CoCreateInstance() function in C++
IADsPathname *pPathname=NULL;
HRESULT hr;
hr = CoCreateInstance(CLSID_Pathname,
NULL,
CLSCTX_INPROC_SERVER,
IID_IADsPathname,
(void**)&pPathname);
You can also invoke the New operator in Visual Basic®:
Dim path as New Pathname
Or you can use the CreateObject function in VBScript, supplying "Pathname" as the ProgID.
Dim path
Set path = CreateObject("Pathname")
The IADsPathname interface exposes the following methods and uses two enumeration types: ADS_SETTYPE_ENUM, and ADS_FORMAT_ENUM.
| IUnknown methods | Description |
|---|---|
| QueryInterface | Returns pointers to supported interfaces. |
| AddRef | Increments reference count. |
| Release | Decrements reference count. |
| IDispatch methods | Description |
|---|---|
| GetTypeInfoCount | Gets the number of type descriptions. |
| GetTypeInfo | Gets a description of object's programmable interface. |
| GetIDsOfNames | Maps name of method or property to DISPID. |
| Invoke | Calls one of the object's methods or gets and sets one of its properties. |
| IADsPathname methods | Description |
|---|---|
| get_EscapedMode | Retrieves the mode for escaping a path. |
| put_EscapedMode | Specifies the mode for escaping a path. |
| Set | Sets an object path with an ADS_SETTYPE_ENUM option. |
| SetDisplayType | Specifies how a path is to be displayed. |
| Retrieve | Retrieves an object path with an ADS_FORMAT_ENUM type. |
| GetNumElements | Gets the number of elements in the path. |
| GetElement | Gets elements stored in the object with its index. |
| GetEscapedElement | Escapes an RDN string and returns the output. |
| AddLeafElement | Adds an element to the end of the path. |
| RemoveLeafElement | Removes the last element from the object. |
| CopyPath | Generates an object with the same path. |
The following Visual Basic® code snippets shows how to create an ADsPathname object.
Dim x as New Pathname x.Set "LDAP", ADS_SETTYPE_PROVIDER
or
x.Set "LDAP://server/dc=domain1,dc=Microsoft,dc=com", ADS_SETTYPE_FULL MsgBox "Path in Windows Format: " & x.Retrieve(ADS_FORMAT_WINDOWS)
The following VBScript/ASP code snippet shows how to create an ADsPathname object.
<%
Dim x
Set x = CreateObject("Pathname")
x.Set "LDAP://server/dc=domain1,dc=Microsoft,dc=com", ADS_SETTYPE_FULL
winPath = x.Retrieve(ADS_FORMAT_WINDOWS)
Response.Write "Path in Windows Format: " & winPath
%>
The following C++ code snippet shows how to create an ADsPathname object.
IADsPathname *GetPathnameObject(LPWSTR adsPath)
{
if(!adsPath) return NULL;
IADsPathname *pPathname=NULL;
HRESULT hr;
hr = CoCreateInstance(CLSID_Pathname,
NULL,
CLSCTX_INPROC_SERVER,
IID_IADsPathname,
(void**)&pPathname);
if(FAILED(hr)) {
if(pPathname) pPathname->Release();
return NULL;
}
pPathname->AddRef();
hr = pPathname->Set(adsPath,ADS_SETTYPE_FULL);
return pPathname;
}
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with DSClient).
Windows 95/98: Requires Windows 95 or later (with DSClient).
Header: Declared in Iads.h.
IADsPathname Property Methods, ADS_FORMAT_ENUM, ADS_SETTYPE_ENUM, CoCreateInstance()