마우스가 위치한 곳의 IHTMLDocument2의 주소와 태그를 얻기
[출처] http://blog.naver.com/PostView.nhn?blogId=kkt3212&logNo=100052743914&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView
마우스가 위치한 곳의 IHTMLDocument2의 주소와 태그를 얻기
#include <Oleacc.h>
#include <atlbase.h>
#include <comdef.h>
#include <mshtmlc.h>
#include <shellapi.h>
#import <shdocvw.dll>
#pragma comment(lib,_T("Oleacc.lib"))
#define _rel(pInterface) if(pInterface) { pInterface->Release(); pInterface=NULL;}
void CUrlFromPointDlg::OnButton1()
{
Sleep(3000);
CoInitialize(NULL);
POINT ptScreen;
::GetCursorPos(&ptScreen);
IAccessible * pAccess=0;
VARIANT var;
HRESULT hr = AccessibleObjectFromPoint(ptScreen, &pAccess, &var) ;
if( FAILED(hr))
{
AfxMessageBox("AccessibleObjectFromPoint FAIL");
return ;
}
IServiceProvider *pSP=0;
hr = pAccess->QueryInterface(IID_IServiceProvider, (void **)&pSP);
if(hr==S_OK && pSP)
{
IHTMLElement * pElement = 0;
hr = pSP->QueryService(IID_IHTMLElement, IID_IHTMLElement, (void **)&pElement);
if (SUCCEEDED(hr))
{
CString sFrameUrl = "프레임 주소 :";
CComPtr<IDispatch> pDisp;
pElement->get_document(&pDisp);
if(pDisp)
{
CComQIPtr<IHTMLDocument2> pDoc2 = pDisp;
if(pDoc2)
{
CComBSTR bsUrl;
pDoc2->get_URL(&bsUrl);
CString sUrl(bsUrl);
sFrameUrl += sUrl;
}
}
CComQIPtr<IHTMLElement> pElemPare ;
pElement->get_parentElement(&pElemPare);
CComBSTR bstr;
if(pElemPare)
{
pElemPare->get_outerHTML(&bstr);
}else
{
pElement->get_outerHTML(&bstr);
}
CString sTag(bstr);
CString sLink = "태그 :";
sLink += sTag;
AfxMessageBox(sFrameUrl + "\n\n" + sLink);
}
_rel(pElement)
}
_rel(pSP);
_rel(pAccess);
VariantClear (&var);
}
'IT-개발,DB' 카테고리의 다른 글
[IT/개발] Technical Career Path를 보장하는 방법 (0) | 2012.08.30 |
---|---|
[개발/IE] 인터넷 익스플로러 새 탭 페이지 설정하는 방법 (0) | 2012.07.31 |
[개발/MFC] 마우스가 위치한 곳의 정확한 단어를 얻기 (0) | 2012.07.22 |
[개발/MFC] 실행중인 프로세스 강제 종료시키기 (0) | 2012.07.16 |
[개발/VC++] 탭 브라우저 윈도우 핸들 구하기 (0) | 2012.07.16 |
댓글