Método IADsPropertyList::GetPropertyItem (iads.h)
El método IADsPropertyList::GetPropertyItem recupera el elemento que coincide con el nombre de la lista.
Sintaxis
HRESULT GetPropertyItem(
[in] BSTR bstrName,
[in] LONG lnADsType,
[in, out] VARIANT *pVariant
);
Parámetros
[in] bstrName
Contiene el nombre de la propiedad solicitada.
[in] lnADsType
Contiene uno de los valores de enumeración ADSTYPEENUM que determina el tipo de datos que se usará para interpretar la propiedad solicitada. Si el tipo es desconocido, este parámetro se puede establecer en ADSTYPE_UNKNOWN. En el caso de los servidores sin esquema, el usuario debe especificar el tipo .
[in, out] pVariant
Dirección de una variable VARIANT asignada por el autor de la llamada. En la devolución, VARIANT contiene el puntero de interfaz IDispatch del objeto que implementa la interfaz IADsPropertyEntry para el atributo recuperado.
Cualquier memoria asignada para este parámetro debe liberarse con la función VariantClear cuando los datos ya no sean necesarios.
Valor devuelto
Este método admite los valores devueltos HRESULT estándar, incluidos S_OK. Si no se encuentra el elemento de propiedad solicitado, el método devuelve ADS_PROPERTY_NOT_FOUND. Para obtener más información y otros valores devueltos, vea Códigos de error adsi.
Comentarios
La propiedad del objeto IADsPropertyValue devuelto por este método que se puede usar dependerá del tipo especificado en lnADsType. En la tabla siguiente se asigna el tipo de datos a la propiedad IADsPropertyEntry adecuada.
Valor lnADsType | Propiedad IADsPropertyValue que se va a usar |
---|---|
ADSTYPE_INVALID | No 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 | Boolean |
ADSTYPE_INTEGER | Entero |
ADSTYPE_OCTET_STRING | OctetString |
ADSTYPE_UTC_TIME | UTCTime |
ADSTYPE_LARGE_INTEGER | LargeInteger |
ADSTYPE_PROV_SPECIFIC | Usar IADsPropertyValue2::GetObjectProperty (VT_ARRAY | VT_UI1). |
ADSTYPE_OBJECT_CLASS | No disponible. |
ADSTYPE_CASEIGNORE_LIST | Use IADsPropertyValue2::GetObjectProperty (IADsCaseIgnoreList). |
ADSTYPE_OCTET_LIST | Use IADsPropertyValue2::GetObjectProperty (IADsOctetList). |
ADSTYPE_PATH | Use IADsPropertyValue2::GetObjectProperty (IADsPath). |
ADSTYPE_POSTALADDRESS | Use IADsPropertyValue2::GetObjectProperty (IADsPostalAddress). |
ADSTYPE_TIMESTAMP | Use IADsPropertyValue2::GetObjectProperty (IADsTimestamp). |
ADSTYPE_BACKLINK | Use IADsPropertyValue2::GetObjectProperty (IADsBackLink). |
ADSTYPE_TYPEDNAME | Use IADsPropertyValue2::GetObjectProperty (IADsTypedName). |
ADSTYPE_HOLD | Use IADsPropertyValue2::GetObjectProperty (IADsHold). |
ADSTYPE_NETADDRESS | Use IADsPropertyValue2::GetObjectProperty (IADsNetAddress). |
ADSTYPE_REPLICAPOINTER | Use IADsPropertyValue2::GetObjectProperty (IADsReplicaPointer). |
ADSTYPE_FAXNUMBER | Use IADsPropertyValue2::GetObjectProperty (IADsFaxNumber). |
ADSTYPE_EMAIL | Use IADsPropertyValue2::GetObjectProperty (IADsEmail). |
ADSTYPE_NT_SECURITY_DESCRIPTOR | SecurityDescriptor |
ADSTYPE_UNKNOWN | No disponible. |
ADSTYPE_DN_WITH_BINARY | Use IADsPropertyValue2::GetObjectProperty (IADsDNWithBinary). |
ADSTYPE_DN_WITH_STRING | Use IADsPropertyValue2::GetObjectProperty (IADsDNWithString). |
Ejemplos
En el ejemplo de código siguiente se muestra cómo recuperar una entrada de propiedad mediante el método 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
En el ejemplo de código siguiente se muestra cómo recuperar una entrada de propiedad mediante el método GetPropertyItem . Se supone que la interfaz IADsPropertyList se ha recuperado correctamente. Para obtener más información sobre cómo cargar la memoria caché de propiedades, consulte la función de ejemplo GetPropertyCache en 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();
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | iads.h |
Archivo DLL | Activeds.dll |