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 中的 IStreamIMoniker

继承层次结构

CObject

CFile

COleStreamFile

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"));

另请参阅

COleStreamFile 类
层次结构图
CAsyncMonikerFile 类