Aktualisieren eines vorhandenen ActiveX-Steuerelements

Vorhandene ActiveX-Steuerelemente (früher OLE-Steuerelemente) können im Internet ohne Änderungen verwendet werden.Sie sollten Steuerelemente ändern, um die Leistung zu verbessern.Wenn Sie das Steuerelement auf einer Webseite verwendet wird, gibt es weitere Überlegungen.Die OCX-Datei und alle unterstützenden Dateien müssen auf dem Zielcomputer sein oder über das Internet heruntergeladen werden.Dies macht Codegröße und Downloadzeit einen wichtigen Aspekt.Downloads können in einer CAB-Datei verpackt werden mit Vorzeichen.Sie können das Steuerelement als sicher für die Skripterstellung und als sicher für das Initialisieren markieren.

In diesem Artikel werden die folgenden Themen:

  • Verpackencode zum Herunterladen

  • Markieren eines Steuersafes für die Skripterstellung und Initialisieren

  • Lizenzierungs-Probleme

  • Signieren des Codes

  • Verwalten der Palette

  • Internet Explorer-Browser-Sicherheits-Ebenen und Steuerelementverhalten

Sie können auch Optimierungen hinzufügen, wie in ActiveX-Steuerelemente: Optimierung beschrieben.Moniker können verwendet werden, um Eigenschaften und großes BLOB asynchron herunterzuladen, wie in ActiveX-Steuerelemente im Internet beschrieben.

Verpackencode zum Herunterladen

Weitere Informationen zu diesen Betreff, finden Sie die Verpackenmfc Steuerelemente des Knowledge Base-Artikel-" zur Verwendung über das Internet" (Q167158).Knowledge Base-Artikel finden Sie auf der MSDN Library-CD-ROM oder unter https://support.microsoft.com/default.aspx.

941zhks9.collapse_all(de-de,VS.110).gifDas CODEBASE-Tag

ActiveX-Steuerelemente werden in den Webseiten mithilfe des <OBJECT>-Tags eingebettet.Der CODEBASE-Parameter des <OBJECT>-Tags gibt den Speicherort an, von dem das Steuerelement herunterladen.CODEBASE kann sich an verschiedenen Dateitypen erfolgreich zeigen.

941zhks9.collapse_all(de-de,VS.110).gifVerwenden des CODEBASE-Tags mit OCX-Datei

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

Diese Lösung lädt nur die OCX-Datei des Steuerelements herunter und erfordert jedes unterstützende DLLs, auf dem Clientcomputer bereits installiert werden.Dies funktioniert für Internet Explorer und MFC-ActiveX-Steuerelemente, mit Visual C++, da Internet Explorer-Schiffe mit dem unterstützenden DLLs für Visual C++-Kontrollen erstellt werden.Wenn ein anderer Internetbrowser, der Steuerelement-fähiges ActiveX ist, verwendet wird, um dieses Steuerelement anzuzeigen, funktioniert diese Projektmappe nicht.

941zhks9.collapse_all(de-de,VS.110).gifVerwenden des CODEBASE-Tags mit einer INF-Datei

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

Eine INF-Datei steuert die Installation eines .ocx und der unterstützenden Dateien.Diese Methode wird nicht empfohlen, da es nicht möglich ist, eine INF-Datei zu signieren (siehe Signieren des Codes für Zeiger auf Codesignaturen).

941zhks9.collapse_all(de-de,VS.110).gifVerwenden CODEBASES markieren Sie mit einer CAB-Datei

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

CAB-Dateien sind die empfohlene Methode, ActiveX-Steuerelemente zu packen, die MFC verwenden.Das Verpacken eines MFC-ActiveX-Steuerelements in einer CAB-Datei ermöglicht eine, um die Installation aufgenommen werden INF-Datei, des ActiveX-Steuerelements und beliebigen abhängigen DLLs zu steuern (wie die MFC-DLL).Verwenden einer CAB-Datei komprimiert automatisch den Code für einen schnelleren Download.Wenn Sie eine CAB-Datei für Teildownload verwenden, ist er schneller, die gesamte CAB-Datei als jede einzelne Komponente zu signieren.

941zhks9.collapse_all(de-de,VS.110).gifErstellen von CAB-Dateien

Sie können das Gehäuse-Entwicklungs-Kit aus dem Knowledge Base-Artikel 310618: Microsoft-Gehäuse-Software Development Kit herunterladen.In diesem Kit suchen Sie die notwendigen Tools, um CAB-Dateien zu erstellen.

Die CAB-Datei, die auf durch CODEBASE gezeigt wird, sollte die OCX-Datei enthalten, damit das ActiveX-Steuerelement und eine INF-Datei die Installation steuert.Sie erstellen die CAB-Datei, indem Sie den Namen der Datei des Benutzersteuerelements und der INF-Datei angeben.Fügen Sie keine abhängigen DLLs ein, das möglicherweise bereits vom System in dieser CAB-Datei vorhanden ist.Beispielsweise werden die MFC-DLL in einer separaten CAB-Datei verpackt und angegeben durch die steuernde INF-Datei.

Weitere Informationen darüber, wie Sie eine CAB-Datei, finden Sie unter Erstellen einer CAB-Datei erstellt.

941zhks9.collapse_all(de-de,VS.110).gifDie INF-Datei

Im folgenden Beispiel spindial.inf, Listen, die unterstützenden Dateien und Versionsinformationen erforderlichen für das Steuerelement MFC Spindial.Beachten Sie den Speicherort für die MFC-DLL ist eine Microsoft-Website.Das mfc42.cab wird von Microsoft bereitgestellt und signiert.

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

941zhks9.collapse_all(de-de,VS.110).gifDas <OBJECT> Tag

Im folgenden Beispiel wird mithilfe des <OBJECT>-Tags, um das Steuerelement MFC Spindial zu packen Beispiel.

<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>

In diesem Fall enthält spindial.cab zwei Dateien, spindial.ocx und spindial.inf.Der folgende Befehl erstellt die CAB-Datei:

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

Das –s 6144-Parameterreservenleerzeichen im Gehäuse für Codesignaturen.

941zhks9.collapse_all(de-de,VS.110).gifDas Versions-Tag

Beachten Sie, dass hier die #Version Informationen, die einer CAB-Datei angegeben werden, auf das Steuerelement anwenden, das durch den CLASSID-Parameter des <OBJECT>-Tags angegeben wird.

Abhängig von der angegebenen Version, können Sie Download des Steuerelements erzwingen.Eine vollständige Spezifikation des OBJECT-Tags einschließlich des CODEBASE-Parameter, finden Sie im W3C-Verweis.

Markieren eines Steuersafes für die Skripterstellung und Initialisieren

ActiveX-Steuerelemente, die in den Webseiten verwendet werden, sollten als sicher für die Skripterstellung und safe zur Initialisierung markiert werden, wenn sie tatsächlich sicher sind.Ein sicheres Steuerelement führt nicht Datenträger EA aus oder greift auf den Arbeitsspeicher oder auf die Register eines Computers direkt zu.

Steuerelemente können als sicher für die Skripterstellung und safe für das Initialisieren über die Registrierung gekennzeichnet werden.Ändern Sie DllRegisterServer, um die Einträge hinzuzufügen, die dem folgenden, um das Steuerelement als sicher für die Skripterstellung und Dauerhaftigkeit in der Registrierung zu markieren.Eine alternative Methode ist, IObjectSafety zu implementieren.

Sie definieren GUID (Globally Unique Identifier) für das - Steuerelement, um es zu markieren sicher für die Skripterstellung und zur Beibehaltung.Steuerelemente, die sicher auf Skriptbasis erstellt werden können, enthalten einen Registrierungseintrag, der ähnlich dem folgenden ist:

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

Steuerelemente, die mit persistenten Daten sicher initialisiert werden können, sind als safe zur Beibehaltung mit einem Registrierungseintrag, die ähnelt:

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

Fügen Sie die Einträge hinzu, die den folgenden ähneln (die Klassen-ID des Steuerelements anstelle {06889605-B8D0-101A-91F1-00608CEAD5B3} ersetzen) um die Schlüssel mit den folgenden Klassenbezeichner zuzuordnen:

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} 

Lizenzierungs-Probleme

Wenn Sie ein lizenziertes Steuerelement auf einer Webseite verwenden möchten, müssen Sie sicherstellen, dass der Softwarelizenzvertrag seine Verwendung im Internet ermöglicht und erstellen eine Lizenzpaketdatei (LPK) für sie.

Ein lizenziertes ActiveX-Steuerelement lädt nicht ordnungsgemäß in einer HTML-Seite, wenn der Computer, der Internet Explorer ausführt, nicht lizenziert wird, um das Steuerelement zu verwenden.Wenn beispielsweise ein lizenziertes Steuerelement mit Visual C++ erstellt wurde, wird die HTML-Seite mithilfe des - Steuerelements ordnungsgemäß auf dem Computer, auf dem das Steuerelement erstellt wurde, aber es wird nicht auf einem anderen Computer, sofern, Informationen lizenzierend, enthalten ist.

Um ein lizenziertes ActiveX-Steuerelement in Internet Explorer verwenden zu können, müssen Sie den Lizenzvertrag des Anbieters überprüfen zu überprüfen die Lizenz für das Steuerelement ermöglicht:

  • Verteilung

  • Verwendung des - Steuerelements im Internet

  • Verwendung des CodeBase-Parameter

Um ein lizenziertes Steuerelement in einer HTML-Seite nonlicensed auf einem Computer zu verwenden, müssen Sie eine Lizenzpaketdatei (LPK) generieren.Die LPK-Datei enthält Ablauflizenzen für lizenzierte Steuerelemente in der HTML-Seite.Diese Datei wird über LPK_TOOL.EXE generiert, das mit dem ActiveX-SDK stammt.Weitere Informationen finden Sie auf der MSDN-Website an https://msdn.microsoft.com.

So erstellen Sie eine LPK-Datei

  1. Führen Sie LPK_TOOL.EXE auf einem Computer aus, der lizenziert wird, um das Steuerelement zu verwenden.

  2. Lizenzpaketentwicklungstool im Dialogfeld im Listenfeld VerfügbarSteuerelemente, wählen Sie eines lizenzierte ActiveX-Steuerelement aus, das auf der HTML-Seite und auf Hinzufügen verwendet wird.

  3. Klicken Sie auf Speichern und beenden und geben Sie einen Namen für die LPK-Datei ein.Damit wird die LPK-Datei und schließt die Anwendung.

Um ein lizenziertes Steuerelement auf einer HTML-Seite einbetten

  1. Bearbeiten Sie die HTML-Seite.In der HTML-Seite fügen Sie ein <OBJECT> Tag zum Lizenz-Managerobjekt vor allen anderen <OBJECT> Tags ein.Der Lizenz-Manager ist ein ActiveX-Steuerelement, das mit Internet Explorer installiert ist.Die Klassen-ID werden unten dargestellt.Legen Sie die LPKPath-Eigenschaft des Lizenz-Managerobjekts auf den Pfad und den Namen der LPK-Datei fest.Sie können nur eine LPK-Datei pro HTML-Seite haben.

    <OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
    </OBJECT>
    
  2. Fügen Sie das <OBJECT> Tag für das lizenziertes Steuerelement nach dem Lizenz-Managertag ein.

    Beispielsweise wird eine HTML-Seite, die des Microsoft Masked Edit anzeigt, unten angezeigt.Die ID der ersten Klasse ist für das Lizenz-Managersteuerelement, die zweite Klasse, die ID für das Masked Edit-Steuerelement ist.Ändern Sie die Tags, um auf den relativen Pfad der .lpk-Datei zu veranschaulichen, die Sie zuvor erstellt haben, und fügen Sie ein Objekttag einschließlich der Klassenbezeichner für das Steuerelement hinzu.

  3. Fügen Sie das - Attribut <EMBED> für die LPK-Datei ein, wenn Sie das Plug-In NCompass ActiveX verwenden.

    Wenn das Steuerelement möglicherweise auf anderen aktiven aktivierten Browsern angezeigt wird, beispielsweise Netscape mithilfe des Plug-Ins NCompass ActiveX- - Sie müssen die <EMBED> Syntax wie unten gezeigt hinzufügen.

    <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>
    

Weitere Informationen zu Steuerlizenzierung, finden Sie unter ActiveX-Steuerelemente: Lizenzieren eines ActiveX-Steuerelements.

Signieren des Codes

Codesignaturen sind, um die Quelle des Codes zu identifizieren, entworfen und sicherzustellen, dass der Code nicht geändert wurde, seit er signiert wurde.Je nach Browsersicherheitseinstellungen werden Benutzer möglicherweise gewarnt, bevor der Code heruntergeladen wird.Benutzer entscheiden, um bestimmten Zertifikatsbesitzern oder -Unternehmen zu vertrauen, in diesem Fall der Code, der von vertrauten die signiert wird, heruntergeladen wird, ohne Warnung.Code ist digital signiert manipuliert zu vermeiden.

Stellen Sie sicher, dass das endgültige Code signiert wird, sodass das Steuerelement automatisch heruntergeladen werden kann, ohne Vertrauenswürdigkeitswarnmeldungen anzuzeigen.Weitere Informationen darüber, wie Sie Code, überprüfen Sie die Dokumentation auf Authenticode im ActiveX-SDK und finden Sie unter Signieren einer CAB-Datei signiert.

Abhängig von Vertrauenswürdigkeits- und Browsersicherheitsebeneneinstellungen wird ein Zertifikat möglicherweise angezeigt, um die Signierungsperson oder -Unternehmen zu identifizieren.Wenn die Sicherheitsebene keine ist oder wenn der Zertifikatsbesitzer des Steuerelements mit Vorzeichen vertrauenswürdig ist, wird ein Zertifikat nicht angezeigt.Siehe Internet Explorer-Browser-Sicherheits-Ebenen und Steuerelementverhalten für Details darüber, wie die Browsersicherheitseinstellung bestimmt, ob das Steuerelement heruntergeladen wird und ein Zertifikat angezeigt.

Digital-Signierungsgarantiecode wurde nicht geändert, da es signiert wurde.Ein Hash des Codes wird im Zertifikat übernommen und eingebettet.Dieser Hash wird später mit einem Hash des Codes genommenen verglichen, nachdem der Code heruntergeladen wurde, aber bevor er ausgeführt wird.Unternehmen wie Verisign können die privaten und öffentlichen Schlüssel bereitstellen, die erforderlich sind, um Code zu signieren.Die ActiveX-SDK-Schiffe mit MakeCert, ein Dienstprogramm zum Erstellen von Testzertifikaten.

Verwalten der Palette

Container bestimmen die Palette und stellen sie als Ambient-Eigenschaft, DISPID_AMBIENT_PALETTE bereit.Ein Container (beispielsweise, Internet Explorer) wählt eine Palette aus, die von allen ActiveX-Steuerelemente auf einer Seite verwendet wird, um ihre eigene Palette zu bestimmen.Dies verhindert die flimmernde Anzeige und stellt eine konsistente Darstellung dar.

Ein - Steuerelement kann OnAmbientPropertyChange überschreiben, um Benachrichtigungen über Änderungen an der Palette zu bearbeiten.

Ein - Steuerelement kann OnGetColorSet überschreiben, um eine Farbpalette zurückzugeben, um die Palette zu zeichnen.Container verwenden den Rückgabewert, um zu bestimmen, ob ein Steuerelement Palette-bewusst ist.

Die Richtlinien OCX 96 muss ein Steuerelement die Palette im Hintergrund immer bewusst sein.

Ältere Container, die nicht die Umgebungspinsel Paletteneigenschaft verwenden, WM_QUERYNEWPALETTE senden und WM_PALETTECHANGED Meldungen.Ein - Steuerelement kann OnQueryNewPalette und OnPaletteChanged überschreiben, um diese Meldungen zu bearbeiten.

Internet Explorer-Browser-Sicherheits-Ebenen und Steuerelementverhalten

Ein Browser verfügt die Optionen für Sicherheitsebene, konfiguriert werden durch den Benutzer.Da Webseiten aktiven Inhalt enthalten können, der möglicherweise den Computer eines Benutzers schädigte, lassen Browser der Benutzer den ausgewählten Optionen Sicherheitsebene zu.Abhängig von der - Methode implementiert ein Browser Sicherheitsebenen, wird ein - Steuerelement möglicherweise nicht vorhanden oder ist ein Zertifikat anzeigen oder eine Warnmeldung, um dem Benutzer zu ermöglichen, die zur Laufzeit auszuwählen heruntergeladen, ob das Steuerelement herunterladen.Das Verhalten von ActiveX-Steuerelementen unter den hohen, mittleren und niedrigen Sicherheitsebenen in Internet Explorer wird nachfolgend aufgeführt.

941zhks9.collapse_all(de-de,VS.110).gifHoher Sicherheits-Modus

  • Steuerelemente ohne Vorzeichen werden nicht heruntergeladen.

  • Steuerelemente mit Vorzeichen zeigen ein Zertifikat, wenn nicht vertrauenswürdig (kann ein Benutzer eine Option auswählen, Code aus diesem Zertifikatsbesitzer immer ab sofort zu vertrauen).

  • Die nur Steuerelemente, die als sicher markiert werden, haben persistente Daten und/oder sind skriptfähig.

941zhks9.collapse_all(de-de,VS.110).gifMittlerer Sicherheits-Modus

  • Steuerelemente ohne Vorzeichen zeigen eine Warnung an, bevor sie herunterladen.

  • Steuerelemente mit Vorzeichen zeigen ein Zertifikat, wenn nicht vertrauenswürdig.

  • Die Steuerelemente, die nicht als sicher markiert werden, zeigen eine Warnung an.

941zhks9.collapse_all(de-de,VS.110).gifNiedriger Sicherheits-Modus

  • Steuerelemente werden heruntergeladen, ohne Warnung.

  • Skripterstellung und Dauerhaftigkeit treten auf, ohne Warnung.

Siehe auch

Referenz

MFC-ActiveX-Steuerelemente: Lizenzieren eines ActiveX-Steuerelements

Konzepte

MFC-Internet-Programmieraufgaben

MFC-Internet-Programmie Grundlagen