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 종결자를 포함 하 여)을 하위 프로젝트에 대 한 경로 식별 하는 출력 문자열입니다.
반환 값
이 함수의 소스 제어 플러그 인 구현 다음 값 중 하나가 반환 해야 합니다.
값 |
설명 |
---|---|
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>"를 추가 하 여 고유 xml을 만들려면 기본 이름을 변경할 수 있습니다. 호출자에 게 변경 사항을 적용 해야 합니다 lpUser, lpSubProjPath, 및 lpAuxProjPath. lpSubProjPath 및lpAuxProjPath 인수를 호출 하는 데 사용 됩니다 다음 해당 SccOpenProject 함수. 가가 호출자에 게 반환 되 면 수정 해서는 안 됩니다. 이러한 문자열은 원본 컨트롤 프로젝트에 연결 하는 데 필요한 정보를 추적 하는 플러그 인에 대 한 있습니다. 플러그 인 보기에 적합 하지 않을 수 있는 서식이 지정 된 문자열 사용할 수 있으므로이 두 매개 변수가 반환 되 면 IDE 호출자에 게 표시 되지 않습니다. 성공 또는 실패 코드를 반환 함수와, 성공 하면 변수를 채우는 lpSubProjPath 새 프로젝트에 프로젝트 전체 경로를입니다.
이 함수를 유사 합니다 있는 SccGetProjPath 함수, 자동으로 하나를 선택 하 라는 메시지가 보다는 프로젝트를 만드는 경우를 제외 하 고. 경우는 SccCreateSubProject 함수가 호출 lpParentProjName 및 lpAuxProjPath 빈 상태로 표시 되며 잘못 프로젝트에 해당 합니다. 이 문자열에 대 한 이전 호출에서 IDE 일반적으로 받은 SccGetProjPath 함수 또는 SccGetParentProjectPath 함수.
lpUser 인수는 사용자 이름입니다. IDE에서 이전에 받지 않았던 것과 같은 사용자 이름으로 전달 합니다 SccGetProjPath, 소스 제어 플러그 인이 기본적으로 이름을 사용 해야 합니다. 연결 된 플러그 인 상태로 사용자가 이미 있으면 다음 플러그인 함수를 자동으로 작동 하는지 확인 하는 프롬프트를 제거 하십시오. 그러나 로그인에 실패할 경우 플러그 인에 로그인 한 내용은 유효한 로그인 이름을 다시 패스를 받을 때 라는 해야 lpUser. 플러그 인이 문자열 변경 될 수 있기 때문에 IDE 항상의 버퍼를 할당 합니다 (SCC_USER_LEN + 1 또는 null 종결자를 포함 하는 SCC_USER_SIZE) 크기를 조정 합니다. 문자열이 변경 되는 경우 (이전 문자열을 최소한으로 유효한) 유효한 로그인 이름을 새 문자열 이어야 합니다.
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 이전 버전에서와 마찬가지로 작동 합니다.