Función OleUIInsertObjectW (oledlg.h)

Invoca el cuadro de diálogo Insertar objeto estándar, que permite al usuario seleccionar un origen de objeto y un nombre de clase, así como la opción de mostrar el objeto como sí mismo o como un icono.

Sintaxis

UINT OleUIInsertObjectW(
  [in] LPOLEUIINSERTOBJECTW unnamedParam1
);

Parámetros

[in] unnamedParam1

Puntero a la estructura OLEUIINSERTOBJECT de salida para este cuadro de diálogo.

Valor devuelto

Definiciones de errores o correctos estándar

Código devuelto Descripción
OLEUI_FALSE
Error desconocido (sin usar).
OLEUI_OK
El usuario ha presionado el botón Aceptar.
OLEUI_SUCCESS
No hay ningún error, igual que OLEUI_OK.
OLEUI_CANCEL
El usuario presionó el botón Cancelar.
 

Errores de validación de campos estándar

Código devuelto Descripción
OLEUI_ERR_STANDARDMIN
Los errores comunes a todos los cuadros de diálogo se encuentran en el intervalo OLEUI_ERR_STANDARDMIN a OLEUI_ERR_STANDARDMAX. Este valor permite a la aplicación probar los mensajes estándar para mostrar los mensajes de error al usuario.
OLEUI_ERR_STRUCTURENULL
El puntero a una estructura OLEUIXXX pasada a la función era NULL.
OLEUI_ERR_STRUCTUREINVALID
Permisos insuficientes para el acceso de lectura o escritura a una estructura OLEUIXXX.
OLEUI_ERR_CBSTRUCTINCORRECT
El valor cbstruct es incorrecto.
OLEUI_ERR_HWNDOWNERINVALID
El valor hWndOwner no es válido.
OLEUI_ERR_LPSZCAPTIONINVALID
El valor lpszCaption no es válido.
OLEUI_ERR_LPFNHOOKINVALID
El valor de lpfnHook no es válido.
OLEUI_ERR_HINSTANCEINVALID
El valor hInstance no es válido.
OLEUI_ERR_LPSZTEMPLATEINVALID
El valor lpszTemplate no es válido.
OLEUI_ERR_HRESOURCEINVALID
El valor hResource no es válido.
 

Errores de inicialización

Código devuelto Descripción
OLEUI_ERR_FINDTEMPLATEFAILURE
No se encuentra la plantilla del cuadro de diálogo.
OLEUI_ERR_LOADTEMPLATEFAILURE
No se puede cargar la plantilla del cuadro de diálogo.
OLEUI_ERR_DIALOGFAILURE
Error de inicialización del cuadro de diálogo.
OLEUI_ERR_LOCALMEMALLOC
Error en una llamada a LocalAlloc o al asignador IMalloc estándar.
OLEUI_ERR_GLOBALMEMALLOC
Error en una llamada a GlobalAlloc o al asignador IMalloc estándar.
OLEUI_ERR_LOADSTRING
No se puede llamar a LoadString para recursos localizados desde la biblioteca.
OLEUI_ERR_OLEMEMALLOC
Error en una llamada al asignador IMalloc estándar.
 

Errores específicos de la función

Código devuelto Descripción
OLEUI_ERR_STANDARDMAX
Los errores comunes a todos los cuadros de diálogo se encuentran en el intervalo OLEUI_ERR_STANDARDMIN a OLEUI_ERR_STANDARDMAX. Este valor permite a la aplicación probar los mensajes estándar para mostrar los mensajes de error al usuario.
OLEUI_IOERR_LPSZFILEINVALID
El valor lpszFile no es válido o el usuario no tiene permisos de acceso de escritura insuficientes. Este miembro lpszFile apunta al nombre del archivo vinculado a o insertado.
OLEUI_IOERR_PPVOBJINVALID
El valor ppvOjb no es válido. Este miembro apunta a la ubicación donde se devuelve el puntero del objeto.
OLEUI_IOERR_LPIOLECLIENTSITEINVALID
El valor lpIOleClientSite no es válido. Este miembro apunta al sitio cliente del objeto .
OLEUI_IOERR_LPISTORAGEINVALID
El valor lpIStorage no es válido. Este miembro apunta al almacenamiento que se va a usar para el objeto .
OLEUI_IOERR_SCODEHASERROR
El miembro sc de lpIO tiene información de error adicional.
OLEUI_IOERR_LPCLSIDEXCLUDEINVALID
El valor lpClsidExclude no es válido. Este miembro contiene la lista de CLSID que se van a excluir.
OLEUI_IOERR_CCHFILEINVALID
El valor cchFile o lpszFile no es válido. El miembro cchFile especifica el tamaño del búfer lpszFile . El miembro lpszFile apunta al nombre del archivo vinculado a o insertado.

Comentarios

OleUIInsertObject permite al usuario seleccionar el tipo de objeto que se va a insertar desde un cuadro de lista que contiene las aplicaciones de objeto registradas en el sistema del usuario. Para rellenar ese cuadro de lista, OleUIInsertObject recorre el registro, agregando todos los servidores de objetos que encuentra que cumplen los criterios siguientes:

  • La entrada del Registro no incluye la clave NotInsertable.
  • La entrada del Registro incluye un protocolo de estilo OLE 1.0\\StdFileEditing\\Clave de servidor.
  • La entrada del Registro incluye la clave insertable.
  • El CLSID del objeto no se incluye en la lista de objetos que se van a excluir (el miembro lpClsidExclude de OLEUIINSERTOBJECT).
De forma predeterminada, OleUIInsertObject no valida los servidores de objetos; sin embargo, si la marca de IOF_VERIFYSERVEREXIST se incluye en el miembro dwFlags de la estructura OLEUIINSERTOBJECT , OleUIInsertObject comprueba que el servidor existe. Si no existe, el objeto del servidor no se agrega a la lista de objetos disponibles. La validación del servidor es una operación extensa del tiempo y es un factor de rendimiento significativo.

Para liberar un HMETAFILEPICT devuelto desde el cuadro de diálogo Insertar objeto o Pegar especial , elimine el metarchivo adjunto en el identificador, como se indica a continuación:

void FreeHmetafilepict(HMETAFILEPICT hmfp) 
{ 
    if (hmfp != NULL) 
        { 
        LPMETAFILEPICT pmfp = GlobalLock(hmfp); 
 
        DeleteMetaFile(pmfp->hMF); 
        GlobalUnlock(hmfp); 
        GlobalFree(hmfp); 
        } 
    else
        {
        // Handle null pointers here.
        exit(0);
        }
} 

Nota

El encabezado oledlg.h define OLEUIINSERTOBJECT como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

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 oledlg.h
Library OleDlg.lib
Archivo DLL OleDlg.dll

Consulte también

OLEUIINSERTOBJECT

OpenFile