Función OleCreate (ole2.h)

Crea un objeto incrustado identificado por un CLSID. Normalmente, se usa para implementar el elemento de menú que permite al usuario final insertar un nuevo objeto.

Sintaxis

HRESULT OleCreate(
  [in]  REFCLSID        rclsid,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Parámetros

[in] rclsid

CLSID del objeto incrustado que se va a crear.

[in] riid

Referencia al identificador de la interfaz, normalmente IID_IOleObject (definido en los encabezados OLE como identificador de interfaz para IOleObject), a través del cual el autor de la llamada se comunicará con el nuevo objeto.

[in] renderopt

Valor de la enumeración OLERENDER, que indica las funcionalidades de dibujo almacenadas en caché local que debe tener el objeto recién creado. El valor OLERENDER elegido afecta a los valores posibles para el parámetro pFormatEtc .

[in] pFormatEtc

Dependiendo de cuál de las marcas OLERENDER se use como valor de renderopt, puntero a uno de los valores de enumeración FORMATETC . Consulte la enumeración OLERENDER para ver las restricciones. Este parámetro, junto con el parámetro renderopt , especifica lo que el nuevo objeto puede almacenar en caché inicialmente.

[in] pClientSite

Si desea que OleCreate llame a IOleObject::SetClientSite, puntero a la interfaz IOleClientSite del contenedor. El valor puede ser NULL, en cuyo caso debe llamar específicamente a IOleObject::SetClientSite antes de intentar las operaciones.

[in] pStg

Puntero a una instancia de la interfaz IStorage en el objeto de almacenamiento. Este parámetro puede no ser NULL.

[out] ppvObj

Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid. Tras la devolución correcta, *ppvObject contiene el puntero de interfaz solicitado.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente y admite el valor devuelto estándar E_OUTOFMEMORY.

Código devuelto Descripción
E_OUTOFMEMORY
Memoria insuficiente para la operación.

Comentarios

La función OleCreate crea un nuevo objeto incrustado y se suele llamar a para implementar el elemento de menú Insertar nuevo objeto. Cuando OleCreate devuelve, el objeto que ha creado está en blanco (no contiene datos), a menos que renderopt se OLERENDER_DRAW o OLERENDER_FORMAT, y se cargue. Los contenedores suelen llamar a la función OleRun o A IOleObject::D oVerb para mostrar el objeto para la edición inicial.

El parámetro rclsid especifica el CLSID del objeto solicitado. Los CLSID de objetos registrados se almacenan en el registro del sistema. Cuando un usuario de la aplicación selecciona Insertar objeto, un cuadro de selección permite al usuario seleccionar el tipo de objeto deseado de los del Registro. Cuando OleCreate se usa para implementar el elemento de menú Insertar objeto, el CLSID asociado al elemento seleccionado se asigna al parámetro rclsid de OleCreate.

El parámetro riid especifica la interfaz que usará el cliente para comunicarse con el nuevo objeto. Tras la devolución correcta, el parámetro ppvObject contiene un puntero a la interfaz solicitada.

La memoria caché del objeto creado contiene información que permite una presentación de un objeto contenido cuando se abre el contenedor. La información sobre lo que se debe almacenar en caché se pasa en los valores renderopt y pFormatetc . Cuando Se devuelve OleCreate , la memoria caché del objeto creado no se rellena necesariamente. En su lugar, la memoria caché se rellena la primera vez que el objeto entra en estado de ejecución. El autor de la llamada puede agregar un control de caché adicional con una llamada a IOleCache::Cache después de la devolución de OleCreate y antes de que se ejecute el objeto. Si renderopt es OLERENDER_DRAW o OLERENDER_FORMAT, OleCreate requiere que el objeto admita la interfaz IOleCache . No hay ningún requisito de este tipo para cualquier otro valor de renderopt.

Si pClientSite no es NULL, OleCreate llama a IOleObject::SetClientSite a través del puntero pClientSite . IOleClientSite es la interfaz principal por la que un objeto solicita servicios de su contenedor. Si pClientSite es NULL, debe realizar una llamada específica a IOleObject::SetClientSite antes de intentar realizar ninguna operació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 ole2.h (incluya Ole2.h)
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

FORMATETC

IOleClientSite

IOleObject

OLERENDER