如何检查OleInitialize是否已被调用?

Sam*_*Sam 3 delphi com delphi-7

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

Geo*_*che 8

看看文档:

返回值
[...]
S_FALSE- COM库已在此公寓中初始化.

... 并且:

通常,COM库仅在公寓上初始化一次.后续调用将成功,只要它们不尝试更改公寓的并发模型,但将返回S_FALSE.