一个验证码图片 怎么粘贴到剪切板上呢
验证码html 如下<img src="/code/bin/verify/captcha.php" width="114" height="40" onClick='this.src="/code/bin/verify/captcha.php?n="+Math.random();' alt="一个验证码图片 如何粘贴到剪切板上呢">
他是没有名字的 我找到的验证码放到剪贴板上的代码是
IHTMLElementCollection *objAllElement=NULL;
IHTMLDocument2 *objDocument=NULL;
CComPtr <IDispatch> pDisp;
objDocument=(IHTMLDocument2 *)m_IE.get_Document();
objDocument->get_all(&objAllElement);
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);
IHTMLDocument2 *pDispDoc=NULL;
pDispDoc=(IHTMLDocument2 *)m_IE.get_Document();
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(COleVariant( _T("random_img")), COleVariant((long)0), &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 ( IsClipboardFormatAvailable(CF_BITMAP) )
{
HWND hwnd;
CRect rc;
if (OpenClipboard())
{
HBITMAP hbm = (HBITMAP)GetClipboardData(CF_BITMAP);
m_picture.SetBitmap(hbm);
m_picture.Invalidate();
CloseClipboard();
}
}