Bagikan melalui


Metode Properti IADsPropertyValue

Metode properti antarmuka IADsPropertyValue menyediakan akses ke properti yang dijelaskan dalam tabel berikut. Untuk informasi selengkapnya, lihat Metode Properti Antarmuka.

Properti

ADsType

Jenis data nilai properti, yang diambil dari enumerasi ADSTYPEENUM , dari properti nilai.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: LONG

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

Boolean

Nilai boolean.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: LONG

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

CaseExactString

String yang akan ditafsirkan. Peka huruf besar/kecil.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: BSTR

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

CaseIgnoreString

String yang akan ditafsirkan. Tidak peka huruf besar/kecil.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: BSTR

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

DNString

String yang mengidentifikasi nama (jalur) yang dibedakan dari objek nilai layanan direktori.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: BSTR

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

Bilangan bulat

Nilai bilangan bulat.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: LONG

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

Bilangan Bulat Besar

Arahkan ke antarmuka IDispatch objek yang mengimplementasikan IADsLargeInteger untuk nilai ini.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: IDispatch

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

NumericString

Teks yang akan ditafsirkan. Jenis numerik.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: BSTR

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

OktetString

Array varian karakter satu byte.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: VARIAN

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

PrintableString

Menampilkan atau mencetak string.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: BSTR

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

SecurityDescriptor

Arahkan ke antarmuka IDispatch objek yang mengimplementasikan IADsSecurityDescriptor untuk nilai ini.

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: IDispatch

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

UTCTime

Tanggal jenis VT_DATE yang dinyatakan dalam format Waktu Universal Terkoordinasi (UTC).

Jenis akses: Baca/tulis

Jenis data pembuatan skrip: TANGGAL

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

Keterangan

Properti IADsPropertyValue hanya akan mengatur atau mengambil nilai properti dari jenis yang ditentukan. Misalnya, properti CaseIgnoreString pada atribut jenis ADSTYPE_DN_STRING, seperti atribut distinguishedName , akan mengakibatkan kesalahan. Properti CaseIgnoreString hanya akan berfungsi pada atribut jenis ADS_CASE_IGNORE_STRING. Tabel berikut memetakan nilai ADSTYPEENUM ke properti IADsPropertyValue terkait yang dapat digunakan untuk mengakses jenis atribut tersebut. Jika nilai ADSTYPEENUM tidak tercantum dalam tabel ini, nilai tersebut tidak tersedia dari antarmuka IADsPropertyValue . Antarmuka IADsPropertyValue2 harus digunakan untuk mendapatkan data dalam format lain.

Nilai ADSTYPEENUM Properti 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 Bilangan bulat
ADSTYPE_OCTET_STRING OktetString
ADSTYPE_UTC_TIME UTCTime
ADSTYPE_LARGE_INTEGER Bilangan Bulat Besar
ADSTYPE_NT_SECURITY_DESCRIPTOR SecurityDescriptor

Contoh

Contoh kode berikut menunjukkan cara mengambil properti dari daftar properti.

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

Kode berikut menunjukkan cara menggunakan IADsPropertyValue::get_CaseIgnoreString untuk mengambil nilai properti deskripsi dari daftar properti.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Header
Iads.h
DLL
Activeds.dll
IID
IID_IADsPropertyValue didefinisikan sebagai 79FA9AD0-A97C-11D0-8534-00C04FD8D503

Lihat juga

IADsPropertyValue

ADSTYPEENUM

IADsPropertyEntry

IADsPropertyList

IADsPropertyValue2

IADsSecurityDescriptor

IDispatch