Characters That You Type in a Text Box May Be Repeated (831739)



The information in this article applies to:

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional

SYMPTOMS

When you type characters in a text box (edit control), the characters may be repeated by the program that you are using. For example, when you use the SHIFT key to type an uppercase letter in a text box in Microsoft Internet Explorer, the letter may be repeated by the program that displays the text box in Internet Explorer. This problem occurs after you install the MS03-045 (824141) security patch, the hotfix that is documented in Microsoft Knowledge Base article 822428, or a later hotfix.

For additional information about the MS03-045 (824141) security patch, visit the following Microsoft Web site: For additional information about the 822428 hotfix, click the following article number to view the article in the Microsoft Knowledge Base:

822428 Characters Are Dropped or Lost in Notepad When You Use a Swipe Card Reader or a Keyboard in Windows 2000

CAUSE

The updates that are discussed in the "Symptoms" section of this article change the way that single-line and multi-line edit controls handle WM_CHAR window messages. The edit control now honors the character repeat count that is specified in the low-word of the message's lParam parameter. The repeat count that is specified in the lParam parameter is the number of characters that will be inserted in the edit control when it handles a WM_CHAR message.

If programs incorrectly specify the repeat count when they send or post WM_CHAR messages to an edit control, multiple characters are inserted. Before the updates that are listed in the "Symptoms" section of this article are installed, the edit control did not honor the specified repeat count.

RESOLUTION

To resolve this problem, contact the manufacturer of the program for information about a possible update to resolve this problem.

WORKAROUND

To work around this problem, use one of the following methods:

Method 1: Use the CAPS LOCK Key to Type Uppercase Letters

If this problem occurs when you use the SHIFT key to type uppercase letters, use the CAPS LOCK key instead.

Method 2: Copy and Paste Text from Another Program

Create the text that you want to enter in the text box in another program (for example, in Notepad), and then copy the text and paste it in the text box.

MORE INFORMATION

For additional information about the correct formatting of the WM_CHAR message's lParam parameter, visit the following Microsoft Web site:If you have Microsoft Visual Basic programs that exhibit this problem, change them so that the programs check their declaration of SendMessage or PostMessage to make sure that the lParam parameter is passed as ByVal instead of as ByRef when they send or post WM_CHAR messages. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

187918 PRB: SendMessage Fails for Some Messages

For example, change the following code
Private Declare Function SendMessageW Lib "user32" (ByVal HWND As Long, ByVal wMsg 
As Long, ByVal wParam As Long, lParam As Any) As Long
to the following:
Private Declare Function SendMessageW Lib "user32" (ByVal HWND As Long, ByVal wMsg 
As Long, ByVal wParam As Long, Byval lParam As Any) As Long

Modification Type:MajorLast Reviewed:6/27/2004
Keywords:kbprb KB831739