IADsPropertyValue プロパティ メソッド

IADsPropertyValue インターフェイスのプロパティ メソッドは、次の表で説明するプロパティへのアクセスを提供します。 詳細については、「インターフェイス プロパティ メソッド」を参照してください

プロパティ

ADsType

値プロパティの ADSTYP Enterprise Edition NUM 列挙から取得されたプロパティの値のデータ型。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: LONG

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

Boolean

ブール値。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: LONG

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

CaseExactString

解釈される文字列。 大文字と小文字を区別します。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: BSTR

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

CaseIgnoreString

解釈される文字列。 大文字と小文字は区別されません。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: BSTR

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

DNString

ディレクトリ サービス値オブジェクトの識別名 (パス) を識別する文字列。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: BSTR

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

整数

整数値。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: LONG

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

LargeInteger

この値の IADsLargeInteger を実装するオブジェクトの IDispatch インターフェイスへのポインター。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: IDispatch

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

NumericString

解釈するテキスト。 数値型。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: BSTR

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

OctetString

1 バイト文字のバリアント配列。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: VARIANT

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

PrintableString

文字列を表示または印刷します。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: BSTR

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

SecurityDescriptor

この値の IADsSecurityDescriptor を実装するオブジェクトの IDispatch インターフェイスへのポインター。

アクセスの種類: 読み取り/書き込み

スクリプト データ型: IDispatch

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

UTCTime

協定世界時 (UTC) 形式で表されるVT_DATE型の日付

アクセスの種類: 読み取り/書き込み

スクリプト データ型: DATE

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

解説

IADsPropertyValue プロパティは、指定された型のプロパティ値のみを設定または取得します。 たとえば、distinguishedName 属性のように、ADSTYPE_DN_STRINGの属性の CaseIgnoreString プロパティはエラーになります。 CaseIgnoreString プロパティは、ADS_CAStandard Edition_IGNORE_STRINGの属性でのみ機能します。 次の表は、ADSTYP Enterprise Edition NUM 値を、その属性型へのアクセスに使用できる対応する IADsPropertyValue プロパティにマップします。 この表に ADSTYP Enterprise Edition NUM 値がリストされていない場合、IADsPropertyValue インターフェイスからは使用できません。 IADsPropertyValue2 インターフェイスを使用して、他の形式のデータを取得する必要があります。

ADSTYP Enterprise Edition NUM IADsPropertyValue プロパティ
ADSTYPE_DN_STRING DNString
ADSTYPE_CAStandard Edition_EXACT_STRING CaseExactString
ADSTYPE_CAStandard Edition_IGNORE_STRING CaseIgnoreString
ADSTYPE_PRINTABLE_STRING PrintableString
ADSTYPE_NUMERIC_STRING NumericString
ADSTYPE_BOOLEAN Boolean
ADSTYPE_INTEGER 整数
ADSTYPE_OCTET_STRING OctetString
ADSTYPE_UTC_TIME UTCTime
ADSTYPE_LARGE_INTEGER LargeInteger
ADSTYPE_NT_Standard EditionCURITY_DESCRIPTOR SecurityDescriptor

次のコード例は、プロパティ リストからプロパティを取得する方法を示しています。

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

次のコードは、IADsPropertyValue::get_CaseIgnoreString を使用してプロパティ リストから description プロパティの値を取得する方法を示しています。

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

要件

要件 Value
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
ヘッダー
Iads.h
[DLL]
Activeds.dll
IID
IID_IADsPropertyValueは 79FA9AD0-A97C-11D0-8534-00C04FD8D503 と定義されています

関連項目

IADsPropertyValue

ADSTYP Enterprise Edition NUM

IADsPropertyEntry

IADsPropertyList

IADsPropertyValue2

IADsSecurityDescriptor

IDispatch