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