Objekty pro vytváření tříd a licencování
Chcete-li vytvořit instanci ovládacího prvku OLE, aplikace kontejneru volá členskou funkci objektu pro vytváření tříd ovládacího prvku. Vzhledem k tomu, že váš ovládací prvek je skutečný objekt OLE, je objekt pro vytváření tříd zodpovědný za vytváření instancí vašeho ovládacího prvku. Každá třída ovládacích prvků OLE musí mít objekt pro vytváření tříd.
Další důležitou funkcí ovládacích prvků OLE je schopnost vynutit licenci. ControlWizard umožňuje začlenit licencování během vytváření řídicího projektu. Další informace o licencování ovládacích prvků najdete v článku Ovládací prvky ActiveX: Licencování ovládacího prvku ActiveX.
Následující tabulka uvádí několik maker a funkcí používaných k deklaraci a implementaci objektu pro vytváření tříd vašeho ovládacího prvku a k licencování ovládacího prvku.
Objekty pro vytváření tříd a licencování
Makro nebo funkce | Popis |
---|---|
DECLARE_OLECREATE_EX |
Deklaruje objekt pro vytváření tříd pro ovládací prvek OLE nebo stránku vlastností. |
IMPLEMENT_OLECREATE_EX |
Implementuje funkci ovládacího prvku GetClassID a deklaruje instanci objektu pro vytváření tříd. |
BEGIN_OLEFACTORY |
Zahájí deklaraci všech licenčních funkcí. |
END_OLEFACTORY |
Ukončí deklaraci všech funkcí licencování. |
AfxVerifyLicFile |
Ověřuje, jestli je ovládací prvek licencovaný pro použití v určitém počítači. |
DECLARE_OLECREATE_EX
Deklaruje objekt pro vytváření tříd a GetClassID
členovou funkci vaší třídy řízení.
DECLARE_OLECREATE_EX(class_name)
Parametry
class_name
Název třídy ovládacího prvku.
Poznámky
Toto makro použijte v souboru záhlaví třídy ovládacího prvku pro ovládací prvek, který nepodporuje licencování.
Všimněte si, že toto makro slouží ke stejnému účelu jako v následující ukázce kódu:
BEGIN_OLEFACTORY(CMyAxCtrl)
END_OLEFACTORY(CMyAxCtrl)
Požadavky
Záhlaví afxctl.h
IMPLEMENT_OLECREATE_EX
Implementuje objekt pro vytváření tříd vašeho ovládacího prvku a GetClassID
členskou funkci třídy řízení.
IMPLEMENT_OLECREATE_EX(
class_name,
external_name,
l,
w1,
w2,
b1,
b2,
b3,
b4,
b5,
b6,
b7,
b8)
Parametry
class_name
Název třídy stránky vlastností ovládacího prvku.
external_name
Název objektu vystavený aplikacím.
l
, w1
, , w2
, b2
b6
b1
b3
b4
b5
, b7
b8
Komponenty třídy CLSID
. Další informace o těchto parametrech naleznete v poznámkách pro IMPLEMENT_OLECREATE
.
Poznámky
Toto makro se musí zobrazit v souboru implementace pro všechny třídy ovládacích prvků, které používají DECLARE_OLECREATE_EX
makro nebo BEGIN_OLEFACTORY
makra a END_OLEFACTORY
makra. Externí název je identifikátor ovládacího prvku OLE, který je vystaven jiným aplikacím. Kontejnery používají tento název k vyžádání objektu této třídy ovládacího prvku.
Požadavky
Záhlaví afxctl.h
BEGIN_OLEFACTORY
Zahájí deklaraci objektu pro vytváření tříd v souboru hlaviček třídy vašeho ovládacího prvku.
BEGIN_OLEFACTORY(class_name)
Parametry
class_name
Určuje název třídy ovládacího prvku, jejíž objekt pro vytváření tříd to je.
Poznámky
Deklarace funkcí licencování třídy továrny by měly začít ihned po BEGIN_OLEFACTORY
.
Požadavky
Záhlaví afxctl.h
END_OLEFACTORY
Ukončí deklaraci objektu pro vytváření tříd vašeho ovládacího prvku.
END_OLEFACTORY(class_name)
Parametry
class_name
Název třídy ovládacího prvku, jejíž třída je to továrna.
Požadavky
Záhlaví afxctl.h
AfxVerifyLicFile
Voláním této funkce ověřte, zda je soubor licence pojmenovaný pszLicFileName
pro ovládací prvek OLE platný.
BOOL AFXAPI AfxVerifyLicFile(
HINSTANCE hInstance,
LPCTSTR pszLicFileName,
LPOLESTR pszLicFileContents,
UINT cch = -1);
Parametry
hInstance
Popisovač instance knihovny DLL přidružené k licencované ovládací prvek.
pszLicFileName
Odkazuje na řetězec znaků s ukončenou hodnotou null obsahující název souboru licence.
pszLicFileContents
Odkazuje na posloupnost bajtů, která musí odpovídat sekvenci nalezené na začátku souboru licence.
cch
Počet znaků v pszLicFileContents
Návratová hodnota
Nenulové, pokud soubor licence existuje a začíná sekvencí znaků v pszLicFileContents; jinak 0.
Poznámky
Pokud cch
je -1, použije tato funkce:
_tcslen(pszLicFileContents);
Požadavky
Záhlaví afxctl.h