Article ID: 203230
Article Last Modified on 11/18/2003
}; #endif //__TSTCTL_H_
STDMETHODIMP GetControlInfo(CONTROLINFO* pCI)
{
pCI->hAccel = NULL;
pCI->cAccel = 0;
pCI->dwFlags = 0;
return S_OK;
}
STDMETHODIMP TranslateAccelerator(LPMSG lpmsg)
{
HRESULT hr = S_FALSE;
CComQIPtr <IOleControlSite, &IID_IOleControlSite>
spSite(m_spClientSite);
if(spSite)
{
if (lpmsg->message != WM_KEYDOWN) return S_FALSE;
//call site's TranslateAccelerator for processing
hr = spSite->TranslateAccelerator(
lpmsg,
(DWORD)_SpecialKeyState());
}
return hr;
}
// Helper function.
short _SpecialKeyState()
{
BOOL bShift = (GetKeyState(VK_SHIFT) < 0);
BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0);
BOOL bAlt = (GetKeyState(VK_MENU) < 0);
return (short)(bShift + (bCtrl << 1) + (bAlt << 2));
}
Option Explicit Private Sub Command1_Click() Unload Me End Sub
Keywords: kbbug kbfix kbvbp600fix kbctrlcreate KB203230