共用方式為


查詢編輯功能 查詢儲存功能(原始檔控制 VSPackage)

Visual Studio 編輯器可以廣播查詢編輯查詢儲存 (QEQS) 事件。 Visual Studio 原始檔版本控制存根會實作 QEQS 服務,使其成為 QEQS 事件的接收者。 然後,這些事件會委派給目前作用中的原始檔控制 VSPackage。 運作中的原始檔控制 VSPackage 會實作IVsQueryEditQuerySave2及其方法。 介面的方法 IVsQueryEditQuerySave2 通常會在第一次編輯文件之前,以及儲存文件之前立即呼叫。

查詢編輯保存事件

原始檔控制 VSPackage 必須藉由實作 IVsQueryEditQuerySave2 介面和必要的方法來處理 QEQS 事件。 以下是 VSPackage 至少必須實作的兩種方法的簡短描述。 實際實作必須符合原始碼控制模型的邏輯。

QueryEditFiles 方法

當任何專案或編輯器想要修改檔案時,會呼叫 。QueryEditFiles 理想情況下,在修改檔案 之前 和儲存檔案時呼叫此方法。 叫用時,方法 IVsQueryEditQuerySave2::QueryEditFiles 會檢查指定的檔案是否在原始檔控制之下、是否需要簽出,以及是否可以重新載入。 如果情況阻止檔案可編輯, IVsQueryEditQuerySave2::QueryEditFiles 則方法會告知呼叫程式取消編輯。 呼叫端也可以指定調用模式。 在「無訊息」模式下,只有在不導致任何 UI 出現時,此方法才會採取行動。 如果 UI 是不可避免的,則必須傳回旗標來指出問題。

該方法以交易方式運作;也就是說,如果取消單一檔案的編輯,則會取消所有檔案的編輯。 相反地,如果允許編輯,則允許所有檔案進行編輯。 如果這個方法允許對一組指定的檔案進行編輯一次,則它必須一律允許在相同檔案集的後續呼叫中進行編輯。 允許編輯迴圈會繼續進行,直到檔案關閉、儲存和重新載入為止;直到它們的屬性(屬性)發生變化;或直到原始檔控制套件變更為止。 實作方法 IVsQueryEditQuerySave2::QueryEditFiles 時要考慮的情況包括多個檔案、特殊檔案、使用者取消操作,以及內存編輯。

QuerySaveFiles 方法

當任何專案或編輯器需要儲存一組檔案時,會呼叫 。QuerySaveFiles 叫用時,方法 IVsQueryEditQuerySave2::QuerySaveFiles 會檢查指定的檔案是否為唯讀,以及它們是否處於原始檔控制之下。 如果需要簽出檔案,呼叫會委派給版本控制套件。 如果情況阻止儲存檔案, IVsQueryEditQuerySave2::QuerySaveFiles 則方法必須告訴編輯器取消儲存。 如同方法 IVsQueryEditQuerySave2::QueryEditFiles ,呼叫端可以指定調用模式。 在「無訊息」模式下,只有在不導致任何 UI 出現時,此方法才會採取行動。 如果 UI 是不可避免的,則必須傳回旗標來指出問題。

此方法必須以交易方式運作;也就是說,如果取消單一檔案的儲存,則會取消所有檔案的儲存。 相反地,如果允許儲存,則必須允許所有檔案儲存。 與方法 IVsQueryEditQuerySave2::QueryEditFiles 一樣,實作方法 IVsQueryEditQuerySave2::QuerySaveFiles 時要考慮的情況包括多個檔案、特殊檔案、從使用者取消,以及記憶體內編輯。