Partilhar via


Classe COleDataObject

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Usado em transferências de dados para recuperar dados em vários formatos a partir da Área de Transferência, através de arrastar e largar, ou de um item OLE incorporado.

Sintaxe

class COleDataObject

Membros

Construtores Públicos

Nome Description
COleDataObject::COleDataObject Constrói um COleDataObject objeto.

Métodos Públicos

Nome Description
COleDataObject::Anexar Anexa o objeto de dados OLE especificado ao COleDataObject.
COleDataObject::AttachClipboard Anexa o objeto de dados que está na Área de Transferência.
COleDataObject::BeginEnumFormats Prepara-se para uma ou mais chamadas subsequentes GetNextFormat .
COleDataObject::D etach Destaca o objeto associado IDataObject .
COleDataObject::GetData Copia dados do objeto de dados OLE anexado num formato especificado.
COleDataObject::GetFileData Copia dados do objeto de dados OLE anexo para um CFile ponteiro no formato especificado.
COleDataObject::GetGlobalData Copia dados do objeto de dados OLE anexado para um HGLOBAL no formato especificado.
COleDataObject::GetNextFormat Retorna o próximo formato de dados disponível.
COleDataObject::IsDataAvailable Verifica se os dados estão disponíveis num formato especificado.
COleDataObject::Release Destaca e liberta o objeto associado IDataObject .

Observações

COleDataObject não tem uma classe base.

Este tipo de transferências de dados inclui uma origem e um destino. A fonte de dados é implementada como um objeto da classe COleDataSource . Sempre que uma aplicação de destino tem dados dropados ou é solicitada a realizar uma operação de colagem a partir da Área de Transferências, deve ser criado um objeto da COleDataObject classe.

Esta classe permite-lhe determinar se os dados existem num formato especificado. Também pode enumerar os formatos de dados disponíveis ou verificar se um determinado formato está disponível e depois recuperar os dados no formato preferido. A recuperação de objetos pode ser realizada de várias formas diferentes, incluindo a utilização de um CFile, um HGLOBAL ou uma STGMEDIUM estrutura.

Para mais informações, consulte a estrutura STGMEDIUM no SDK do Windows.

Para mais informações sobre o uso de objetos de dados na sua aplicação, consulte o artigo Objetos de Dados e Fontes de Dados (OLE).

Hierarquia de herança

COleDataObject

Requerimentos

Cabeçalho: afxole.h

COleDataObject::Anexar

Chame esta função para associar o COleDataObject objeto a um objeto de dados OLE.

void Attach(
    LPDATAOBJECT lpDataObject,
    BOOL bAutoRelease = TRUE);

Parâmetros

lpDataObject
Aponta para um objeto de dados OLE.

bAutoRelease
TRUE se o objeto de dados OLE deve ser libertado quando o COleDataObject objeto for destruído; caso contrário, FALSE.

Observações

Para mais informações, consulte IDataObject no SDK do Windows.

COleDataObject::AttachClipboard

Chame esta função para anexar o objeto de dados que está atualmente na Área de Transferência ao COleDataObject objeto.

BOOL AttachClipboard();

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Observação

Chamar esta função bloqueia a Área de Transferência até que este objeto de dados seja libertado. O objeto de dados é libertado no destrutor para o COleDataObject. Para mais informações, consulte OpenClipboard e CloseClipboard na documentação do Win32.

COleDataObject::BeginEnumFormats

Chame esta função para se preparar para chamadas subsequentes para GetNextFormat recuperar uma lista de formatos de dados do item.

void BeginEnumFormats();

Observações

Após uma chamada para BeginEnumFormats, é armazenada a posição do primeiro formato suportado por este objeto de dados. Chamadas sucessivas a GetNextFormat enumerarão a lista de formatos disponíveis no objeto de dados.

Para verificar a disponibilidade de dados num dado formato, use COleDataObject::IsDataAvailable.

Para mais informações, consulte IDataObject::EnumFormatEtc no SDK do Windows.

COleDataObject::COleDataObject

Constrói um COleDataObject objeto.

COleDataObject();

Observações

Deve ser feita uma chamada para COleDataObject::Attach ou COleDataObject::AttachClipboard antes de chamar outras COleDataObject funções.

Observação

Como um dos parâmetros dos handlers de arrastar e largar é um apontador para um COleDataObject, não é necessário chamar este construtor para suportar arrastar e largar.

COleDataObject::D etach

Chame esta função para separar o COleDataObject objeto do objeto de dados OLE associado sem libertar o objeto de dados.

LPDATAOBJECT Detach();

Valor de retorno

Um apontador para o objeto de dados OLE que foi destacado.

Observações

COleDataObject::GetData

Chame esta função para recuperar dados do item no formato especificado.

BOOL GetData(
    CLIPFORMAT cfFormat,
    LPSTGMEDIUM lpStgMedium,
    LPFORMATETC lpFormatEtc = NULL);

Parâmetros

cfFormat
O formato em que os dados devem ser devolvidos. Este parâmetro pode ser um dos formatos pré-definidos do Clipboard ou o valor devolvido pela função nativa Windows RegisterClipboardFormat .

lpStgMedium
Aponta para uma estrutura STGMEDIUM que irá receber dados.

lpFormatEtc
Aponta para uma estrutura FORMATETC que descreve o formato em que os dados devem ser devolvidos. Forneça um valor para este parâmetro se quiser especificar informação adicional de formato para além do formato Clipboard especificado pelo cfFormat. Se for NULL, os valores padrão são usados para os outros campos da FORMATETC estrutura.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Para mais informações, consulte IDataObject::GetData, STGMEDIUM e FORMATETC no SDK do Windows.

Para mais informações, consulte RegisterClipboardFormat no SDK do Windows.

COleDataObject::GetFileData

Chame esta função para criar um CFile objeto ou CFilederivado de um e para recuperar dados no formato especificado para um CFile ponteiro.

CFile* GetFileData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parâmetros

cfFormat
O formato em que os dados devem ser devolvidos. Este parâmetro pode ser um dos formatos pré-definidos do Clipboard ou o valor devolvido pela função nativa Windows RegisterClipboardFormat .

lpFormatEtc
Aponta para uma estrutura FORMATETC que descreve o formato em que os dados devem ser devolvidos. Forneça um valor para este parâmetro se quiser especificar informação adicional de formato para além do formato Clipboard especificado pelo cfFormat. Se for NULL, os valores padrão são usados para os outros campos da FORMATETC estrutura.

Valor de retorno

Apontar para o novo CFile ou CFileobjeto derivado que contém os dados se for bem-sucedido; caso contrário, NULL.

Observações

Dependendo do meio onde os dados são armazenados, o tipo real apontado pelo valor de retorno pode ser CFile, CSharedFile, ou COleStreamFile.

Observação

O CFile objeto acedido pelo valor de retorno desta função pertence ao chamador. É responsabilidade do chamador do deleteCFile objeto, encerrando assim o ficheiro.

Para mais informações, consulte FORMATETC no SDK do Windows.

Para mais informações, consulte RegisterClipboardFormat no SDK do Windows.

COleDataObject::GetGlobalData

Chame esta função para alocar um bloco de memória global e recuperar dados no formato especificado para um HGLOBAL.

HGLOBAL GetGlobalData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parâmetros

cfFormat
O formato em que os dados devem ser devolvidos. Este parâmetro pode ser um dos formatos pré-definidos do Clipboard ou o valor devolvido pela função nativa Windows RegisterClipboardFormat .

lpFormatEtc
Aponta para uma estrutura FORMATETC que descreve o formato em que os dados devem ser devolvidos. Forneça um valor para este parâmetro se quiser especificar informação adicional de formato para além do formato Clipboard especificado pelo cfFormat. Se for NULL, os valores padrão são usados para os outros campos da FORMATETC estrutura.

Valor de retorno

A alavanca do bloco de memória global que contém os dados se for bem-sucedida; caso contrário, NULL.

Observações

Para mais informações, consulte FORMATETC no SDK do Windows.

Para mais informações, consulte RegisterClipboardFormat no SDK do Windows.

COleDataObject::GetNextFormat

Chame esta função repetidamente para obter todos os formatos disponíveis para recuperar dados do item.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parâmetros

lpFormatEtc
Aponta para a estrutura FORMATETC que recebe a informação de formato quando a chamada de função retorna.

Valor de retorno

Não nulo se houver outro formato disponível; caso contrário, 0.

Observações

Após uma chamada para o COleDataObject::BeginEnumFormats, a posição do primeiro formato suportado por este objeto de dados é armazenada. Chamadas sucessivas a GetNextFormat enumerarão a lista de formatos disponíveis no objeto de dados. Use estas funções para listar os formatos disponíveis.

Para verificar a disponibilidade de um dado formato, ligue para COleDataObject::IsDataAvailable.

Para mais informações, consulte IEnumXXXX::Next no SDK do Windows.

COleDataObject::IsDataAvailable

Chame esta função para determinar se existe um determinado formato disponível para recuperar dados do item OLE.

BOOL IsDataAvailable(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parâmetros

cfFormat
O formato de dados Clipboard a ser usado na estrutura apontada por lpFormatEtc. Este parâmetro pode ser um dos formatos pré-definidos do Clipboard ou o valor devolvido pela função nativa Windows RegisterClipboardFormat .

lpFormatEtc
Aponta para uma estrutura FORMATETC que descreve o formato desejado. Forneça um valor para este parâmetro apenas se quiser especificar informação adicional de formato para além do formato Clipboard especificado pelo cfFormat. Se for NULL, os valores padrão são usados para os outros campos da FORMATETC estrutura.

Valor de retorno

Não nulo se os dados estiverem disponíveis no formato especificado; caso contrário, 0.

Observações

Esta função é útil antes de chamar GetData, GetFileData, ou GetGlobalData.

Para mais informações, consulte IDataObject::QueryGetData e FORMATETC no SDK do Windows.

Para mais informações, consulte RegisterClipboardFormat no SDK do Windows.

Example

Veja o exemplo para CRichEditView::QueryAcceptData.

COleDataObject::Release

Chame esta função para libertar a propriedade do objeto IDataObject que estava anteriormente associado ao COleDataObject objeto.

void Release();

Observações

O IDataObject estava associado ao COleDataObject por chamada Attach ou AttachClipboard explicitamente ou pelo framework. Se o parâmetro bAutoRelease de Attach for FALSE, o IDataObject objeto não será libertado. Neste caso, o interlocutor é responsável por libertar o IDataObject ao chamar IUnknown::Release.

Consulte também

Exemplo MFC HIERSVR
Exemplo MFC OCLIENT
Gráfico de Hierarquia
COleDataSource Classe
COleClientItem Classe
COleServerItem Classe