Erstellen und Ausführen des StoClien-Beispiels
StoClien arbeitet in Zusammenarbeit mit einem COPaper-Objekt auf einem COM-Server, um eine dauerhafte Speicherung von Zeichnungen in COM-Verbunddateien zu erreichen. Weitere Informationen zur Verwendung von STREAMS durch COPaper in der Verbunddatei, die coPaper von StoClien bereitgestellt wird, finden Sie unter StoServe-Beispiel und STOSERVE.HTM. Die Konstruktion von COPaper und die IPaper-Schnittstelle werden ebenfalls im StoServe-Beispiel behandelt.
Code Tour
Die wichtigsten Themen, die in dieser Codetour behandelt werden, sind:
- Wie CGuiPaper das GUI-Verhalten des elektronischen Zeichnungspapiers von StoClien kapselt
- Wie StoClien interaktive Zeichnungsaktivitäten erfasst und anzeigt
- Wie das CGuiPaper-Objekt COPaper verwendet, um Zeichnungsdaten aufzuzeichnen
- Verwendung einer IPaperSink-Verbindung beim Neulackieren
- Verwenden des strukturierten Speichers in Verbunddateien durch die CPapFile Load- und Save-Methoden
Da die in den BEISPIELen FRECLIEN und CONCLIEN verwendete CGuiBall-Klasse das Verhalten eines Hüpfballs gekapselt hat, verwendet StoClien eine CGuiPaper C++-Klasse, um die Daten und das GUI-Verhalten von elektronischem Zeichnungspapier zu kapseln.
In der folgenden Tabelle sind die Dateien aufgeführt, die für das StoClien-Beispiel relevant sind.
Dateien | BESCHREIBUNG |
---|---|
STOCLIEN.TXT | Kurze Beispielbeschreibung. |
MAKEFILE | Die generische Makefile zum Erstellen des Codebeispiels. |
STOCLIEN. H | Die Includedatei für die StoClien-Anwendung . Enthält Klassendeklarationen, Funktionsprototypen und Ressourcenbezeichner. |
STOCLIEN. CPP | Die Standard-Implementierungsdatei für STOCLIEN.EXE. Verfügt über winMain- und CMainWindow-Implementierung sowie die Standard Menüverteilung. |
STOCLIEN. RC | Die Anwendungsressourcendefinitionsdatei. |
STOCLIEN. ICO | Die Anwendungssymbolressource. |
STOCLIEN. PAP | Eine Standardmäßige Papierzeichnungsdatei für die Anwendung. |
BLEISTIFT. CUR | Ein Bleistiftbild für den Clientfenstercursor. |
WASCHBECKEN. H | Die Klassendeklaration für die COM-Objektklasse COPaperSink. |
WASCHBECKEN. CPP | Implementierungsdatei für die COM-Objektklasse COPaperSink. |
PAPFILE. H | Die Klassendeklaration für die CPapFile-C ++-Klasse. |
PAPFILE. CPP | Implementierungsdatei für die CPapFile-C ++-Klasse. |
GUIPAPER. H | Die Klassendeklaration für die CGuiPaper C++-Klasse. |
GUIPAPER. CPP | Implementierungsdatei für die CGuiPaper C++-Klasse. |
STOCLIEN. DSP | Microsoft Visual Studio Project-Datei. |
Verbunddateien
StoClien nutzt COPaper, um Zeichnungsdaten aufzuzeichnen. Außerdem wird COPaper verwendet, um die Daten in einer Verbunddatei zu speichern. In einer typischen Arbeitsteilung zwischen COM-Client und -Server teilt StoClien jedoch einen Teil der Verantwortung für die Dateispeicherung. Diese Arbeitsteilung ist wichtig für COM-Anwendungen, bei denen der Client ein Container und der Server ein eingebettetes Objekt ist. In dieser Anordnung ist der Client für das Erstellen oder Öffnen einer strukturierten Speicherdatei verantwortlich, während das Serverobjekt für die Verwendung dieses Speichers für seine eigenen Datenspeicherzwecke verantwortlich ist. Dies kann dazu führen, dass das Serverobjekt Unterspeicher im Speicher erstellt, der ihm zugewiesen wird. Es umfasst in der Regel das Serverobjekt, das Streamobjekte im Speicher erstellt. Die Verwendung von Speicherstreams durch COPaper wird im StoClien-Beispiel ausführlich beschrieben.
Die IStorage-Schnittstelle wird sowohl vom Client- als auch vom Serverobjekt verwendet, um Dateivorgänge auszuführen. Die Implementierung zusammengesetzter Dateien der Architektur des strukturierten Speichers wird verwendet. Standarddienstfunktionen werden für Vorgänge für Verbunddateien verwendet. Beispielsweise erstellt die StgCreateDocfile-Funktion zunächst eine Verbunddatei und übergibt einen IStorage-Zeiger , der zum Bearbeiten der Datei verwendet werden kann. Diese spezielle Funktion wird in StoClien aufgerufen. Die abgerufene IStorage-Schnittstelle wird zur Verwendung als Parameter an COPaper übergeben. Das COPaper-Objekt erstellt oder öffnet keine Verbunddateien selbst: Es verwendet die IStorage - und IStream-Schnittstellen , um in Verbunddateien zu arbeiten, die ihm zugewiesen werden.
Diese IStorage - und IStream-Schnittstellen werden nicht in StoClien oder StoServe implementiert. Sie werden in den COM-Bibliotheken implementiert. Wenn ein Zeiger auf eine dieser Schnittstellen abgerufen wird, werden deren Methoden im Wesentlichen als Eine Reihe von Diensten verwendet, um mit einer Verbunddatei zu arbeiten.