IADs::GetEx-Methode (iads.h)
Die IADs::GetEx-Methode ruft aus dem Eigenschaftencache Eigenschaftswerte eines bestimmten Attributs ab. Die zurückgegebenen Eigenschaftswerte können ein- oder mehrwertig sein. Im Gegensatz zur IADs::Get-Methode werden die Eigenschaftswerte als Variant-Array von VARIANT oder als Variant-Array von Bytes für Binärdaten zurückgegeben. Eine einwertige Eigenschaft wird dann als Array eines einzelnen Elements dargestellt.
Syntax
HRESULT GetEx(
[in] BSTR bstrName,
[out] VARIANT *pvProp
);
Parameter
[in] bstrName
Enthält einen BSTR , der den Eigenschaftennamen angibt.
[out] pvProp
Zeiger auf einen VARIANT-Wert , der den Wert oder die Werte der Eigenschaft empfängt.
Rückgabewert
Diese Methode unterstützt die Standardrückgabewerte sowie die Rückgabewerte, die in der folgenden Liste aufgeführt sind.
Weitere Informationen finden Sie unter ADSI-Fehlercodes.
Hinweise
Die Methoden IADs::Get und IADs::GetEx geben eine andere Variantenstruktur für einen einwertigen Eigenschaftswert zurück. Wenn es sich bei der Eigenschaft um eine Zeichenfolge handelt, gibt IADs::Get eine Variante der Zeichenfolge (VT_BSTR) zurück, während IADs::GetEx ein Variantenarray einer VARIANT-Typzeichenfolge mit einem einzelnen Element zurückgibt. Wenn Sie also nicht sicher sind, ob ein mehrwertiges Attribut einen einzelnen Wert oder mehrere Werte zurückgibt, verwenden Sie IADs::GetEx. Da Sie die Datenstrukturen des Ergebnisses nicht überprüfen müssen, sollten Sie IADs::GetEx verwenden, um eine Eigenschaft abzurufen, wenn Sie nicht sicher sind, ob sie über einzelne oder mehrere Werte verfügt. In der folgenden Liste werden die beiden Methoden verglichen.
IADs::Version abrufen | IADs::GetEx-Version |
---|---|
|
|
Wie die IADs::Get-Methode ruft IADs::GetEx implizit IADs::GetInfo für einen nicht initialisierten Eigenschaftencache auf. Weitere Informationen zu impliziten und expliziten Aufrufen von IADs::GetInfo finden Sie unter IADs::GetInfo.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie IADs::GetEx zum Abrufen von Objekteigenschaften verwenden.
Dim x As IADs
On Error GoTo ErrTest:
Set x = GetObject("LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com")
' Single value property.
Debug.Print "Home Phone Number is: "
phoneNumber = x.GetEx(""homePhone")
For Each homeNum in phoneNumber
Debug.Print homeNum
Next
' Multiple value property.
Debug.Print "Other Phone Numbers are: "
otherNumbers = x.GetEx("otherHomePhone")
For Each homeNum In otherNumbers
Debug.Print homeNum
Next
Exit Sub
ErrTest:
Debug.Print Hex(Err.Number)
Set x = Nothing
Das folgende Codebeispiel zeigt, wie Werte der optionalen Eigenschaften eines Objekts mithilfe der IADs::Get-Methode abgerufen werden.
<HTML>
<head><title></title></head>
<body>
<%
Dim x
On Error Resume Next
Set x = GetObject("WinNT://Fabrikam/Administrator")
Response.Write "Object Name: " & x.Name & "<br>"
Response.Write "Object Class: " & x.Class & "<br>"
' Get the optional property values for this object.
Set cls = GetObject(x.Schema)
For Each op In cls.OptionalProperties
vals = obj.GetEx(op)
if err.Number = 0 then
Response.Write "Optional Property: & op & "="
for each v in vals
Response.Write v & " "
next
Response.Write "<br>"
end if
Next
%>
</body>
</html>
Im folgenden Codebeispiel werden die Eigenschaftswerte "homePhone" mithilfe von IADs::GetEx abgerufen.
IADs *pADs = NULL;
hr = ADsGetObject(L"LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=Com", IID_IADs, (void**) &pADs );
if ( !SUCCEEDED(hr) ) { return hr;}
hr = pADs->GetEx(CComBSTR("homePhone"), &var);
if ( SUCCEEDED(hr) )
{
LONG lstart, lend;
SAFEARRAY *sa = V_ARRAY( &var );
VARIANT varItem;
// Get the lower and upper bound.
hr = SafeArrayGetLBound( sa, 1, &lstart );
hr = SafeArrayGetUBound( sa, 1, &lend );
// Iterate and print the content.
VariantInit(&varItem);
printf("Getting Home Phone using IADs::Get.\n");
for ( long idx=lstart; idx <= lend; idx++ )
{
hr = SafeArrayGetElement( sa, &idx, &varItem );
printf("%S ", V_BSTR(&varItem));
VariantClear(&varItem);
}
printf("\n");
VariantClear(&var);
}
// Cleanup.
if ( pADs )
{
pADs->Release();
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
DLL | Activeds.dll |