Добрый день!
Народ, в 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