StoClien 概述

目的

StoClien 示例的主要重点是客户端如何使用结构化存储,以及如何指示服务器组件使用此存储。 StoClien 示例演示了结构化存储服务的编程模型。

功能

StoClien 功能类似于某些版本的 Microsoft Visual C++ 中的“scribble”示例。 StoClien 示例和 StoServe 示例之间的区别在于基于 COM 技术的内部体系结构。 COM 客户端和 COM 服务器之间存在明确的体系结构区别。

StoClien 加载并将其绘图保存在 COM 复合文件的结构化存储中。

StoClien 示例创建并使用作为 StoServe 服务器中CLSID_DllPaper组件提供的可连接的 COPaper COM 对象。 StoClien 客户端创建一个 COPaper 对象,并通过对象公开的 IPaper 接口对其进行控制。 StoClien 从用户获取绘图数据,并在其管理的窗口中以图形方式表示它。 StoClien 使用 COPaper IPaper 接口将绘图数据保存在 COPaper 中,并指导对此数据的文件存储操作。

COPaper COM 对象仅封装绘图纸数据的基于服务器的存储:服务器端不提供图形用户界面 (GUI) 行为。 所有 GUI 行为都在客户端中隔离。 COPaper 对象的数据管理和存储功能只能通过 COM 自定义接口 IPaper 提供。

StoClien 与 COPaper 合作加载并保存 COPaper 绘图数据。 StoClien 为复合文件中的存储对象获取 IStorage 接口。 在其加载和保存操作中,StoClien 将指向 IStorage 接口的指针传递到服务器中的 COPaper。 COPaper 使用提供的 IStorage 在存储中创建流。 然后,COPaper 可以使用标准 IStream 接口来读取和写入它所管理的绘图数据。

COPaper 仅管理绘图数据;它不执行 GUI 操作。 StoClien 为绘图应用程序提供 GUI。 它将它封装在中央 CGuiPaper C++ 对象中。

StoClien 还在 COPaperSink COM 对象中实现自定义 IPaperSink 接口,并将此接口连接到服务器 COPaper 对象中的相应连接点。 COPaper 使用连接的 IPaperSink 接口将通知发送回 StoClien。 COPaper 绘图数据的正常 GUI 重新绘制是在 StoClien 中使用 COPaper 可连接对象技术完成的。

StoClien 是一个应用程序,可以直接以正常方式或通过命令提示符窗口执行。 StoClien 接受命令行上的可选文件名参数。

在以下示例中,Drawing.pap 是一个复合文件,其中包含与 DllPaper 兼容的图形数据的结构化存储。 如果未指定命令行文件名参数, StoClien 将使用默认文件名 Stoclien.pap,并尝试在与执行Stoclien.exe相同的目录中打开它。

StoClien c:\drawing\drawing.pap

支持信息

有关 StoClien 的详细信息、功能说明和代码教程,请参阅 Stoclien.htm 中的代码教程部分。 有关 StoClien 的外部用户操作的详细信息,请参阅 Stoclien.htm 中的使用情况和操作部分。 若要阅读Stoclient.htm,请在main教程目录中运行Tutorial.exe,然后单击课程表中的 StoClien 课程。 或者,在 Windows 资源管理器中找到main教程目录后,单击“Stoclien.htm”。 有关 StoServe 如何工作以及如何向 StoClien 公开其服务的详细信息,请参阅 main 教程目录中的 Stoserve.htm。 请注意,在生成 StoClien 之前,必须生成Stoserve.dll。 StoServe 的生成文件在系统注册表中注册该服务器,因此必须在尝试运行 StoClien 之前生成 StoServe

有关设置系统以生成和测试本 COM 教程系列中的代码示例的详细信息,请参阅 如何生成示例。 提供的 makefile (MAKEFILE) 与 Microsoft NMAKE 兼容。 若要创建调试版本,请在命令提示符窗口中发出 NMAKE 命令。

为方便起见,为每个示例提供了一个项目文件,以便在 Microsoft Visual Studio 中使用。 若要加载 StoClien 示例的项目,请在示例目录中的命令提示符处运行 Visual Studio,如下所示:

MSDEV STOCLIEN。Dsp

还可以在 Windows 资源管理器中双击 Stoclient.dsp 文件,将示例项目加载到 Visual Studio 中。 在 Visual Studio 中,可以浏览示例源的 C++ 类,通常执行其他编辑-编译-调试操作。 请注意,作为服务器 SDK 的一部分,从 Visual Studio 中编译这些示例需要在 Visual Studio 中正确设置目录路径。 有关详细信息,请参阅 如何生成示例

备注

必须先编译客户端示例和其他相关示例,然后才能运行客户端。 有关生成示例的详细信息,请参阅 如何生成示例。 如果已生成相应的示例,Stoclien.exe是要为此示例运行的客户端可执行文件。

Stoclien.exe 应用程序提供本教程的用户界面。 它练习关联但独立的Stoserve.dll,以演示客户端和服务器对复合文件中 COM 结构化存储的使用。