Classe COMAdminCatalogObject
Representa itens em coleções no catálogo COM+. Use-o para recuperar e modificar propriedades expostas por um item em uma coleção.
Quando implementar
Essa classe é implementada pelo COM+.
Requisito | Valor |
---|---|
Interfaces | ICatalogObject |
Quando usar
Use objetos criados a partir da classe COMAdminCatalogObject para modificar as propriedades dos itens contidos em coleções no catálogo COM+. Esses itens correspondem a itens mostrados dentro de pastas na árvore de console da ferramenta de administração dos Serviços de Componentes. As pastas na ferramenta de administração dos Serviços de Componentes correspondem a coleções no catálogo, que você pode representar usando objetos criados a partir da classe COMAdminCatalogCollection .
Nem todas as coleções e itens expostos por meio de COMAdminCatalogCollection e COMAdminCatalogObject estão disponíveis na ferramenta de administração dos Serviços de Componentes.
Para obter informações sobre coleções específicas e suas propriedades, consulte Coleções de Administração COM+.
Para obter uma introdução à administração programática do COM+, consulte Automatizando a administração com+.
Comentários
Você não pode criar diretamente um objeto COMAdminCatalogObject . Para usar os métodos deste objeto, você deve criar um objeto COMAdminCatalog , obter uma referência a ICOMAdminCatalog e, em seguida, usar ICOMAdminCatalog::GetCollection para obter uma referência a uma interface ICatalogCollection que representa uma coleção de nível superior ou usar ICatalogCollection::GetCollection para acessar coleções que não são de nível superior.
Depois de fazer referência à interface ICatalogCollection da coleção na qual você está interessado, chame ICatalogCollection::P opulate para preencher a coleção com todos os seus itens. Itere em cada um dos itens da coleção chamando ICatalogCollection::get_Item para obter uma referência a cada interface ICatalogObject . Ao encontrar o item de interesse, você pode modificar as propriedades do item e sair da iteração. Se você fizer alterações em qualquer item em uma coleção, deverá chamar ICatalogCollection::SaveChanges para salvar as alterações no catálogo COM+.
Isso é mostrado no exemplo a seguir, em que "TopCollection" deve ser substituído pelo nome de uma das coleções de administração COM+ de nível superior; "ItemName" deve ser substituído pelo nome do item no qual você está interessado; "PropertyName" deve ser substituído pelo nome da propriedade que você está modificando no item; e varNewProp devem ser substituídos por uma VARIANT que contenha o novo valor da propriedade.
// 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 essa classe do Microsoft Visual Basic, adicione uma referência à Biblioteca de Tipos de Administração COM+. Um objeto COMAdminCatalogCollection pode ser criado chamando GetCollection em um objeto COMAdminCatalog ou COMAdminCatalogCollection .
Chame o método Populate do objeto COMAdminCatalogCollection para preencher a coleção com todos os seus itens. Iterar em cada um dos itens da coleção. Ao encontrar o item de interesse, você pode modificar as propriedades do item e sair da iteração. Se você fizer alterações em qualquer item em uma coleção, deverá chamar o método SaveChanges do objeto COMAdminCatalogCollection para salvar as alterações no catálogo COM+.
Isso é mostrado no exemplo a seguir, em que "TopCollection" deve ser substituído pelo nome de uma das coleções de administração COM+ de nível superior; "ItemName" deve ser substituído pelo nome do item no qual você está interessado; "PropertyName" deve ser substituído pelo nome da propriedade que você está modificando no item; e NewPropValue devem ser substituídos pelo novo valor da propriedade .
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 | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
IDL |
|
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de