atl相关内容

ATL 简单对象向导 - “对象 Xxx 已存在"错误

我正在尝试使用 Visual Studio 2005 中的 ATL 简单对象向导在我的 DLL 中创建一个新的 COM 对象. 我输入对象的短名称,所有其他字段都是派生的. 但是,当我在向导中单击下一步时,出现以下错误消息: 对象 'IXxxInterfaceName' 已经存在 我在整个解决方案中搜索了对 IXxxInterfaceName 的所有引用,但在任何地方都看不到它的定 ..
发布时间:2022-01-14 12:33:25 C/C++开发

如何最好地将 CString 转换为 BSTR 以将其作为“in"传递COM 方法中的参数?

我需要将 CString 实例转换为正确分配的 BSTR 并将该 BSTR 传递给 COM 方法.为了让代码能够同时为 ANSI 和 Unicode 编译和工作,我使用 CString::AllocSysString() 将任何格式的 CString 转换为 Unicode BSTR. 由于没有人拥有返回的 BSTR,我需要处理它并在调用完成后以最安全的方式和尽可能少的代码释放它. 目 ..
发布时间:2022-01-14 12:31:51 其他开发

为 COM 接口启用编组需要什么?

我有一个没有类型库的 32 位 ATL COM 组件.它为一个给定的类提供了一个类工厂,该类实现了多个接口. 当我将它用作进程内服务器时,一切正常 - 客户端调用 CoCreateInstance(),实例化对象,QueryInterface() 检索指向请求接口的指针.但是当我将组件放入 COM+ 时,我无法再实例化该类 - CoCreateInstance() 现在返回 E_NOINTE ..
发布时间:2022-01-14 12:27:52 其他开发

向 VBScript (ATL) 公开 COM 事件

我使用“ATL 简单对象"向导在 C++ 中使用 ATL 构建了一个 COM 服务器 DLL.我遵循了 Microsoft 的 ATLDLLCOMServer 示例.一切正常,除了一件事:我没有收到 VBScript 中的 COM 事件.我确实收到了 C# 中的事件.在早期的基于 MFC 的实现中,我曾在 VBScript 中作为 ActiveX 控件工作. 我的控件是这样定义的: 类 A ..
发布时间:2022-01-14 12:27:42 C/C++开发

如何使用 COM 在两个进程之间传输数据(对于 IPC - 进程间通信)

我对 COM 有一定的了解,并希望了解 COM 如何帮助数据传输.假设有两个进程,Process-A 和 Process-B,它们都想互相共享一些数据,当然有很多 RPC 机制,但我想使用 COM. 您不能创建 COM dll,因为那样它会变得特定于进程并且无法使用 我们能否创建一个单吨 COM EXE 服务器并将结构包装在 COM CoClass 中并将其成员公开为属性,然后...... ..
发布时间:2022-01-14 12:07:41 其他开发

MFC和ATL之间的根本区别是什么?

假设我仅将它们用于“普通"GUI 程序(没有 COM,没有 ActiveX,没有什么花哨的),我将看到 ATL 和 MFC 之间的根本区别是什么?帮我弄清楚该用哪一个? 我在网上做了一些搜索,但最终没有一个答案真正回答了我的问题: http://msdn.microsoft.com/en-us/library/bk8ytxz5(v=vs.80).aspx: “ATL 是一种快速、 ..
发布时间:2022-01-12 15:07:24 C/C++开发

我可以将 MFC 支持添加到现有 ATL COM 项目吗

我使用 ATL COM Object 创建了一个 Shell 扩展.但是在创建过程中我没有添加 MFC 支持.我现在可以更改设置以添加 MFC 支持吗 解决方案 是的,但我相信这样做不会自动添加所有必需的标头和#defines - 当然,您可以先尝试一下,然后检查为了确定. 如果这不起作用,您可以使用“文件->新建->现有代码中的项目"在您的解决方案中创建一个新项目,该项目同时使用 ..
发布时间:2022-01-12 15:05:14 C/C++开发

CImage::Load() 从内存而不使用 CreateStreamOnHGlobal

我正在显示来自摄像机的实时取景视频.我将每一帧下载到一个字节数组(pImageData)中,我必须分配它. 现在,为了显示,我正在使用 CImage (MFC).但是,我找到的所有示例都基于使用 GlobalAlloc,还有另一个 memcpy 和 CreateStreamOnHGlobal. 我想避免进行另一次分配/解除分配和内存复制.每帧超过 2mb,我正在推动 30 fps! ..
发布时间:2022-01-12 14:58:55 C/C++开发

我如何决定是否为新的 C++ 项目使用 ATL、MFC、Win32 或 CLR?

我刚刚开始我的第一个 C++ 项目.我正在使用 Visual Studio 2008.它是一个单一形式的 Windows 应用程序,它访问几个数据库并启动一个 WebSphere MQ 事务.我基本上了解 ATL、MFC、Win32(我实际上对那个有点模糊)和 CLR 之间的区别,但我不知道应该如何选择. 其中一个或多个只是为了向后兼容吗? CLR 是个坏主意吗? 任何建议表示赞 ..
发布时间:2022-01-12 14:32:25 C/C++开发

将自定义上下文菜单添加到托管的 Web 浏览器控件

我正在托管一个 Web 浏览器控件,并希望提供我自己的上下文菜单. 理想情况下,我想展示我自己的上下文菜单,其中包含原始浏览器的上下文菜单(包括所有插件等)作为子菜单. 如果这不可能/很棘手,我可以接受例如通常显示我的上下文菜单,并在用户按下 SHIFT 时显示原始菜单. 我是否需要实现 IDocHostUIHandler?如果是,如何指定自定义上下文菜单,如何强制使用原始上下文 ..
发布时间:2021-11-30 14:15:36 C/C++开发

如何在 ATL/WTL 中创建拆分器?

我想将我的(可调整大小的)对话框的元素放在两个窗格之一中. 如何使用 WTL 为窗格创建拆分器? 我找到了 CSplitterImpl 和 CSplitterWindowImpl,但我不知道如何在我的对话框中使用它们. 解决方案 来自 WTL 的 WTLExplorer 示例应该会让您有所了解,请参阅 \Samples\WTLExplorer.如果你想要更多,周围有很多,例如htt ..
发布时间:2021-11-30 14:15:14 其他开发

Tab 键在 IWebbrowser2 中不起作用

我正在使用 ActiveX 控件在 ATL 应用程序 (IWebbrowser2) 中实现嵌入式浏览器.问题是,我无法使用 Tab 键在文本字段之间跳转.按tab键什么也不做.按 Enter 键会按预期提交表单.问题存在,例如在 facebook 登录网站上.如何使tab键正常工作?我必须激活 ATL 控件中的某些内容才能使其工作吗? 谢谢! 法比安 解决方案 本文介绍了一种如 ..
发布时间:2021-11-30 14:15:05 C/C++开发

为什么我的 WM_UNICHAR 处理程序从未被调用?

我有一个 ATL 控件,我希望它能够识别 Unicode.我为 WM_UNICHAR 添加了一个消息处理程序: MESSAGE_HANDLER( WM_UNICHAR, OnUniChar ) 但是,出于某种原因,永远不会调用 OnUniChar 处理程序. 根据文档,应该首先使用“UNICODE_NOCHAR"调用处理程序,如果您想接收 UTF-32 字符,处理程序应该返回 TRUE. ..
发布时间:2021-11-30 14:14:58 C/C++开发

处理复选框的 OnClick 事件

我正在尝试处理来自 BHO 的复选框控件的点击事件. 这是我的代码: void STDMETHODCALLTYPE CMyBHO::OnDocumentComplete(IDispatch *pDisp, VARIANT *pvarURL){//...InitPage(pDocument);}void CMyBHO::InitPage(IHTMLDocument2 *pDocument){ ..
发布时间:2021-11-30 14:14:44 C/C++开发

在初始化/激活控件后,如何获取 ActiveX 控件的 HWND?

我正在使用 Visual Studio 2008 在 C++ 中创建基于 ATL 8.0 的 ActiveX 控件.我需要创建一个子窗口并将其附加到 ActiveX 控件. 如何访问 ActiveX 控件拥有的 HWND? 为了在控件窗口创建后使用 HWND,我可以覆盖哪个 ATL 函数? 解决方案 经过反复试验,我找到了我想要的答案. 在您的 ATL ActiveX 控 ..
发布时间:2021-11-30 14:14:33 C/C++开发

是否需要编组支持线程模型“Both"的 com 对象?

我们得到了进程内服务器 (.dll) 线程模型“Both".我注意到注册表编辑器中的线程模型.因为我们知道用“Both"创建的 com 对象将采用线程的线程模型创建的对象.我在 STA 线程中实例化了对象,以确保对 com 对象的调用应该只通过一个线程.我正在以序列化的方式从子线程调用这个对象的方法,其中对象实际上是在主(STA)线程中创建的 会不会有副作用? 当我在没有任何编组(GI ..
发布时间:2021-11-30 14:14:24 其他开发

CoCreateInstance 不启动或连接到 ATL COM 服务

我有一个 ATL COM 服务 exe (MyService.exe),它编译并运行良好.如果我安装此服务(通过 MyService.exe/Service),它会成功安装到 SCM 中.我可以通过 SCM 启动服务并且它在 LOCALSYSTEM 帐户下运行良好. 当我尝试创建由服务定义的 COM 类的实例时,我的问题出现了.我的测试工具应用程序 (MyServiceTest.exe) 调 ..
发布时间:2021-11-30 14:14:16 C/C++开发