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 中的 IStream 和 IStorage。
继承层次结构
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。