Partilhar via


LPTEXTOUTPROC

Quando o usuário executa uma operação de controle de origem de dentro do ambiente de desenvolvimento integrado (IDE), o plug-in de controle de origem talvez queira transmitir mensagens de status ou de erro relacionadas à operação. O plug-in pode exibir suas próprias caixas de mensagem para essa finalidade. No entanto, para obter mais perfeita integração, o plug-in pode transmitir seqüências para o IDE, que exibe em sua forma nativa de exibir informações de status. O mecanismo para isso é o LPTEXTOUTPROC ponteiro de função. O IDE implementa essa função (descrita em mais detalhes abaixo) para exibir o status e erros.

O IDE passa para o controle de origem plug-in um ponteiro de função para essa função, como o lpTextOutProc parâmetro, ao chamar o Função SccOpenProject. Durante uma operação de SCC, por exemplo, no meio de uma chamada para o Função SccGet envolvendo muitos arquivos, o plug-in pode chamar o LPTEXTOUTPROC função, periodicamente, passando para exibir seqüências de caracteres. O IDE pode exibir essas cadeias de caracteres em uma barra de status em uma janela de saída, ou em uma caixa de mensagem separada, conforme apropriado. Opcionalmente, o IDE pode ser capaz de exibir determinadas mensagens com um Cancelar botão. Isso permite que o usuário cancele a operação e fornece a capacidade de passar essas informações para o plug-in a IDE.

Assinatura

O IDE saída de função tem a seguinte assinatura:

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

Parâmetros

  • display_string
    Uma seqüência de texto para exibir. Essa seqüência de caracteres não deve ser finalizada com um carro de retorno ou alimentação de linha.

  • mesg_type
    O tipo de mensagem. A tabela a seguir lista os valores com suporte para esse parâmetro.

    Valor

    Descrição

    SCC_MSG_INFO, SCC_MSG_WARNING, SCC_MSG_ERROR

    A mensagem será considerada informações, aviso ou erro.

    SCC_MSG_STATUS

    A mensagem mostra o status e pode ser exibida na barra de status.

    SCC_MSG_DOCANCEL

    Enviado com nenhuma seqüência de mensagem.

    SCC_MSG_STARTCANCEL

    Começa exibindo um Cancelar botão.

    SCC_MSG_STOPCANCEL

    Interrompe a exibição de um Cancelar botão.

    SCC_MSG_BACKGROUND_IS_CANCELLED

    Solicita que o IDE se a operação de plano de fundo deve ser cancelada: IDE retorna SCC_MSG_RTN_CANCEL se a operação foi cancelada; Caso contrário, retornará SCC_MSG_RTN_OK. O display_string é um parâmetro de conversão como um SccMsgDataIsCancelled estrutura, que é fornecida pelo plug-in de controle de origem.

    SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE

    Informa o IDE sobre um arquivo antes de serem recuperado do controle de versão. O display_string é um parâmetro de conversão como um SccMsgDataOnBeforeGetFile estrutura, que é fornecida pelo plug-in de controle de origem.

    SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE

    Informa o IDE sobre um arquivo depois que tiver sido recuperado do controle de versão. O display_string é um parâmetro de conversão como um SccMsgDataOnAfterGetFile estrutura, que é fornecida pelo plug-in de controle de origem.

    SCC_MSG_BACKGROUND_ON_MESSAGE

    Informa o IDE do status atual de uma operação de plano de fundo. O display_string é um parâmetro de conversão como um SccMsgDataOnMessage estrutura, que é fornecida pelo plug-in de controle de origem.

Valor de retorno

Valor

Descrição

SCC_MSG_RTN_OK

A seqüência de caracteres foi exibida ou se a operação foi concluída com êxito.

SCC_MSG_RTN_CANCEL

O usuário deseja cancelar a operação.

Exemplo

Suponha que as chamadas do IDE a Função SccGet com vinte nomes de arquivo. O plug-in de controle de origem deseja impedir que a operação no meio de um arquivo, obtenha o cancelamento. Depois de obter cada arquivo, ele chama lpTextOutProc, passando as informações de status em cada arquivo e envia um SCC_MSG_DOCANCEL mensagem caso ela tenha nenhum status ao relatório. Se a qualquer momento o plug-in recebe um valor de retorno de SCC_MSG_RTN_CANCEL partir do IDE, ele cancela a operação get imediatamente, para que não há mais arquivos são recuperados.

Estruturas

SccMsgDataIsCancelled

typedef struct {
   DWORD dwBackgroundOperationID;
} SccMsgDataIsCancelled;

Essa estrutura é enviada com o SCC_MSG_BACKGROUND_IS_CANCELLED mensagem. Ele é usado para comunicar-se a identificação da operação em segundo plano que foi cancelada.

SccMsgDataOnBeforeGetFile

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

Essa estrutura é enviada com o SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE mensagem. Ele é usado para comunicar-se o nome do arquivo prestes a ser recuperado e a identificação da operação em segundo plano que está fazendo a recuperação.

SccMsgDataOnAfterGetFile

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

Essa estrutura é enviada com o SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE mensagem. Ele é usado para comunicar o resultado de recuperar o arquivo especificado, como também a identificação da operação de plano de fundo que faziam à recuperação. Consulte os valores de retorno para o Função SccGet para o que pode ser dado como resultado.

SccMsgDataOnMessage

[C++]

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

Essa estrutura é enviada com o SCC_MSG_BACKGROUND_ON_MESSAGE mensagem. Ele é usado para comunicar o status atual de uma operação de plano de fundo. O status é expresso como uma seqüência de caracteres a ser exibido pelo IDE, e bIsError indica a gravidade da mensagem (TRUE para uma mensagem de erro; FALSEpara um aviso ou mensagem informativa). A identificação da operação de plano de fundo, enviando o status também recebe.

Exemplo de código

Aqui está um exemplo breve de chamada LPTEXTOUTPROC para enviar o SCC_MSG_BACKGROUND_ON_MESSAGE mensagem, mostrando como converter a estrutura para a chamada.

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;
}

Consulte também

Outros recursos

Funções de retorno de chamada implementadas pelo IDE

Plug-ins de controle de origem