다음을 통해 공유


CComClassFactoryAutoThread 클래스

이 클래스는 IClassFactory 인터페이스를 구현하고 여러 아파트에서 개체를 만들 수 있습니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CComClassFactoryAutoThread
    : public IClassFactory,
      public CComObjectRootEx<CComGlobalsThreadModel>

멤버

공용 메서드

이름 설명
CComClassFactoryAutoThread::CreateInstance 지정된 CLSID의 개체를 만듭니다.
CComClassFactoryAutoThread::LockServer 클래스 팩터리를 메모리에 잠급 수 있습니다.

설명

CComClassFactoryAutoThread는 CComClassFactory와 비슷하지만 여러 아파트에서 개체를 만들 수 있습니다. 이 지원을 활용하려면 CComAutoThreadModule에서 EXE 모듈을 파생합니다.

ATL 개체는 일반적으로 CComCoClass에서 파생하여 클래스 팩터리를 획득합니다. 이 클래스에는 CComClassFactory기본 클래스 팩터리로 선언하는 매크로 DECLARE_CLASSFACTORY 포함됩니다. 사용 CComClassFactoryAutoThread하려면 개체의 클래스 정의에서 DECLARE_CLASSFACTORY_AUTO_THREAD 매크로를 지정합니다. 예시:

class ATL_NO_VTABLE CMyAutoClass :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CMyAutoClass, &CLSID_MyAutoClass>,
   public IMyAutoClass
{
public:
   DECLARE_CLASSFACTORY_AUTO_THREAD()

   // Remainder of class declaration omitted.

상속 계층 구조

CComObjectRootBase

CComObjectRootEx

IClassFactory

CComClassFactoryAutoThread

요구 사항

헤더: atlcom.h

CComClassFactoryAutoThread::CreateInstance

지정된 CLSID의 개체를 만들고 이 개체에 대한 인터페이스 포인터를 검색합니다.

STDMETHODIMP CreateInstance(
    LPUNKNOWN pUnkOuter,
    REFIID riid,
    void** ppvObj);

매개 변수

pUnkOuter
[in] 개체가 집계 의 일부로 만들어지는 경우 pUnkOuter 는 알 수 없는 외부여야 합니다. 그렇지 않으면 pUnkOuter는 NULL이어야 합니다.

riid
[in] 요청된 인터페이스의 IID입니다. pUnkOuter가 NULL이 아닌 경우 riid는 .이어야 IID_IUnknown합니다.

ppvObj
[out] riid로 식별되는 인터페이스 포인터에 대한 포인터입니다. 개체가 이 인터페이스 를 지원하지 않으면 ppvObj 가 NULL로 설정됩니다.

Return Value

표준 HRESULT 값입니다.

설명

모듈이 CComAutoThreadModuleCreateInstance에서 파생되는 경우 먼저 연결된 아파트에서 개체를 만들 스레드를 선택합니다.

CComClassFactoryAutoThread::LockServer

각각 호출 _Module::Lock 하여 모듈 잠금 수를 증가 및 _Module::Unlock감소합니다.

STDMETHODIMP LockServer(BOOL fLock);

매개 변수

fLock
[in] TRUE이면 잠금 수가 증가합니다. 그렇지 않으면 잠금 수가 감소합니다.

Return Value

표준 HRESULT 값입니다.

설명

사용하는 CComClassFactoryAutoThread_Module 경우 일반적으로 CComAutoThreadModule의 전역 인스턴스를 참조합니다.

호출 LockServer 을 사용하면 여러 개체를 빠르게 만들 수 있도록 클라이언트가 클래스 팩터리를 유지할 수 있습니다.

참고 항목

IClassFactory
CComClassFactory2 클래스
CComClassFactorySingleton 클래스
CComObjectRootEx 클래스
CComGlobalsThreadModel
클래스 개요