Klasa CComClassFactorySingleton
Ta klasa pochodzi z klasy CComClassFactory i używa obiektu CComObjectGlobal do konstruowania pojedynczego obiektu.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
template<class T>
class CComClassFactorySingleton : public CComClassFactory
Parametry
T
Klasa.
CComClassFactorySingleton
element pochodzi z klasy CComClassFactory i używa obiektu CComObjectGlobal do konstruowania pojedynczego obiektu. Każde wywołanie CreateInstance
metody po prostu odpytuje ten obiekt dla wskaźnika interfejsu.
Elementy członkowskie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CComClassFactorySingleton::CreateInstance | Zapytania m_spObj dotyczące wskaźnika interfejsu. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CComClassFactorySingleton::m_spObj | Obiekt CComObjectGlobal skonstruowany przez CComClassFactorySingleton element . |
Uwagi
Obiekty ATL zwykle uzyskują fabrykę klas, wyprowadzając je z klasy CComCoClass. Ta klasa zawiera DECLARE_CLASSFACTORY makra, które deklaruje CComClassFactory
jako domyślną fabrykę klas. Aby użyć CComClassFactorySingleton
metody , określ makro DECLARE_CLASSFACTORY_SINGLETON w definicji klasy obiektu. Na przykład:
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.
Hierarchia dziedziczenia
CComObjectRootBase
IClassFactory
CComClassFactorySingleton
Wymagania
Nagłówek: atlcom.h
CComClassFactorySingleton::CreateInstance
Wywołuje QueryInterface
m_spObj w celu pobrania wskaźnika interfejsu.
STDMETHOD(CreateInstance)(LPUNKNOWN pUnkOuter, REFIID riid, void** ppvObj);
Parametry
pUnkOuter
[in] Jeśli obiekt jest tworzony w ramach agregacji, element pUnkOuter musi być zewnętrznym nieznanym obiektem. W przeciwnym razie pUnkOuter musi mieć wartość NULL.
riid
[in] Identyfikator IID żądanego interfejsu. Jeśli parametr pUnkOuter ma wartość inną niż NULL, riid musi mieć wartość IID_IUnknown
.
ppvObj
[out] Wskaźnik do wskaźnika interfejsu zidentyfikowany przez riid. Jeśli obiekt nie obsługuje tego interfejsu, parametr ppvObj ma wartość NULL.
Wartość zwracana
Standardowa wartość HRESULT.
CComClassFactorySingleton::m_spObj
Obiekt CComObjectGlobal skonstruowany przez CComClassFactorySingleton
element .
CComPtr<IUnknown> m_spObj;
Uwagi
Każde wywołanie metody CreateInstance po prostu wysyła zapytanie do tego obiektu dla wskaźnika interfejsu.
Należy zauważyć, że bieżąca forma m_spObj
przedstawia zmianę powodującą niezgodność ze sposobem CComClassFactorySingleton
działania w poprzednich wersjach atl. W poprzednich wersjach CComClassFactorySingleton
obiekt został utworzony w tym samym czasie co fabryka klas podczas inicjowania serwera. W programie Visual C++.NET 2003 lub nowszym obiekt jest tworzony z opóźnieniem w pierwszym żądaniu. Ta zmiana może spowodować błędy w programach, które opierają się na wczesnej inicjalizacji.
Zobacz też
IClassFactory
Klasa CComClassFactory2
Klasa CComClassFactoryAutoThread
Klasa CComObjectRootEx
CComGlobalsThreadModel
Omówienie klasy