Module 클래스

관련된 개체의 컬렉션을 나타냅니다.

구문

template<ModuleType moduleType>
class Module;

template<>
class Module<InProc> : public Details::ModuleBase;

template<>
class Module<OutOfProc> : public Module<InProc>;

매개 변수

moduleType
하나 이상의 ModuleType 열거형 값 조합입니다.

멤버

보호된 클래스

이름 설명
모듈::GenericReleaseNotifier 현재 모듈의 마지막 개체가 해제될 때 이벤트 처리기를 호출합니다. 이벤트 처리기는 람다, 함수 또는 함수 포인터에 의해 지정됩니다.
Module::MethodReleaseNotifier 현재 모듈의 마지막 개체가 해제될 때 이벤트 처리기를 호출합니다. 이벤트 처리기는 개체 및 해당 포인터-a-a-메서드 멤버에 의해 지정됩니다.
모듈::ReleaseNotifier 모듈의 마지막 개체가 해제될 때 이벤트 처리기를 호출합니다.

공용 생성자

속성 설명
모듈::~모듈 클래스의 현재 인스턴스를 초기화합니다 Module .

보호된 생성자

속성 설명
모듈::모듈 Module 클래스의 새 인스턴스를 초기화합니다.

공용 메서드

이름 설명
모듈::만들기 모듈의 인스턴스를 만듭니다.
모듈::D ecrementObjectCount 모듈에서 추적하는 개체 수를 줄입니다.
모듈::GetActivationFactory 모듈에 대한 활성화 팩터리를 가져옵니다.
Module::GetClassObject 클래스 팩터리 캐시를 검색합니다.
모듈::GetModule 모듈의 인스턴스를 만듭니다.
모듈::GetObjectCount 이 모듈에서 관리되는 개체 수를 가져옵니다.
Module::IncrementObjectCount 모듈에서 추적하는 개체 수를 늘립니다.
Module::RegisterCOMObject 다른 애플리케이션이 COM 개체에 연결할 수 있도록 이 개체를 하나 이상 등록합니다.
Module::RegisterObjects 다른 애플리케이션이 연결할 수 있도록 COM 또는 Windows 런타임 개체를 등록합니다.
Module::RegisterWinRTObject 다른 애플리케이션이 연결할 수 있도록 하나 이상의 Windows 런타임 개체를 등록합니다.
모듈::Terminate 모듈에 의해 인스턴스화되는 모든 팩터리가 종료됩니다.
모듈::UnregisterCOMObject 다른 애플리케이션에서 COM 개체에 연결할 수 없도록 하나 이상의 COM 개체의 등록을 취소합니다.
Module::UnregisterObjects 다른 애플리케이션에서 지정된 모듈의 개체에 연결할 수 없도록 이 개체의 등록을 취소합니다.
Module::UnregisterWinRTObject 다른 애플리케이션이 연결할 수 없도록 하나 이상의 Windows 런타임 개체를 등록 취소합니다.

보호된 메서드

속성 설명
모듈::만들기 모듈의 인스턴스를 만듭니다.

보호된 데이터 멤버

이름 설명
모듈::objectCount_ Make 함수를 사용하여 만든 클래스 수를 추적합니다 .
모듈::releaseNotifier_ 개체에 대한 포인터를 보유 ReleaseNotifier 합니다.

매크로

속성 설명
ActivatableClass 지정된 클래스의 인스턴스를 만들 수 있는 팩터리를 포함하는 내부 캐시를 채웁니다. 이 매크로는 기본 팩터리 및 그룹 ID 매개 변수를 지정합니다.
ActivatableClassWithFactory 지정된 클래스의 인스턴스를 만들 수 있는 팩터리를 포함하는 내부 캐시를 채웁니다. 이 매크로를 사용하면 특정 팩터리 매개 변수를 지정할 수 있습니다.
ActivatableClassWithFactoryEx 지정된 클래스의 인스턴스를 만들 수 있는 팩터리를 포함하는 내부 캐시를 채웁니다. 이 매크로를 사용하면 특정 팩터리 및 그룹 ID 매개 변수를 지정할 수 있습니다.

상속 계층 구조

ModuleBase

Module

Module

요구 사항

헤더: module.h

네임스페이스: Microsoft::WRL

모듈::~모듈

클래스의 현재 인스턴스를 초기화합니다 Module .

virtual ~Module();

모듈::만들기

모듈의 인스턴스를 만듭니다.

WRL_NOTHROW static Module& Create();
template<typename T>
WRL_NOTHROW static Module& Create(
   T callback
);
template<typename T>
WRL_NOTHROW static Module& Create(
   _In_ T* object,
   _In_ void (T::* method)()
);

매개 변수

T
모듈 유형입니다.

callback
모듈의 마지막 인스턴스 개체가 해제될 때 호출됩니다.

object
개체메서드 매개 변수가 함께 사용됩니다. 모듈의 마지막 인스턴스 개체가 해제될 때 마지막 인스턴스 개체를 가리킵니다.

method
개체메서드 매개 변수가 함께 사용됩니다. 모듈의 마지막 인스턴스 개체가 해제될 때 마지막 인스턴스 개체의 메서드를 가리킵니다.

Return Value

모듈에 대한 참조입니다.

모듈::D ecrementObjectCount

모듈에서 추적하는 개체 수를 줄입니다.

virtual long DecrementObjectCount();

Return Value

감소 작업 전 수입니다.

모듈::GetActivationFactory

모듈에 대한 활성화 팩터리를 가져옵니다.

WRL_NOTHROW HRESULT GetActivationFactory(
   _In_ HSTRING pActivatibleClassId,
   _Deref_out_ IActivationFactory **ppIFactory,
   wchar_t* serverName = nullptr
);

매개 변수

pActivatibleClassId
런타임 클래스의 IID입니다.

ppIFactory
지정된 런타임 클래스에 대한 IActivationFactory입니다.

serverName
현재 모듈의 클래스 팩터리 하위 집합 이름입니다. ActivatableClassWithFactoryEx 매크로에 사용되는 서버 이름을 지정하거나 기본 서버 이름을 가져오기 위해 지정 nullptr 합니다.

Return Value

성공하면 S_OK이고, 그렇지 않으면 GetActivationFactory에서 반환된 HRESULT입니다.

Module::GetClassObject

클래스 팩터리 캐시를 검색합니다.

HRESULT GetClassObject(
   REFCLSID clsid,
   REFIID riid,
   _Deref_out_ void **ppv,
   wchar_t* serverName = nullptr
);

매개 변수

clsid
클래스 ID입니다.

riid
요청하는 인터페이스 ID입니다.

ppv
반환된 개체에 대한 포인터입니다.

serverName
ActivatableClassWithFactory, ActivatableClassWithFactoryEx 또는 ActivatableClass 매크로에 지정된 서버 이름 또는 기본 서버 이름을 가져오는 nullptr입니다.

Return Value

설명

이 메서드는 Windows 런타임 아닌 COM에만 사용합니다. 이 메서드는 메서드만 IClassFactory 노출합니다.

모듈::GetModule

모듈의 인스턴스를 만듭니다.

static Module& GetModule();
WRL_NOTHROW static Module& GetModule();

Return Value

모듈에 대한 참조입니다.

모듈::GetObjectCount

이 모듈에서 관리되는 개체 수를 가져옵니다.

virtual long GetObjectCount() const;

Return Value

이 모듈에서 관리되는 현재 개체 수입니다.

Module::IncrementObjectCount

모듈에서 추적하는 개체 수를 늘립니다.

virtual long IncrementObjectCount();

Return Value

증가 연산 전 수입니다.

모듈::모듈

Module 클래스의 새 인스턴스를 초기화합니다.

Module();

설명

이 생성자가 보호되고 new 키워드로 호출할 수 없습니다. 대신 Module::GetModule 또는 Module::Create를 호출합니다.

모듈::objectCount_

Make 함수를 사용하여 만든 클래스 수를 추적합니다 .

volatile long objectCount_;

Module::RegisterCOMObject

다른 애플리케이션이 COM 개체에 연결할 수 있도록 이 개체를 하나 이상 등록합니다.

WRL_NOTHROW virtual HRESULT RegisterCOMObject(
   const wchar_t* serverName,
   IID* clsids,
   IClassFactory** factories,
   DWORD* cookies,
   unsigned int count);

매개 변수

serverName
서버의 정규화된 이름입니다.

Clsid
등록할 CLSID의 배열입니다.

공장
가용성을 게시하고 있는 클래스 개체의 IUnknown 인터페이스 배열입니다.

쿠키
작업이 완료되면 등록된 클래스 개체를 식별하는 값에 대한 포인터 배열입니다. 이러한 값은 나중에 등록을 해지하는 데 사용됩니다.

count
등록할 CLSID 수입니다.

Return Value

S_OK 성공하면

설명

COM 개체는 CLSCTX 열거형의 CLSCTX_LOCAL_SERVER 열거자를 사용하여 등록됩니다.

등록된 개체에 대한 연결 유형은 현재 쉼표 템플릿 매개 변수와 REGCLS 열거형의 REGCLS_SUSPENDED 열거자의 조합으로 지정됩니다.

Module::RegisterObjects

다른 애플리케이션이 연결할 수 있도록 COM 또는 Windows 런타임 개체를 등록합니다.

HRESULT RegisterObjects(
   ModuleBase* module,
   const wchar_t* serverName);

매개 변수

module
COM 또는 Windows 런타임 개체의 배열입니다.

serverName
개체를 생성한 서버의 이름입니다.

Return Value

성공 시 S_OK이고, 그렇지 않으면 작업이 실패한 이유를 나타내는 HRESULT입니다.

Module::RegisterWinRTObject

다른 애플리케이션이 연결할 수 있도록 하나 이상의 Windows 런타임 개체를 등록합니다.

HRESULT RegisterWinRTObject(const wchar_t* serverName,
   wchar_t** activatableClassIds,
   WINRT_REGISTRATION_COOKIE* cookie,
   unsigned int count)

매개 변수

serverName
이 작업으로 영향을 받는 개체의 하위 집합을 지정하는 이름입니다.

activatableClassIds
등록할 활성화 가능한 CLSID 배열입니다.

쿠키
등록된 클래스 개체를 식별하는 값입니다. 이 값은 나중에 등록을 해지할 때 사용됩니다.

count
등록할 개체의 수입니다.

Return Value

성공하면 S_OK이고 그렇지 않으면 작업에 실패한 이유를 나타내는 CO_E_OBJISREG와 같은 HRESULT 오류가 발생합니다.

모듈::releaseNotifier_

개체에 대한 포인터를 보유 ReleaseNotifier 합니다.

ReleaseNotifier *releaseNotifier_;

모듈::Terminate

모듈에 의해 인스턴스화되는 모든 팩터리가 종료됩니다.

void Terminate();

설명

캐시에서 팩터리를 해제합니다.

모듈::UnregisterCOMObject

다른 애플리케이션에서 COM 개체에 연결할 수 없도록 하나 이상의 COM 개체의 등록을 취소합니다.

virtual HRESULT UnregisterCOMObject(
   const wchar_t* serverName,
   DWORD* cookies,
   unsigned int count

매개 변수

serverName
(사용되지 않음)

쿠키
등록 취소한 클래스 개체를 식별하는 값에 대한 포인터 배열입니다. 배열은 RegisterCOMObject 메서드에 의해 만들어졌습니다.

count
등록 취소할 클래스 수입니다.

Return Value

이 작업에 성공하면 S_OK이고, 그렇지 않으면 작업에 실패한 이유를 나타내는 HRESULT 오류가 발생합니다.

Module::UnregisterObjects

다른 애플리케이션에서 지정된 모듈의 개체에 연결할 수 없도록 이 개체의 등록을 취소합니다.

HRESULT UnregisterObjects(
   ModuleBase* module,
   const wchar_t* serverName);

매개 변수

module
모듈에 대한 포인터입니다.

serverName
이 작업으로 영향을 받는 개체의 하위 집합을 지정하는 정규화 이름입니다.

Return Value

이 작업에 성공하면 S_OK이고, 그렇지 않으면 이 작업에 실패한 이유를 나타내는 HRESULT 오류가 발생합니다.

Module::UnregisterWinRTObject

다른 애플리케이션이 연결할 수 없도록 하나 이상의 Windows 런타임 개체를 등록 취소합니다.

virtual HRESULT UnregisterWinRTObject(
   unsigned int,
   _Inout_ WINRT_REGISTRATION_COOKIE* cookie
);

매개 변수

쿠키
등록이 해지된 클래스 개체를 식별하는 값에 대한 포인터입니다.