' Get the name of the DLL or EXE that contains' the class whose ProgID is passed as an argument'' Remote servers aren't taken into account'' NOTE: Requires GetRegistryValueFunction GetFileFromProgID(ByVal ProgID As String) As String Dim clsid As String Const HKEY_CLASSES_ROOT = &H80000000 ' get the CLSID from the registry, exit if not found clsid = GetRegistryValue(HKEY_CLASSES_ROOT, ProgID & "CLSID", "") If Len(clsid) = 0 Then Exit Function ' try to read the HKEY_CLASSES_ROOTCLSID{...}InProcServer32 value GetFileFromProgID = GetRegistryValue(HKEY_CLASSES_ROOT, _ "CLSID" & clsid & "InProcServer32", "") ' exit if found If Len(GetFileFromProgID) Then Exit Function ' try to read the HKEY_CLASSES_ROOTCLSID{...}LocalServer32 value GetFileFromProgID = GetRegistryValue(HKEY_CLASSES_ROOT, _ "CLSID" & clsid & "LocalServer32", "") End Function