.Net-объект не поддерживает IDispatch???
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 13.12.06 07:18
Оценка:
Добрый день!

Народ, в MSDN черным по белому написано: COM callable wrapper всегда эмулирует интерфейсы IDispatch, IUnknown и еще несколько, типа ITypeInfo. Создаю в сборке экземпляр UserControl, из клиентского Win32-приложения получаю его через такой интерфейс:
    [ComVisible(true)]
    [Guid("4542FE0B-AA92-4D62-9167-E36B07922E94")]
    public interface IXView
    {
        [return: MarshalAs(UnmanagedType.IUnknown)]
        object GetOleControl();
    }


Но потом, уже в Win32, результат почему-то не приводится к IDispatch (дает ошибку Ole error: "The specified cast is not valid"), та же фигня и с ITypeInfo. Притом, что сам метод GetOleControl завершается нормально.

Кто виноват и что делать?

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.