Método IVsQueryUndoUnit.ActionWouldBeAborted
Consulta a cada membro de um conjunto de desfazer vinculada para determinar se uma ação de desfazer seria anulada.
Namespace: Microsoft.VisualStudio.TextManager.Interop
Assembly: Microsoft.VisualStudio.TextManager.Interop.8.0 (em Microsoft.VisualStudio.TextManager.Interop.8.0.dll)
Sintaxe
'Declaração
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
Parâmetros
pbWouldBeAborted
Tipo: Int32%[out] Se a ação de desfazer 1 (verdadeiro), seria anulada; Se a ação de desfazer (FALSO) 0 não seria anulada.
Valor de retorno
Tipo: Int32
Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.
Comentários
Um conjunto de desfazer vinculado rastreia a mesma ação de desfazer em vários buffers.
Essa interface de consulta um conjunto de desfazer vinculado para permitir que cada membro do conjunto para determinar se uma ação de desfazer seria anulada.
Chame este método antes de tentar um desfazer vinculado para evitar ter de reverter vinculados a ações de desfazer.
Observações para implementadores
Implemente este método para o pai inicial de um conjunto de desfazer vinculado. Na implementação, consultar cada criança undo e chame ActionWouldBeAborted se o filho oferece suporte a IVsQueryUndoUnit.
Exemplos
Neste exemplo de C++, o pai pára de consultar se qualquer filho retorna 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;
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiável.
Consulte também
Referência
Namespace Microsoft.VisualStudio.TextManager.Interop
IVsLinkedUndoTransactionManager