We help IT Professionals succeed at work.

OLE Container in a DLL

Medium Priority
673 Views
Last Modified: 2013-11-25
I'm developing a DLL that simply shows a frame window containing a RemoteData Control and a DBGrid Control. I have initialized my app with AfxEnableOLEContainer and my app runs fine, but the RemoteData and DBGrid controls do not appear. The debug output message is the following:

CoCreateInstance of OLE control {00028C00-0000-0000-0000-000000000046} failed.
>>> Result code: 0x800401f0
>>> Is the control is properly registered?
Warning: CreateDlgControls failed during form view init.
Detected memory leaks!
Dumping objects ->
occmgr.cpp(646) : {241} normal block at 0x00412580, 28 bytes long.

The line 646 of occmgr.cpp is the following:

pBindings = new CDataBoundProperty(pBindings, dispid, ctlid);

What's the problem?

Thank you in advance.
Comment
Watch Question

Commented:
The problem is that control you aretrying to create is not properly registered on your computer. Use regsvr32.exe utility founf in system directory to register control. To do this launch regsvr32.exe with command line as full path to control file. Yuo must get message box that your control registration has been succeeded. You can also use ActiveX controls test container to rister these controls by invoking "Register control" menu and browsing to DBGrid control DBGRID32.OCX if your are working in 32 bit platform or DBGRID16.OCX if you are working in 26 bit platform file.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Thanks for your fast answer.

I've registered the two controls, and the problem persists. I think that it's not the problem, because these controls work fine in an usual MFC application. The problem only appears when including the controls in a DLL.

Commented:
If contrls are properly registered be sure that you called AfxOleInit() and AfxEnableControlcontainer() in your application InitInstance function

Author

Commented:
Thanks for your answers.

I was calling AfxOleInit and AfxEnableControlContainer in the DLL application object InitInstance function, but they have to be called from the application that imports the DLL.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.