BUG: E_NOINTERFACE Returned When Interface Properly Registered

ID: Q148373

3.51 WINDOWS NT kbprg kbbuglist kbfixlist

The information in this article applies to:

SYMPTOMS

When you attempt to marshal an interface that is far enough down the list of interfaces in the HKEY_CLASSES_ROOT\Interface section of the registry, OLE may return E_NOINTERFACE if the number of interfaces in the list exceeds a certain limit and if the interface being marshaled is beyond this limit in the list. This limit can vary and is usually between 350 and 550 interface registration entries.

CAUSE

A problem in OLE's interface registration caching code causes this problem. The usual cause for E_NOINTERFACE is that the interface has not been registered correctly in the registry. However, if the interface has been registered correctly and the number of registered interfaces in the system exceeds the limit, the cause for E_NOINTERFACE could be this bug.

Interfaces are listed in the interface section of the registry in ascending order of the text representation of their GUIDs. Consequently this problem only affects interfaces that have GUIDs with a text representation that causes them to be listed near the end of the list and beyond the limit.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This bug has been fixed in NT 3.51 service pack 5. It does not occur in Windows 95.

REFERENCES

For more information on the fix for this problem, please see the following article in the Microsoft Knowledge Base:

   ARTICLE_ID: Q149722
   TITLE     : Windows NT Registry Has a Limit of 300 Interfaces

Additional reference words: OLE2 2 2.0 2.00 KBCategory: kbprg kbbuglist kbfixlist KBSubcategory: LeTwoArc
Keywords          : LeTwoArc kbbuglist kbfixlist
Version           : 3.51
Platform          : NT WINDOWS

Last Reviewed: October 12, 1996