SetConvertStg-Funktion (ole2.h)

Die SetConvertStg-Funktion legt das Convert-Bit in einem Speicherobjekt fest, um anzugeben, dass das Objekt beim Öffnen in eine neue Klasse konvertiert werden soll. Die Einstellung kann mit einem Aufruf der GetConvertStg-Funktion abgerufen werden.

Syntax

HRESULT SetConvertStg(
  LPSTORAGE pStg,
  BOOL      fConvert
);

Parameter

pStg

IStorage-Zeiger auf das Speicherobjekt, in dem das Konvertierungsbit festgelegt werden soll.

fConvert

Wenn TRUE, legt das Konvertierungsbit für das Objekt fest, um anzugeben, dass das Objekt beim Öffnen konvertiert werden soll. Wenn FALSE, löscht das Konvertierungsbit.

Rückgabewert

Mögliche Speicher- und Streamzugriffsfehler finden Sie unter den Methoden IStorage::CreateStream, IStorage::OpenStream, ISequentialStream::Read und ISequentialStream::Write .

Hinweise

Die SetConvertStg-Funktion bestimmt die status des Convert-Bits in einem enthaltenen Objekt. Sie wird sowohl von der Containeranwendung als auch vom Server aufgerufen, um ein Objekt von einer Klasse in eine andere zu konvertieren. Wenn ein Benutzer über ein Dialogfeld Konvertieren in angibt (das der Container mit einem Aufruf der OleUIConvert-Funktion erzeugt), dass ein Objekt konvertiert werden soll, muss der Container die folgenden Schritte ausführen:

  1. Entladen Sie das Objekt, wenn es gerade geladen ist.
  2. Rufen Sie WriteClassStg auf, um die neue CLSID in den Objektspeicher zu schreiben.
  3. Rufen Sie WriteFmtUserTypeStg auf, um den neuen Benutzertypnamen und das vorhandene Standard Format in den Speicher zu schreiben.
  4. Rufen Sie SetConvertStg auf, wobei der fConvert-Parameter auf TRUE festgelegt ist, um anzugeben, dass das Objekt beim nächsten Laden für die Konvertierung in eine neue Klasse markiert wurde.
  5. Rufen Sie kurz vor dem Laden des Objekts OleDoAutoConvert auf, um alle erforderlichen Objektkonvertierungen zu verarbeiten, es sei denn, Sie rufen OleLoad auf, der es intern aufruft.
Wenn ein Objekt aus einem Speicherobjekt initialisiert wird und der Server das Ziel eines Konvertierungsvorgangs ist, sollte der Objektserver die folgenden Schritte ausführen:
  1. Rufen Sie die GetConvertStg-Funktion auf, um den Wert des Konvertierungsbits abzurufen.
  2. Wenn das Bit festgelegt ist, liest der Server die Daten gemäß dem Format, das der neuen CLSID zugeordnet ist, aus dem Objekt.
  3. Wenn das Objekt aufgefordert wird, sich selbst zu speichern, sollte das Objekt die WriteFmtUserTypeStg-Funktion mit dem normalen nativen Format und Benutzertyp des Objekts aufrufen.
  4. Das -Objekt sollte dann SetConvertStg aufrufen, wobei der fConvert-Parameter auf FALSE festgelegt ist, um das Konvertierungsbit des Objekts zurückzusetzen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ole2.h
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

GetConvertStg