Internet 上的异步名字对象

Internet 需要新的应用程序设计方法,因为它的网络访问速度缓慢。 应用程序应异步执行网络访问,以避免停止用户界面。 MFC 类 CAsyncMonikerFile 提供下载文件的异步支持。

使用异步名字对象,可以扩展 COM 应用程序以异步方式在 Internet 上下载,并提供大型对象(如位图和 VRML 对象)的渐进式呈现。 异步名字对象允许下载 Internet 上的 ActiveX 控件属性或文件,而不会阻止用户界面的响应。

异步名字对象的优点

可以使用异步名字对象来:

  • 下载代码和文件而不阻止。

  • 在不阻止的情况下下载 ActiveX 控件中的属性。

  • 接收下载进度的通知。

  • 跟踪进度和就绪状态信息。

  • 向用户提供有关进度的状态信息。

  • 允许用户随时取消下载。

异步名字对象的 MFC 类

CAsyncMonikerFile 派生自 CMonikerFile,后者又派生自 COleStreamFile。 对象 COleStreamFile 表示数据流; CMonikerFile 对象使用获取 IMoniker 数据,对象 CAsyncMonikerFile 以异步方式执行此作。

异步名字对象主要用于启用 Internet 的应用程序和 ActiveX 控件,以便在文件传输过程中提供响应式用户界面。 其中的主要示例是使用 CDataPathProperty 为 ActiveX 控件提供异步属性。

ActiveX 控件中数据路径的 MFC 类

MFC 类 CDataPathPropertyCCachedDataPathProperty 实现可异步加载的 ActiveX 控件属性。 异步属性在同步启动后加载。 异步 ActiveX 控件重复调用回调,以指示在较长的属换过程中新数据的可用性。

CDataPathProperty 派生自 CAsyncMonikerFileCCachedDataPathProperty 派生自 CDataPathProperty。 若要在 ActiveX 控件中实现异步属性,请从 CDataPathPropertyCCachedDataPathProperty派生类,并替代要接收的 OnDataAvailable 和其他通知。

使用异步名字对象下载文件

  1. 声明派生自 CAsyncMonikerFile 的类。

  2. 重写 OnDataAvailable 以显示数据。

  3. 重写其他成员函数,包括 OnProgressOnStartBindingOnStopBinding

  4. 声明此类的实例,并使用它打开 URL。

有关在 ActiveX 控件中异步下载的信息,请参阅 Internet 上的 ActiveX 控件

另请参阅

MFC 互联网编程任务
MFC Internet 编程基础知识