ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 11.05.2000

Diese Seite wurde zuletzt aktualisiert am 11.05.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Ist es eine ActiveX-DLL?

Zurück...


Anzeige

(-hg) mailto:hg_isdllactivex@aboutvb.de

Wenn Sie wissen möchten, ob eine DLL eine ActiveX-DLL ist, können Sie dies über eine Versuch-Irrtum-Konstruktion in Erfahrung bringen. Wir haben wie üblich die notwendigen API-Aufrufe in eine Hilfsfunktion verpackt - in die Funktion IsDLLActiveX.

Mit der API-Funktion MSDN Library - API LoadLibraryLoadLibrary laden Sie die betreffende DLL und versuchen anschließend über die API-Funktion MSDN Library - API GetProcAddressGetProcAddress die Adresse der Funktion DllRegisterServer zu ermitteln. Das ist eine Funktion, die jede ActiveX-DLL anbieten muss - über sie wird die DLL aufgefordert (zum Beispiel von dem Tool RegSvr32.EXE), sich zu registrieren. Wurde die Prozeduradresse ermittelt, wird von unserer Hilfsfunktion True zurückgegeben. Abschließend wird die DLL über die API-Funktion MSDN Library - API FreeLibraryFreeLibrary wieder entladen.

Unter Umständen kann die DLL erst gar nicht geladen werden. Dafür gibt es verschiedene Gründe. In der Regel können Sie dann aber davon ausgehen, dass es sich nicht um eine ActiveX-DLL handelt (wir setzen voraus, Sie übergeben einen gültigen Dateipfad). Falls Sie der tatsächliche Grund dennoch interessiert, übergeben Sie im optionalen Parameter RaiseError den Wert True. Dann wird ein Laufzeitfehler ausgelöst, über den Sie den Fehlercode der LoadLibrary-Funktion erhalten und auswerten können. Sie brauchen lediglich vom zurückgegebenen Fehlerwert (Err.Number) den Basiswert 10000 abzuziehen. Da uns jedoch die Bedeutung dieses Fehlerwerts hier nicht näher interessiert, überlasse ich es Ihnen, die Bedeutung der Fehlercodes zu bewerten.

Private Declare Function LoadLibrary Lib "kernel32" Alias _
 "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" _
 (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" _
 (ByVal hLibModule As Long) As Long

Public Function IsDLLActiveX(DLLPath As String, _
 Optional ByVal RaiseError As Boolean) As Boolean

  Dim nHMod As Long
  Dim nLastDllError As Long
  
  nHMod = LoadLibrary(DLLPath)
  If nHMod = 0 Then
    If RaiseError Then
      nLastDllError = Err.LastDllError
      Err.Raise 10000 + nLastDllError, "IsDLLActiveX", _
       "LoadLibrary-Error: " & nLastDllError
    End If
  End If
  IsDLLActiveX = Abs(CBool(GetProcAddress(nHMod, _
   "DllRegisterServer")))
  FreeLibrary nHMod
End Function

Modul modIsDLLActiveX (modIsDLLActiveX.bas - ca. 1,1 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer