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]源代码管理插件放置一个字符串来描述 SccOpenProjectSccGetProjPath 返回的参数的缓冲区(不会超过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,应解除分配此结构。

参数lpCallerNamelpSccName使 IDE 和源代码管理插件能够交换名称。 这些名称可能仅用于区分多个实例,或者它们实际上可能出现在菜单或对话框中。

lpAuxPathLabel参数是一个字符串,用作注释,用于标识存储在解决方案文件中的辅助项目路径,并将其传递给对 SccOpenProject 的调用中的源代码管理插件。 Visual Source保险箱使用字符串“Source保险箱 Project:”;其他源代码管理插件应避免使用此特定字符串。

lpSccCaps 参数为源代码管理插件提供了一个用于存储位标志的位置,用于指示插件的功能。 (有关功能位标志的完整列表,请参阅 功能标志)。 例如,如果插件计划将结果写入调用方提供的回调函数,插件将设置功能位SCC_CAP_TEXTOUT。 这将指示 IDE 为版本控制结果创建窗口。

另请参阅