Exemplo n.º 1
0
bool MkCheck::ExceptionForDebug(const wchar_t* expression, const wchar_t* message)
{
	MkStr msg;
	msg.Reserve(1024);
	msg += L"EXPRESSION : ";
	msg += expression;
	msg += L"\nMESSAGE : ";
	msg += message;

#if (MKDEF_CHECK_EXCEPTION_BREAK)
	int rlt = MessageBox(NULL, msg.GetPtr(), L"Oops!!! Break?", MB_YESNO);
	if (rlt == IDYES)
	{
		// break
		_CrtDbgBreak();
	}
	else if (rlt == IDNO)
#else
	int rlt = MessageBox(NULL, msg.GetPtr(), L"Oops!!!", MB_OK);
	if (rlt == IDOK)
#endif
	{
		// log 기록 후 진행
		MK_LOG_MGR.Msg(L"<Error> " + msg, true);
	}

	return true; // excute action
}
Exemplo n.º 2
0
HWND MkWebBrowser::Open(const MkStr& pageUrl, int posX, int posY, int width, int height)
{
	if (pageUrl.Empty())
		return NULL;

	HRESULT hr;
	IWebBrowser2* pWebBrowser = NULL;
	VARIANT vtHeader2 = {0};
	VARIANT vtTarget2 = {0};
	VARIANT vtEmpty2 = {0};

	vtHeader2.vt = VT_BSTR;
	vtHeader2.bstrVal = SysAllocString(L"Content-Type: application/x-www-form-urlencoded\r\n");

	vtTarget2.vt = VT_BSTR;
	vtTarget2.bstrVal = SysAllocString(L"_top");

	VariantInit(&vtEmpty2);

	CoInitialize(NULL);
	CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&pWebBrowser);

	pWebBrowser->put_Width((long)width);
	pWebBrowser->put_Height((long)height);
	pWebBrowser->put_Left((long)posX);
	pWebBrowser->put_Top((long)posY);
	pWebBrowser->put_MenuBar(VARIANT_FALSE);
	pWebBrowser->put_ToolBar(VARIANT_FALSE);
	pWebBrowser->put_AddressBar(VARIANT_FALSE);
	pWebBrowser->put_StatusBar(VARIANT_FALSE);

	BSTR cBuf = SysAllocString(pageUrl.GetPtr());
	hr = pWebBrowser->Navigate(cBuf, &vtEmpty2, &vtTarget2, &vtEmpty2, &vtHeader2);

	SysFreeString(cBuf);
	SysFreeString(vtHeader2.bstrVal);
	SysFreeString(vtTarget2.bstrVal);

	HWND exh = NULL;
	if (SUCCEEDED(hr))
	{
		pWebBrowser->put_Visible(VARIANT_TRUE);
		pWebBrowser->get_HWND((long*)&exh);
	}
	else
	{
		pWebBrowser->Quit();
	}

	pWebBrowser->Release();

	CoUninitialize();
	return exh;
}
Exemplo n.º 3
0
bool MkCheck::ExceptionForRelease(const char* function, long lineNum, const wchar_t* expression, const wchar_t* message)
{
	MkStr funcBuf;
	funcBuf.ImportMultiByteString(std::string(function));

	MkStr msg;
	msg.Reserve(1024);
	msg += L"FUNCTION : ";
	msg += funcBuf;
	msg += L" (";
	msg += MkStr(lineNum);
	msg += L")\nEXPRESSION : ";
	msg += expression;
	msg += L"\nMESSAGE : ";
	msg += message;

#if (MKDEF_CHECK_EXCEPTION_BREAK)
	int rlt = MessageBox(NULL, msg.GetPtr(), L"Oops!!! Break?", MB_YESNO);
	if (rlt == IDYES)
	{
		// crash log
		MK_LOG_MGR.CreateCrashPage(msg);

		// 강제예외
		throw;
	}
	else if (rlt == IDNO)
#else
	int rlt = MessageBox(NULL, msg.GetPtr(), L"Oops!!!", MB_OK);
	if (rlt == IDOK)
#endif
	{
		// log 기록 후 진행
		MK_LOG_MGR.Msg(L"<Error> " + msg, true);
	}
	
	return true; // excute action
}
Exemplo n.º 4
0
bool MkWebBrowser::Open(HWND parent, const MkStr& pageUrl, int posX, int posY, int width, int height, bool show)
{
	if ((m_Browser != NULL) || pageUrl.Empty())
		return false;

	CoInitialize(NULL);
	HRESULT hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&m_Browser);
	if (SUCCEEDED(hr) && (m_Browser != NULL))
	{
		m_Browser->put_Width((long)width);
		m_Browser->put_Height((long)height);
		m_Browser->put_Left((long)posX);
		m_Browser->put_Top((long)posY);
		m_Browser->put_MenuBar(VARIANT_FALSE);
		m_Browser->put_ToolBar(VARIANT_FALSE);
		m_Browser->put_AddressBar(VARIANT_FALSE);
		m_Browser->put_StatusBar(VARIANT_FALSE);

		BSTR cBuf = SysAllocString(pageUrl.GetPtr());

		VARIANT vtFlag2 = {0};
		vtFlag2.vt = VT_I4;
		vtFlag2.lVal = navNoHistory | navNoReadFromCache | navNoWriteToCache;

		VARIANT vtTarget2 = {0};
		vtTarget2.vt = VT_BSTR;
		vtTarget2.bstrVal = SysAllocString(L"_top");

		VARIANT vtEmpty2 = {0};
		VariantInit(&vtEmpty2);

		VARIANT vtHeader2 = {0};
		vtHeader2.vt = VT_BSTR;
		vtHeader2.bstrVal = SysAllocString(L"Content-Type: application/x-www-form-urlencoded\r\n");

		hr = m_Browser->Navigate(cBuf, &vtFlag2, &vtTarget2, &vtEmpty2, &vtHeader2);

		SysFreeString(cBuf);
		SysFreeString(vtHeader2.bstrVal);
		SysFreeString(vtTarget2.bstrVal);

		if (SUCCEEDED(hr))
		{
			m_Browser->put_Visible((show) ? VARIANT_TRUE : VARIANT_FALSE);
			m_Browser->get_HWND((long*)&m_hWnd);

			if (parent != NULL)
			{
				m_StyleBackup = static_cast<DWORD>(::GetWindowLongPtr(m_hWnd, GWL_STYLE));
				::SetWindowLongPtr(m_hWnd, GWL_STYLE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN);
				::SetWindowPos(m_hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_DRAWFRAME);
				::SetParent(m_hWnd, parent);
			}

			return true;
		}
		else
		{
			Close();
		}
	}
	return false;
}