Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kelas ini berasal dari CComClassFactory dan menggunakan CComObjectGlobal untuk membangun satu objek.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
template<class T>
class CComClassFactorySingleton : public CComClassFactory
Parameter
T
Kelas Anda.
CComClassFactorySingleton berasal dari CComClassFactory dan menggunakan CComObjectGlobal untuk membangun satu objek. Setiap panggilan ke CreateInstance metode hanya mengkueri objek ini untuk penunjuk antarmuka.
Anggota
Metode Publik
| Nama | Deskripsi |
|---|---|
| CComClassFactorySingleton::CreateInstance | Kueri m_spObj untuk penunjuk antarmuka. |
Anggota Data Publik
| Nama | Deskripsi |
|---|---|
| CComClassFactorySingleton::m_spObj | Objek CComObjectGlobal yang dibangun oleh CComClassFactorySingleton. |
Keterangan
Objek ATL biasanya memperoleh pabrik kelas dengan berasal dari CComCoClass. Kelas ini mencakup DECLARE_CLASSFACTORY makro, yang menyatakan CComClassFactory sebagai pabrik kelas default. Untuk menggunakan CComClassFactorySingleton, tentukan makro DECLARE_CLASSFACTORY_SINGLETON dalam definisi kelas objek Anda. Contohnya:
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.
Hierarki Warisan
CComObjectRootBase
IClassFactory
CComClassFactorySingleton
Persyaratan
Header: atlcom.h
CComClassFactorySingleton::CreateInstance
QueryInterface Memanggil melalui m_spObj untuk mengambil penunjuk antarmuka.
STDMETHOD(CreateInstance)(LPUNKNOWN pUnkOuter, REFIID riid, void** ppvObj);
Parameter
pUnkOuter
[di] Jika objek sedang dibuat sebagai bagian dari agregat, maka pUnkOuter harus menjadi bagian luar yang tidak diketahui. Jika tidak, pUnkOuter harus NULL.
riid
[masuk] IID antarmuka yang diminta . Jika pUnkOuter non-NULL, riid harus IID_IUnknown.
ppvObj
[out] Penunjuk ke penunjuk antarmuka yang diidentifikasi oleh riid. Jika objek tidak mendukung antarmuka ini, ppvObj diatur ke NULL.
Tampilkan Nilai
Nilai HRESULT standar.
CComClassFactorySingleton::m_spObj
Objek CComObjectGlobal yang dibangun oleh CComClassFactorySingleton.
CComPtr<IUnknown> m_spObj;
Keterangan
Setiap panggilan ke metode CreateInstance hanya mengkueri objek ini untuk penunjuk antarmuka.
Perhatikan bahwa bentuk m_spObj saat ini menyajikan perubahan yang melanggar dari cara kerja CComClassFactorySingleton di versi ATL sebelumnya. Dalam versi sebelumnya objek dibuat pada saat yang sama dengan pabrik kelas, selama inisialisasi CComClassFactorySingleton server. Di Visual C++.NET 2003 dan yang lebih baru, objek dibuat dengan malas, pada permintaan pertama. Perubahan ini dapat menyebabkan kesalahan dalam program yang mengandalkan inisialisasi awal.
Lihat juga
IClassFactory
Kelas CComClassFactory2
Kelas CComClassFactoryAutoThread
Kelas CComObjectRootEx
CComGlobalsThreadModel
Gambaran Umum Kelas