Compartir a través de


Función OleDoAutoConvert (ole2.h)

Convierte automáticamente un objeto en una nueva clase si se establece la conversión automática para esa clase de objeto en el Registro.

Sintaxis

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

Parámetros

[in] pStg

Puntero a la interfaz IStorage del objeto de almacenamiento que se va a convertir.

[out] pClsidNew

Puntero al nuevo CLSID para el objeto que se va a convertir. Si no hubo ninguna conversión automática, puede ser la misma que la clase original.

Valor devuelto

Esta función puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY y E_UNEXPECTED, así como los valores siguientes.

Código devuelto Descripción
S_OK
No se necesita ninguna conversión o se completó correctamente una conversión.
REGDB_E_KEYMISSING
La función no puede leer una clave del Registro.
 

Esta función también puede devolver cualquiera de los valores de error devueltos por la función OleGetAutoConvert . Al acceder a los objetos de almacenamiento y transmisión, consulte los métodos IStorage::OpenStorage e IStorage::OpenStream para ver los posibles errores. Cuando no es posible determinar el CLSID existente o cuando no es posible actualizar el objeto de almacenamiento con nueva información, consulte la interfaz IStream para ver otros valores devueltos de error.

Comentarios

OleDoAutoConvert convierte automáticamente un objeto si la función OleSetAutoConvert ha especificado previamente la conversión automática en el Registro. La conversión de objetos significa que el objeto está asociado permanentemente a un nuevo CLSID. Normalmente, el programa de instalación especifica la conversión automática para una nueva versión de una aplicación de objeto, de modo que los objetos creados por sus versiones anteriores se puedan actualizar automáticamente.

El objeto de almacenamiento debe estar en estado descargado cuando se llama a OleDoAutoConvert .

Una aplicación contenedora que admita la conversión de objetos debe llamar a OleDoAutoConvert cada vez que carga un objeto. Si el contenedor usa la función auxiliar OleLoad , no necesita llamar explícitamente a OleDoAutoConvert porque OleLoad lo llama internamente.

OleDoAutoConvert determina primero si se requiere alguna conversión mediante una llamada a la función OleGetAutoConvert , que, si no se requiere ninguna conversión, devuelve S_OK. Si el objeto requiere conversión, OleDoAutoConvert modifica y convierte el objeto de almacenamiento activando la nueva aplicación de objeto. La nueva aplicación de objeto lee el formato de datos existente, pero guarda el objeto en el nuevo formato nativo para la aplicación de objeto.

Si el objeto que se va a convertir automáticamente es un objeto OLE 1, la cadena ItemName se almacena en una secuencia denominada "\1Ole10ItemName". Si esta secuencia no existe, el nombre del elemento del objeto es NULL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ole2.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

OleGetAutoConvert

OleSetAutoConvert