Sdílet prostřednictvím


Ovládací prvky MFC ActiveX: Licencování ovládací prvek ActiveX

Licenční podpora volitelná funkce ovládacích prvků ActiveX umožňuje řídit, kdo je schopen používat nebo distribuovat ovládacího prvku.(Další diskusi o licencování naleznete licenční problémy v inovace existujícího ovládacího prvku ActiveX.)

Tento článek pojednává o následujících tématech:

  • Přehled licencování ovládací prvek ActiveX

  • Vytvoření licencované ovládacího prvku

  • Licenční podpora

  • Přizpůsobení licencí ovládací prvek ActiveX

Ovládací prvky ActiveX, které implementují licencí umožňují, jako vývojář řízení určit, jak budou ostatní uživatelé používají ovládací prvek ActiveX.Poskytnout kupujícímu ovládací prvek a.LIC soubor s dohodou, že kupující může distribuovat ovládacího prvku, ale.LIC soubor s aplikací, která používá ovládací prvek.To zabrání uživatelům této aplikace z psaní nové aplikace, které používají ovládací prvek, bez první licenční řízení od vás.

Přehled licencování ovládací prvek ActiveX

Poskytuje podporu licencí pro ovládací prvky ActiveX COleObjectFactory třída poskytuje několik funkcí v implementaci IClassFactory2 rozhraní: IClassFactory2::RequestLicKey, IClassFactory2::GetLicInfo, a IClassFactory2::CreateInstanceLic.Pokud vývojář aplikace kontejneru vytvoří požadavek na vytvoření instance ovládacího prvku volání GetLicInfo na ověřte, zda ovládací prvek.Je-li přítomen soubor LIC.Pokud ovládací prvek je licencován, instanci ovládacího prvku lze vytvořit a umístěny v kontejneru.Po dokončení vytváření aplikace kontejneru vývojář jinou funkci volat, tentokrát s RequestLicKey, je.Tato funkce vrátí licenční klíč (znak jednoduchý řetězec) aplikace kontejneru.Vrácené klíč pak vložený v aplikaci.

Následující obrázek znázorňuje ověření licence ovládacího prvku ActiveX, který bude použit při vývoji aplikací kontejneru.Jak bylo uvedeno dříve, vývojář aplikace kontejneru musí být správné.LIC soubor nainstalovaný v počítači vývoj k vytvoření instance ovládacího prvku.

Ověření během vývoje licencované ovládacího prvku ActiveX

Ověření vývoje licencovaného ovládacího prvku ActiveX

Při spuštění aplikace kontejneru dojde k další akci, ukazuje následující obrázek.

Při spuštění aplikace instanci ovládacího prvku obvykle musí být vytvořen.Kontejner dosahuje tím, že volání CreateInstanceLic, předávání vložených licenční klíč jako parametr.Mezi vložený licenční klíč a ovládacího prvku kopii licenční klíč se potom provede porovnání řetězců.Pokud shoda je úspěšný, vytvoření instance ovládacího prvku a pokračuje normálně spustit aplikace.Všimněte si, že.LIC soubor nemusí být přítomen v počítači uživatele ovládacího prvku.

Ověření během spuštění licencované ovládacího prvku ActiveX

Ověření spuštění licencovaného ovládacího prvku ActiveX

Licenční řízení se skládá ze dvou základních součástí: určitý kód řízení provádění DLL a soubor licence.Kód se skládá ze dvou (nebo případně tři) volání funkce a řetězec znaků, dále jen "licenční řetězec", obsahující upozornění na autorská práva.Tyto hovory a řetězec licence, které se nacházejí v provádění řízení (.Soubor CPP).Soubor licence generována pomocí průvodce ovládací prvek ActiveX, je textový soubor s uvedením autorských práv.Pojmenován název projektu s pomocí.Rozšíření LIC například vzorku.LIC.Soubor licence přiloží potřeby použití návrhu licenční řízení.

Vytvoření licencované ovládacího prvku

Vytvoření rámce řízení pomocí průvodce ovládací prvek ActiveX, je snadno zahrnout podporu licencí.Určíte, že ovládací prvek by měly mít licenci spuštění průvodce ovládací prvek ActiveX přidá kód třídy řízení podpory správy licencí.Kód obsahuje funkce, které použít pro ověření licenční klíč a licenční soubor.Tyto funkce lze také upravit upravit licenční řízení.Další informace o přizpůsobení licencí, viz přizpůsobení Licensing ovládacího prvku ActiveX dále v tomto článku.

Přidání podpory správy licencí pomocí průvodce ovládací prvek ActiveX při vytváření řízení projektu

Průvodce ovládací prvek ActiveX nyní vygeneruje framework ovládací prvek ActiveX zahrnuje základní podporu správy licencí.Podrobné vysvětlení licenční kód naleznete další téma.

Licenční podpora

Přidat podporu licencí ovládacího prvku ActiveX použijete průvodce ovládací prvek ActiveX, přidá průvodce ovládací prvek ActiveX kód deklaruje a implementuje funkce správy licencí je přidán k hlavičce řízení a provádění soubory.Tento kód se skládá z VerifyUserLicense členské funkce a GetLicenseKey funkci členu přepsat výchozí implementace, v COleObjectFactory .Tyto funkce načíst a ověřit licenční řízení.

[!POZNÁMKA]

Třetí členské funkce VerifyLicenseKey průvodce ovládací prvek ActiveX není generované, ale může být přepsána přizpůsobit chování licence ověření klíče.

Tyto funkce členů jsou:

  • VerifyUserLicense

    Ověří, že ovládací prvek umožňuje použití návrhu kontrolou systému přítomnost souboru licenční řízení.Tato funkce se nazývá rámcem jako součást zpracování IClassFactory2::GetLicInfo a IClassFactory::CreateInstanceLic.

  • GetLicenseKey 

    Jedinečný klíč požadavky knihovna DLL ovládacího prvku.Tento klíč je vložený v kontejnerové aplikaci a později použít ve spojení s VerifyLicenseKey, k vytvoření instance ovládacího prvku.Tato funkce se nazývá rámcem jako součást zpracování IClassFactory2::RequestLicKey.

  • VerifyLicenseKey 

    Ověří, že vložený klíče a jedinečné klíče ovládacího prvku jsou stejné.To umožňuje kontejner pro vytvoření instance ovládacího prvku pro jeho použití.Tato funkce se nazývá rámcem jako součást zpracování IClassFactory2::CreateInstanceLic a může být přepsána poskytovat vlastní ověření licenčního klíče.Výchozí implementace porovnání řetězců.Další informace naleznete v přizpůsobení Licensing ovládacího prvku ActiveX, dále v tomto článku.

9dwf178y.collapse_all(cs-cz,VS.110).gifÚpravy souboru hlaviček

Průvodce ovládací prvek ActiveX umístí následující kód v záhlaví souboru ovládacího prvku.V tomto příkladu je funkce dvou členů z CSampleCtrlpro objekt factory jsou deklarovány, který ověří přítomnost ovládacího prvku.Soubor LIC a druhý, který načte licenční klíč pro použití v aplikaci obsahující ovládací prvek:

BEGIN_OLEFACTORY(CMyAxUICtrl)        // Class factory and guid
   virtual BOOL VerifyUserLicense();
   virtual BOOL GetLicenseKey(DWORD, BSTR FAR*);
END_OLEFACTORY(CMyAxUICtrl)

9dwf178y.collapse_all(cs-cz,VS.110).gifProvedení změny souboru

Průvodce ovládací prvek ActiveX umístí soubor provádění řízení prohlásit název_souboru licence a licence řetězec následující dva příkazy:

static const TCHAR BASED_CODE _szLicFileName[] = _T("NVC_MFC_AxUI.lic");

static const WCHAR BASED_CODE _szLicString[] = L"Copyright (c) 2006 ";

[!POZNÁMKA]

Pokud upravíte szLicString jakýmkoli způsobem je rovněž nutné upravit první řádek v ovládacím prvku.LIC soubor nebo licencí nebude pracovat správně.

Průvodce ovládací prvek ActiveX umístí soubor řízení provádění control class definovat následující kód VerifyUserLicense a GetLicenseKey funkcí:

// CMyAxUICtrl::CMyAxUICtrlFactory::VerifyUserLicense -
// Checks for existence of a user license

BOOL CMyAxUICtrl::CMyAxUICtrlFactory::VerifyUserLicense()
{
   return AfxVerifyLicFile(AfxGetInstanceHandle(), _szLicFileName, _szLicString);
}

// CMyAxUICtrl::CMyAxUICtrlFactory::GetLicenseKey -
// Returns a runtime licensing key

BOOL CMyAxUICtrl::CMyAxUICtrlFactory::GetLicenseKey(DWORD /*dwReserved*/,
   BSTR FAR* pbstrKey)
{
   if (pbstrKey == NULL)
      return FALSE;

   *pbstrKey = SysAllocString(_szLicString);
   return (*pbstrKey != NULL);
}

Nakonec Průvodce ovládací prvek ActiveX upravuje řízení projektu.IDL souboru.Licenci je klíčové slovo do prohlášení coclass ovládacího prvku, jako v následujícím příkladu:

[ uuid(913E450B-E720-4C71-BCDF-71C96EE98FEB), licensed,
  helpstring("MyAxUI Control"), control ]
coclass NVC_MFC_AxUI

Přizpůsobení licencí ovládací prvek ActiveX

Protože VerifyUserLicense, GetLicenseKey, a VerifyLicenseKey jsou deklarovány jako virtuální členské funkce třídy řízení výroby, licencování chování ovládacího prvku můžete přizpůsobit.

Můžete například zadat několik úrovní přepsáním licencí pro ovládací prvek VerifyUserLicense nebo VerifyLicenseKey funkce členů.Uvnitř této funkce nelze upravit, které vlastnosti a metody jsou vystaveny uživatele podle úrovně licence, kterou je zjištěn.

Můžete také přidat kód VerifyLicenseKey funkce, která poskytuje přizpůsobené metody pro informování uživatele, který řídí vytvoření se nezdařilo.Například ve vaší VerifyLicenseKey pole členské funkce nelze zobrazit zprávu uvádějící, že se nepodařilo inicializovat ovládací prvek a proč.

[!POZNÁMKA]

Dalším způsobem upravit ověření licence ovládací prvek ActiveX je kontrola registrační databáze pro konkrétního klíče registru, namísto volací AfxVerifyLicFile.Příklad implementace výchozí naleznete Provedení úprav souboru tohoto článku.

Další diskuse o licencování naleznete licenční problémy v inovace existujícího ovládacího prvku ActiveX.

Viz také

Referenční dokumentace

Průvodce ovládacího prvku knihovny MFC technologie ActiveX

Koncepty

Ovládací prvky MFC ActiveX