Compartir a través de


Métodos de propiedad IADsPropertyValue

Los métodos de propiedad de la interfaz IADsPropertyValue proporcionan acceso a las propiedades descritas en la tabla siguiente. Para obtener más información, vea Interface Property Methods.

Propiedades

ADsType

Tipo de datos del valor de la propiedad, tomado de la enumeración ADSTYPEENUM , de la propiedad value.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: LONG

// C++ method syntax
HRESULT get_ADsType(
  [out] LONG* ADsType
);
HRESULT put_ADsType(
  [in] LONG ADsType
);

Boolean

Valor booleano.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: LONG

// C++ method syntax
HRESULT get_Boolean(
  [out] LONG* lnBoolean
);
HRESULT put_Boolean(
  [in] LONG lnBoolean
);

CaseExactString

Cadena que se va a interpretar. Distingue mayúsculas de minúsculas.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: BSTR

// C++ method syntax
HRESULT get_CaseExactString(
  [out] BSTR* bstrCaseExactString
);
HRESULT put_CaseExactString(
  [in] BSTR bstrCaseExactString
);

CaseIgnoreString

Cadena que se va a interpretar. No hay distinción de mayúsculas y minúsculas.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: BSTR

// C++ method syntax
HRESULT get_CaseIgnoreString(
  [out] BSTR* bstrCaseIgnoreString
);
HRESULT put_CaseIgnoreString(
  [in] BSTR bstrCaseIgnoreString
);

DNString

Cadena que identifica el nombre distintivo (ruta de acceso) de un objeto de valor de servicio de directorio.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: BSTR

// C++ method syntax
HRESULT get_DNString(
  [out] BSTR* bstrDNString
);
HRESULT put_DNString(
  [in] BSTR bstrDNString
);

Entero

Valor entero.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: LONG

// C++ method syntax
HRESULT get_Integer(
  [out] LONG* lnInteger
);
HRESULT put_Integer(
  [in] LONG lnInteger
);

LargeInteger

Puntero a la interfaz IDispatch del objeto que implementa IADsLargeInteger para este valor.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: IDispatch

// C++ method syntax
HRESULT get_LargeInteger(
  [out] IDispatch** ppLargeInteger
);
HRESULT put_LargeInteger(
  [in] IDispatch* pLargeInteger
);

NumericString

Texto que se va a interpretar. Tipo numérico.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: BSTR

// C++ method syntax
HRESULT get_NumericString(
  [out] BSTR* bstrNumericString
);
HRESULT put_NumericString(
  [in] BSTR bstrNumericString
);

OctetString

Matriz variant de caracteres de un byte.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: VARIANT

// C++ method syntax
HRESULT get_OctetString(
  [in] VARIANT* vOctetString
);
HRESULT put_OctetString(
  [in] VARIANT* vOctetString
);

PrintableString

Mostrar o imprimir cadena.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: BSTR

// C++ method syntax
HRESULT get_PrintableString(
  [out] BSTR* bstrPrintableString
);
HRESULT put_PrintableString(
  [in] BSTR bstrPrintableString
);

SecurityDescriptor

Puntero a la interfaz IDispatch del objeto que implementa IADsSecurityDescriptor para este valor.

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: IDispatch

// C++ method syntax
HRESULT get_SecurityDescriptor(
  [out] IDispatch** ppSecurityDescriptor
);
HRESULT put_SecurityDescriptor(
  [in] IDispatch* pSecurityDescriptor
);

UTCTime

Fecha del tipo de VT_DATE expresado en formato hora universal coordinada (UTC).

Tipo de acceso: lectura/escritura

Tipo de datos de scripting: DATE

// C++ method syntax
HRESULT get_UTCTime(
  [out] DATE* daUTCTime
);
HRESULT put_UTCTime(
  [in] DATE daUTCTime
);

Comentarios

Las propiedades IADsPropertyValue solo establecerán o recuperarán un valor de propiedad del tipo especificado. Por ejemplo, la propiedad CaseIgnoreString en un atributo de tipo ADSTYPE_DN_STRING, como el atributo distinguishedName , producirá un error. La propiedad CaseIgnoreString solo funcionará en atributos de tipo ADS_CASE_IGNORE_STRING. En la tabla siguiente se asigna el valor ADSTYPEENUM a la propiedad IADsPropertyValue correspondiente que se puede usar para tener acceso a ese tipo de atributo. Si un valor ADSTYPEENUM no aparece en esta tabla, no está disponible en la interfaz IADsPropertyValue . La interfaz IADsPropertyValue2 debe usarse para obtener datos en los otros formatos.

Valor ADSTYPEENUM PROPIEDAD IADsPropertyValue
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_NT_SECURITY_DESCRIPTOR SecurityDescriptor

Ejemplos

En el ejemplo de código siguiente se muestra cómo recuperar una propiedad de la lista de propiedades.

Dim propList As IADsPropertyList
Dim propEntry As IADsPropertyEntry
Dim propVal As IADsPropertyValue

On Error GoTo Cleanup
 
' Retrieve the property list.
Set propList = GetObject("LDAP://dc01/DC=Fabrikam,DC=com")
propList.GetInfo
 
' Retrieve a property entry. If you are certain of the property type,
' replace ADSTYPE_UNKNOWN with the actual property type.
Set propEntry = propList.GetPropertyItem("description", ADSTYPE_UNKNOWN)
 
' Print the property entry values.
For Each v In propEntry.Values
    Set propVal = v
    Select Case propVal.ADsType
        Case ADSTYPE_CASE_EXACT_STRING
            Debug.Print propVal.CaseExactString
        Case ADSTYPE_CASE_IGNORE_STRING
            Debug.Print propVal.CaseIgnoreString
        Case Else
            Debug.Print "Unable to handle a property of type: " & propVal.ADsType
    End Select
    
Next

Cleanup:
    If (Err.Number<>0) Then
       Debug.Print "An error has occurred. " & Err.Number
    End If
    Set propList = Nothing
    Set propEntry = Nothing
    Set propVal = Nothing

En el código siguiente se muestra cómo usar IADsPropertyValue::get_CaseIgnoreString para recuperar el valor de la propiedad description de una lista de propiedades.

#include <activeds.h>
#include <stdio.h>
 
IADsPropertyList *pList = NULL;
IADsPropertyEntry *pEntry = NULL;
IADsPropertyValue *pVal = NULL;
IADs *pObj = NULL;
VARIANT var, varItem;
BSTR valStr;
IEnumVARIANT *pEnum = NULL;
LONG lstart = 0;
LONG lend = 0;
LONG lADsType = ADSTYPE_UNKNOWN;
 
VariantInit(&var);
VariantInit(&varItem);
 
// Bind to the directory object.
HRESULT hr = ADsGetObject(L"LDAP://dc01/DC=Fabrikam,DC=com",
                          IID_IADsPropertyList,
                          (void**)&pList);

if(FAILED(hr)){goto Cleanup;}

// Initialize the property cache.
hr = pList->QueryInterface(IID_IADs,(void**)&pObj);
if(FAILED(hr)){goto Cleanup;}

pObj->GetInfo();
pObj->Release();
 
// Retrieve the property entry.
hr = pList->GetPropertyItem(CComBSTR("description"), ADSTYPE_CASE_IGNORE_STRING, &var);
pList->Release();
if(FAILED(hr)){goto Cleanup;}

hr = V_DISPATCH(&var)->QueryInterface(IID_IADsPropertyEntry,
                                      (void**)&pEntry);
VariantClear(&var);
if(FAILED(hr)){goto Cleanup;}
 
// Retrieve the value array of the property entry.
hr = pEntry->get_Values(&var);
if(FAILED(hr)){goto Cleanup;}

SAFEARRAY *sa = V_ARRAY( &var );
 
// Retrieve the lower and upper bound. Iterate and print the values.
hr = SafeArrayGetLBound( sa, 1, &lstart );
hr = SafeArrayGetUBound( sa, 1, &lend );
printf(" Property value(s) = ");
for ( long idx=lstart; idx < lend+1; idx++ )    {
    hr = SafeArrayGetElement( sa, &idx, &varItem );
    hr = V_DISPATCH(&varItem)->QueryInterface(IID_IADsPropertyValue,
                                              (void**)&pVal);
    if(FAILED(hr)){goto Cleanup;}

    pVal->get_ADsType(&lADsType);

    switch(lADsType)
    {
        case ADSTYPE_CASE_IGNORE_STRING:
        {
            hr = pVal->get_CaseIgnoreString(&valStr);
            break;
        }
        case ADSTYPE_CASE_EXACT_STRING:
        {
            hr = pVal->get_CaseExactString(&valStr);
            break;
        }
        default:
        {
            valStr = SysAllocString(L"Unable to handle a property of this type");
            break;
        }
    }

    if(FAILED(hr)){goto Cleanup;}
    printf(" %S ", valStr);
    SysFreeString(valStr);
    VariantClear(&varItem);
}
printf("\n");

Cleanup:
    if(pList)
        pList = NULL;

    if(pEntry)
        pEntry = NULL;

    if(pVal)
        pVal = NULL;

    if(pObj)
        pObj = NULL;

    if(pEnum)
        pEnum = NULL;

    SysFreeString(valStr);
    VariantClear(&varItem);
    VariantClear(&var);

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Iads.h
Archivo DLL
Activeds.dll
IID
IID_IADsPropertyValue se define como 79FA9AD0-A97C-11D0-8534-00C04FD8D503

Consulte también

IADsPropertyValue

ADSTYPEENUM

IADsPropertyEntry

IADsPropertyList

IADsPropertyValue2

IADsSecurityDescriptor

IDispatch