C O leStreamFile

  • 个 COleStreamFile 对 象 将 一 个 复 合 文 件 中 的 数 据 流 (

    IStream ) 表 示 为 OLE 结 构 式 存 储 的 一 部 分 。 除 非 是 一 个 内 存 流 , 否 则 在 此 流 可 打 开 或 创 建 之 前 , 必须 存 在 一 个 IStorage 对 象 。

COleStreamFile 对 象 的 操 作 与 CFile 对 象 极 其 相 似 。

如 果 要 获 取 更 多 有 关 操 作 流 和 存 储 器 的 信 息 , 请 参 见 “ Visual C++ 程 序 员 指 南 ” 中 的 文 章 “ 容 器 : 复 合 文 件 ” 。

更 多 的 信 息 , 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的 IStream 和 IStorage 。#include <afxole.h>

CO leStreamFile 类 成 员

Construction

ColeStreamFile 构 造 一 个 COleStreamFile 对象

Attribute s an d Operation s Attach 将 一 个 流 与 此 对 象 相 联 系

CreateMemoryStream 从 全 局 内 存 创 建 一 个 流 , 并 将 此 流 与 此 对 象 相 关

CreateStream 创 建 一 个 流 , 并 将 此 流 与 此 对 象 相 关 联

Detach 将 此 流 从 此 对 象 中 分 离

GetStream 返 回 当 前 的 流

OpenStream 安 全 地 打 开 一 个 流 , 并 将 此 流 与 此 对 象 相 关 联

成 员 函 数

CO leStreamFile::Attach

void Attach( LPSTREAM lpStream );

参 数

lpStream

指 向 要 与 此 对 象 关 联 的 OLE 流 , 该 参 数 不 能 是 NULL 。

此 函 数 将 所 提 供 的 OLE 流 与 此 COleStreamFile 对 象 相 关 联 。 该 对 象 必 须 已 经与 一 个 OLE 流 相 关 联 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的 IStream 。

请 参 阅 COleStreamFile ::Detach

CO leStreamFile::COleStreamFile COleStreamFile ( LPSTREAM lpStream = NULL ); 参 数

lpStream

指 向 一 个 要 连 接 到 此 对 象 上 的 OLE 流 的 指 针 。

此 函 数 创 建 一 个 COleStreamFile 对 象 。 如 果 lpStream 为 NULL , 则 此 对 象 不 与一 个 OLE 项 连 接 ; 否 则 , 此 对 象 与 提 供 的 OLE 流 相 关 联 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的 IStream 。

请 参 阅 COleStreamFile::Attach , CFile

CO leStreamFile::CreateMemoryStream

BOOL CreateMemoryStream( CFileException* pError = NULL );

返 回 值

如 果 成 功 地 创 建 了 流 , 则 返 回 非 零 值 ; 否 则 返 回 0 。

pError

指 向 一 个 CFileException 对 象 的 指 针 或 者 是 NULL , NULL 表 示 创 建 操 作的 完 成 。 如 果 你 希 望 监 视 因 试 图 创 建 流 而 可 能 产 生 的 异 常 , 则 为 此 函 数提 供 一 个 值 。

说 明

此 函 数 从 全 局 的 共 享 内 存 中 安 全 地 创 建 一 个 新 的 流 , 在 此 函 数 调 用 中 失 败 是 一种 正 常 的 、 意 料 之 中 的 情 况 。 内 存 由 OLE 子 系 统 分 配 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的

CreateStreamOnHGloba l。

请 参 阅 COleStreamFile::OpenStream , COleStreamFile::CreateStream ,

CFileException

CO leStreamFile::CreateStream

B OOL Creat e Stream( LPSTORAGE lpStorage , LPCTSTR lpszName , DWORD nOpenFlags = modeReadWrite|shareExclusive|modeCreate, CFileException* pError = NULL );

返 回 值

如 果 成 功 地 创 建 了 流 则 返 回 非 零 值 ; 否 则 返 回 0 。

参 数

lpStorage

指 向 一 个 OLE 存 储 器 对 象 , 此 对 象 中 包 含 要 创 建 的 流 。

lpszStreamName

要 创 建 的 流 的 名 称 。 该 参 数 不 能 为 NULL 。

nOpenFlags

打 开 流 时 所 用 的 存 取 方 式 。 缺 省 时 使 用 互 斥 , 读 /写 及 创 建 方 式 。 有 关 可用 方 式 的 完 整 列 表 , 参 见 CFile::CFile 。

pError

指 向 一 个 CFileException 对 象 的 指 针 , 或 者 是 NULL 。 如 果 你 希 望 监 视 因试 图 创 建 流 而 可 能 产 生 的 异 常 , 则 为 此 函 数 提 供 一 个 值 。

说 明

此 函 数 在 所 提 供 的 存 储 器 对 象 中 安 全 地 创 建 一 个 新 的 流 , 在 此 函 数 调 用 中 , 失败 是 一 种 正 常 的 、 意 料 之 中 的 情 况 。 如 果 打 开 失 败 , 并 且 pError 不 是 NULL , 则 将 抛 出 一 个 文 件 异 常 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的

IStorage::CreateStream 。

COleStreamFile::OPenStream,COleStreamFile::CreateMemoryStream,CFileExceptio n

CO leStreamFile::Detach

LPSTREAM Detach();

返 回 值

返 回 一 个 指 向 与 此 对 象 相 关 联 的 流 的 指 针 。

说 明

此 函 数 将 流 与 对 象 分 离 , 但 是 不 关 闭 流 。 在 程 序 终 止 之 前 , 流 必 须 以 其 它 某 种方 式 关 闭 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE2 程 序 员 参 考 , 卷 1 ” 中 的 IS tream 。

CO leStreamFile::GetStream IStream* GetStream() const; 返 回 值

是 一 个 指 向 当 前 流 界 面 ( IStream ) 的 指 针 。

说 明

此 函 数 用 来 返 回 一 个 指 向 当 前 流 的 指 针 。

CO leStreamFile::OpenStream

BOOL OpenStream( LPSTORAGE lpStorage , LPCTSTR lpszName , D W O R D nOpenFlags = modeReadWrite|shareExclusive, CFileException* pError = NULL );

返 回 值

如 果 成 功 地 打 开 了 流 则 返 回 非 零 值 ; 否 则 返 回 0 。

参 数

lpStorage

指 向 一 个 OLE 存 储 器 对 象 , 此 对 象 中 包 含 要 打 开 的 流 。 该 参 数 不 可 为

NULL 。

lpszName

要 打 开 的 流 的 名 称 。 该 参 数 不 可 以 为 NULL 。

nOpenFlags

指 定 打 开 流 时 使 用 的 存 取 方 式 。 缺 省 使 用 互 斥 方 式 和 读 /写 方 式 。 有 关 可用 方 式 的 完 整 列 表 , 参 见 CFile::CFile 。

pError

指 向 一 个 CFileException 对 象 的 指 针 , 或 者 是 NULL 。 如 果 你 希 望 监 视 因试 图 创 建 流 而 可 能 产 生 的 异 常 , 则 为 此 函 数 提 供 一 个 值 。

说 明

此 函 数 用 来 打 开 一 个 已 经 存 在 的 流 。 如 果 打 开 失 败 , 并 且 pError 不 为 NULL , 则 将 抛 出 一 个 文 件 异 常 。

如 果 要 获 取 更 多 的 信 息 , 请 参 见 “ OLE 2 程 序 员 参 考 , 卷 1 ” 中 的

IStorage::OpenStream 。

请 参 阅 COleStreamFile::CreateStream , COleStreamFile::CreateMemoryStream , CfileException