STDMETHODIMP CActiveXCtrl::GetExtendedControl(IDispatch** ppDisp) { DUITRACE(_T("AX: CActiveXCtrl::GetExtendedControl")); if( ppDisp == NULL ) return E_POINTER; if( m_pOwner == NULL ) return E_UNEXPECTED; if( m_pOwner->m_pUnk == NULL ) return E_UNEXPECTED; return m_pOwner->m_pUnk->QueryInterface(IID_IDispatch, (LPVOID*) ppDisp); }
STDMETHODIMP CActiveXCtrl::SetFocus(BOOL fFocus) { DUITRACE(_T("AX: CActiveXCtrl::SetFocus")); if( m_pOwner == NULL ) return E_UNEXPECTED; if( fFocus ) m_pOwner->SetFocus(); m_bFocused = (fFocus == TRUE); return S_OK; }
STDMETHODIMP CActiveXCtrl::SetCapture(BOOL fCapture) { DUITRACE(_T("AX: CActiveXCtrl::SetCapture")); if( m_pOwner == NULL ) return E_UNEXPECTED; m_bCaptured = (fCapture == TRUE); if( fCapture ) ::SetCapture(m_pOwner->m_hwndHost); else ::ReleaseCapture(); return S_OK; }
STDMETHODIMP CActiveXCtrl::GetSite(REFIID riid, LPVOID* ppvSite) { DUITRACE(_T("AX: CActiveXCtrl::GetSite")); if( ppvSite == NULL ) return E_POINTER; *ppvSite = NULL; if( m_pUnkSite == NULL ) return E_FAIL; return m_pUnkSite->QueryInterface(riid, ppvSite); }
STDMETHODIMP CActiveXCtrl::EnumObjects(DWORD grfFlags, IEnumUnknown** ppenum) { DUITRACE(_T("AX: CActiveXCtrl::EnumObjects")); if( ppenum == NULL ) return E_POINTER; if( m_pOwner == NULL ) return E_UNEXPECTED; *ppenum = new CActiveXEnum(m_pOwner->m_pUnk); return S_OK; }
STDMETHODIMP CActiveXCtrl::GetWindow(HWND* phwnd) { DUITRACE(_T("AX: CActiveXCtrl::GetWindow")); if( m_pOwner == NULL ) return E_UNEXPECTED; if( m_pOwner->m_hwndHost == NULL ) CreateActiveXWnd(); if( m_pOwner->m_hwndHost == NULL ) return E_FAIL; *phwnd = m_pOwner->m_hwndHost; return S_OK; }
STDMETHODIMP CActiveXCtrl::ShowObject(void) { DUITRACE(_T("AX: CActiveXCtrl::ShowObject")); if( m_pOwner == NULL ) return E_UNEXPECTED; HDC hDC = ::GetDC(m_pOwner->m_hwndHost); if( hDC == NULL ) return E_FAIL; if( m_pViewObject != NULL ) m_pViewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hDC, (RECTL*) &m_pOwner->m_rcItem, (RECTL*) &m_pOwner->m_rcItem, NULL, NULL); ::ReleaseDC(m_pOwner->m_hwndHost, hDC); return S_OK; }
STDMETHODIMP CActiveXCtrl::GetContainer(IOleContainer** ppContainer) { DUITRACE(_T("AX: CActiveXCtrl::GetContainer")); if( ppContainer == NULL ) return E_POINTER; *ppContainer = NULL; HRESULT Hr = E_NOTIMPL; if( m_pUnkSite != NULL ) Hr = m_pUnkSite->QueryInterface(IID_IOleContainer, (LPVOID*) ppContainer); if( FAILED(Hr) ) Hr = QueryInterface(IID_IOleContainer, (LPVOID*) ppContainer); return Hr; }
LRESULT WindowImplBase::OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { SIZE szRoundCorner = m_PaintManager.GetRoundCorner(); if( !::IsIconic(*this) && (szRoundCorner.cx != 0 || szRoundCorner.cy != 0) ) { CDuiRect rcWnd; ::GetWindowRect(*this, &rcWnd); rcWnd.Offset(-rcWnd.left, -rcWnd.top); rcWnd.right++; rcWnd.bottom++; HRGN hRgn = ::CreateRoundRectRgn(rcWnd.left, rcWnd.top, rcWnd.right, rcWnd.bottom, szRoundCorner.cx, szRoundCorner.cy); ::SetWindowRgn(*this, hRgn, TRUE); ::DeleteObject(hRgn); } CDuiRect rcWnd; ::GetWindowRect(*this, &rcWnd); DUITRACE(_T("WinImplBase::OnSize(), width = %d, height = %d"), rcWnd.right - rcWnd.left, rcWnd.bottom - rcWnd.top); DUITRACE(_T("WinImplBase::OnSize(): %d, width = %d, height = %d"), wParam, LOWORD(lParam), HIWORD(lParam)); bHandled = FALSE; return 0; }
STDMETHODIMP CActiveXCtrl::SetSite(IUnknown *pUnkSite) { DUITRACE(_T("AX: CActiveXCtrl::SetSite")); if( m_pUnkSite != NULL ) { m_pUnkSite->Release(); m_pUnkSite = NULL; } if( pUnkSite != NULL ) { m_pUnkSite = pUnkSite; m_pUnkSite->AddRef(); } return S_OK; }
STDMETHODIMP CActiveXCtrl::GetDC(LPCRECT pRect, DWORD grfFlags, HDC* phDC) { DUITRACE(_T("AX: CActiveXCtrl::GetDC")); if( phDC == NULL ) return E_POINTER; if( m_pOwner == NULL ) return E_UNEXPECTED; *phDC = ::GetDC(m_pOwner->m_hwndHost); if( (grfFlags & OLEDC_PAINTBKGND) != 0 ) { CDuiRect rcItem = m_pOwner->GetPos(); if( !m_bWindowless ) rcItem.ResetOffset(); ::FillRect(*phDC, &rcItem, (HBRUSH) (COLOR_WINDOW + 1)); } return S_OK; }
LRESULT CStockBuyUI::OnOrderReq(HWND hWnd, WPARAM wParam, LPARAM lParam) { ASSERT(wParam); int i = static_cast<int>(lParam); CListTextElementUI* pElem = reinterpret_cast<CListTextElementUI*>(wParam); std::string sContractNumber = Base::CharacterSet::UnicodeToANSI(pElem->GetText(9)); //iterOrderNumber iter = std::find(vecOrderNumber.begin(), vecOrderNumber.end(), sContractNumber); //ASSERT(iter); //vecOrderNumber.erase(iter); DUITRACE(_T("new a order bussiness request, send to sdk.")); return 0; }
STDMETHODIMP CActiveXCtrl::OnInPlaceDeactivateEx(BOOL fNoRedraw) { DUITRACE(_T("AX: CActiveXCtrl::OnInPlaceDeactivateEx")); m_bInPlaceActive = false; if( m_pInPlaceObject != NULL ) { m_pInPlaceObject->Release(); m_pInPlaceObject = NULL; } if( m_pWindow != NULL ) { ::DestroyWindow(*m_pWindow); delete m_pWindow; m_pWindow = NULL; } return S_OK; }
STDMETHODIMP CActiveXCtrl::GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) { DUITRACE(_T("AX: CActiveXCtrl::GetWindowContext")); if( ppDoc == NULL ) return E_POINTER; if( ppFrame == NULL ) return E_POINTER; if( lprcPosRect == NULL ) return E_POINTER; if( lprcClipRect == NULL ) return E_POINTER; if (m_pWindow) { ::GetClientRect(m_pWindow->GetHWND(),lprcPosRect); ::GetClientRect(m_pWindow->GetHWND(),lprcClipRect); } *ppFrame = new CActiveXFrameWnd(m_pOwner); *ppDoc = NULL; ACCEL ac = { 0 }; HACCEL hac = ::CreateAcceleratorTable(&ac, 1); lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); lpFrameInfo->fMDIApp = FALSE; lpFrameInfo->hwndFrame = m_pOwner->GetManager()->GetPaintWindow(); lpFrameInfo->haccel = hac; lpFrameInfo->cAccelEntries = 1; return S_OK; }
STDMETHODIMP CActiveXCtrl::TransformCoords(POINTL* pPtlHimetric, POINTF* pPtfContainer, DWORD dwFlags) { DUITRACE(_T("AX: CActiveXCtrl::TransformCoords")); return S_OK; }
STDMETHODIMP CActiveXCtrl::OnControlInfoChanged(void) { DUITRACE(_T("AX: CActiveXCtrl::OnControlInfoChanged")); return S_OK; }
STDMETHODIMP CActiveXCtrl::LockInPlaceActive(BOOL fLock) { DUITRACE(_T("AX: CActiveXCtrl::LockInPlaceActive")); return S_OK; }
STDMETHODIMP CActiveXCtrl::TranslateAccelerator(MSG *pMsg, DWORD grfModifiers) { DUITRACE(_T("AX: CActiveXCtrl::TranslateAccelerator")); return S_FALSE; }
STDMETHODIMP CActiveXCtrl::ContextSensitiveHelp(BOOL fEnterMode) { DUITRACE(_T("AX: CActiveXCtrl::ContextSensitiveHelp")); return S_OK; }
STDMETHODIMP CActiveXCtrl::OnPosRectChange(LPCRECT lprcPosRect) { DUITRACE(_T("AX: CActiveXCtrl::OnPosRectChange")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::DeactivateAndUndo(void) { DUITRACE(_T("AX: CActiveXCtrl::DeactivateAndUndo")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::DiscardUndoState(void) { DUITRACE(_T("AX: CActiveXCtrl::DiscardUndoState")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::ShowPropertyFrame(void) { DUITRACE(_T("AX: CActiveXCtrl::ShowPropertyFrame")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::ParseDisplayName(IBindCtx *pbc, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) { DUITRACE(_T("AX: CActiveXCtrl::ParseDisplayName")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::OnFocus(BOOL fGotFocus) { DUITRACE(_T("AX: CActiveXCtrl::OnFocus")); m_bFocused = (fGotFocus == TRUE); return S_OK; }
STDMETHODIMP CActiveXCtrl::Scroll(SIZE scrollExtant) { DUITRACE(_T("AX: CActiveXCtrl::Scroll")); return E_NOTIMPL; }
STDMETHODIMP CActiveXCtrl::LockContainer(BOOL fLock) { DUITRACE(_T("AX: CActiveXCtrl::LockContainer")); m_bLocked = fLock != FALSE; return S_OK; }
STDMETHODIMP CActiveXCtrl::OnUIDeactivate(BOOL fUndoable) { DUITRACE(_T("AX: CActiveXCtrl::OnUIDeactivate")); m_bUIActivated = false; return S_OK; }
void CDuiHeaderCtrl::OnMouseMove( UINT nFlags,CPoint pt ) { if(m_bDragging || nFlags&MK_LBUTTON) { if(!m_bDragging) { m_bDragging=TRUE; if(IsItemHover(m_dwHitTest) && m_bItemSwapEnable) { m_dwDragTo=m_dwHitTest; CRect rcItem=GetItemRect(LOWORD(m_dwHitTest)); DrawDraggingState(m_dwDragTo); m_hDragImg=CreateDragImage(LOWORD(m_dwHitTest)); CPoint pt=m_ptClick-rcItem.TopLeft(); CDragWnd::BeginDrag(m_hDragImg,pt,0,128,LWA_ALPHA|LWA_COLORKEY); } } if(IsItemHover(m_dwHitTest)) { if(m_bItemSwapEnable) { DWORD dwDragTo=HitTest(pt); CPoint pt2(pt.x,m_ptClick.y); ClientToScreen(GetContainer()->GetHostHwnd(),&pt2); if(IsItemHover(dwDragTo) && m_dwDragTo!=dwDragTo) { m_dwDragTo=dwDragTo; DUITRACE(_T("\n!!! dragto %d"),LOWORD(dwDragTo)); DrawDraggingState(dwDragTo); } CDragWnd::DragMove(pt2); } }else if(m_dwHitTest!=-1) {//调节宽度 int cxNew=m_nAdjItemOldWidth+pt.x-m_ptClick.x; if(cxNew<0) cxNew=0; m_arrItems[LOWORD(m_dwHitTest)].cx=cxNew; NotifyInvalidate(); GetContainer()->DuiUpdateWindow();//立即更新窗口 //发出调节宽度消息 DUINMHDSIZECHANGING nm; nm.hdr.hDuiWnd=m_hDuiWnd; nm.hdr.code=DUINM_HDSIZECHANGING; nm.hdr.idFrom=GetCmdID(); nm.hdr.pszNameFrom=GetName(); nm.nWidth=cxNew; DuiNotify((LPDUINMHDR)&nm); } }else { DWORD dwHitTest=HitTest(pt); if(dwHitTest!=m_dwHitTest) { if(m_bSortHeader) { if(IsItemHover(m_dwHitTest)) { WORD iHover=LOWORD(m_dwHitTest); m_arrItems[iHover].state=0; RedrawItem(iHover); } if(IsItemHover(dwHitTest)) { WORD iHover=LOWORD(dwHitTest); m_arrItems[iHover].state=1;//hover RedrawItem(iHover); } } m_dwHitTest=dwHitTest; } } }
STDMETHODIMP CActiveXCtrl::OnInPlaceDeactivate(void) { DUITRACE(_T("AX: CActiveXCtrl::OnInPlaceDeactivate")); return OnInPlaceDeactivateEx(TRUE); }