void CToolTipCtrl::UpdateTipText(LPCTSTR lpszText, CWnd* pWnd, UINT_PTR nIDTool) { ENSURE(::IsWindow(m_hWnd)); ENSURE_ARG(pWnd != NULL); ENSURE_ARG(_tcslen(lpszText) <= MAX_TIP_TEXT_LENGTH); TOOLINFO ti; FillInToolInfo(ti, pWnd, nIDTool); ti.lpszText = (LPTSTR)lpszText; ::SendMessage(m_hWnd, TTM_UPDATETIPTEXT, 0, (LPARAM)&ti); }
void AFXAPI DDX_OCFloatRO(CDataExchange* pDX, int nIDC, DISPID dispid, double &value) { ENSURE_ARG(pDX!=NULL); if (pDX->m_bSaveAndValidate) { COleControlSite* pControl = pDX->PrepareOleCtrl(nIDC); ENSURE(pControl!=NULL); pControl->GetProperty(dispid, VT_R8, &value); } }
void AFXAPI DDX_OCFloat(CDataExchange* pDX, int nIDC, DISPID dispid, float &value) { ENSURE_ARG(pDX!=NULL); COleControlSite* pControl = pDX->PrepareOleCtrl(nIDC); ENSURE(pControl!=NULL); if (pDX->m_bSaveAndValidate) pControl->GetProperty(dispid, VT_R4, &value); else pControl->SetProperty(dispid, VT_R4, value); }
BOOL CControlBar::AllocElements(int nElements, int cbElement) { ASSERT_VALID(this); ENSURE_ARG(nElements >= 0 && cbElement >= 0); ENSURE(m_pData != NULL || m_nCount == 0); // allocate new data if necessary void* pData = NULL; if (nElements > 0) { ENSURE_ARG(cbElement > 0); if ((pData = calloc(nElements, cbElement)) == NULL) return FALSE; } free(m_pData); // free old data // set new data and elements m_pData = pData; m_nCount = nElements; return TRUE; }
DWORD CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS* lpLayout) { ENSURE_ARG(lpLayout != NULL); // resize and reposition this control bar based on styles DWORD dwStyle = (m_dwStyle & (CBRS_ALIGN_ANY|CBRS_BORDER_ANY)) | (GetStyle() & WS_VISIBLE); // handle delay hide/show if (m_nStateFlags & (delayHide|delayShow)) { UINT swpFlags = 0; if (m_nStateFlags & delayHide) { ASSERT((m_nStateFlags & delayShow) == 0); if (dwStyle & WS_VISIBLE) swpFlags = SWP_HIDEWINDOW; } else { ASSERT(m_nStateFlags & delayShow); if ((dwStyle & WS_VISIBLE) == 0) swpFlags = SWP_SHOWWINDOW; } if (swpFlags != 0) { // make the window seem visible/hidden dwStyle ^= WS_VISIBLE; if (lpLayout->hDWP != NULL) { // clear delay flags m_nStateFlags &= ~(delayShow|delayHide); // hide/show the window if actually doing layout lpLayout->hDWP = ::DeferWindowPos(lpLayout->hDWP, m_hWnd, NULL, 0, 0, 0, 0, swpFlags| SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE); } } else { // clear delay flags -- window is already in correct state m_nStateFlags &= ~(delayShow|delayHide); } } return dwStyle; // return new style }
void AFXAPI _AfxTraceMsg(LPCTSTR lpszPrefix, const MSG* pMsg) { ENSURE_ARG(AfxIsValidString(lpszPrefix)); ENSURE_ARG(pMsg != NULL); if (pMsg->message == WM_MOUSEMOVE || pMsg->message == WM_NCMOUSEMOVE || pMsg->message == WM_NCHITTEST || pMsg->message == WM_SETCURSOR || pMsg->message == WM_CTLCOLORBTN || pMsg->message == WM_CTLCOLORDLG || pMsg->message == WM_CTLCOLOREDIT || pMsg->message == WM_CTLCOLORLISTBOX || pMsg->message == WM_CTLCOLORMSGBOX || pMsg->message == WM_CTLCOLORSCROLLBAR || pMsg->message == WM_CTLCOLORSTATIC || pMsg->message == WM_ENTERIDLE || pMsg->message == WM_CANCELMODE || pMsg->message == 0x0118) // WM_SYSTIMER (caret blink) { // don't report very frequently sent messages return; } LPCSTR lpszMsgName = NULL; char szBuf[80]; // find message name if (pMsg->message >= 0xC000) { // Window message registered with 'RegisterWindowMessage' // (actually a USER atom) if (::GetClipboardFormatNameA(pMsg->message, szBuf, _countof(szBuf))) lpszMsgName = szBuf; } else if (pMsg->message >= WM_USER) { // User message sprintf_s(szBuf, _countof(szBuf), "WM_USER+0x%04X", pMsg->message - WM_USER); lpszMsgName = szBuf; } else { // a system windows message const AFX_MAP_MESSAGE* pMapMsg = allMessages; for (/*null*/; pMapMsg->lpszMsg != NULL; pMapMsg++) { if (pMapMsg->nMsg == pMsg->message) { lpszMsgName = pMapMsg->lpszMsg; break; } } } if (lpszMsgName != NULL) { #ifdef WIN64 TRACE(traceWinMsg, 4, _T("%s: hwnd=%p, msg = %hs (%p, %p)\n"), lpszPrefix, pMsg->hwnd, lpszMsgName, pMsg->wParam, pMsg->lParam); #else TRACE(traceWinMsg, 4, _T("%s: hwnd=0x%08X, msg = %hs (0x%08X, 0x%08X)\n"), lpszPrefix, pMsg->hwnd, lpszMsgName, pMsg->wParam, pMsg->lParam); #endif } else { #ifdef WIN64 TRACE(traceWinMsg, 4, _T("%s: hwnd=%p, msg = 0x%04X (%p, %p)\n"), lpszPrefix, pMsg->hwnd, lpszMsgName, pMsg->wParam, pMsg->lParam); #else TRACE(traceWinMsg, 4, _T("%s: hwnd=0x%08X, msg = 0x%04X (0x%08X, 0x%08X)\n"), lpszPrefix, pMsg->hwnd, lpszMsgName, pMsg->wParam, pMsg->lParam); #endif } if (pMsg->message >= WM_DDE_FIRST && pMsg->message <= WM_DDE_LAST) TraceDDE(lpszPrefix, pMsg); }
static void AFXAPI TraceDDE(LPCTSTR lpszPrefix, const MSG* pMsg) { ENSURE_ARG(pMsg != NULL); if (pMsg->message == WM_DDE_EXECUTE) { UINT_PTR nDummy; HGLOBAL hCommands; if (!UnpackDDElParam(WM_DDE_EXECUTE, pMsg->lParam, &nDummy, (UINT_PTR*)&hCommands)) { TRACE(traceAppMsg, 0, "Warning: Unable to unpack WM_DDE_EXECUTE lParam %08lX.\n", pMsg->lParam); return; } ASSERT(hCommands != NULL); LPCTSTR lpszCommands = (LPCTSTR)::GlobalLock(hCommands); ENSURE_THROW(lpszCommands != NULL, ::AfxThrowMemoryException() ); TRACE(traceAppMsg, 0, _T("%s: Execute '%s'.\n"), lpszPrefix, lpszCommands); ::GlobalUnlock(hCommands); } else if (pMsg->message == WM_DDE_ADVISE) { UINT_PTR nItem; ATOM aItem; HGLOBAL hAdvise; if (!UnpackDDElParam(WM_DDE_ADVISE, pMsg->lParam, (UINT_PTR*)&hAdvise, &nItem)) { TRACE(traceAppMsg, 0, "Warning: Unable to unpack WM_DDE_ADVISE lParam %08lX.\n", pMsg->lParam); return; } aItem = (ATOM)nItem; ASSERT(aItem != NULL); ASSERT(hAdvise != NULL); DDEADVISE* lpAdvise = (DDEADVISE*)::GlobalLock(hAdvise); ENSURE_THROW(lpAdvise != NULL, ::AfxThrowMemoryException() ); TCHAR szItem[80]; szItem[0] = '\0'; if (aItem != 0) ::GlobalGetAtomName(aItem, szItem, _countof(szItem)); TCHAR szFormat[80]; szFormat[0] = '\0'; if (((UINT)0xC000 <= (UINT)lpAdvise->cfFormat) && ((UINT)lpAdvise->cfFormat <= (UINT)0xFFFF)) { ::GetClipboardFormatName(lpAdvise->cfFormat, szFormat, _countof(szFormat)); // User defined clipboard formats have a range of 0xC000->0xFFFF // System clipboard formats have other ranges, but no printable // format names. } AfxTrace( _T("%s: Advise item='%s', Format='%s', Ack=%d, Defer Update= %d\n"), lpszPrefix, szItem, szFormat, lpAdvise->fAckReq, lpAdvise->fDeferUpd); ::GlobalUnlock(hAdvise); } }
void CMDIFrameWnd::SetMenuBarVisibility(DWORD dwStyle) { ENSURE_ARG(dwStyle == AFX_MBV_KEEPVISIBLE); ASSERT(m_dwMenuBarVisibility == AFX_MBV_KEEPVISIBLE); }