SccPopulateList 함수
이 함수는 특정 소스 제어 명령에 대한 파일 목록을 업데이트하고 지정된 모든 파일의 소스 제어 상태를 제공합니다.
구문
SCCRTN SccPopulateList (
LPVOID pvContext,
enum SCCCOMMAND nCommand,
LONG nFiles,
LPCSTR* lpFileNames,
POPLISTFUNC pfnPopulate,
LPVOID pvCallerData,
LPLONG lpStatus,
LONG fOptions
);
매개 변수
pvContext
[in] 소스 제어 플러그 인 컨텍스트 구조입니다.
nCommand
[in] lpFileNames
배열의 모든 파일에 적용할 소스 제어 명령입니다(가능한 명령 목록은 명령 코드 참조).
nFiles
[in] lpFileNames
배열의 파일 수입니다.
lpFileNames
[in] IDE에 알려진 파일 이름의 배열입니다.
pfnPopulate
[in] 파일을 추가 및 제거하기 위해 호출하는 IDE 콜백 함수입니다(자세한 내용은 POPLISTFUNC 참조).
pvCallerData
[in] 콜백 함수에 변경되지 않은 상태로 전달될 값입니다.
lpStatus
[in, out] 각 파일에 대한 상태 플래그를 반환하는 소스 제어 플러그 인의 배열입니다.
fOptions
[in] 명령 플래그입니다(자세한 내용은 특정 명령에서 사용하는 Bitflags의 "PopulateList 플래그" 섹션 참조).
Return Value
이 함수의 소스 제어 플러그 인 구현은 다음 값 중 하나를 반환해야 합니다.
값 | Description |
---|---|
SCC_OK | 성공. |
SCC_E_NONSPECIFICERROR | 일반적인 오류입니다. |
설명
이 함수는 파일 목록에서 현재 상태를 검사합니다. 또한 파일이 nCommand
에 대한 조건과 일치하지 않을 때 pfnPopulate
콜백 함수를 사용하여 호출자에게 알립니다. 예를 들어 명령이 SCC_COMMAND_CHECKIN
일 때 목록 내 파일이 체크 아웃되지 않은 경우 콜백을 사용하여 호출자에게 알립니다. 경우에 따라 소스 제어 플러그 인은 명령의 일부일 수 있는 다른 파일을 찾아서 추가할 수 있습니다. 이를 통해 예를 들어 Visual Basic 사용자가 프로젝트에서 사용하지만 Visual Basic 프로젝트 파일에 표시되지 않는 .bmp 파일을 체크 아웃할 수 있습니다. 사용자가 IDE에서 Get 명령을 선택합니다. IDE는 사용자가 가져올 수 있다고 판단하는 모든 파일의 목록을 표시하지만, 목록을 표시하기 전에 SccPopulateList
함수를 호출하여 표시할 목록이 최신 상태인지 확인합니다.
예시
IDE는 사용자가 가져올 수 있다고 판단하는 파일 목록을 작성합니다. 이 목록을 표시하기 전에 SccPopulateList
함수를 호출합니다. 그러면 소스 제어 플러그 인이 목록에서 파일을 추가하고 삭제할 수 있습니다. 플러그 인은 지정된 콜백 함수를 호출하여 목록을 수정합니다(자세한 내용은 POPLISTFUNC 참조).
플러그 인은 함수가 완료된 후 SccPopulateList
함수에서 반환할 때까지 파일을 추가 및 삭제하는 pfnPopulate
함수를 계속 호출합니다. 그런 다음 IDE가 해당 목록을 표시할 수 있습니다. lpStatus
배열은 IDE에서 전달한 원래 목록의 모든 파일을 나타냅니다. 플러그 인은 콜백 함수를 사용하는 것 외에도 이러한 모든 파일의 상태를 채웁니다.
참고 항목
소스 제어 플러그 인에는 항상 목록을 그대로 두고 이 함수에서 즉시 반환하는 옵션이 있습니다. 플러그 인이 이 함수를 구현하는 경우 SccInitialize에 대한 첫 번째 호출에서 SCC_CAP_POPULATELIST
기능 비트 플래그를 설정하여 이를 나타낼 수 있습니다. 기본적으로 플러그 인은 항상 전달되는 모든 항목이 파일이라고 가정해야 합니다. 그러나 IDE가 fOptions
매개 변수에서 SCC_PL_DIR
플래그를 설정하는 경우 전달되는 모든 항목은 디렉터리로 간주됩니다. 플러그 인은 디렉터리에 속한 모든 파일을 추가해야 합니다. IDE는 파일과 디렉터리를 혼합하여 전달하지 않습니다.