问题标签 [atl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2357 浏览

c++ - What's the difference between calling CComModule.RegisterServer, _AtlComModule.RegisterServer, and LoadTypeLibEx for TypeLib registration?

In my DllRegisterServer method of my COM dll, I previously had code that called LoadTypeLibEx(module, REGKIND_REGISTER, &pTypeLib) to register my COM classes and their corresponding TypeLib's. My COM DLL is a 64-bit. I've noticed that on my 64-bit Vista system, under HKCR:\\TypeLib\{myguid}\1.0\0 I find a win32 subkey with the location to my COM DLL.

I also have some other code in a seperate COM DLL that I support that uses the older, now deprecated CComModule.RegisterServer(TRUE) call. This code creates a win64 subkey under the 0 key for a 64-bit DLL and a win32 subkey under the 0 key for a 32-bit DLL. I am using the correct bit version of regsvr32 to do the registration in all cases (matching the regsvr32 bitness to DLL bitness).

Why does LoadTypeLibEx and _AtlComModule.RegisterServer both not create the win64 key for a 64-bit dll containing my TypeLib while the older CComModule.RegisterServer creates the correct keys?

0 投票
2 回答
499 浏览

c++ - 将“输入键”事件传递给 ATL 窗口中的 Flash 播放器?

我在 ATL 窗口中嵌入了一个 Flash 播放器 (flash9.ocx),并在 swf 中编码了功能以响应按下的返回/输入键。在独立的 swf 播放器上运行良好,但一旦在我的嵌入式播放器中播放,它就不会执行。好像我的窗户以某种方式挡住了路?有没有办法将按键传递给播放器?

仅供参考,表格上没有任何奇怪的地方。

谢谢!

0 投票
1 回答
886 浏览

c++ - 如何在 ATL 项目中保持全局变量值不变?

我需要有关 ActiveX(ATL) 项目中全局变量使用的帮助。基本上,ActiveX 组件功能是导航到复合控件中的指定 URL(嵌入 Web 浏览器)。URL 字符串在开始时被初始化并保存在全局变量中。这是我的 ActiveX 项目的源代码文件。

(不要关心语法,我只是想展示代码流程)。

mycomponent ActiveX 的使用是在 MFC SDI(Single Doc/View) 测试应用程序中。流程是这样的:

  1. 在 App Initinstance 中,我调用了 activeX InitPlugin 来初始化 URL 字符串。
  2. 在 Information 对话框窗口中,插入 MyComponentCtrl ActiveX,通过单击 Mainframe Information 菜单项弹出 Information 对话框。目标是当信息对话框窗口弹出时,它总是可以转到指定的url。

在我的 MFC 测试应用程序启动后,我单击信息对话框菜单,信息对话框窗口可以打开并正确导航到 url。

但问题是,如果我关闭信息对话框,稍等片刻(大约 2~3 分钟),我试图再次打开信息对话框,它无法导航到 URL。我调试它,发现 MyComponenet 项目中的全局变量 szURL 失去了它的价值。

你能告诉我我应该怎么做才能解决这个问题吗?

提前非常感谢!

仿生编码器

0 投票
4 回答
703 浏览

c# - 使用正则表达式 (ATL >> NET) 解析 C# 子字符串?

我需要使用什么 C# 和 .NET 正则表达式模式从这个 url 中获取“bar”?

在 ATL 正则表达式中,模式应该是

0 投票
1 回答
429 浏览

com - 带有 ATL 版本控制的 COM

我的 Visual Studio 2008 ATL 项目有一个在多个位置定义版本号的控件。IDL 文件:

控件的头文件:

还有一个 rgs 文件:

这些版本号之间有什么关系?当我想发布版本 2 时,是否要增加所有 3?为什么注册表脚本中的版本只有 1 而没有 1.0?

0 投票
2 回答
579 浏览

c++ - 相当于 MFC 窗口的 OnFinalMessage?

ATL CWindow 类有一个有用的虚方法OnFinalMessage,它在处理完窗口的最后一个窗口消息后调用——此时销毁或删除与窗口关联的任何对象是安全的。从 MFC 类派生的窗口是否有任何等价物CWnd

0 投票
6 回答
10065 浏览

atl - 我在哪里可以获得活动模板库?

我以前从未使用过 COM,我的任务是编写一个使用一些第三方 COM 对象的应用程序。如果有人能指出一些关于如何使用它们的好教程,将不胜感激。更直接的是,我似乎没有安装活动模板库。我在网上搜索过,但不知道如何获得它。

0 投票
1 回答
4159 浏览

atl - #包括错误

我有一个 Visual Studio 项目编译失败并出现以下错误:“无法打开包含文件'atlrx.h':没有这样的文件”。

有人告诉我应该从 Codeplex 下载 ATL 服务器并安装文件。我已经下载了 ATL Server,但我不知道如何继续。

谢谢您的帮助。

0 投票
3 回答
1624 浏览

c++ - ATL App 中的 TAB 控件背景,XP 样式

我有一个 ATL 应用程序,其中包含一个包含 TAB 控件的对话框。该应用程序使用通用控件清单。

在具有视觉样式的 XP 下,选项卡控件背景与对话框和控件(主要是复选框)颜色不同,因此看起来很丑。

截屏

我该如何解决?

0 投票
2 回答
477 浏览

c++ - 包装第 3 方 DLL

我有一个需要使用 LoadLibrary() 动态加载并使用 __cdecl 调用约定的第 3 方 DLL。我需要能够使用 VB6 中的 dll,所以我创建了自己的包装 DLL,它使用 __stdcall 调用约定并导出所需的函数。

现在已经有一个额外的要求,我正在努力寻找如何管理;包装的 DLL 为另一个应用程序提供了一个 API,我需要同时连接到应用程序的两个实例。这是一个问题,因为 DLL 没有会话的概念,典型的交互如下所示:

我需要做的是

我看到的主要问题是单个进程只能连接到一个服务,所以我尝试的第一个解决方案是通过使用 ATL 创建一个进程外 COM 服务器来将 DLL 包装器移到一个单独的进程中。我现在遇到的问题是我只获得了一个 COM 服务器实例。

所以我的问题(最后)是否有办法强制创建 ATL COM 服务器的新实例?这是解决问题的最佳方法还是有人能想到更好的方法来解决这个问题。

谢谢杰克逊