Função OleFlushClipboard (ole2.h)

Executa a sequência de desligamento da área de transferência. Ele também libera o ponteiro IDataObject que foi colocado na área de transferência pela função OleSetClipboard .

Sintaxe

HRESULT OleFlushClipboard();

Retornar valor

Essa função retorna S_OK com êxito. Outros valores possíveis incluem o seguinte.

Código de retorno Descrição
CLIPBRD_E_CANT_OPEN
Falha na função OpenClipboard do Windows usada no OleFlushClipboard .
CLIPBRD_E_CANT_CLOSE
Falha na função CloseClipboard do Windows usada no OleFlushClipboard .

Comentários

OleFlushClipboard renderiza os dados de um objeto de dados na área de transferência e libera o ponteiro IDataObject para o objeto de dados. Enquanto o aplicativo que coloca o objeto de dados na área de transferência está em execução, a área de transferência contém apenas um ponteiro para o objeto de dados, salvando assim a memória. Se você estiver escrevendo um aplicativo que atua como a origem de uma operação de área de transferência, poderá chamar a função OleFlushClipboard quando seu aplicativo for fechado, como quando o usuário sair do aplicativo. Chamar OleFlushClipboard permite colar e colar a vinculação de objetos OLE após o desligamento do aplicativo.

Antes de chamar OleFlushClipboard, você pode determinar facilmente se os dados ainda estão na área de transferência com uma chamada para a função OleIsCurrentClipboard .

O oleFlushClipboard deixa todos os formatos oferecidos pelo objeto de transferência de dados, incluindo os formatos de compatibilidade OLE 1, na área de transferência para que fiquem disponíveis após o desligamento do aplicativo. Além dos formatos de compatibilidade do OLE 1, eles incluem todos os formatos oferecidos em um meio de identificador global (todos com exceção de TYMED_FILE) e formatados com um dispositivo de destino NULL . Por exemplo, se um aplicativo de fonte de dados oferecer um formato de área de transferência específico (digamos cfFOO) em um objeto IStorage e chamar a função OleFlushClipboard , o objeto de armazenamento será copiado na memória e o identificador de memória hglobal será colocado na área de transferência.

Para recuperar as informações na área de transferência, você pode chamar a função OleGetClipboard de outro aplicativo, que cria um objeto de dados padrão, e o hglobal da área de transferência novamente se torna um objeto de armazenamento. Além disso, o enumerador FORMATETC e o método IDataObject::QueryGetData indicam corretamente que o cfFOO (formato de área de transferência original) está novamente disponível em um TYMED_ISTORAGE.

Para esvaziar a área de transferência, chame a função OleSetClipboard especificando um valor NULL para seu parâmetro. O aplicativo deve chamar isso quando fechar se não houver necessidade de deixar dados na área de transferência após o desligamento ou se os dados serão colocados na área de transferência usando as funções padrão da área de transferência do Windows.

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 ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll
Conjunto de APIs ext-ms-win-com-ole32-l1-1-5 (introduzido em Windows 10, versão 10.0.15063)

Confira também

Idataobject

OleGetClipboard

OleIsCurrentClipboard

OleSetClipboard