Función OleInitialize (ole2.h)

Inicializa la biblioteca COM en el apartamento actual, identifica el modelo de simultaneidad como un solo subproceso (STA) y habilita la funcionalidad adicional descrita en la sección Comentarios a continuación. Las aplicaciones deben inicializar la biblioteca COM para poder llamar a funciones de biblioteca COM distintas de CoGetMalloc y funciones de asignación de memoria.

Sintaxis

HRESULT OleInitialize(
  [in] LPVOID pvReserved
);

Parámetros

[in] pvReserved

Este parámetro está reservado y debe ser NULL.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente. Otros valores posibles incluyen lo siguiente.

Código devuelto Descripción
S_FALSE
La biblioteca COM ya está inicializada en este apartamento.
OLE_E_WRONGCOMPOBJ
Las versiones de COMPOBJ.DLL y de OLE2.DLL en su equipo son incompatibles entre sí.
RPC_E_CHANGED_MODE
Una llamada anterior a CoInitializeEx especificó el modelo de simultaneidad para este apartamento como apartamento multiproceso (MTA). Esto también podría significar que se produjo un cambio de un apartamento de subproceso neutro a un solo apartamento subproceso.

Comentarios

Las aplicaciones que usan la siguiente funcionalidad deben llamar a OleInitialize antes de llamar a cualquier otra función de la biblioteca COM:

  • Portapapeles
  • Arrastrar y colocar
  • Vinculación e inserción de objetos (OLE)
  • Activación local
OleInitialize llama a CoInitializeEx internamente para inicializar la biblioteca COM en el apartamento actual. Dado que las operaciones OLE no son seguras para subprocesos, OleInitialize especifica el modelo de simultaneidad como apartamento de un solo subproceso.

Una vez establecido el modelo de simultaneidad de un apartamento, no se puede cambiar. Se producirá un error en una llamada a OleInitialize en un apartamento que se inicializó previamente como multiproceso y devolverá RPC_E_CHANGED_MODE.

Debe inicializar la biblioteca COM en un apartamento antes de llamar a cualquiera de las funciones de biblioteca excepto CoGetMalloc, para obtener un puntero al asignador estándar y las funciones de asignación de memoria.

Normalmente, la biblioteca COM se inicializa en un apartamento solo una vez. Las llamadas posteriores se realizarán correctamente, siempre y cuando no intenten cambiar el modelo de simultaneidad del apartamento, pero devolverán S_FALSE. Para cerrar correctamente la biblioteca COM, cada llamada correcta a OleInitialize, incluidas las que devuelven S_FALSE, debe equilibrarse mediante una llamada correspondiente a OleUninitialize.

Dado que no hay ninguna manera de controlar el orden en el que los servidores en proceso se cargan o descargan, no llame a OleInitialize ni OleUninitialize desde la función DllMain .

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
Conjunto de API ext-ms-win-com-ole32-l1-1-0 (introducido en Windows 8)

Consulte también

CoInitializeEx

OleInitialize

OleUninitialize