Описание тега idispatch

The IDispatch interface exposes objects, methods and properties to programming tools and other applications that support Automation.
2 ответа

Реализация IDispatch в C#

Я пишу некоторый тестовый код для эмуляции неуправляемого кода, вызывающего мою реализацию C# позднего связывания COM-объекта. У меня есть интерфейс, который объявлен как тип IDispatch, как показано ниже. [Guid("2D570F11-4BD8-40e7-BF14-38772063AAF0"…
09 ноя '11 в 18:01
1 ответ

Получите пользовательские методы из IDispatch для динамической сборки

Таким образом, программа, над которой я работаю, создает динамическую сборку.Net из исходного кода, который пользователь вводит в текстовый редактор (используя CodeDOM в качестве компилятора). Мне нужно получить IDispatch для этой сборки, которая со…
15 июл '15 в 21:10
1 ответ

Как получить указатель / интерфейс LPDISPATCH и передать его элементу управления ActiveX

Я использую MFC в Visual Studio 2015 на Windows 7 64Bit. В моем приложении есть элемент управления ActiveX, мне нужно установить связь между элементом управления ActiveX и моим приложением. Но activeX нужно, чтобы мое приложение передавало указатель…
11 июл '16 в 03:37
2 ответа

C# 4, COM-взаимодействие и UPnP: пробный триумвират

Я пытаюсь написать немного кода (только для домашнего использования), который использует UPnP для обхода NAT, используя C# 4 и API обхода NAT на основе COM от Microsoft (Hnetcfg.dll). К сожалению (или, возможно, к счастью), когда в последний раз мне…
06 ноя '12 в 08:49
0 ответов

Изменить интерфейс с IUnknown на IDispatch

У меня есть COM-класс, который доступен только через vtable. Он уже разослан клиентам. Я также планирую разрешить доступ к сценариям, введя IDispatch. В моих локальных тестах он показывает, что клиентский код не изменится, но для этого потребуется п…
26 май '15 в 15:33
2 ответа

Почему я получаю один и тот же __vfptr для 2 разных экземпляров?

Я запутался с __vfptr, который я вижу через указатели IDispatch/IUnknown. Я создаю внутрипроцессный свободный поток COM-объект (IMyContainer). Внутри этого объекта мне нужно сохранить указатели на 2 разных экземпляра com-объектов, которые реализуют …
10 ноя '11 в 16:12
3 ответа

COM / OLE / ActiveX / IDispatch путаница

Я не могу обернуть голову вокруг различий между этими терминами. Являются ли COM и ActiveX синонимами? Является ли объект ActiveX просто объектом COM, который предоставляет IDispatch? Многие старые страницы MSDN упоминают IDispatch без какого-либо к…
04 май '09 в 15:36
1 ответ

Почему все ссылки на мой объект IDispatch не освобождаются?

Я размещаю элемент управления IWebBrowser2 в моей программе на C++, используя только обычный Win32 (без mfc, atl, wtl и т. Д.). На DISPID_NAVIGATECOMPLETE2 я добавляю пользовательский объект для доступа из JavaScript, запущенного на отображаемой веб…
18 авг '11 в 13:07
1 ответ

Как вручную упаковать объект.NET как двойной интерфейс COM?

Я написал некоторый код C#, который возвращает объект.NET в неуправляемый код как IDispatch использование указателя Marshal.GetIDispatchForObjectоднако этот объект также реализует другие (не определенные в.NET) COM-интерфейсы. В неуправляемом мире Q…
12 июн '17 в 19:22
2 ответа

Наследование интерфейса и IUnknown, определения методов IDispatch

Мне нужно наследовать интерфейс с абстрактными методами, в VB/ C# мы просто переопределяем методы из нашего интерфейса, в то время как нет необходимости кодировать методы IUnknown или IDispatch но в C++, после наследования интерфейса в классе и пере…
26 май '12 в 06:46
1 ответ

Позднее связывание COM-объекта с использованием ComInterop в C#

У меня есть COM-объект для некоторых простых математических утилит. Среди прочего, он экспортирует 2 интерфейса - IDL выглядит следующим образом: interface IUnivariateFunction : IDispatch { HRESULT evaluate([in] double a, [out, retval] double* b); }…
27 ноя '17 в 08:52
1 ответ

Как добавить новый тип объекта в JavaScript?

Как вы знаете, можете использовать следующий код для создания нового объекта Array. var a = new Array (); теперь я реализую интерфейс IDispatch для IWebBrowser, я могу передать объект в javascript, но как обработчик создает пользовательский объект, …
20 июн '13 в 04:00
1 ответ

Как вы можете получить прототип функции-члена (C++ -> Javascript)

Кто-нибудь знает, как можно вызвать метод прототипа в Javascript из C++? У меня есть указатель на скрипт IDispatch, и я могу получить IDsOfNames для прототипа, но я не могу найти, как получить IDispatch его функции-члена. Скажите (псевдокод): JSprot…
17 фев '11 в 12:49
1 ответ

Как создать объект в C#, который наследуется от IDispatch, который может быть включен в более старые программы, использующие ActiveX

Впервые на SO, хотя я много использовал сайт, я сразу перейду к делу. Моя реальная конечная цель - создать объект, который наследуется от интерфейса IDispatch в C#, который можно использовать в Canvases внутри Oracle Forms Builder (Oracle Developer …
06 авг '13 в 13:08
0 ответов

Как определить разделы (объектная модель компонента)

Я хочу вызвать метод с invoke. Мой ввод объекта - это строка, которая является адресом файла на моем компьютере, а тип вывода - IDispatch. Как я должен определить Disparams в качестве входа invoke. Мой код: ::CLSIDFromProgID(OLESTR("SGNSAutomation.S…
18 апр '18 в 09:09
2 ответа

Uuid и DispID интерфейса класса изменяются при переходе с Visual Studio 2010 на 2012

Мы разработали сборку.NET с именем XXadapter. Цель состоит в том, чтобы XXadapter выступал в качестве COM-объекта для неуправляемых клиентов. Класс XXadapter реализует интерфейс, определенный в C++ COM IDL. COM-объект C++ был добавлен в качестве ссы…
01 ноя '13 в 19:03
4 ответа

Каковы мои варианты для C++ DLL для вызова C# DLL?

У меня есть C++ DLL, которая должна вызывать функцию (передать значение, вернуть значение) в библиотеке классов C#. Является ли мой единственный вариант дать C# DLL интерфейс COM и вызвать его из C++ с помощью IDispatch? Это лучший метод?
09 июн '09 в 18:11
1 ответ

Нарушение прав доступа приведения IDispatch в XE2

Мы используем какой-то старый код (ComLib.pas, созданный Бин Ли), чтобы мы могли использовать интерфейс перечисления для объекта (OleVariant): type TDispNewEnum = dispinterface ['{97079E31-6957-11D2-9154-0000B4552A26}'] // dummy property _NewEnum: I…
2 ответа

Как найти указатель IWebBrowser2 для окна IE8, заданного PID?

До сих пор я успешно использовал следующую функцию для получения указателя IWebBrowser2 на работающий экземпляр Internet Explorer, учитывая его PID. static SHDocVw::IWebBrowser2Ptr findBrowserByPID( DWORD pid ) { SHDocVw::IShellWindowsPtr ptr; ptr.C…
4 ответа

.NET2.0 C# Взаимодействие: Как вызвать COM-код из C#?

В моей последней среде разработки я мог легко взаимодействовать с COM, вызывая методы для объектов COM. Вот оригинальный код, переведенный в код стиля C# (для маскировки исходного языка): public static void SpawnIEWithSource(String szSourceHTML) { O…
22 янв '09 в 16:17