Como copiar programaticamente um elemento IMG para a área de transferência

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 293125
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo ilustra como copiar uma imagem em uma página da Web (um elemento IMG ) por meio de programação para a área de transferência.
Mais Informações
A melhor maneira de copiar uma imagem em uma página da Web para a área de transferência é usar o método execCommand do objeto controlRange . O código a seguir ilustra para fazer isso de dentro de script na página próprio (a identificação da imagem para ser copiado, concedida):
   function copyImage(sImgID)    {      var ctrlRange = document.body.createControlRange();      ctrlRange.add(document.all(sImgID));      ctrlRange.execCommand("Copy");   }				
In Microsoft Visual C++, essa chamada de método converte para IHTMLControlRange::execCommand . O código a seguir ilustra como implementar a mesma técnica no Visual C++ fornecido um ponteiro de IDispatch para o documento que contém a imagem e a identificação do elemento IMG empacotado em uma estrutura VARIANT (com um tipo VT_BSTR ):
   STDMETHODIMP CMyBrowser::CopyImage(LPDISPATCH pDispDoc, VARIANT vImageID)   {      HRESULT hr        = E_FAIL;      IHTMLDocument2* pDoc = NULL;      IHTMLElement* pelmBody = NULL;      IHTMLElement2* pelmBodyTwo = NULL;      IDispatch* pdispImgElement = NULL;      IDispatch* pdispCtrlRange = NULL;      IHTMLElementCollection* pColl = NULL;      IHTMLControlElement* pCtrlElement = NULL;      IHTMLControlRange* pCtrlRange = NULL;      BSTR bstrCommand = SysAllocString(L"Copy");      VARIANT_BOOL vbReturn;      VARIANT vEmpty;      VariantInit(&vEmpty);	      if (pDispDoc == NULL)         goto Cleanup;      if (FAILED(pDispDoc->QueryInterface(IID_IHTMLDocument2, (void**) &pDoc)))         goto Cleanup;      if (FAILED(pDoc->get_all(&pColl)))         goto Cleanup;      if (FAILED(pColl->item(vImageID, vEmpty, &pdispImgElement))             || pdispImgElement == NULL)	         goto Cleanup;	      if (FAILED(pDoc->get_body(&pelmBody)) || pelmBody == NULL)         goto Cleanup;	      if (FAILED(pelmBody->QueryInterface(IID_IHTMLElement2, (void**) &pelmBodyTwo))             || pelmBodyTwo == NULL)         goto Cleanup;	      if (FAILED(pelmBodyTwo->createControlRange(&pdispCtrlRange))             || pdispCtrlRange == NULL)         goto Cleanup;	      if (FAILED(pdispCtrlRange->QueryInterface(IID_IHTMLControlRange, (void**) &pCtrlRange))             || pCtrlRange == NULL)         goto Cleanup;      if (FAILED(pdispImgElement->QueryInterface(IID_IHTMLControlElement, (void**) &pCtrlElement))             || pCtrlElement == NULL)         goto Cleanup;	      hr = pCtrlRange->add(pCtrlElement);      if (SUCCEEDED(hr))         hr = pCtrlRange->execCommand(bstrCommand, VARIANT_FALSE, vEmpty, &vbReturn);	      pCtrlElement->Release();      hr = S_OK;   Cleanup:      SysFreeString(bstrCommand);      if (pCtrlRange)         pCtrlRange->Release();      if (pdispCtrlRange)         pdispCtrlRange->Release();	      if (pelmBodyTwo)         pelmBodyTwo->Release();      if (pelmBody)         pelmBody->Release();      if (pdispImgElement)         pdispImgElement->Release();      if (pColl)         pColl->Release();      if (pDispDoc)         pDispDoc->Release();      return hr;   }				
Referências
Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites:
Copiar Colar Recortar

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 293125 - Última Revisão: 12/06/2015 01:29:35 - Revisão: 3.0

Microsoft Internet Explorer 4.0 Edição de 128 Bits, Microsoft Internet Explorer 4.01 Service Pack 2, Microsoft Internet Explorer 4.01 Service Pack 1, Microsoft Internet Explorer 4.01 Service Pack 2, Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.01, Microsoft Internet Explorer (Programming) 5.01 SP1, Microsoft Internet Explorer 5.5, Microsoft Visual Studio 6.0 Enterprise Edition

  • kbnosurvey kbarchive kbmt kbcode kbdhtml kbhowto kbieobj KB293125 KbMtpt
Comentários