Directory Services |
The property methods of the IADsPathname interface get or set the EscapedMode properties. For more information, see Interface Property Methods.
Property | Description |
---|---|
EscapedMode
[Visual Basic] [C++] |
Examine or specify how escaped characters are handled in a pathname. For more information and defined options, see ADS_ESCAPE_MODE_ENUM. |
EscapedMode represents a state. You can turn it on or off, by setting it to ADS_ESCAPEDMODE_ON or ADS_ESCAPEDMODE_OFF/ADS_ESCAPEDMODE_OFF_EX. When it is turned on, or off, all subsequent retrievals produce escaped or unescaped path strings.
In ADSI only the IADsPathname is capable of unescaping paths. All other ADSI interfaces always return escaped paths. The default state of EscapedMode is ADS_ESCAPEDMODE_DEFAULT as defined in ADS_ESCAPE_MODE_ENUM.
The following code example shows how to use the EscapedMode property turn on/off escaping of the following three special characters: "=",",", and "/".
Dim path As New Pathname path.Set "CN=joy\=ful\,\/*", ADS_SETTYPE_DN path.EscapedMode = ADS_ESCAPEDMODE_ON MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' All escaped, producing: ' "LDAP://CN=joy\=ful\,\/*" path.EscapedMode = ADS_ESCAPEMODE_OFF MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' Only "/" is unescaped: ' "LDAP://CN=joy\=ful\,/*" path.EscapedMode = ADS_ESCAPEDMODE_OFF_EX MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' All are unescaped: ' "LDAP://CN=joy=ful,/*" path.Set "LDAP://CN=joy\=ful\,\/*", ADS_SETTYPE_FULL path.EscapedMode = ADS_ESCAPEDMODE_ON MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy\=ful\,\/*" path.EscapedMode = ADS_ESCAPEMODE_OFF MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy\=ful\,/*" path.EscapedMode = ADS_ESCAPEMODE_OFF_EX MsgBox path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy=ful,/*"
The following code example shows how to use the EscapedMode property turn on/off escaping of the following three special characters: "=",",", and "/".
<% Dim path const ADS_SETTYPE_FULL = 1 const ADS_SETTYPE_DN = 4 const ADS_FORMAT_WINDOWS = 1 const ADS_ESCAPEDMODE_ON = 2 const ADS_ESCAPEDMODE_OFF = 3 const ADS_ESCAPEDMODE_OFF_EX = 4 Set path = CreateObject("Pathname") path.Set "CN=joy\=ful\,\/*", ADS_SETTYPE_DN path.EscapedMode = ADS_ESCAPEDMODE_ON Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' All escaped, producing: ' "LDAP://CN=joy\=ful\,\/*" path.EscapedMode = ADS_ESCAPEMODE_OFF Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' Only "/" is unescaped: ' "LDAP://CN=joy\=ful\,/*" path.EscapedMode = ADS_ESCAPEDMODE_OFF_EX Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' All are unescaped: ' "LDAP://CN=joy=ful,/*" path.Set "LDAP://CN=joy\=ful\,\/*", ADS_SETTYPE_FULL path.EscapedMode = ADS_ESCAPEDMODE_ON Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy\=ful\,\/*" path.EscapedMode = ADS_ESCAPEMODE_OFF Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy\=ful\,/*" path.EscapedMode = ADS_ESCAPEMODE_OFF_EX Response.Write path.Retrieve(ADS_FORMAT_WINDOWS) ' Produces "LDAP://CN=joy=ful,/*" %>
The following code example shows how to work with the EscapedMode property. Error checking is ignored.
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(CComBSTR("LDAP://CN=joy/ful\/*"), ADS_SETTYPE_FULL); hr = pPathname->put_EscapedMode(ADS_ESCAPEDMODE_OFF); hr = pPathname->Retrieve(ADS_FORMAT_WINDOWS_DN,&bstr); printf("Unescaped path: %S\n",bstr); // Producing "LDAP://CN=joy/ful/*" SysFreeString(bstr); hr = pPathname->put_EscapedMode(ADS_ESCAPEDMODE_ON); hr = pPathname->Retrieve(ADS_FORMAT_WINDOWS_DN,&bstr); printf("Escaped path: %S\n",bstr); // Producing "LDAP://CN=joy/ful\/*" SysFreeString(bstr); // Set the path using ADS_SETTYPE_DN hr = pPathname->Set(CComBSTR("CN=joy/ful\/*"), ADS_SETTYPE_DN); hr = pPathname->put_EscapedMode(ADS_ESCAPEDMODE_OFF); hr = pPathname->Retrieve(ADS_FORMAT_WINDOWS_DN,&bstr); printf("Unescaped path: %S\n",bstr); // Producing "LDAP://CN=joy/ful/*" SysFreeString(bstr); hr = pPathname->put_EscapedMode(ADS_ESCAPEDMODE_ON); hr = pPathname->Retrieve(ADS_FORMAT_WINDOWS_DN,&bstr); printf("Escaped path: %S\n",bstr); // Producing "LDAP://CN=joy\/ful\/*" SysFreeString(bstr); hr = pPathname->Release();
Client: Included in Windows XP and
Windows 2000 Professional.
Server: Included in Windows Server 2003 and
Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension
on Windows NT 4.0 SP6a and Windows 95/98/Me.
Header: Declared in Iads.h.