Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Knihovna ATL (Active Template Library) se nadále podporuje. Už ale nepřidáme funkce ani aktualizujeme dokumentaci.
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
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