Aracılığıyla paylaş


CComClassFactorySingleton Sınıfı

Bu sınıf CComClassFactory'den türetilir ve tek bir nesne oluşturmak için CComObjectGlobal kullanır.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

template<class T>
class CComClassFactorySingleton : public CComClassFactory

Parametreler

T
Senin sınıfın.

CComClassFactorySingletonCComClassFactory'den türetilir ve tek bir nesne oluşturmak için CComObjectGlobal kullanır. Yöntemine yapılan CreateInstance her çağrı, bir arabirim işaretçisi için bu nesneyi sorgular.

Üyeler

Genel Yöntemler

Ad Tanım
CComClassFactorySingleton::CreateInstance Arabirim işaretçisi için sorgular m_spObj .

Ortak Veri Üyeleri

Ad Tanım
CComClassFactorySingleton::m_spObj tarafından CComClassFactorySingletonyapılan CComObjectGlobal nesnesi.

Açıklamalar

ATL nesneleri normalde CComCoClass'tan türetilerek bir sınıf fabrikası alır. Bu sınıf, varsayılan sınıf fabrikası olarak bildiren CComClassFactory makro DECLARE_CLASSFACTORY içerir. kullanmak CComClassFactorySingletoniçin nesnenizin sınıf tanımında DECLARE_CLASSFACTORY_SINGLETON makroyu belirtin. Örnek:

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.

Devralma Hiyerarşisi

CComObjectRootBase

Ccomobjectrootex

IClassFactory

CComClassFactory

CComClassFactorySingleton

Gereksinimler

Üst bilgi: atlcom.h

CComClassFactorySingleton::CreateInstance

Arabirim işaretçisini almak için m_spObj aracılığıyla çağrılarQueryInterface.

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

Parametreler

pUnkOuter
[in] Nesne bir toplamanın parçası olarak oluşturuluyorsa, pUnkOuter dış bilinmeyen olmalıdır. Aksi takdirde, pUnkOuter NULL olmalıdır.

Riid
[in] İstenen arabirimin IID değeri. pUnkOuter NULL değilse, riid olmalıdırIID_IUnknown.

ppvObj
[out] riid tarafından tanımlanan arabirim işaretçisine ilişkin bir işaretçi. Nesne bu arabirimi desteklemiyorsa, ppvObj NULL olarak ayarlanır.

İade Değeri

Standart bir HRESULT değeri.

CComClassFactorySingleton::m_spObj

tarafından CComClassFactorySingletonyapılan CComObjectGlobal nesnesi.

CComPtr<IUnknown> m_spObj;

Açıklamalar

CreateInstance yöntemine yapılan her çağrı, bir arabirim işaretçisi için bu nesneyi sorgular.

Geçerli biçiminin, ATL'nin m_spObj önceki sürümlerinde çalışma biçiminden hataya neden olan bir değişiklik sunduğunu CComClassFactorySingleton unutmayın. Önceki sürümlerde CComClassFactorySingleton nesne, sunucu başlatma sırasında sınıf fabrikasıyla aynı anda oluşturulmuştu. Visual C++.NET 2003 ve sonraki sürümlerde nesne, ilk istekte gevşek bir şekilde oluşturulur. Bu değişiklik, erken başlatmayı kullanan programlarda hatalara neden olabilir.

Ayrıca bkz.

IClassFactory
CComClassFactory2 Sınıfı
CComClassFactoryAutoThread Sınıfı
CComObjectRootEx Sınıfı
Ccomglobalsthreadmodel
Sınıfa Genel Bakış