Função OleSetClipboard (ole2.h)
Coloca um ponteiro para um objeto de dados específico na área de transferência. Isso torna o objeto de dados acessível para a função OleGetClipboard .
Sintaxe
HRESULT OleSetClipboard(
[in] LPDATAOBJECT pDataObj
);
Parâmetros
[in] pDataObj
Ponteiro para a interface IDataObject no objeto de dados do qual os dados a serem colocados na área de transferência podem ser obtidos. Esse parâmetro pode ser NULL; nesse caso, a área de transferência é esvaziada.
Valor retornado
Essa função retorna S_OK em caso de êxito. Outros valores possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
Falha na função OpenClipboard usada no OleSetClipboard . |
|
Falha na função EmptyClipboard usada no OleSetClipboard . |
|
Falha na função CloseClipboard usada no OleSetClipboard . |
|
Falha na função SetClipboardData usada no OleSetClipboard . |
Comentários
Se você estiver escrevendo um aplicativo que possa atuar como a origem de uma operação de área de transferência, faça o seguinte:
- Crie um objeto de dados (no qual é a interface IDataObject ) para os dados que estão sendo copiados ou recortados para a área de transferência. Esse objeto deve ser o mesmo objeto usado em operações de arrastar e soltar OLE.
- Chame OleSetClipboard para colocar o ponteiro IDataObject na área de transferência, para que ele seja acessível para a função OleGetClipboard . OleSetClipboard também chama o método IUnknown::AddRef em seu objeto de dados.
- Se desejar, libere o objeto de dados depois de colocá-lo na área de transferência para liberar o contador IUnknown::AddRef em seu aplicativo.
- Se o usuário estiver cortando dados (excluindo-os do documento e colocando-os na área de transferência), remova os dados do documento.
A função OleSetClipboard atribui a propriedade da área de transferência a um identificador de janela OLE interno. A contagem de referência do objeto de dados é aumentada em 1, para habilitar a renderização atrasada. A contagem de referência é reduzida por uma chamada para a função OleFlushClipboard ou por uma chamada subsequente para OleSetClipboard especificando NULL como o valor do parâmetro (que limpa a área de transferência).
Quando um aplicativo abre a área de transferência (direta ou indiretamente chamando a função OpenClipboard ), a área de transferência não pode ser usada por nenhum outro aplicativo até que seja fechada. Se a área de transferência estiver aberta por outro aplicativo, o OleSetClipboard falhará. O identificador de janela OLE interno satisfaz WM_RENDERFORMAT mensagens delegando-as à implementação IDataObject no objeto de dados que está na área de transferência.
Especificar NULL como o valor do parâmetro para OleSetClipboard esvazia a área de transferência atual. Se o conteúdo da área de transferência for o resultado de uma chamada OleSetClipboard anterior e a área de transferência tiver sido liberada, o ponteiro IDataObject que foi passado para a chamada anterior será liberado. O proprietário da área de transferência deve usar isso como um sinal de que os dados oferecidos anteriormente não estão mais na área de transferência.
Se você precisar deixar os dados na área de transferência depois que o aplicativo for fechado, chame OleFlushClipboard em vez de chamar OleSetClipboard com um valor de parâmetro NULL .
Requisitos
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 no Windows 10, versão 10.0.15063) |