SccGetCommandOptions 函数
此函数提示用户输入给定命令的高级选项。
语法
SCCRTN SccGetCommandOptions(
LPVOID pvContext,
HWND hWnd,
enum SCCCOMMAND iCommand,
LPCMDOPTS* ppvOptions
);
参数
pvContext
[in]源代码管理插件上下文结构。
hWnd
[in]源代码管理插件可以作为其提供的任何对话框的父级的 IDE 窗口的句柄。
iCommand
[in]请求其高级选项的命令(请参阅 命令代码 了解可能的值)。
ppvOptions
[in]选项结构(也可以是 NULL
)。
返回值
此函数的源代码管理插件实现应返回以下值之一:
值 | 说明 |
---|---|
SCC_OK | 成功。 |
SCC_I_ADV_SUPPORT | 源代码管理插件支持命令的高级选项。 |
SCC_I_OPERATIONCANCELED | 用户取消了源代码管理插件的 “选项 ”对话框。 |
SCC_E_OPTNOTSUPPORTED | 源代码管理插件不支持此操作。 |
SCC_E_ISCHECKEDOUT | 无法对当前检查已注销的文件执行此操作。 |
SCC_E_ACCESSFAILURE | 访问源代码管理系统时出现问题,可能是因为网络或争用问题。 建议重试。 |
SCC_E_NONSPECIFICERROR | 非特定故障。 |
备注
IDE 首次 ppvOptions
=NULL
调用此函数,以确定源代码管理插件是否支持指定命令的高级选项功能。 如果插件确实支持该命令的功能,则当用户请求高级选项(通常作为对话框中的高级按钮实现)并提供指向ppvOptions
NULL
指针的非 NULL 指针时,IDE 将再次调用此函数。 该插件将用户指定的任何高级选项存储在专用结构中,并返回指向该结构的 ppvOptions
指针。 然后,此结构将传递给需要了解的其他所有源代码管理插件 API 函数,包括对函数的 SccGetCommandOptions
后续调用。
例如,可能有助于阐明这种情况。
用户选择 “获取 ”命令,IDE 将显示“ 获取 ”对话框。 IDE 调用SccGetCommandOptions
设置为iCommand
SCC_COMMAND_GET
和ppvOptions
设置为 NULL
.. 源代码管理插件将此解释为问题“是否具有此命令的高级选项?”如果插件返回SCC_I_ADV_SUPPORT
,IDE 在其“获取”对话框中显示“高级”按钮。
用户第一次单击“高级”按钮时,IDE 再次调用SccGetCommandOptions
该函数,这次调用的是指向指针的非NULL``ppvOptions
NULL
指针。 该插件显示自己的 “获取选项 ”对话框,提示用户输入信息,将该信息放入其自己的结构中,并返回指向该结构的 ppvOptions
指针。
如果用户在同一对话框中再次单击“高级”,IDE 将再次调用SccGetCommandOptions
函数而不更改ppvOptions
,以便将结构传回插件。 这使插件能够将其对话框重新初始化为用户以前设置的值。 插件在返回之前修改结构。
最后,当用户在 IDE 的“获取”对话框中单击“确定”时,IDE 将调用 SccGet,并传递包含高级选项的结构ppvOptions
。
注意
当 IDE 显示“选项”对话框时,将使用该命令SCC_COMMAND_OPTIONS
,该对话框允许用户设置控制集成工作原理的首选项。 如果源代码管理插件想要提供自己的首选项对话框,可以从 IDE 首选项对话框中的“高级”按钮显示它。 插件只负责获取和保存此信息;IDE 不使用它或修改它。