COleStreamFile 类

表示作为 OLE 结构化存储一部分的复合文件中的数据流 (IStream)。

语法

class COleStreamFile : public CFile

成员

公共构造函数

名称 描述
COleStreamFile::COleStreamFile 构造 COleStreamFile 对象。

公共方法

名称 描述
COleStreamFile::Attach 将流与对象相关联。
COleStreamFile::CreateMemoryStream 从全局内存创建流并将其与对象相关联。
COleStreamFile::CreateStream 创建流并将其与对象相关联。
COleStreamFile::Detach 将流与对象解除关联。
COleStreamFile::GetStream 返回当前流。
COleStreamFile::OpenStream 安全地开启流并将其与对象相关联。

备注

必须先存在对象 IStorage,然后才能打开或创建流,除非它是内存流。

COleStreamFile 对象的操作方式与 CFile 对象完全相同。

有关操作流和存储的详细信息,请参阅“容器:复合文件”一文。

有关详细信息,请参阅 Windows SDK 中的 IStreamIStorage

继承层次结构

CObject

CFile

COleStreamFile

要求

标头:afxole.h

COleStreamFile::Attach

将提供的 OLE 流与 COleStreamFile 对象相关联。

void Attach(LPSTREAM lpStream);

参数

lpStream
指向 OLE 流 (IStream) 的指针与对象相关联。 不能为 NULL。

备注

该对象不得已经与 OLE 流相关联。

有关详细信息,请参阅 Windows SDK 中的 IStream

COleStreamFile::COleStreamFile

创建一个 COleStreamFile 对象。

COleStreamFile(LPSTREAM lpStream = NULL);

参数

lpStream
指向 OLE 流的指针与对象相关联。

备注

如果 lpStream 为 NULL,则对象不与 OLE 流关联,否则,该对象与提供的 OLE 流相关联。

有关详细信息,请参阅 Windows SDK 中的 IStream

COleStreamFile::CreateMemoryStream

安全地从全局共享内存中创建新的流,其中故障是正常的预期条件。

BOOL CreateMemoryStream(CFileException* pError = NULL);

参数

pError
指向一个 CFileException 对象或 NULL,该对象指示创建操作的完成状态。 如果要监视通过尝试创建流生成的可能异常,请提供此参数。

返回值

如果成功创建流,则为非零;否则为 0。

备注

内存由 OLE 子系统分配。

有关详细信息,请参阅 Windows SDK 中的 CreateStreamOnHGlobal

COleStreamFile::CreateStream

安全地在提供的存储对象中创建一个新流,其中故障是正常的预期条件。

BOOL CreateStream(
    LPSTORAGE lpStorage,
    LPCTSTR lpszStreamName,
    DWORD nOpenFlags = modeReadWrite|shareExclusive|modeCreate,
    CFileException* pError = NULL);

参数

lpStorage
指向包含要创建的流的 OLE 存储对象。 不能为 NULL。

lpszStreamName
要创建的流的名称。 不能为 NULL。

nOpenFlags
打开流时要使用的访问模式。 默认使用独占、读/写和创建模式。 有关可用模式的完整列表,请参阅 CFile::CFile

pError
指向 CFileException 对象或 NULL。 如果要监视通过尝试创建流生成的可能异常,请提供此参数。

返回值

如果成功创建流,则为非零;否则为 0。

注解

如果打开失败且 pError 不为 NULL,将引发文件异常。

有关详细信息,请参阅 Windows SDK 中的 IStorage::CreateStream

COleStreamFile::Detach

取消对象与流的关联,而无需关闭流。

LPSTREAM Detach();

返回值

指向与对象关联的流 (IStream) 的指针。

备注

在程序终止之前,必须以某种其他方式关闭该流。

有关详细信息,请参阅 Windows SDK 中的 IStream

COleStreamFile::GetStream

调用此函数可返回指向当前流的指针。

IStream* GetStream() const;

返回值

指向当前流接口 (IStream) 的指针。

COleStreamFile::OpenStream

打开现有流。

BOOL OpenStream(
    LPSTORAGE lpStorage,
    LPCTSTR lpszStreamName,
    DWORD nOpenFlags = modeReadWrite|shareExclusive,
    CFileException* pError = NULL);

参数

lpStorage
指向包含要打开的流的 OLE 存储对象。 不能为 NULL。

lpszStreamName
要打开的流的名称。 不能为 NULL。

nOpenFlags
打开流时要使用的访问模式。 默认使用独占模式和读/写模式。 有关可用模式的完整列表,请参阅 CFile::CFile

pError
指向 CFileException 对象或 NULL。 如果要监视通过尝试打开流生成的可能异常,请提供此参数。

返回值

如果成功打开流,则为非零;否则为 0。

备注

如果打开失败且 pError 不为 NULL,将引发文件异常。

有关详细信息,请参阅 Windows SDK 中的 IStorage::OpenStream

另请参阅

CFile 类
层次结构图