Methoden der IADsPropertyValue-Eigenschaft

Die Eigenschaftenmethoden der IADsPropertyValue-Schnittstelle ermöglichen den Zugriff auf die in der folgenden Tabelle beschriebenen Eigenschaften. Weitere Informationen finden Sie unter Methoden der Schnittstelleneigenschaft.

Eigenschaften

ADsType

Der Datentyp des Werts der Eigenschaft, die aus der ADSTYPEENUM-Enumeration der value-Eigenschaft stammt.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: LONG

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

Boolean

Boolescher Wert.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: LONG

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

CaseExactString

Zu interpretierende Zeichenfolge. Groß-/Kleinschreibung wird beachtet,

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: BSTR

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

CaseIgnoreString

Zu interpretierende Zeichenfolge. Diese Klasse berücksichtigt keine Groß-/Kleinschreibung.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: BSTR

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

DNString

Zeichenfolge, die den distinguished Name (Pfad) eines Verzeichnisdienstwertobjekts identifiziert.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: BSTR

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

Integer

Wert für ganze Zahl.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: LONG

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

LargeInteger

Zeiger auf die IDispatch-Schnittstelle des Objekts, das IADsLargeInteger für diesen Wert implementiert.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: IDispatch

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

NumericString

Zu interpretierenden Text. Numerischer Typ.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: BSTR

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

OctetString

Variant-Array von Ein-Byte-Zeichen.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: VARIANT

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

PrintableString

Zeichenfolge anzeigen oder drucken.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: BSTR

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

SecurityDescriptor

Zeiger auf die IDispatch-Schnittstelle des Objekts, das IADsSecurityDescriptor für diesen Wert implementiert.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: IDispatch

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

UTCTime

Ein Datum des VT_DATE Typs, der im UTC-Format (Koordinierte Weltzeit) ausgedrückt wird.

Zugriffstyp: Lese-/Schreibzugriff

Skriptdatentyp: DATE

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

Bemerkungen

Die IADsPropertyValue-Eigenschaften legen nur einen Eigenschaftswert des angegebenen Typs fest oder rufen sie ab. Beispielsweise führt die CaseIgnoreString-Eigenschaft für ein Attribut vom Typ ADSTYPE_DN_STRING, wie das Attribut distinguishedName , zu einem Fehler. Die CaseIgnoreString-Eigenschaft funktioniert nur für Attribute vom Typ ADS_CASE_IGNORE_STRING. In der folgenden Tabelle wird der ADSTYPEENUM-Wert der entsprechenden IADsPropertyValue-Eigenschaft zugeordnet, die für den Zugriff auf diesen Attributtyp verwendet werden kann. Wenn ein ADSTYPEENUM-Wert in dieser Tabelle nicht aufgeführt ist, ist er über die IADsPropertyValue-Schnittstelle nicht verfügbar. Die IADsPropertyValue2-Schnittstelle sollte verwendet werden, um Daten in den anderen Formaten abzurufen.

ADSTYPEENUM-Wert IADsPropertyValue-Eigenschaft
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_NT_SECURITY_DESCRIPTOR SecurityDescriptor

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine Eigenschaft aus der Eigenschaftenliste abgerufen wird.

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

Der folgende Code zeigt, wie Sie IADsPropertyValue::get_CaseIgnoreString verwenden, um den Wert der Description-Eigenschaft aus einer Eigenschaftenliste abzurufen.

#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);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Header
Iads.h
DLL
Activeds.dll
IID
IID_IADsPropertyValue ist definiert als 79FA9AD0-A97C-11D0-8534-00C04FD8D503

Siehe auch

IADsPropertyValue

ADSTYPEENUM

IADsPropertyEntry

IADsPropertyList

IADsPropertyValue2

IADsSecurityDescriptor

IDispatch