Microsoft KB Archive/290221

= Error Occurs When Using Invoke to Pass an IDispatch Array =

Article ID: 290221

Article Last Modified on 2/21/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition

-



This article was previously published under Q290221



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
An access violation may occur during an IDispatch::Invoke call when array interfaces (SAFEARRAYs) are passed between components in the same Component Services Objects program.



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

260910 How to Obtain the Latest Windows 2000 Service Pack

To resolve this problem, obtain Component Services Objects Rollup 9 or later.



WORKAROUND
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.

To work around this problem, use these steps:  Start Registry Editor (Regedt32.exe). Locate and click the following key in the registry:

HKEY_LOCAL_MACHINE\Software\Classes\Interface

 On the Edit menu, click Add Value, and then add the following registry value:

Value name: InterfaceHelperDisableAllForOle32

Data type: REG_SZ

Value: 1

 Quit Registry Editor.

Using this registry value disables lightweight proxy and stubs, and should prevent this issue from occurring. Note that using this value slows down the program because a full NDR marshal is performed, making method calls across a context boundary.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.

Additional query words: kbIISCom

Keywords: kbbug kbfix kbwin2000presp3fix kbwin2000sp3fix KB290221

-

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

© Microsoft Corporation. All rights reserved.