HOWTO: Connecting to a Running Instance of Internet Explorer


1. project에 이 화일들을 import 시킴니다.

#import <mshtml.dll> // Internet Explorer 4.0x
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>


2. 클래스 내 함수든지 아님 헤더파일 선언에서 멤버 변수로 하던지
   해보세요!
    SHDocVw::IShellWindowsPtr m_spSHWinds;

3. ShellWindows의 object를 생성합니다.
   이렇게요....
   m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));

4. 마지막으로 원하시는 데로  변경 시키면 됩니다.
   저는 이렇게 변경해서 아주 유용하게 썼습니다.

   // 현재 떠 있는 익스플로러의 숫자
   long nCount = m_spSHWinds->GetCount();
    
   IDispatchPtr spDisp;

   for (long i = 0; i <nCount; i++)
   {
      _variant_t va(i, VT_I4);
      spDisp = m_spSHWinds->Item(va);

      SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
      if (spBrowser != NULL)
      {
        // 얻어온 익스플로러의 url    
        _bstr_t bszLocationName = spBrowser->GetLocationURL();
        // 원하시는 대로 출력하시고요...
    
        중략

         MSHTML::IHTMLDocument2Ptr spDoc(spBrowser->GetDocument());
         if (spDoc != NULL)
         {
            // 익스플로러의 html의 타이틀 얻어옴!
             _bstr_t bszTitle = spDoc->Gettitle();

     }
      }
   }

'KB > MFC/Win32' 카테고리의 다른 글

전역 핫키 설정하기  (0) 2004.03.19
인터넷 되는지 확인하는 코드  (0) 2004.03.19
UNICODE와 CString  (0) 2004.03.19
MSDN Unicode 관련 설명 해석  (0) 2004.03.19
유니코드 텍스트 파일 안의 2바이트 시그니처  (0) 2004.03.19

+ Recent posts