Upgradování existujícího ovládacího prvku ActiveX
Existující technologie ActiveX ovládací prvky (dříve ovládací prvky OLE) lze použít na internetu beze změny. Můžete ale chtít upravit ovládací prvky, aby se zlepšil jejich výkon.
Důležité
technologie ActiveX je starší technologie, která by se neměla používat pro nový vývoj. Další informace o moderních technologiích, které nahrazují technologie ActiveX, najdete v tématu technologie ActiveX Ovládací prvky. Podpora ovládacích prvků technologie ActiveX byla v novějších verzích aplikace Internet Explorer zastaralá a moderní prohlížeče ji nepodporují. Microsoft už neposkytuje komponenty technologie ActiveX přístupné z webu.
Při použití ovládacího prvku na webové stránce je potřeba zvážit další aspekty. Soubor .ocx a všechny podpůrné soubory musí být na cílovém počítači nebo musí být staženy přes internet. Díky tomu je velikost kódu a doba stahování důležitým aspektem. Soubory ke stažení lze zabalit do podepsaného souboru CAB. Ovládací prvek můžete označit jako bezpečný pro skriptování a jako bezpečný pro inicializaci.
Tento článek popisuje následující témata:
Označení Sejf ovládacího prvku pro skriptování a inicializaci
Internet Explorer Browser Sejf ty levels and control behavior
Můžete také přidat optimalizace, jak je popsáno v ovládacích prvcích technologie ActiveX: Optimalizace. Monikers lze použít ke stažení vlastností a velkých blob asynchronně, jak je popsáno v technologie ActiveX Ovládací prvky na internetu.
Balení kódu pro stahování
Další informace o tomto tématu naleznete v tématu Balení technologie ActiveX Ovládací prvky.
Značka CODEBASE
technologie ActiveX ovládací prvky jsou vloženy na webové stránky pomocí značky<OBJECT>
. Parametr CODEBASE
<OBJECT>
značky určuje umístění, ze kterého se má ovládací prvek stáhnout. CODEBASE
může úspěšně nasměrovat na několik různých typů souborů.
Použití značky CODEBASE se souborem OCX
CODEBASE="http://example.contoso.com/mycontrol.ocx#version=4,
70,
0,
1086"
Toto řešení stáhne pouze soubor .ocx ovládacího prvku a vyžaduje, aby na klientském počítači už byly nainstalované všechny podpůrné knihovny DLL. To bude fungovat pro ovládací prvky Internet Explorer a MFC technologie ActiveX sestavené v jazyce Visual C++, protože Aplikace Internet Explorer se dodává s podpůrnými knihovnami DLL pro ovládací prvky Visual C++. Pokud se k zobrazení tohoto ovládacího prvku používá jiný internetový prohlížeč, který je technologie ActiveX s podporou řízení, nebude toto řešení fungovat.
Použití značky CODEBASE se souborem INF
CODEBASE="http://example.contoso.com/trustme.inf"
Soubor INF bude řídit instalaci souboru .ocx a jeho podpůrné soubory. Tato metoda se nedoporučuje, protože není možné podepsat soubor .inf (viz Podpisový kód pro ukazatele na podepisování kódu).
Použití značky CODEBASE se souborem CAB
CODEBASE="http://example.contoso.com/acontrol.cab#version=1,
2,
0,
0"
Soubory CAB jsou doporučeným způsobem zabalení technologie ActiveX ovládacích prvků, které používají MFC. Zabalení ovládacího prvku MFC technologie ActiveX do souboru CAB umožňuje zahrnout soubor INF pro řízení instalace ovládacího prvku technologie ActiveX a všech závislých knihoven DLL (jako jsou knihovny MFC DLL). Použití souboru CAB automaticky komprimuje kód pro rychlejší stažení. Pokud ke stažení součásti používáte soubor CAB, je rychlejší podepsat celý soubor CAB než jednotlivé součásti.
Vytváření souborů CAB
Nástroje pro vytváření souborů CAB jsou teď součástí sady Windows SDK.
Soubor CAB, na který CODEBASE
odkazuje, by měl obsahovat soubor .ocx pro váš technologie ActiveX ovládací prvek a soubor INF pro řízení jeho instalace. Soubor CAB vytvoříte zadáním názvu řídicího souboru a souboru .inf. Nezahrnujte závislé knihovny DLL, které již v systému v tomto souboru CAB existují. Knihovny MFC DLL jsou například zabaleny do samostatného souboru CAB a odkazují na řídicí soubor .inf.
Podrobnosti o tom, jak vytvořit soubor CAB, naleznete v tématu Vytvoření souboru CAB.
Soubor INF
Následující příklad spindial.inf uvádí podpůrné soubory a informace o verzi potřebné pro spindial řízení MFC. Mfc42.cab je poskytován a podepsán Microsoftem.
Contents of spindial.inf:
[mfc42installer]
file-win32-x86=http://example.contoso.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
Značka <OBJECT>
Následující příklad znázorňuje použití <OBJECT>
značky k zabalení spindial vzorového ovládacího prvku MFC Spindial.
<OBJECT ID="Spindial1" WIDTH=100 HEIGHT=51
CLASSID="CLSID:06889605-B8D0-101A-91F1-00608CEAD5B3"
CODEBASE="http://example.contoso.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ě bude spindial.cab obsahovat dva soubory, spindial.ocx a spindial.inf. Následující příkaz sestaví soubor CAB:
C:\CabDevKit\cabarc.exe -s 6144 N spindial.cab spindial.ocx spindial.inf
Parametr -s 6144
si v souboru CAB rezervuje místo pro podepisování kódu.
Značka verze
Všimněte si zde, že #Version
informace zadané souborem CAB platí pro ovládací prvek určený parametrem CLASSID značky <OBJECT>
.
V závislosti na zadané verzi můžete vynutit stažení ovládacího prvku. Úplné specifikace značky OBJECT
, včetně parametru CODEBASE , naleznete v referenčních informacích W3C.
Označení Sejf ovládacího prvku pro skriptování a inicializaci
technologie ActiveX ovládací prvky použité na webových stránkách by měly být označeny jako bezpečné pro skriptování a bezpečné pro inicializaci, pokud jsou ve skutečnosti bezpečné. Bezpečný ovládací prvek nebude provádět vstupně-výstupní operace disku nebo přistupovat k paměti nebo registrům počítače přímo.
Ovládací prvky lze označit jako bezpečné pro skriptování a bezpečné pro inicializaci prostřednictvím registru. Upravte DllRegisterServer
přidání položek podobných následujícímu, aby ovládací prvek označil jako bezpečný pro skriptování a trvalost v registru. Alternativní metodou je implementace IObjectSafety
.
Pro svůj ovládací prvek definujete identifikátory GUID (Globálně jedinečné identifikátory), které budou označit jako bezpečné pro skriptování a trvalost. Ovládací prvky, které lze bezpečně skriptovat, budou obsahovat položku registru podobnou následující:
HKEY_CLASSES_ROOT\Component Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
Ovládací prvky, které je možné bezpečně inicializovat z trvalých dat, jsou označeny jako bezpečné pro trvalost s položkou registru podobnou této:
HKEY_CLASSES_ROOT\Component Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
Přidejte položky podobné následujícímu (nahraďte ID třídy ovládacího prvku místo {06889605-B8D0-101A-91F1-00608CEAD5B3}
) pro přidružení klíčů k následujícímu ID třídy:
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 licencováním
Pokud chcete použít licencovaný ovládací prvek na webové stránce, musíte ověřit, že licenční smlouva umožňuje jeho použití na internetu, a vytvořit soubor licenčního balíčku (LPK).
Licencovaný ovládací prvek technologie ActiveX se nenačte správně na stránce HTML, pokud počítač s Internet Explorerem nemá licenci k použití ovládacího prvku. Pokud byl například licencovaný ovládací prvek vytvořen pomocí jazyka Visual C++, stránka HTML používající ovládací prvek se správně načte do počítače, kde byl ovládací prvek sestaven, ale nenačte se na jiný počítač, pokud nejsou zahrnuty informace o licencování.
Pokud chcete používat licencovaný ovládací prvek technologie ActiveX v Internet Exploreru, musíte zkontrolovat licenční smlouvu dodavatele a ověřit, jestli licence k řízení povoluje:
Redistribuce
Použití ovládacího prvku na internetu
Použití parametru Codebase
Pokud chcete použít licencovaný ovládací prvek na stránce HTML na nelicencovaném počítači, musíte vygenerovat soubor licenčního balíčku (LPK). Soubor LPK obsahuje licence za běhu pro licencované ovládací prvky na stránce HTML. Tento soubor se generuje prostřednictvím LPK_TOOL.EXE, který je součástí sady technologie ActiveX SDK.
Vytvoření souboru LPK
Spusťte LPK_TOOL.EXE na počítači, který má licenci k použití ovládacího prvku.
V dialogovém okně Nástroje pro tvorbu licenčního balíčku vyberte v seznamu Dostupné ovládací prvky každý licencovaný technologie ActiveX ovládací prvek, který se použije na stránce HTML, a klikněte na tlačítko Přidat.
Klikněte na Uložit a ukončit a zadejte název souboru LPK. Tím se vytvoří soubor LPK a aplikace se zavře.
Vložení licencovaného ovládacího prvku na stránku HTML
- Upravte stránku HTML. Na stránce HTML vložte <značku OBJECT> pro objekt Správce licencí před jakékoli jiné <značky OBJECT> . Správce licencí je ovládací prvek technologie ActiveX, který je nainstalovaný v Internet Exploreru. Její ID třídy je znázorněno níže. Nastavte vlastnost LPKPath objektu Správce licencí na cestu a název souboru LPK. Na stránku HTML můžete mít jenom jeden soubor LPK.
<OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
</OBJECT>
<Za značku Správce licencí vložte značku OBJECT> pro váš licencovaný ovládací prvek.
Například stránka HTML, která zobrazuje ovládací prvek Microsoft Masked Edit, je zobrazen níže. ID první třídy je pro ovládací prvek Správce licencí, druhé ID třídy je pro ovládací prvek Masked Edit. Změňte značky tak, aby odkazy na relativní cestu k souboru .lpk, který jste vytvořili dříve, a přidejte značku objektu včetně ID třídy pro váš ovládací prvek.
<Pokud používáte modul plug-in NCompass technologie ActiveX, vložte atribut EMBED> pro váš soubor LPK.
Pokud se váš ovládací prvek může zobrazit v jiných prohlížečích s podporou aktivního používání ( například Netscape pomocí modulu plug-in NCompass technologie ActiveX), musíte přidat <syntaxi EMBED>, jak je znázorně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 licencování ovládacích prvků najdete v tématu technologie ActiveX Ovládací prvky: Licencování ovládacího prvku technologie ActiveX.
Podpisový kód
Podepisování kódu je navržené tak, aby identifikovalo zdroj kódu a zajistilo, že se od podepsání kódu nezměnil. V závislosti na nastavení zabezpečení prohlížeče můžou být uživatelé před stažením kódu upozorněni. Uživatelé se mohou rozhodnout důvěřovat určitým vlastníkům certifikátů nebo společnostem, v takovém případě se kód podepsaný těmito důvěryhodnými uživateli stáhne bez upozornění. Kód je digitálně podepsaný, aby nedocházelo k manipulaci.
Ujistěte se, že je konečný kód podepsaný, aby se váš ovládací prvek mohl automaticky stáhnout, aniž by se zobrazovaly zprávy s upozorněním důvěryhodnosti. Podrobnosti o tom, jak podepisovat kód, najdete v dokumentaci k authenticode v sadě technologie ActiveX SDK a v tématu Podepsání souboru CAB.
V závislosti na nastavení úrovně důvěryhodnosti a zabezpečení prohlížeče se může zobrazit certifikát pro identifikaci podpisové osoby nebo společnosti. Pokud úroveň zabezpečení není žádná nebo pokud je vlastník certifikátu podepsaného ovládacího prvku důvěryhodný, certifikát se nezobrazí. Podrobnosti o tom, jak bude nastavení zabezpečení prohlížeče určovat, jestli je váš ovládací prvek stažený a zobrazený certifikát, najdete v prohlížeči Internet Explorer Sejf ty úrovně a chování kontroly.
Digitální podpis zaručuje, že se kód od podpisu nezměnil. Hodnota hash kódu se převezme a vloží do certifikátu. Tato hodnota hash se později porovná s hodnotou hash kódu odebraného po stažení kódu, ale před spuštěním. Společnosti, jako je Verisign, mohou poskytovat soukromé a veřejné klíče potřebné k podepsání kódu. Sada technologie ActiveX SDK se dodává s nástrojem MakeCert, což je nástroj pro vytváření testovacích certifikátů.
Správa palety
Kontejnery určují paletu a zpřístupní ji jako okolní vlastnost DISPID_AMBIENT_PALETTE. Kontejner (například Internet Explorer) vybere paletu, kterou používají všechny ovládací prvky technologie ActiveX na stránce k určení vlastní palety. Tím se zabrání blikajícímu zobrazení a zobrazí se konzistentní vzhled.
Ovládací prvek může přepsat OnAmbientPropertyChange
, aby zpracovával oznámení o změnách palety.
Ovládací prvek může přepsat OnGetColorSet
, aby se vrátila barevná sada pro vykreslení palety. Kontejnery používají návratovou hodnotu k určení, jestli je ovládací prvek s podporou palety.
V rámci pokynů OCX 96 musí ovládací prvek vždy realizovat svou paletu na pozadí.
Starší kontejnery, které nepoužívají vlastnost okolí palety, budou odesílat WM_QUERYNEWPALETTE a WM_PALETTECHANGED zprávy. Ovládací prvek může tyto zprávy přepsat OnQueryNewPalette
a OnPaletteChanged
zpracovat.
Internet Explorer Browser Sejf ty levels and control behavior
Prohlížeč má možnosti pro úroveň zabezpečení, kterou může uživatel konfigurovat. Vzhledem k tomu, že webové stránky můžou obsahovat aktivní obsah, který může potenciálně poškodit počítač uživatele, umožňují prohlížečům vybrat možnosti pro úroveň zabezpečení. V závislosti na způsobu, jakým prohlížeč implementuje bezpečnostní úrovně, nemusí být ovládací prvek vůbec stažen nebo zobrazí certifikát nebo zprávu s upozorněním, aby si uživatel mohl vybrat za běhu, jestli si ovládací prvek stáhne nebo ne. Chování technologie ActiveX ovládacích prvků na vysokých, středních a nízkých úrovních zabezpečení v Internet Exploreru je uvedeno níže.
Režim vysoké Sejf ty
Nepodepsané ovládací prvky nebudou staženy.
Podepsané ovládací prvky zobrazí certifikát, pokud je nedůvěryhodný (uživatel může zvolit možnost, že bude vždy důvěřovat kódu od tohoto vlastníka certifikátu odteď).
Trvalé data a/nebo skriptovatelné budou mít pouze ovládací prvky označené jako bezpečné.
Střední režim Sejf ty
Nepodepsané ovládací prvky před stažením zobrazí upozornění.
Podepsané ovládací prvky zobrazí certifikát, pokud je nedůvěryhodný.
Ovládací prvky, které nejsou označené jako bezpečné, zobrazí upozornění.
Režim nízkého Sejf ty
Ovládací prvky se stáhnou bez upozornění.
Skriptování a trvalost se vyskytují bez upozornění.
Viz také
Úlohy internetového programování MFC
Základy internetového programování v prostředí MFC
MFC – ovládací prvky ActiveX: Licencování ovládacích prvků ActiveX