Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » Problem with in-place activation (OLE server) Collapse All
Subject Author Date
Thomas Maurer Oct 2, 2007 - 11:56 PM

Hello

IMPORTANT: I am still using V2.54 because of "never change a winning horse" philosophy. If upgrading might solve my problem I will gladly upgrade but I am afraid upgrading will not do.

I have an application using Prof-UIS heavily. This application should now be made an Internet Explorer plugin, kind of in the same way Acrobat Reader is a stand-alone software as well as a plugin in IE.

So I have made my application an OLE server. Porting went fine so far until I came across the following problem: In my non-OLE scenario I create my own instance of a class derived from CExtDynTabControlBar by using the message CExtControlBar::g_nMsgCreateTabbedBar.

In my OLE scenario this does not work because the frame window is created by the MFC framework and so I can not receive above message. I do get my hands on the class when the following virtual method is called for my in-place frame:

CFrameInPlace::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc)

It is this method where I create and dock the toolbars as childs of pWndFrame. I tried subclassing pWndFrame but this is not allowed because pWndFrame is a window of the IE process.

So I think receiving CExtControlBar::g_nMsgCreateTabbedBar is out of the question here.

What alternatives do I have? Do I have to create my own frame window somehow within the IE frame window so that I have more control about the frame containing the bars?

Thank you in advance

Thomas

Thomas Maurer Oct 11, 2007 - 9:31 AM

Thanks for your reply. I now have introduced a CFrameWnd just for the purpose of being a host of toolbars in "my" process vs. Internet Explorer process. And it works.

Technical Support Oct 3, 2007 - 12:59 PM

To create your own frame window would be the best solution in this case. The frame class could be a popup frame window when running as a standalone application. It would be a child of OLE in-place frame when embedded into IE. The CFrameWnd windows can be both popup and child.