SccCreateSubProject 函式

此函式會在 自變數所指定的現有父專案下,建立具有指定名稱的 lpParentProjPath 子專案。

語法

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

參數

pContext

[in]原始檔控制外掛程式內容指標。

hWnd

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

lpUser

[in, out]用戶名稱(最多SCC_USER_SIZE,包括 NULL 終止符)。

lpParentProjPath

[in]識別父項目路徑的字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

lpSubProjName

[in]建議的子項目名稱(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

lpAuxProjPath

[in, out]識別項目的輔助字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

lpSubProjPath

[in, out]識別子項目路徑的輸出字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

傳回值

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

Description
SCC_OK 已成功建立子專案。
SCC_E_INITIALIZEFAILED 無法初始化父專案。
SCC_E_INVALIDUSER 用戶無法登入原始檔控制系統。
SCC_E_COULDNOTCREATEPROJECT 無法建立子專案。
SCC_E_PROJSYNTAXERR 無效的專案語法。
SCC_E_UNKNOWNPROJECT 原始檔控制外掛程式未知父專案。
SCC_E_INVALIDFILEPATH 無效或無法使用的檔案路徑。
SCC_E_NOTAUTHORIZED 不允許使用者執行這項作業。
SCC_E_ACCESSFAILURE 存取原始檔控制系統時發生問題,可能是因為網路或爭用問題。 建議重試。
SCC_E_CONNECTIONFAILURE 發生原始檔控制外掛程式連線問題。
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
非特定失敗。

備註

如果名稱已存在子專案,函式可以變更預設名稱以建立唯一名稱,例如將 “_<number>” 加入其中。 呼叫端必須準備好接受、 lpSubProjPathlpAuxProjPathlpUser變更。 lpSubProjPathlpAuxProjPath自變數接著會在呼叫 SccOpenProject 時使用。 呼叫端在傳回時不應修改它們。 這些字串提供一種方式,讓原始檔控制外掛程式追蹤它需要與專案產生關聯的資訊。 呼叫端 IDE 不會在傳回時顯示這兩個參數,因為外掛程式可以使用可能不適合檢視的格式化字串。 函式會傳回成功或失敗的程式代碼,如果成功,則會將變數 lpSubProjPath 填入新專案的完整項目路徑。

此函式類似於 SccGetProjPath,不同之處在於它會以無訊息方式建立專案,而不是提示用戶選取專案。 呼叫 函SccCreateSubProject式時,且 lpAuxProjPath 不會是空的,lpParentProjName而且會對應至有效的專案。 IDE 通常會從先前呼叫 SccGetProjPath 函式或 SccGetParentProjectPath 收到這些字串。

lpUser 變數是用戶名稱。 IDE 會傳入先前從 SccGetProjPath接收的相同用戶名稱,而原始檔控制外掛程式應該使用名稱做為預設值。 如果用戶已經與外掛程式有開啟的連線,則外掛程式應該嘗試排除任何提示,以確保函式以無訊息方式運作。 不過,如果登入失敗,外掛程式應該提示使用者輸入登入,並在收到有效的登入時,將 lpUser名稱傳回 。 因為外掛程式可能會變更此字串,因此 IDE 一律會配置大小緩衝區(SCC_USER_LEN+1 或SCC_USER_SIZE,其中包含 null 終止符的空間)。 如果字串已變更,新字串必須是有效的登入名稱(至少與舊字串一樣有效)。

SccCreateSubProject 和 SccGetParentProjectPath 的技術注意事項

在 Visual Studio 中將方案和專案新增至原始檔控制已簡化,以將提示使用者選取原始檔控制系統中位置的次數降到最低。 如果原始檔控制外掛程式同時支援新的函式和SccGetParentProjectPathSccCreateSubProject Visual Studio 就會啟動這些變更。 不過,下列登錄專案可用來停用這些變更,並還原為先前的 Visual Studio(原始檔控制外掛程式 API 1.1 版)行為:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl]“DoNotCreateSolutionRootFolderInSourceControl”=dword:00000001

如果此登入專案不存在,或設定為 dword:00000000,Visual Studio 會嘗試使用新的函式和 SccCreateSubProjectSccGetParentProjectPath

如果登錄專案設定為 dword:00000001,Visual Studio 不會嘗試使用這些新函式,而且新增至原始檔控制的作業會如同在舊版 Visual Studio 中一樣運作。

另請參閱