Partager via


IADsPropertyList ::GetPropertyItem, méthode (iads.h)

La méthode IADsPropertyList ::GetPropertyItem récupère l’élément qui correspond au nom de la liste.

Syntaxe

HRESULT GetPropertyItem(
  [in]      BSTR    bstrName,
  [in]      LONG    lnADsType,
  [in, out] VARIANT *pVariant
);

Paramètres

[in] bstrName

Contient le nom de la propriété demandée.

[in] lnADsType

Contient l’une des valeurs d’énumération ADSTYPEENUM qui détermine le type de données à utiliser pour interpréter la propriété demandée. Si le type est inconnu, ce paramètre peut être défini sur ADSTYPE_UNKNOWN. Pour les serveurs sans schéma, l’utilisateur doit spécifier le type.

[in, out] pVariant

Adresse d’une variable VARIANT allouée par l’appelant. En retour, le VARIANT contient le pointeur d’interface IDispatch de l’objet qui implémente l’interface IADsPropertyEntry pour l’attribut récupéré.

Toute mémoire allouée pour ce paramètre doit être libérée avec la fonction VariantClear lorsque les données ne sont plus nécessaires.

Valeur retournée

Cette méthode prend en charge les valeurs de retour HRESULT standard, y compris les S_OK. Si l’élément de propriété demandé est introuvable, la méthode retourne ADS_PROPERTY_NOT_FOUND. Pour plus d’informations et d’autres valeurs de retour, consultez Codes d’erreur ADSI.

Remarques

La propriété de l’objet IADsPropertyValue retourné par cette méthode qui peut être utilisée dépend du type spécifié dans lnADsType. Le tableau suivant mappe le type de données à la propriété IADsPropertyEntry appropriée.

valeur lnADsType Propriété IADsPropertyValue à utiliser
ADSTYPE_INVALID Non disponible.
ADSTYPE_DN_STRING DNString
ADSTYPE_CASE_EXACT_STRING CaseExactString
ADSTYPE_CASE_IGNORE_STRING CaseIgnoreString
ADSTYPE_PRINTABLE_STRING PrintableString
ADSTYPE_NUMERIC_STRING NumericString
ADSTYPE_BOOLEAN Booléen
ADSTYPE_INTEGER Integer
ADSTYPE_OCTET_STRING OctetString
ADSTYPE_UTC_TIME UTCTime
ADSTYPE_LARGE_INTEGER LargeInteger
ADSTYPE_PROV_SPECIFIC Utiliser IADsPropertyValue2 ::GetObjectProperty (VT_ARRAY | VT_UI1).
ADSTYPE_OBJECT_CLASS Non disponible.
ADSTYPE_CASEIGNORE_LIST Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsCaseIgnoreList).
ADSTYPE_OCTET_LIST Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsOctetList).
ADSTYPE_PATH Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsPath).
ADSTYPE_POSTALADDRESS Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsPostalAddress).
ADSTYPE_TIMESTAMP Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsTimestamp).
ADSTYPE_BACKLINK Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsBackLink).
ADSTYPE_TYPEDNAME Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsTypedName).
ADSTYPE_HOLD Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsHold).
ADSTYPE_NETADDRESS Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsNetAddress).
ADSTYPE_REPLICAPOINTER Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsReplicaPointer).
ADSTYPE_FAXNUMBER Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsFaxNumber).
ADSTYPE_EMAIL Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsEmail).
ADSTYPE_NT_SECURITY_DESCRIPTOR SecurityDescriptor
ADSTYPE_UNKNOWN Non disponible.
ADSTYPE_DN_WITH_BINARY Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsDNWithBinary).
ADSTYPE_DN_WITH_STRING Utilisez IADsPropertyValue2 ::GetObjectProperty (IADsDNWithString).
 

Exemples

L’exemple de code suivant montre comment récupérer une entrée de propriété à l’aide de la méthode GetPropertyItem .

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

L’exemple de code suivant montre comment récupérer une entrée de propriété à l’aide de la méthode GetPropertyItem . Il suppose que l’interface IADsPropertyList a été correctement récupérée. Pour plus d’informations sur le chargement du cache de propriétés, consultez l’exemple de fonction GetPropertyCache dans 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();

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

Codes d’erreur ADSI

ADSTYPEENUM

IADsPropertyList

IADsPropertyList, méthodes de propriété

IDispatch

VariantClear