所有问题: [atl]

121 个问题

类似标签:eclipse-atl
1
投票
1答案
126 次观看

ATL / COM:我可以在同一对象的两个不同接口中具有相同功能吗?

我有一个用VC ++ 6.0编写的基于ATL / COM的DLL。直到最近,我的COM接口和类之间还是一一对应的。例如,假设有一个ICar接口;然后还有一个实现它的CCar类,除了CCar实现ICar之外没有其他类,并且CCar除了ICar之外没有实现任何接口。同样,IPlane和CPlane。定义可能类似于: ICar具有功能“ StepOnGas”和“ MaxPassengers”; IPlane具有“ LowerLandingGear”和“ MaxPassengers”功能。 最近,我对其进行了更改,以便有一个IVehicle接口,该接口没有相应的CVehicle类,并且由C...

2
投票
3答案
2261 次观看

如何使用ATL创建VB6集合对象

或兼容VB6的集合对象。 我们通过一组API为我们的.net产品提供了挂钩。 我们需要继续支持从VB6调用我们的API的客户,因此我们需要继续支持VB6集合对象(与.net中的VBA.Collection相同)。 问题是支持某些使用VBScript调用我们的API的网站。 VBScript没有集合对象的概念,因此,为了创建一个集合对象以传递给我们的API,我们构建了一个提供“ CreateCollection”方法的VB6 ActiveX DLL。此方法仅创建并传递一个新的收集对象。问题解决了。 经过多年的修剪,移植和重建,此DLL是我们仅有的VB6代码。因此,我们仍然需要在开发...

0
投票
1答案
820 次观看

END_COM_MAP中IUnknown成员函数的作用是什么?

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 STDMETHODCALLTYPE Release( void) throw(...

0
投票
1答案
596 次观看

为什么BEGIN_COM_MAP包含DEBUG_QI_ENTRY?

在ATL中,有一个BEGIN_COM_MAP宏用于声明一个表,该表控制在相应类对象上调用QueryInterface()时的行为。 里面有下面一行: static const _ATL_INTMAP_ENTRY _entries[] = { DEBUG_QI_ENTRY(x) 这意味着第一个表条目将是DEBUG_QI_ENTRY,其扩展如下: #ifdef _ATL_DEBUG #define DEBUG_QI_ENTRY(x) \ {NULL, \ (DWORD_PTR)_T(#x), \ (ATL::_ATL_C...

0
投票
1答案
503 次观看

WebBrowser控件从ATL到C#

在ATL中,如果我使用IWebBrowser2创建webbrowser控件,则在Windows Mobile中效果很好。我能够访问所有站点,进度条来了,一切都很好。 剩余的UI内容我在ATL中无法完成,因为这很耗时。我想去C#。 谁能建议我如何制作ATL activex控件并在c#中使用它。 谢谢

0
投票
1答案
626 次观看

如何在VC ++ ATL COM服务器中实现编组?

在实现自己的IFilter时,我发现某些消费者很可能需要从中进行编组。那就是他们来自我对象的QueryInterface()IMarshal接口。 不能使用MIDL的代理/存根-MIDL不会编译filter.idl文件-后者使用自定义结构,而MIDL不知道如何处理它们。因此,看来我需要自己实施编组。 在哪里可以找到有关实施封送处理的指南和示例?

2
投票
4答案
913 次观看

为什么Windows Search会在我的IFilter中查询一堆怪异的界面?

我已经将IFilter实现为本地VC ++ ATL进程内COM服务器。Windows Search不会使用它-它创建了我的IFilter的实例,然后执行了一堆QueryInterface()调用,具体是: IMarshal IStdMarshalInfo 接口编号为{4C1E39E1-E3E3-4296-AA86-EC938D896E92}的东西 和其他几个。由于我的IFilter仅实现IFilter,IPersist和IPersistFile,因此大多数调用都返回E_NOINTERFACE,因此Windows Search只会释放我的对象,而不会执行任何操作。 为什么...

0
投票
1答案
602 次观看

带有iDispatch DISPATCH_PROPERTYGET的IE中的权限被拒绝

我有一个使用ATL编写的ActiveX控件,并且遇到了一个相当严重且令人困惑的问题。当使用DISPATCH_PROPERTYPUT / METHOD调用iDispatch :: Invoke时,一切都很好。当我使用有效的BSTR对VT_BSTR进行方法调用后,将值返回给IE javascript时,它工作正常。 但是当我尝试: var stringValue = Object.stringValue; 它调用通过DISPATCH_PROPERTYGET标志调用的iDispatch,然后使用有效的BSTR(我与方法调用使用的完全相同)将返回值设置为VT_BSTR,我在IE中看到一...

1
投票
2答案
332 次观看

什么时候需要注册类型库?

例如,如果编写一个shell扩展,是否有必要将typelib注册到CComModule::RegisterServer(即,我想知道是否用FALSE调用它会引起一些问题)。

3
投票
2答案
836 次观看

我选择哪个VC ++运行时版本-静态还是动态?

我正在开发一个64位的proc内VC ++ ATL COM服务器,该服务器基本上只是将所有调用重定向到一个proc内COM服务器。所以我的COM服务器基本上什么也不做。 最初,它在DLL(/MD编译器开关)中使用了C ++运行时。我注意到,当我将其部署在干净的64位Win2k3 regsvr32上时,失败并显示错误: LoadLibrary({fileName})失败–此应用程序无法启动,因为应用程序配置不正确。重新安装该应用程序可能会解决此问题。 Google帮助-问题是未安装VC ++ 9运行时。即使msvcr90.dll与我的COM服务器位于同一目录中,问题仍然存在。我猜这...

3
投票
3答案
3038 次观看

如何准确配置DCOM以将DLL加载到单独的进程中?

我正在尝试将现有的本机C ++ ATL进程内COM服务器强制为单独的进程。我希望DCOM可以为我做到这一点而无需更改COM服务器。 我从通常的注册表设置开始-我有一个HKCR \ CLSID {classId}条目和一个InProcServer32键,用于指定.dll文件的路径。 我生成了一个应用程序ID(GUID)并将其添加到此。具体来说,我在HKCR \ CLSID {classId}下添加了一个等于应用程序ID的字符串值“ AppId”。我还添加了HKCR \ AppId {applicationId}键和等于空字符串的字符串值“ DllSurrogate”。我认为这足以迫使我...

2
投票
1答案
2825 次观看

是否存在用于MFC C ++中的URL编码的API?

我正在使用以下代码: CAtlNavigateData navData; CStringA m_strForm = "name=+++&priv=1&password="; navData.SetPostData((BYTE*)(LPSTR)(LPCSTR)m_strForm, m_strForm.GetLength(), QHTTP_FORM_URLENCODE); 特殊符号,例如:“ +++”需要进行url编码,而没有url编码,则+++会变成空格。 我需要一个会聚者。 CString URLEncodingConvertion(const CStri...

2
投票
1答案
974 次观看

通过64位应用程序使用32位In-proc COM服务器的简单方法是什么?

我有一个32位本机C ++ ATL进程内COM服务器,它依赖于大量旧版32位库。我需要在可能发生最小更改的64位应用程序中使用它。 一个选择是将其放入COM +应用程序。还有哪些简单的选择?

1
投票
1答案
157 次观看

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); 我捕获了已发布的包裹,并找到了发布数据 name ...

0
投票
3答案
1694 次观看

如何在Visual Studio 2003中创建64位本机ATL C ++ DLL?

我有一个32位ATL C ++进程内COM服务器组件。如何将其移植到64位Windows?我的意思是如何使VC ++ 7发出64位代码?Visual Studio 2003是否可以?

3
投票
2答案
1035 次观看

ATL COM对象是否具有消息泵?

如果创建一个新的ATL项目并向其添加一个使用Apartment线程模型的简单COM对象(请注意:一个对象而不是一个控件),那么在后台运行消息泵吗?我想创建一个隐藏的窗口,该窗口是我的COM对象类的成员,但是我不确定是否将实际发送任何消息给它。这是在后台处理的还是实际上创建COM对象的应用程序类型有什么关系?

3
投票
2答案
2119 次观看

从另一个线程触发COM事件

我已经使用ATL创建了一个进程内COM对象(DLL)。请注意,这是一个对象,而不是控件(因此没有窗口或用户界面。)我的问题是,我试图从第二个线程触发事件,并且遇到“灾难性失败”(0x8000FFFF)。如果我从主线程触发该事件,则不会收到错误。第二个线程正在调用CoInitializeEx,但这没有区别。我正在使用Apartment线程模型,但切换到“自由线程”并没有帮助。 我试图从第二个线程执行此操作的事实显然至关重要。有没有简单的方法可以做到这一点,或者我是否必须实现某种隐藏窗口形式的消息传递? 例如,在我的主对象的源文件中: STDMETHODIMP MyObject::S...

1
投票
2答案
1600 次观看

Install Shield“构建时COM提取”如何工作?

我们的产品包含一个VC ++ ATL进程内COM服务器,带有两个COM暴露类-ClassA和ClassB。将此COM服务器添加到Install Shield 2008安装程序包中,并为该组件设置“在构建时提取COM”属性。 该组件以完全相同的方式公开ClassA和ClassB-每个组件都有一个.rgs文件,两个.rgs文件都被编译到组件资源中,并且为它们两者调用了CAtlModule :: UpdateRegistryFromResourceS()。> 但是,当我们在COM服务器上运行regsvr32时,两个类都正确地显示在注册表中,但是当我们运行软件包的安装时,Install...

0
投票
1答案
3859 次观看

如何修复COM outproc服务器初始化错误0x80004015?

我有一个用ATL编写的COM出口服务器,它使用来注册自己 _Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE) ,它会导致HRESULT错误代码0x80004015(表示CO_E_WRONG_SERVER_IDENTITY)。是什么导致此错误代码,如何解决此错误?

0
投票
2答案
1751 次观看

如何注入脚本以侦听ActiveX事件?

我正在尝试侦听ATL对象触发的事件。我发现,如果我直接在页面的HTML中包含以下脚本,则它将正确拾取事件。 <html> <head> <script event="genericScriptEvent(param0, param1, param2, param3, param4, param5, param6, param7, param8)" for="CMyControl" type="text/javascript"> <.head> ... </html> 但是,我现在正在动态创建html页面,只需要将...

9
投票
1答案
5680 次观看

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?

0
投票
3答案
936 次观看

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...

1
投票
1答案
393 次观看

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 ...

0
投票
1答案
287 次观看

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.

0
投票
2答案
98 次观看

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...

11
投票
2答案
4558 次观看

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...

1
投票
3答案
10725 次观看

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...

1
投票
3答案
1467 次观看

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...

1
投票
2答案
244 次观看

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,...

0
投票
1答案
254 次观看

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