Partager via


Exemple Créer et exécuter StoClien

StoClien travaille en coopération avec un objet COPaper dans un serveur COM pour obtenir un stockage persistant des dessins dans des fichiers composés COM. Pour plus d’informations sur l’utilisation de flux par COPaper dans le fichier composé fourni à COPaper par StoClien, consultez Exemple et STOSERVE.HTM StoServe . La construction de COPaper et son interface IPaper sont également abordées dans l’exemple StoServe .

Visite guidée du code

Les principaux sujets abordés dans cette visite guidée du code sont les suivants :

  • Comment CGuiPaper encapsule le comportement de l’interface utilisateur utilisateur du papier à dessin électronique de StoClien
  • Comment StoClien capture et affiche l’activité de dessin interactive
  • Comment l’objet CGuiPaper utilise COPaper pour enregistrer les données de dessin
  • Comment une connexion IPaperSink est utilisée dans le repeint
  • Comment les méthodes CPapFile Load et Save utilisent le stockage structuré dans les fichiers composés

Comme la classe CGuiBall utilisée dans les exemples FRECLIEN et CONCLIEN encapsulait le comportement d’une boule de rebondissement, StoClien utilise une classe CGuiPaper C++ pour encapsuler les données et le comportement de l’interface graphique du papier à dessin électronique.

Le tableau suivant répertorie les fichiers pertinents pour l’exemple StoClien .

Fichiers Description
STOCLIEN.TXT Brève description de l’exemple.
MAKEFILE Makefile générique pour la génération de l’exemple de code.
STOCLIEN. H Fichier include pour l’application StoClien . Contient des déclarations de classe, des prototypes de fonction et des identificateurs de ressource.
STOCLIEN. RPC Fichier d’implémentation main pour STOCLIEN.EXE. A l’implémentation WinMain et CMainWindow, ainsi que la distribution de menu main.
STOCLIEN. RC Fichier de définition de ressource d’application.
STOCLIEN. ICO Ressource d’icône d’application.
STOCLIEN. PAP Fichier de dessin papier par défaut pour l’application.
CRAYON. CUR Image crayon pour le curseur de la fenêtre cliente.
ÉVIER. H Déclaration de classe pour la classe d’objet COM COPaperSink.
ÉVIER. RPC Fichier d’implémentation pour la classe d’objet COM COPaperSink.
PAPFILE. H Déclaration de classe pour la classe CPapFile C++.
PAPFILE. RPC Fichier d’implémentation pour la classe CPapFile C++.
GUIPAPER. H Déclaration de classe pour la classe CGuiPaper C++.
GUIPAPER. RPC Fichier d’implémentation pour la classe CGuiPaper C++.
STOCLIEN. DSP Fichier Microsoft Visual Studio Project.

 

Fichiers composés

StoClien s’appuie sur COPaper pour enregistrer les données de dessin. Il s’appuie également sur COPaper pour stocker les données dans un fichier composé. Toutefois, dans une division classique du travail entre le client COM et le serveur, StoClien partage une partie de la responsabilité du stockage de fichiers. Cette division du travail est importante dans les applications COM où le client est un conteneur et le serveur est un objet incorporé. Dans cette organisation, le client est responsable de la création ou de l’ouverture d’un fichier de stockage structuré, tandis que l’objet serveur est responsable de l’utilisation de ce stockage à ses propres fins de stockage de données. Cela peut impliquer la création par l’objet serveur de sous-stockages dans le stockage qui lui est donné. Il implique généralement que l’objet serveur crée des objets de flux dans le stockage. L’utilisation des flux de stockage par COPaper est détaillée dans l’exemple StoClien .

L’interface IStorage est utilisée par l’objet client et serveur pour effectuer des opérations de fichier. L’implémentation de fichiers composés de l’architecture de stockage structuré est utilisée. Les fonctions de service standard sont utilisées pour les opérations sur les fichiers composés. Par exemple, la fonction StgCreateDocfile crée initialement un fichier composé et renvoie un pointeur IStorage qui peut être utilisé pour manipuler le fichier. Cette fonction particulière est appelée dans StoClien. L’interface IStorage qu’il obtient est passée en tant que paramètre à COPaper pour son utilisation. L’objet COPaper ne crée pas ou n’ouvre pas de fichiers composés seul : il utilise les interfaces IStorage et IStream pour travailler dans les fichiers composés qui lui sont donnés.

Ces interfaces IStorage et IStream ne sont pas implémentées dans StoClien ou StoServe. Elles sont implémentées dans les bibliothèques COM. Lorsqu’un pointeur vers l’une de ces interfaces est obtenu, leurs méthodes sont essentiellement utilisées comme un ensemble de services pour fonctionner sur un fichier composé.