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>” 加入其中。 呼叫端必須準備好接受、 lpSubProjPath
和lpAuxProjPath
的lpUser
變更。 lpSubProjPath
和 lpAuxProjPath
自變數接著會在呼叫 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 中將方案和專案新增至原始檔控制已簡化,以將提示使用者選取原始檔控制系統中位置的次數降到最低。 如果原始檔控制外掛程式同時支援新的函式和SccGetParentProjectPath
, SccCreateSubProject
Visual Studio 就會啟動這些變更。 不過,下列登錄專案可用來停用這些變更,並還原為先前的 Visual Studio(原始檔控制外掛程式 API 1.1 版)行為:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl]“DoNotCreateSolutionRootFolderInSourceControl”=dword:00000001
如果此登入專案不存在,或設定為 dword:00000000,Visual Studio 會嘗試使用新的函式和 SccCreateSubProject
SccGetParentProjectPath
。
如果登錄專案設定為 dword:00000001,Visual Studio 不會嘗試使用這些新函式,而且新增至原始檔控制的作業會如同在舊版 Visual Studio 中一樣運作。