【问题标题】:How to check if OleInitialize has already been called?如何检查是否已经调用了 OleInitialize?
【发布时间】:2010-07-19 03:23:04
【问题描述】:

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

【问题讨论】:

  • 如果您的函数需要初始化 COM,而您不确定它是否已经被初始化,那么记录您的函数以说明其先决条件之一是应用程序必须已经初始化它.那么你的函数就不用担心了。

标签: delphi com delphi-7


【解决方案1】:

看看documentation

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

...还有:

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

【讨论】:

    猜你喜欢
    • 2019-03-05
    • 2021-08-27
    • 2020-07-07
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多