Share via


OleDoAutoConvert-Funktion (ole2.h)

Konvertiert ein Objekt automatisch in eine neue Klasse, wenn die automatische Konvertierung für diese Objektklasse in der Registrierung festgelegt ist.

Syntax

HRESULT OleDoAutoConvert(
  [in]  LPSTORAGE pStg,
  [out] LPCLSID   pClsidNew
);

Parameter

[in] pStg

Ein Zeiger auf die IStorage-Schnittstelle des zu konvertierenden Speicherobjekts.

[out] pClsidNew

Ein Zeiger auf die neue CLSID für das zu konvertierende Objekt. Wenn keine automatische Konvertierung erfolgt ist, kann diese mit der ursprünglichen Klasse identisch sein.

Rückgabewert

Diese Funktion kann die Standardrückgabewerte E_INVALIDARG, E_OUTOFMEMORY und E_UNEXPECTED sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Es ist keine Konvertierung erforderlich, oder eine Konvertierung wurde erfolgreich abgeschlossen.
REGDB_E_KEYMISSING
Die Funktion kann keinen Schlüssel aus der Registrierung lesen.
 

Diese Funktion kann auch einen der von der OleGetAutoConvert-Funktion zurückgegebenen Fehlerwerte zurückgeben. Wenn Sie auf Speicher- und Streamobjekte zugreifen, finden Sie in den Methoden IStorage::OpenStorage und IStorage::OpenStream mögliche Fehler. Wenn es nicht möglich ist, die vorhandene CLSID zu bestimmen oder wenn es nicht möglich ist, das Speicherobjekt mit neuen Informationen zu aktualisieren, finden Sie weitere Fehlerrückgabewerte in der IStream-Schnittstelle .

Hinweise

OleDoAutoConvert konvertiert automatisch ein Objekt, wenn die automatische Konvertierung zuvor von der OleSetAutoConvert-Funktion in der Registrierung angegeben wurde. Objektkonvertierung bedeutet, dass das Objekt dauerhaft einer neuen CLSID zugeordnet ist. Die automatische Konvertierung wird in der Regel vom Setupprogramm für eine neue Version einer Objektanwendung angegeben, sodass Objekte, die von älteren Versionen erstellt wurden, automatisch aktualisiert werden können.

Das Speicherobjekt muss sich im entladenen Zustand befinden, wenn OleDoAutoConvert aufgerufen wird.

Eine Containeranwendung, die die Objektkonvertierung unterstützt, sollte oleDoAutoConvert jedes Mal aufrufen, wenn sie ein Objekt lädt. Wenn der Container die OleLoad-Hilfsfunktion verwendet, muss oleDoAutoConvert nicht explizit aufgerufen werden, da OleLoad ihn intern aufruft.

OleDoAutoConvert bestimmt zunächst, ob eine Konvertierung erforderlich ist, indem die OleGetAutoConvert-Funktion aufgerufen wird, die, wenn keine Konvertierung erforderlich ist, S_OK zurückgibt. Wenn das Objekt eine Konvertierung erfordert, ändert OleDoAutoConvert das Speicherobjekt und konvertiert es, indem die neue Objektanwendung aktiviert wird. Die neue Objektanwendung liest das vorhandene Datenformat, speichert das Objekt aber im neuen nativen Format für die Objektanwendung.

Wenn das automatisch konvertierte Objekt ein OLE 1-Objekt ist, wird die ItemName-Zeichenfolge in einem Stream mit dem Namen "\1Ole10ItemName" gespeichert. Wenn dieser Stream nicht vorhanden ist, lautet der Elementname des Objekts NULL.

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

OleGetAutoConvert

OleSetAutoConvert