Aracılığıyla paylaş


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, , b4b5, b6, b7,b8
Sınıfının CLSIDbileşenleri. Bu parametreler hakkında daha fazla bilgi için bkz. için IMPLEMENT_OLECREATEAçı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_OLEFACTORYbaş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

Ayrıca bkz.

Makrolar ve genel ayarlar