0
我可以在不初始化COM的情況下使用ShellExecute()
嗎?使用ShellExecute()時是否需要初始化COM?
我可以在不初始化COM的情況下使用ShellExecute()
嗎?使用ShellExecute()時是否需要初始化COM?
的documentation有問題的答案:
因爲ShellExecute的可以委託執行到外殼擴展(數據 源,上下文菜單處理,動詞實現)是 使用組件對象模型(COM)激活,應在調用ShellExecute之前初始化COM應爲 。某些Shell擴展 需要COM單線程單元(STA)類型。
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
當然,還有例子,其中的ShellExecute不使用這些類型的外殼擴展的 之一,這些情況下就不需要 COM都被初始化:在這種情況下,如下所示 COM應被初始化。儘管如此,在使用此功能之前總是要初始化COM是 的良好慣例。
不希望聽起來過於居高臨下,有一點可以避免這一點,那就是確保您始終從頭到腳閱讀文檔。