COMAdminCatalogObject-Klasse

Stellt Elemente in Auflistungen im COM+-Katalog dar. Verwenden Sie es, um Eigenschaften abzurufen und zu ändern, die von einem Element in einer Auflistung verfügbar gemacht werden.

Gründe für die Implementierung

Diese Klasse wird von COM+ implementiert.

Anforderung Wert
Schnittstellen ICatalogObject

Verwendung

Verwenden Sie Objekte, die aus der COMAdminCatalogObject-Klasse erstellt wurden, um die Eigenschaften von Elementen zu ändern, die in Sammlungen im COM+-Katalog enthalten sind. Diese Elemente entsprechen Elementen, die in Ordnern in der Konsolenstruktur des Component Services-Verwaltungstools angezeigt werden. Ordner im Component Services-Verwaltungstool entsprechen Sammlungen im Katalog, die Sie mithilfe von Objekten darstellen können, die aus der COMAdminCatalogCollection-Klasse erstellt wurden.

Nicht alle Sammlungen und Elemente, die über COMAdminCatalogCollection und COMAdminCatalogObject verfügbar gemacht werden, sind im Component Services-Verwaltungstool verfügbar.

Informationen zu bestimmten Sammlungen und deren Eigenschaften finden Sie unter COM+-Verwaltungssammlungen.

Eine Einführung in die programmgesteuerte Verwaltung von COM+ finden Sie unter Automatisieren der COM+-Verwaltung.

Hinweise

Sie können kein COMAdminCatalogObject-Objekt direkt erstellen. Um die Methoden dieses Objekts zu verwenden, müssen Sie ein COMAdminCatalog-Objekt erstellen, einen Verweis auf ICOMAdminCatalogabrufen und dann ICOMAdminCatalog::GetCollection verwenden, um einen Verweis auf eine ICatalogCollection-Schnittstelle abzurufen, die eine Auflistung der obersten Ebene darstellt, oder ICatalogCollection::GetCollection verwenden, um auf Sammlungen zuzugreifen, die nicht der obersten Ebene entsprechen.

Nachdem Sie über einen Verweis auf die ICatalogCollection-Schnittstelle der Sammlung verfügen, an der Sie interessiert sind, rufen Sie ICatalogCollection::P opulate auf, um die Sammlung mit allen ihren Elementen aufzufüllen. Durchlaufen Sie jedes der Elemente in der Auflistung, indem Sie ICatalogCollection::get _ Item aufrufen, um einen Verweis auf jede ICatalogObject-Schnittstelle abzurufen. Wenn Sie das gewünschte Element finden, können Sie die Eigenschaften des Elements ändern und die Iteration beenden. Wenn Sie Änderungen an Elementen in einer Sammlung vornehmen, müssen Sie ICatalogCollection::SaveChanges aufrufen, um die Änderungen im COM+-Katalog zu speichern.

Dies wird im folgenden Beispiel gezeigt, in dem "TopCollection" durch den Namen einer der COM+-Verwaltungssammlungen der obersten Ebene ersetzt werden muss. "ItemName" muss durch den Namen des Elements ersetzt werden, an dem Sie interessiert sind. "PropertyName" muss durch den Namen der Eigenschaft ersetzt werden, die Sie im Element ändern. und varNewProp müssen durch einen VARIANT ersetzt werden, der den neuen Wert für die Eigenschaft enthält.

// Convert ItemName to a BSTR.
bstrItemName = SysAllocString(L"ItemName");
HRESULT hr = CoCreateInstance(CLSID_COMAdminCatalog, NULL, 
  CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnknown);
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
hr = pUnknown->QueryInterface(IID_ICOMAdminCatalog, 
  (void**)&pCatalog); 
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
hr = pCatalog->GetCollection(L"TopCollection", 
  (IDispatch**)&pTopColl);
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
// Populate the TopCollection collection.
hr = pTopColl->Populate();
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
// Get the number of items in the collection.
hr = pTopColl->get_Count(&lCount);
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
VARIANT varName;
VariantInit(&varName);
// Iterate through each item in the collection.
for (LONG lIdx = 0; lIdx < lCount; lIdx++) {
    hr = pTopColl->get_Item(lIdx, (IDispatch**)&pItem);
    if (FAILED(hr)) exit(0);  // Replace with specific error handling.
    hr = pItem->get_Name(&varName);
    if (FAILED(hr)) exit(0);  // Replace with specific error handling.
    // Compare the item name to bstrItemName.
    hr = VarBstrCmp(varName.bstrVal, bstrItemName, 1024L, NULL);
    if (FAILED(hr)) exit(0);  // Replace with specific error handling.
    if (VARCMP_EQ == hr) {  // The strings are equal.
        // Use the put_Value method to modify properties of the item.
        hr = pItem->put_Value(L"PropertyName", varNewProp);
        if (FAILED(hr)) exit(0);  // Replace with specific error handling.
        break;  // Exit the iteration.
    }
}
hr = pTopColl->SaveChanges(&lNum);
if (FAILED(hr)) exit(0);  // Replace with specific error handling.
SysFreeString(bstrItemName);


Um diese Klasse von Microsoft Visual Basic zu verwenden, fügen Sie einen Verweis auf die COM+-Administratortypbibliothek hinzu. Ein COMAdminCatalogCollection-Objekt kann erstellt werden, indem GetCollection für ein COMAdminCatalog- oder COMAdminCatalogCollection-Objekt aufgerufen wird.

Rufen Sie die Populate-Methode des COMAdminCatalogCollection-Objekts auf, um die Auflistung mit allen zugehörigen Elementen aufzufüllen. Durchlaufen Sie jedes der Elemente in der Auflistung. Wenn Sie das gewünschte Element finden, können Sie die Eigenschaften des Elements ändern und die Iteration beenden. Wenn Sie Änderungen an Elementen in einer Sammlung vornehmen, müssen Sie die SaveChanges-Methode des COMAdminCatalogCollection-Objekts aufrufen, um die Änderungen im COM+-Katalog zu speichern.

Dies wird im folgenden Beispiel gezeigt, in dem "TopCollection" durch den Namen einer der COM+-Verwaltungssammlungen der obersten Ebene ersetzt werden muss. "ItemName" muss durch den Namen des Elements ersetzt werden, an dem Sie interessiert sind. "PropertyName" muss durch den Namen der Eigenschaft ersetzt werden, die Sie im Element ändern. und NewPropValue müssen durch den neuen Wert für die Eigenschaft ersetzt werden.

Dim objCatalog As COMAdmin.COMAdminCatalog
Set objCatalog = CreateObject("COMAdmin.COMAdminCatalog")
Dim objTopCollection As COMAdmin.COMAdminCatalogCollection
Set objTopCollection = objCatalog.GetCollection("TopCollection")
objTopCollection.Populate
Dim objItem As COMAdmin.COMAdminCatalogObject
For Each objItem in objTopCollection
    If objItem.Name = "ItemName" Then
        objItem.Value("PropertyName") = NewPropValue
        Exit For
    End If
Next
objAppCollection.SaveChanges

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
ComAdmin.h
Idl
ComAdmin.Idl

Weitere Informationen

COMAdminCatalog

COMAdminCatalogCollection

ICatalogObject