Sınıf Oluşturucular ve Lisanslama
BIR kapsayıcı uygulaması, OLE denetiminizin bir örneğini oluşturmak için denetimin sınıf fabrikasının üye işlevini çağırır. Denetiminiz gerçek bir OLE nesnesi olduğundan, denetiminizin örneklerini oluşturmak sınıf fabrikasından sorumludur. Her OLE denetim sınıfının bir sınıf fabrikası olmalıdır.
OLE denetimlerinin bir diğer önemli özelliği de lisansı zorunlu kılabilmesidir. ControlWizard, denetim projenizi oluştururken lisanslama özelliğine sahip olmanıza olanak tanır. Denetim lisanslama hakkında daha fazla bilgi için ActiveX Denetimleri: ActiveX Denetimi Lisanslama makalesine bakın.
Aşağıdaki tabloda, denetiminizin sınıf fabrikasını bildirmek ve uygulamak ve denetiminizin lisansını almak için kullanılan çeşitli makrolar ve işlevler listelenmiştir.
Sınıf Oluşturucular ve Lisanslama
Makro veya işlev | Açıklama |
---|---|
DECLARE_OLECREATE_EX |
Bir OLE denetimi veya özellik sayfası için sınıf fabrikasını bildirir. |
IMPLEMENT_OLECREATE_EX |
Denetimin GetClassID işlevini uygular ve sınıf fabrikasının bir örneğini bildirir. |
BEGIN_OLEFACTORY |
Herhangi bir lisanslama işlevinin bildirimini başlatır. |
END_OLEFACTORY |
Herhangi bir lisanslama işlevinin bildirimini sonlandırır. |
AfxVerifyLicFile |
Bir denetimin belirli bir bilgisayarda kullanım için lisanslanıp lisanslanmadığını doğrular. |
DECLARE_OLECREATE_EX
Bir sınıf fabrikasını GetClassID
ve denetim sınıfınızın üye işlevini bildirir.
DECLARE_OLECREATE_EX(class_name)
Parametreler
class_name
Denetim sınıfının adı.
Açıklamalar
Lisanslama desteği olmayan bir denetim için denetim sınıfı üst bilgi dosyasında bu makroyu kullanın.
Bu makronun aşağıdaki kod örneğiyle aynı amaca hizmet ettiğini unutmayın:
BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)
Gereksinimler
Üst bilgi afxctl.h
IMPLEMENT_OLECREATE_EX
Denetiminizin sınıf fabrikasını GetClassID
ve denetim sınıfınızın üye işlevini uygular.
IMPLEMENT_OLECREATE_EX(
class_name,
external_name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8)
Parametreler
class_name
Denetim özelliği sayfa sınıfının adı.
external_name
Uygulamalara sunulan nesne adı.
l
, w1
, , w2
, b1
, b2
, b3
, , b4
b5
, b6
, b7
,b8
Sınıfının CLSID
bileşenleri. Bu parametreler hakkında daha fazla bilgi için bkz. için IMPLEMENT_OLECREATE
Açıklamalar.
Açıklamalar
Bu makro, makroyu veya BEGIN_OLEFACTORY
ve END_OLEFACTORY
makrolarını kullanan DECLARE_OLECREATE_EX
herhangi bir denetim sınıfı için uygulama dosyasında görünmelidir. Dış ad, diğer uygulamalara sunulan OLE denetiminin tanımlayıcısıdır. Kapsayıcılar bu denetim sınıfının bir nesnesini istemek için bu adı kullanır.
Gereksinimler
Üst bilgi afxctl.h
BEGIN_OLEFACTORY
Denetim sınıfınızın üst bilgi dosyasında sınıf fabrikanızın bildirimini başlatır.
BEGIN_OLEFACTORY(class_name)
Parametreler
class_name
Bu sınıf fabrikası olan denetim sınıfının adını belirtir.
Açıklamalar
Sınıf fabrikası lisanslama işlevlerinin bildirimleri hemen sonrasında BEGIN_OLEFACTORY
başlamalıdır.
Gereksinimler
Üst bilgi afxctl.h
END_OLEFACTORY
Denetiminizin sınıf fabrikasının bildirimini sonlandırır.
END_OLEFACTORY(class_name)
Parametreler
class_name
Bu sınıf fabrikası olan denetim sınıfının adı.
Gereksinimler
Üst bilgi afxctl.h
AfxVerifyLicFile
tarafından pszLicFileName
adlı lisans dosyasının OLE denetimi için geçerli olduğunu doğrulamak için bu işlevi çağırın.
BOOL AFXAPI AfxVerifyLicFile(
HINSTANCE hInstance,
LPCTSTR pszLicFileName,
LPOLESTR pszLicFileContents,
UINT cch = -1);
Parametreler
hInstance
Lisanslı denetimle ilişkili DLL'nin örnek tanıtıcısı.
pszLicFileName
Lisans dosya adını içeren null olarak sonlandırılan karakter dizesini gösterir.
pszLicFileContents
Lisans dosyasının başında bulunan diziyle eşleşmesi gereken bir bayt dizisine işaret edin.
cch
pszLicFileContents içindeki karakter sayısı.
Dönüş Değeri
Lisans dosyası varsa ve pszLicFileContents içindeki karakter dizisiyle başlıyorsa sıfır olmayan; aksi takdirde 0.
Açıklamalar
-1 ise cch
, bu işlev şunları kullanır:
_tcslen(pszLicFileContents);
Gereksinimler
Üst bilgi afxctl.h