Partager via


LPTEXTOUTPROC

Lorsque l'utilisateur effectue une opération de contrôle de code source à partir de l'environnement (IDE) de développement intégré (IDE), le plug-in contrôle de code source peut souhaiter acheminer des messages d'erreur ou d'état concernant l'opération. le plug-in peut afficher ses propres messages à cet effet. Toutefois, pour plus d'intégration transparente, le plug-in peut passer des chaînes à l'IDE, qui les affiche ensuite de sa méthode native pour afficher les informations d'état. Le mécanisme de ceci est le pointeur fonction d'LPTEXTOUTPROC . L'IDE implémente cette fonction (décrite plus en détail ci-dessous) pour afficher l'erreur et l'état.

L'IDE passe au plug-in contrôle de code source un pointeur fonction à cette fonction, comme le paramètre d' lpTextOutProc , en appelant SccOpenProject, fonction. Pendant une opération de SCC, par exemple, au milieu d'un appel à SccGet, fonction impliquant de nombreux fichiers, le plug-in peut appeler la fonction d' LPTEXTOUTPROC , en passant périodiquement des chaînes à afficher. L'IDE peut afficher ces chaînes dans une barre d'état, une fenêtre Sortie, ou dans une zone de message indépendant, selon le cas. Éventuellement, l'IDE peut être en mesure de consulter certains messages dont le bouton d' Annuler . Cela permet à l'utilisateur d'annuler l'opération, et donne à l'IDE la possibilité de passer ces informations sur le plug-in.

Signature

La fonction de sortie de l'IDE a la signature suivante :

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

Paramètres

  • display_string
    Une chaîne de texte à afficher. Cette chaîne ne doit pas être terminée par un retour chariot ou un saut de ligne.

  • mesg_type
    Type de message. Le tableau suivant répertorie les valeurs prises en charge pour ce paramètre.

    Valeur

    Description

    SCC_MSG_INFO, SCC_MSG_WARNING, SCC_MSG_ERROR

    Le message est considéré des informations, avertissement, ni erreur.

    SCC_MSG_STATUS

    Le message affiche l'état et peut être affiché dans la barre d'état.

    SCC_MSG_DOCANCEL

    envoyé sans la chaîne de message.

    SCC_MSG_STARTCANCEL

    Commence affichage d'un bouton d' Annuler .

    SCC_MSG_STOPCANCEL

    cesse d'afficher un bouton d' Annuler .

    SCC_MSG_BACKGROUND_IS_CANCELLED

    Demande l'IDE si l'opération en arrière-plan doit être annulée : Retourne SCC_MSG_RTN_CANCEL IDE si l'opération a été annulée ; sinon, retourne SCC_MSG_RTN_OK. Le paramètre d' display_string est castée en tant que structure de SccMsgDataIsCancelled , qui est fournie par le plug-in contrôle de code source.

    SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE

    Indique l'IDE sur un fichier avant d'être extrait du contrôle de version. Le paramètre d' display_string est castée en tant que structure de SccMsgDataOnBeforeGetFile , qui est fournie par le plug-in contrôle de code source.

    SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE

    Indique l'IDE sur un fichier après qu'il a été récupéré du contrôle de version. Le paramètre d' display_string est castée en tant que structure de SccMsgDataOnAfterGetFile , qui est fournie par le plug-in contrôle de code source.

    SCC_MSG_BACKGROUND_ON_MESSAGE

    Indique l'IDE de l'état actuel d'une opération d'arrière-plan. Le paramètre d' display_string est castée en tant que structure de SccMsgDataOnMessage , qui est fournie par le plug-in contrôle de code source.

Valeur de retour

Valeur

Description

SCC_MSG_RTN_OK

La chaîne a été restituée ou l'opération a été effectuée correctement.

SCC_MSG_RTN_CANCEL

l'utilisateur souhaite annuler l'opération.

Exemple

Supposez les appels de l'IDE SccGet, fonction avec vingt noms de fichiers. Le plug-in contrôle de code source souhaite empêcher annuler l'opération au milieu d'un get de fichier. Après l'obtention de chaque fichier, il appelle lpTextOutProc, en lui passant les informations d'état sur chaque fichier, et envoie un message d' SCC_MSG_DOCANCEL s'il n'a pas d'état à enregistrer. Si à tout moment le plug-in accepte une valeur de retour d' SCC_MSG_RTN_CANCEL de l'IDE, il annule l'opération d'extraction immédiatement, afin que des fichiers ne soient extraits.

Structures

SccMsgDataIsCancelled

typedef struct {
   DWORD dwBackgroundOperationID;
} SccMsgDataIsCancelled;

cette structure est envoyée avec le message d' SCC_MSG_BACKGROUND_IS_CANCELLED . Il est utilisé pour communiquer l'ID de l'opération en arrière-plan qui a été annulée.

SccMsgDataOnBeforeGetFile

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

cette structure est envoyée avec le message d' SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE . Elle est utilisée pour communiquer le nom du fichier à environ récupérer et de l'ID de l'opération en arrière-plan qui fait récupérer.

SccMsgDataOnAfterGetFile

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

cette structure est envoyée avec le message d' SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE . Elle est utilisée pour communiquer le résultat d'extraire le fichier spécifié ainsi que l'ID de l'opération en arrière-plan qui a fait récupérer. Consultez les valeurs de retour pour SccGet, fonction pour ce qui peut être fourni en conséquence.

SccMsgDataOnMessage

[C++]

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

cette structure est envoyée avec le message d' SCC_MSG_BACKGROUND_ON_MESSAGE . Elle est utilisée pour signaler l'état actuel d'une opération en arrière-plan. L'état est exprimé sous la forme d'une chaîne à afficher par l'IDE, et bIsError indique la gravité du message (TRUE pour un message d'erreur ; FALSE pour un avertissement ou un message d'information). L'ID de l'opération d'arrière-plan envoyant le rapport est également donné.

Exemple de code

Voici un bref exemple d'appel LPTEXTOUTPROC envoyer le message d' SCC_MSG_BACKGROUND_ON_MESSAGE , montrant comment effectuer un cast de la structure pour l'appel.

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

Voir aussi

Autres ressources

Fonctions de rappel implémentées par l'IDE

Plug-ins de contrôle de code source