Compartir a través de


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

Consulte también

Códigos de error adsi

ADSTYPEENUM

IADsPropertyList

Métodos de propiedad IADsPropertyList

IDispatch

VariantClear