Microsoft KB Archive/122219

= INFO: CWnd::OnCommand Parameters Documented Incorrectly =

Article ID: 122219

Article Last Modified on 11/21/2006

-

APPLIES TO

 Microsoft Foundation Class Library 4.2, when used with:  Microsoft Visual C++ 2.0 Professional Edition

 Microsoft Visual C++ 5.0 Enterprise Edition

 Microsoft Visual C++ 5.0 Professional Edition 

-

<div class="notice_section">

This article was previously published under Q122219

<div class="summary_section">

SUMMARY
The online help and the "Class Library Reference" incorrectly describe the CWnd::OnCommand wParam and lParam as follows:

In Visual C++ 2.0
wParam Identifies the command ID of the menu item or control.

lParam The low-order word of lParam identifies the control that sends the message if the message is from a control. Otherwise the low-order word is 0. The high-order word of lParam specifies the notification message if the message is from a control. If the message is from an accelerator, the high-order word is 1. If the message is from a menu, the high-order word is 0.

In Visual C++ 5.0
wParam The low-order word of wParam identifies the command ID of the menu item or control. The high-order word of wParam specifies the notification message if the message is from a control. If the message is from an accelerator, the high-order word is 1. If the message is from a menu, the high-order word is 0.

<div class="moreinformation_section">

MORE INFORMATION
The description above is valid for Windows-based Applications, but it is invalid for Win32-based Applications. The Win32 API widens the WPARAM type to 32 bits and changes the packing of many of the messages. The parameters for CWnd::OnCommand should be documented as follows:

wParam The low-order word of wParam specifies the identifier of the menu item, control, or accelerator. The high-order word specifies the notification code if the message is from a control. If the message is from an accelerator, the high-order word is 1. If the message is from a menu, the high-order word is 0.

lParam Handle (HWND) of the control sending the message if the message is from a control. Otherwise, this parameter is NULL.

<div class="references_section">