SccCreateSubProject 函式
這個函式會建立一個子專案使用指定的名稱,在 [現有的父專案所指定的lpParentProjPath引數。
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
參數
pContext
[in]原始檔控制外掛程式的內容的指標。hWnd
[in]原始檔控制外掛程式可用於為父代對話框它所提供的 IDE 視窗控制代碼。lpUser
輸入 [、 輸出]使用者名稱 (最多為 SCC_USER_SIZE,其中包含 NULL 結束字元)。lpParentProjPath
[in]字串,識別上層專案路徑 (最多為 SCC_PRJPATH_SIZE,其中包含 NULL 結束字元)。lpSubProjName
[in]建議的子專案名稱 (最多為 SCC_PRJPATH_SIZE,其中包含 NULL 結束字元)。lpAuxProjPath
輸入 [、 輸出]輔助的字串,用來識別專案 (最多為 SCC_PRJPATH_SIZE,其中包含 NULL 結束字元)。lpSubProjPath
輸入 [、 輸出]識別的路徑 (最多為 SCC_PRJPATH_SIZE,其中包含 NULL 結束字元) 的子專案的輸出字串。
傳回值
原始檔控制外掛程式的實作這個函式被期待傳回下列值之一:
值 |
描述 |
---|---|
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>"連結到它。 呼叫端必須準備好接收變動lpUser, lpSubProjPath,以及lpAuxProjPath。 lpSubProjPath和lpAuxProjPath引數則會使用在呼叫SccOpenProject 函式。 不應該由呼叫端傳回時修改它們。 這些字串會提供方法的原始檔控制外掛程式,以便追蹤,以便將與專案相關聯的資訊。 因為外掛程式可以使用格式化的字串可能無法適用於檢視呼叫者 IDE 將不會顯示在傳回時,這兩個參數。 函式會傳回成功或失敗的程式碼,而且如果成功的話,會填滿變數lpSubProjPath與新專案的完整專案路徑。
這個函數很類似SccGetProjPath 函式,不同之處在於,它會以無訊息模式建立專案,而不會提示使用者選取其中一個。 當SccCreateSubProject呼叫函式時, lpParentProjName和lpAuxProjPath不可為空白,並將對應於有效的專案。 這些字串通常會接收從先前的呼叫 IDE SccGetProjPath函式或SccGetParentProjectPath 函式。
lpUser引數就是使用者名稱。 IDE 將傳送從擁有先前所收到的相同使用者名稱SccGetProjPath,以及原始檔控制外掛程式應該使用名稱做為預設值。 如果使用者已經開啟的連線與外掛程式,然後此外掛程式應該嘗試排除任何提示,以確保該函式運作以無訊息模式。 不過,如果登入失敗時,外掛程式應該提示使用者登入,當它收到有效的登入,成功備份中的名稱lpUser。 因為外掛程式可能會變更這個字串,IDE 會自動配置的緩衝區大小 (SCC_USER_LEN + 1 或 SCC_USER_SIZE,其中包含 null 結束字元的空間)。 如果變更字串時,新的字串必須是有效的登入名稱 (最少為有效與舊的字串)。
SccCreateSubProject 和 SccGetParentProjectPath 的技術注意事項
加入至原始檔控制的方案與專案已經簡化了方式 Visual Studio 減到最少的次數,系統會提示使用者選取原始檔控制系統中的位置。 如果原始檔控制外掛程式可支援兩個新的函式,將這些變更啟動的 Visual Studio SccCreateSubProject和SccGetParentProjectPath。 不過,下列的登錄項目可用來停用這些變更並還原先前的 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 較早版本中所顯示的一樣。