SccSetOption 函式

此函式會設定控制原始檔控制外掛程式行為的選項。

語法

SCCRTN SccSetOption(
   LPVOID pvContext,
   LONG   nOption,
   LONG   dwVal
);

參數

pvContext

[in]原始檔控制外掛程式內容結構。

nOption

[in]正在設定的選項。

dwVal

[in]選項 設定。

傳回值

此函式的原始檔控制外掛程式實作應該會傳回下列其中一個值:

Description
SCC_OK 已成功設定選項。
SCC_I_SHARESUBPROJOK 如果 nOptionSCC_OPT_SHARESUBPROJ 原始檔控制外掛程式允許 IDE 設定目的地資料夾, 則傳回 。
SCC_E_OPNOTSUPPORTED 未設定選項,不應依賴此選項。

備註

IDE 會呼叫此函式來控制原始檔控制外掛程式的行為。 第一個參數 nOption表示正在設定的值,而第二個 dwVal參數則表示該值該怎麼做。 外掛程式會儲存與 pvContext``, 相關聯的這項資訊,因此 IDE 必須在呼叫 SccInitialize 之後呼叫此函式(但不一定在每次呼叫 SccOpenProject 之後)。

選項及其值的摘要:

nOption dwValue 描述
SCC_OPT_EVENTQUEUE SCC_OPT_EQ_DISABLE

SCC_OPT_EQ_ENABLE
啟用/停用背景事件佇列。
SCC_OPT_USERDATA 任意值 指定要傳遞至 OPTNAMECHANGEPFN 回呼函式的使用者值。
SCC_OPT_HASCANCELMODE SCC_OPT_HCM_NO

SCC_OPT_HCM_YES
指出 IDE 目前是否支援取消作業。
SCC_OPT_NAMECHANGEPFN OPTNAMECHANGEPFN 回呼函式的指標 設定名稱變更回呼函式的指標。
SCC_OPT_SCCCHECKOUTONLY SCC_OPT_SCO_NO

SCC_OPT_SCO_YES
指出 IDE 是否允許手動取出其檔案(透過原始檔控制使用者介面),或是否只能透過原始檔控制外掛程式取出它們。
SCC_OPT_SHARESUBPROJ N/A 如果原始檔控制外掛程式允許 IDE 指定本機專案資料夾,外掛程式會傳 SCC_I_SHARESUBPROJOK回 。

SCC_OPT_EVENTQUEUE

如果 nOptionSCC_OPT_EVENTQUEUE,則 IDE 正在停用 (或重新啟用) 背景處理。 例如,在編譯期間,IDE 可能會指示原始檔控制外掛程式停止任何類型的閑置處理。 編譯之後,它會重新啟用背景處理,讓外掛程式的事件佇列保持在最新狀態。 對應至 SCC_OPT_EVENTQUEUE 的值,針對 、 和 SCC_OPT_EQ_DISABLESCC_OPT_EQ_ENABLE 有兩個可能的值dwValnOption

SCC_OPT_HASCANCELMODE

如果的值 nOptionSCC_OPT_HASCANCELMODE,IDE 可讓使用者取消長時間的作業。 將設定 dwValSCC_OPT_HCM_NO (預設值) 表示 IDE 沒有取消模式。 如果原始檔控制外掛程式想要用戶能夠取消,則必須提供自己的 [取消] 按鈕。 SCC_OPT_HCM_YES 表示 IDE 能夠取消作業,因此 SCC 外掛程式不需要顯示自己的 [取消] 按鈕。 如果 IDE 設定 dwValSCC_OPT_HCM_YES,則會準備回應 SCC_MSG_STATUSDOCANCEL 傳送至 lpTextOutProc 回呼函式的訊息(請參閱 LPTEXTOUTPROC)。 如果 IDE 未設定此變數,外掛程式就不應該傳送這兩則訊息。

SCC_OPT_NAMECHANGEPFN

如果 nOption 設定為 SCC_OPT_NAMECHANGEPFN,而且原始檔控制外掛程式和 IDE 都允許它,外掛程式實際上可以在原始檔控制作業期間重新命名或移動檔案。 dwVal將會設定為 OPTNAMECHANGEPFN 類型的函式指標。 在原始檔控制作業期間,外掛程式可以呼叫此函式,並傳入三個參數。 這些是檔案的舊名稱(具有完整路徑),該檔案的新名稱(具有完整路徑),以及與 IDE 相關的資訊指標。 IDE 會呼叫 設為 dwValSCC_OPT_USERDATA,指向數據,SccSetOptionnOption以傳送這個最後一個指標。 此函式的支持是選擇性的。 使用這項功能的 VSSCI 外掛程式必須將其函式指標和用戶數據變數初始化為 NULL,除非已指定重新命名函式,否則它不得呼叫重新命名函式。 它也應該準備保留它已提供的值,或變更它以回應對 的新呼叫 SccSetOption。 這不會發生在原始檔控制命令作業的中間,但可能會在命令之間發生。

SCC_OPT_SCCCHECKOUTONLY

如果 nOption 設定為 SCC_OPT_SCCCHECKOUTONLY,IDE 表示目前開啟專案中的檔案不應該透過原始檔控制系統的使用者介面手動取出。 相反地,檔案應該只透過IDE控件下的原始檔控制外掛程式取出。 如果 dwValue 設定為 SCC_OPT_SCO_NO,表示檔案應該由外掛程式正常處理,而且可以透過原始檔控制 UI 取出。 如果 dwValue 設定為 SCC_OPT_SCO_YES,則只允許外掛程式取出檔案,而且不應該叫用原始檔控制系統的 UI。 這適用於 IDE 可能具有「虛擬檔案」的情況,只有透過 IDE 簽出才有意義。

SCC_OPT_SHARESUBPROJ

如果nOption 設定為 SCC_OPT_SHARESUBPROJ,IDE 會測試原始檔控制外掛程式是否可以在從原始檔控制新增檔案時使用指定的本機資料夾。 在此情況下, dwVal 參數的值並不重要。 如果外掛程式允許 IDE 指定本機目的地資料夾,當呼叫 SccAddFromScc 時,檔案會從原始檔控制新增,則呼叫函式時SccSetOption,外掛程式必須傳回。SCC_I_SHARESUBPROJOK IDE 接著會使用 lplpFileNames 函式的 SccAddFromScc 參數來傳入目的地資料夾。 外掛程式會使用該目的地資料夾來放置從原始檔控制新增的檔案。 如果外掛程式未在設定選項時SCC_OPT_SHARESUBPROJ傳回SCC_I_SHARESUBPROJOK,IDE 會假設外掛程式只能在目前的本機資料夾中新增檔案。

另請參閱