IADsPropertyList::GetPropertyItem-Methode (iads.h)
Die IADsPropertyList::GetPropertyItem-Methode ruft das Element ab, das dem Namen entspricht.
Syntax
HRESULT GetPropertyItem(
[in] BSTR bstrName,
[in] LONG lnADsType,
[in, out] VARIANT *pVariant
);
Parameter
[in] bstrName
Enthält den Namen der angeforderten Eigenschaft.
[in] lnADsType
Enthält einen der ADSTYPEENUM-Enumerationswerte , der den Datentyp bestimmt, der bei der Interpretation der angeforderten Eigenschaft verwendet werden soll. Wenn der Typ unbekannt ist, kann dieser Parameter auf ADSTYPE_UNKNOWN festgelegt werden. Bei schemalosen Servern muss der Benutzer den Typ angeben.
[in, out] pVariant
Adresse einer vom Aufrufer zugewiesenen VARIANT-Variablen . Bei der Rückgabe enthält variant den IDispatch-Schnittstellenzeiger des -Objekts, das die IADsPropertyEntry-Schnittstelle für das abgerufene Attribut implementiert.
Jeder für diesen Parameter zugewiesene Arbeitsspeicher muss mit der VariantClear-Funktion freigegeben werden, wenn die Daten nicht mehr benötigt werden.
Rückgabewert
Diese Methode unterstützt die HRESULT-Standardrückgabewerte , einschließlich S_OK. Wenn das angeforderte Eigenschaftselement nicht gefunden wird, gibt die Methode ADS_PROPERTY_NOT_FOUND zurück. Weitere Informationen und andere Rückgabewerte finden Sie unter ADSI-Fehlercodes.
Hinweise
Die Eigenschaft des IADsPropertyValue-Objekts , das von dieser Methode zurückgegeben wird und verwendet werden kann, hängt von dem in lnADsType angegebenen Typ ab. In der folgenden Tabelle wird der Datentyp der entsprechenden IADsPropertyEntry-Eigenschaft zugeordnet.
lnADsType-Wert | Zu verwendende IADsPropertyValue-Eigenschaft |
---|---|
ADSTYPE_INVALID | Nicht verfügbar. |
ADSTYPE_DN_STRING | DNString |
ADSTYPE_CASE_EXACT_STRING | CaseExactString |
ADSTYPE_CASE_IGNORE_STRING | CaseIgnoreString |
ADSTYPE_PRINTABLE_STRING | PrintableString |
ADSTYPE_NUMERIC_STRING | NumericString |
ADSTYPE_BOOLEAN | Boolescher Wert |
ADSTYPE_INTEGER | Integer |
ADSTYPE_OCTET_STRING | OctetString |
ADSTYPE_UTC_TIME | UTCTime |
ADSTYPE_LARGE_INTEGER | LargeInteger |
ADSTYPE_PROV_SPECIFIC | Verwenden von IADsPropertyValue2::GetObjectProperty (VT_ARRAY | VT_UI1). |
ADSTYPE_OBJECT_CLASS | Nicht verfügbar. |
ADSTYPE_CASEIGNORE_LIST | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsCaseIgnoreList). |
ADSTYPE_OCTET_LIST | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsOctetList). |
ADSTYPE_PATH | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsPath). |
ADSTYPE_POSTALADDRESS | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsPostalAddress). |
ADSTYPE_TIMESTAMP | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsTimestamp). |
ADSTYPE_BACKLINK | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsBackLink). |
ADSTYPE_TYPEDNAME | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsTypedName). |
ADSTYPE_HOLD | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsHold). |
ADSTYPE_NETADDRESS | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsNetAddress). |
ADSTYPE_REPLICAPOINTER | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsReplicaPointer). |
ADSTYPE_FAXNUMBER | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsFaxNumber). |
ADSTYPE_EMAIL | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsEmail). |
ADSTYPE_NT_SECURITY_DESCRIPTOR | SecurityDescriptor |
ADSTYPE_UNKNOWN | Nicht verfügbar. |
ADSTYPE_DN_WITH_BINARY | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsDNWithBinary). |
ADSTYPE_DN_WITH_STRING | Verwenden Sie IADsPropertyValue2::GetObjectProperty (IADsDNWithString). |
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie sie einen Eigenschaftseintrag mithilfe der GetPropertyItem-Methode abrufen.
Const ADSTYPE_CASE_IGNORE_STRING = 3
Dim propList As IADsPropertyList
Dim propEntry As IADsPropertyEntry
Dim propVal As IADsPropertyValue
Set propList = GetObject("LDAP://dc01/DC=Fabrikam,DC=com")
propList.GetInfo
Set propEntry = propList.GetPropertyItem("dc", ADSTYPE_CASE_IGNORE_STRING)
For Each v In propEntry.Values
Set propVal = v
' Use the CaseIgnoreString property because the ADSTYPE_CASE_IGNORE_STRING
' type was requested in GetPropertyItem.
Debug.Print propVal.CaseIgnoreString
Next
Set propList = Nothing
Set propEntry = Nothing
Set propVal = Nothing
Im folgenden Codebeispiel wird gezeigt, wie sie einen Eigenschaftseintrag mithilfe der GetPropertyItem-Methode abrufen. Es wird davon ausgegangen, dass die IADsPropertyList-Schnittstelle ordnungsgemäß abgerufen wurde. Weitere Informationen zum Laden des Eigenschaftencaches finden Sie in der Beispielfunktion GetPropertyCache in IADsPropertyList.
#include <activeds.h>
#include <stdio.h>
/////////////////////////////////////////////////////////
// Function to retrieve a specified property entry
// using the IADsPropertyList::GetPropertyItem method.
/////////////////////////////////////////////////////////
IADsPropertyEntry *GetPropertyItem(
IADsPropertyList *pList,
BSTR entryName,
long entryType)
{
IADsPropertyEntry *pEntry;
VARIANT var;
VariantInit(&var);
if(!pList || !entryName)
{
_tprintf("Invalid argument...");
return NULL;
}
// Get a property entry.
hr = pList->GetPropertyItem(entryName, entryType, &var);
hr = V_DISPATCH(&var)->QueryInterface(IID_IADsPropertyEntry,
(void**)&pEntry);
VariantClear(&var);
return pEntry;
}
///////////////////////////////////////////////////////
// Examine a property entry.
///////////////////////////////////////////////////////
IADsPropertyList *pList = NULL;
IADsPropertyEntry *pEntry = NULL;
pList = GetPropertyCache(L"LDAP://dc01/DC=Fabrikam,DC=COM");
if(pList)
{
pEntry = GetPropertyItem(pList, L"dc", ADSTYPE_CASE_IGNORE_STRING);
}
if(pEntry)
{
BSTR nm;
HRESULT hr = pEntry->get_Name(&nm);
if(SUCCEEDED(hr))
{
printf("Property name = %S\n",nm);
SysFreeString(nm);
}
}
if(pList)
pList->Release();
if(pEntry)
pEntry->Release();
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
DLL | Activeds.dll |