问题标签 [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 投票
4 回答
2928 浏览

windows - Atl 服务未注册

我正在尝试使用注册 atl 服务

ExeName.exe /服务

如此处所述:http: //msdn.microsoft.com/en-us/library/74y2334x (VS.80).aspx

但是,这样做之后,它并没有出现在我的服务控制面板中(我通过在 vista 的开始框中键入 Services 进入的那个)。

我试图挖掘 atl 代码以查看它处理 /service 开关的位置,但找不到它,尽管我可以找到处理 /RegServer 和 /UnregServer 的代码

这曾经有效,我以前以某种方式设法注册了此服务。但是,现在我已经移动了它的位置,并且无法再次注册它。当我运行 ExeName.exe /service 时,如果我先执行 /RegServer,它会作为本地服务器启动,但我希望它作为服务安装。

我是否遗漏了什么,您知道 /service 开关的处理在哪里完成吗?

0 投票
1 回答
611 浏览

c++ - 如何防止在托管 Internet Explorer 中打开新窗口

我在 CAxWindow ATL 类中托管一个 Internet Explorer 实例(Web 控件)。如何防止网站从托管的 IE 中打开新窗口?我已经设置了 IDocHostUIHandlerDispatch 的实现来禁用上下文菜单。

0 投票
2 回答
6024 浏览

c++ - 如何制作从基类派生的 ATL COM 类?

“ATL 简单对象”向导不提供指定新类派生自现有 coclass 及其接口的方法。在 Visual Studio 2008 中,如何从现有的 ATL COM 类派生一个新的 ATL COM 类(即Baseimplements IBase,我想创建一个从该 implementsDerived派生的新类,其中派生自。)BaseIDerivedIDerivedIBase

更新:听起来很简单,但是向导生成的 ATL 类最多有六个基类、一个 COM 映射和一个连接点映射。哪些基类和映射应该在派生类中重复?如果在派生类中重复映射,它们应该包含基类映射的内容还是仅包含附加项?基类的顺序重要吗?FinalConstruct()和怎么样FinalRelease()?是否应该在派生DECLARE_PROTECT_FINAL_CONSTRUCTDECLARE_REGISTRY_RESOURCEID中重复?

这是一个除所有样板外为空的示例基类。现在派生类应该是什么样子?

0 投票
1 回答
1608 浏览

arrays - 在什么情况下,ATL CSimpleArray 是比 CAtlArray 更好的选择

文档说 CSimpleArray 用于处理少量对象。在这种情况下什么是小?CSimpleArray 是一个不错的选择,还是我应该始终使用不同的集合类,例如 CAtlArray?

0 投票
1 回答
324 浏览

c++ - BEGIN_MSG_MAP_EX 破坏 Visual Studio 2005 智能感知?

我有一个使用 WTL/ATL BEGIN_MSG_MAP_EX 宏进行消息处理的 C++ 应用程序。我使用 atlcrack.h 中的一些宏。

当我们将项目升级到 Visual Studio 2005 时,智能感知表现得很疯狂。我已经将行为追踪到 BEGIN_MSG_MAP_EX 宏在智能感知中的行为不正确。但是,我找不到继续使用 BEGIN_MSG_MAP_EX 和 Visual Studio 2005 的方法。

我是否必须重写所有旧的消息处理程序并停止使用 BEGIN_MSG_MAP_EX 或者是否有其他修复?

0 投票
3 回答
2226 浏览

winapi - Windows 服务关闭

我将 VS6 和 ATL 与 CServiceModule 一起使用来实现自定义 Windows 服务。如果出现致命错误,服务应自行关闭。由于 CServiceModule 可通过所有文件中的 _Module 变量获得,我想到了这样的事情来导致 CServiceModule::Run 停止发送消息并自行关闭

这是正确的还是你有更好的主意?

0 投票
3 回答
2551 浏览

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

我有一个 ATL 控件,我希望它能够识别 Unicode。我为 WM_UNICHAR 添加了一个消息处理程序:

但是,出于某种原因,永远不会调用 OnUniChar 处理程序。

根据文档,应首先使用“UNICODE_NOCHAR”调用处理程序,如果您想接收 UTF-32 字符,则处理程序应返回 TRUE。但是,正如我所说,处理程序永远不会被调用。

有什么特别需要做的来激活它吗?

0 投票
3 回答
4773 浏览

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

我正在使用 Visual Studio 2008 在 C++ 中创建一个基于 ATL 8.0 的 ActiveX 控件。我需要创建一个子窗口并将其附加到 ActiveX 控件。

如何访问 ActiveX 控件拥有的 HWND?

在创建控件的窗口后,我可以重写哪个 ATL 函数以使用 HWND?

0 投票
2 回答
494 浏览

c++ - C++ ATL 成员变量访问帮助

我对此不熟悉,可以使用kick start。

我正在使用 ATL(非托管 C++)用户控件并希望使用 ShockWave ActiveX 对象。我需要知道如何声明它,以便我可以设置属性或调用方法。

例如,如果我可以为其分配一个变量,那么我想调用'variable->LoadMovie()'

我知道这太荒谬了……几乎不好意思在这里问。;) (几乎)

0 投票
3 回答
953 浏览

c++ - 客户不会与 ATL 服务对话

我在导出 COM 对象的 ATL 服务时遇到问题。它作为本地服务运行,但是当作为 Windows 服务运行时,我无法连接。该服务正确启动并运行,但我的客户端(下面的代码)总是失败并出现错误“无法启动服务”。

所以我们在看同样的事情,我已经建立了一个最小的项目,可以在我的 PC 上重现这个问题。

File->New Project
Visual C++ -> ATL "ATL Project"
Name: "MyService"
在Application Settings下,选择"Service (EXE)"

转到“类视图”
右键单击“MyService”并添加 -> 类
选择:“ATL 简单对象”
短名称:“MyObject”

转到“解决方案视图”
右键单击“解决方案'MyService'”并添加->“新建项目”
这将是一个“Visual C++”->“Win32”“Win32 控制台应用程序”
名称:“MyClient”
检查“添加ATL 的通用头文件”框

在 client.cpp 中,使用以下代码:

打开“项目依赖”
项目“MyClient”依赖于“MyService”

构建解决方案。

在命令提示符下,运行以下命令:
MyService /Service
net start MyService
client