IConsoleNameSpace2::AddExtension 메서드(mmc.h)

IConsoleNameSpace2::AddExtension 메서드를 사용하면 스냅인에서 선택한 항목의 네임스페이스를 동적으로 확장하는 확장 스냅인을 추가할 수 있습니다.

구문

HRESULT AddExtension(
  [in] HSCOPEITEM hItem,
  [in] LPCLSID    lpClsid
);

매개 변수

[in] hItem

lpClsid로 지정된 스냅인으로 확장할 항목에 대한 핸들입니다.

[in] lpClsid

hItem으로 지정된 항목의 네임스페이스를 확장하는 스냅인의 CLSID에 대한 포인터입니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

설명

스냅인에서 AddExtension 메서드를 호출하면 lpClsid로 지정된 네임스페이스 확장은 hItem에 지정된 항목의 특정 instance만 확장합니다. 해당 유형의 다른 항목은 영향을 받지 않습니다. AddExtension 호출은 스냅인 관리자를 사용하여 스냅인에 확장을 추가하는 것과 동일하지 않습니다. 스냅인 관리자를 사용하여 스냅인에 확장을 추가하면 해당 형식의 모든 스냅인 인스턴스에 확장이 추가됩니다.

또한 AddExtension 메서드는 AddExtension 호출을 만드는 스냅인에서 직접 소유한 항목에 대해서만 작동합니다. 예를 들어 스냅인에 네임스페이스에 항목을 추가하는 네임스페이스 확장이 있는 경우 스냅인은 해당 항목을 소유하지 않으므로 네임스페이스 확장에서 제공하는 항목에 대해 AddExtension을 호출할 수 없습니다.

동적 네임스페이스 확장을 추가하는 일반적인 위치는 스냅인의 IComponentData 개체의 MMCN_EXPAND 알림 처리기에 있습니다.

참고 확장 스냅인은 네임스페이스 확장이어야 합니다. 또한 확장 스냅인에 대한 MMC 레지스트리 항목과 확장 스냅인을 올바르게 설정해야 합니다.
 
상황에 맞는 메뉴, 도구 모음, 속성 시트 또는 작업 패드와 같은 다른 유형의 확장을 동적으로 추가하려면 스냅인은 확장하려는 항목의 데이터 개체에 CCF_MMC_DYNAMIC_EXTENSIONS 새 클립보드 형식을 추가해야 합니다. CCF_MMC_DYNAMIC_EXTENSIONS 형식은 SMMCDynamicExtensions 구조를 사용합니다. 자세한 내용은 동적 비 네임스페이스 확장을 참조하세요.

확장 스냅인을 동적 확장으로만 사용하려는 경우 스냅인 관리자의 확장 페이지에서 확장할 수 있는 스냅인 상자에서 기본 스냅인을 선택한 경우 해당 확장 스냅인을 사용 가능한 확장 목록 상자에 나열하면 안 됩니다. 스냅인 관리자에서 확장을 숨기려면 확장하려는 항목의 노드 형식을 나타내는 키에 "동적 확장" 키를 추가합니다. 그런 다음 노드 형식을 새 키 아래에 값으로 동적으로 확장해야 하는 스냅인의 CLSID를 배치합니다.

예제

다음 코드 예제에서는 CLSID_Extension 지정한 확장 스냅인을 추가합니다.

IConsoleNameSpace2* pExtensions = NULL;
HRESULT hr = m_pConsole->QueryInterface(IID_IConsoleNameSpace2, reinterpret_cast<void**>(&pExtensions));
 
if (SUCCEEDED(hr))
{
    hr = pExtensions->AddExtension(m_pStaticRoot, const_cast<CLSID*>(&CLSID_Extension));
    ASSERT(hr == S_OK);
    pExtensions->Release();
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 mmc.h
DLL Mmcndmgr.dll

추가 정보

IConsoleNameSpace2