Microsoft KB Archive/95428

= FIX: Error Message: Timeout While Waiting for DDE Response =

Article ID: 95428

Article Last Modified on 10/28/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 2.0 Professional Edition

-



This article was previously published under Q95428



SYMPTOMS
You can get the error &quot;Timeout while waiting for DDE response&quot; if you execute DDE commands within a DDE event. This occurs due to a limitation of the Dynamic Data Exchange Management Library (DDEML.DLL) that provides support for DDE under Windows. This problem may also occur if you place DDE commands in an event that is triggered by a DDE command such as the Change event of a text box.



CAUSE
The problem occurs because changing the text under the Destination Data section of the DDE source causes a Text1_Change event. Since this is a DDE related event, attempting to perform a DDE operation such as text2.LinkRequest results in the timeout error message.



WORKAROUND
To work around the problem, perform all DDE operations in non-DDE related events. If you need to perform a DDE operation in a DDE related event, you can put the DDE operations in a timer event that will execute after the DDE related event has finished. Here is an example:

 Follow steps 1 through 7 in the More Information section below. Place a timer control (Timer1) on Form1. Set the Interval property of Timer1 to 1. Set the Enabled property of Timer1 to False.  In the Text1_Change event, enter the following code: Sub Text1_Change Timer1.Enabled = True End Sub

  In the Timer1_Timer event, enter the following code: Sub Timer1_Timer text2.LinkRequest Timer1.Enabled = False End Sub

</li> Run the program.</li> Change the text in the Destination Data section of the compiled DDE sample application.</li></ol>

Text1 should correctly display the text typed into the Destination Data section of the compiled DDE sample application without producing an error.

<div class="status_section">

STATUS
Microsoft has confirmed this to be a problem in the Standard and Professional editions of Microsoft Visual Basic version 2.0 for Windows. This problem was corrected in Microsoft Visual Basic version 3.0 for Windows.

<div class="moreinformation_section">

Steps to Reproduce Problem
<ol> Start Visual Basic, or from the File menu, choose New Project (ALT, F, N) if Visual Basic is already running.</li> Open the DDE sample program located in the \SAMPLES\DDE directory.</li> From the File menu, choose Make EXE File (ALT, F, K).</li> Start the compiled .EXE program from Program Manager or File Manager.</li> From the File menu, choose New Project (ALT, F, N). Form1 is created by default.</li> Place two text boxes on Form1.</li>  In the Form_Load event, enter the following code: Sub Form_Load

text1.LinkMode = 0 text1.LinkTopic = &quot;dde|system&quot; text1.LinkItem = &quot;txtdata&quot; text1.LinkMode = 1 'Establish an automatic link

text2.LinkMode = 0 text2.LinkTopic = &quot;dde|system&quot; text2.LinkItem = &quot;txtdata&quot; text2.LinkMode = 2 'Establish a manual link

End Sub

</li>  In the Text1_Change event, enter the following code: Sub Text1_Change text2.LinkRequest End Sub

</li> Run the program.</li> Change the text in the Destination Data section of the compiled DDE sample application.</li></ol>

After approximately five seconds, you will receive the error &quot;Timeout while waiting for DDE response.&quot;

Additional query words: buglist2.00 fixlist3.00 2.00 3.00

Keywords: kbbug kbfix KB95428

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.