Kinda related ... you might find this useful for finding ProgIDs without having to resort to searching via RegEdit:
(defun _FindProjIDs ( pattern )
( (lambda ( pfx sfx pattern )
(vl-sort
(vl-remove-if-not
(function
(lambda (x)
(and
(eq 'str (type x))
(wcmatch (strcase x) pattern)
)
)
)
(mapcar
(function
(lambda (x)
(vl-registry-read (strcat pfx x sfx))
)
)
(vl-registry-descendents pfx)
)
)
'<
)
)
"HKEY_CLASSES_ROOT\\CLSID\\"
"\\ProgID"
(strcase pattern)
)
)
e.g.
(_FindProjIDs "*objectdbx*") ;; I don't have 3D max
>>
(
"ObjectDBX.AxDbDocument.17"
"ObjectDBX.AxDbDocument.18"
"ObjectDBX.AxDbDocument.19"
"ObjectDBX.AxDbDocument.20"
)
FWIW, cheers.