Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" _ (ByVal Path As String) As LongPrivate Declare Function GetProcAddress Lib "kernel32.dll" (ByVal hModule As _ Long, ByVal ProcName As String) As LongPrivate Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hModule As Long)' Check whether a DLL is an COM self-registering server Function IsComDLL(ByVal FileName As String) As Boolean Dim hModule As Long Dim procAddress As Long ' attempt to load the DLL hModule = LoadLibrary(FileName) If hModule <> 0 Then ' the DLL has been loaded ' get the address of the DllRegisterServer function procAddress = GetProcAddress(hModule, "DllRegisterServer") ' if non-zero then the function is there IsComDLL = (procAddress <> 0) ' free-memory FreeLibrary hModule End IfEnd Function