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

Weitere Informationen

ADSI-Fehlercodes

ADSTYPEENUM

IADsPropertyList

Methoden der IADsPropertyList-Eigenschaft

IDispatch

VariantClear