IADsPathname 屬性方法
IADsPathname介面的屬性方法會取得或設定EscapedMode屬性。 如需詳細資訊,請參閱 介面屬性方法。
屬性
-
EscapedMode
-
-
存取類型:讀取/寫入
-
腳本資料類型: Long
-
// C++ method syntax HRESULT get_EscapedMode( [out] long* retval ); HRESULT get_EscapedMode( [in] long* lnEscapedMode );
檢查或指定在 pathname 中如何處理逸出字元。 如需詳細資訊和定義的選項,請參閱 ADS_ESCAPE_MODE_ENUM。
-
備註
EscapedMode 代表狀態。 您可以將它設定為 [ADS_ESCAPEDMODE_ON] 或 [ADS_ESCAPEDMODE_OFF/ADS_ESCAPEDMODE_OFF_EX],將其開啟或關閉。 開啟或關閉時,所有後續擷取都會產生逸出或未逸出的路徑字串。
在 ADSI 中,只有 IADsPathname 能夠取消逸出路徑。 所有其他 ADSI 介面一律會傳回逸出的路徑。 EscapedMode的預設狀態ADS_ESCAPEDMODE_DEFAULT,如ADS_ESCAPE_MODE_ENUM中所定義。
範例
下列程式碼範例示範如何使用 EscapedMode 屬性開啟/關閉下列三個特殊字元的逸出:「=」,「,」 和 「/」。
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,/*"
下列程式碼範例示範如何使用 EscapedMode 屬性開啟/關閉下列三個特殊字元的逸出:「=」,「,」 和 「/」。
<%
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,/*"
%>
下列程式碼範例示範如何使用 EscapedMode 屬性。 忽略錯誤檢查。
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();
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
DLL |
|
IID |
IID_IADsPathname定義為 D592AED4-F420-11D0-A36E-00C04FB950DC |