Sdílet prostřednictvím


Upgradování existujícího ovládacího prvku ActiveX

Prvky existující ActiveX (dříve technologie OLE ovládací prvky) lze použít v síti Internet bez úprav.Můžete však změnit ovládací prvky pro zvýšení jejich výkonu.Při použití ovládacího prvku na webové stránce, existují další důležité informace.Soubor OCX a všechny podpůrné soubory musí být v cílovém počítači nebo stáhnout přes Internet.Díky velikosti kódu a stahování čas důležitým aspektem.Stahování lze balen podepsaný soubor CAB.Chcete-li označit ovládací prvek jako bezpečný pro skriptování a jako bezpečný pro inicializaci.

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

  • Kód balení pro stahování

  • Označení ovládacího prvku bezpečná pro skriptování a inicializaci

  • Problémy s licencí

  • Podepisování kódu

  • Správa palety

  • Úrovně zabezpečení aplikace Internet Explorer prohlížeče a chování ovládacího prvku

Můžete také přidat optimalizace, jak je popsáno v ovládací prvky ActiveX: optimalizace.Zástupných názvů lze použít ke stažení vlastnosti a velký počet struktur BLOB asynchronně, jak je popsáno v Ovládací prvky ActiveX na Internetu.

Kód balení pro stahování

Další informace o této problematice naleznete v článku znalostní báze Knowledge Base "Balení MFC ovládací prvky pro použití přes Internet" (Q167158).Články znalostní báze můžete vyhledat na disku CD-ROM knihovny MSDN nebo na https://support.microsoft.com/support.

Značka CODEBASE

Ovládací prvky ActiveX jsou vložené do webových stránek pomocí <OBJECT> značky.CODEBASE Parametr <OBJECT> značka Určuje umístění, ze kterého ovládací prvek stahovat.CODEBASEpřesunutím ukazatele myši na určitý počet různé typy souborů úspěšně.

Značka CODEBASE pomocí souboru s příponou OCX

CODEBASE="http://example.microsoft.com/mycontrol.ocx#version=4,70,0,1086"

Toto řešení stáhne pouze soubory OCX ovládacího prvku a vyžaduje všech podpůrných knihoven DLL již nainstalována v klientském počítači.Pro aplikaci Internet Explorer a MFC ActiveX ovládací prvky vytvořené pomocí Visual C++, toto bude fungovat, protože aplikace Internet Explorer je součástí podpůrné knihovny DLL pro ovládací prvky jazyka Visual C++.Chcete-li zobrazit tento ovládací prvek se používá jiný internetový prohlížeč, který je schopen ovládací prvek ActiveX, nebude toto řešení fungovat.

Značka CODEBASE pomocí souboru INF

CODEBASE="http://example.microsoft.com/trustme.inf"

Soubor INF bude řízení instalace OCX a jeho podpůrné soubory.Tato metoda není doporučena, protože není možné podepsat soubor s příponou INF (viz Podepisování kódu ukazatele na podepisování kódu).

Značka CODEBASE pomocí souboru CAB

CODEBASE="http://example.microsoft.com/acontrol.cab#version=1,2,0,0"

Instalační soubory jsou doporučeným způsobem, jak balíček ovládací prvky ActiveX, které používají knihovnu MFC.Balení ovládací prvek MFC ActiveX v souboru CAB umožňuje soubor INF mají být zahrnuty do instalace ovládacího prvku ActiveX ovládacího prvku a všechny závislé DLL (například knihovny MFC DLL).Kód pro rychlejší stahování souboru CAB pomocí automaticky komprimuje.Pokud používáte soubor CAB pro stahování součástí, je rychlejší k podepsání souboru CAB celý než jednotlivých komponent.

Vytvoření souborů CAB

Development Kit instalační soubor si můžete stáhnout z článku znalostní báze Knowledge Base 310618: Microsoft Cabinet Software Development Kit.V této sadě najdete potřebné nástroje k vytvoření souborů CAB.

Soubor CAB odkazuje CODEBASE by měl obsahovat soubor .ocx pro ovládací prvek ActiveX a řídit jeho instalační soubor s příponou INF.Vytvoření souboru CAB zadáním názvu souboru ovládacího prvku a soubor s příponou INF.Nezahrnujte závislé knihovny DLL, které již existuje v systému v tomto souboru CAB.Například knihovny MFC DLL jsou baleny v samostatném souboru CAB a doporučil kontrolní soubor INF.

Další informace o vytvoření souboru CAB, viz Vytvoření souboru CAB.

Soubor INF

Následující příklad, spindial.inf, seznamy podpůrné soubory a informace o verzi potřebné pro Spindial knihovny MFC ovládacího prvku.Všimněte si, že pro knihovny MFC DLL umístěn webovém serveru společnosti Microsoft.Mfc42.cab je k dispozici a je podepsaný společností Microsoft.

Contents of spindial.inf:
[mfc42installer] 
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab 
[Olepro32.dll] - FileVersion=5,0,4261,0
[Mfc42.dll] - FileVersion=6,0,8168,0
[Msvcrt.dll] - FileVersion=6,0,8168,0

&lt;Objektu&gt; značky

Následující příklad ukazuje použití <OBJECT> značky pro zabalení ovládacího prvku knihovny MFC Spindial vzorku.

<OBJECT ID="Spindial1" WIDTH=100 HEIGHT=51
  CLASSID="CLSID:06889605-B8D0-101A-91F1-00608CEAD5B3"
  CODEBASE="http://example.microsoft.com/spindial.cab#Version=1,0,0,001">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="2646">
    <PARAM NAME="_ExtentY" VALUE="1323">
    <PARAM NAME="_StockProps" VALUE="0">
    <PARAM NAME="NeedlePosition" VALUE="2">
</OBJECT>

V tomto případě spindial.cab bude obsahovat dva soubory, spindial.ocx a spindial.inf.Následující příkaz vytvoří soubor CAB:

C:\CabDevKit\cabarc.exe -s 6144 N spindial.cab spindial.ocx spindial.inf 

–s 6144 Parametr vyhradí místo v souboru CAB pro podpis kódu.

Označení verze

Všimněte si zde, že #Version informace zadané pomocí souboru CAB se vztahuje na ovládací prvek určený CLASSID parametr <OBJECT> značky.

V závislosti na verzi zadán můžete vynutit stažení ovládacího prvku.Pro kompletní specifikace OBJECT včetně značky CODEBASE parametr, W3C viz odkaz.

Označení ovládacího prvku bezpečná pro skriptování a inicializaci

Ovládací prvky ActiveX, které jsou použity ve webových stránkách je nutné označit jako bezpečný pro skriptování a inicializaci, pokud jsou skutečně bezpečné.Bezpečný ovládací prvek nebude provádět vstupně-výstupní operace disku nebo přistupovat k paměti nebo registrů počítače.

Ovládací prvky lze označit jako bezpečný pro skriptování a inicializaci prostřednictvím registru.Změnit DllRegisterServer Chcete-li přidat položky podobné následujícím označit ovládací prvek jako bezpečný pro skriptování a perzistence v registru.Alternativní metoda je implementace IObjectSafety.

Pro ovládací prvek označit jako bezpečný pro skriptování a přetrvávání bude definovat identifikátory GUID (Globally Unique Identifiers).Ovládací prvky, které mohou být bezpečně skriptovány bude obsahovat podobná následující položce registru:

HKEY_CLASSES_ROOT\Component Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}

Ovládací prvky, které lze bezpečně inicializovat z trvalých dat jsou označeny jako bezpečné pro přetrvávání s podobnou položku registru:

HKEY_CLASSES_ROOT\Component Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}

Přidat položky podobné následujícím (ID místo nahrazení ovládacího prvku třídy {06889605-B8D0-101A-91F1-00608CEAD5B3}) přidružit ID třídy následující klíče:

HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4} 
HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4} 

Problémy s licencí

Pokud chcete použít licencovaného ovládacího prvku na webové stránce, musíte ověřit, že licenční smlouva umožňuje jeho použití na Internetu a vytvořit licenční soubor balíčku (LPK).

Licencovaného ovládacího prvku ActiveX se nenačte správně na stránce HTML Pokud počítači spuštěna aplikace Internet Explorer není licencován pro použití ovládacího prvku.Například pokud licencovaného ovládacího prvku byla vytvořena pomocí aplikace Visual C++, HTML stránky pomocí ovládacího prvku načte správně v počítači, kde byl ovládací prvek vytvořen, ale nebude načten v jiném počítači, pokud je součástí informací o licencích.

Použití licencovaného ovládacího prvku ActiveX v aplikaci Internet Explorer, je třeba zkontrolovat licenční smlouvy dodavatele chcete-li ověřit, že licence pro ovládací prvek umožňuje:

  • Přerozdělení

  • Použití ovládacího prvku na Internetu

  • Použití parametru Codebase

Použití licencovaného ovládacího prvku na stránce HTML v nonlicensed počítači, je nutné generovat licenční soubor balíčku (LPK).Soubor LPK obsahuje licence run-time pro licencované ovládací prvky na stránce HTML.Tento soubor je generován pomocí LPK_TOOL.EXE, který je součástí sady SDK ActiveX.Další informace naleznete na webu MSDN na https://msdn.microsoft.com.

Vytvoření souboru LPK

  1. Spusťte LPK_TOOL.EXE v počítači, který je licencován pro použití ovládacího prvku.

  2. V Licenční balíček Authoring nástroj dialogové okno, v k dispoziciprvky seznamu vyberte každý licencovaný ovládací prvek ActiveX, který bude použit na stránce HTML a klepněte na tlačítko Přidat

  3. Klepněte na tlačítko Uložit &Konec a zadejte název pro soubor LPK.Tím vytvoříte soubor LPK a ukončete aplikaci.

Chcete-li vložit licencovaný ovládací prvek na stránce HTML

  1. Upravte stránku HTML.Vložit do stránky HTML <objektu> značku objekt správce licencí před jinými <objektu> značky.Správce licencí je ovládací prvek ActiveX, který je nainstalován s aplikací Internet Explorer.Jeho ID třídy jsou uvedeny níže.Nastavte vlastnost LPKPath objektu správce licencí na cestu a název souboru LPK.Může mít pouze jeden soubor LPK na každou stránku HTML.

    <OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
    </OBJECT>
    
  2. Vložit <objektu> značky pro licencované ovládací prvek po značce správce licencí.

    Například stránka HTML, která zobrazí ovládací prvek Microsoft maskované upravit jsou uvedeny níže.První třídy, je ID ovládacího prvku správce licencí, je ID ovládacího prvku Masked upravit druhé třídy.Změna značky relativní cesta souboru LPK, který jste vytvořili v bodě a přidání značky včetně ID třídy pro ovládací prvek.

  3. Vložit <vložení> atribut souboru LPK, používáte-li modul plug-in NCompass ActiveX.

    Pokud váš ovládací prvek může zobrazit na druhé aktivní povoleny prohlížeče – například Netscape pomocí modulu plug-in NCompass ActiveX – je třeba přidat <vložení> syntaxe, jak je ukázáno níže.

    <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="maskedit.lpk">
    
        <EMBED SRC = "maskedit.LPK">
    
    </OBJECT>
    <OBJECT CLASSID="clsid:C932BA85-4374-101B-A56C-00AA003668DC" WIDTH=100 HEIGHT=25>
    </OBJECT>
    

Další informace o správě licencí ovládacího prvku naleznete v tématu ovládací prvky ActiveX: ovládací prvek ActiveX licencí.

Podepisování kódu

Podepisování kódu slouží k identifikaci zdrojového kódu a zajistit, že kód nezměnil od jeho byla podepsána.V závislosti na nastavení zabezpečení prohlížeče uživatelé mohou se zobrazit upozornění před stažením kód.Uživatelé mohou zvolit za některé vlastníky certifikátu nebo společností, ve kterých případu kódům podepsaným ty důvěryhodné, budou staženy bez předchozího upozornění.Kód je digitálně podepsán, aby se zabránilo manipulaci.

Zkontrolujte, zda že výsledný kod je podepsán tak, aby ovládací prvek může automaticky staženy bez zobrazení upozornění zabezpečení.Informace o podepisování kódu naleznete v dokumentaci na Authenticode v sadě SDK ActiveX a v podepsání souboru CAB.

V závislosti na vztahu důvěryhodnosti nebo bezpečnostní úroveň nastavení prohlížeče může být zobrazen certifikát k identifikaci podepsaná osoba nebo společnost.Pokud není úroveň bezpečnosti nebo vlastníka certifikát podepsaný ovládací prvek je důvěryhodný, certifikátu se nezobrazí.Viz úrovně zabezpečení aplikace Internet Explorer prohlížeče a chování ovládacího prvku podrobnosti o bezpečnostní nastavení prohlížeče bude jak zjistit, zda ovládací prvek je stažen a zobrazí certifikát.

Digitální podepisování kódu záruky se nezměnil, protože byl podepsán.Hash kód je přijata a vložené v certifikátu.Tato hodnota hash je vyšší ve srovnání s hash po stažení kódu, ale před spuštěním kódu.Privátní a veřejné klíče potřebné k podepsání kódu lze zadat společnostmi, jako je například společnost Verisign.V sadě SDK ActiveX je dodávána s MakeCert nástroj pro vytváření testovací certifikáty.

Správa palety

Nádoby určit palety a zpřístupnit jako okolní vlastnost, DISPID_AMBIENT_PALETTE.Kontejner (například Internet Explorer) zvolí paletu, která je používá všechny ovládací prvky ActiveX na stránce určit vlastní paletu.To zabrání zobrazení blikání a představuje jednotný vzhled.

Ovládací prvek můžete přepsat OnAmbientPropertyChange zpracovat oznámení změny palety.

Ovládací prvek můžete přepsat OnGetColorSet vrátit nastavení kreslení v paletě barvy.Kontejnery použít k určení, zda je ovládací prvek podporující paletu vrácenou hodnotu.

Podle pokynů OCX 96 ovládací prvek vždy realizovat svou paletu na pozadí.

Odešle starší kontejnery, které nepoužívají okolí paletu vlastnosti WM_QUERYNEWPALETTE a WM_PALETTECHANGED zprávy.Ovládací prvek můžete přepsat OnQueryNewPalette a OnPaletteChanged zpracovat tyto zprávy.

Úrovně zabezpečení aplikace Internet Explorer prohlížeče a chování ovládacího prvku

Prohlížeč obsahuje možnosti pro úroveň bezpečnosti, konfigurovatelné uživatelem.Vzhledem k tomu, že webové stránky mohou obsahovat aktivní obsah, který může poškodit počítač uživatele, prohlížečů umožňuje uživateli vybrat možnosti pro úroveň bezpečnosti.Podle způsobu prohlížeč implementuje úrovně bezpečnosti ovládací prvek nemusí vůbec stáhnout nebo zobrazí certifikát nebo varovnou zprávu uživateli umožní zvolit za běhu, zda stažení ovládacího prvku.Chování ovládacích prvků ActiveX v rámci úrovně zabezpečení Vysoká, střední a nízké aplikace Internet Explorer jsou uvedeny níže.

Režim vysoké zabezpečení

  • Nepodepsané ovládací prvky nebude možné stáhnout.

  • Podepsané ovládací prvky zobrazí pokud nedůvěryhodný certifikát (uživatel může zvolit možnost vždy důvěřovat kód z tohoto vlastníka certifikátu od této chvíle).

  • Pouze prvky, které jsou označeny jako bezpečné, bude mít trvalých dat nebo být použitelné ve skriptech.

Střední úroveň zabezpečení režimu

  • Nepodepsané ovládací prvky se zobrazí upozornění před stažením.

  • Podepsané ovládací prvky zobrazí certifikát, pokud nedůvěryhodný.

  • Upozornění se zobrazí ovládací prvky, které nejsou označeny jako bezpečné.

Režim nízké zabezpečení

  • Ovládací prvky jsou staženy bez předchozího upozornění.

  • Skriptování a perzistence dojít bez předchozího upozornění.

Viz také

Referenční dokumentace

MFC – ovládací prvky ActiveX: Licencování ovládacích prvků ActiveX

Koncepty

Úlohy internetového programování MFC

Základy internetového programování v prostředí MFC