SccAddFromScc 함수
이 함수를 사용하여 사용자가 소스 제어 시스템에 이미 있는 파일을 찾은 다음, 해당 파일을 현재 프로젝트의 일부로 만들 수 있습니다. 예를 들어 이 함수는 파일을 복사하지 않고 현재 프로젝트로 공통 헤더 파일을 가져올 수 있습니다. 파일, lplpFileNames
의 반환 배열에는 사용자가 IDE 프로젝트에 추가하려는 파일 목록이 포함됩니다.
구문
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
매개 변수
pvContext
[in] 소스 제어 플러그 인 컨텍스트 구조입니다.
hWnd
[in] 소스 제어 플러그 인이 제공하는 대화 상자의 부모로 사용할 수 있는 IDE 창에 대한 핸들입니다.
lpnFiles
[in, out] 추가되는 파일 수에 대한 버퍼입니다. (lplpFileNames
에서 가리키는 메모리를 해제할 경우 NULL
입니다. 자세한 내용은 설명을 참조하세요.)
lplpFileNames
[in, out] 디렉터리 경로가 없는 모든 파일 이름에 대한 포인터 배열입니다. 이 배열은 소스 제어 플러그 인에 의해 할당되고 해제됩니다. lpnFiles
= 1이고 lplpFileNames
가 NULL
이 아닌 경우 lplpFileNames
가 가리키는 배열의 이름에 대상 폴더가 포함됩니다.
Return Value
이 함수의 소스 제어 플러그 인 구현은 다음 값 중 하나를 반환해야 합니다.
값 | Description |
---|---|
SCC_OK | 파일이 성공적으로 배치되어 프로젝트에 추가되었습니다. |
SCC_I_OPERATIONCANCELED | 작업이 아무런 영향 없이 취소되었습니다. |
SCC_I_RELOADFILE | 파일 또는 프로젝트를 다시 로드해야 합니다. |
설명
IDE는 이 함수를 호출합니다. 소스 제어 플러그 인에서 로컬 대상 폴더 지정을 지원하는 경우 IDE는 lpnFiles
= 1을 전달하고 로컬 폴더 이름을 lplpFileNames
에 전달합니다.
SccAddFromScc
함수에 대한 호출이 반환될 때 플러그 인은 필요에 따라 파일 이름 배열에 대한 메모리를 할당하는 값을 lpnFiles
및lplpFileNames
에 할당합니다(이 할당은 lplpFileNames
에서 포인터를 대체함). 소스 제어 플러그 인은 모든 파일을 사용자의 디렉터리 또는 지정된 지정 폴더에 배치합니다. 그런 다음, IDE는 IDE 프로젝트에 파일을 추가합니다.
마지막으로 IDE는 이 함수를 두 번째로 호출하여 lpnFiles
에 대해 NULL
을 전달합니다. 이는 소스 제어 플러그 인이 lplpFileNames``.
에서 파일 이름 배열에 할당된 메모리를 해제하는 특수 신호로 해석됩니다.
lplpFileNames
는 char ***
포인터입니다. 소스 제어 플러그 인은 파일 이름에 대한 포인터 배열에 포인터를 배치하므로 이 API에 대한 표준 방식으로 목록을 전달합니다.
참고 항목
VSSCI API의 초기 버전에서는 추가된 파일에 대한 대상 프로젝트를 나타내는 방법을 제공하지 않았습니다. 이를 수용하기 위해 lplpFIleNames
매개 변수의 의미 체계가 향상되어 출력 매개 변수가 아닌 in/out 매개 변수가 됩니다. 단일 파일만 지정한 경우, 즉 lpnFiles
에서 가리키는 값이 1인 경우 lplpFileNames
의 첫 번째 요소는 대상 폴더를 포함합니다. 이러한 새 의미 체계를 사용하기 위해 IDE는 매개 변수가 SccSetOption
설정된 함수를 nOption
호출합니다 SCC_OPT_SHARESUBPROJ
. 소스 제어 플러그 인이 의미 체계를 지원하지 않으면 SCC_E_OPTNOTSUPPORTED
가 반환됩니다. 이렇게 하면 소스 제어에서 추가 기능을 사용할 수 없게 됩니다. 플러그 인이 소스 제어에서 추가 기능(SCC_CAP_ADDFROMSCC
)을 지원하는 경우 새 의미 체계를 지원하고 SCC_I_SHARESUBPROJOK
를 반환해야 합니다.