AfxOleInit

AfxOleInit

初始化 OLE 为应用程序的支持。

BOOL AFXAPI AfxOleInit( );
返回值

非零,如果成功;0,如果初始化失败,可能,因为安装该 OLE 系统 DLL 的错误版本。

备注

调用此函数初始化 OLE 为 MFC 应用程序的支持。 当调用该函数时时,将发生以下操作:

如果 AfxOleInit 从 MFC DLL 调用,则调用将失败。 该失败,因为该函数,假设,则为; 如果从 DLL 调用,该 OLE 系统由调用应用程序之前初始化。

 

必须初始化 MFC 应用程序设置为单线程单元。 (STA) 如果对您的 InitInstance 重写的 CoInitializeEx ,请指定 COINIT_APARTMENTTHREADED (而不是 COINIT_MULTITHREADED)。

 AfxOleInit()与CoInitialize(NULL)的区别

OLE是建立在COM之上的技术,层次比COM要高。AfxOleInit()调用的是OleInitialize(),而OleInitialize()除了调用CoInitializeEx()来初始化COM库外,还进行一些其它的操作,这些操作对OLE应用来说是必须的,这些OLE应用包括:  
  (1)Clipboard;  
  (2)Drag   and   drop;  
  (3)Object   linking   and   embedding(现在的OLE,已不再仅仅是Object   linking   and   embedding的概念);  
  (4)In-place   activation;  
  与AfxOleInit()对应的是,AfxOleTerm()。   

    CoInitialize和CoUninitialize必须成对使用,后者不必。

     AfxOleInit()和AfxOleTerm()其实也是需要成对的,但是,在你的程序中,AfxOleTerm()可以不出现,这是因为,MFC已经帮你做好了(有兴趣的话,你可以仔细研究一下CWinThread::m_lpfnOleTermOrFreeLib,而CWinApp是从CWinThread继承的)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值