《VSTO开发指南 使用Visual Basic 2005进行基于Excel、Word、Outlook、InfoPath的Office开发》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:EricCarterEricLippert著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:7121056860
  • 页数:712 页
图书介绍:本书细致而深入地介绍了使用Visual Studio Tools for Office编程的具体方法,逐一为你讲解Excel,Word,InfoPath和Outlook解决方案的编程实现,思路清晰、准确,作者以在该领域丰富而精深的专业知识为我们带来了VSTO方面最为权威的介绍。

第Ⅰ部分 VSTO简介 1

第1章 Office编程简介 3

1.1 为什么要进行Office编程 3

1.2 Office对象模型 5

1.3 属性、方法和事件 9

1.4 Office主互调程序集(PIA) 22

1.5 本章小结 28

第2章 Office解决方案介绍 29

2.1 Office解决方案的三种基本模式 29

2.2 Office自动化程序 31

2.3 Office加载项 39

2.4 文档代码 42

2.5 本章小结 47

第Ⅱ部分 .NET环境下的Office编程 49

第3章 Excel编程 51

3.1 自定义Excel的方法 51

3.2 编写用户自定义函数 57

3.3 Excel对象模型介绍 64

3.4 本章小结 67

第4章 Excel事件处理 69

4.1 Excel对象模型中的事件 69

4.2 VSTO中的事件 95

4.3 本章小结 98

第5章 Excel对象处理 99

5.1 使用Application对象 99

5.2 使用Workbooks集合 109

5.3 使用Workbook对象 112

5.4 使用Worksheets、Charts和Sheets集合 117

5.5 使用文档属性 119

5.6 使用窗口集合 121

5.7 使用窗口对象 124

5.8 使用Names集合与Name对象 126

5.9 使用Worksheet对象 127

5.10 使用Range对象 137

5.11 Excel中的特殊问题 148

5.12 本章小结 152

第6章 Word编程 155

6.1 自定义Word的方法 155

6.2 信息检索服务编程 159

6.3 Word对象模型简介 166

6.4 本章小结 166

第7章 Word事件处理 171

7.1 Word对象模型中的事件 171

7.2 VSTO中的Office事件 191

7.3 本章小结 192

第8章 Word对象处理 193

8.1 使用Application对象 193

8.2 使用Dialog对象 208

8.3 使用窗口 211

8.4 使用模板 214

8.5 使用文档 215

8.6 使用单个的文档 219

8.7 使用Range对象 233

8.8 使用书签 248

8.9 使用表格 249

8.10 本章小结 251

第9章 Outlook编程 253

9.1 自定义Outlook的方法 253

9.2 自定义属性页 258

9.3 Outlook对象模型的介绍 264

9.4 Collaboration Data Objects介绍 267

9.5 本章小结 270

第10章 Outlook事件处理 271

10.1 Outlook对象模型中的事件 271

10.2 应用程序级的事件 275

10.3 Outlook项的事件 283

10.4 其他事件 293

10.5 本章小结 295

第11章 Outlook对象处理 297

11.1 使用Application对象 297

11.2 使用Explorers和Inspectors集合 303

11.3 使用Explorer对象 304

11.4 使用Inspector对象 309

11.5 使用NameSpace对象 312

11.6 使用MAPIFolder对象 316

11.7 使用Items集合 323

11.8 Outlook项共有的属性和方法 327

11.9 Outlook的问题 341

11.10 本章小结 345

第12章 InfoPath介绍 347

12.1 何为InfoPath 347

12.2 让我们开始吧 348

12.3 窗体安全性 351

12.4 InfoPath编程 355

12.5 数据源事件 357

12.6 窗体事件、属性和方法 364

12.7 本章小结 371

第Ⅲ部分 VSTO中的Office编程 373

第13章 VSTO编程模型 375

13.1 VSTO编程模型 375

13.2 VSTO对Word和Excel对象的扩展 377

13.3 动态控件 381

13.4 VSTO对Word和Excel对象模型的扩展 389

13.5 本章小结 398

第14章 在VSTO中使用Windows窗体 399

14.1 简介 399

14.2 向文档中添加Windows Forms控件 403

14.3 编写控件中的代码 408

14.4 Windows Forms控件寄宿结构 408

14.5 合并自OLEObject或OLEControl的属性 414

14.6 在运行过程中添加控件 416

14.7 本章小结 421

第15章 使用操作窗格 423

15.1 操作窗格简介 423

15.2 使用ActionsPane控件 427

15.3 本章小结 437

第16章 在VSTO中使用智能标记 439

16.1 智能标记简介 439

16.2 使用VSTO创建文档级的智能标记 442

16.3 创建应用程序级的智能标记 452

16.4 本章小结 469

第17章 VSTO数据编程 471

17.1 使用VSTO创建具有数据绑定功能的自定义电子表格 471

17.2 用VSTO创建具有数据绑定功能的自定义Word文档 478

17.3 数据集、适配器和数据源 479

17.4 另一种创建数据绑定电子表格的技术 485

17.5 在数据岛中缓存数据 491

17.6 高级ADO.NET数据绑定:透过表象看本质 494

17.7 对宿主项和宿主控件绑定相关的扩展 495

17.8 本章小结 499

第18章 服务器数据方案 501

18.1 在服务器上嵌入带有数据的文档 501

18.2 使用ServerDocument和ASP.NET 503

18.3 一个简单的客户端ServerDocument工具 509

18.4 ServerDocument对象模型 510

18.5 本章小结 517

第19章 .NET代码的安全性 519

19.1 代码访问安全与基于角色的安全 519

19.2 .NET中的代码访问安全 520

19.3 位置,位置,位置 525

19.4 强名称 529

19.5 发布者证书 534

19.6 信任文档 536

19.7 把策略配置到用户计算机中 539

19.8 本章小结 542

第20章 配置 543

20.1 VSTO预备条件 544

20.2 配置内部网络的共享目录或Web站点 544

20.3 没有配置清单的本地机器配置 550

20.4 编辑清单 550

20.5 创建安装包 555

20.6 本章小结 563

第Ⅳ部分 高级Office编程 565

第21章 在Excel中使用XM L 567

21.1 Excel的XML功能介绍 567

21.2 在Visual Studio中创建XML架构简介 569

21.3 端到端的方案 572

21.4 Excel中的高级XML特性 579

21.5 便于Excel使用的XML架构 582

21.6 VSTO支持Excel架构映射 584

21.7 本章小结 596

第22章 在Word中使用XML 597

22.1 Word的XML特性介绍 597

22.2 一种端对端的方案:创造架构并把它映射到Word文档中 600

22.3 将文档中映射的XML导出到XML数据文件中 610

22.4 将XML数据文件输入到映射的文档中 612

22.5 XML选项对话框 616

22.6 VSTO对Word架构映射的支持 617

22.7 VSTO对WordML文件格式的支持 623

22.8 本章小结 624

第23章 为Word和Excel开发COM加载项 625

23.1 加载宏简介 625

23.2 需要使用加载宏的典型情况 625

23.3 如何注册COM加载项 626

23.4 实现IDTExtensibility2接口 629

23.5 使用Visual Studio编写COM加载项 634

23.6 mscoree.dll的陷阱 641

23.7 COM互调集和regasm.exe 642

23.8 Shimming:mscoree.dll相关问题的解决方案 645

23.9 本章小结 646

第24章 使用VSTO创建Outlook外接程序 647

24.1 避免使用COM加载项 647

24.2 在VSTO中创建Outlook外接程序 655

24.3 本章小结 660

参考文献 661

索引 663

图1.1 Word对象模型中的层次结构 5

图1.2 Excel对象模型中的层次结构 5

图1.3 在Word、Excel和Outlook对象模型中,属性、方法和事件的分布情况 10

图1.4 选择一个用关键字WithEvents声明的成员变量 18

图1.5 为使用WithEvents声明的成员变量选择需要处理的事件 18

图1.6 安装Office 2003 PIA 23

图1.7 将引用添加到项目中 25

图1.8 添加引用对话框 25

图2.1 在New Project对话框中创建控制台程序 34

图2.2 解决方案关联器中显示的控制台应用程序项目WordWiki 34

图2.3 为Microsoft Word 2003 PIA建立引用 35

图2.4 为Word 2003 PIA建立参考的同时,被自动添加到项目中的独立PIA引用 35

图2.5 创建新的Outlook外接程序项目 40

图2.6 解决方案管理器中的Outlook外接程序项目 40

图2.7 使用新建项目对话框创建Excel工作簿项目 43

图2.8 选择与关联隐藏代码的工作表 44

图2.9 Excel代码隐藏的VSTO设计视窗 44

图2.10 Visual Studio和Excel合并后的菜单 45

图2.11 在设计器中创建列表对象 45

图2.12 运行程序清单2.7并单击添加到文档操作任务窗格中的按钮后所得到的结果 47

图3.1 Excel中的COM加载项对话框 52

图3.2 Excel中的XML扩展包对话框 53

图3.3 Excel中的自定义文档操作任务窗格 54

图3.4 Excel智能标记 55

图3.5 自动更正对话框中的智能标记 56

图3.6 搜索任务窗格 57

图3.7 设置生成选项以便注册COM interop 59

图3.8 在自动化服务器对话框中选择AutomationAddin.MyFunctions 60

图3.9 已经安装了AutomationAddin.MyFunctions 60

图3.10 用于测试自定义公式的简单电子表格 60

图3.11 在插入函数对话框中选中MultiplyNTimes函数 61

图3.12 设置函数参数 61

图3.13 最终的电子表格 61

图3.14 设置调试选项为启动Excel 63

图3.15 将自动化加载宏项目的主输出添加到安装项目中 63

图3.16 Excel对象模型的基本结构 64

图3.17 在Excel工作簿中插入各种类型的工作表 64

图3.18 Excel对象模型中部分主要对象的详细层次结构图 65

图3.19 Excel对象模型中与Range相关的对象的详细层次结构图 66

图3.20 Excel对象模型中与Shape相关的对象的详细层次结构图 66

图4.1 如果在代码编辑器中使用了左边和右边的下拉列表,则Visual Studio会自动产生事件处理器代码 72

图4.2 Insert Hyperlink对话框 85

图4.3 窗口尺寸变化事件仅在工作簿窗口未被最大化到与Excel外部应用窗口同等大小的条件下才会被触发 87

图4.4 CommandBar对象的层次结构 92

图4.5 Excel中的信封UI 96

图5.1 调用Quit或者工作簿需要被保存时,Excel所给出的提示对话框 108

图5.2 在名称框中将单元格区域命名为myCells 116

图5.3 保护工作表对话框 131

图5.4 允许用户编辑区域对话框 132

图5.5 在图表向导中设置图表位置 135

图5.6 Excel中的列表 136

图5.7 程序清单5.27的运行结果 139

图5.8 3个不连续单元格区域 139

图5.9 查找和替换对话框 146

图6.1 Word中的COM加载项对话框 156

图6.2 模板和加载项对话框中的XML扩展包标签 157

图6.3 一些被识别的文本 158

图6.4 智能标记的弹出菜单 158

图6.5 自动更正对话框中的智能标签 159

图6.6 信息检索任务窗格 160

图6.7 选择Research Service Wrapper项目 161

图6.8 ASP.NET Research Services向导中的第1步 161

图6.9 ASP.NET Research Services向导中的第2步 162

图6.10 Word的添加服务对话框 163

图6.11 Word的提供者对话框 164

图6.12 信息检索确认对话框 164

图6.13 信息检索选项对话框 165

图6.14 在信息计算任务窗格中显示的从AuthorInformation搜索服务中返回的结果 165

图6.15 Word对象模型的基本层次结构 166

图6.16 与Word的Application对象相关的对象 167

图6.17 与Word的Document对象相关的对象 168

图6.18 与Word的Range对象相关的对象 169

图6.19 与Word的Shape对象相关的对象 170

图7.1 如果在编辑器中使用左边和右边的下拉列表,Visual Studio会为我们产生事件处理器代码 173

图7.2 在VSTO中使用属性窗口添加文档事件处理器 174

图7.3 自动保存被取消时Word显示的返回信息 179

图7.4 具有电子邮政选项的信封和标签对话框 185

图7.5 邮件合并向导中的第1步 185

图7.6 邮件合并向导中的第3步 185

图7.7 选择数据源 186

图7.8 邮件合并的收件人对话框 186

图7.9 邮件合并向导的第6步 187

图7.10 选择合并记录的对话框 187

图8.1 Word的浏览器控件 201

图8.2 新建文档任务面板 203

图8.3 模板和加载项对话框:显示附加的模板和全局模板 215

图8.4 保护文档任务窗格 230

图8.5 启动强制保护对话框 230

图8.6 带有强制保护的文档,但允许编辑其中的第1句 231

图8.7 安全对话框 232

图8.8 程序清单8.28的运行结果:一个长度为9的区域,包括不会被打印的段落标记 233

图8.9 在Range中调用Expand(WdUnits.wdWord)后的显示结果 236

图8.10 在Range中调用Expand(WdUnits.wdWord)后的显示结果 236

图8.11 在Range中调用Expand(WdUnits.wdSentence)的显示结果 236

图8.12 在Range中调用Expand(WdUnits.wdSentence)后的结果 237

图8.13 在Range中调用EndOf(WdUnits.wdWord,WdMovementType.wdExtend)后的结果 237

图8.14 在Range中调用EndOf(WdUnits.wdWord,WdMovementType.wdMove)后的结果 237

图8.15 在Range中调用StartOf(WdUnits.wdWord WdMovementType.wdExtend)后的结果 238

图8.16 在Range中调用StartOf(WdUnits.wdSentence,WdMovementType.wdMove)后的结果 238

图8.17 在包含The中h字符的Range中调用Move(WdUnits.wdWord,1)后的结果 238

图8.18 在包含The中h字符的Range中调用Move(WdUnits.wdWord,-1)后的结果 238

图8.19 在包含The中h字符的Range中调用MoveUntil(“abc”,WdConstants.wdForward)的显示结果 239

图8.20 程序清单8.35的运行结果 244

图8.21 分隔符对话框 244

图8.22 程序清单8.36的运行结果 246

图8.23 书签对话框 248

图8.24 选择Word选项对话框中视图标签内书签复选框后得到的结果 248

图9.1 Outlook中的COM加载项对话框 254

图9.2 指定Word为电子邮件的编辑器 255

图9.3 Word作为电子邮件编辑器时Email消息中的智能标记 256

图9.4 用E-mail选项将智能标记嵌入到HTML格式的E-mail 257

图9.5 允许智能标记显示电子邮件信息中时对Internet区域安全进行的设置 257

图9.6 阅读面板中显示出的智能标记 258

图9.7 Outlook中的角色菜单。智能标记的动作显示在Additional Actions子菜单中 258

图9.8 用户控制设计面板 259

图9.9 通过用户属性页添加Outlook选项对话框 262

图9.10 通过用户属性页来添加文件夹属性对话框 262

图9.11 Outlook对象模型的基本等级结构 264

图9.12 Outlook对象模型中的一些对象。所有灰色的对象均为“Outlook项” 266

图9.13 添加CDO引用 268

图9.14 CDO对象模型 269

图10.1 Explorer窗口和Inspector窗口 276

图10.2 名为“My custom action”的自定义操作 292

图10.3 快捷方式面板,其中包含两个组(快捷方式和新组1)和两个快捷方式(Outlook今日和收件箱) 294

图11.1 自定义视图对话框 300

图11.2 筛选对话框 301

图11.3 显示筛选字符串的筛选对话框的SQL页 301

图11.4 自定义视图组织器对话框显示与文件夹相关的视图情形 305

图11.5 将HTML页关联到文件夹 309

图11.6 在选项对话框中喜好的格式和编辑器 311

图11.7 Outlook的选择文件夹对话框 316

图11.8 Outlook的创建新文件夹对话框 318

图11.9 Outlook的类别对话框 339

图11.10 由程序清单11.29创建的PostItem 340

图11.11 Outlook对象模型的安全对话框 341

图12.1 在Visual Studio中创建InfoPath项目 348

图12.2 根据空白窗体或已存在的窗体创建项目 349

图12.3 作为两个独立窗口运行的Visual Studio窗口和InfoPath设计器窗口 350

图12.4 设置InfoPath特定的项目属性 351

图12.5 用户填写窗体时在状态栏中显示的窗体安全级别。显示的图标分别表示限制域和完全信任安全级别 352

图12.6 为窗体指定需要的安全等级 353

图12.7 选择数据源节点并显示属性对话框 359

图12.8 为了处理数据事件选择控件属性 359

图12.9 在InfoPath中显示的带有红色点划线矩形框的数据有效性错误 361

图12.10 使用窗体设计器创建按钮 365

图12.11 允许并添加资源到自定义任务窗格中 367

图12.12 运行时的自定义任务窗格 368

图12.13 让窗体的保存和另存为不可用 370

图12.14 为OnSubmitRequest事件创建自定义的事件处理器 370

图13.1 模型-视图-控制器体系结构 377

图13.2 在对象浏览器中查看Document宿主项类 378

图13.3 使用查看所有文件按钮查看隐藏代码 386

图14.1 电子表格中的两个Windows Forms控件 400

图14.2 电子表格中的DateTimePicker控件 400

图14.3 在文档操作任务面板中使用DateTimePicker控件 401

图14.4 用户双击单元格时显示的Windows Forms对话框 402

图14.5 将按钮控件从工具箱拖放到Excel工作表 403

图14.6 在Word文档中绘制一个PictureBox控件 404

图14.7 修改Word选项对话框中的默认插入方式 406

图14.8 在Word的对象格式对话框中修改控件的环绕方式 406

图14.9 为Excel中的控件设置对象位置选项 407

图14.10 VSTO中的控件定位工具栏 407

图14.11 文档中Windows Forms控件的基本寄宿结构 409

图14.12 Excel显示的底层ActiveX宿主控件ProgID 409

图14.13 程序清单14.3的运行结果。在VSTO寄宿结构中Refresh按钮是以VSTOContainerControl为参照进行偏移的 411

图14.14 Word文档中的DateTimePicker控件 413

图15.1 Word中的样式和格式任务窗格 424

图15.2 在Word中选择一个任务窗格 424

图15.3 程序清单15.1的运行结果 426

图15.4 ActionsPane的4层结构 427

图15.5 更改ActionsPan.StackOrder值所得到的结果,从左上图开始其值依次为:None、FromLeft、FromBottom、FromTop和FromRight 428

图15.6 创建自定义用户控件的设计视图 429

图15.7 自定义用户控件 430

图15.8 程序清单15.4的运行结果 430

图15.9 处于水平方向的操作窗格 432

图15.10 AutoScroll设置为True的操作窗格 434

图15.11 Word文档所配置的AcitonsPane解决方案在“模板和加载项”对话框中表现为可见状态并且在ActionsPane.AutoRecover未设置为True时,可把它去除 436

图15.12 Excel工作簿所配置的ActionsPane解决方案在“XML扩展包”对话框中表现为可见状态并且在ActionsPane.AutoRecover未设置未True时,可把它去除 436

图16.1 Word中一些被识别的文本 439

图16.2 在Word中下拉智能标记菜单 439

图16.3 在Excel中下拉智能标记菜单 440

图16.4 智能标记菜单 440

图16.5 Word中自动更正对话框内的智能标记页 441

图16.6 Excel中自动更正对话框内的智能标记页 441

图16.7 为了在代码中使用接口ISmartTagProperties和ISmartTagRecognizerSite,引用Microsoft Smart Tag 2.0类型库 450

图16.8 创建新的类库项目 452

图16.9 零件智能标记的两个动词 468

图16.10 “智能标记”页中显示出的零件编号(Part Number)智能标记 468

图17.1 启动数据源向导 472

图17.2 选择数据源 472

图17.3 创建数据连接 473

图17.4 看到的连接字符串 473

图17.5 将连接字符串保存到应用程序配置文件中 474

图17.6 选择基本表 475

图17.7 数据源面板所包含的树形视图 475

图17.8 选择控件类型 476

图17.9 创建的数据绑定视图 477

图17.10 具有数据绑定功能的主从结构的电子表格 477

图17.11 在设计器中具有数据绑定功能的主-从式Word文档 478

图17.12 运行时的主-从视图 479

图17.13 XML源面板 487

图17.14 设置绑定源的DataSource属性 488

图17.15 列表对象与数据表绑定在了一起 489

图17.16 创建简单数据绑定 490

图18.1 一个简单的“消费报表”工作表,有两个缓存类成员:EmpName和Expenses 503

图18.2 创建一个自定义的处理器项 508

图18.3 图18.1中示例的缓存数据对象模型 514

图19.1 .NET运行时安全策略管理控制台 521

图19.2 用户策略级。VSTO自动创建策略,以便VSTO项目在开发的计算机上运行 523

图19.3 创建代码组对话框的第1步 526

图19.4 创建代码组对话框的第2步 527

图19.5 创建代码组对话框的第3步 527

图19.6 AccDeptDocuments代码组的属性对话框 528

图19.7 创建带有强名称成员资格状态的代码组 530

图19.8 对自定义机制进行延迟签名 533

图19.9 能被攻击者所使用的预算电子表格 537

图19.10 根据Office文档成员资格调节创建代码组 538

图19.11 根据Office文档成员资格条件创建代码组 539

图20.1 Visual Studio发布向导 545

图20.2 使用mage.exe直接更新配置清单,指定新的自定义机制版本 551

图20.3 使用VSTO应用程序清单编辑器编辑嵌在电子表格中的清单 552

图20.4 创建安装项目 555

图20.5 设置安装项目的属性 556

图20.6 告知安装项目需要安装的文件 556

图20.7 设置自定义安全程序类项目,以便生成类库 557

图20.8 添加自定义安装程序类 557

图20.9 边界自定义安装程序类 558

图20.10 选择自定义的安装动作 558

图20.11 设置自定义动作数据 559

图21.1 从任务窗格的下拉列表中选择XML源 567

图21.2 选择“数据”>“XML”>“XML源”菜单项 568

图21.3 XML源任务窗格 568

图21.4 创建一个新的XML架构文件 569

图21.5 设计视图,创建一个新的XML架构文件 569

图21.6 一个简单的订单架构的设计视图 570

图21.7 一个简单Order架构的设计视图,其中使用了属性 571

图21.8 处理图书定单的Excel电子表格 572

图21.9 在Visual Studio中的图书-订单架构 574

图21.10 XML映射对话框 575

图21.11 加载了XML映射后的XML源任务窗格 575

图21.12 将nsl:Order拖到A1单元格中时创建的列表 576

图21.13 XML Source任务窗格中被映射的元素被加粗 576

图21.14 因为非正常数据,不能导出映射 577

图21.15 导入清单21.5的XML结果 577

图21.16 准备映射的电子表格 577

图21.17 最后映射完成后的电子表格 578

图21.18 “XML映射属性”对话框 580

图21.19 关于导出的架构有效性错误 580

图21.20 关于导入的架构有效性错误 581

图21.21 关于导入有效性错误的详细信息 581

图21.22 具有Order架构的VSTO Excel项目 590

图21.23 VSTO Excel工具栏的“XML源任务窗格”按钮 590

图21.24 DataSet组件和组件托盘 591

图21.25 “Add Dataset”对话框 591

图21.26 使用属性窗口设置OrderConnector的DataSource属性 592

图21.27 使用属性窗口设置OrderConnector的DataMember属性 593

图21.28 设置数据绑定,将OrderCustomerNameCell.Value连接到OrderConnector.CustomerName 593

图21.29 将OrderBookConnector连接到OrderConnector 594

图21.30 数据集、绑定源和数据绑定之间的关系 595

图22.1 在任务窗格面板中选择XML结构任务窗格 598

图22.2 XML结构任务窗格提示我们通过模板和加载项对象框可以添加XML架构 598

图22.3 具有选定XML架构页的“模板和加载项”对话框 598

图22.4 在架构设置对话框中为新添加的架构选择别名 598

图22.5 被附加到文档中的BookOrder架构 599

图22.6 架构库对话框 599

图22.7 在文档中附加了图书-订单架构的XML结构对话框 600

图22.8 处理图书订单的Word文档 601

图22.9 Visual Studio中的图书-订单架构 603

图22.10 Word的编辑属性对话框 604

图22.11 XML选项对话框。应当选择“忽略混合内容”选项 605

图22.12 没有架构印射的WORD文档 606

图22.13 应用到所有文档的对话框 606

图22.14 将Order标记应用到整个文档后的Word文档 607

图22.15 显示了Order元素中子元素的元素列表 607

图22.16 除Book子元素之外,图书.订单架构中所有元素的映射 608

图22.17 选择一行,但是不用超出行的范围 608

图22.18 将整个行标记为Book元素 608

图22.19 在表中完成了标注行,它表示一个Book元素 608

图22.20 Word使用Book元素标记对表格中新加入的行进行自动标记 609

图22.21 显示有标记的最终Word文档 609

图22.22 在文档树视图中显示的映射到文档中的元素 610

图22.23 在选择“只保存数据”复选框的条件下另存为XML文档 611

图22.24 在XML data-only视图中打开并显示Book Order.xml 613

图22.25 将XSLT解决方案添加到图书.订单架构中 614

图22.26 架构库中的图书.订单视图和与图书.订单架构相关XSLT 615

图22.27 Word自动地应用图书-订单视图解决方案和XSLT后的结果 615

图22.28 非法日期的架构检验错误 616

图22.29 非法日期的高级架构检验错误 617

图22.30 打开了“显示用于所有空白元素的占位符文本”选项的文档 617

图23.1 某个COM加载项的注册表项 627

图23.2 在自定义对话框中找到COM加载项命令 627

图23.3 COM加载项对话框 628

图23.4 HKEY_CLASSES_ROOT\CLSID下的COM加载项的注册表信息 629

图23.5 COM加载项的启动和关闭顺序 630

图23.6 在Visual Studio中创建共享的外接程序项目 635

图23.7 选择宿主应用程序 635

图23.8 设定COM加载项名称和描述信息 636

图23.9 设置加载项的加载方式 636

图23.10 默认COM加载项解决方案的解决方案资源管理器视图 637

图23.11 添加对Word PIA的引用 638

图23.12 Debug标签页中的启动操作部分 638

图23.13 标准托管COM加载项InProcServer32键值 643

图23.14 Office支持让COM加载项不可用 643

图23.15 安全性对话框中的“信任所有安全的加载项和模板”选项 644

图24.1 加载项的理想情形:将每个加载项加载到各自的应用程序域。没有加载项被加载到了默认应用程序域中 651

图24.2 一种不希望发生的情形:加载项未经shimmed操作而由mscoree.dll直接进行加载 651

图24.3 理想状态下的加载项。加载项不共用RCW 652

图24.4 试图与某些RCW已被释放的变量进行交互时产生的出错信息 653

图24.5 使用加载项可能出现的最糟情况:加载项共享RCW,并且某个加载项在循环语句中调用ReleaseComObject或直接调用FinalReleaseComObject方法 654

图24.6 创建新Outlook外接程序项目 655

图24.7 解决方案资源管理器中的Outlook外接程序项目 655

图24.8 COM加载项对话框显示的VSTO Outlook外接程序 657

图24.9 Outlook.Addins子键下注册的VSTO Outlook外接程序 657

图24.10 CLSID键下与ProgID OutlookAddinl关联的InprocServer32 657

图24.11 发布VSTO Outlook外接程序 659

表1.1 Office对象模型中的重要对象 6

表1.2 Word Application对象的部分属性、方法和事件 9

表1.3 Excel Application对象触发的事件 16

表1.4 常用的Office PIA 24

表1.5 Excel中Application对象的相关接口、委托和事件 27

表2.1 显示Word加载项对象属性和方法的简单表格 33

表4.1 其他的Excel事件 95

表4.2 VSTO中增加的事件 96

表5.1 控制Excel用户接口中控件元素的属性 103

表5.2 返回活动对象的Application对象 104

表5.3 SendKeys所使用的码 108

表5.4 返回活动对象的Workbook属性 112

表5.5 返回重要集合的Workbook属性 112

表5.6 Excel中内置的文档属性名称 113

表5.7 返回文件名和路径信息的工作簿属性 114

表5.8 Excel工作簿保存相关属性 115

表5.9 PrintOut方法的可选参数 116

表5.10 DocumentProperties集合中Add方法的参数 121

表5.11 Arrange方法的可选参数 123

表5.12 控制窗口显示相关属性 125

表5.13 Item方法的可选参数 127

表5.14 Protect方法的可选参数 130

表5.15 用于查看并修改文档保护的部分属性 134

表5.16 ListObject的关键属性 136

表5.17 Address的可选参数 140

表5.18 Find方法的相关参数 146

表7.1 在VSTOEvents中增加的事件 191

表8.1 控制Word用户界面中元素的属性 196

表8.2 返回活动对象的Application属性 198

表8.3 返回重要集合的Application属性 199

表8.4 与打印对话框相关的后期绑定属性 210

表8.5 Document集合中Add方法的可选参数 217

表8.6 Document集合中Open方法的可选参数 218

表8.7 Document对象中SaveAs方法的可选参数 221

表8.8 返回重要集合的与文档和区域相关的属性 222

表8.9 只与Document相关并且返回值为重要集合的属性 225

表8.10 Word中内置的文档属性名称 225

表8.11 DocumentProperties集合中Add方法的相关参数 227

表8.12 PrintOut的部分可选参数 229

表8.13 用于文档保护的属性和方法 232

表8.14 与Font对象相关的常用属性 245

表9.1 Outlook中Item的类型 265

表10.1 Outlook Item对象 271

表10.2 其他Outlook事件 293

表11.1 返回活动对象的Application属性和方法 297

表11.2 返回重要集合的Application属性 298

表11.3 AdvancedSearch方法的参数 300

表11.4 Explorer的属性和方法 307

表11.5 Inspector的属性和方法 310

表11.6 枚举类型OlDefaultFolders的成员,可将它传递给NameSpace对象的GetDefaultFolder方法 314

表11.7 Folders.AddFolder类型(OlDefaultFolders)、DefaultItemType和文件夹中找到的Outlook项类型之间的关系 319

表11.8 所有Outlook项共有的属性和方法 328

表11.9 OlItemType和Outlook项类型的对应关系 329

表11.10 如何创建其他的Outlook项类型 329

表11.11 Outlook项类型与OlObjectClass枚举类型值之间的对应关系 331

表11.12 与所有Outlook项相关的属性 333

表11.13 对象并不是从信任的Application对象获取时,该对象中可能会导致显示Outlook安全对话框的属性和方法 342

表12.1 传递给DataDOMEvent对象的ReportError方法的参数 361

表13.1 VSTO聚合Document对象的新事件 390

表13.2 VSTO被聚合Bookmark对象中的新事件 393

表13.3 VSTO中被聚合的XMLNode和XMLNodes对象的新事件 394

表13.4 VSTO中被聚合的NamedRange、XmlMappedRange和ListObject对象的新事件 397

表14.1 额外的Excel控件属性 415

表14.2 补充的Word控件属性 415

表14.3 Excel Controls集合中添加控件的方法 418

表15.1 应避免使用的ActionsPane的属性和方法 437

表17.1 与列表对象相关的新的事件 497

表21.1 Excel不支持的XML架构结构 582

表21.2 XML架构类型和它们相应的Excel单元格格式 583

表21.3 Sheetl工作表中由架构映射创建的成员变量 584

表22.1 增加自架构映射的ThisDocument成员变量 618

表23.1 LoadBehavior的所有可能值 629