LRESULT CViewHexEdit::OnWmCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ 
    uMsg, wParam, lParam, bHandled; 
	HRESULT hr = E_FAIL;

    CREATESTRUCT * pCreateStruct = reinterpret_cast<CREATESTRUCT *>(lParam); 

    LRESULT lRet = S_OK; 
    lRet = DefWindowProc(uMsg, wParam, lParam); 

    { 
        CComPtr<IUnknown> punkCtrl; 
        CComVariant v; 

        OLECHAR szGUID[MAX_PATH] = { 0 }; 
        StringFromGUID2(__uuidof(HexEditor::HexEdit), szGUID, ARR_SIZE(szGUID)); 

        // Create the AX host window. And Create the HexEdit control using its GUID. 
        HWND hHost = m_wndAxHost.Create ( m_hWnd, rcDefault, szGUID, WS_CHILD | WS_VISIBLE , 
            0, ID_DISPATCH_HEXEDIT ); 

		hr = m_wndAxHost.QueryControl(&m_spHexEdit);
		ATLASSERT( SUCCEEDED(hr) );

        // Begin sinking events 
        AtlAdviseSinkMap ( this, true ); 
    } 

    bHandled = FALSE; 

    return lRet; 
} 
Пример #2
0
LRESULT CMiniPieFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	CAppInfo info;

	// Full screen mode delayed restoration 
	bool bFull = false;
	info.Restore(bFull, L"Full");
	if (bFull)
		PostMessage(WM_COMMAND, ID_VIEW_FULLSCREEN);

	CreateSimpleCEMenuBar();
#ifdef WIN32_PLATFORM_WFSP // SmartPhone
	AtlActivateBackKey(m_hWndCECommandBar);
#endif 
	UIAddToolBar(m_hWndCECommandBar);
	SetCommandButton(ID_APP_EXIT);

	// StatusBar state restoration 
	bool bVisible = true;
	info.Restore(bVisible, L"Status");
	DWORD dwStyle = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | CCS_TOP;
	if (bVisible)
		dwStyle |= WS_VISIBLE;

	// StatusBar creation 
	CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, dwStyle);
	UIAddStatusBar(m_hWndStatusBar);
	UISetCheck(ID_VIEW_STATUS_BAR, bVisible);

	// Browser view creation
	m_hWndClient = m_browser.Create(m_hWnd, NULL, _T("Microsoft.PIEDocView"),
                     WS_CHILD | WS_VISIBLE | WS_BORDER, 0, ID_BROWSER);

    ATLVERIFY(SUCCEEDED(m_browser.QueryControl(&m_spIWebBrowser2)));
    ATLVERIFY(SUCCEEDED(AtlAdviseSinkMap(this, true)));

	// Navigation menu initialization
	UIEnable(IDM_BACK, FALSE);
	UIEnable(IDM_FORWARD, FALSE);
	UIEnable(IDM_STOP, FALSE);
	UIEnable(IDM_REFRESH, FALSE);

#ifdef WIN32_PLATFORM_PSPC 
	// PPC Address bar state restoration
    VARIANT_BOOL vb = ATL_VARIANT_TRUE;
	info.Restore(vb, L"Address");
	m_spIWebBrowser2->put_AddressBar(vb);
	UISetCheck(ID_VIEW_ADDRESSBAR, vb == ATL_VARIANT_TRUE);
#endif 

	// register object for message filtering and idle updates
	CMessageLoop* pLoop = _Module.GetMessageLoop();
	ATLASSERT(pLoop != NULL);
	pLoop->AddMessageFilter(this);
	pLoop->AddIdleHandler(this);

	return 0;
}
LRESULT CViewHexEdit::OnWmDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{
    uMsg, wParam, lParam, bHandled; 

    // Stop sinking events 
    AtlAdviseSinkMap ( this, false ); 

    m_wndAxHost.DestroyWindow(); 
	m_spHexEdit.Release();

    bHandled = FALSE; 

    return S_OK; 
} 
Пример #4
0
LRESULT CMiniPieFrame::OnFileExit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
    ATLVERIFY(SUCCEEDED(AtlAdviseSinkMap(this, false)));
	PostMessage(WM_CLOSE);
	return 0;
}