2014년 10월 27일 월요일

IWebBrowser2를 이용해서 브라우저를 띄울 때, 브라우저를 다르게 해보자.

우선 IWebBrowser2를 선언. 그 외 변수들 선언

IWebBrowser2* pWebBrowser = NULL;
BSTR bstrURL = NULL;
BSTR bstrHeader = NULL;
VARIANT vtPostData = {0};
VARIANT vtEmpty;
VARIANT vtHeader;

bstrURL하고, bstrHeader는 필요한 값으로 채우고...(Navigate 할 때 필요)

그 다음 생성.

        hr = ::CoCreateInstance( __uuidof(InternetExplorer), NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
                               __uuidof(IWebBrowser2), reinterpret_cast<LPVOID *>(&pWebBrowser) );

띄울 웹 브라우저의 크기를 설정

  pWebBrowser->put_Left(200);
  pWebBrowser->put_Top(300);
  pWebBrowser->put_Width(578);
  pWebBrowser->put_Height(298);

다른 값들도 설정 혹은 디폴트로 놓고 사용.

        VariantInit( &vtEmpty );
        VariantInit( &vtPostData );
        VariantInit( &vtHeader );

        V_VT( &vtHeader ) = VT_BSTR;
        V_BSTR( &vtHeader ) = bstrHeader;

그 다음 브라우저에서 필요없는 것들 삭제.

   pWebBrowser->put_ToolBar(VARIANT_FALSE); // 익스플로어 툴바 없앰
   pWebBrowser->put_MenuBar(VARIANT_FALSE); // 메뉴바 없앰
   pWebBrowser->put_AddressBar(VARIANT_FALSE); // 주소창 없앰
   pWebBrowser->put_StatusBar(VARIANT_FALSE); // 상태바 없앰
   pWebBrowser->put_Resizable(VARIANT_FALSE); //리사이즈 불가

   pWebBrowser->put_Visible ( (VARIANT_BOOL) TRUE );

이렇게 하고 Navigate

hr = pWebBrowser->Navigate( bstrURL, &vtEmpty, &vtEmpty, &vtPostData, &vtHeader );

위 처럼 하면 툴바도 없고, 메뉴바도 없고, 주소창도 없고, 상태바도 없고, 리사이즈도 않되는 브라우저가 뜬다.

마지막으로...

 HWND hIE;
 hr=pWebBrowser->get_HWND((long *)&hIE);
 ::SetWindowPos(hIE, HWND_TOPMOST, 0, 0,0 ,0 , SWP_NOMOVE | SWP_NOSIZE);

위 코드는 방금 전에 띄운 브라우저를 최상단에 띄우게 하는 코드이다.

댓글 없음: