웹, HTML
IWebBrowser2 를 이용해서 웹브라우저 원하는 위치에 띄우기 Tools와 Tips
디버그정
2008. 8. 14. 16:32
|
BOOL OpenNewWindowEx(LPCTSTR pAddress, BOOL bMenu, BOOL bToolBar,
BOOL bAddressBar, BOOL bStatusBar, BOOL bResize,
int x, int y, int cx, int cy)
{
CoInitialize(NULL);
IWebBrowser2 *pWebBrowser;
HRESULT hr;
// 웹브라우저 객체를 생성한다.
hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pWebBrowser);
if(FAILED(hr) || pWebBrowser == NULL) return FALSE;
// 메뉴바를 출력할지 설정한다
pWebBrowser->put_MenuBar(bMenu ? VARIANT_TRUE : VARIANT_FALSE);
// 툴바를 출력할지 설정한다
pWebBrowser->put_ToolBar(bToolBar ? VARIANT_TRUE : VARIANT_FALSE);
// 주소창을 출력할지 설정한다
pWebBrowser->put_AddressBar(bAddressBar ? VARIANT_TRUE : VARIANT_FALSE);
// 상태바를 출력할지 설정한다
pWebBrowser->put_StatusBar(bStatusBar ? VARIANT_TRUE : VARIANT_FALSE);
// 크기 조절을 가능하게 할지 설정한다
pWebBrowser->put_Resizable(bResize ? VARIANT_TRUE : VARIANT_FALSE);
// 웹브라우저의 위치와 크기를 설정한다
if(x >= 0) pWebBrowser->put_Left(x);
if(y >= 0) pWebBrowser->put_Top(y);
if(cx >= 0) pWebBrowser->put_Width(cx);
if(cy >= 0) pWebBrowser->put_Height(cy);
CString strAddress = pAddress;
// Navigate()에 필요한 인자들을 초기화한다
VARIANT vtFlags, vtTarget, vtPostData, vtHeader;
::VariantInit(&vtFlags);
::VariantInit(&vtTarget);
::VariantInit(&vtPostData);
::VariantInit(&vtHeader);
// 웹브라우저를 화면에 보이게 한다
pWebBrowser->put_Visible(VARIANT_TRUE);
// 사이트를 연다
hr = pWebBrowser->Navigate(strAddress.AllocSysString(), &vtFlags, &vtTarget,
&vtPostData, &vtHeader);
if(FAILED(hr)) return FALSE;
// 웹브라우저 인터페이스의 참조 횟수를 줄인다
pWebBrowser->Release();
CoUninitialize();
return SUCCEEDED(hr);
}
BOOL bAddressBar, BOOL bStatusBar, BOOL bResize,
int x, int y, int cx, int cy)
{
CoInitialize(NULL);
IWebBrowser2 *pWebBrowser;
HRESULT hr;
// 웹브라우저 객체를 생성한다.
hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pWebBrowser);
if(FAILED(hr) || pWebBrowser == NULL) return FALSE;
// 메뉴바를 출력할지 설정한다
pWebBrowser->put_MenuBar(bMenu ? VARIANT_TRUE : VARIANT_FALSE);
// 툴바를 출력할지 설정한다
pWebBrowser->put_ToolBar(bToolBar ? VARIANT_TRUE : VARIANT_FALSE);
// 주소창을 출력할지 설정한다
pWebBrowser->put_AddressBar(bAddressBar ? VARIANT_TRUE : VARIANT_FALSE);
// 상태바를 출력할지 설정한다
pWebBrowser->put_StatusBar(bStatusBar ? VARIANT_TRUE : VARIANT_FALSE);
// 크기 조절을 가능하게 할지 설정한다
pWebBrowser->put_Resizable(bResize ? VARIANT_TRUE : VARIANT_FALSE);
// 웹브라우저의 위치와 크기를 설정한다
if(x >= 0) pWebBrowser->put_Left(x);
if(y >= 0) pWebBrowser->put_Top(y);
if(cx >= 0) pWebBrowser->put_Width(cx);
if(cy >= 0) pWebBrowser->put_Height(cy);
CString strAddress = pAddress;
// Navigate()에 필요한 인자들을 초기화한다
VARIANT vtFlags, vtTarget, vtPostData, vtHeader;
::VariantInit(&vtFlags);
::VariantInit(&vtTarget);
::VariantInit(&vtPostData);
::VariantInit(&vtHeader);
// 웹브라우저를 화면에 보이게 한다
pWebBrowser->put_Visible(VARIANT_TRUE);
// 사이트를 연다
hr = pWebBrowser->Navigate(strAddress.AllocSysString(), &vtFlags, &vtTarget,
&vtPostData, &vtHeader);
if(FAILED(hr)) return FALSE;
// 웹브라우저 인터페이스의 참조 횟수를 줄인다
pWebBrowser->Release();
CoUninitialize();
return SUCCEEDED(hr);
}
[출처] IWebBrowser2 를 이용해서 웹브라우저 원하는 위치에 띄우기 |작성자 곤