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.
CComClassFactorySingleton
CComClassFactory'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 CComClassFactorySingleton yapı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 CComClassFactorySingleton
iç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
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.
İade Değeri
Standart bir HRESULT değeri.
CComClassFactorySingleton::m_spObj
tarafından CComClassFactorySingleton
yapı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ış
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin