IADsPropertyList::ResetPropertyItem-Methode (iads.h)
Die IADsPropertyList::ResetPropertyItem-Methode entfernt das angegebene Element aus der Liste. d. h. aus dem Cache. Sie können das zu entfernende Element anhand des Namens (als Zeichenfolge) oder des Indexes (als ganze Zahl) angeben.
Syntax
HRESULT ResetPropertyItem(
[in] VARIANT varEntry
);
Parameter
[in] varEntry
Der zurückzusetzende Eintrag.
Rückgabewert
Diese Methode unterstützt die HRESULT-Standardrückgabewerte , einschließlich S_OK. Weitere Informationen und andere Rückgabewerte finden Sie unter ADSI-Fehlercodes.
Hinweise
ResetPropertyItem wirkt sich nur auf den Inhalt des Caches und nicht auf die Eigenschaften des tatsächlichen Objekts im Verzeichnis aus. durch aufrufen von SetInfo nach dem Aufrufen von ResetPropertyItem werden die Eigenschaften für das Verzeichnisobjekt nicht gelöscht.
Beispiele
Das folgende Codebeispiel zeigt, wie ResetPropertyItem implementiert wird.
Dim propList As IADsPropertyList
On Error GoTo Cleanup
Set propList = GetObject("LDAP://DC=Fabrikam,DC=com")
'--- Now modify the cache using PutPropertyItem
Set propVal = New PropertyValue
'--- Property Value-----
propVal.CaseIgnoreString = "Fabrikam"
propVal.ADsType = ADSTYPE_CASE_IGNORE_STRING
'--- Property Entry ----
Set propEntry = New PropertyEntry
propEntry.Name = "adminDescription"
propEntry.Values = Array(propVal)
propEntry.ControlCode = ADS_PROPERTY_UPDATE
propEntry.ADsType = ADS_CASE_IGNORE_STRING
' --- Property List----
propList.PutPropertyItem (propEntry)
' Commit to the directory. Without this, the changes take place only in the cache.
propList.SetInfo
propList.GetInfo
Debug.Print " Number of Properties = " & propList.PropertyCount
propList.ResetPropertyItem "adminDescription"
' the property count should have been reduced by one.
Debug.Print "Number of properties = " & propList.PropertyCount
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set propList = Nothing
Set propVal = Nothing
Set propEntry = Nothing
Das folgende Codebeispiel zeigt den Effekt, der durch einen Aufruf von IADsPropertyList::ResetPropertyItem erzeugt wird. Weitere Informationen und die Auflistung der GetPropertyCache-Funktion finden Sie unter IADsPropertyList. Weitere Informationen und die Auflistung der Funktionen GetNextEntry und PropertyItem finden Sie unter IADsPropertyList::Next und IADsPropertyList::Item .
IADsPropertyList *GetPropertyCache(LPWSTR);
IADsPropertyEntry *GetNextEntry(IADsPropertyList *);
IADsPropertyEntry *PropertyItem(IADsPropertyList *,LPWSTR);
void ResetItem(IADsPropertyList *pList, LPWSTR item)
{
VARIANT var;
VariantInit(&var);
if(!pList)
{
item = NULL;
return;
}
V_BSTR(&var)=SysAllocString(item);
V_VT(&var)=VT_BSTR;
pList->ResetPropertyItem(var);
VariantClear(&var);
}
void TestResetItem()
{
IADsPropertyEntry *pEntry = NULL;
IADsPropertyList *pList = NULL;
long count;
BSTR bstr;
HRESULT hr;
pList = GetPropertyCache(L"WinNT://myComputer,computer");
hr = pList->get_PropertyCount(&count);
if(SUCCEEDED(hr))
{
printf(" Count before item reset : %d\n",count);
}
printf("Walking up the property list before item reset: \n");
for (int i=0; i<count; i++)
{
pEntry = GetNextEntry(pList);
hr = pEntry->get_Name(&bstr);
if(SUCCEEDED(hr))
{
printf(" Name : %S\n",bstr);
SysFreeString(bstr);
}
}
pList->Reset(); // Move the cursor to the beginning of the list.
ResetItem(pList, L"Owner");
hr = pList->get_PropertyCount(&count);
if(SUCCEEDED(hr))
{
printf(" Count after item reset : %d\n",count);
}
printf("Walking up the property list after item reset: \n");
for (i=0; i<count; i++)
{
pEntry = GetNextEntry(pList);
hr = pEntry->get_Name(&bstr);
if(SUCCEEDED(hr))
{
printf(" Name : %S\n",bstr);
SysFreeString(bstr);
}
}
pEntry->Release();
pList->Release();
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
DLL | Activeds.dll |