SccGetCommandOptions 函式

此函式會提示使用者輸入指定命令的進階選項。

語法

SCCRTN SccGetCommandOptions(
   LPVOID pvContext,
   HWND hWnd,
   enum SCCCOMMAND iCommand,
   LPCMDOPTS* ppvOptions
);

參數

pvContext

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

hWnd

[in]原始檔控制外掛程式可作為其提供之任何對話框之父代的 IDE 視窗句柄。

iCommand

[in]要求進階選項的命令(如需可能的值,請參閱 命令程式代碼 )。

ppvOptions

[in]選項結構 (也可以是 NULL)。

傳回值

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

Description
SCC_OK 成功。
SCC_I_ADV_SUPPORT 原始檔控制外掛程式支援命令的進階選項。
SCC_I_OPERATIONCANCELED 使用者已取消原始檔控制外掛程式的 [選項 ] 對話框。
SCC_E_OPTNOTSUPPORTED 原始檔控制外掛程式不支援這項作業。
SCC_E_ISCHECKEDOUT 無法在目前取出的檔案上執行這項作業。
SCC_E_ACCESSFAILURE 存取原始檔控制系統時發生問題,可能是因為網路或爭用問題。 建議重試。
SCC_E_NONSPECIFICERROR 非特定失敗。

備註

IDE 第一次呼叫 ppvOptions=NULL 這個函式,以判斷原始檔控制外掛程式是否支援指定命令的進階選項功能。 如果外掛程式確實支援該命令的功能,則當使用者要求進階選項時,IDE 會再次呼叫此函式(通常實作為ppvOptions對話方塊中的 [進階] 按鈕),並提供指向NULL指標的非 NULL 指標。 外掛程式會將使用者指定的任何進階選項儲存在私用結構中,並在 中 ppvOptions傳回該結構的指標。 接著,此結構會傳遞至所有其他需要瞭解的原始檔控制外掛程式 API 函式,包括對函式的 SccGetCommandOptions 後續呼叫。

範例可能有助於釐清這種情況。

用戶選擇 [取得 ] 命令,而 IDE 會顯示 [ 取得 ] 對話方塊。 IDE 會呼叫 SccGetCommandOptions 函式,iCommand並將 ppvOptions 設定SCC_COMMAND_GETNULL。 原始檔控制外掛程式會將其解譯為「您是否有此命令的任何進階選項?」如果外掛程式傳SCC_I_ADV_SUPPORT回 ,IDE 會在 [取得] 對話框中顯示 [進階] 按鈕。

使用者第一次按兩下 [進階] 按鈕時,IDE 會再次呼叫 函SccGetCommandOptions式,這次使用非NULL``ppvOptions指向指標的 NULL 外掛程式會顯示自己的 [取得選項 ] 對話框、提示使用者輸入資訊、將該資訊放入自己的結構中,並在 中 ppvOptions傳回該結構的指標。

如果使用者在同一個對話框中再次按兩下 [進階 ],IDE 會再次呼叫 函 SccGetCommandOptions 式而不變更 ppvOptions,因此結構會傳回外掛程式。 這可讓外掛程式將其對話方塊重新初始化至使用者先前設定的值。 外掛程式會在傳回之前修改 結構。

最後,當使用者在 IDE 的 [取得] 對話框中按兩下 [確定] 時,IDE 會呼叫 SccGet,並傳遞包含進階選項的 中ppvOptions傳回的結構。

注意

當 IDE 顯示 [選項] 對話框時,會使用 命令SCC_COMMAND_OPTIONS,讓使用者設定控制整合運作方式的喜好設定。 如果原始檔控制外掛程式想要提供自己的喜好設定對話框,可以從 IDE 喜好設定對話方塊中的 [進階] 按鈕顯示它。 外掛程式完全負責取得及保存此資訊;IDE 不會使用它或修改它。

另請參閱