1 / 74
文档名称:

COM的扩展.ppt

格式:ppt   页数:74页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

COM的扩展.ppt

上传人:12345 2015/3/17 文件大小:0 KB

下载得到文件列表

COM的扩展.ppt

文档介绍

文档介绍:COM的扩展
潘爱民
2003-11-21
.pCourse2003/
内容
基础
命名服务:moniker
UDT:统一数据传输
基础
Apartment
COM组件
COM客户
{
IXxx *p;
p->…
}
Apartment
proxy
COM库(SCM, )
COM库()
COM库()
Registry
进程A
进程B
机器A
机器B
安全通道
ORPC
双接口
VB客户
回顾:可连接对象的基本结构
结构化存储(structured storage):由来
文件系统的诞生
多个应用程序共享同一个存储设备
文件服务功能的抽象
进展到结构化存储
多个组件共享同一个文件
组件软件存储功能的基本要求
OLE的需求
组件共享句柄方案,如何定位?避免冲突?
文件系统结构
结构化存储
多个组件程序共享一个复合文件
复合文件
文件内部的文件系统
只有两种对象:存储对象和流对象
实现了部分访问和增量访问的功能
流对象
COM库提供实现,实现了IStream接口
class IStream : public IUnknown
{
public :
virtual HRESULT Read (void *pv, unsigned long cb, unsigned long *pcbRead) = 0;
virtual HRESULT Write (void *pv, unsigned long cb, unsigned long *pcbWritten) = 0;
virtual HRESULT Seek (LARGE_INTEGER dlibMove, unsigned long dwOrigin,
ULARGE_INTEGER *plibNewPosition) = 0;
virtual HRESULT SetSize (ULARGE_INTEGER libNewSize) = 0;
virtual HRESULT CopyTo (LPSTREAM pStm, ULARGE_INTEGER cb,
ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten) = 0;
virtual mit (unsigned long mitFlags) = 0;
virtual HRESULT Revert ()= 0;
virtual HRESULT LockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb,
unsigned long dwLockType) = 0;
virtual HRESULT UnlockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb,
unsigned long dwLockType) = 0;
virtual HRESULT Stat (STATSTG *pStatStg, unsigned long grfStatFlag) = 0;
virtual HRESULT Clone(LPSTREAM * ppStm) = 0;
};