Freigeben über


Ausgeführte Tabelle aktiver Dokumente

Die IDE führt die Liste aller aktuell geöffnete Dokumente in einer internen Struktur, die die ausgeführte Dokumenten Drehtransformator () aufgerufen wird. Diese Liste enthält alle geöffneten Dokumente im Arbeitsspeicher, unabhängig davon, ob diese Dokumente direkt bearbeitet werden. Ein Dokument ist jedes Element, das beibehalten wird, einschließlich der gespeicherten Prozeduren, die in einem Editor sowie in den Dateien in einem Projekt oder in der Projektdatei (z. B. *.vcproj-Datei) geöffnet sind.

Elemente der Tabelle aktiver Dokumente

Die Tabelle der ausgeführten Dokumente enthält die folgenden Einträge.

Element

Beschreibung

moniker Dokumenten

Eine Zeichenfolge, die eindeutig das Dokument das angegebene Channeldatenobjekt identifiziert. Dadurch wird der absolute Pfad für ein Projektsystem sein, die Dateien verwaltet (z. B. C:\MyProject\MyFile). Diese Zeichenfolge wird auch für Projekte, die im aktiven Projekt gespeichert werden, anders gespeichert, wie Dateisysteme gespeicherter Prozeduren in einer Datenbank. In diesem Fall kann das Projektsystem eine eindeutige Zeichenfolge, die erfinden analysiert und möglicherweise festgestellt werden kann, um zu bestimmen, wie das Dokument speichert.

Besitzer Hierarchien

Das Hierarchien Objekt, das das Dokument besitzt, z. B. durch eine IVsHierarchy-Schnittstelle dargestellt.

Element-IDs

Elementbezeichner für ein bestimmtes Element innerhalb der Hierarchie. Dieser Wert wird von allen Dokumenten in der Hierarchie eindeutig, die dieses Dokument besitzt, aber dieser Wert nicht unbedingt über verschiedene Hierarchien eindeutig sein.

Dokumente an das angegebene Channeldatenobjekt

Der Minimalwert ist dies IUnknown

-Objekt. Die IDE erfordert keine bestimmte Schnittstelle über die IUnknown-Schnittstelle hinaus Dokumenten für das angegebene Channeldatenobjekt eines benutzerdefinierten Editors. Für einen standardmäßigen Editor, wird die Implementierung des Editors der IVsPersistDocData2-Schnittstelle erforderlich, um Aufrufe von Dauerhaftigkeit Datei aus dem Projekt zu behandeln. Weitere Informationen finden Sie unter Ein Standardwert Dokument speichern.

Flags

Flags, die steuern, ob das Dokument gespeichert wird, ob ein Lesevorgang bearbeiten oder eine sperre usw.) angewendet wird, können angegeben werden, wenn Einträge in das Drehtransformator hinzugefügt werden. Weitere Informationen finden Sie unter der _VSRDTFLAGS-Enumeration.

Bearbeitungs-Sperrenanzahl

Anzahl Sperren bearbeiten. Eine Bearbeitung von sperre gibt an, dass jeder Editor das Dokument, das zur Bearbeitung geöffnet ist. Wenn die Anzahl der Übergänge Bearbeiten auf Null Sperren, wird der Benutzer aufgefordert, das Dokument zu speichern, wenn es geändert wurde. Beispielsweise jedes Mal, wenn Sie ein Dokument in einem Editor mithilfe des Befehls Neues Fenster Bearbeiten öffnen, wird eine sperre für dieses Dokument im Drehtransformator hinzugefügt. Damit eine sperre Bearbeiten festgelegt werden kann, muss das Dokument oder Element einer Hierarchie verfügen.

Lesen von sperrenanzahl

Anzahl der Lesevorgänge Sperren. Eine Lesen sperre gibt an, dass das Dokument beliebige Weise wie ein Assistent durchgelesen wird. Eine Lesen eines Dokuments enthält sperre beim Drehtransformator im aktiv angegeben wird, dass das Dokument nicht bearbeitet werden kann. Sie können eine Read sperre festlegen, selbst wenn das Dokument über keine Hierarchie oder Element verfügt. Diese Funktion ermöglicht es Ihnen, ein Dokument in den Speicher zu öffnen und sie im Drehtransformator ohne das Dokument eingeben, die von jeder Hierarchie gehört. Diese Funktion wird selten verwendet.

Sperrenhalter

Eine Instanz einer IVsDocumentLockHolder-Schnittstelle. Der Sperren halter wird von Funktionen wie Assistenten implementiert und zum Bearbeiten geöffnet, die außerhalb eines Editors dokumentiert. Ein Sperren halter kann die Funktion eine sperre Bearbeiten dem Dokument hinzuzufügen, um das Dokument geschlossen werden soll, während es noch geändert wird. Normalerweise Sperren nur für Dokumentfenster Bearbeiten hinzugefügt werden (d. h. Editoren).

Jeder Eintrag im Drehtransformator verfügt über eine eindeutige Hierarchie oder Element-ID zugeordnet ist, der im Allgemeinen auf einem Knoten im Projekt entspricht. Alle verfügbaren dokumentierten zur Bearbeitung sind in der Regel im Besitz einer Hierarchie. Einträge im gemacht Drehtransformator-Steuerelement, das Projekt, oder-mehr, genau-dem Hierarchie lediglich das Dokument das angegebene Channeldatenobjekt besitzt, das gerade bearbeitet wird. Verwenden der Informationen im Drehtransformator, kann die IDE ein Dokument über mehrere Projekte gleichzeitig geöffnet werden kann.

Die Hierarchie ebenfalls steuert die Persistenz von Daten und verwendet die Informationen im Drehtransformator, um die Speichern und Speichern unter Dialogfelder zu aktualisieren. Wenn ein Benutzer ein Dokument ändern und dann den Beenden Befehl aus dem Menü Datei auswählen, fordert die IDE sie mit dem Änderungen speichern Dialogfeld auf ihnen alle Projekte und Projektelemente angezeigt, die gerade geändert werden. Dies ermöglicht es Benutzern, um auszuwählen, die zum Speichern von Dokumenten. Die Liste der Dokumente zu speichern (das heißt diese Dokumente, die Änderungen haben), wird vom Drehtransformator generiert. Alle Elemente, die Sie erwarten, dass im Dialogfeld Änderungen speichern nach Beendigung der Anwendung finden, können Datensätze im Drehtransformator haben. Die Drehtransformator-Koordinaten, die Dokumente gespeichert sind und ob der Benutzer über einen Speichervorgang mithilfe der Werte aufgefordert werden, die Flags im Eintrag für jedes Dokument angegeben werden. Weitere Informationen über die Drehtransformator-Flags finden Sie in der _VSRDTFLAGS-Enumeration.

Sperren und Bearbeiten von Sperren Lesen

Sperren und Bearbeiten von Sperren beim Lesen Drehtransformator im befindet. Das Dokumentfenster inkrementiert und verringert die sperre Bearbeiten. Wenn ein Benutzer ein neues Dokumentfenster geöffnet, die sperrenanzahl Bearbeiten von einem inkremente. Wenn die Anzahl der Sperren Bearbeiten (null) erreicht, wird die Hierarchie signalisiert, um die Daten für das zugeordnete Dokument beizubehalten oder zu speichern. Die Hierarchie kann die Daten auf jede Weise, z. B. das Beibehalten als Datei dann beibehalten oder als Element in einem Repository. Sie können die LockDocument-Methode in der IVsRunningDocumentTable-Schnittstelle verwenden, um die Bearbeitung gesperrt werden, hinzuzufügen und gelesen, und die Sperren UnlockDocument diese Methode zum Entfernen von Sperren.

Normalerweise wenn das Dokumentfenster für einen Editor instanziiert wird, fügt der Fensterrahmen Bearbeiten automatisch eine sperre für das Dokument im Drehtransformator hinzu. Wenn Sie jedoch eine angepasste Ansicht eines Dokuments erstellen, das keinen Standardwert dokumentfenster implementiert (das heißt es keine IVsWindowFrame-Schnittstelle) verwendet, die Sie bearbeiten eigene sperre festzulegen. Beispielsweise kann in einem Assistenten wird ein Dokument bearbeitet, ohne in einem Editor geöffnet werden soll. Damit Dokument Sperren, der den Assistenten geöffnet und ähnliche Entitäten, diese Entitäten müssen die IVsDocumentLockHolder-Schnittstelle implementieren. Um Sperren von Dokumenten halter zu registrieren, rufen Sie die RegisterDocumentLockHolder-Methode auf, und übergeben Sie die IVsDocumentLockHolder Implementierung. Dies fügt dem halter Sperren von Dokumenten genauso hinzu. Drehtransformator Ein anderes Szenario zum Implementieren eines Dokuments sperren halters ist, wenn Sie ein Dokument über ein Fenster Spezialwerkzeug öffnen. In diesem Fall sind Sie nicht in der Lage, das Toolfenster das Dokument schließen zu lassen. Allerdings indem Sperren von Dokumenten als halter im Drehtransformator registriert, kann die IDE die Implementierung der CloseDocumentHolder-Methode aufrufen, um einen Schließen des Dokuments aufzufordern.

Andere Verwendungsmöglichkeiten der Tabelle aktiver Dokumente

Andere Entitäten in der IDE verwenden den Drehtransformator zum Ermitteln der Informationen über die Dokumente. Beispielsweise verwendet der Quellcodeverwaltung unterliegen den Manager Drehtransformator, um das System zu übermitteln, um ein Dokument im Editor zu aktualisieren, nachdem Sie die neueste Version der Datei abruft. Hierzu wird der Quellcodeverwaltung die Dateien im Manager Drehtransformator um festzustellen, falls vorhanden, dass sie geöffnet sind. Wenn dies der Fall ist, dann überprüft der Quellcodeverwaltung zuerst managers, ob die Hierarchie die ReloadItem-Methode implementiert. Wenn das Projekt nicht über die ReloadItem-Methode implementiert, die Quellcodeverwaltung Manager auf eine Implementierung der ReloadDocData-Methode für das Dokument das angegebene Channeldatenobjekt direkt.

Die IDE verwendet ebenfalls den Drehtransformator, um (bringen Sie im Vordergrund), einem geöffneten Dokument zu erneuern, wenn die Dokuments anfordert. Weitere Informationen finden Sie unter Dateien mithilfe des geöffneten Datei-Befehls anzeigen. Um festzustellen, ob eine Datei im Drehtransformator geöffnet ist, führen Sie Folgendes ein.

  • Abfrage für den Dokumenten zu erhalten moniker (d. h. der vollständige Pfad des Dokuments angezeigt), wenn das Element geöffnet wird.

  • Verwenden Sie die Hierarchie oder Element-ID, um das Projektsystem um den vollständigen Pfad des Dokuments anfordert, und anschließend oben finden Sie im Drehtransformator.

Siehe auch

Referenz

OpenItem

CreateDocumentWindow

Konzepte

Hierarchien in Visual Studio

Projekttyp-Grundlagen