Como resolver a classe de excepção COM não registada (Excepção da HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))?

Quando tento criar uma instância de uma classe COM, lanço uma excepção como

Classe não registada (Excepção da HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Por favor, sugira como poderia eu resolvê-lo?

Solução

Parece que qualquer programa ou processo que você'está a tentar inicializar ou está't instalado na sua máquina, tem uma instalação danificada ou precisa de ser registado.

Instalá-lo, repará-lo (via Add/Remove Programs) ou registá-lo (via Regsvr32.exe).

Tem'não nos forneceu informação suficiente para o ajudarmos mais do que isto.

Comentários (4)

Note-se também que o contexto de classe ao inicializar pode criar essa excepção. Se tiver um objecto codificado como INPROC_SERVER mas tentar CoCreateInstance como CLSCTX_LOCAL_SERVER, também obterá esse erro.

É necessário assegurar que o objecto está registado e que o CoCreateInstance está a criar uma instância com o contexto de classe correcto.

Comentários (1)

Ao registar a classe (especificamente o seu CLSID) -- ver por exemplo aqui.

Comentários (3)