SccSetOption 函数
此函数设置用于控制源代码管理插件行为的选项。
语法
SCCRTN SccSetOption(
LPVOID pvContext,
LONG nOption,
LONG dwVal
);
参数
pvContext
[in]源代码管理插件上下文结构。
nOption
[in]正在设置的选项。
dwVal
[in]选项的设置。
返回值
此函数的源代码管理插件实现应返回以下值之一:
值 | 说明 |
---|---|
SCC_OK | 已成功设置该选项。 |
SCC_I_SHARESUBPROJOK | 如果 nOption 是 SCC_OPT_SHARESUBPROJ 且源代码管理插件允许 IDE 设置目标文件夹,则返回该插件。 |
SCC_E_OPNOTSUPPORTED | 该选项未设置,不应依赖此选项。 |
注解
IDE 调用此函数来控制源代码管理插件的行为。 第一个参数 nOption
指示正在设置的值,而第二 dwVal
个参数则指示对该值执行的操作。 插件存储与此信息关联的pvContext``,
信息,因此 IDE 必须在调用 SccInitialize 后调用此函数(但不一定在每次调用 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
SCC_OPT_EVENTQUEUE
如果是nOption
,IDE 正在禁用(或重新启用)后台处理。 例如,在编译期间,IDE 可能会指示源代码管理插件停止任何类型的空闲处理。 编译后,它将重新启用后台处理,使插件的事件队列保持最新状态。 对应于 SCC_OPT_EVENTQUEUE
值 nOption
,有两个 dwVal
可能的值,即 SCC_OPT_EQ_ENABLE
SCC_OPT_EQ_DISABLE
和。
SCC_OPT_HASCANCELMODE
如果为nOption
SCC_OPT_HASCANCELMODE
该值,IDE 允许用户取消长时间的操作。 SCC_OPT_HCM_NO
设置为dwVal
(默认值)表示 IDE 没有取消模式。 如果源代码管理插件希望用户能够取消,则必须提供自己的“取消”按钮。 SCC_OPT_HCM_YES
指示 IDE 提供取消操作的功能,因此 SCC 插件不需要显示自己的“取消”按钮。 如果 IDE 设置为 dwVal
SCC_OPT_HCM_YES
,则它已准备好响应 SCC_MSG_STATUS
并 DOCANCEL
发送到 lpTextOutProc
回调函数的消息(请参阅 LPTEXTOUTPROC)。 如果 IDE 未设置此变量,插件不应发送这两条消息。
SCC_OPT_NAMECHANGEPFN
如果 nOption 设置为 SCC_OPT_NAMECHANGEPFN
,并且源代码管理插件和 IDE 都允许它,则插件实际上可以在源代码管理操作期间重命名或移动文件。 将dwVal
设置为 OPTNAMECHANGEPFN 类型的函数指针。 在源代码管理操作期间,插件可以调用此函数,并传入三个参数。 这些是文件的旧名称(具有完全限定的路径),该文件的新名称(具有完全限定的路径),以及指向与 IDE 相关的信息的指针。 IDE 通过调用SccSetOption
设置为 <nOption
> 来发送此最后一个指针,并dwVal
指向数据。 此函数的支持是可选的。 使用此功能的 VSSCI 插件必须初始化其函数指针和用户数据变量 NULL
,除非已指定重命名函数,否则它不得调用重命名函数。 它还应准备好保存它给定的值,或者更改该值以响应对新调用的调用 SccSetOption
。 这不会在源代码管理命令操作的中间发生,但可能会在命令之间发生。
SCC_OPT_SCCCHECKOUTONLY
如果设置为 nOption,IDE SCC_OPT_SCCCHECKOUTONLY
指示当前打开项目中的文件不应通过源代码管理系统的用户界面手动签出。 相反,应仅通过 IDE 控件下的源代码管理插件签出文件。 如果 dwValue
设置为 SCC_OPT_SCO_NO
,则表示应该通过插件正常处理文件,并且可以通过源代码管理 UI 签出文件。 如果 dwValue
设置为 SCC_OPT_SCO_YES
,则只允许插件签出文件,并且不应调用源代码管理系统的 UI。 这适用于 IDE 可能具有“伪文件”的情况,只有通过 IDE 签出才有意义。
SCC_OPT_SHARESUBPROJ
如果 nOption
设置为 SCC_OPT_SHARESUBPROJ
,IDE 将测试源代码管理插件在从源代码管理中添加文件时是否可以使用指定的本地文件夹。 在这种情况下, dwVal
参数的值并不重要。 如果插件允许 IDE 指定本地目标文件夹,在调用 SccAddFromScc 时,将从源代码管理中添加文件,则调用函数时SccSetOption
,插件必须返回SCC_I_SHARESUBPROJOK
。 然后,IDE 使用 lplpFileNames
函数的参数 SccAddFromScc
传入目标文件夹。 该插件使用该目标文件夹放置从源代码管理添加的文件。 如果设置选项时SCC_OPT_SHARESUBPROJ
插件未返回SCC_I_SHARESUBPROJOK
,IDE 假定插件只能将文件添加到当前本地文件夹中。