Bagikan melalui


Kelas CComClassFactoryAutoThread

Kelas ini mengimplementasikan antarmuka IClassFactory , dan memungkinkan objek dibuat di beberapa apartemen.

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

class CComClassFactoryAutoThread
    : public IClassFactory,
      public CComObjectRootEx<CComGlobalsThreadModel>

Anggota

Metode Publik

Nama Deskripsi
CComClassFactoryAutoThread::CreateInstance Membuat objek DARI CLSID yang ditentukan.
CComClassFactoryAutoThread::LockServer Mengunci pabrik kelas dalam memori.

Keterangan

CComClassFactoryAutoThread mirip dengan CComClassFactory, tetapi memungkinkan objek dibuat di beberapa apartemen. Untuk memanfaatkan dukungan ini, dapatkan modul EXE Anda dari CComAutoThreadModule.

Objek ATL biasanya memperoleh pabrik kelas dengan berasal dari CComCoClass. Kelas ini mencakup DECLARE_CLASSFACTORY makro, yang mendeklarasikan CComClassFactory sebagai pabrik kelas default. Untuk menggunakan CComClassFactoryAutoThread, tentukan makro DECLARE_CLASSFACTORY_AUTO_THREAD dalam definisi kelas objek Anda. Contohnya:

class ATL_NO_VTABLE CMyAutoClass :
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CMyAutoClass, &CLSID_MyAutoClass>,
   public IMyAutoClass
{
public:
   DECLARE_CLASSFACTORY_AUTO_THREAD()

   // Remainder of class declaration omitted.

Hierarki Warisan

CComObjectRootBase

CComObjectRootEx

IClassFactory

CComClassFactoryAutoThread

Persyaratan

Header: atlcom.h

CComClassFactoryAutoThread::CreateInstance

Membuat objek CLSID yang ditentukan dan mengambil penunjuk antarmuka ke objek ini.

STDMETHODIMP 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.

Keterangan

Jika modul Anda berasal dari CComAutoThreadModule, CreateInstance pertama-tama pilih utas untuk membuat objek di apartemen terkait.

CComClassFactoryAutoThread::LockServer

Kenaikan dan penurunan jumlah kunci modul dengan memanggil _Module::Lock dan _Module::Unlock, masing-masing.

STDMETHODIMP LockServer(BOOL fLock);

Parameter

Kawanan
[di] Jika TRUE, jumlah kunci akan bertambah; jika tidak, jumlah kunci diderementasi.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Saat menggunakan CComClassFactoryAutoThread, _Module biasanya mengacu pada instans global CComAutoThreadModule.

Panggilan LockServer memungkinkan klien untuk memegang pabrik kelas sehingga beberapa objek dapat dibuat dengan cepat.

Lihat juga

IClassFactory
Kelas CComClassFactory2
Kelas CComClassFactorySingleton
Kelas CComObjectRootEx
CComGlobalsThreadModel
Gambaran Umum Kelas