StoClien サンプルを作成して実行する
StoClien は、COM サーバーの COPaper オブジェクトと連携して、COM 複合ファイル内の図面の永続的な保存を実現します。 StoClien によって COPaper に提供される複合ファイルでの COPaper のストリームの使用の詳細については、「StoServe sample and STOSERVE.HTM」を参照してください。 COPaper の構築とその IPaper インターフェイスも 、StoServe サンプルで説明されています。
コード ツアー
このコード ツアーで取り上げる主なトピックは次のとおりです。
- CGuiPaper が StoClien の電子描画用紙の GUI 動作をカプセル化する方法
- StoClien が対話型の描画アクティビティをキャプチャして表示する方法
- CGuiPaper オブジェクトが COPaper を使用して描画データを記録する方法
- 再描画での IPaperSink 接続の使用方法
- CPapFile Load メソッドと Save メソッドで複合ファイル内の構造化ストレージを使用する方法
FRECLIEN サンプルと CONCLIEN サンプルで使用される CGuiBall クラスは、バウンス するボールの動作をカプセル化するため、 StoClien は CGuiPaper C++ クラスを使用して、電子描画用紙のデータと GUI の動作をカプセル化します。
次の表に、 StoClien サンプルに関連するファイルの一覧を示します。
ファイル | 説明 |
---|---|
STOCLIEN.TXT | 簡単なサンプルの説明。 |
メイクファイル | コード サンプルをビルドするための汎用メイクファイル。 |
STOCLIEN。H | StoClien アプリケーションのインクルード ファイル。 クラス宣言、関数プロトタイプ、リソース識別子が含まれます。 |
STOCLIEN。Cpp | STOCLIEN.EXEのメイン実装ファイル。 WinMain と CMainWindow の実装と、メイン メニューディスパッチがあります。 |
STOCLIEN。Rc | アプリケーション リソース定義ファイル。 |
STOCLIEN。Ico | アプリケーション アイコン リソース。 |
STOCLIEN。Pap | アプリケーションの既定の用紙描画ファイル。 |
鉛筆。電流 | クライアント ウィンドウ カーソルの鉛筆イメージ。 |
シンク。H | COPaperSink COM オブジェクト クラスのクラス宣言。 |
シンク。Cpp | COPaperSink COM オブジェクト クラスの実装ファイル。 |
PAPFILE。H | CPapFile C++ クラスのクラス宣言。 |
PAPFILE。Cpp | CPapFile C++ クラスの実装ファイル。 |
GUIPAPER。H | CGuiPaper C++ クラスのクラス宣言。 |
GUIPAPER。Cpp | CGuiPaper C++ クラスの実装ファイル。 |
STOCLIEN。Dsp | Microsoft Visual Studio プロジェクト ファイル。 |
複合ファイル
StoClien は、描画データを記録するために COPaper に依存しています。 また、COPaper を使用して複合ファイルにデータを格納します。 ただし、COM クライアントとサーバー間の一般的な分業では、 StoClien はファイル ストレージの責任の一部を共有します。 この分業は、クライアントがコンテナーであり、サーバーが埋め込みオブジェクトである COM アプリケーションで重要です。 この配置では、クライアントは構造化ストレージ ファイルを作成または開きますが、サーバー オブジェクトはそのストレージを独自のデータ ストレージの目的で使用する役割を担います。 これには、サーバー オブジェクトが、指定されたストレージ内にサブストレージを作成することが含まれる場合があります。 通常、ストレージ内にストリーム オブジェクトを作成するサーバー オブジェクトが含まれます。 COPaper によるストレージ ストリームの使用の詳細については、 StoClien サンプルを参照してください。
IStorage インターフェイスは、ファイル操作を実行するためにクライアント オブジェクトとサーバー オブジェクトの両方で使用されます。 構造化ストレージ アーキテクチャの複合ファイルの実装が使用されます。 標準サービス関数は、複合ファイルに対する操作に使用されます。 たとえば、 StgCreateDocfile 関数は、最初に複合ファイルを作成し、ファイルの操作に使用できる IStorage ポインターを返します。 この特定の関数は 、StoClien で呼び出されます。 取得した IStorage インターフェイスは、その使用のために COPaper にパラメーターとして渡されます。 COPaper オブジェクトは、単独で複合ファイルを作成または開くことはありません。 IStorage インターフェイスと IStream インターフェイスを使用して、それに指定された複合ファイルで動作します。
これらの IStorage インターフェイスと IStream インターフェイスは 、StoClien または StoServe 内では実装されません。 これらは COM ライブラリ内に実装されます。 これらのインターフェイスの 1 つへのポインターが取得されると、そのメソッドは基本的に複合ファイルを操作するための一連のサービスとして使用されます。