COMAdminCatalogObject (clase)

Representa los elementos de las colecciones del catálogo COM+. Úselo para recuperar y modificar las propiedades expuestas por un elemento de una colección.

Cuándo implementar

Com+, implementa esta clase.

Requisito Value
Interfaces ICatalogObject

Cuándo se usa

Utilice objetos creados a partir de la clase COMAdminCatalogObject para modificar las propiedades de los elementos contenidos en las colecciones del catálogo COM+. Estos elementos corresponden a los elementos que se muestran dentro de las carpetas del árbol de consola de la herramienta de administración servicios de componentes. Las carpetas de la herramienta de administración servicios de componentes corresponden a colecciones del catálogo, que puede representar mediante objetos creados a partir de la clase COMAdminCatalogCollection .

No todas las colecciones y elementos expuestos a través de COMAdminCatalogCollection y COMAdminCatalogObject están disponibles en la herramienta de administración servicios de componentes.

Para obtener información sobre colecciones específicas y sus propiedades, vea Colecciones de administración de COM+.

Para obtener una introducción a la administración mediante programación de COM+, consulte Automatización de la administración de COM+.

Comentarios

No se puede crear directamente un objeto COMAdminCatalogObject . Para usar los métodos de este objeto, debe crear un objeto COMAdminCatalog , obtener una referencia a ICOMAdminCatalog y, a continuación, usar ICOMAdminCatalog::GetCollection para obtener una referencia a una interfaz ICatalogCollection que represente una colección de nivel superior o use ICatalogCollection::GetCollection para tener acceso a colecciones que no son de nivel superior.

Después de tener una referencia a la interfaz ICatalogCollection de la colección en la que está interesado, llame a ICatalogCollection::P opulate para rellenar la colección con todos sus elementos. Recorra en iteración cada uno de los elementos de la colección llamando a ICatalogCollection::get_Item para obtener una referencia a cada interfaz ICatalogObject . Cuando encuentre el elemento de interés, puede modificar las propiedades del elemento y salir de la iteración. Si realiza algún cambio en los elementos de una colección, debe llamar a ICatalogCollection::SaveChanges para guardar los cambios en el catálogo COM+.

Esto se muestra en el ejemplo siguiente, donde "TopCollection" debe reemplazarse por el nombre de una de las colecciones de administración COM+ de nivel superior; "ItemName" debe reemplazarse por el nombre del elemento en el que está interesado; "PropertyName" debe reemplazarse por el nombre de la propiedad que está modificando en el elemento; y varNewProp deben reemplazarse por un VALOR VARIANT que contenga el nuevo valor de la propiedad .

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


Para usar esta clase de Microsoft Visual Basic, agregue una referencia a com+ Administración biblioteca de tipos. Se puede crear un objeto COMAdminCatalogCollection llamando a GetCollection en un objeto COMAdminCatalog o COMAdminCatalogCollection .

Llame al método Populate del objeto COMAdminCatalogCollection para rellenar la colección con todos sus elementos. Recorra en iteración cada uno de los elementos de la colección. Cuando encuentre el elemento de interés, puede modificar las propiedades del elemento y salir de la iteración. Si realiza algún cambio en los elementos de una colección, debe llamar al método SaveChanges del objeto COMAdminCatalogCollection para guardar los cambios en el catálogo COM+.

Esto se muestra en el ejemplo siguiente, donde "TopCollection" debe reemplazarse por el nombre de una de las colecciones de administración COM+ de nivel superior; "ItemName" debe reemplazarse por el nombre del elemento en el que está interesado; "PropertyName" debe reemplazarse por el nombre de la propiedad que está modificando en el elemento; y NewPropValue deben reemplazarse por el nuevo valor de la propiedad .

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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
ComAdmin.h
IDL
ComAdmin.Idl

Consulte también

COMAdminCatalog

COMAdminCatalogCollection

ICatalogObject