I'm working on this project where we don't have the source code for large chunks of the project, but we have the .DLL files with some information. There is a bug in the DLL files. I am able to create a subclass of the class with the bug in it and I would like to downcast the object which already exists at a point I have access to it. The issue is that at any point I have access to the object, it's cast as a Variant. I've tried the following (edited to remove context):
tempSubclass := Subclass(ParentClass(Integer(oleVariantCast)));
but I get the following error:
Could not convert variant of type (Dispatch) into type (Integer)
Is there any other way to get the pointer to the object out of the OleVariant and/or do the typecasting involved?
Thank you.
EDIT: Yes, the Parentclass implements IDispatch.
CORRECTION: The parentclass implements an interface which inherits from IDispatch.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…