Freigeben über


MFC-ActiveX-Steuerelemente: Weitergabe von ActiveX-Steuerelementen

In diesem Artikel werden einige Probleme, die zum Verteilen von ActiveX-Steuerelementen verknüpft sind:

  • ANSI- oder Unicode-Steuer Versionen

  • verteilbaren ActiveX-Steuerelemente und Installieren von DLLs

  • Registrieren von Steuerelementen

    HinweisHinweis

    Weitere Informationen über die Weitergabe von ActiveX-Steuerelementen finden Sie unter Verteilen von Steuerelementen.

ANSI- oder Unicode-Steuer Versionen

Sie müssen festlegen, ob eine ANSI- oder eine Unicode-Version des Steuerelements oder beide bereitgestellt wird.Diese Entscheidung basiert auf der Portabilitäts faktoren, die in ANSI und Unicode-Zeichensätzen inhärent ist.

ANSI-Kontrollen, die an allen Win32-Betriebssystemen arbeiten, lassen maximal Portabilität zwischen den verschiedenen Win32-Betriebssystemen.Unicode-Kontrollen funktionieren nur für Windows NT (Version 3.51 oder höher), aber nicht mit Windows 95 oder Windows 98.Wenn Portabilität Ihrer Hauptsorge ist, Steuerelemente des Schiffs ANSI.Wenn die Steuerelemente nur unter Windows NT ausgeführt werden, können Sie Unicode-Kontrollen veröffentlichen.Sie könnten auch beides bereitzustellen und die Anwendung die Version installieren zu können, die für das Betriebssystem des Benutzers am entsprechendsten ist.

verteilbaren ActiveX-Steuerelemente und Installieren von DLLs

Das Setupprogramm, mit dem Sie den ActiveX-Steuerelementen zu gewährleisten, dass ein spezielles Unterverzeichnis des Windows-Verzeichnisses erstellen und das .OCX-Dateien der Steuerelemente in ihr installieren.

HinweisHinweis

Verwenden von Windows GetWindowsDirectory API im Setupprogramm, um den Namen des Windows-Verzeichnisses.Sie sollten den Namen der Unterverzeichnisse im Namen Ihres Unternehmens oder Produkts zu berechnen.

Das Setupprogramm muss die notwendigen verteilbaren DLL-Dateien im Windows-Systemverzeichnis installiert werden.Wenn bereits eine der DLLs auf dem Computer des Benutzers sind, sollte das Setupprogramm die Versionen mit den Versionen vergleichende vorhanden, die Sie installieren.Installieren Sie eine Datei nur, wenn die Versionsnummer höher ist als die bereits installierte Datei ist.

Da ActiveX-Steuerelemente nur in OLE-Containeranwendungen verwendet werden können, ist es nicht erforderlich, den vollständigen Satz von OLE DLL mit den Steuerelementen zu verteilen.Sie können davon ausgehen, dass die enthaltende Anwendung (oder das Betriebssystem selbst), der den standardmäßigen OLE DLL installiert hat.

Registrieren von Steuerelementen

Bevor ein Steuerelement verwendet werden können, müssen entsprechende Einträge für Windows-Registrierungs in der Datenbank erstellt werden.Einige ActiveX-Steuerelement-Container stellen ein Menüelement bereit, damit Benutzer neue Steuerelemente registrieren, aber diese Funktion ist möglicherweise nicht in allen Containern zur Verfügung.Deshalb sollten Sie das Setupprogramm die Steuerelemente registrieren, wenn sie installiert wurden.

Wenn Sie es vorziehen, können Sie das Setupprogramm erstellen, um das Steuerelement direkt zu registrieren.

Verwenden Sie die LoadLibrary Windows-API, um das Steuerelement DLL zu laden.Als Nächstes Verwendung GetProcAddress zum Abrufen der Adresse der Funktion "DllRegisterServer".Schließlich können Sie die DllRegisterServer-Funktion an.Im folgenden Codebeispiel wird eine mögliche Methode, bei der das Handle der hLib-Steuerelementbibliothek speichert, und lpDllEntryPoint speichert die Adresse der Funktion "DllRegisterServer".

HINSTANCE hLib = LoadLibrary(pszDllName);

if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
   AfxMessageBox(IDS_LOADLIBFAILED); //unable to load DLL
   iReturn = FAIL_LOAD;              //unable to load DLL
}

// Find the entry point.
lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
if (lpDllEntryPoint != NULL)
   (*lpDllEntryPoint)();
else
   ;// Unable to locate entry point

Der Vorteil des Registrierens des Steuerelements besteht darin, dass Sie müssen nicht direkt von einem separaten Prozess aufzurufen und zu laden (nämlich, REGSVR32) und Installation verringern.Da Registrierung ein interner Prozess wurde, kann das Setupprogramm Fehler und unerwartete Situationen besser verarbeiten, wenn ein externer Prozess kann.

HinweisHinweis

Bevor das Setupprogramm installiert, sollte es ein ActiveX-Steuerelement OleInitialize aufrufen.Wenn das Setupprogramm beendet wurde, rufen Sie OleUnitialize an.Dadurch wird sichergestellt, dass die OLE-Systeme-DLL im richtigen Zustand zum Registrieren eines ActiveX-Steuerelements sind.

Möglicherweise möchten Sie MFCx0.DLL registrieren.

Siehe auch

Konzepte

MFC-ActiveX-Steuerelemente