Все вопросы: [atl]
121 вопросов
ATL / COM: Могу ли я использовать одну и ту же функцию в двух разных интерфейсах одного и того же объекта?
У меня есть DLL на основе ATL / COM, написанная на VC ++ 6.0. До недавнего времени между моими COM-интерфейсами и классами существовало однозначное соответствие. Например, предположим, что был интерфейс ICar; затем был также класс CCar, который реализовал его, и ни один класс, кроме CCar, не реа...
Как создать объект коллекции VB6 с помощью ATL
или совместимый с VB6 объект коллекции. Мы предоставляем перехватчики для наших продуктов .net через набор API. Нам необходимо продолжать поддерживать клиентов, которые вызывают наши API из VB6, поэтому нам нужно продолжать поддерживать объекты коллекции VB6 (просто с VBA.Collection в .net...
Какова цель функций-членов 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...
Почему BEGIN_COM_MAP содержит DEBUG_QI_ENTRY?
В ATL есть макрос BEGIN_COM_MAP для объявления таблицы, которая управляет поведением QueryInterface () при вызове соответствующего объекта класса. Внутри есть следующая строка: static const _ATL_INTMAP_ENTRY _entries[] = { DEBUG_QI_ENTRY(x) что означает, что первая запись таблицы б...
Элемент управления WebBrowser с ATL на c #
В ATL, если я создаю элемент управления веб-браузера с помощью IWebBrowser2, он отлично работает в Windows Mobile.Могу зайти на все сайты, заходит прогресс бар, все нормально .. остальной контент пользовательского интерфейса я не могу выполнить в ATL, так как это требует времени.Я хотел бы перей...
Как реализовать маршаллинг на COM-сервере VC ++ ATL?
При внедрении моего собственного IFilter я обнаружил, что, скорее всего, некоторым потребителям потребуется его маршаллинг.То есть они QueryInterface () интерфейс IMarshal из моего объекта. Прокси / заглушки из MIDL использовать нельзя - MIDL не будет компилировать файл filter.idl - последний...
Почему Windows Search запрашивает у моего IFilter кучу странных интерфейсов?
Я реализовал IFilter как встроенный COM-сервер VC ++ ATL.Windows Search не будет использовать его - он создает экземпляр моего IFilter, а затем выполняет несколько вызовов QueryInterface (), а именно: IMarshal IStdMarshalInfo что-то с идентификатором интерфейса {4C1E39E1-E3E3-4296-AA86-E...
Разрешение отказано в IE с iDispatch DISPATCH_PROPERTYGET
У меня есть элемент управления ActiveX, который я написал с использованием ATL, и я столкнулся с довольно серьезной и запутанной проблемой.Когда iDispatch :: Invoke вызывается с DISPATCH_PROPERTYPUT / METHOD, все в порядке.Когда я возвращаю значение в javascript IE после вызова метода VT_BSTR с ...
Когда необходима регистрация библиотеки типов?
Например, если вы пишете расширение оболочки, необходимо ли регистрировать typelib с CComModule::RegisterServer (т.е. мне интересно, вызовет ли его вызов с FALSE некоторые проблемы).
Какую версию среды выполнения VC ++ выбрать - статическую или динамическую?
Я разрабатываю 64-битный внутрипроцессный COM-сервер VC ++ ATL, который в основном просто перенаправляет все вызовы на внепроцессный COM-сервер. Так что мой COM-сервер практически ничего не делает. Первоначально он использовал среду выполнения C ++ в DLL (переключатель компилятора /MD). Я зам...
Как именно настроить DCOM для загрузки моей библиотеки DLL в отдельный процесс?
Я пытаюсь выделить существующий внутрипроцессный COM-сервер C ++ ATL в отдельный процесс. Надеюсь, DCOM сможет сделать это за меня, не меняя COM-сервер. Я начал с обычной настройки реестра - у меня есть запись HKCR \ CLSID {classId} и ключ InProcServer32, указывающий путь к файлу .dll. Я с...
Есть ли какой-нибудь API для кодирования URL в mfc c ++?
Я использую следующий код: CAtlNavigateData navData; CStringA m_strForm = "name=+++&priv=1&password="; navData.SetPostData((BYTE*)(LPSTR)(LPCSTR)m_strForm, m_strForm.GetLength(), QHTTP_FORM_URLENCODE); специальные символы, такие как: "+++", должны кодировать URL, без кодирования U...
Как можно легко использовать 32-разрядный внутрипроцессный COM-сервер из 64-разрядных приложений?
У меня есть 32-разрядный встроенный COM-сервер C ++ ATL, который зависит от огромного набора устаревших 32-разрядных библиотек.Мне нужно использовать его из 64-битного приложения с минимально возможными изменениями. Один из вариантов - поместить его в приложение COM +.Какие еще простые вариан...
CAtlNavigateData не может работать со специальными символами, такими как +
CAtlNavigateData navData; CStringA m_strForm = "name=+++&priv=1&password="; navData.SetSocketTimeout(m_nMilliSecond); navData.SetMethod(ATL_HTTP_METHOD_POST); navData.SetPostData((BYTE*)(LPSTR)(LPCSTR)m_strForm, m_strForm.GetLength(), QHTTP_FORM_URLENCODE); Я ловлю опубликованный п...
Как мне создать 64-битную родную ATL C ++ DLL в Visual Studio 2003?
У меня есть 32-битный внутрипроцессный COM-сервер ATL C ++.Как перенести его на 64-битную Windows?Я имею в виду, как заставить VC ++ 7 выдавать 64-битный код?Возможно ли это с Visual Studio 2003?
Есть ли у COM-объекта ATL насос сообщений?
Если вы создадите новый проект ATL и добавите к нему простой COM-объект (примечание: объект, а не элемент управления), использующий потоковую модель Apartment, будет ли под капотом работать насос сообщений?Я хочу создать скрытое окно, которое является членом моего класса COM-объекта, но я не уве...
Запуск события COM из другого потока
Я создал внутрипроцессный COM-объект (DLL) с помощью ATL.Обратите внимание, что это объект, а не элемент управления (поэтому у него нет окна или пользовательского интерфейса). Моя проблема в том, что я пытаюсь запустить событие из второго потока и получаю «Катастрофический сбой» (0x8000FFFF).Есл...
Как работает Install Shield «Извлечение COM при сборке»?
Наш продукт содержит внутрипроцессный COM-сервер VC ++ ATL с двумя доступными для COM классами - ClassA и ClassB.Этот COM-сервер добавляется в пакет установщика Install Shield 2008, и для компонента устанавливается свойство «Извлечь COM при сборке». ClassA и ClassB представляются компонентом ...
Как исправить ошибку инициализации COM-сервера outproc 0x80004015?
У меня есть сервер COM outproc, написанный на ATL, который регистрируется с помощью _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE) и выдает код ошибки HRESULT 0x80004015 (что означает CO_E_WRONG_SERVER_IDENTITY).Что вызывает этот код ошибки и как ее обойти?
Как внедрить скрипт для прослушивания событий ActiveX?
Я пытаюсь прослушивать события, запускаемые моим объектом ATL. Я обнаружил, что если я включу следующий сценарий непосредственно в HTML-код страницы, он правильно улавливает событие. <html> <head> <script event="genericScriptEvent(param0, param1, param2, param3, param4, param5,...
Is there a document on .rgs files syntax?
Resource scripts loaded from .rgs files are used with ATL CComModule::UpdateRegistryFromResource(). It's quite common to see samples of such files on the net but I've never seen a complete description on what constructs are allowed in .rgs files. Is there such a document?
How to marshall COM object on the server side in visual c++?
I have a out-of-process COM server with an ATL Simple Object which creates another thread. The new thread will need to make calls to ATL Simple object. Since ATL Simple Object and new thread are created different apartments, ATL Simple Object needs to be marshalled in the new thread, otherwise e...
VB6 GUI not working in multithreaded COM environment
I have a VB6 COM client that makes calls to an inprocess STA ATL/COM server. One of the Server methods, X, can take a while to finish so I need to be able to cancel it. What I tried was to run the method code in a new thread and include another method, Y, that does a timed WaitForSinleObject. So ...
text change event in ATL c++
I have handle of a text box and want to trigger an event in ATL c++ on any text change in text box.
Is it possible to prohibit putting my in-proc component into COM+?
I have an ATL C++ in-proc COM component. This component is not for external use - I only need it for use in our application. Once in a while users put it into COM+ and this leads to all sorts of weird errors - "Access denied", etc which I'd like to just never hear about. The best way would be to...
What's the point of _MERGE_PROXYSTUB?
I have generated an ATL COM object using VS2008 and the code contains references to a definition called _MERGE_PROXYSTUB (because I chose the 'Merge proxy/stub' option when I initially ran the wizard.) What is the point of a proxy/stub? If I don't select the the merge option then I get a separa...
How to compare two BSTRs or CComBSTRs?
What is the right way to compare two CComBSTRs? I tried to use bool operator ==( const CComBSTR& bstrSrc ) const throw( ); However it always return false even two ComBSTRs are the same. It did not work correctly. Do I have to convert CComBSTRs to ANSI string first and then use s...
Handle when IE window moves - Visual C++
I want to handle window move events. My first try was to handle DWebBrowserEvents2::WindowSetHeight, WindowSetLeft, WindowSetTop and WindowSetWidth events, but for some reasons, these events didn't get fired at all. I've handled window resize by handling HTMLWindowEvents2::onresize. How would I h...
Error: MFC projects cannot define _ATL_NO_EXCEPTIONS
I'm extending an open source project. After including afxcoll.h in a new C++ file in order to use CStringArray, I get this error: Error: MFC projects cannot define _ATL_NO_EXCEPTIONS I suspect I'll be able to fix the error by adding #defines or changing or rearranging the inclusion of headers,...
How to get print preview of webpage in smartphone application
how to get an print preview content of an webpage using HTML control or web-browser control in windows mobile smart phone application using c#, c++ or ATL control. please guide us with any technical detail or any sample application associated with it. -Thanks in advance. GrabIt