Есть сборка на C#, в которой есть публичный метод, принимающий System.Object, трактуя его, как COM-объект.
Из C# этот метод используется примерно так:
var ComType = Type.GetTypeFromProgID("Excel.Application");
var obj = Activator.CreateInstance(ComType);
ProcessObject(obj); // ProcessObject(System.Object objToProcess)
Функция ProcessObject принимает object, трактуя его, как IDispatch.
Задача: вызвать эту функцию из сборки на управляемом с++. У меня есть обычный (неуправляемый) указатель на IDispatch.
MyClass::MyMethod(IDispatch* pDesigner)
{
// здесь должен быть вызов функции ProcessObject
// из сборки на С# с передачей туда указателя pDesigner
}
Каким-то образом нужно его преобразовать в System.Object и передать в C#. Интересует правильный способ сделать это.