是否有一種簡單的方法來判斷CoInitializeSecurity是否已被調用進程?如何判斷CoInitializeSecurity是否已被調用進程?
我需要調用CoInitializeEx並使用COM接口,但有時調用代碼(我無法控制)在啓動序列期間先調用CoInitializeSecurity,然後它會落入CoInitializeSecurity中結束於E_RPC_TOO_LATE。
我想要做的是檢測CoInitializeSecurity尚未被調用,並延遲一段時間(大約十秒左右),直到調用者設法使其到達CoInitializeSecurity之前,我繼續到CoInitializeEx。
增加這個延遲解決了這個問題很好,除了我不喜歡在每次通話中都有這樣的延遲 - 只是啓動時的第一個延遲。因此,需要檢測CoInitializeSecurity是否已被調用。
嗯,當你調用它時,你會發現它已經被調用了E_RPC_TOO_LATE。這不會有幫助。如果你無法控制其他代碼的功能,很難看到治癒方法。與該代碼的所有者交談以解決問題。 – 2011-03-31 21:41:05
我看到沒有人回答你的問題;我需要一個答案。我想也許會問,「如何得到我當前的COM線程模型?」可能會做到這一點(如果我們可以*得到一個線程模型,那麼我們知道它已經被初始化)。但是我也找不到這個問題的答案。 – 2012-05-31 14:38:22