IVsQueryUndoUnit.ActionWouldBeAborted - метод
Запросы каждый член связанного набора отката для определения, является ли действие отката будет прервана.
Пространство имен: Microsoft.VisualStudio.TextManager.Interop
Сборка: Microsoft.VisualStudio.TextManager.Interop.8.0 (в Microsoft.VisualStudio.TextManager.Interop.8.0.dll)
Синтаксис
'Декларация
Function ActionWouldBeAborted ( _
<OutAttribute> ByRef pbWouldBeAborted As Integer _
) As Integer
int ActionWouldBeAborted(
out int pbWouldBeAborted
)
int ActionWouldBeAborted(
[OutAttribute] int% pbWouldBeAborted
)
abstract ActionWouldBeAborted :
pbWouldBeAborted:int byref -> int
function ActionWouldBeAborted(
pbWouldBeAborted : int
) : int
Параметры
pbWouldBeAborted
Тип: Int32%[out] если будет прервано 1 (TRUE), действие отката. если значение 0 (FALSE) действий отката не будет прервана.
Возвращаемое значение
Тип: Int32
Если метод завершается успешно, возвращается S_OK.Если происходит сбой, возвращается код ошибки.
Заметки
Связанный набор отката отслеживает одну и ту же действие отката в нескольких буферах.
Запросы этого интерфейса связанный набор отката, чтобы каждый элемент набора для определения, является ли действие отката будет прервана.
Этот метод следует вызывать перед попыткой связанное во избежание отката откатить связанных действий отката.
Примечания для разработчиков
Используйте этот метод для первоначального родительского элемента связанного набора отката. В реализации, запросите каждый дочерний элемент отката и вызов ActionWouldBeAborted если пособия по ребенка IVsQueryUndoUnit.
Примеры
В этом примере C++, родительский останавливает запросить если какой-либо дочерний элемент возвращает значение true.
STDMETHODIMP
CParentUndoUnit::ActionWouldBeAborted
(
BOOL *pbWouldBeAborted // [out] Would the action be aborted?
)
{
HRESULT hr = S_OK;
if ( pbWouldBeAborted == NULL )
{
hr = E_POINTER;
}
else
{
*pbWouldBeAborted = FALSE;
// Loop over child units for edit actions
CEditNode *pNode = m_pEditFirst;
while (pNode && SUCCEEDED(hr))
{
if (pNode->m_pEditUnit)
{
CComQIPtr<IVsQueryUndoUnit, &IID_IVsQueryUndoUnit> srpQueryUndoUnitForUserAbort(pNode->m_pEditUnit);
if ( srpQueryUndoUnitForUserAbort )
{
hr = srpQueryUndoUnitForUserAbort->ActionWouldBeAborted(pbWouldBeAborted);
// If any action would be aborted, stop looking
if ( SUCCEEDED(hr) && *pbWouldBeAborted == TRUE )
{
break;
}
}
}
pNode = pNode->m_pNext;
}
}
return hr;
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Для получения дополнительной информации см. Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.VisualStudio.TextManager.Interop - пространство имен
IVsLinkedUndoTransactionManager
Другие ресурсы
Практическое руководство. Использование связанных операций отмены