// // msgpump.cpp // #include "private.h" #include "tim.h" //+--------------------------------------------------------------------------- // // PeekMessageA // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::PeekMessageA(LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL *pfResult) { if (pfResult == NULL) return E_INVALIDARG; Assert(_cAppWantsKeystrokesRef >= 0); // ref count is never negative! _cAppWantsKeystrokesRef++; *pfResult = ::PeekMessageA(pMsg, hwnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); _cAppWantsKeystrokesRef--; return S_OK; } //+--------------------------------------------------------------------------- // // GetMessageA // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::GetMessageA(LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, BOOL *pfResult) { if (pfResult == NULL) return E_INVALIDARG; Assert(_cAppWantsKeystrokesRef >= 0); // ref count is never negative! _cAppWantsKeystrokesRef++; Perf_StartStroke(PERF_STROKE_GETMSG); *pfResult = ::GetMessageA(pMsg, hwnd, wMsgFilterMin, wMsgFilterMax); Perf_EndStroke(PERF_STROKE_GETMSG); _cAppWantsKeystrokesRef--; return S_OK; } //+--------------------------------------------------------------------------- // // PeekMessageW // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::PeekMessageW(LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL *pfResult) { if (pfResult == NULL) return E_INVALIDARG; Assert(_cAppWantsKeystrokesRef >= 0); // ref count is never negative! _cAppWantsKeystrokesRef++; *pfResult = ::PeekMessageW(pMsg, hwnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg); _cAppWantsKeystrokesRef--; return S_OK; } //+--------------------------------------------------------------------------- // // GetMessageW // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::GetMessageW(LPMSG pMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, BOOL *pfResult) { if (pfResult == NULL) return E_INVALIDARG; Assert(_cAppWantsKeystrokesRef >= 0); // ref count is never negative! _cAppWantsKeystrokesRef++; Perf_StartStroke(PERF_STROKE_GETMSG); *pfResult = ::GetMessageW(pMsg, hwnd, wMsgFilterMin, wMsgFilterMax); Perf_EndStroke(PERF_STROKE_GETMSG); _cAppWantsKeystrokesRef--; return S_OK; } //+--------------------------------------------------------------------------- // // EnableSystemKeystrokeFeed // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::EnableSystemKeystrokeFeed() { if (_cDisableSystemKeystrokeFeedRef <= 0) { Assert(0); // bogus ref count! return E_UNEXPECTED; } _cDisableSystemKeystrokeFeedRef--; return S_OK; } //+--------------------------------------------------------------------------- // // DisableSystemKeystrokeFeed // //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::DisableSystemKeystrokeFeed() { _cDisableSystemKeystrokeFeedRef++; return S_OK; } //+--------------------------------------------------------------------------- // // IsKeystrokeFeedEnabled // // nb: this method is on a private interface used by the aimm layer. //---------------------------------------------------------------------------- STDAPI CThreadInputMgr::IsKeystrokeFeedEnabled(BOOL *pfEnabled) { Assert(pfEnabled != NULL); *pfEnabled = _IsKeystrokeFeedEnabled(); return S_OK; }