SccSetOption 函数

此函数设置用于控制源代码管理插件行为的选项。

语法

SCCRTN SccSetOption(
   LPVOID pvContext,
   LONG   nOption,
   LONG   dwVal
);

参数

pvContext

[in]源代码管理插件上下文结构。

nOption

[in]正在设置的选项。

dwVal

[in]选项的设置。

返回值

此函数的源代码管理插件实现应返回以下值之一:

说明
SCC_OK 已成功设置该选项。
SCC_I_SHARESUBPROJOK 如果 nOptionSCC_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_EVENTQUEUEnOption,有两个 dwVal可能的值,即 SCC_OPT_EQ_ENABLE SCC_OPT_EQ_DISABLE和。

SCC_OPT_HASCANCELMODE

如果为nOptionSCC_OPT_HASCANCELMODE该值,IDE 允许用户取消长时间的操作。 SCC_OPT_HCM_NO 设置为dwVal(默认值)表示 IDE 没有取消模式。 如果源代码管理插件希望用户能够取消,则必须提供自己的“取消”按钮。 SCC_OPT_HCM_YES 指示 IDE 提供取消操作的功能,因此 SCC 插件不需要显示自己的“取消”按钮。 如果 IDE 设置为 dwVal SCC_OPT_HCM_YES,则它已准备好响应 SCC_MSG_STATUSDOCANCEL 发送到 lpTextOutProc 回调函数的消息(请参阅 LPTEXTOUTPROC)。 如果 IDE 未设置此变量,插件不应发送这两条消息。

SCC_OPT_NAMECHANGEPFN

如果 nOption 设置为 SCC_OPT_NAMECHANGEPFN,并且源代码管理插件和 IDE 都允许它,则插件实际上可以在源代码管理操作期间重命名或移动文件。 将dwVal设置为 OPTNAMECHANGEPFN 类型的函数指针。 在源代码管理操作期间,插件可以调用此函数,并传入三个参数。 这些是文件的旧名称(具有完全限定的路径),该文件的新名称(具有完全限定的路径),以及指向与 IDE 相关的信息的指针。 IDE 通过调用SccSetOption设置为 <a0/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 假定插件只能将文件添加到当前本地文件夹中。

另请参阅