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
, , w1
w2
, b1
, b2
, b3
, b4
, b5
, b6
, , , b7
b8
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