LPTEXTOUTPROC
Когда пользователь выполняет операцию системы управления версиями из интегрированной среды разработки (ide), подключаемый модуль системы управления версиями, может потребоваться передать ошибку или сообщений о состоянии, относящиеся к операции. Подключаемый модуль может отображать собственные окна сообщения. Однако дополнительные бесшовной компоновки, подключаемый модуль может передать строки в интегрированной среде разработки, которая затем отображает их собственным методом сведений о состоянии отображения. Механизм для этогоLPTEXTOUTPROC указатель функции. Интегрированная среда разработки реализует эту функцию (более подробно, описанных ниже) для отображения ошибок и состояния.
Интегрированная среда разработки передает в подключаемому модулю системы управления версиями указатель функции к этой функции как lpTextOutProc параметр, вызывающий Функция SccOpenProject. Во время операции SCC, например, в процессе вызова Функция SccGet в том числе много файлов, подключаемый модуль может вызвать LPTEXTOUTPROC функция, периодически передаче строки для отображения. Интегрированная среда разработки может отображать эти строки в строке состояния в окне вывода или в отдельном окне сообщения. При необходимости интегрированная среда разработки может иметь возможность показать некоторые сообщения с a Отмена кнопка. Это позволяет пользователю отменить операцию, и он позволяет интегрированной среде разработки возможность передать эти данные обратно в подключаемому модулю.
Сигнатура
Функция выхода интегрированной среды разработки имеет следующую сигнатуру:
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
Инициирует отображение a Отмена кнопка.
SCC_MSG_STOPCANCEL
Останавливает отображения a Отмена кнопка.
SCC_MSG_BACKGROUND_IS_CANCELLED
Запрашивает интегрированную среду разработки, если фоновая операция будет отменен. интегрированная среда разработки возвращает SCC_MSG_RTN_CANCEL если операция отменена; в противном случае возвращает SCC_MSG_RTN_OK. display_string параметр приводится как SccMsgDataIsCancelled структура, которая предоставляется подключаемым модулем системы управления версиями.
SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE
Указывает интегрированной среды разработки о файле, прежде чем он извлекается из системы управления версиями. display_string параметр приводится как SccMsgDataOnBeforeGetFile структура, которая предоставляется подключаемым модулем системы управления версиями.
SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE
Указывает интегрированной среды разработки о файле после того, как она была восстановлена из системы управления версиями. display_string параметр приводится как SccMsgDataOnAfterGetFile структура, которая предоставляется подключаемым модулем системы управления версиями.
SCC_MSG_BACKGROUND_ON_MESSAGE
Указывает интегрированной среды разработки текущего состояния фоновой операции. display_string параметр приводится как SccMsgDataOnMessage структура, которая предоставляется подключаемым модулем системы управления версиями.
Возвращаемое значение
Значение |
Описание |
---|---|
SCC_MSG_RTN_OK |
Строка отображается либо операция была завершена успешно. |
SCC_MSG_RTN_CANCEL |
Пользователь хочет, чтобы отменить операцию. |
Пример
Предположим вызовы интегрированной среды разработки Функция SccGet имена файлов с 20. Подключаемый модуль системы управления версиями хочет запретить отменить операцию в середине файла. После получения каждого файла, он вызывает lpTextOutProc, передавая им сведения о состоянии в каждом файле и отправляет a SCC_MSG_DOCANCEL сообщение, если он не имеет состояние уведомления. Если в любой момент подключаемый модуль получает возвращаемое значение SCC_MSG_RTN_CANCEL в интегрированной среде разработки, он отменяет операцию Get немедленно, так что больше нет файлов не будут получены.
Структуры
SccMsgDataIsCancelled
typedef struct {
DWORD dwBackgroundOperationID;
} SccMsgDataIsCancelled;
Эта структура отправляется с SCC_MSG_BACKGROUND_IS_CANCELLED сообщение. Он используется для передачи ИД фоновой операции, которая была отменена.
SccMsgDataOnBeforeGetFile
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szFile;
} SccMsgDataOnBeforeGetFile;
Эта структура отправляется с SCC_MSG_BACKGROUND_ON_BEFORE_GET_FILE сообщение. Он используется для взаимодействия имя файла, который требуется извлечь и идентификатор фоновой операции, которая выполняет восстановление.
SccMsgDataOnAfterGetFile
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szFile;
SCCRTN sResult;
} SccMsgDataOnAfterGetFile;
Эта структура отправляется с SCC_MSG_BACKGROUND_ON_AFTER_GET_FILE сообщение. Он используется для взаимодействия результат извлечь указанный файл, а также идентификатор фоновой операции, которая сделала извлечь. См. раздел возвращаемые значения Функция SccGet для которого может быть присвоено в результате.
SccMsgDataOnMessage
[C++]
typedef struct {
DWORD dwBackgroundOperationID;
PCSTR szMessage;
BOOL bIsError;
} SccMsgDataOnMessage;
Эта структура отправляется с SCC_MSG_BACKGROUND_ON_MESSAGE сообщение. Он используется, чтобы сообщить текущее состояние фоновой операции. Состояние выражается как строка, которая будет отображаться интегрированная среда разработки и bIsError указывает важность сообщенияTRUE сообщения об ошибках. FALSE для предупреждения или информационного сообщения). Идентификатор фоновой операции при отправке состояние также предоставляется.
Пример кода
Ниже кратко приведен пример вызова 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;
}
См. также
Другие ресурсы
Обратный вызов функций, реализованных интегрированной средой разработки