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 |
---|---|
|
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 |