atl相关内容

创建实现特定接口的 ATL COM 对象

我需要实现一个简单的 ATL COM 对象,该对象实现一个特定的接口,我已经为其提供了一个 .tlb 文件和一个 .idl 文件.界面非常简单,只包含一个方法.我过去创建了许多 ATL 对象,但从来没有一个必须实现特定接口.我需要什么来实现这一目标?我假设我需要以某种方式在我的新对象 IDL 中的某处引用接口的 IDL 或 TLB? 欢迎任何指点. 解决方案 它比这里建议的其他答案要 ..
发布时间:2021-11-30 14:04:14 C/C++开发

atlwin.h 中的编译器错误

在 Visual Studio 2013 构建中包含来自 Microsoft ATL 库的 atlwin.h 时,将导致大量关于未定义元素的编译器错误. 即 #include 类 MainWnd : public CWindowImpl{}; “CWindowImpl:未定义基类"错误. 或 HMONITOR 未定义 使用 VS2010 构建时不会发生这种情况. ..
发布时间:2021-11-30 14:04:03 C/C++开发

将 COM 事件暴露给 VBScript (ATL)

我使用“ATL 简单对象"向导在 C++ 中使用 ATL 构建了一个 COM 服务器 DLL.我遵循了 Microsoft 的 ATLDLLCOMServer 示例.除了一件事:我没有在 VBScript 中接收 COM 事件,一切都运行良好.我确实在 C# 中接收事件.我在早期的基于 MFC 的实现中将事件作为 ActiveX 控件在 VBScript 中工作. 我的控件定义如下: cl ..
发布时间:2021-11-30 14:03:54 C/C++开发

为 COM 接口启用封送处理需要什么?

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

在 Visual Studio 2017 中添加 ATL 简单对象

我正在 Visual Studio 2017 中使用旧的 ATL/COM 项目. 在以前版本的 Visual Studio 中,您可以选择“添加类",然后选择“添加简单 ATL 对象"选项以将 COM 类添加到项目中.Visual Studio 2017 中似乎完全没有此选项. 选项被移动了吗? 我是否错过了安装选项? Visual Studio 是否无法将我的项目识别为 ..
发布时间:2021-11-30 14:03:36 其他开发

SHOpenFolderAndSelectItems 用于资源管理器替换程序

我维护了一个资源管理器/文件管理器工具 (xplorer2),它可以代替 Windows 资源管理器来打开文件夹.但是,我无法捕获 SHOpenFolderAndSelectItems API 执行的“打开文件夹并选择项目"操作. 我发现了一个旧线程 由其他一些文件管理器程序员编写,暗示正确的方法是将“类似资源管理器"的工具注册为 shell 窗口,然后响应一些查询以提供接口和服务,例如 I ..
发布时间:2021-11-30 14:03:26 C/C++开发

生成导出包含 ATL::CString 成员的类的 DLL 时警告 C4251

我正在将基于 ATL 的静态库转换为 DLL,并且在任何使用 ATL CString 类(在 atlstr.h 中找到)的导出类上收到以下警告: 警告 C4251:'Foo::str_':类'ATL::CStringT'需要使用 dll 接口'Foo' 类的客户 我正确地将 Foo 类声明为通过 __declspec(dllexport) 导出的.这是我可以放心忽略的警告还是我做错了什 ..
发布时间:2021-11-30 14:03:16 C/C++开发

从字节数组创建 CImage

我需要创建一个 CImage 来自字节数组(实际上,它是一个 unsigned char 数组,但我可以转换为任何必要的形式).字节数组的格式为“RGBRGBRGB...".新图像需要包含图像字节的副本,而不是使用字节数组本身的内存. 我尝试了许多不同的方法来实现这一点——包括使用各种 HBITMAP 创建函数,尝试使用 BitBlt——但到目前为止没有任何效果. 要测试函数是否工作, ..
发布时间:2021-11-30 14:03:08 C/C++开发

使用 VS Express 时在控制台应用程序中使用 CString

我在尝试使用 CString 时遇到问题. 我有一个使用 VS2010Express 编写的控制台应用程序.我有一段代码想使用,但它使用 CString.当我尝试包含适当的头文件 atlstr.h(据我所知)时,我收到了著名的错误:无法打开源文件.经过一段时间的 Goggling 之后,似乎通常应该是可能的,但是 Express 用户无法使用 atlstr.h.问题: 1) 是吗?2) ..
发布时间:2021-11-30 14:02:49 C/C++开发

使用以编程方式创建的 Windows 媒体播放器进行基本播放

我试图“快速集成" Windows Media Player 通过 COM 播放来自本地文件系统或 http 源的单个文件 - 但由于其使用的文档和在线资源稀少当没有嵌入到某种 Ole 容器中时,我无法让那个所谓的微不足道的用例工作. 初始化等工作正常,但实际播放某些文件总是失败. 示例代码,从初始化开始(删除了错误处理,基本上翻译自 MSDN 上的 C# 示例,在主线程上执行): ..
发布时间:2021-11-30 14:02:31 C/C++开发

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

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

向现有 mfc 应用程序添加 ATL 支持

我想实现MFC Docking Framework在我现有的 mfc 应用程序中我接受了同样的审判,但它给了我这样的断言 在执行我的项目之前. 在输出窗口中,文本显示如下: “执行注册" 然后出现在断言下面 文件:c:\program files\microsoft visual studio.net 2003\vc7\atlmfc\include\atlbase.h ..
发布时间:2021-11-30 14:02:00 C/C++开发

CComVariant 与 _variant_t、CComBSTR 与 _bstr_t

我使用 ATL(VS2008,所以 ATL9 IIRC)来创建 COM 对象,并且一直使用 CComVariant 类(在 atlcomcli.h 中定义)来管理 VARIANT 类型.但是,还有另一个 VARIANT 包装器称为 _variant_t.CComVariant 和 _variant_t 之间有什么区别,我应该使用哪一个? 同样,有两个 BSTR 包装器可用 - CComBST ..
发布时间:2021-11-30 14:01:49 C/C++开发

使用 ATL 枚举 COM 对象 (IDispatch) 方法?

使用 ATL (VS2008) 如何枚举给定 IDispatch 接口 (IDispatch*) 上可用的可用方法?我需要搜索具有特定名称的方法,并且在获得 DISPID 后,调用该方法(我知道该方法采用的参数.)理想情况下,我想使用智能 COM 指针来执行此操作(CComPtr). 这可能吗? 解决方案 除非对象实现了 IDispatchEx,否则您无法枚举所有可用的方法. ..
发布时间:2021-11-30 14:01:40 C/C++开发

WaitForInputIdle 不适用于以编程方式启动 mspaint

我正在尝试打开“mspaint"并在它初始化后立即找到它的句柄.但是如果我调用 WaitForInputIdle,FindWindow 返回 NULL.如果我尝试使用 Sleep(1000) 函数,它会起作用.但我认为等待程序准备就绪不是正确的方法.此代码有解决方案吗? CString strWindowDirectory;GetSystemDirectory(strWindowDirecto ..
发布时间:2021-11-30 14:01:25 C/C++开发

如何开始开发 Internet Explorer 扩展?

这里有人有开发 IE 扩展的经验吗?可以分享他们的知识吗?这将包括代码示例、优秀示例的链接、流程文档或任何内容. 我真的很想这样做,但是我遇到了糟糕的文档,糟糕的代码/示例代码/缺乏的巨大墙壁.如果您能提供任何帮助/资源,我们将不胜感激. 具体来说,我想从如何从 IE 扩展中访问/操作 DOM 开始. 编辑,更多细节: 理想情况下,我想植入一个工具栏按钮,单击该按钮时,会弹 ..
发布时间:2021-11-30 14:01:15 C#/.NET

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

我正在开发一个 64 位进程内 VC++ ATL COM 服务器,它基本上只是将所有调用重定向到一个进程外 COM 服务器.所以我的COM服务器基本上什么都不做. 最初它在 DLL 中使用 C++ 运行时(/MD 编译器开关).我注意到当我在干净的 64 位 Win2k3 regsvr32 上部署它时失败并显示错误:LoadLibrary({fileName}) failed – 由于应用程 ..
发布时间:2021-11-25 07:16:17 C/C++开发