Directory Services

IADsPropertyEntry Property Methods

The property methods of the IADsPropertyEntry interface provide access to the following properties. For more information about property methods, see Interface Property Methods.

Properties

Property Description
Name

[Visual Basic]
Access: Read/Write
DataType: BSTR

[C++]
HRESULT get_Name
([out] BSTR* pbstrName);
HRESULT put_Name
([in] BSTR bstrName);

Name of the property entry. This name should correspond to the name of an attribute as defined in the schema.
ADsType

[Visual Basic]
Access: Read/Write
DataType: Long

[C++]
HRESULT get_ADsType
([out] LONG* plADsType);
HRESULT put_ADsType
([in] LONG lADsType);

The data type of the Name property. The values of the data type is defined in the ADSTYPEENUM enumeration.
ControlCode

[Visual Basic]
Access: Read/Write
DataType: Long

[C++]
HRESULT get_ControlCode
([out] LONG* pControlCode);
HRESULT put_ControlCode
([in] LONG lnControlCode);

A constant that specifies the operation to be performed on the named property. The value is defined in the ADS_PROPERTY_OPERATION_ENUM enumeration.
Values

[Visual Basic]
Access: Read/Write
DataType: Variant

[C++]
HRESULT get_Values
([out] VARIANT* pvValues);
HRESULT put_Values
([in] VARIANT vValues);

A VARIANT array. Each element in this array represents a value of the named property. Such property values are represented by ADSI objects implementing the IADsPropertyValue interfaces. Therefore, the VARIANT array holds an array of pointers to the IDispatch interface on the ADSI objects implementing the IADsPropertyValue interface.

Remarks

Each property method supports the standard HRESULT return values, including S_OK. For more information about other return values, see ADSI Error Codes.

Example Code [Visual Basic]

The following code example shows how to retrieve a named property from the cache and create a new property entry.

 
Dim propList As IADsPropertyList
Dim propEntry As IADsPropertyEntry
Dim propVal As IADsPropertyValue

On Error GoTo Cleanup

'------------------------------------------------------------
'----- Getting IADsPropertyEntry ----------------------------
'------------------------------------------------------------
 
' Create the property list object.
Set propList = GetObject("LDAP://dc01/DC=Fabrikam,DC=com")
propList.GetInfo
 
' Get a named property entry object.
Set propEntry = propList.GetPropertyItem("dc", ADSTYPE_CASE_IGNORE_STRING)

' Insert code to do something with propEntry
Set propEntry = Nothing
 
'------------------------------------------------------------
'---- Setting IADsPropertyEntry -----------------------------
'------------------------------------------------------------
 
' Create a property value object.
Set propVal = New PropertyValue
 
'---- Property Value -----
propVal.CaseIgnoreString = "Fabrikam, Inc - Seattle, WA"
propVal.ADsType = ADSTYPE_CASE_IGNORE_STRING
 
'---- Make a new Property Entry ----
Set propEntry = New PropertyEntry
propEntry.Name = "adminDescription"
propEntry.Values = Array(propVal)
propEntry.ControlCode = ADS_PROPERTY_UPDATE
propEntry.ADsType = ADS_CASE_IGNORE_STRING
 
' ---- Put the newly created property entry to the cache ----
propList.PutPropertyItem (propEntry)
 
' Commit the entry to the directory store.
propList.SetInfo

Cleanup:
	If (Err.Number<>0) Then
		MsgBox("An error has occurred. " & Err.Number)
	End If
	Set propList = Nothing
	Set propEntry = Nothing
	Set propVal = Nothing

Example Code [C++]

The following code example shows how to retrieve a named property from a cache.

#include <activeds.h>
#include <stdio.h>
 
IADsPropertyList *pList = NULL;
IADsPropertyEntry *pEntry = NULL;
IADs *pObj = NULL;
VARIANT var;
long valType = ADSTYPE_CASE_IGNORE_STRING;
 
VariantInit(&var);
 
// Bind to directory object.
HRESULT hr = ADsGetObject(L"LDAP://dc01/DC=Fabrikam,DC=com",
						IID_IADsPropertyList,
						(void**)&pList);
if(FAILED(hr)){return;}
 
// Initialize the property cache.
hr = pList->QueryInterface(IID_IADs,(void**)&pObj);
if(FAILED(hr)){goto Cleanup;}
pObj->GetInfo();
pObj->Release();
 
// Get a property entry.
hr = pList->GetPropertyItem(CComBSTR("description"), valType, &var);
pList->Release();
if(FAILED(hr)){goto Cleanup;}
hr = V_DISPATCH(&var)->QueryInterface(IID_IADsPropertyEntry,
									(void**)&pEntry);
VariantClear(&var);
if(FAILED(hr)){goto Cleanup;}
 
// Get the name and the type of the property entry.
BSTR nm = NULL;
hr = pEntry->get_Name(&nm);
printf("Property name = %S\n",nm);
VariantClear(&var);
long at;
hr = pEntry->get_ADsType(&at);
printf("Property type = %d\n",a);

Cleanup:
	if(nm)
		SysFreeString(nm);

	if(pList)
		pList->Release();

	if(pEntry)
		pEntry->Release();

	if(pObj)
		pObj->Release();

	VariantClear(&var);

Requirements

Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension on Windows NT 4.0 SP6a and Windows 95/98/Me.
Header: Declared in Iads.h.

See Also

ADS_PROPERTY_OPERATION_ENUM, ADSI Error Codes, ADSTYPEENUM, IADsPropertyEntry, IADsPropertyValue, IDispatch