IFileViewer【】Interface

【勇芳软件工作室】汉化HomePreviousNext

shell使用IFileViewer接口来告诉文件查看器对象何时显示要查看的文件的用户界面或打印文件。除了通常的IUnknown 【】成员之外,界面还包括ShowInitialize显示PrintTo成员函数。

在调用显示成员函数之前,shell调用ShowInitialize以指示文件查看器执行任何创建,分配或加载。ShowInitialize可能会失败,而显示可能不是因为Quick View需要知道,在任何可见的变化之前,并且将控件转移到文件查看器之前,文件查看器是否可以显示该文件。如果文件查看器可以显示该文件,Quick View会在文件查看器窗口出现之前隐藏其“搜索”对话框。

ShowInitialize成员函数应该返回主题注册表项的结构中列出的相同的FV_错误代码。虽然Win32 SDK中包含的示例文件查看器使用更一般的错误代码形式,但新的文件查看器DLL应使用FV_表单。

显示成员函数类似于Windows ShowWindow功能,因为它接收到一个Show命令,指示文件查看器应该最初显示其窗口。显示命令的含义与ShowWindow完全相同。一般来说,Quick View将Show命令从其WinMain函数直接传递到IFileViewer::Show【】,将命令传递给ShowWindow 【.】由于Quick View从shell获取此参数,因此该设计使shell以最小化,正常或最大化的状态打开文件查看器,甚至允许shell隐藏文件查看器(具有SW_HIDE值)。提供这种灵活性没有额外的开销。请注意,Windows 95外壳始终使用SW_SHOWNORMAL值启动快速查看。

显示可能失败的唯一情况是ShowInitialize 【】尚未被调用。在这种情况下,它返回E_UNEXPECTED状态代码(SCODE)。否则,显示必须返回NOERROR错误代码。

PrintTo成员函数就像显示,因为它不会返回,直到它完成打印或发生错误。如果发生错误,文件查看器对象负责通知用户问题。调用PrintTo时,shell指定文件查看器用于打印文件的打印机驱动程序的名称。shell还指定一个标志,指示在打印操作期间文件查看器是否应显示任何UI元素,包括错误消息。如果标志为FALSE,文件查看器可能会显示打印对话框,打印机设置对话框,错误消息等。

界面标识符IFileViewer在Windows头文件中定义为IID_IFileViewer接口标识符。