2015-07-02 77 views

回答

2

documentation有問題的答案:

因爲ShellExecute的可以委託執行到外殼擴展(數據 源,上下文菜單處理,動詞實現)是 使用組件對象模型(COM)激活,應在調用ShellExecute之前初始化COM應爲 。某些Shell擴展 需要COM單線程單元(STA)類型。

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE) 

當然,還有例子,其中的ShellExecute不使用這些類型的外殼擴展的 之一,這些情況下就不需要 COM都被初始化:在這種情況下,如下所示 COM應被初始化。儘管如此,在使用此功能之前總是要初始化COM是 的良好慣例。

不希望聽起來過於居高臨下,有一點可以避免這一點,那就是確保您始終從頭到腳閱讀文檔。

相關問題