다음을 통해 공유


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이고 lplpFileNamesNULL이 아닌 경우 lplpFileNames가 가리키는 배열의 이름에 대상 폴더가 포함됩니다.

Return Value

이 함수의 소스 제어 플러그 인 구현은 다음 값 중 하나를 반환해야 합니다.

Description
SCC_OK 파일이 성공적으로 배치되어 프로젝트에 추가되었습니다.
SCC_I_OPERATIONCANCELED 작업이 아무런 영향 없이 취소되었습니다.
SCC_I_RELOADFILE 파일 또는 프로젝트를 다시 로드해야 합니다.

설명

IDE는 이 함수를 호출합니다. 소스 제어 플러그 인에서 로컬 대상 폴더 지정을 지원하는 경우 IDE는 lpnFiles = 1을 전달하고 로컬 폴더 이름을 lplpFileNames에 전달합니다.

SccAddFromScc 함수에 대한 호출이 반환될 때 플러그 인은 필요에 따라 파일 이름 배열에 대한 메모리를 할당하는 값을 lpnFileslplpFileNames에 할당합니다(이 할당은 lplpFileNames에서 포인터를 대체함). 소스 제어 플러그 인은 모든 파일을 사용자의 디렉터리 또는 지정된 지정 폴더에 배치합니다. 그런 다음, IDE는 IDE 프로젝트에 파일을 추가합니다.

마지막으로 IDE는 이 함수를 두 번째로 호출하여 lpnFiles에 대해 NULL을 전달합니다. 이는 소스 제어 플러그 인이 lplpFileNames``.에서 파일 이름 배열에 할당된 메모리를 해제하는 특수 신호로 해석됩니다.

lplpFileNameschar *** 포인터입니다. 소스 제어 플러그 인은 파일 이름에 대한 포인터 배열에 포인터를 배치하므로 이 API에 대한 표준 방식으로 목록을 전달합니다.

참고 항목

VSSCI API의 초기 버전에서는 추가된 파일에 대한 대상 프로젝트를 나타내는 방법을 제공하지 않았습니다. 이를 수용하기 위해 lplpFIleNames 매개 변수의 의미 체계가 향상되어 출력 매개 변수가 아닌 in/out 매개 변수가 됩니다. 단일 파일만 지정한 경우, 즉 lpnFiles에서 가리키는 값이 1인 경우 lplpFileNames의 첫 번째 요소는 대상 폴더를 포함합니다. 이러한 새 의미 체계를 사용하기 위해 IDE는 매개 변수가 SccSetOption 설정된 함수를 nOption 호출합니다 SCC_OPT_SHARESUBPROJ. 소스 제어 플러그 인이 의미 체계를 지원하지 않으면 SCC_E_OPTNOTSUPPORTED가 반환됩니다. 이렇게 하면 소스 제어에서 추가 기능을 사용할 수 없게 됩니다. 플러그 인이 소스 제어에서 추가 기능(SCC_CAP_ADDFROMSCC)을 지원하는 경우 새 의미 체계를 지원하고 SCC_I_SHARESUBPROJOK를 반환해야 합니다.

참고 항목