OLE Initialization


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at OLE Initialization.

Before an application can use OLE system services, it must initialize the OLE system DLLs and verify that the DLLs are the correct version. The AfxOleInit function initializes the OLE system DLLs.

OLE Initialization

AfxOleInitInitializes the OLE libraries.

Initializes OLE support for the application.

BOOL AFXAPI AfxOleInit(); 

Return Value

Nonzero if successful; 0 if initialization fails, possibly because incorrect versions of the OLE system DLLs are installed.


Call this function to initialize the OLE support for an MFC application. When this function is called, the following actions occur:

  • Initializes the COM library on the current apartment of the calling application. For more information, see OleInitialize.

  • Creates a message filter object, implementing the IMessageFilter interface. This message filter can be accessed with a call to AfxOleGetMessageFilter.

System_CAPS_ICON_note.jpg Note

If AfxOleInit is called from an MFC DLL, the call will fail. The failure occurs because the function assumes that, if it is called from a DLL, the OLE system was previously initialized by the calling application.

System_CAPS_ICON_note.jpg Note

MFC applications must be initialized as single threaded apartment (STA). If you call CoInitializeEx in your InitInstance override, specify COINIT_APARTMENTTHREADED (rather than COINIT_MULTITHREADED). For more information, see PRB: MFC Application Stops Responding When You Initialize the Application as a Multithreaded Apartment (828643) at http://support.microsoft.com/default.aspxscid=kb;en-us;828643.

Macros and Globals