實作處理巢狀專案的命令
IDE 也能夠將命令傳遞到傳遞IVsUIHierarchy和IOleCommandTarget介面,以巢狀的專案或父代專案可以篩選或覆寫的命令。
注意事項 |
---|
通常由父專案的命令可篩選資料。例如命令Build和Deploy ,由 IDE 無法進行篩選。 |
下列步驟將說明實作命令處理的程序。
程序
若要實作命令處理
當使用者選取巢狀的專案或節點巢狀專案中:
- IDE 呼叫QueryStatus方法。
-或-
- 如果命令來自於階層架構] 視窗中,例如快顯功能表指令,在 [方案總管] 中,IDE 便會呼叫QueryStatusCommand在專案的父代的方法。
父專案可以檢查參數傳遞至QueryStatus,例如pguidCmdGroup和prgCmds,以判斷父專案是否應篩選命令。 如果父專案實作篩選命令後,它應該將它設定:
prgCmds[0].cmdf = OLECMDF_SUPPORTED; // make sure it is disabled prgCmds[0].cmdf &= ~MSOCMDF_ENABLED;
然後父專案應該會傳回S_OK。
如果父專案將不會篩選] 指令,它應該只是傳回S_OK。 在此情況下,IDE 會自動在傳送命令至子專案。
若要將命令傳送至子專案沒有父專案。 IDE 會執行這項工作。.