Freigeben über


Abteile

Abteiltypen

Es gibt mehrere verschiedene Arten von Abteilen. Es gibt ein globales Fach, und jeder Thread-Manager, Dokument-Manager und Kontext können ein Fach enthalten.

Mit dem globalen Fach können Kunden Daten über Prozesse hinweg freigeben. Rufen Sie ITfThreadMgr::GetGlobalCompartmentauf, um den globalen Fachmanager zu erhalten.

Der Threadmanager enthält einen Fachmanager, der Fächer pro Thread enthält. Auf diese Weise können Daten innerhalb eines Threads freigegeben werden. Rufen Sie ITfThreadMgr::QueryInterface mit IID_ITfCompartmentMgr auf, um einen Thread-Manager zu erhalten.

Jeder erstellte Dokumentmanager enthält auch einen Fachmanager. Auf diese Weise können Daten in einem bestimmten Dokument-Manager freigegeben werden. Rufen Sie ITfDocumentMgr::QueryInterface mit IID_ITfCompartmentMgr auf, um den Dokument-Manager-Fachmanager zu erhalten.

Jeder erstellte Kontext enthält auch einen Fachmanager. Auf diese Weise können Daten innerhalb eines bestimmten Kontexts freigegeben werden. Rufen Sie zum Abrufen eines Kontextfachmanagers ITfContext::QueryInterface mit IID_ITfCompartmentMgr auf.

Erstellen und Löschen eines Fachs

Ein Fach wird zum ersten Mal erstellt, ITfCompartmentMgr::GetCompartment mit der Fach-GUID aufgerufen wird. Der Installationsclient sollte den Anfangswert des Abteils mit ITfCompartment::SetValuefestlegen. Bis zum Festlegen eines Werts ist der Fachwert leer. Aus diesem Grund gibt es keine Möglichkeit zu überprüfen, ob das Fach vorhanden war, bevor GetCompartment aufgerufen wurde. Um diese Situation zu vermeiden, sollte der Installationsclient den Wert auf einen anfangswert festlegen, damit andere Clients ermitteln können, ob das Fach bereits vorhanden ist.

Die ITfCompartmentMgr::ClearCompartment Methode wird verwendet, um ein Fach zu entfernen. Alle vorhandenen Verweise auf das Fach sind ungültig.

Beschaffen von Fachteilen

Mithilfe der ITfCompartmentMgr--Schnittstelle kann ein Client Fächer aufzählen, indem ITfCompartmentMgr::EnumCompartmentsaufgerufen wird. Diese Methode stellt ein IEnumGUID--Objekt bereit, das die GUIDs aller installierten Bereiche enthält.

Mithilfe der Fach-GUID wird ITfCompartmentMgr::GetCompartment verwendet, um ein bestimmtes Fach zu erhalten. Diese Methode stellt den Aufrufer mit einem ITfCompartment- Objekt bereit, das die Fachdaten abrufen und festlegen kann.

Empfangsfachänderungsbenachrichtigungen

Wenn sich der Wert eines Abteils ändert, benachrichtigt der TSF-Manager installierte Spüle, dass sich das Fach geändert hat. Um eine Abteiländerung zu installieren, erstellen Sie ein Objekt, das ITfCompartmentEventSinkimplementiert. Rufen Sie dann ITfCompartment::QueryInterface mit IID_ITfSource für das Abteilobjekt auf, um eine ITfSource--Schnittstelle abzurufen. Rufen Sie nun ITfSource::AdviseSink mit IID_ITfCompartmentEventSink und dem Zeiger auf das ITfCompartmentEventSink-Objekt auf. Wenn sich der Wert des Fachs ändert, wird die ITfCompartmentEventSink::OnChange mit der GUID des Fachs aufgerufen. Die Empfehlungsspüle kann ITfCompartment::GetValue aufrufen, um den neuen Wert abzurufen.

ITfCompartmentMgr

ITfCompartment-

ITfCompartmentEventSink-

TfClientId-

ITfThreadMgr::GetGlobalCompartment

ITfCompartmentMgr::GetCompartment

ITfCompartment::SetValue

ITfCompartmentMgr::ClearCompartment

ITfCompartmentMgr::EnumCompartments

ITfSource-

ITfSource::AdviseSink

ITfCompartmentEventSink::OnChange