COMAdminCatalogObject 클래스

COM+ 카탈로그의 컬렉션에 있는 항목을 나타냅니다. 컬렉션의 항목에 의해 노출되는 속성을 검색하고 수정하는 데 사용합니다.

구현 시기

이 클래스는 COM+에서 구현됩니다.

요구 사항
인터페이스 ICatalogObject

사용 시기

COMAdminCatalogObject 클래스에서 만든 개체를 사용하여 COM+ 카탈로그의 컬렉션에 포함된 항목의 속성을 수정합니다. 이러한 항목은 구성 요소 서비스 관리 도구의 콘솔 트리에 있는 폴더 내에 표시되는 항목에 해당합니다. 구성 요소 서비스 관리 도구의 폴더는 COMAdminCatalogCollection 클래스에서 만든 개체를 사용하여 나타낼 수 있는 카탈로그의 컬렉션에 해당합니다.

COMAdminCatalogCollectionCOMAdminCatalogObject를 통해 노출된 모든 컬렉션 및 항목은 Component Services 관리 도구에서 사용할 수 없습니다.

특정 컬렉션 및 해당 속성에 대한 자세한 내용은 COM+ 관리 컬렉션을 참조하세요.

COM+의 프로그래밍 방식 관리에 대한 소개는 COM+ 관리 자동화를 참조하세요.

설명

COMAdminCatalogObject 개체를 직접 만들 수 없습니다. 이 개체의 메서드를 사용하려면 COMAdminCatalog 개체를 만들고 , ICOMAdminCatalog에 대한 참조를 가져온 다음, ICOMAdminCatalog::GetCollection 을 사용하여 최상위 컬렉션을 나타내는 ICatalogCollection 인터페이스에 대한 참조를 가져오거나 ICatalogCollection::GetCollection 을 사용하여 최상위 수준이 아닌 컬렉션에 액세스해야 합니다.

관심이 있는 컬렉션의 ICatalogCollection 인터페이스에 대한 참조가 있으면 ICatalogCollection::P opulate 를 호출하여 컬렉션을 모든 항목으로 채웁습니다. ICatalogCollection::get_Item 호출하여 컬렉션의 각 항목을 반복하여 각 ICatalogObject 인터페이스에 대한 참조를 가져옵니다. 관심 있는 항목을 찾으면 항목의 속성을 수정하고 반복을 종료할 수 있습니다. 컬렉션의 항목을 변경하는 경우 ICatalogCollection::SaveChanges 를 호출하여 변경 내용을 COM+ 카탈로그에 저장해야 합니다.

다음 예제에서는 "TopCollection"을 최상위 COM+ 관리 컬렉션 중 하나의 이름으로 바꿔야 합니다. "ItemName"은 관심 있는 항목의 이름으로 바꿔야 합니다. "PropertyName"은 항목에서 수정하는 속성의 이름으로 바꿔야 합니다. 및 varNewProp은 속성에 대한 새 값을 포함하는 VARIANT로 바꿔야 합니다.

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


Microsoft Visual Basic에서 이 클래스를 사용하려면 COM+ 관리 형식 라이브러리에 대한 참조를 추가합니다. COMAdminCatalogCollection 개체는 COMAdminCatalog 또는 COMAdminCatalogCollection 개체에서 GetCollection을 호출하여 만들 수 있습니다.

COMAdminCatalogCollection 개체의 Populate 메서드를 호출하여 컬렉션을 모든 항목으로 채웁습니다. 컬렉션의 각 항목을 반복합니다. 관심 있는 항목을 찾으면 항목의 속성을 수정하고 반복을 종료할 수 있습니다. 컬렉션의 항목을 변경하는 경우 COMAdminCatalogCollection 개체의 SaveChanges 메서드를 호출하여 변경 내용을 COM+ 카탈로그에 저장해야 합니다.

다음 예제에서는 "TopCollection"을 최상위 COM+ 관리 컬렉션 중 하나의 이름으로 바꿔야 합니다. "ItemName"은 관심 있는 항목의 이름으로 바꿔야 합니다. "PropertyName"은 항목에서 수정하는 속성의 이름으로 바꿔야 합니다. 및 NewPropValue는 속성의 새 값으로 바꿔야 합니다.

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

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
ComAdmin.h
IDL
ComAdmin.Idl

추가 정보

COMAdminCatalog

COMAdminCatalogCollection

ICatalogObject