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 acceso: lectura/escritura
-
Tipo de datos de scripting: LONG
-
// C++ method syntax HRESULT get_ADsType( [out] LONG* ADsType ); HRESULT put_ADsType( [in] LONG ADsType );
Tipo de datos del valor de la propiedad, tomado de la enumeración ADSTYPEENUM , de la propiedad value.
-
-
Boolean
-
-
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 );
Valor booleano.
-
-
CaseExactString
-
-
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 );
Cadena que se va a interpretar. Distingue mayúsculas de minúsculas.
-
-
CaseIgnoreString
-
-
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 );
Cadena que se va a interpretar. No hay distinción de mayúsculas y minúsculas.
-
-
DNString
-
-
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 );
Cadena que identifica el nombre distintivo (ruta de acceso) de un objeto de valor de servicio de directorio.
-
-
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 );
Valor entero.
-
-
LargeInteger
-
-
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 );
Puntero a la interfaz IDispatch del objeto que implementa IADsLargeInteger para este valor.
-
-
NumericString
-
-
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 );
Texto que se va a interpretar. Tipo numérico.
-
-
OctetString
-
-
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 );
Matriz variant de caracteres de un byte.
-
-
PrintableString
-
-
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 );
Mostrar o imprimir cadena.
-
-
SecurityDescriptor
-
-
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 );
Puntero a la interfaz IDispatch del objeto que implementa IADsSecurityDescriptor para este valor.
-
-
UTCTime
-
-
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 );
Fecha del tipo de VT_DATE expresado en formato hora universal coordinada (UTC).
-
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 |
|
Archivo DLL |
|
IID |
IID_IADsPropertyValue se define como 79FA9AD0-A97C-11D0-8534-00C04FD8D503 |