CMonikerFile 类
表示由 IMoniker 命名的数据流 (IStream)。
语法
class CMonikerFile : public COleStreamFile
成员
公共构造函数
名称 | 描述 |
---|---|
CMonikerFile::CMonikerFile | 构造 CMonikerFile 对象。 |
公共方法
名称 | 描述 |
---|---|
CMonikerFile::Close | 分离和释放流,并释放名字对象。 |
CMonikerFile::Detach | 将 IMoniker 与此 CMonikerFile 对象分离。 |
CMonikerFile::GetMoniker | 返回当前名字对象。 |
CMonikerFile::Open | 打开指定文件以获取流。 |
受保护方法
名称 | 描述 |
---|---|
CMonikerFile::CreateBindContext | 获取绑定上下文或创建默认初始化的绑定上下文。 |
注解
名字对象包含的信息与文件的路径名类似。 如果你有指向名字对象的 IMoniker
接口的指针,则可以访问已标识的文件,而无需获取有关文件实际所在位置的任何其他特定信息。
CMonikerFile
派生自 COleStreamFile
,采用名字对象或可成为名字对象的字符串表示形式,并将其绑定到名字对象为其名称的流。 然后,可以读取和写入该流。 CMonikerFile
的实际用途是提供对由 IMoniker
命令的 IStream
的简单访问权限,以便你无需亲自绑定到流,即可对该流具有 CFile
功能。
CMonikerFile
不能用于绑定到流以外的任何内容。 如果要绑定到存储或对象,则必须直接使用 IMoniker
接口。
有关流和名字对象的详细信息,请参阅“MFC 参考”中的 COleStreamFile 以及 Windows SDK 中的 IStream 和 IMoniker。
继承层次结构
CMonikerFile
要求
标头:afxole.h
CMonikerFile::Close
调用此函数以分离和释放流,并释放名字对象。
virtual void Close();
备注
可以在未打开或已关闭的流上调用。
CMonikerFile::CMonikerFile
构造 CMonikerFile
对象。
CMonikerFile();
CMonikerFile::CreateBindContext
调用此函数以创建默认初始化的绑定上下文。
IBindCtx* CreateBindContext(CFileException* pError);
参数
pError
指向文件异常的指针。 发生错误时,会将其设置为原因。
返回值
如果成功,则返回指向要绑定的绑定上下文 IBindCtx 的指针;否则返回 NULL。 如果实例是使用 IBindHost
接口打开的,则从 IBindHost
检索绑定上下文。 如果没有 IBindHost
接口或此接口无法返回绑定上下文,则会创建绑定上下文。 有关 IBindHost 接口的说明,请参阅 Windows SDK。
备注
绑定上下文是一个对象,用于存储有关特定名字对象绑定操作的信息。 可以重写此函数以提供自定义绑定上下文。
CMonikerFile::Detach
调用此函数以关闭流。
BOOL Detach(CFileException* pError = NULL);
参数
pError
指向文件异常的指针。 发生错误时,会将其设置为原因。
返回值
如果成功,则不为 0;否则为 0。
CMonikerFile::GetMoniker
调用此函数以检索指向当前名字对象的指针。
IMoniker* GetMoniker() const;
返回值
指向当前名字对象接口 (IMoniker) 的指针。
备注
由于 CMonikerFile
不是接口,因此返回的指针不会(通过 AddRef)增加引用计数,并且在释放 CMonikerFile
对象时会释放名字对象。 如果你想保留名字对象或自行释放它,则必须它执行 AddRef
。
CMonikerFile::Open
调用此成员函数以打开文件或名字对象。
virtual BOOL Open(
LPCTSTR lpszURL,
CFileException* pError = NULL);
virtual BOOL Open(
IMoniker* pMoniker,
CFileException* pError = NULL);
参数
lpszURL
要打开的文件的 URL 或文件名。
pError
指向文件异常的指针。 发生错误时,会将其设置为原因。
pMoniker
指向要用于获取流的名字对象接口 IMoniker
的指针。
返回值
如果成功,则不为 0;否则为 0。
注解
lpszURL 参数不能在 Macintosh 上使用。 只有 pMoniker 形式的 Open
才能在 Macintosh 使用。
可以为 lpszURL 参数使用 URL 或文件名。 例如:
CMyMoniker* pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("http://www.microsoft.com"));
- 或 -
CMyMoniker* pMyMoniker = new CMyMoniker();
pMyMoniker->Open(_T("file:c:\\mydata.dat"));