SccSetOption 函式
此函式會設定控制原始檔控制外掛程式行為的選項。
語法
SCCRTN SccSetOption(
LPVOID pvContext,
LONG nOption,
LONG dwVal
);
參數
pvContext
[in]原始檔控制外掛程式內容結構。
nOption
[in]正在設定的選項。
dwVal
[in]選項的設定。
傳回值
此函式的原始檔控制外掛程式實作應該會傳回下列其中一個值:
值 | Description |
---|---|
SCC_OK | 已成功設定選項。 |
SCC_I_SHARESUBPROJOK | 如果 nOption 是 SCC_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
如果 nOption
為 SCC_OPT_EVENTQUEUE
,則 IDE 正在停用 (或重新啟用) 背景處理。 例如,在編譯期間,IDE 可能會指示原始檔控制外掛程式停止任何類型的閑置處理。 編譯之後,它會重新啟用背景處理,讓外掛程式的事件佇列保持在最新狀態。 對應至 SCC_OPT_EVENTQUEUE
的值,針對 、 和 SCC_OPT_EQ_DISABLE
SCC_OPT_EQ_ENABLE
有兩個可能的值dwVal
。nOption
SCC_OPT_HASCANCELMODE
如果的值 nOption
是 SCC_OPT_HASCANCELMODE
,IDE 可讓使用者取消長時間的作業。 將設定 dwVal
為 SCC_OPT_HCM_NO
(預設值) 表示 IDE 沒有取消模式。 如果原始檔控制外掛程式想要用戶能夠取消,則必須提供自己的 [取消] 按鈕。 SCC_OPT_HCM_YES
表示 IDE 能夠取消作業,因此 SCC 外掛程式不需要顯示自己的 [取消] 按鈕。 如果 IDE 設定 dwVal
為 SCC_OPT_HCM_YES
,則會準備回應 SCC_MSG_STATUS
並 DOCANCEL
傳送至 lpTextOutProc
回呼函式的訊息(請參閱 LPTEXTOUTPROC)。 如果 IDE 未設定此變數,外掛程式就不應該傳送這兩則訊息。
SCC_OPT_NAMECHANGEPFN
如果 nOption 設定為 SCC_OPT_NAMECHANGEPFN
,而且原始檔控制外掛程式和 IDE 都允許它,外掛程式實際上可以在原始檔控制作業期間重新命名或移動檔案。 dwVal
將會設定為 OPTNAMECHANGEPFN 類型的函式指標。 在原始檔控制作業期間,外掛程式可以呼叫此函式,並傳入三個參數。 這些是檔案的舊名稱(具有完整路徑),該檔案的新名稱(具有完整路徑),以及與 IDE 相關的資訊指標。 IDE 會呼叫 設為 dwVal
SCC_OPT_USERDATA
,指向數據,SccSetOption
nOption
以傳送這個最後一個指標。 此函式的支持是選擇性的。 使用這項功能的 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 會假設外掛程式只能在目前的本機資料夾中新增檔案。