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 |