Sdílet prostřednictvím


CComClassFactoryAutoThread – třída

Tato třída implementuje IClassFactory rozhraní a umožňuje vytvářet objekty v několika apartmánech.

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

class CComClassFactoryAutoThread
    : public IClassFactory,
      public CComObjectRootEx<CComGlobalsThreadModel>

Členové

Veřejné metody

Název Popis
CComClassFactoryAutoThread::CreateInstance Vytvoří objekt zadaného CLSID.
CComClassFactoryAutoThread::LockServer Uzamkne objekt pro vytváření tříd v paměti.

Poznámky

CComClassFactoryAutoThreadje podobný CComClassFactory, ale umožňuje vytváření objektů ve více apartmánech. Pokud chcete využít tuto podporu, odvodit modul EXE z CComAutoThreadModule.

Objekty ATL obvykle získávají objekt pro vytváření tříd odvozením z CComCoClass. Tato třída obsahuje DECLARE_CLASSFACTORY makra, které deklaruje CComClassFactory jako výchozí objekt pro vytváření tříd. Chcete-li použít CComClassFactoryAutoThread, zadejte DECLARE_CLASSFACTORY_AUTO_THREAD makro v definici třídy objektu. Příklad:

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.

Hierarchie dědičnosti

CComObjectRootBase

CComObjectRootEx

IClassFactory

CComClassFactoryAutoThread

Požadavky

Hlavička: atlcom.h

CComClassFactoryAutoThread::CreateInstance

Vytvoří objekt zadaného CLSID a načte ukazatel rozhraní na tento objekt.

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

Parametry

pUnkOuter
[v] Pokud se objekt vytváří jako součást agregace, musí být pUnkOuter vnějším neznámým objektem. V opačném případě musí být hodnota pUnkOuter null.

riid
[v] IID požadovaného rozhraní. Pokud hodnota pUnkOuter není null, riid musí být IID_IUnknown.

ppvObj
[ven] Ukazatel na ukazatel rozhraní identifikovaný riidem. Pokud objekt nepodporuje toto rozhraní, ppvObj je nastaven na HODNOTU NULL.

Návratová hodnota

Standardní hodnota HRESULT.

Poznámky

Pokud je modul odvozen z CComAutoThreadModule, CreateInstance nejprve vybere vlákno pro vytvoření objektu v přidruženém bytě.

CComClassFactoryAutoThread::LockServer

Zvýší a sníží počet zámků modulu voláním _Module::Lock a _Module::Unlockv uvedeném pořadí.

STDMETHODIMP LockServer(BOOL fLock);

Parametry

hejno
[v] Je-li pravda, počet zámků se zvýší; jinak se počet zámků sníží.

Návratová hodnota

Standardní hodnota HRESULT.

Poznámky

Při použití CComClassFactoryAutoThread, _Module obvykle odkazuje na globální instanci CComAutoThreadModule.

Volání LockServer umožňuje klientovi držet se objektu pro vytváření tříd, aby bylo možné rychle vytvořit více objektů.

Viz také

IClassFactory
CComClassFactory2 – třída
CComClassFactorySingleton – třída
CComObjectRootEx – třída
CComGlobalsThreadModel
Přehled třídy