Bagikan melalui


Pabrik kelas dan Lisensi

Untuk membuat instans kontrol OLE Anda, aplikasi kontainer memanggil fungsi anggota pabrik kelas kontrol. Karena kontrol Anda adalah objek OLE yang sebenarnya, pabrik kelas bertanggung jawab untuk membuat instans kontrol Anda. Setiap kelas kontrol OLE harus memiliki pabrik kelas.

Fitur penting lain dari kontrol OLE adalah kemampuan mereka untuk memberlakukan lisensi. ControlWizard memungkinkan Anda menggabungkan lisensi selama pembuatan proyek kontrol Anda. Untuk informasi selengkapnya tentang lisensi kontrol, lihat artikel Kontrol ActiveX: Lisensi Kontrol ActiveX.

Tabel berikut mencantumkan beberapa makro dan fungsi yang digunakan untuk mendeklarasikan dan mengimplementasikan pabrik kelas kontrol Anda dan untuk melisensikan kontrol Anda.

Pabrik kelas dan Lisensi

Makro atau fungsi Deskripsi
DECLARE_OLECREATE_EX Mendeklarasikan pabrik kelas untuk kontrol OLE atau halaman properti.
IMPLEMENT_OLECREATE_EX Menerapkan fungsi kontrol GetClassID dan mendeklarasikan instans pabrik kelas.
BEGIN_OLEFACTORY Memulai deklarasi fungsi lisensi apa pun.
END_OLEFACTORY Mengakhiri deklarasi fungsi lisensi apa pun.
AfxVerifyLicFile Memverifikasi apakah kontrol dilisensikan untuk digunakan pada komputer tertentu.

DECLARE_OLECREATE_EX

Mendeklarasikan pabrik kelas dan GetClassID fungsi anggota kelas kontrol Anda.

DECLARE_OLECREATE_EX(class_name)

Parameter

class_name
Nama kelas kontrol.

Keterangan

Gunakan makro ini dalam file header kelas kontrol untuk kontrol yang tidak mendukung lisensi.

Perhatikan bahwa makro ini melayani tujuan yang sama dengan sampel kode berikut:

BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)

Persyaratan

Header afxctl.h

IMPLEMENT_OLECREATE_EX

Mengimplementasikan pabrik kelas kontrol Anda dan GetClassID fungsi anggota kelas kontrol Anda.

IMPLEMENT_OLECREATE_EX(
   class_name,
    external_name,
    l,
    w1,
    w2,
    b1,
    b2,
    b3,
    b4,
    b5,
    b6,
    b7,
    b8)

Parameter

class_name
Nama kelas halaman properti kontrol.

external_name
Nama objek yang diekspos ke aplikasi.

l, , w1w2, b1, b2, b3, b4, b5, b6, , , b7b8
Komponen kelas CLSID. Untuk informasi selengkapnya tentang parameter ini, lihat Komentar untuk IMPLEMENT_OLECREATE.

Keterangan

Makro ini harus muncul dalam file implementasi untuk kelas kontrol apa pun yang menggunakan DECLARE_OLECREATE_EX makro atau BEGIN_OLEFACTORY makro dan END_OLEFACTORY . Nama eksternal adalah pengidentifikasi kontrol OLE yang terekspos ke aplikasi lain. Kontainer menggunakan nama ini untuk meminta objek kelas kontrol ini.

Persyaratan

Header afxctl.h

BEGIN_OLEFACTORY

Memulai deklarasi pabrik kelas Anda di file header kelas kontrol Anda.

BEGIN_OLEFACTORY(class_name)

Parameter

class_name
Menentukan nama kelas kontrol yang pabrik kelasnya ini.

Keterangan

Deklarasi fungsi lisensi pabrik kelas harus dimulai segera setelah BEGIN_OLEFACTORY.

Persyaratan

Header afxctl.h

END_OLEFACTORY

Mengakhiri deklarasi pabrik kelas kontrol Anda.

END_OLEFACTORY(class_name)

Parameter

class_name
Nama kelas kontrol yang pabrik kelasnya ini.

Persyaratan

Header afxctl.h

AfxVerifyLicFile

Panggil fungsi ini untuk memverifikasi bahwa file lisensi bernama oleh pszLicFileName valid untuk kontrol OLE.

BOOL AFXAPI AfxVerifyLicFile(
    HINSTANCE  hInstance,
    LPCTSTR  pszLicFileName,
    LPOLESTR  pszLicFileContents,
    UINT cch = -1);

Parameter

hInstance
Handel instans DLL yang terkait dengan kontrol berlisensi.

pszLicFileName
Menunjuk ke string karakter null-terminated yang berisi nama file lisensi.

pszLicFileContents
Menunjuk ke urutan byte yang harus cocok dengan urutan yang ditemukan di awal file lisensi.

cch
Jumlah karakter dalam pszLicFileContents.

Tampilkan Nilai

Nonzero jika file lisensi ada dan dimulai dengan urutan karakter di pszLicFileContents; jika tidak, 0.

Keterangan

Jika cch -1, fungsi ini menggunakan:

_tcslen(pszLicFileContents);

Persyaratan

Header afxctl.h

Lihat juga

Makro dan global