CComClassFactorySingleton – třída
Tato třída je odvozena z CComClassFactory a používá CComObjectGlobal k vytvoření jednoho objektu.
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
template<class T>
class CComClassFactorySingleton : public CComClassFactory
Parametry
T
Tvůj předmět.
CComClassFactorySingleton
je odvozen z CComClassFactory a používá CComObjectGlobal k vytvoření jednoho objektu. Každé volání CreateInstance
metody jednoduše dotazuje tento objekt pro ukazatel rozhraní.
Členové
Veřejné metody
Název | Popis |
---|---|
CComClassFactorySingleton::CreateInstance | m_spObj Dotazy na ukazatel rozhraní |
Veřejné datové členy
Název | Popis |
---|---|
CComClassFactorySingleton::m_spObj | Objekt CComObjectGlobal vytvořený objektem CComClassFactorySingleton . |
Poznámky
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 CComClassFactorySingleton
, zadejte DECLARE_CLASSFACTORY_SINGLETON makro v definici třídy objektu. Příklad:
class ATL_NO_VTABLE CMySingletonClass :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMySingletonClass, &CLSID_MySingletonClass>,
public IMySingletonClass
{
public:
DECLARE_CLASSFACTORY_SINGLETON(CMySingletonClass)
// Remainder of class declaration omitted.
Hierarchie dědičnosti
CComObjectRootBase
IClassFactory
CComClassFactorySingleton
Požadavky
Hlavička: atlcom.h
CComClassFactorySingleton::CreateInstance
Volání QueryInterface
prostřednictvím m_spObj k načtení ukazatele rozhraní.
STDMETHOD(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.
CComClassFactorySingleton::m_spObj
Objekt CComObjectGlobal vytvořený objektem CComClassFactorySingleton
.
CComPtr<IUnknown> m_spObj;
Poznámky
Každé volání Metody CreateInstance jednoduše dotazuje tento objekt na ukazatel rozhraní.
Všimněte si, že aktuální forma m_spObj
představuje zásadní změnu způsobu, jakým CComClassFactorySingleton
fungovalo v předchozích verzích ATL. V předchozích verzích CComClassFactorySingleton
byl objekt vytvořen ve stejnou dobu jako objekt pro vytváření tříd během inicializace serveru. V sadě Visual C++.NET 2003 a novějších se objekt vytvoří laziálně při prvním požadavku. Tato změna může způsobit chyby v programech, které spoléhají na počáteční inicializaci.
Viz také
IClassFactory
CComClassFactory2 – třída
CComClassFactoryAutoThread – třída
CComObjectRootEx – třída
CComGlobalsThreadModel
Přehled třídy