IADs::GetEx-Methode (iads.h)
Die IADs::GetEx-Methode ruft aus dem Eigenschaftscache eigenschaftenwerte eines bestimmten Attributs ab. Die zurückgegebenen Eigenschaftswerte können einwertig oder multiwertig sein. Im Gegensatz zur IADs::Get-Methode werden die Eigenschaftswerte als Variant-Array von VARIANT oder ein Variant-Array von Bytes für binäre Daten zurückgegeben. Eine einzelwertige 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 eine VARIANT , die 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 IADs::Get and IADs::GetEx-Methoden geben eine andere Variantenstruktur für einen wertigen Eigenschaftswert zurück. Wenn die Eigenschaft eine Zeichenfolge ist, gibt IADs::Get eine Variante der Zeichenfolge (VT_BSTR) zurück, während IADs::GetEx ein Variant-Array einer VARIANT-Typzeichenfolge mit einem einzelnen Element zurückgibt. Wenn Sie also nicht sicher sind, dass 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, möchten Sie möglicherweise IADs::GetEx verwenden, um eine Eigenschaft abzurufen, wenn Sie nicht sicher sind, ob es einzelne oder mehrere Werte hat. 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 gegen einen nicht initialisierten Eigenschaftscache auf. Weitere Informationen zu impliziten und expliziten Aufrufen von IADs finden Sie unter IADs::GetInfo.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie IADs verwendet werden::GetEx zum Abrufen von Objekteigenschaften.
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
Im folgenden Codebeispiel wird gezeigt, 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 Werte der "homePhone"-Eigenschaft 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 |