目的
StoClien 示例的主要重点是客户端如何使用结构化存储以及如何指示服务器组件使用此存储。 StoClien 示例演示结构化存储服务的编程模型。
功能性
StoClien 功能类似于某些版本的 Microsoft Visual C++ 中的“scribble”示例。 StoClien 示例与 StoServe 示例之间的差异是基于 COM 技术的内部体系结构。 COM 客户端和 COM 服务器之间保持明确的体系结构区别。
StoClien 加载并保存其绘图,并将其保存在 COM 复合文件的结构化存储中。
StoClien 示例创建并使用作为 StoServe 服务器中的CLSID_DllPaper组件提供的可连接 COPaper COM 对象。 StoClien 客户端创建 COPaper 对象,并通过对象公开的 IPaper 接口对其进行控制。 StoClien 从用户获取绘图数据,并在它管理的窗口中以图形方式表示它。 StoClient 使用 COPaper 的 IPaper 接口将绘图数据保存在 COPaper 中,并指导对此数据执行文件存储操作。
COPaper COM 对象仅封装了绘图纸数据的服务器端存储:服务器端不提供图形用户界面(GUI)行为。 所有 GUI 行为都在客户端中隔离。 COPaper 对象的数据管理和存储功能只能通过 COM 自定义接口 IPaper 使用。
StoClien 与 COPaper 合作加载并保存 COPaper 绘图数据。 StoClien 获取复合文件中存储对象的 IStorage 接口。 在其加载及保存作业中,StoClien 将指向 IStorage 接口的指针传递给服务器中的 COPaper。 COPaper 使用提供的 IStorage 在存储中创建流。 然后,COPaper 可以使用标准 IStream 接口来读取和写入它管理的绘图数据。
COPaper 仅管理绘图数据,不执行图形用户界面操作。 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.pap
支持信息
有关详细信息、功能说明和 StoClien 的代码教程,请参阅 Stoclien.htm中的“代码教程”部分。 有关 StoClien 的外部用户操作的详细信息,请参阅 Stoclien.htm中的“使用和操作”部分。 若要阅读 Stoclient.htm,请在主教程目录中运行 Tutorial.exe,然后单击课程表中的 StoClien 课程。 或者,在 Windows 资源管理器中查找主教程目录后单击 Stoclien.htm。 有关 StoServe 的工作原理并将其服务公开给 StoClien 的详细信息,请参阅主教程目录中的 Stoserve.htm。 请注意,在生成 StoClien 之前,必须生成 Stoserve.dll。 StoServe 的生成文件在系统注册表中注册该服务器,因此在尝试运行 StoClien 之前,必须生成 StoServe。
有关设置系统以生成和测试此 COM 教程系列中的代码示例的详细信息,请参阅 如何生成示例。 提供的生成文件(MAKEFILE)Microsoft NMAKE 兼容。 若要创建调试生成,请在命令提示符窗口中发出 NMAKE 命令。
为方便起见,为每个示例提供了一个项目文件,以便在 visual Studio Microsoft中使用。 若要加载 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 结构化存储的使用。