2010-07-19 77 views
3

我想写一个Delphi函数来注册一个DLL。我希望函数检查OleInitialize是否已经在调用之前调用过。我想我试图避免两次初始化的后果,因为我不确定它们可能是什么。我担心我的函数不能像regsvr32.exe那样处理各种dll。如何检查OleInitialize是否已被调用?

+2

如果你的函数需要初始化COM,并且你不确定它是否已经被初始化,那么记录你的函数,说明它的一个先决条件是应用程序必须已经初始化它。然后你的功能不必担心它。 – 2010-07-19 05:11:14

回答

8

看看在documentation

返回值
[...]
S_FALSE - COM库已初始化这个公寓。

...也:

通常,COM库是在一间公寓只有一次初始化。后续调用将会成功,只要他们不尝试更改公寓的并发模型,但将返回S_FALSE