演练:为智能设备创建 ATL 多平台 ActiveX 控件

更新:2007 年 11 月

可以使用用于设备的 Visual C++ 编写面向多种设备的 ActiveX 控件。下面的演练阐释如何生成多平台 ATL ActiveX 控件。

在本演练中,执行以下主要任务:

  • 创建多平台智能设备 ATL 项目。

  • 使用向导将 ActiveX 控件添加至项目。注意,大部分基本结构和代码都是由向导生成的。

  • 修改 stdafx.h 和 samplecontrol.h 文件中的代码,以定义线程模型和避免编译器警告。

  • 部署多平台解决方案。注意,还生成了一个 Internet Explorer 文件,以便测试和运行该控件。

本演练使用 Visual C++ 开发设置编写。

说明:

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

创建多平台 ATL ActiveX 控件

创建多平台 ATL ActiveX 控件

  1. 在“文件”菜单上指向“新建”,单击“项目”,在“项目类型”窗格中展开“Visual C++”节点,然后单击“智能设备”。

  2. 在“模板”窗格中单击“ATL 智能设备项目”。

  3. 在“名称”框中键入“ATLAXControl”,再单击“确定”。

    此时,将启动“ATL 智能设备项目向导”。

  4. 在“ATL 智能设备项目向导”的“欢迎”页上单击“下一步”。

    显示 “ATL 智能设备项目向导”的“平台”,此时您可以选择要添加到当前项目的 Platform SDK。

  5. 从“已安装的 SDK”列表中选择要添加到当前项目中的平台,例如“Smartphone 2003”和“Pocket PC 2003”。若要添加平台,请在左窗格中选择该平台(如“Smartphone 2003”),然后单击右箭头(“>”)按钮。若要移除平台,请在右边窗格中选择该平台(如“Pocket PC 2003”),然后单击左箭头(“<”)按钮。

  6. 单击“完成”以完成并关闭向导。

向项目添加 ActiveX 控件

向项目添加 ActiveX 控件

  1. 在“解决方案资源管理器”中右击“ATLAXControl”,指向“添加”,再单击“类”。

  2. 在“类别”窗格中单击“智能设备”。

  3. 在“模板”窗格中,单击“ATL 控件”,再单击“添加”。

    将出现“ATL 控件向导”对话框。

  4. 在“简称”文本框中,键入 samplecontrol。

  5. 单击“完成”以完成并关闭向导。

修改头文件中的代码

修改 stdafx.h 中的代码

  1. 在“解决方案资源管理器”中,双击 stdafx.h 以在编辑器中打开该文件。

  2. 在 #pragma once 后面添加以下定义 #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA,如下所示:

        // Add this define after 
        #pragma once
    #define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA
    
  3. 按下面的步骤演示,将 ActiveX 控件添加至项目。

向项目添加 ActiveX 控件

  1. 在“解决方案资源管理器”中,双击 samplecontrol.h 以在编辑器中打开该文件。

  2. 在定义 Isamplecontrol 的代码中,将字符串 ATL 8.0 : samplecontrol 替换为 Hello World ActiveX Control。

说明:

面向 DCOM 平台的 ActiveX 控件必须在生成时标记为单元模型线程。这是 ATL 控件向导的默认设置。可以放心忽略编译过程中生成的警告。同样,对于 ATL、GUI 和 EXE 项目(例如已向 ATL EXE 项目中添加了 atlwin.h、atlctl.h 或 atlhost.h 的项目),在包含 ATL 头文件之前,应在 stdafx.h 中定义 _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA。这种做法与开发桌面控件时相同。有关更多信息,请参见 生成并调试 Visual C++ 设备项目

部署多平台 ATL 解决方案

部署解决方案

  1. 在“生成”菜单上单击“重新生成解决方案”以生成控件。

  2. 在“生成”菜单上单击“部署解决方案”。

  3. 在 Visual Studio 工具栏上的“目标设备”下拉列表中选择目标,例如“Pocket PC 2003 SE 仿真程序”或“Pocket PC 2003 设备”。

  4. 在“生成”菜单上单击“部署”。

选择目标设备

为了确保在部署解决方案时系统提示您选择设备,请完成以下过程。

在部署时提示选择设备

  1. 在“工具”菜单上单击“选项”,展开“设备工具”节点,再单击“常规”。

  2. 如果“设备工具”不可见,请选择“选项”对话框底部的“显示所有设置”。

  3. 选择“部署设备项目前显示设备选项”复选框,再单击“确定”。

若要运行控件,请在设备上使用文件资源管理器定位至“Program Files\ATLAXControl”,再双击 Internet Explorer 文件“ATLAXControl”。此时,将显示一个或多个安全消息。单击“是”以运行该页。

请参见

参考

Visual C++(如何实现 - 智能设备)

其他资源

如何:创建多平台设备项目 (Visual C++)