다음을 통해 공유


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

nOptionSCC_OPT_EVENTQUEUE인 경우 IDE는 백그라운드 처리를 사용하지 않도록 설정(또는 다시 사용하도록 설정)합니다. 예를 들어 컴파일 중에 IDE는 소스 제어 플러그 인에 모든 종류의 유휴 상태 처리를 중지하도록 지시할 수 있습니다. 컴파일 후에는 백그라운드 처리를 다시 사용하도록 설정하여 플러그 인의 이벤트 큐를 최신 상태로 유지합니다. nOptionSCC_OPT_EVENTQUEUE 값에 해당하는 dwVal의 값은 두 가지가 있을 수 있는데 SCC_OPT_EQ_ENABLESCC_OPT_EQ_DISABLE입니다.

SCC_OPT_HASCANCELMODE

nOption 값이 SCC_OPT_HASCANCELMODE이면 IDE를 통해 사용자가 긴 작업을 취소할 수 있습니다. dwValSCC_OPT_HCM_NO(기본값)로 설정하면 IDE에 취소 모드가 없음을 나타냅니다. 사용자가 취소할 수 있게 하려면 소스 제어 플러그 인에서 자체 취소 단추를 제공해야 합니다. SCC_OPT_HCM_YES는 IDE가 작업 취소 기능을 제공하므로 SCC 플러그 인이 자체 취소 단추를 표시할 필요가 없음을 나타냅니다. IDE가 dwValSCC_OPT_HCM_YES로 설정하면 lpTextOutProc 콜백 함수로 전송되는 SCC_MSG_STATUS 메시지 및 DOCANCEL에 응답할 준비가 되어 있습니다(LPTEXTOUTPROC 참조). IDE에서 이 변수를 설정하지 않으면 플러그 인에서 이러한 두 메시지를 보내지 않아야 합니다.

SCC_OPT_NAMECHANGEPFN

nOption이 SCC_OPT_NAMECHANGEPFN으로 설정되고 소스 제어 플러그 인과 IDE가 모두 허용하는 경우 플러그 인은 소스 제어 작업 중에 파일의 이름을 실제로 바꾸거나 이동할 수 있습니다. dwValOPTNAMECHANGEPFN 형식의 함수 포인터로 설정됩니다. 소스 제어 작업 중에 플러그 인은 이 함수를 호출할 수 있고 세 개의 매개 변수를 전달합니다. 이는 파일의 이전 이름(정규화된 경로 포함), 해당 파일의 새 이름(정규화된 경로 포함), IDE와 관련성이 있는 정보에 대한 포인터입니다. IDE는 데이터를 가리키는 dwValSccSetOptionSCC_OPT_USERDATA로 설정된 nOption를 호출 하여 이 마지막 포인터에서 보냅니다. 이 함수에 대한 지원은 선택 사항입니다. 이 기능을 사용하는 VSSCI 플러그는 함수 포인터 및 사용자 데이터 변수를 NULL로 초기화해야 하며 이름이 지정되지 않은 한 이름 바꾸기 함수를 호출해서는 안 됩니다. 또한 지정된 값을 보유하거나 새 SccSetOption 호출에 대한 응답으로 변경할 수 있게 준비해야 합니다. 이 작업은 소스 제어 명령 작업의 중간에 발생하지 않지만 명령 간에는 발생할 수 있습니다.

SCC_OPT_SCCCHECKOUTONLY

nOption이 SCC_OPT_SCCCHECKOUTONLY로 설정된 경우 IDE는 현재 열려 있는 프로젝트의 파일을 소스 제어 시스템의 사용자 인터페이스를 통해 수동으로 체크 아웃해서는 안 됨을 나타냅니다. 대신 파일을 IDE 컨트롤의 소스 제어 플러그 인을 통해서만 체크 아웃해야 합니다. dwValueSCC_OPT_SCO_NO로 설정하면 플러그 인에서 파일을 정상적으로 처리해야 하며 소스 제어 UI를 통해 체크 아웃할 수 있습니다. dwValueSCC_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는 플러그 인이 현재 로컬 폴더에만 파일을 추가할 수 있다고 가정합니다.

참고 항목