3
我想寫一個Delphi函數來註冊一個DLL。我希望函數檢查OleInitialize是否已經在調用之前調用過。我想我試圖避免兩次初始化的後果,因爲我不確定它們可能是什麼。我擔心我的函數不能像regsvr32.exe那樣處理各種dll。如何檢查OleInitialize是否已被調用?
我想寫一個Delphi函數來註冊一個DLL。我希望函數檢查OleInitialize是否已經在調用之前調用過。我想我試圖避免兩次初始化的後果,因爲我不確定它們可能是什麼。我擔心我的函數不能像regsvr32.exe那樣處理各種dll。如何檢查OleInitialize是否已被調用?
看看在documentation:
返回值
[...]
S_FALSE
- COM庫已初始化這個公寓。
...也:
通常,COM庫是在一間公寓只有一次初始化。後續調用將會成功,只要他們不嘗試更改公寓的併發模型,但將返回
S_FALSE
。
如果你的函數需要初始化COM,並且你不確定它是否已經被初始化,那麼記錄你的函數,說明它的一個先決條件是應用程序必須已經初始化它。然後你的功能不必擔心它。 – 2010-07-19 05:11:14