IADsPropertyList::Item メソッド (iads.h)
IADsPropertyList::Item メソッドは、指定したプロパティ項目をリストから取得します。
構文
HRESULT Item(
[in] VARIANT varIndex,
[in, out] VARIANT *pVariant
);
パラメーター
[in] varIndex
取得するプロパティのインデックスまたは名前を含む VARIANT 。
[in, out] pVariant
呼び出し元によって割り当てられた VARIANT 変数のアドレス。 返されると、VARIANT には、取得した属性の IADsPropertyEntry インターフェイスを実装するオブジェクトへの IDispatch ポインターが含まれます。
戻り値
このメソッドは、S_OKを含む標準の HRESULT 戻り値をサポートしています。 詳細およびその他の戻り値については、「 ADSI エラー コード」を参照してください。
解説
Item メソッドによって返される値が不要になった場合は、VariantClear を使用して pVariant をクリアする必要があります。
例
次のコード例は、 Item メソッドを使用してすべてのエントリを列挙する方法を示しています。
Dim propList As IADsPropertyList
Dim propEntry As IADsPropertyEntry
Dim count As Long
On Error GoTo Cleanup
Set propList = GetObject("LDAP://dc02/DC=Fabrikam,DC=com")
propList.GetInfo
count = propList.PropertyCount
Debug.Print "No of Property Found: " & count
'==== Getting the property list item with Name ==================
Set propEntry = propList.Item("uSNCreated")
Debug.Print propEntry.Name
Debug.Print propEntry.ADsType
' to examine property entries by name and type
For i = 0 To count - 1
'==== Getting the property list item with Number =============
Set propEntry = propList.Item(i)
Debug.Print propEntry.Name
Debug.Print propEntry.ADsType
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set propList = Nothing
Set propEntry = Nothing
次のコード例は、IADsPropertyList::Item メソッドを使用してコンピューターの Owner プロパティを取得する方法を示しています。 GetPropertyCache 関数とコード例の詳細については、「IADsPropertyList」を参照してください。
////////////////////////////////////////
// function: PropertyItem
// input: PropertyList,
// name of the item
// output: Property entry
// uses: IADsPropertyList::Item
////////////////////////////////////////
IADsPropertyEntry *PropertyItem(
IADsPropertyList *pList,
LPWSTR item)
{
IADsPropertyEntry *pEntry;
VARIANT varEntry, varItem;
if(!pList || !item)
{
_tprintf(TEXT("Invalid parameter..."));
return NULL;
}
VariantInit(&varItem);
VariantInit(&varEntry);
// get a property entry
V_BSTR(&varItem)= SysAllocString(item);
V_VT(&varItem)=VT_BSTR;
HRESULT hr = pList->Item(varItem ,&varEntry);
hr = V_DISPATCH(&var)->QueryInterface(
IID_IADsPropertyEntry,
(void**)&pEntry);
VariantClear(&varItem);
VariantClear(&varEntry);
return pEntry;
}
///////////////////////////////////////
// examine a property entry
///////////////////////////////////////
IADsPropertyList *pList; pList=GetPropertyCache(L"WinNT://myComputer,computer");
IADsPropertyEntry *pEntry;
pEntry = PropertyItem(pList, L"Owner");
if(pEntry)
{
HRESULT hr;
BSTR bstr;
long ln;
hr = pEntry->get_Name(&bstr);
if(SUCCEEDED(hr))
{
SysFreeString(bstr);
}
printf(" Name : %S\n", bstr);
pEntry->get_ADsType(&ln);
if(SUCCEEDED(hr))
{
printf(" Type : %d\n", ln);
}
pEntry->get_ControlCode(&ln);
if(SUCCEEDED(hr))
{
printf(" Code %d\n",ln);
}
}
要件
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | iads.h |
[DLL] | Activeds.dll |