Microsoft KB Archive/329478

= Performance decreases when you use certain Third-party ActiveX controls =

Article ID: 329478

Article Last Modified on 10/11/2005

-

APPLIES TO


 * Microsoft Visio 2002 Standard Edition
 * Microsoft Visio 2002 Professional Edition

-



This article was previously published under Q329478



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
When you use certain third-party ActiveX controls in a Microsoft Visio drawing, you may find that the CPU usage on your computer increases significantly (up to 98 percent). As a result, you experience decreased performance in Visio. Visio may also stop responding (hang).

This problem does not occur when you use the same ActiveX control in a Microsoft Office XP program, such as Microsoft Word or Microsoft Excel.



CAUSE
This problem may occur if the ActiveX control calls the PropertyNotifySink::OnChanged method. When this occurs, Visio does not correctly handle the ActiveX control.



Service pack information
This problem is corrected in Microsoft Visio 2002 Service Pack 2.

To resolve this problem, obtain the latest service pack for Visio 2002. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

867749 How to obtain the latest Visio 2002 Service Pack

Hotfix information
A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Only apply it to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Microsoft Visio 2002 service pack that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the hotfix. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The global version of this hotfix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel. Date          Time      Version          Size         File name - 29-Oct-2002   21:17     10.0.3424.4        68,832      Visio.exe 29-Oct-2002   21:17     10.0.3424.4     6,348,008      Vislib.dll 04-Oct-2002   21:09     10.0.3404.4       646,320      Visres.dll This fix adds the following registry entry:

 

In this fix, logic was added to the IPropertyNotifySink::OnChanged code in Visio to throttle the update calls to the shapesheet. This new behavior occurs if the following conditions are true:
 * The size or location of the ActiveX control does not change.

-and-
 * You enable the   registry entry after you install the fix. To enable the registry entry, set   to a value other than the default value of 0 (zero) seconds.

The   value is used to determine if enough time has elapsed between the last OnChanged request for a specific dispatch identifier (DISPID) on an ActiveX control. It provides relief when you use real-time controls with bindable properties that refresh the properties and inform Visio by using the OnChanged calls, and when the interval between the calls to IPropertyNotifySink::OnChanged cannot be set in the control.

To enable the   registry entry, follow these steps:

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.  Start Visio. On the Tools menu, click Options. Click the Advanced tab. Under User settings, click to select the Put all settings in Windows registry check box, and then click OK. Quit Visio.</li> Click Start, and then click Run.</li> In the Open box, type regedit, and then click OK.</li> Locate the following registry key:

 

</li> In the right pane, double-click  .

Note that the default value that appears in the Value data box is 0 (zero).</li> Change the value in the Value data box to use a value other than the default value of 0.

Note: Any value that is greater than the default value of 0 enables the throttling feature. Use a value that is appropriate to the throttling level that you want. In certain situations, you may require a throttling level greater than 1. For example, type 2 in the Value data box, and then click OK.</li> Quit Registry Editor.</li></ol>

Notes:
 * Use this method if you only have to enable the fix on a few computers. To deploy and enable this fix to a large number of computers, export the modified registry key to a .reg file and then deploy the fix in addition to the .reg file to the other computers . Note that because this is a per-user setting, the registry key must be configured for each user.
 * All Visio user settings registry keys (including the   registry entry described in this article) are stored in the   hive in the registry. Because this hive maintains separate settings for individual users, the functionality must be enabled for each user.
 * To disable the   registry entry, restore the value of the   entry to the default value of 0 (zero) seconds.

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

This problem was first corrected in Visio 2002 Service Pack 2.

Additional query words: visio2002 vso2002 hotfix qfe

Keywords: kbbug kbfix kbqfe kbhotfixserver KB329478

-

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

© Microsoft Corporation. All rights reserved.