OLE接口详解

所有 OLE Api 和接口的目的


本页

概要

OLE 是一套实施的服务、 自定义这些服务的机制和安装自定义服务进行各种协议的机制。 每个 OLE API 函数和每个当前定义的接口 (即,在那些传送 OLE 技术) 具有在此框架中的目的。 下面列出了 API 函数和接口,以及它们的用途,分为以下功能组:

  • 常规
  • 初始化和内存管理
  • 远程处理
  • 自定义服务
  • 服务注册
  • DLL 服务器管理
  • 杂项 COM 函数
  • 命名 (名字对象)
  • 结构化的存储
  • 永久对象
  • 每个事件的通知
  • 统一数据传输
  • 可查看对象
  • 标准类型
  • OLE 剪贴板
  • OLE 拖放
  • 类型库
  • OLE 自动化
  • OLE 属性页
  • OLE 文档: 常规
  • OLE 文档: 处理程序和缓存
  • OLE 文档: 嵌入
  • OLE 文档: 链接
  • OLE 文档: 就地激活
  • OLE 文档: OLE 1 兼容性
  • OLE 控件

更多信息

下面的列表有助于阐明为何存在不同的 Api 和接口,并包括以下信息:
函数: < OLE API 函数和接口的列表 >
目的: < 用途说明 >
注意: OLE UI 库中的函数集合不包括这一次。 此外缺少一些最近添加的接口。

常规

函数: lUnknown
目的: 控制对象生存期,接口协商。 普遍而不考虑实施任何组件。 QueryInterface 公开传入接口。

函数: IEnum
目的: 枚举的各种类型的列表。 在许多情况下,整个 OLE 中使用。

函数: IProvideClassInfo
目的: 公开有关对象的传入和传出接口的类型信息。

函数: IConnectionPointContainer,IEnumConnectionPoints,IConnectionPoint IEnumConnections
目的: 公开对象的输出接口。

初始化和内存管理

函数: CoBuildVersion OleBuildVersion
目的: 检查 OLE 库的版本号。

函数: IMalloc
目的: 任务内存分配。

函数: CoInitialize,CoUninitialize,OleInitialize OleUninitialize
目的: 初始化/Uninitialize COM/OLE 库和 OLE-提供的安装任务 (大多数 OLE 实现还允许安装自定义分配器) 的分配器。

函数: CoCreateStandardMalloc
目的: 访问标准任务内存分配器。

函数: CoGetMalloc
目的: 访问当前已安装的任务分配器。

远程处理

函数: IExternalConnection
目的: 通知-连接/断开连接从远程进程。

函数: CoLockObjectExternal
目的: 锁定远程对象实现。

函数: CoDisconnectObject
目的: 强制断开任何远程连接。

函数: IMarshal
目的: 标准封送处理 (OLE impl) ; 此自定义封送处理 (自定义实现)。

函数: CoGetStandardMarshal
目的: 访问标准实现 IMarshal。

函数: IStdMarshalInfo
目的: 支持自定义接口。

函数: CoMarshalHresult、 CoUnmarshalHresult、 CoMarshalInterface、 CoUnmarshalInterface、 CoReleaseMarshalData
目的: 标准和自定义封送的帮助。 例如,CoMarshalInterface,总是调用时需要创建新对象的接口指针的远程服务器端处理支持的任何对象。 CoUnmarshalInterface 创建的客户端,以匹配。

函数: CoIsHandlerConnected
若要确定是否已连接到远程进程的进程内组件的用途: 帮助器。

自定义接口函数:
目的: 安装自定义 IMessageFilter 实现。

函数: IMessageFilter
目的: OLE 1 容器文档相兼容的 Helper 函数。

函数: CoRegisterMessageFilter
目的: 并发处理接口的管理。 远程处理时,始终安装默认实现。

自定义服务

函数: CoCreateInstance
目的: 访问自定义组件实现给定的 CLSID。

函数: IClassFactory [2]
目的: 创建自定义组件基于 CLSID。

函数: CoGetClassObject
提供 CLSID 目的: 访问自定义类工厂实现。

函数: DllGetClassObject
目的: 公开 DLL 中的自定义类工厂实现。

函数: CoRegisterClassObject CoRevokeClassObject
目的: 安装/删除自定义类工厂实现。

服务注册

函数: CoCreateGuid,IsEqualGUID,IsEqualIID IsEqualCLSID
目的: 帮助创建和 Guid 的比较。

函数: DllRegisterServer DllUnregisterServer
目的: 公开从 DLL 服务器模块的自行注册功能。

函数: CoGetTreatAsClass、 CoTreatAsClass、 OleDoAutoConvert、 OleGetAutoConvert、 OleSetAutoConvert、 GetConvertStg、 SetConvertStg
目的: 每个仿真的转换操作 (只有自定义是描述哪些类的注册表信息互换)。

DLL 服务器管理

函数: DllCanUnloadNow
目的: 控制 DLL 服务器卸载。

函数: CoLoadLibrary,CoFreeLibrary,CoFreeAllLibraries CoFreeUnusedLibraries
目的: 加载和卸载进程内服务器模块。

杂项 COM 函数

函数: CLSIDFrom [ProgID | 字符串] [ProgID | 字符串] FromCLSID,IIDFromString,StringFromIID StringFromGUID2
目的: Helper 函数 Guid、 字符串和 ProgIDs 之间的转换。

函数: CoGetCurrentProcess
目的: 杂项帮助器。

函数: CoDosDateTimeToFileTime,CoFileTimeToDosDateTime,CoFileTimeNow
日期/时间转换的目的: 杂项 helper 函数。 (更适合为 Win32 API)。

函数: IsValidIid,IsValidInterface,IdValidPtrIn IsValidPtrOut
目的: 杂项验证函数 (仅限于 16 位)。

命名 (名字对象)

函数: IMoniker
目的: 公开名字对象的功能。 OLE 提供了五个名字对象实现的 (五个不同的类)。 通过对象创建函数或自定义的 API,可以公开自定义实现。

函数: BindMoniker
IMoniker::BindToObject 的用途: 包装。

函数: CreateFileMoniker、 CreateItemMoniker、 CreateAntiMoniker、 CreatePointerMoniker、 CreateGenericComposite
目的: 访问 OLE 标准名字对象实现的。

函数: IParseDisplayName
目的: 实现一个自定义的对象,以分析为标记对象、 标准或自定义的用户可读的显示名称上。

函数: IOleContainer IOleItemContainer
目的: 通常与 OLE 文档,而这些接口上实现包含项目,并且需要绑定项的名字对象的对象。

函数: IBindCtx
目的: 实现 OLE 标准"绑定上下文"对象上。

函数: CreateBindCtx
目的: 实例化返回 IBindCtx 指针绑定上下文对象。

函数: IRunningObjectTable
目的: 从公开 OLE 实现"运行对象表"的服务。 没有自定义项。

函数: GetRunningObjectTable
目的: 访问运行对象表。

函数: MkParseDisplayName
目的: 将字符串转换为包含可确定其实现的 IParseDisplayName 使用的智能标记。

函数: MonikerRelativePathTo MonikerCommonPrefixWith
目的: 帮助者操作文件名字对象来创建使用 IMoniker::RelativePathTo 和 IMoniker::CommonPrefixWith 的绝对和相对路径。

结构化的存储

函数: IStorage
目的: 公开存储对象功能 (目录)。

函数: IStream
目的: 公开流对象功能 (文件)。

函数: IRootStorage
目的: 控制连接到复合文件中的 IStorage 的基础文件。

函数: ILockBytes
目的: 自定义复合文件中的底层存储介质。

函数: StgCreateDocfile StgOpenStorage
目的: 创建或打开使用默认的基于文件的 ILockBytes 实现 OLE 的复合文件 (IStorage/IRootStorage) 实现。

函数: StgCreateDocfileOnILockBytes StgOpenStorageOnILockBytes
目的: 创建或打开使用自定义的 ILockBytes 实现 OLE 的复合文件 (IStorage/IRootStorage) 实现。

函数: StgIsStorageFile StgIsStorageILockBytes
目的: 检查文件是否为 ILockBytes 的默认实现或自定义实现的复合文件。

函数: CreateILockBytesOnHGlobal GetHGlobalFromILockBytes
目的: 访问基于内存的 ILockBytes 实现。

函数: CreateStreamOnHGlobal,GetHGlobalFromStream。
目的: 访问基于内存的 IStream 实施。

函数: [读取 | 编写] 类 [Stg | Stm] [读取 | 写] FmtUserTypeStg GetClassFile
目的: 检索或保存到存储或流的 CLSID、 数据格式和用户类型信息。

函数: StgSetTimes
目的: Helper 函数来处理复合文件时间戳。

永久对象

函数: IPersist,IPersistFile,IPersist-存储,Μ [初始]
目的: 从基于存储模型的持久对象公开: 文件-基于、 基于 IStorage、 IStream 基于 (有或没有初始化)。

每个事件的通知

函数: IAdviseSink [2]
目的: 接收通知的数据更改,更改视图、 复合文档对象的更改。

函数: IPropertyNotifySink
目的: 接收属性更改和控制可重写更改的通知。

函数: 事件集
目的: 接口对象所定义的、 由外部事件接收器。

统一数据传输

IDataObject,(IAdviseSink),IEnumFORMATETC 函数:
目的: 公开交换格式的数据结构和通知数据更改的通知接收器的能力。

函数: OleDuplicateData
目的: Helper 函数,用于复制的数据结构。

函数: ReleaseStgMedium
目的: 帮助者释放数据结构。

可查看对象

函数: IViewObject [2],(IAdviseSink)
目的: 公开到设备上下文中绘制可视演示文稿并通知视图更改的通知接收器的能力。

函数: OleDraw
目的: IViewObject::Draw 的简单包装。

函数: OleGetIconOfFile,OleMetafilePictFromIconAnd 标签,OleGetIconOfClass
目的: Helper 函数,用于操作对象的图标视图。

函数: OleTranslateColor
目的: 帮助者 COLORREF 和 OLE_COLOR 类型之间转换。

标准类型

函数: IFont IFontDisp
目的: 公开标准字体对象实现 (OLE 控件)。

函数: OleCreateFontIndirect
目的: 访问标准字体对象实现。

函数: IPicture IPictureDisp
目的: 公开标准图片对象实现 (OLE 控件)。

函数: OleCreatePictureIndirect
目的: 访问标准图片对象实现。

函数: OleLoadPicture
目的: 从流信息创建图片对象。

函数: OleIconToCursor
目的: Helper 函数以将转变为游标的简单的 Win32 API 的图标基于和拖放 (没有 OLE 拖放)。 >

OLE 剪贴板

函数: OleSetClipboard,OleGetClipboard,OleFlushClipboard OleIsCurrentClipboard
剪贴板处理服务通过 IDataObject 的用途: API。 除所涉及的任何 IDataObject 实现的任何自定义项。

OLE 拖放功能

函数: IDropSource
目的: 公开在拖放操作中的源端功能。

函数: IDropTarget
目的: 公开在拖放操作中的目标端功能。

函数: DoDragDrop
目的: 安装 IDropSource (和 IDataObject) 开始拖放操作的实现。

函数: RegisterDragDrop RevokeDragDrop
目的: 安装/卸载拖放目标实现。 拖放目标只公开到 DoDragDrop。

类型库

函数: ITypeLib ITypeInfo
目的: 标准 OLE 实现类型库结构中导航。

函数: ITypeComp
要绑定到更高效的方法,用于编译器类型库中定义的接口函数的用途: 标准 OLE 实现。

函数: LHashValOfName [Sys]
目的: 创建在 ITypeComp 函数中使用的哈希值。

函数: LoadTypeLib、 LoadRegTypeLib、 LoadTypeLibFromResource、 RegisterTypeLib、 QueryPathOfRegTypeLib
目的: 用于注册和加载类型库的帮助。 正在加载类型库表示实例化类型库的对象与 ITypeLib 在其上。 换句话说,负载 [标准] 的类型库 [FromResource] 访问标准的 ITypeLib 实现。

函数: CreateTypeLib
目的: 创建新的类型库 (而不是加载一个现有)。 类型库实现 ICreateTypeLib。 通常使用从类型库编译器。

函数: ICreateTypeLib ICreateTypeInfo
目的: 实现 OLE 用于创建类型库中。 从类型库编译器使用。

函数: CreateDispTypeInfo
目的: 创建具有 ITypeInfo INTERFACEDATA 结构所基于的类型信息对象。

函数: CompareStringA,LCMap StringA,GetLocaleInfoA,Get StringTypeA,GetSystemDefault-[LangID | LCID] GetUser 默认 [LangID | LCID]
目的: Helper 函数使用 OLE 自动化中的特定于区域设置的信息。 它们主要用于 Win16 平台为相同的功能是标准的 Win32 API 的一部分。

OLE 自动化

函数: IDispatch IEnumVARIANT
目的: 公开方法和属性,通过一种机制,派单 (DISPID) 以及"集合"。

函数: CreateStdDispatch
目的: 将自定义接口安装到标准的 IDispatch 实现。 换句话说,访问内部取决于自定义接口实现标准 IDispatch。

函数: DispGetIDOfNames,DispGetParams,DispInvoke
目的: 帮助器功能的直接实现或 IDispatch 的使用。

函数: RegisterActiveObject,RevokeActiveObject,GetActiveObject
目的: Helper 函数以注册自动化对象,如运行和运行的访问对象。 基本上包装运行对象表。

函数: SafeArray-AccessData、 AllocData、 AllocDescriptor,复制、 创建、 销毁,DestroyData、 DestroyDescriptor、 GetDim、 GetElement、 GetElemSize、 GetLBound、 GetUBound、 锁定、 PutElement、 Redim、 UnAccessData,解除锁定
目的: 通过 IDispatch 的 Helper 函数用于操作数组传递。

Sys-AllocString、 AllocStringLen、 FreeString、 ReAllocString、 ReAllocStringLen、 StringLen 函数:
目的: Helper 函数以操纵 BSTR 类型。

函数: [Ex] 的 variant 类型的值的误差清除,请复制、 CopyInf、 初始化、 TimeToDosDateTime ; () DosDateTimeToVarantTime
目的: Helper 函数以操纵变量传入的变量结构如类型转换和复制)。

OLE 属性页

函数: OleCreatePropertyFrame-[间接]
目的: 实现 IPropertyPageSite 的属性页框架的访问标准实现。

函数: IPropertyPageSite
目的: 公开的功能作为属性页框架。

函数: ISpecifyPropertyPages
目的: 公开的对象的属性页 (它们是单独的对象) 的 Clsid。

函数: IPropertyPage [2]
目的: 公开属性页的功能。

函数: IPerPropertyBrowsing
目的: 公开操纵单个属性的能力。

OLE 文档: 常规

函数: OleRegGetUserType,OleRegGetMiscStatus,OleRegEnumFormatEtc OleRegEnumVerbs
目的: 对于默认注册表处理 Helper 函数 (主要是 OLE 文档)。

函数: IRunnableObject
目的: 当将一个对象的通知之间加载并正在运行。

函数: OleIsRunning、 OleLockRunning、 OleRun、 OleNoteObjectVisible、 OleSetContainedObject
在复合文档中运行对象的控件的用途: 帮助。 其中的大部分功能调用 IRunnableObject 成员。

函数: IOleAdviseHolder
目的: Helper 函数,用于管理从复合文档对象实现内的 IAdviseSink 指针。

函数: CreateOleAdviseHolder
目的: 访问 IOleAdviseHolder 对象的 OLE 实现。 没有自定义项。

函数: OleLoad,OleLoadFromStream,OleSave OleSaveToStream
目的: 函数,以加载和保存在 IStorage 或 IStream 实例中的复合文档对象。 IPersistStorage 和 Μ 呼叫的包装。

函数: OleCreateStaticFromData
目的: 访问的静态对象的 OLE 实现。

OLE 文档: 处理程序和缓存

函数: OleCreateDefaultHandler OleCreateEmbeddingHelper
目的: 访问 OLE 实施的默认处理程序或"嵌入帮助器"(cut-rate 的默认处理程序相同进程对象)。

函数: IOleCache [2]
目的: 实现由 OLE 提供的默认情况下,进程内处理程序和使用可自定义的复合文档中的服务器。

函数: CreateDataCache
目的: 访问 OLE 的数据高速缓存的实现 (服务)。 缓存对象实现的接口包括 [2] IOleCache、 IOleCacheControl、 IDataObject、 IViewObject [2] 和 IPersistStorage 的数字。

函数: IOleCacheControl
目的: 实现在 OLE 的默认处理程序来访问远程服务器的 IDataObject 实现。 在 OLE 文档中使用。

OLE 文档: 嵌入

函数: IOleObject
目的: 公开复合文档对象功能。

函数: IOleClientSite
目的: 提供容器端信息和复合文档对象的函数。

函数: OleCreate,OleCreate FromData,OleCreateFromFile ; OleQueryCreateFromData
目的: 访问嵌入的复合文档对象,具体取决于所在的源信息的自定义实现)。 OleQueryCreate FromData 检查 OleCreateFromData 将起作用。

OLE 文档: 链接

函数: IOleLink
目的: 从链接的复合文档对象 (通常来自 OLE 的默认处理程序) 的过程中实现公开。

函数: OleCreateLink,OleCreateLinkFromData,OleCreateLinkToFile ; OleQueryCreateLinkFromData
目的: 访问链接的复合文档对象,具体取决于所在的源信息的自定义实现)。 检查是否起作用 OleCreateLinkFromData 的 OleQueryCreate LinkFromDat。

函数: IOleContainer IOleItemContainer
目的: 枚举一般容器内的对象 (通常为复合文档容器,但不是一定)。 IOleItemContainer 支持额外的步骤来绑定项名字对象。

OLE 文档: 就地激活

函数: IOleInPlaceObject IOleInPlaceActiveObject
目的: 公开就地激活模式支持 (从 IOleWindow 派生接口) 的对象端功能。

函数: IOleInPlaceFrame,IOleInPlaceUIWindow,IOleInPlaceSite
目的: 公开就地激活模式支持 (从 IOleWindow 派生接口) 的容器端功能。

函数: OleCreateMenuDescriptor,OleDestroyMenuDescriptor,OleSetMenuDescriptor OleTranslateAccelerator
就地激活的目的: 提供 OLE helper 函数。

OLE 文档: OLE 1 兼容性

函数: CoIsOle1Class
目的: 帮助者检查类是 OLE 1 复合文档对象。

函数: OleConvertIStorageToOLE 流 [Ex],OleConvertOLE STREAMToIStorage [Ex]
目的: Helper 函数提供与 OLE 1 兼容容器的复合文档。

OLE 控件

函数: IOleControl
处理键盘助记键和环境属性的更改之间的容器的目的: 公开 OLE 控件细节。

函数: IOleControlSite
OLE 控件的用途: 公开 OLE 控件容器细节。

函数: ISimpleFrameSite
目的: 公开 OLE 控件只是一个可视图文筛选邮件转到其中的控件提供的一组控件 (如单选按钮) 的组行为的其他控件的一组。


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值