Método IRunnableObject::Run (objidl.h)

Força um objeto a ser executado.

Sintaxe

HRESULT Run(
  [in] LPBINDCTX pbc
);

Parâmetros

[in] pbc

Um ponteiro para o contexto de associação da operação de execução. Consulte IBindCtx. Este parâmetro pode ser NULL.

Retornar valor

Esse método pode retornar os valores de retorno padrão E_INVALIDARG, E_UNEXPECTED e S_OK.

Comentários

Os contêineres chamam IRunnableObject::Run para forçar seus objetos a entrar no estado em execução. Se o objeto ainda não estiver em execução, chamar Executar poderá ser uma operação cara, na ordem de muitos segundos. Se o objeto já estiver em execução, esse método não terá efeito sobre o objeto .

Anotações para chamadores

Quando chamado em um objeto vinculado que foi convertido em uma nova classe desde que o link foi ativado pela última vez, IRunnableObject::Run pode retornar OLE_E_CLASSDIFF. Nesse caso, o cliente deve chamar IOleLink::BindToSource.

OleRun é uma função auxiliar que convenientemente reempacota a funcionalidade oferecida por IRunnableObject::Run. Com o lançamento do OLE 2.01, a implementação do OleRun foi alterada para que ele chame QueryInterface, solicite IRunnableObject e chame IRunnableObject::Run. Em outras palavras, você pode usar a interface e a função auxiliar intercambiável.

Anotações aos implementadores

O objeto deverá ser registrado na tabela de objetos em execução se tiver um moniker atribuído. O objeto não deve conter bloqueios fortes em si mesmo; em vez disso, ele deve permanecer no estado instável e desbloqueado. O objeto deve ser bloqueado quando a primeira conexão externa é feita com o objeto .

Um objeto inserido deve manter um bloqueio em seu contêiner de inserção enquanto ele estiver no estado em execução. O manipulador padrão fornecido pelo OLE 2 cuida do bloqueio do contêiner de inserção em nome de objetos implementados por um aplicativo de objeto EXE. Os objetos implementados por um aplicativo de objeto DLL devem explicitamente colocar um bloqueio em seus contêineres de inserção, o que eles fazem primeiro chamando IOleClientSite::GetContainer para obter um ponteiro para o contêiner e, em seguida, chamar IOleContainer::LockContainer para realmente colocar o bloqueio. Esse bloqueio deve ser liberado quando IOleObject::Close é chamado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h

Confira também

Irunnableobject

Olerun