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
CComClassFactoryAutoThread
je 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
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::Unlock
v 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