Microsoft KB Archive/121949

= INFO: MFC OLE Classes Do Not Support "Embed in self" =

Article ID: 121949

Article Last Modified on 11/21/2006

-

APPLIES TO

 Microsoft Foundation Class Library 4.2, when used with:  Microsoft Visual C++ 1.51

 Microsoft Visual C++ 2.0 Professional Edition

 Microsoft Visual C++ 4.0 Standard Edition

 Microsoft Visual C++ 4.1 Subscription</li></ul>

 Microsoft Visual C++ 5.0 Standard Edition</li></ul>

 Microsoft Visual C++ 6.0 Service Pack 5</li></ul> </li> Microsoft Visual C++ .NET 2003 Standard Edition</li> Microsoft Visual C++ .NET 2002 Standard Edition</li></ul>

-

<div class="notice_section">

This article was previously published under Q121949

<div class="notice_section">

<div class="summary_section">

SUMMARY
The MFC OLE classes in the versions listed above do not include the ability for a container/server to embed items of its own type within an instance of itself.

Users attempting to embed an OLE item from the container/server into itself will receive the "Failed to create object. Check system registry" dialog box. Further debugging will show that QueryInterface failed to return the IViewObject interface for the embedded item.

<div class="moreinformation_section">

MORE INFORMATION
While OLE makes "embed in self" possible, it requires the use of the API call OleCreateEmbeddingHelper to connect the OLE2 or OLE32 DLL as the default in-process handler. The MFC OLE classes do not make use of this, and the architecture of an MFC application would make it extremely difficult to integrate this support.

MFC applications rely on handle maps and global tracking of such things as the toolbar and status bar of the application. An OLE item from this same application, if activated for visual editing, would attempt to negotiate space for a second toolbar and status bar within the same frame window. The MFC framework would also attempt to add these objects to its handle map, even though they are already there. Altering this would require substantial unsupported changes to the MFC source code. See article 120682 for information on how to exclude the current server object from its COleInsertDialog

Additional query words: OLE embed kbvc150 kbvc151 kbvc200 kbvc400 kbvc410 kbvc500 kbvc600 kbvc600

Keywords: kbautomation kbinfo kblocalsvr KB121949

-

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

© Microsoft Corporation. All rights reserved.