Sdílet prostřednictvím


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, b2b6b1b3b4b5, b7b8
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

Viz také

Makra a globální objekty