El problema con (muchas, muchas) sugerencias de rastrear el registro es que:
- existe más de una ubicación de registro que tendría que mirar a
- una clase puede ser registrado y no existir en el registro
Registration-free COM permite que una clase esté disponible sin ella ser r egistered. Conceptualmente no desea saber si una clase es "registrada", solo quiere saber que está lo suficientemente registrada como para ser creada.
Por desgracia, la única manera (y mejor) que ver que es para crearlo:
//Code released into public domain. No attribution required.
function IsClassRegistered(const ClassID: TGUID): Boolean;
var
unk: IUnknown;
hr: HRESULT;
begin
hr := CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IUnknown, {out}unk);
unk := nil;
Result := (hr <> REGDB_E_CLASSNOTREG);
end;
se advirtió que esto no significa que el OCX real es en el disco y en el lugar correcto. Y aun así, eso no significa que el ocx se pueda cargar sin problemas. Y dado que no hay registro com gratuito (http://msdn.microsoft.com/en-us/library/ms973913.aspx) tampoco indica si el ocx es potencialmente utilizable. –