SccInitialize 函数
此函数初始化源代码管理插件,并提供集成开发环境(IDE)的功能和限制。
语法
SCCRTN SccInitialize (
LPVOID* ppvContext,
HWND hWnd,
LPCSTR lpCallerName,
LPSTR lpSccName,
LPLONG lpSccCaps,
LPSTR lpAuxPathLabel,
LPLONG pnCheckoutCommentLen,
LPLONG pnCommentLen
);
参数
ppvContext
[in]源代码管理插件可以在此处放置指向其上下文结构的指针。
hWnd
[in]源代码管理插件可以作为其提供的任何对话框的父级的 IDE 窗口的句柄。
lpCallerName
[in]调用源代码管理插件的程序的名称。
lpSccName
[in, out]源代码管理插件放置其自己的名称(不超过 SCC_NAME_LEN
)的缓冲区。
lpSccCaps
[out]返回源代码管理插件的功能标志。
lpAuxPathLabel
[in, out]源代码管理插件放置一个字符串来描述 SccOpenProject 和 SccGetProjPath 返回的参数的缓冲区(不会超过SCC_AUXLABEL_LEN
)。lpAuxProjPath
pnCheckoutCommentLen
[out]返回检查注释允许的最大长度。
pnCommentLen
[out]返回其他注释允许的最大长度。
返回值
此函数的源代码管理插件实现应返回以下值之一:
值 | 说明 |
---|---|
SCC_OK | 源代码管理初始化成功。 |
SCC_E_INITIALIZEFAILED | 无法初始化系统。 |
SCC_E_NOTAUTHORIZED | 不允许用户执行指定的操作。 |
SCC_E_NONSPECFICERROR | 非特定故障;未初始化源代码管理系统。 |
注解
IDE 首次加载源代码管理插件时会调用此函数。 它使 IDE 能够将某些信息(如调用方名称)传递给插件。 IDE 还会返回某些信息,例如注释和插件功能允许的最大长度。
指向 ppvContext
指针 NULL
。 源代码管理插件可以分配结构供自己使用,并将指向该结构的 ppvContext
指针存储在其中。 IDE 会将此指针传递给所有其他 VSSCI API 函数,允许插件提供上下文信息,而无需使用全局存储并支持该插件的多个实例。 调用 SccUninitialize 时,应解除分配此结构。
参数lpCallerName
lpSccName
使 IDE 和源代码管理插件能够交换名称。 这些名称可能仅用于区分多个实例,或者它们实际上可能出现在菜单或对话框中。
该lpAuxPathLabel
参数是一个字符串,用作注释,用于标识存储在解决方案文件中的辅助项目路径,并将其传递给对 SccOpenProject 的调用中的源代码管理插件。 Visual Source保险箱使用字符串“Source保险箱 Project:”;其他源代码管理插件应避免使用此特定字符串。
该 lpSccCaps
参数为源代码管理插件提供了一个用于存储位标志的位置,用于指示插件的功能。 (有关功能位标志的完整列表,请参阅 功能标志)。 例如,如果插件计划将结果写入调用方提供的回调函数,插件将设置功能位SCC_CAP_TEXTOUT。 这将指示 IDE 为版本控制结果创建窗口。