Udostępnij za pośrednictwem


Formanty ActiveX MFC: Licencjonowania formantu ActiveX

Wsparcie licencjonowania opcjonalnych funkcji, formantów ActiveX, pozwala kontrolować, kto jest w stanie użyć lub rozpowszechniać kontroli.(Dodatkowe Omówienie licencjonowania, zobacz Licencjonowanie problemy w uaktualnienie istniejącego formantu ActiveX.)

W tym artykule omówiono następujące tematy:

  • Omówienie licencjonowania formantu ActiveX

  • Tworzenie formantu licencjonowanych

  • Wsparcie licencjonowania

  • Dostosowywanie licencjonowania formantu ActiveX

Formanty ActiveX, które implementują licencjonowania pozwalają programiście kontroli, aby ustalić, jak użyć formantu ActiveX przez inne osoby.Kupujący kontroli dostarczać kontroli i.Plik LIC z umowy, że nabywca może przekazywać formantu, ale nie.Plik LIC z aplikacji korzystającej z kontroli.Zapobiega to użytkownicy tej aplikacji od pisania nowych aplikacji korzystających z formantu, bez pierwszego formantu od Ciebie licencjonowania.

Omówienie licencjonowania formantu ActiveX

Zapewnienie wsparcia licencjonowania dla formantów ActiveX, COleObjectFactory klasy stanowi implementację kilku funkcji w IClassFactory2 interfejsu: IClassFactory2::RequestLicKey, IClassFactory2::GetLicInfo, i IClassFactory2::CreateInstanceLic.Gdy kontener application developer występuje z wnioskiem do utworzenia wystąpienia formantu wywołanie GetLicInfo do sprawdzenia, czy formant.Plik LIC jest obecny.Jeśli formant jest licencjonowane, wystąpienie formantu mogą być tworzone i umieszczane w kontenerze.Po zakończeniu autora konstruowania aplikacji kontenera, innej funkcji, to czas wywołania do RequestLicKey, jest dokonywane.Ta funkcja zwraca klucz licencji (ciąg znaków proste) do aplikacji kontenera.Klucz zwracane następnie jest osadzony w aplikacji.

Na poniższym rysunku pokazano weryfikacja licencji formantu ActiveX, który będzie używany podczas opracowywania aplikacji kontenera.Jak już wspomniano, Deweloper aplikacji kontenera musi być poprawne.Plik LIC zainstalowane na komputerze deweloperskim tworzenia wystąpienia formantu.

Weryfikacja licencjonowanych formantu ActiveX podczas rozwoju

Weryfikacja wdrożenia licencjonowanego formantu ActiveX

Następnego procesu pokazano na poniższym rysunku występuje, gdy użytkownik uruchomi aplikację kontenera.

Gdy aplikacja jest uruchomiona, wystąpienie formantu zwykle musi być utworzony.Kontener rozwiązanie to poprzez wywołanie CreateInstanceLic, przekazując klucz licencji osadzony jako parametr.Następnie wykonywane jest porównanie ciągu między kluczem licencji osadzone i kopię klucza licencji dla tego formantu.Gdy dopasowanie jest pomyślne, tworzone jest wystąpienie formantu i aplikacja kontynuuje wykonywanie normalnie.Należy zauważyć, że.Plik LIC nie muszą być obecne na komputerze użytkownika formant.

Weryfikacja licencjonowanych formantu ActiveX podczas wykonywania

Weryfikacja wykonywania licencjonowanego formantu ActiveX

Licencjonowanie kontroli składa się z dwóch podstawowych składników: określony kod w realizacji kontroli DLL i plik licencji.Kod składa się z dwóch (lub ewentualnie trzech) wywołań funkcji i ciąg znaków, dalej zwanych "licencji ciąg", zawierający informacje o prawach autorskich.Te wywołania i ciąg licencji znajdują się w realizacji kontroli (.Plik CPP).Plik licencji wygenerowany przez kreatora formant ActiveX jest plikiem tekstowym, z podaniem praw autorskich.Nosi nazwę projektu, z pomocą.LIC rozszerzenie, na przykład próbki.LIC.Formantem licencjonowanym musi towarzyszyć pliku licencji, jeśli konieczne jest wykorzystanie czasu projektowania.

Tworzenie formantu licencjonowanych

Kreator formant ActiveX umożliwia tworzenie ram kontroli, jest łatwe obejmują wsparcie licencjonowania.Po określeniu, że formant powinien mieć licencji, Kreator formantu ActiveX dodaje kod do klasy formantu do obsługi licencjonowania.Kod składa się funkcji, które używają pliku klucza i licencji dla weryfikacja licencji.Te funkcje można także modyfikować dostosować licencjonowania kontroli.Aby uzyskać więcej informacji dotyczących dostosowywania licencji, zobacz Dostosowywanie Licencjonowanie formantu ActiveX w dalszej części tego artykułu.

Aby dodać obsługę licencjonowania z Kreatora formantów ActiveX podczas tworzenia projektu kontroli

  • Użyj instrukcji w Tworzenie formantu ActiveX MFC.Ustawienia aplikacji stronie kreatora formant ActiveX zawiera opcję, aby utworzyć formant z licencji.

Kreator formantu ActiveX generuje ramy formantu ActiveX, zawierający podstawowe wsparcie licencjonowania.Szczegółowe wyjaśnienie kodu licencjonowania Zobacz następny temat.

Wsparcie licencjonowania

Gdy Kreator formant ActiveX umożliwia dodawanie obsługi licencji do formantu ActiveX, Kreatora formantów ActiveX dodaje kod deklaruje i implementuje możliwości licencjonowania jest dodawany do nagłówka kontroli i wdrażania plików.Ten kod składa się z VerifyUserLicense funkcji składowej i GetLicenseKey Członkowskich funkcji zastąpić domyślne implementacje znalezionych w COleObjectFactory .Te funkcje, Pobierz i Zweryfikuj licencji kontroli.

[!UWAGA]

Trzeci funkcji składowej, VerifyLicenseKey nie jest generowany przez kreatora formantu ActiveX, ale może być zastąpiona dostosować zachowanie weryfikacyjnych klucza licencji.

Te funkcje składowe są:

  • VerifyUserLicense

    Weryfikuje, że formant umożliwia użycie czasu projektowania przez sprawdzanie systemu na obecność pliku licencji kontroli.Funkcja ta jest wywoływana w ramach jako część przetwarzania IClassFactory2::GetLicInfo i IClassFactory::CreateInstanceLic.

  • GetLicenseKey 

    Żądania unikatowy klucz z formantu DLL.Ten klucz jest osadzony w aplikacji kontenera i później, używany w połączeniu z VerifyLicenseKey, aby utworzyć wystąpienia formantu.Funkcja ta jest wywoływana w ramach jako część przetwarzania IClassFactory2::RequestLicKey.

  • VerifyLicenseKey 

    Sprawdza, czy osadzony klucza i unikatowy klucz formantu są takie same.Umożliwia to kontener do utworzenia wystąpienia kontroli jego wykorzystania.Funkcja ta jest wywoływana w ramach jako część przetwarzania IClassFactory2::CreateInstanceLic i może zostać zastąpiona, aby zapewnić weryfikację dostosowanego klucza licencji.Domyślna implementacja wykonuje porównanie ciągu.Aby uzyskać więcej informacji, zobacz Dostosowywanie Licencjonowanie formantu ActiveX, w dalszej części tego artykułu.

9dwf178y.collapse_all(pl-pl,VS.110).gifModyfikacja pliku nagłówka

Kreator formantu ActiveX umieszcza się następujący kod w pliku nagłówka formantu.W tym przykładzie dwie funkcje Członkowskie CSampleCtrlprzez obiekt factory za jeden, które sprawdza obecność formantu.Plik LIC i drugą pobierającą klucza licencji, który ma być używany w aplikacji zawierającej formant:

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

9dwf178y.collapse_all(pl-pl,VS.110).gifModyfikacji pliku implementacji

Kreator formantu ActiveX miejsca dwie poniższe instrukcje w pliku implementacji sterowania zadeklarować nazwa_pliku licencji i licencji ciąg:

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

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

[!UWAGA]

Modyfikacja szLicString w jakikolwiek sposób, należy również zmodyfikować pierwszy wiersz w formancie.Plik LIC lub licencjonowanie nie będzie działać prawidłowo.

Kreator formantu ActiveX umieszcza następujący kod w pliku implementacji formantu do zdefiniowania klasy formantu VerifyUserLicense i GetLicenseKey funkcje:

// 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);
}

Wreszcie Kreatora formantu ActiveX modyfikuje Projekt kontroli.Plik IDL.Licencjonowane słowo kluczowe jest dodawany do deklaracji coclass kontroli, jak w poniższym przykładzie:

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

Dostosowywanie licencjonowania formantu ActiveX

Ponieważ VerifyUserLicense, GetLicenseKey, i VerifyLicenseKey są deklarowane jako funkcje składowe wirtualne klasy fabrycznej kontroli można dostosować zachowanie licencjonowania tego formantu.

Na przykład można podać kilka poziomów licencjonowania dla formantu nadrzędnym VerifyUserLicense lub VerifyLicenseKey funkcji elementów członkowskich.Wewnątrz tej funkcji można dostosować, które właściwości lub metody są narażone na użytkownika zgodnie z poziomem licencji, który zostanie wykryty.

Można również dodać kod VerifyLicenseKey funkcji, która zapewnia metodę dostosowanych informującego o kontrolować tworzenie nie powiodło się.Na przykład w sieci VerifyLicenseKey polu funkcji składowej może wyświetlić komunikat, stwierdzające, że nie można zainicjować formantu i dlaczego.

[!UWAGA]

Innym sposobem dostosowywania weryfikacja licencji formant ActiveX jest sprawdzenie bazy danych rejestracji dla określonego klucza rejestru, zamiast wywołania AfxVerifyLicFile.Przykładem implementacji domyślnej, zobacz Modyfikacji pliku wykonania sekcji tego artykułu.

Dodatkowe Omówienie licencjonowania, zobacz Licencjonowanie problemy w uaktualnienie istniejącego formantu ActiveX.

Zobacz też

Informacje

Kreator formant ActiveX MFC

Koncepcje

Formanty ActiveX MFC