1
голосов
1ответов
126 просмотров

ATL / COM: Могу ли я использовать одну и ту же функцию в двух разных интерфейсах одного и того же объекта?

У меня есть DLL на основе ATL / COM, написанная на VC ++ 6.0. До недавнего времени между моими COM-интерфейсами и классами существовало однозначное соответствие. Например, предположим, что был интерфейс ICar; затем был также класс CCar, который реализовал его, и ни один класс, кроме CCar, не реа...

2
голосов
2ответов
1138 просмотров

Получение байтового массива из вне процесса C ++ COM в C #

Как лучше всего получить кусок памяти (т.е. void *) с COM-сервера на C #? Мы использовали IStream (используя CreateStreamOnHGlobal) и передавали его обратно, и это сработало.Однако, когда мы попробовали это на x64 CLR с x32 C ++ COM, он взорвался. COM должен быть x32, потому что он использ...

0
голосов
1ответов
820 просмотров

Какова цель функций-членов IUnknown в END_COM_MAP?

Макрос ATL END_COM_MAP определяется следующим образом: #define END_COM_MAP() \ __if_exists(_GetAttrEntries) {{NULL, (DWORD_PTR)_GetAttrEntries, _ChainAttr }, }\ {NULL, 0, 0}}; return _entries;} \ virtual ULONG STDMETHODCALLTYPE AddRef( void) throw() = 0; \ virtual ULONG STDMET...

0
голосов
1ответов
596 просмотров

Почему BEGIN_COM_MAP содержит DEBUG_QI_ENTRY?

В ATL есть макрос BEGIN_COM_MAP для объявления таблицы, которая управляет поведением QueryInterface () при вызове соответствующего объекта класса. Внутри есть следующая строка: static const _ATL_INTMAP_ENTRY _entries[] = { DEBUG_QI_ENTRY(x) что означает, что первая запись таблицы б...

0
голосов
1ответов
503 просмотров

Элемент управления WebBrowser с ATL на c #

В ATL, если я создаю элемент управления веб-браузера с помощью IWebBrowser2, он отлично работает в Windows Mobile.Могу зайти на все сайты, заходит прогресс бар, все нормально .. остальной контент пользовательского интерфейса я не могу выполнить в ATL, так как это требует времени.Я хотел бы перей...

1
голосов
1ответов
388 просмотров

Не удается установить строку конструктора COM + на Win7 - CryptProtectData изменяется?

ОБНОВЛЕНО Я пытаюсь программно установить ConstructorString компонента COM + со значением для последующей инициализации. Рассматриваемый код отлично работает на WinXP, Win2k3, Vista и Win2k8. У меня не получается использовать Win7 - Home Premium. Методом проб и ошибок я определил, чт...

10
голосов
6ответов
14358 просмотров

Как избавиться от объекта взаимодействия NET COM в Release ()

У меня есть COM-объект, написанный в управляемом коде (C ++ / CLI). Я использую этот объект в стандартном C ++. Как мне заставить деструктор моего COM-объекта вызываться немедленно после освобождения COM-объекта? Если это невозможно, вызвать у меня Release () вызвать метод MyDispose () для моег...

1
голосов
1ответов
628 просмотров

VB6 ActiveX DLL работает медленно на сервере терминалов 2008

У меня есть библиотека VB6 ActiveX DLL, которая уже несколько лет отлично работает на всех наших машинах. Недавно наш ИТ-менеджер установил несколько местоположений, чтобы они удаленно подключились к серверу терминалов 2008 и запустили программу, которая обращается к моей DLL на сервере терми...

1
голосов
3ответов
8063 просмотров

Ошибка при создании экземпляра класса взаимодействия .NET / COM через классический ASP

У меня возникла проблема при попытке создать экземпляр класса C # .NET, который был предоставлен COM в классическом приложении ASP. Я использовал tlbexp для создания библиотеки типов и зарегистрировал ее в службах компонентов; теперь при попытке создать объект как таковой: Server.CreateObject...

0
голосов
1ответов
381 просмотров

Странное добавление пространства имен при импорте библиотеки типов

Я хочу добавить в свой COM-интерфейс метод, принимающий IStream*.Вот выдержка из idl: import "oaidl.idl"; import "ocidl.idl"; import "objidl.idl";//IStream is declared in this .idl file [ uuid(uuidhere), version(1.0) ] library MyLibrary { importlib("stdole32.tlb"); importlib("...

8
голосов
2ответов
3670 просмотров

Как COM выбирает способ маршалинга интерфейса?

Насколько я понимаю, есть три способа реализовать маршаллинг в COM: маршалинг библиотеки типов маршаллинг прокси / заглушки реализация IMarshal объектом как теперь компонент потребитель (пользователь) выбирает, какой из них будет использоваться? Принимает ли он решение самостоятель...

0
голосов
1ответов
108 просмотров

Как получить исходный код отображаемой веб-страницы

как я могу получить исходный код веб-страницы, отображаемый в элементе управления веб-браузера, на C # или Win32. даже ATL COM тоже отлично. я имею в виду .. я не хочу создавать новый «HTTPReqest» или «openURL» для получения источника .. я хочу получить источник только из элемента управления .. ...

0
голосов
1ответов
202 просмотров

Дуплекс WCF + статическая коллекция COM-объектов

Я пытаюсь создать службу WCF, которая предоставляет функциональные возможности определенного COM-объекта, для которого у меня нет исходного источника. Я использую дуплексную привязку, чтобы у каждого клиента был свой экземпляр, поскольку с каждым конкретным экземпляром связаны события, которые д...

7
голосов
2ответов
4263 просмотров

Как .NET / COM работает с несколькими версиями, зарегистрированными через Regasm?

У меня есть .NET DLL (она написана на C ++ / CLI). Части этого я хочу показать через COM. Я делаю это и регистрирую с помощью "regasm my.dll / codebase". Все идет нормально. Но потом я меняю кое-что, и номер версии сборки меняется, плюс я перемещаю dll в другую папку. Я регистрирую его снова и с...

2
голосов
4ответов
9541 просмотров

Как установить оператор кодирования в объявлении XML при выполнении преобразования XSL с использованием COM Msxml2.XSLTemplate?

Я написал простой установщик пакетов в WinBatch, которому необходимо обновить XML-файл информацией о содержимом пакета. Моя первая попытка заключалась в загрузке файла с помощью Msxml2.DOMDocument, добавлении узлов и данных по мере необходимости, а затем сохранении данных обратно на диск. Это ср...

0
голосов
1ответов
626 просмотров

Как реализовать маршаллинг на COM-сервере VC ++ ATL?

При внедрении моего собственного IFilter я обнаружил, что, скорее всего, некоторым потребителям потребуется его маршаллинг.То есть они QueryInterface () интерфейс IMarshal из моего объекта. Прокси / заглушки из MIDL использовать нельзя - MIDL не будет компилировать файл filter.idl - последний...

2
голосов
4ответов
913 просмотров

Почему Windows Search запрашивает у моего IFilter кучу странных интерфейсов?

Я реализовал IFilter как встроенный COM-сервер VC ++ ATL.Windows Search не будет использовать его - он создает экземпляр моего IFilter, а затем выполняет несколько вызовов QueryInterface (), а именно: IMarshal IStdMarshalInfo что-то с идентификатором интерфейса {4C1E39E1-E3E3-4296-AA86-E...

1
голосов
2ответов
489 просмотров

Ошибка PHP COM на сервере Windows 2008

Я использую COM в PHP для успешного управления MS Word 2003 в Windows server 2003, но тот же код не работает на сервере Windows 2008.Я изменил пользователя на администратора, но все равно произошла та же ошибка. Для кода ниже: <?php // starting word $word = new COM("word.application") o...

0
голосов
7ответов
805 просмотров

Кто-нибудь знает, где я могу найти стандартные значки панели инструментов диалогового окна файла Windows?

Я пытаюсь развернуть свою собственную реализацию IShellBrowser, потому что мне нужно иметь более полнофункциональное диалоговое окно «Открыть и сохранить как», чем позволяет Windows, совместимое с XP (и в идеале с W2000) * На этом этапе мне нужно добавить стандартную панель инструментов, кото...

2
голосов
2ответов
1260 просмотров

C # - получить событие из SetWindowText

Мы пишем плагин для существующего приложения VB6 (через COM-взаимодействие), и нам требуются некоторые функции, которые они не поддерживают.Мы могли бы легко получить требуемую функциональность, если бы могли каким-то образом получать событие, когда текст определенного элемента управления в их о...

5
голосов
5ответов
421 просмотров

COM Основные ссылки

ребята, не могли бы вы предоставить мне ссылку на учебник или .pdf для изучения основ COM? Я делаю это в Google ... все же я рекомендую ответы на stackoverflow, поэтому, пожалуйста, передайте мне ... Спасибо

0
голосов
1ответов
204 просмотров

Что выбрать для размещения моего внутрипроцессного сервера в отдельном процессе - COM + или DCOM?

Мне нужно защитить 64-разрядного потребителя COM-компонента от 32-разрядного встроенного COM-компонента C ++ ATL Похоже, что и COM +, и DCOM могут размещать мой внутрипроцессный компонент в отдельном процессе и выполнять маршаллинг, так что и мне, и потребительскому приложению это не важно, и...

3
голосов
2ответов
836 просмотров

Какую версию среды выполнения VC ++ выбрать - статическую или динамическую?

Я разрабатываю 64-битный внутрипроцессный COM-сервер VC ++ ATL, который в основном просто перенаправляет все вызовы на внепроцессный COM-сервер. Так что мой COM-сервер практически ничего не делает. Первоначально он использовал среду выполнения C ++ в DLL (переключатель компилятора /MD). Я зам...

3
голосов
3ответов
3038 просмотров

Как именно настроить DCOM для загрузки моей библиотеки DLL в отдельный процесс?

Я пытаюсь выделить существующий внутрипроцессный COM-сервер C ++ ATL в отдельный процесс. Надеюсь, DCOM сможет сделать это за меня, не меняя COM-сервер. Я начал с обычной настройки реестра - у меня есть запись HKCR \ CLSID {classId} и ключ InProcServer32, указывающий путь к файлу .dll. Я с...

0
голосов
1ответов
1773 просмотров

Как работает это странное 32-битное / 64-битное решение взаимодействия?

В настоящее время я обслуживаю часть программного обеспечения, которое мы передали на аутсорсинг пару лет назад и которое плохо документировано. Эта часть представляет собой COM-сервер для использования сторонними приложениями и установщик, который выполняет все необходимое развертывание. Ядр...

0
голосов
1ответов
281 просмотров

Ошибка ColdFusion COM

Я перехожу с CF4.5 на CF8.Вызовы COM-библиотеки DLL, которые раньше работали в версии 4.5, теперь вызывают ошибку «Сложные типы объектов не могут быть преобразованы в простые значения ..».У COM-объекта есть несколько массивов, определенных как выходные параметры.Эти переменные определены в Coldf...

2
голосов
1ответов
974 просмотров

Как можно легко использовать 32-разрядный внутрипроцессный COM-сервер из 64-разрядных приложений?

У меня есть 32-разрядный встроенный COM-сервер C ++ ATL, который зависит от огромного набора устаревших 32-разрядных библиотек.Мне нужно использовать его из 64-битного приложения с минимально возможными изменениями. Один из вариантов - поместить его в приложение COM +.Какие еще простые вариан...

2
голосов
1ответов
694 просмотров

Библиотека взаимодействия COM C #

В настоящее время я портирую устаревшее приложение VBA в приложение .Net. Во время этого процесса пользователям существующего приложения VBA необходимо добавить некоторые функции. Поэтому вместо того, чтобы кодировать их на VBA, а затем на C #, я написал новую функциональность на C #, и я хочу п...

7
голосов
1ответов
507 просмотров

Возможно ли, что у C # есть проблемы с вызовом методов VB6 с необязательными параметрами?

Я добавил 3 необязательных логических параметра к методу, найденному в VB6 DLL. Класс, в котором он находится, - MultiUse (общедоступный), а сам метод - Private. Класс реализует определенный интерфейс из TLB, позволяя публичные вызовы этого метода. После добавления трех необязательных парамет...

5
голосов
2ответов
4080 просмотров

Для чего используются объявления dispinterface?

Когда вы создаете библиотеку типов в Delphi и создаете интерфейс и связанный с ним CoClass, Delphi также создает соответствующие объявления диспетчерского интерфейса. Насколько я понимаю, это связано с тем, что мой интерфейс является производным от IDispatch, но я думал, что TAutoObject реали...