Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
| Veri Akışı Adı | Açıklama |
|---|---|
| CComClassFactorySingleton::CreateInstance | Arabirim işaretçisi için sorgular m_spObj . |
Ortak Veri Üyeleri
| Veri Akışı Adı | Açıklama |
|---|---|
| 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. Örneğin:
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
IClassFactory
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.
Dönüş 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ış