LPTEXTOUTPROC
Quando l'utente esegue un'operazione di controllo del codice sorgente dall'ambiente di sviluppo integrato (IDE) (IDE), il plug-in controllo del codice sorgente potrebbe essere necessario indicare l'errore o messaggi di stato per quanto riguarda l'operazione. Il plug-in consente di visualizzare le proprie finestre di messaggio per questo scopo. Tuttavia, per l'integrazione più senza, il plug-in può passare le stringhe dell'IDE, che quindi visualizzati nella modalità nativa di visualizzazione di informazioni sullo stato. il meccanismo per questo è il puntatore a funzione diLPTEXTOUTPROC . L'ide implementa questa funzione (descritta in modo più dettagliato di seguito) per visualizzare l'errore e dello stato.
L'ide passa al plug-in controllo del codice sorgente un puntatore a funzione a questa funzione, come parametro di lpTextOutProc quando chiama Funzione SccOpenProject. Durante un'operazione di SCC, ad esempio, nel mezzo di una Funzione SccGet chiamata a includere molti file, il plug-in può chiamare la funzione di LPTEXTOUTPROC , passando periodicamente le stringhe alla visualizzazione. L'ide possibile visualizzare queste stringhe in una barra di stato, in una finestra di output, o una finestra di messaggio separata, in base alle esigenze. Facoltativamente, l'ide possa essere in grado di visualizzare determinati messaggi con un pulsante di Annulla . Ciò consente all'utente di annullare l'operazione e fornisce alla possibilità di comunicare le informazioni del plug-in.
Signature
La funzione di output dell'IDE con la seguente firma:
typedef LONG (*LPTEXTOUTPROC) (
LPSTR display_string,
LONG mesg_type
);
Parametri
display_string
Una stringa di testo da visualizzare. Questa stringa non deve essere interrotta con un ritorno a capo o un avanzamento riga.mesg_type
Il tipo di messaggio. Nella tabella seguente sono elencati i valori supportati per questo parametro.Valore
Descrizione
SCC_MSG_INFO, SCC_MSG_WARNING, SCC_MSG_ERROR
Il messaggio viene considerato informazioni, problema, o errore.
SCC_MSG_STATUS
Il messaggio indica lo stato e può essere visualizzato nella barra di stato.
SCC_MSG_DOCANCEL
Inviato senza stringa di messaggio.
SCC_MSG_STARTCANCEL
Avviare visualizzato un pulsante di Annulla .
SCC_MSG_STOPCANCEL
Sequenza di visualizzare un pulsante di Annulla .
SCC_MSG_BACKGROUND_IS_CANCELLED
Chiede l'ide se l'operazione in background deve essere annullato: L'ide restituisce SCC_MSG_RTN_CANCEL se l'operazione è stata annullata; in caso contrario, restituisce SCC_MSG_RTN_OK. Il parametro di display_string viene sottoposto a cast come struttura di SccMsgDataIsCancelled , fornita dal plug-in controllo del codice sorgente.
SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE
Indica l'ide su un file prima che venga recuperato dal controllo della versione. Il parametro di display_string viene sottoposto a cast come struttura di SccMsgDataOnBeforeGetFile , fornita dal plug-in controllo del codice sorgente.
SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE
Indica l'ide su un file dopo che è stato recuperato dal controllo della versione. Il parametro di display_string viene sottoposto a cast come struttura di SccMsgDataOnAfterGetFile , fornita dal plug-in controllo del codice sorgente.
SCC_MSG_BACKGROUND_ON_MESSAGE
Indica l'ide lo stato corrente di un'operazione in background. Il parametro di display_string viene sottoposto a cast come struttura di SccMsgDataOnMessage , fornita dal plug-in controllo del codice sorgente.
Valore restituito
Valore |
Descrizione |
---|---|
SCC_MSG_RTN_OK |
La stringa viene visualizzata o l'operazione è stata completata correttamente. |
SCC_MSG_RTN_CANCEL |
L'utente desidera annullare l'operazione. |
Esempio
Si supponga le chiamate dell'Funzione SccGet IDE con venti nomi file. Il plug-in controllo del codice sorgente desidera impedire annullare l'operazione in corso un file per ottenere. Dopo avere ottenuto ogni file, chiama lpTextOutProc, comunicantegli le informazioni sullo stato di ogni file e invia un messaggio di SCC_MSG_DOCANCEL se non è stato da inserire nel rapporto. Se in qualsiasi momento il plug-in riceve un valore restituito di SCC_MSG_RTN_CANCEL IDE, annulla l'operazione get immediatamente, in modo che non più file viene recuperato.
Strutture
SccMsgDataIsCancelled
typedef struct {
DWORD dwBackgroundOperationID;
} SccMsgDataIsCancelled;
Questa struttura viene inviata con il messaggio di SCC_MSG_BACKGROUND_IS_CANCELLED . Viene utilizzata per comunicare l'ID dell'operazione in background che è stata annullata.
SccMsgDataOnBeforeGetFile
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szFile;
} SccMsgDataOnBeforeGetFile;
Questa struttura viene inviata con il messaggio di SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE . Viene utilizzato per passare il nome del file su da recuperare e l'ID dell'operazione in background che esegue recuperare.
SccMsgDataOnAfterGetFile
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szFile;
SCCRTN sResult;
} SccMsgDataOnAfterGetFile;
Questa struttura viene inviata con il messaggio di SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE . Viene utilizzata per comunicare il risultato di recuperare il file specificato e l'ID dell'operazione in background che ha apportato recuperare. Visualizzare i valori restituiti per Funzione SccGet quello che può essere fornito di seguito.
SccMsgDataOnMessage
[C++]
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szMessage;
BOOL bIsError;
} SccMsgDataOnMessage;
Questa struttura viene inviata con il messaggio di SCC_MSG_BACKGROUND_ON_MESSAGE . Viene utilizzato per comunicare lo stato corrente di un'operazione in background. Lo stato viene espresso come una stringa da visualizzare dall'IDE e bIsError indica la gravità del messaggio (TRUE per un messaggio di errore; FALSE per un avviso o un messaggio informativo). L'ID dell'operazione in background che invia lo stato viene inoltre fornito.
Esempio di codice
Di seguito è riportato un breve esempio di chiamare LPTEXTOUTPROC per inviare il messaggio di SCC_MSG_BACKGROUND_ON_MESSAGE , mostrando come eseguire il cast della struttura per la chiamata.
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;
}