Performance decreases when you use certain Third-party ActiveX controls
This article was previously published under Q329478
This article has been archived. It is offered "as is" and will no longer be updated.
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
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.
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 informationThis 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 informationA supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
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.dllThis 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.
- You enable the OnChangedSinkRefreshThrottleregistry entry after you install the fix. To enable the registry entry, setHKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottleto a value other than the default value of 0 (zero) seconds.
OnChangedSinkRefreshThrottlevalue 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
OnChangedSinkRefreshThrottleregistry 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.
- Click Start, and then click Run.
- In the Open box, type regedit, and then click OK.
- Locate the following registry key:HKEY_CURRENT_USER\Software\Microsoft\Visio\Application
- In the right pane, double-click OnChangedSinkRefreshThrottle.
Note that the default value that appears in the Value data box is 0 (zero).
- 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.
- Quit Registry Editor.
- 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 HKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottleregistry entry described in this article) are stored in theHKEY_CURRENT_USERhive in the registry. Because this hive maintains separate settings for individual users, the functionality must be enabled for each user.
- To disable the OnChangedSinkRefreshThrottleregistry entry, restore the value of theHKEY_CURRENT_USER\Software\Microsoft\Visio\Application\OnChangedSinkRefreshThrottleentry to the default value of 0 (zero) seconds.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem was first corrected in Visio 2002 Service Pack 2.
visio2002 vso2002 hotfix qfe
Article ID: 329478 - Last Review: 10/26/2013 17:37:23 - Revision: 2.5
Microsoft Visio 2002 Standard Edition, Microsoft Visio 2002 Professional Edition
- kbnosurvey kbarchive kbautohotfix kbhotfixserver kbqfe kbbug kbfix KB329478