SccSetOption 함수
이 함수는 소스 제어 플러그 인의 동작을 제어하는 옵션을 설정합니다.
구문
SCCRTN SccSetOption(
LPVOID pvContext,
LONG nOption,
LONG dwVal
);
매개 변수
pvContext
[in] 소스 제어 플러그 인 컨텍스트 구조입니다.
nOption
[in] 설정되는 옵션입니다.
dwVal
[in] 옵션에 대한 설정입니다.
Return Value
이 함수의 소스 제어 플러그 인 구현은 다음 값 중 하나를 반환해야 합니다.
값 | Description |
---|---|
SCC_OK | 옵션을 설정했습니다. |
SCC_I_SHARESUBPROJOK | 반환된 nOption 경우 SCC_OPT_SHARESUBPROJ 소스 제어 플러그 인을 통해 IDE에서 대상 폴더를 설정할 수 있습니다. |
SCC_E_OPNOTSUPPORTED | 옵션이 설정되지 않았으며 사용해서는 안 됩니다. |
설명
IDE는 이 함수를 호출하여 소스 제어 플러그 인의 동작을 제어합니다. 첫 번째 매개 변수(nOption
)는 설정되는 값을 나타내고, 두 번째 매개 변수(dwVal
)는 해당 값으로 수행할 작업을 나타냅니다. 플러그 인은 SccInitialize를 호출한 후 IDE가 이 함수를 호출해야 하므로 pvContext``,
와 연결된 이 정보를 저장해야 합니다(그러나 SccOpenProject 호출 후에 매번 그런 것은 아님).
옵션 및 해당 값 요약:
nOption |
dwValue |
설명 |
---|---|---|
SCC_OPT_EVENTQUEUE |
SCC_OPT_EQ_DISABLE SCC_OPT_EQ_ENABLE |
백그라운드 이벤트 큐를 사용하거나 사용하지 않도록 설정합니다. |
SCC_OPT_USERDATA |
임의 값 | OPTNAMECHANGEPFN 콜백 함수에 전달할 사용자 값을 지정합니다. |
SCC_OPT_HASCANCELMODE |
SCC_OPT_HCM_NO SCC_OPT_HCM_YES |
IDE가 현재 작업 취소를 지원하는지 여부를 나타냅니다. |
SCC_OPT_NAMECHANGEPFN |
OPTNAMECHANGEPFN 콜백 함수에 대한 포인터 | 이름 변경 콜백 함수에 대한 포인터를 설정합니다. |
SCC_OPT_SCCCHECKOUTONLY |
SCC_OPT_SCO_NO SCC_OPT_SCO_YES |
IDE가 소스 제어 사용자 인터페이스를 통해 파일을 수동으로 체크 아웃할 수 있는지 또는 소스 제어 플러그 인을 통해서만 체크 아웃해야 하는지 여부를 나타냅니다. |
SCC_OPT_SHARESUBPROJ |
해당 없음 | 소스 제어 플러그 인에서 IDE가 로컬 프로젝트 폴더를 지정할 수 있도록 허용하면 플러그 인이 SCC_I_SHARESUBPROJOK 를 반환합니다. |
SCC_OPT_EVENTQUEUE
nOption
이 SCC_OPT_EVENTQUEUE
인 경우 IDE는 백그라운드 처리를 사용하지 않도록 설정(또는 다시 사용하도록 설정)합니다. 예를 들어 컴파일 중에 IDE는 소스 제어 플러그 인에 모든 종류의 유휴 상태 처리를 중지하도록 지시할 수 있습니다. 컴파일 후에는 백그라운드 처리를 다시 사용하도록 설정하여 플러그 인의 이벤트 큐를 최신 상태로 유지합니다. nOption
의 SCC_OPT_EVENTQUEUE
값에 해당하는 dwVal
의 값은 두 가지가 있을 수 있는데 SCC_OPT_EQ_ENABLE
및 SCC_OPT_EQ_DISABLE
입니다.
SCC_OPT_HASCANCELMODE
nOption
값이 SCC_OPT_HASCANCELMODE
이면 IDE를 통해 사용자가 긴 작업을 취소할 수 있습니다. dwVal
을 SCC_OPT_HCM_NO
(기본값)로 설정하면 IDE에 취소 모드가 없음을 나타냅니다. 사용자가 취소할 수 있게 하려면 소스 제어 플러그 인에서 자체 취소 단추를 제공해야 합니다. SCC_OPT_HCM_YES
는 IDE가 작업 취소 기능을 제공하므로 SCC 플러그 인이 자체 취소 단추를 표시할 필요가 없음을 나타냅니다. IDE가 dwVal
을 SCC_OPT_HCM_YES
로 설정하면 lpTextOutProc
콜백 함수로 전송되는 SCC_MSG_STATUS
메시지 및 DOCANCEL
에 응답할 준비가 되어 있습니다(LPTEXTOUTPROC 참조). IDE에서 이 변수를 설정하지 않으면 플러그 인에서 이러한 두 메시지를 보내지 않아야 합니다.
SCC_OPT_NAMECHANGEPFN
nOption이 SCC_OPT_NAMECHANGEPFN
으로 설정되고 소스 제어 플러그 인과 IDE가 모두 허용하는 경우 플러그 인은 소스 제어 작업 중에 파일의 이름을 실제로 바꾸거나 이동할 수 있습니다. dwVal
은 OPTNAMECHANGEPFN 형식의 함수 포인터로 설정됩니다. 소스 제어 작업 중에 플러그 인은 이 함수를 호출할 수 있고 세 개의 매개 변수를 전달합니다. 이는 파일의 이전 이름(정규화된 경로 포함), 해당 파일의 새 이름(정규화된 경로 포함), IDE와 관련성이 있는 정보에 대한 포인터입니다. IDE는 데이터를 가리키는 dwVal
및 SccSetOption
와 SCC_OPT_USERDATA
로 설정된 nOption
를 호출 하여 이 마지막 포인터에서 보냅니다. 이 함수에 대한 지원은 선택 사항입니다. 이 기능을 사용하는 VSSCI 플러그는 함수 포인터 및 사용자 데이터 변수를 NULL
로 초기화해야 하며 이름이 지정되지 않은 한 이름 바꾸기 함수를 호출해서는 안 됩니다. 또한 지정된 값을 보유하거나 새 SccSetOption
호출에 대한 응답으로 변경할 수 있게 준비해야 합니다. 이 작업은 소스 제어 명령 작업의 중간에 발생하지 않지만 명령 간에는 발생할 수 있습니다.
SCC_OPT_SCCCHECKOUTONLY
nOption이 SCC_OPT_SCCCHECKOUTONLY
로 설정된 경우 IDE는 현재 열려 있는 프로젝트의 파일을 소스 제어 시스템의 사용자 인터페이스를 통해 수동으로 체크 아웃해서는 안 됨을 나타냅니다. 대신 파일을 IDE 컨트롤의 소스 제어 플러그 인을 통해서만 체크 아웃해야 합니다. dwValue
를 SCC_OPT_SCO_NO
로 설정하면 플러그 인에서 파일을 정상적으로 처리해야 하며 소스 제어 UI를 통해 체크 아웃할 수 있습니다. dwValue
가 SCC_OPT_SCO_YES
로 설정된 경우 플러그 인만 파일을 체크 아웃할 수 있으며 소스 제어 시스템의 UI를 호출하면 안 됩니다. 이는 IDE에 IDE를 통해서만 체크 아웃하는 것이 적합한 "의사 파일"이 있을 수도 있는 경우에만 해당합니다.
SCC_OPT_SHARESUBPROJ
설정된 SCC_OPT_SHARESUBPROJ
경우 nOption
IDE는 소스 제어 플러그 인이 소스 제어에서 파일을 추가할 때 지정된 로컬 폴더를 사용할 수 있는지 여부를 테스트합니다. 이 경우 dwVal
매개 변수의 값은 중요하지 않습니다. 플러그 인에서 IDE가 SccAddFromScc가 호출될 때 소스 제어에서 파일이 추가될 로컬 대상 폴더를 지정할 수 있도록 허용하는 경우 SccSetOption
함수가 호출될 때 플러그 인은 SCC_I_SHARESUBPROJOK
를 반환해야 합니다. 그런 다음 IDE는 SccAddFromScc
함수의 lplpFileNames
매개 변수를 사용하여 대상 폴더에 전달합니다. 플러그 인은 해당 대상 폴더를 사용하여 소스 제어에서 추가된 파일을 배치합니다. SCC_OPT_SHARESUBPROJ
옵션을 설정할 때 플러그 인이 SCC_I_SHARESUBPROJOK
를 반환하되지 않으면 IDE는 플러그 인이 현재 로컬 폴더에만 파일을 추가할 수 있다고 가정합니다.