Método IRunnableObject::Run (objidl.h)
Fuerza la ejecución de un objeto.
Sintaxis
HRESULT Run(
[in] LPBINDCTX pbc
);
Parámetros
[in] pbc
Puntero al contexto de enlace de la operación de ejecución. Consulte IBindCtx. Este parámetro puede ser NULL.
Valor devuelto
Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_UNEXPECTED y S_OK.
Comentarios
Los contenedores llaman a IRunnableObject::Run para forzar que sus objetos entren en estado de ejecución. Si el objeto aún no se está ejecutando, llamar a Run puede ser una operación costosa, en el orden de muchos segundos. Si el objeto ya se está ejecutando, este método no tiene ningún efecto en el objeto .
Notas a los autores de llamadas
Cuando se llama a en un objeto vinculado que se ha convertido en una nueva clase desde que se activó por última vez el vínculo, IRunnableObject::Run puede devolver OLE_E_CLASSDIFF. En este caso, el cliente debe llamar a IOleLink::BindToSource.OleRun es una función auxiliar que vuelve a empaquetar convenientemente la funcionalidad que ofrece IRunnableObject::Run. Con la versión de OLE 2.01, se cambió la implementación de OleRun para que llame a QueryInterface, solicite IRunnableObject y, a continuación, llame a IRunnableObject::Run. En otras palabras, puede usar la interfaz y la función auxiliar indistintamente.
Notas para los implementadores
El objeto debe registrarse en la tabla de objetos en ejecución si tiene asignado un moniker. El objeto no debe contener ningún bloqueo fuerte en sí mismo; en su lugar, debe permanecer en estado inestable y desbloqueado. El objeto debe bloquearse cuando se realiza la primera conexión externa al objeto .Un objeto incrustado debe contener un bloqueo en su contenedor de inserción mientras está en estado de ejecución. El controlador predeterminado proporcionado por OLE 2 se encarga de bloquear el contenedor de inserción en nombre de los objetos implementados por una aplicación de objeto EXE. Los objetos implementados por una aplicación de objetos DLL deben colocar explícitamente un bloqueo en sus contenedores de inserción, lo que hacen llamando primero a IOleClientSite::GetContainer para obtener un puntero al contenedor y, a continuación, llamar a IOleContainer::LockContainer para colocar realmente el bloqueo. Este bloqueo debe liberarse cuando se llama a IOleObject::Close .
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 | objidl.h |