Microsoft KB Archive/177103

= FIX: ALT+Key Combination in Property Page Causes Stack Overflow =

Article ID: 177103

Article Last Modified on 11/21/2006

-

APPLIES TO

 Microsoft Foundation Class Library 4.2, when used with:  Microsoft Visual C++ 5.0 Enterprise Edition

 Microsoft Visual C++ 5.0 Professional Edition 

-



This article was previously published under Q177103



SYMPTOMS
If you press an ALT+key combination (generating a WM_SYSCOMMAND) with keyboard focus on the property page for an MFC ActiveX control and the key does not correspond to a mnemonic on the page, you will get a stack overflow.



CAUSE
COlePropertyPage::WindowProc traps the WM_SYSCOMMAND and calls IPropertyPageSite::TranslateAccelerator. This function in turns sends the WM_SYSCOMMAND message back to the page. This results in a recursion until you run out of stack space.



RESOLUTION
Override COlePropertyPage::WindowProc and return TRUE if the message is a WM_SYSCOMMAND; for example: LRESULT CMyPropPage::WindowProc(UINT msg, WPARAM wParam, LPARAM lParam) {

//Return without processing if WM_SYSCOMMAND. if (WM_SYSCOMMAND == msg) return TRUE; else return COlePropertyPage::WindowProc(msg, wParam, lParam); }

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was corrected in Visual C++ version 6.0 for Windows.

<div class="references_section">