STDMETHODIMP
Cieambulant::SetClientSite(LPOLECLIENTSITE pSite) {
	HRESULT hr = CComControlBase::IOleObject_SetClientSite(pSite);
	if (hr != S_OK)
		return hr;
	if (pSite) {
		s_ref_count++;
		if (s_ref_count == 1)
			s_site = pSite;
	} else {
		if (s_ref_count > 0)
			s_ref_count--;
		if (s_ref_count == 0) {
			// clear all statics
			s_site = NULL;
		}
	}
	m_site = pSite;
//	if(pSite && !m_pFont)
//		hr = GetAmbientFontDisp(&m_pFont);
	GetAmbientBackColor(m_clrBackColor);
	GetAmbientForeColor(m_clrForeColor);
	//XXX std::ostream sos = new std::ostream(std::cout);
	//XXX ambulant::lib::logger::get_logger()->set_std_ostream(sos);
//	static std::ofstream log_os("C:\\Documents and Settings\\kees.AMBULANT-DEV\\My Documents\\Ambulant\\ambulant\\src\\ieambulant\\amlog.txt");
//	ambulant::lib::logger::get_logger()->set_std_ostream(log_os);
//	s_hook = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, NULL, GetCurrentThreadId());
	return hr;
}
Пример #2
0
STDMETHODIMP CMainWindow::SetClientSite(LPOLECLIENTSITE pSite)
{
    HRESULT hr = CComControlBase::IOleObject_SetClientSite(pSite);
    if(!m_pFont && pSite)
    {
        hr = GetAmbientFontDisp(&m_pFont);
    }
    GetAmbientBackColor(m_clrBackColor);
    GetAmbientForeColor(m_clrForeColor);
    return S_OK;
}