Convert OleVariant para Objeto em Delphi

Estou trabalhando neste projeto em que não temos o código-fonte para grandes partes do projeto, mas temos os arquivos .DLL com algumas informações. Há um erro nos arquivos DLL. Eu sou capaz de criar uma subclasse da classe com o bug e gostaria de fazer o downcast do objeto que já existe em um ponto em que tenho acesso a ele. A questão é que, em qualquer momento em que tenho acesso ao objeto, ele é lançado como uma variante. Eu tentei o seguinte (editado para remover o contexto):

tempSubclass := Subclass(ParentClass(Integer(oleVariantCast)));

mas recebo o seguinte erro:

Could not convert variant of type (Dispatch) into type (Integer)

Existe alguma outra maneira de obter o ponteiro para o objeto da OleVariant e / ou a conversão de tipo envolvid

Obrigado

EDIT: Sim, a Parentclass implementa o IDispatch. CORREÇÃO: A classe pai implementa uma interface que herda de IDispatch.

questionAnswers(2)

yourAnswerToTheQuestion