Bagikan melalui


Kelas COleObjectFactory

Menerapkan pabrik kelas OLE, yang membuat objek OLE seperti server, objek otomatisasi, dan dokumen.

Sintaks

class COleObjectFactory : public CCmdTarget

Anggota

Konstruktor Publik

Nama Deskripsi
COleObjectFactory::COleObjectFactory Membuat COleObjectFactory objek.

Metode Publik

Nama Deskripsi
COleObjectFactory::GetClassID Mengembalikan ID kelas OLE dari objek yang dibuat pabrik ini.
COleObjectFactory::IsLicenseValid Menentukan apakah lisensi kontrol valid.
COleObjectFactory::IsRegistered Menunjukkan apakah pabrik objek terdaftar di DLL sistem OLE.
COleObjectFactory::Register Mendaftarkan pabrik objek ini dengan DLL sistem OLE.
COleObjectFactory::RegisterAll Mendaftarkan semua pabrik objek aplikasi dengan DLL sistem OLE.
COleObjectFactory::Revoke Mencabut pendaftaran pabrik objek ini dengan DLL sistem OLE.
COleObjectFactory::RevokeAll Mencabut pendaftaran pabrik objek aplikasi dengan DLL sistem OLE.
COleObjectFactory::UnregisterAll Membatalkan pendaftaran semua pabrik objek aplikasi.
COleObjectFactory::UpdateRegistry Mendaftarkan pabrik objek ini dengan registri sistem OLE.
COleObjectFactory::UpdateRegistryAll Mendaftarkan semua pabrik objek aplikasi dengan registri sistem OLE.

Metode yang Dilindungi

Nama Deskripsi
COleObjectFactory::GetLicenseKey Meminta kunci unik dari DLL kontrol.
COleObjectFactory::OnCreateObject Dipanggil oleh kerangka kerja untuk membuat objek baru dari jenis pabrik ini.
COleObjectFactory::VerifyLicenseKey Memverifikasi bahwa kunci yang disematkan dalam kontrol cocok dengan kunci yang disematkan dalam kontainer.
COleObjectFactory::VerifyUserLicense Memverifikasi bahwa kontrol dilisensikan untuk penggunaan waktu desain.

Keterangan

Kelas COleObjectFactory ini memiliki fungsi anggota untuk melakukan fungsi berikut:

  • Mengelola pendaftaran objek.

  • Memperbarui pendaftaran sistem OLE, serta pendaftaran run-time yang memberi tahu OLE bahwa objek berjalan dan siap menerima pesan.

  • Memberlakukan lisensi dengan membatasi penggunaan kontrol kepada pengembang berlisensi pada waktu desain dan ke aplikasi berlisensi pada waktu proses.

  • Mendaftarkan pabrik objek kontrol dengan registri sistem OLE.

Untuk informasi selengkapnya tentang pembuatan objek, lihat artikel Objek Data dan Sumber Data (OLE) dan Objek Data dan Sumber Data: Pembuatan dan Penghancuran. Untuk informasi selengkapnya tentang pendaftaran, lihat artikel Pendaftaran.

Hierarki Warisan

CObject

CCmdTarget

COleObjectFactory

Persyaratan

Header: afxdisp.h

COleObjectFactory::COleObjectFactory

Membuat COleObjectFactory objek, menginisialisasinya sebagai pabrik objek yang tidak terdaftar, dan menambahkannya ke daftar pabrik.

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

Parameter

Clsid
Referensi ke ID kelas OLE yang diwakili pabrik objek ini.

pRuntimeClass
Penunjuk ke kelas run-time objek C++ yang dapat dibuat pabrik ini.

bMultiInstance
Menunjukkan apakah satu instans aplikasi dapat mendukung beberapa instans. Jika TRUE, beberapa instans aplikasi diluncurkan untuk setiap permintaan untuk membuat objek.

nFlags
Berisi satu atau beberapa bendera berikut:

  • afxRegDefault Mengatur model utas ke ThreadingModel=Apartment.

  • afxRegInsertable Memungkinkan kontrol muncul dalam kotak dialog Sisipkan Objek untuk objek OLE.

  • afxRegApartmentThreading Mengatur model utas dalam registri ke ThreadingModel=Apartment.

  • afxRegFreeThreading Mengatur model utas dalam registri ke ThreadingModel=Free.

    Anda dapat menggabungkan dua bendera afxRegApartmentThreading dan afxRegFreeThreading untuk mengatur ThreadingModel=Both. Lihat InprocServer32 di Windows SDK untuk informasi selengkapnya tentang pendaftaran model utas.

lpszProgID
Penunjuk ke string yang berisi pengidentifikasi program verbal, seperti "Microsoft Excel."

Keterangan

Namun, untuk menggunakan objek, Anda harus mendaftarkannya.

Untuk informasi selengkapnya, lihat Kunci CLSID di Windows SDK.

COleObjectFactory::GetClassID

Mengembalikan referensi ke ID kelas OLE yang diwakili pabrik ini.

REFCLSID GetClassID() const;

Tampilkan Nilai

Referensi ke ID kelas OLE yang diwakili pabrik ini.

Keterangan

Untuk informasi selengkapnya, lihat Kunci CLSID di Windows SDK.

COleObjectFactory::GetLicenseKey

Meminta kunci lisensi unik dari DLL kontrol dan menyimpannya di BSTR yang ditujukkan oleh pbstrKey.

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

Parameter

dwReserved
Disiapkan untuk penggunaan masa mendatang.

pbstrKey
Penunjuk ke BSTR yang akan menyimpan kunci lisensi.

Tampilkan Nilai

Bukan nol jika string kunci lisensi bukan NULL; jika tidak, 0.

Keterangan

Implementasi default fungsi ini mengembalikan 0 dan tidak menyimpan apa pun di BSTR. Jika Anda menggunakan MFC ActiveX ControlWizard untuk membuat proyek Anda, ControlWizard menyediakan penimpaan yang mengambil kunci lisensi kontrol.

COleObjectFactory::IsLicenseValid

Menentukan apakah lisensi kontrol valid.

BOOL IsLicenseValid();

Tampilkan Nilai

TRUE jika berhasil; jika tidak salah.

COleObjectFactory::IsRegistered

Mengembalikan nilai bukan nol jika pabrik terdaftar dengan DLL sistem OLE.

virtual BOOL IsRegistered() const;

Tampilkan Nilai

Nonzero jika pabrik terdaftar; jika tidak, 0.

COleObjectFactory::OnCreateObject

Dipanggil oleh kerangka kerja untuk membuat objek baru.

virtual CCmdTarget* OnCreateObject();

Tampilkan Nilai

Penunjuk ke objek yang dibuat. Ini dapat melemparkan pengecualian memori jika gagal.

Keterangan

Ambil alih fungsi ini untuk membuat objek dari sesuatu selain CRuntimeClass yang diteruskan ke konstruktor.

COleObjectFactory::Register

Mendaftarkan pabrik objek ini dengan DLL sistem OLE.

virtual BOOL Register();

Tampilkan Nilai

Nonzero jika pabrik berhasil didaftarkan; jika tidak, 0.

Keterangan

Fungsi ini biasanya dipanggil oleh CWinApp::InitInstance saat aplikasi diluncurkan.

COleObjectFactory::RegisterAll

Mendaftarkan semua pabrik objek aplikasi dengan DLL sistem OLE.

static BOOL PASCAL RegisterAll();

Tampilkan Nilai

Nonzero jika pabrik berhasil didaftarkan; jika tidak, 0.

Keterangan

Fungsi ini biasanya dipanggil oleh CWinApp::InitInstance saat aplikasi diluncurkan.

COleObjectFactory::Revoke

Mencabut pendaftaran pabrik objek ini dengan DLL sistem OLE.

void Revoke();

Keterangan

Kerangka kerja memanggil fungsi ini secara otomatis sebelum aplikasi berakhir. Jika perlu, panggil dari penimpaan CWinApp::ExitInstance.

COleObjectFactory::RevokeAll

Mencabut semua pendaftaran pabrik objek aplikasi dengan DLL sistem OLE.

static void PASCAL RevokeAll();

Keterangan

Kerangka kerja memanggil fungsi ini secara otomatis sebelum aplikasi berakhir. Jika perlu, panggil dari penimpaan CWinApp::ExitInstance.

COleObjectFactory::UnregisterAll

Membatalkan pendaftaran semua pabrik objek aplikasi.

static BOOL PASCAL UnregisterAll();

Tampilkan Nilai

TRUE jika berhasil; jika tidak FALSE.

COleObjectFactory::UpdateRegistry

Mendaftarkan semua pabrik objek aplikasi dengan registri sistem OLE.

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

Parameter

lpszProgID
Penunjuk ke string yang berisi pengidentifikasi program yang dapat dibaca manusia, seperti "Excel.Document.5."

bRegister
Menentukan apakah pabrik objek kelas kontrol akan didaftarkan.

Keterangan

Diskusi singkat dari dua formulir untuk fungsi ini mengikuti:

  • UpdateRegistry(lpszProgID) Mendaftarkan pabrik objek ini dengan registri sistem OLE. Fungsi ini biasanya dipanggil oleh CWinApp::InitInstance saat aplikasi diluncurkan.

  • UpdateRegistry(bRegister) Bentuk fungsi ini dapat diganti. Jika bRegister TRUE, fungsi ini mendaftarkan kelas kontrol dengan registri sistem. Jika tidak, itu membatalkan pendaftaran kelas.

    Jika Anda menggunakan MFC ActiveX ControlWizard untuk membuat proyek Anda, ControlWizard menyediakan penimpaan ke fungsi virtual murni ini.

COleObjectFactory::UpdateRegistryAll

Mendaftarkan semua pabrik objek aplikasi dengan registri sistem OLE.

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

Parameter

bRegister
Menentukan apakah pabrik objek kelas kontrol akan didaftarkan.

Tampilkan Nilai

Nonzero jika pabrik berhasil diperbarui; jika tidak, 0.

Keterangan

Fungsi ini biasanya dipanggil oleh CWinApp::InitInstance saat aplikasi diluncurkan.

COleObjectFactory::VerifyLicenseKey

Memverifikasi bahwa kontainer dilisensikan untuk menggunakan kontrol OLE.

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

Parameter

bstrKey
BSTR yang menyimpan versi kontainer dari string lisensi.

Tampilkan Nilai

Bukan nol jika lisensi run-time valid; jika tidak, 0.

Keterangan

Versi default memanggil GetLicenseKey untuk mendapatkan salinan string lisensi kontrol dan membandingkannya dengan string di bstrKey. Jika dua string cocok, fungsi mengembalikan nilai bukan nol; jika tidak, ia mengembalikan 0.

Anda dapat mengambil alih fungsi ini untuk menyediakan verifikasi lisensi yang disesuaikan.

Fungsi VerifyUserLicense memverifikasi lisensi waktu desain.

COleObjectFactory::VerifyUserLicense

Memverifikasi lisensi waktu desain untuk kontrol OLE.

virtual BOOL VerifyUserLicense();

Tampilkan Nilai

Bukan nol jika lisensi waktu desain valid; jika tidak, 0.

Baca juga

Kelas CCmdTarget
Bagan Hierarki
Kelas COleTemplateServer