Metodo IADsPropertyList::GetPropertyItem (iads.h)
Il metodo IADsPropertyList::GetPropertyItem recupera l'elemento corrispondente al nome dall'elenco.
Sintassi
HRESULT GetPropertyItem(
[in] BSTR bstrName,
[in] LONG lnADsType,
[in, out] VARIANT *pVariant
);
Parametri
[in] bstrName
Contiene il nome della proprietà richiesta.
[in] lnADsType
Contiene uno dei valori di enumerazione ADSTYPEENUM che determina il tipo di dati da usare per interpretare la proprietà richiesta. Se il tipo è sconosciuto, questo parametro può essere impostato su ADSTYPE_UNKNOWN. Per i server senza schema, l'utente deve specificare il tipo.
[in, out] pVariant
Indirizzo di una variabile VARIANT allocata dal chiamante. In caso di ritorno , variant contiene il puntatore dell'interfaccia IDispatch dell'oggetto che implementa l'interfaccia IADsPropertyEntry per l'attributo recuperato.
Qualsiasi memoria allocata per questo parametro deve essere rilasciata con la funzione VariantClear quando i dati non sono più necessari.
Valore restituito
Questo metodo supporta i valori restituiti HRESULT standard, inclusi i S_OK. Se l'elemento della proprietà richiesto non viene trovato, il metodo restituisce ADS_PROPERTY_NOT_FOUND. Per altre informazioni e altri valori restituiti, vedere Codici di errore ADSI.
Commenti
La proprietà dell'oggetto IADsPropertyValue restituita da questo metodo che può essere usata dipenderà dal tipo specificato in lnADsType. La tabella seguente esegue il mapping del tipo di dati alla proprietà IADsPropertyEntry appropriata.
valore lnADsType | Proprietà IADsPropertyValue da usare |
---|---|
ADSTYPE_INVALID | Non disponibile. |
ADSTYPE_DN_STRING | DNString |
ADSTYPE_CASE_EXACT_STRING | CaseExactString |
ADSTYPE_CASE_IGNORE_STRING | CaseIgnoreString |
ADSTYPE_PRINTABLE_STRING | PrintableString |
ADSTYPE_NUMERIC_STRING | NumericString |
ADSTYPE_BOOLEAN | Boolean |
ADSTYPE_INTEGER | Integer |
ADSTYPE_OCTET_STRING | OctetString |
ADSTYPE_UTC_TIME | UTCTime |
ADSTYPE_LARGE_INTEGER | LargeInteger |
ADSTYPE_PROV_SPECIFIC | Usare IADsPropertyValue2::GetObjectProperty (VT_ARRAY | VT_UI1). |
ADSTYPE_OBJECT_CLASS | Non disponibile. |
ADSTYPE_CASEIGNORE_LIST | Usare IADsPropertyValue2::GetObjectProperty (IADsCaseIgnoreList). |
ADSTYPE_OCTET_LIST | Usare IADsPropertyValue2::GetObjectProperty (IADsOctetList ). |
ADSTYPE_PATH | Usare IADsPropertyValue2::GetObjectProperty (IADsPath). |
ADSTYPE_POSTALADDRESS | Usare IADsPropertyValue2::GetObjectProperty (IADsPostalAddress). |
ADSTYPE_TIMESTAMP | Usare IADsPropertyValue2::GetObjectProperty (IADsTimestamp ). |
ADSTYPE_BACKLINK | Usare IADsPropertyValue2::GetObjectProperty (IADsBackLink ). |
ADSTYPE_TYPEDNAME | Usare IADsPropertyValue2::GetObjectProperty (IADsTypedName ). |
ADSTYPE_HOLD | Usare IADsPropertyValue2::GetObjectProperty (IADsHold ). |
ADSTYPE_NETADDRESS | Usare IADsPropertyValue2::GetObjectProperty (IADsNetAddress ). |
ADSTYPE_REPLICAPOINTER | Usare IADsPropertyValue2::GetObjectProperty (IADsReplicaPointer ). |
ADSTYPE_FAXNUMBER | Usare IADsPropertyValue2::GetObjectProperty (IADsFaxNumber ). |
ADSTYPE_EMAIL | Usare IADsPropertyValue2::GetObjectProperty (IADsEmail ). |
ADSTYPE_NT_SECURITY_DESCRIPTOR | SecurityDescriptor |
ADSTYPE_UNKNOWN | Non disponibile. |
ADSTYPE_DN_WITH_BINARY | Usare IADsPropertyValue2::GetObjectProperty (IADsDNWithBinary ). |
ADSTYPE_DN_WITH_STRING | Usare IADsPropertyValue2::GetObjectProperty (IADsDNWithString ). |
Esempio
Nell'esempio di codice seguente viene illustrato come recuperare una voce di proprietà usando il metodo 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
Nell'esempio di codice seguente viene illustrato come recuperare una voce di proprietà usando il metodo GetPropertyItem . Si presuppone che l'interfaccia IADsPropertyList sia stata recuperata correttamente. Per altre informazioni su come caricare la cache delle proprietà, vedere la funzione di esempio 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();
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | iads.h |
DLL | Activeds.dll |