LPTEXTOUTPROC

当用户从集成开发环境内部时执行源代码管理操作 (IDE),源代码管理插件可能需要传达错误或状态消息与操作关联。 该插件重用现有显示自己的消息框。 但是,对于无缝集成,插件可以通过字符串到 IDE,然后将其替换为显示状态信息为本机方式。 此机制是LPTEXTOUTPROC 函数指针。 IDE 实现此功能 (如下更详细地介绍) 显示的错误和状态。

,在调用 SccOpenProject 函数时, IDE 传递到源代码管理插件函数指针。此功能,作为 lpTextOutProc 参数。 在 SCC 操作时,例如,在对涉及多个文件的 SccGet 函数 的调用元,该插件可调用 LPTEXTOUTPROC 功能,定期一个字符串传递显示。 IDE 会显示这些字符串在状态栏,在输出窗口,或者在单独的消息框,根据。 或者, IDE 会可以显示与 取消 按钮的某些消息。 这使用户取消操作,,并为 IDE 能够通过此信息回该插件。

Signature

IDE 的输出函数具有以下签名:

typedef LONG (*LPTEXTOUTPROC) (
   LPSTR display_string,
   LONG mesg_type
);

参数

  • display_string
    显示的文本字符串。 不应停止该字符串包含回车或换行。

  • mesg_type
    消息的类型。 下表列出了此参数支持的值。

    说明

    SCC_MSG_INFO, SCC_MSG_WARNING, SCC_MSG_ERROR

    消息视为信息、警告或错误。

    SCC_MSG_STATUS

    消息在状态栏显示状态,并且可以显示。

    SCC_MSG_DOCANCEL

    不发送消息字符串。

    SCC_MSG_STARTCANCEL

    显示 取消 按钮的 Begins。

    SCC_MSG_STOPCANCEL

    停止显示 取消 按钮。

    SCC_MSG_BACKGROUND_IS_CANCELLED

    ,如果后台操作中移除,需要 IDE:,如果取消了操作, IDE 返回 SCC_MSG_RTN_CANCEL ;否则,返回 SCC_MSG_RTN_OK。 display_string 参数转换为 SccMsgDataIsCancelled 结构,源代码管理插件提供。

    SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE

    ,在从版本控制之前,检索通知文件的 IDE。 display_string 参数转换为 SccMsgDataOnBeforeGetFile 结构,源代码管理插件提供。

    SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE

    ,在从版本控制后,将检索到通知文件的 IDE。 display_string 参数转换为 SccMsgDataOnAfterGetFile 结构,源代码管理插件提供。

    SCC_MSG_BACKGROUND_ON_MESSAGE

    调用后台操作的当前状态的 IDE。 display_string 参数转换为 SccMsgDataOnMessage 结构,源代码管理插件提供。

返回值

说明

SCC_MSG_RTN_OK

该字符串将显示或操作是否已成功完成。

SCC_MSG_RTN_CANCEL

用户要取消操作。

示例

假定 IDE 调用与二十个文件名称的 SccGet 函数 。 源代码管理插件若要防止取消操作在文件访问元。 在获取每个文件后,将调用 lpTextOutProc,将有关每个文件的状态信息,并发送 SCC_MSG_DOCANCEL 信息,如果它没有报告的状态。 如果该插件随时接收 SCC_MSG_RTN_CANCEL 的返回值从 IDE 的,则立即取消获取操作,因此,没有其他文件不进行检索。

结构

SccMsgDataIsCancelled

typedef struct {
   DWORD dwBackgroundOperationID;
} SccMsgDataIsCancelled;

此结构发送的 SCC_MSG_BACKGROUND_IS_CANCELLED 消息。 它用于将取消后台操作的 ID。

SccMsgDataOnBeforeGetFile

typedef struct {
   DWORD dwBackgroundOperationID;
   PCSTR szFile;
} SccMsgDataOnBeforeGetFile;

此结构发送的 SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE 消息。 它用于将文件要检索的和执行检索后台操作的 ID 的名称。

SccMsgDataOnAfterGetFile

typedef struct {
   DWORD dwBackgroundOperationID;
   PCSTR szFile;
   SCCRTN sResult;
} SccMsgDataOnAfterGetFile;

此结构发送的 SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE 消息。 它用于将检索指定的文件并执行检索后台操作的 ID 的结果。 有关可生成结果的内容的 SccGet 函数 参见返回值。

SccMsgDataOnMessage

[C++]

typedef struct {
   DWORD dwBackgroundOperationID;
   PCSTR szMessage;
   BOOL bIsError;
} SccMsgDataOnMessage;

此结构发送的 SCC_MSG_BACKGROUND_ON_MESSAGE 消息。 它用于将后台操作的当前状态。 该状态表示,在 IDE 中显示的字符串和 bIsError 指示消息 (错误消息的TRUE 的严重级别; FALSE 警告的或一个信息性消息的)。 还可让将状态的后台操作的 ID。

代码示例

这是调用 LPTEXTOUTPROC 的简短示例发送 SCC_MSG_BACKGROUND_ON_MESSAGE 信息,说明如何将调用机制。

LONG SendStatusMessage(
    LPTEXTOUTPROC pTextOutProc,
    DWORD         dwBackgroundID,
    LPCTSTR       pStatusMsg,
    BOOL          bIsError)
{
    SccMsgDataOnMessage msgData = { 0 };
    LONG                result  = 0;

    msgData.dwBackgroundOperationID = dwBackgroundID;
    msgData.szMessage               = pStatusMsg;
    msgData.bIsError                = bIsError;

    result = pTextOutProc(reinterpret_cast<LPCTSTR>(&msgData), SCC_MSG_BACKGROUND_ON_MESSAGE);
    return result;
}

请参见

其他资源

IDE 实现的回调函数

源代码管理插件