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 |
---|---|
|
No se necesita ninguna conversión o se completó correctamente una conversión. |
|
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 |