《OLE 2高级编程技术 对象链接与嵌入技术》求取 ⇩

目录1

前言1

读者对象2

有关汇编语言的要求3

书中的代码格式3

致谢3

路线图(Road Map)4

第一部分 Windows对象9

第一章 OLE 2概述9

Windows对象:构件对象模式(Component Object Model)10

对象和接口12

结构化存储与复合文件15

标准数据传输及通告17

通知单(Notification)18

数据对象和剪贴板18

数据对象与拖放19

数据对象和复合文档19

数据对象和DDE20

复合文档:对象嵌入20

复合文档:对象链接和标记21

自动化23

复合文档:定位激活(直观编辑)23

第二章 约定、C++及示例代码25

C还是非C(拟萨士比亚语)25

用户定义型:C++类26

访问权限(Accss Rights)30

单一继承性31

虚拟函数与抽象基类34

多重继承性36

示例代码38

包含文件:INC目录38

库:LIB目录39

三个Amigos:BttnCur,GizmoBar及StatStrip40

BUILD目录40

类库:CLASSLIB目录41

接口模板:INTERFAC目录43

章节源文件:CHAPxx目录44

Cosmo:一个图形编辑器44

Patron:一个页面载体46

第三章 对象和接口51

生命的首要问题,宇宙和对象(拟道格拉斯·埃德姆语)52

Windows对象与C++对象的比较55

让我们旅行去56

类定义59

对象例示59

Windows对象与C++对象的其它不同之处59

对象引用60

对象毁灭61

C和C++中的一个简单的对象:RECTEnumerator61

RECTEnumerator和IEnumRECT接口62

创建RECTEnumerator对象84

使用IEnumRECT指针84

引用计数85

我的最优化王国87

调用-使用-释放88

IUnknown,万物之根89

QueryInterface和继承(Inheritance)的比较91

QueryInterface特性和接口的生命周期91

一些数据类型和调用约定93

STDMETHOD和相关内容93

HRESULT和SCODE94

全局唯一标识符:GUID、IID、CLSID96

OLE 2接口和API函数96

客户接口(Custom Interface)97

接口与API函数的比较98

什么是Windows对象(再次讨论)98

小结99

第四章 构件对象(构件对象模型)101

令人着迷的东西究竟在哪儿102

Windows对象的新增应用程序104

扩大信息队列104

确认建库版本105

调用CoInitialize或OleInitialize106

调用CoUninitialize或OleUninitialize107

内存管理和分配程序对象107

来自类标识符的构件对象:构件用户120

#include<initguid.h>和预编译过的头文件128

例示一个构件对象129

管理对象及调用CoFreeUnusedLibraries132

实现一个构件对象和一个服务器133

注册CLSID154

实现分类工厂(Class Factory)156

展示分类工厂157

DLL服务器157

EXE服务器158

提供一个卸载机制160

DLL服务器160

EXE服务器162

Cosmo的Polyline——一个DLL对象164

对象复用性168

示例一:对象包含169

示例二:对象聚集(Aggregation)170

小结176

第二部分 面向对象的系统性能一文件和数据传输179

第五章 结构化存储和复合文件179

动机的形成181

使人紧张不安的Patron文件181

去除咖啡因的方法183

使你精力充沛却不会紧张不安:复合文件185

复合文件的特征186

流、存储及位锁存对象186

单元的命名187

存取模式188

交易式存储(Transacted Storage)189

增量式存取(Incremental Access)190

共享单元191

复合文件对象和接口192

存储对象和IStorage接口192

存储的复合文件实现193

流对象和IStream接口195

流的复合文件实现197

LockBytes对象和ILockbytes接口197

LockBytes的复合文件实现197

Stat成员函数及STATSTG198

简单存储:Cosmo200

实际使用的复合文件200

用STGM_CONVERT“从帽子上拔去野兔毛”207

流及文件208

复杂的复合文件:Patron210

根存储和临时文件229

管理子存储230

多级认可231

File Save As操作233

Low-Memory Save As操作234

作为内存结构的流236

OLE 2的其它技术与结构化存储236

IPersistStorage、IPersistStream和IPersistFile接口237

具有IPersistStorage的一种强化协议239

有关构件用户和IPersistStorage:构件Cosmo241

有关构件对象与IPersistStorage:Polyline244

复合文件的压缩250

小结258

第六章 使用数据对象的一致数据传送261

什么是数据对象262

新的和改进的超结构263

数据对象和IDataObject接口267

FORMATETC枚举器和格式排序270

构件数据对象276

某些CDataObject功能部件287

实现IDataObject287

一个(构件)数据对象用户288

数据对象的通告和通知单301

建立咨询连接307

发送通知单作为一个数据对象310

对远程通知单的特殊考虑314

在通告接收器内部315

IDataObject作为一个面向对象数据传递的标准317

视图对象和IViewObject接口319

IViewObject∷Draw320

对一个特定设备的呈送322

绘制进入一个元文件(Metafile)322

中止长时间的重画323

其它IViewObject成员函数324

IViewObject和通知单324

来自OLE2.DLL的自由存取(Freeload)325

IDataObject和DDE334

小结335

第七章 使用数据对象的剪贴板格式337

OLE 2剪贴板协议338

但我想要做的只是拷贝一些简单的数据!340

一个数据传送构件对象342

如果已拥有一个数据对象...Component(构件)Cosmo353

如果已经有了扩展的剪贴板处理(Clipboard-handling)代码355

简单的数据源和用户:Cosmo355

启动/关闭356

Copy(复制)/Cut(剪切)357

使能Edit(编辑)/Paste粘贴358

Paste(粘贴)359

选择性粘贴和一个实用的Patron361

Paste Special(选择性粘贴)对话框和OLE2UI库363

“房客”创建,粘贴367

保存及装载“房客”370

Copy和Cut371

小结372

第八章 使用数据对象的拖放操作373

源和目标:拖放传送模型374

一个循序渐进的拖放实现:Cosmo379

设计并实现放目标用户反馈394

实现一个放目标对象及IDropTarget接口396

IDropTarget∷DragEnter396

IDropTarget∷DragOver400

IDropTarget∷DragLeave401

IDropTarget∷Drop401

设计并实现放源用户反馈403

注册并调入放目标对象403

决定拾起事件(Pick Event)404

实现一个放源对象及IDropSource接口404

调用DoDragDrop405

高级拖放:Patron中的反馈与滚动407

“房客”拾起区域和放源408

更为高级的放目标击打测试410

一个反馈矩形411

滚动页面414

小结419

第九章 复合文档和嵌入载体421

第三部分复合文档:OLE421

复合文档机制422

被动态422

装载态423

情况1:InProcServer425

情况2:InProcHandler426

情况3:缺省处理器(Default Handler)426

装载对象:所有情况428

绘制对象429

运行态431

妈妈,爸爸,新的对象是从哪里来的?432

载体应用程序的结构434

逐步实现嵌入载体435

在起动和停机时调用初始化函数436

定义现场和管理现场存储436

实现现场接口并加入现场变量439

实现IAdviseSink444

实现IOleClientSite447

实现现场的加阴影453

调入InSert Object对话框455

调用OleUIInsertObject457

调用OleCreate或OleCreateFromFile459

初始化对象461

绘制和打印对象465

激活对象并加入对象动词菜单465

鼠标双击468

对象动词菜单469

右鼠标按钮弹出式菜单473

从剪贴板和拖放传送来创建对象475

拷贝和资源(source)嵌入式对象477

关闭并删除对象480

保存和装载包含嵌套对象的文档481

处理图标表示形式(高速缓存控制)484

小结486

服务器应用程序的结构487

第十章 复合文档和嵌入对象服务器(EXE)487

链接支持及最小服务器和最大服务器的比较489

版本号489

安装489

逐步实现嵌入服务器490

在启动(Startup)和停机(Shutdown)时调用初始化函数491

创建登记数据库(Registration Database)条目491

实现和注册一个分类工厂496

面向嵌套对象的分类工厂501

以-Embedding起动502

实现一个携有IUnknown的初始对象504

实现IPersist Storage接口512

实现IDataObject接口518

实现IOleOjbect接口527

平凡函数530

必要的函数540

可选的函数543

但它仍然不能工作544

修改服务器的用户接口545

发送通知单549

(全服务器)加入OLE 2剪贴板格式552

(任选的)MDI服务器用户接口和停机553

小结554

第十一章 IN-PROCESS对象处理器和服务器555

在处理模块的结构555

为什么要使用处理器557

为什么使用在处理服务器558

为什么不使用在处理服务器558

委托给缺省处理器559

IOleObject560

IDataObject561

IPersistStorage(在高速缓存上)563

IViewObject564

实现一个对象处理器565

获得缺省处理器IUnknown567

在QueryInterface中采用缺省处理器接口570

实现IPersistStorage572

实现IOleObject∷GetExtent577

实现IViewObject578

要与当地服务器齐头并进583

年终奖587

对实现一个在处理服务器的附注587

小结599

第十二章 标记和链接载体601

谁愿意解决一下“什么是一个标记”这个问题?602

标记类603

从何处获得标记?606

逐步链接载体607

从Insert Object(插入对象)中使链路得以实现608

从剪贴板和拖放操作中使链接得以实现611

粘贴链路和粘贴特定命令612

拖放链接反馈615

测试链接616

警告617

警告:潜在的难题!618

实现Show Objects(示出对象)命令618

并实现IOleClient623

管理一个文件标记,调用IOleObject∷SetMoniker,623

Links(链路)对话框和IOleUILinkCotainer接口627

调入Links对话框643

在装载一个文档时更新链路646

小结649

第十三章 标记联编和链路源651

标记联编机制652

一个简单的链接对象:单个文件标记653

一个携一合成的File!Item(文件/项目)标记的链接对象655

联编一个合成的658

联接上下文660

运行对象表660

一个简单的链路源:Cosmo661

创建、登记及撤消一文件标识662

在数据传送时提供链接源格式664

实现IPersistFile接口667

实现IOleObject∷SetMoniker和IOleObject∷GetMoniker670

复杂链接和链接到嵌入673

为什么要链接到嵌入?673

创建并管理合成标记675

源生(source)合成标识679

以IPersistFile为文档对象实现一个分类工厂681

为每个项目标记实现IOleItemContainer684

小结697

第十四章 与OLE 1的转换、模拟和兼容699

面向载体的Convert(转换)对话框700

支持一个Convert菜单项并调入Convert对话框701

处理Convert To选择705

处理Activate As选择706

处理Display As Icon更改708

在服务器之间的转换710

面向转换的Registration Database(登记数据库)条目711

AutoConvertTo和TreatAs711

Conversion(转换)712

对IPersistStorage的修改713

OLE 1嵌入对象的转换和模拟715

对面向载体的OLE 1兼容性的注释720

OLE 1服务器的异常表现720

文件转换721

小结726

第四部分 复合文档:定位激活729

第十五章 可视编辑:定位激活和定位载体729

定位对话的动机和内容730

从何而始呢?731

DoVerb——一个小傻瓜732

定位激活733

操作一个活动对象739

拨出插头:释放741

Active和UI Active以及由里及表(inside-out)的对象741

是的,确实是这样的742

逐步实现定位载体742

准备载体743

实现骨架定位载体接口745

经验:访问框架和文档的现场要求747

激活和释放对象753

经验:服务器仍在运行755

混合一个菜单:要摇晃,不要搅拌755

协商工具空间759

经验:菜单消毁:就这样做(对)759

经验:焦虑和DeferWindowPos765

经验:“驯化”ShowObject765

提供定位加速键和焦点768

经验:古怪的TranslateAccelerator771

请拐弯:其它杂项771

警告774

小结780

第十六章 复合文档对象的定位激活781

定位对象的步骤781

驱动器,请准备好对象782

实现骨架定位对象接口及对象帮助器函数784

实现简单的激活和释放787

对象装饰795

菜单的汇编与反汇编798

警告801

警告804

创建和消除定位工具804

管理和处理加速器808

拐第三个弯... 我们朝着家走去810

定位激活将把我们带向哪里818

小结822

使用随附软盘的说明823

1995《OLE 2高级编程技术 对象链接与嵌入技术》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)Kraig Brockschmidt著;张 起等译 1995 北京:电子工业出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

Java嵌入技术(1998 PDF版)
Java嵌入技术
1998 北京:清华大学出版社
ActiveX编程技术与技巧( PDF版)
ActiveX编程技术与技巧
Java嵌入技术(1998 PDF版)
Java嵌入技术
1998
80286/386/387高级编程实用技术( PDF版)
80286/386/387高级编程实用技术
中国科学院希望高级电脑技术公司
高级程序设计技术( PDF版)
高级程序设计技术
北京:人民邮电出版社
纵横嵌入术(1994 PDF版)
纵横嵌入术
1994 北京:科学出版社
C语言及其高级编程技术(1995 PDF版)
C语言及其高级编程技术
1995 天津:南开大学出版社
高级Windows编程技术(1999 PDF版)
高级Windows编程技术
1999 西安:西安交通大学出版社
ActiveX编程技术与技巧(1998 PDF版)
ActiveX编程技术与技巧
1998 北京:电子工业出版社
UNIX高级编程技术(1994 PDF版)
UNIX高级编程技术
1994 上海:上海科学技术文献出版社
C++高级编程技术(1994 PDF版)
C++高级编程技术
1994 北京:电子工业出版社
Windows95 Windows NT3.5高级编程技术(1996 PDF版)
Windows95 Windows NT3.5高级编程技术
1996 北京:清华大学出版社
Java编程技术与技巧(1997 PDF版)
Java编程技术与技巧
1997 北京:电子工业出版社
Linux系统分析与高级编程技术(1999 PDF版)
Linux系统分析与高级编程技术
1999 北京:机械工业出版社
高级DOS技术与技巧(1995 PDF版)
高级DOS技术与技巧
1995 上海:上海交通大学出版社