Condividi tramite


Metodo IVsQueryUndoUnit.ActionWouldBeAborted

Eseguire una query su ogni membro di un set collegato ripristina per determinare se l'operazione di annullamento è stata interrotta.

Spazio dei nomi:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop.8.0 (in Microsoft.VisualStudio.TextManager.Interop.8.0.dll)

Sintassi

'Dichiarazione
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

Parametri

  • pbWouldBeAborted
    Tipo: Int32%

    [out] Se 1 (TRUE), l'azione di annullamento è stato interrotto; se 0 azioni ripristina (FALSE) non vengono arrestate.

Valore restituito

Tipo: Int32
Se il metodo ha esito positivo, restituisce S_OK.Se non riesce, restituisce un codice di errore.

Note

Un set collegato ripristina tenere traccia della stessa azione di annullamento nel buffer più.

Questa interfaccia eseguire una query un set collegato ripristina per consentire a ogni membro del set di determinare se l'operazione di annullamento è stata interrotta.

Chiamare questo metodo prima di eseguire un'operazione di annullamento collegata per evitare l'esigenza ripristinare le azioni di annullamento collegato.

Note per gli implementatori

Implementare questo metodo per il padre iniziale di un set collegato di annullamento. Nell'implementazione, eseguire una query su ciascun figlio e chiamata di annullamento ActionWouldBeAborted se gli considerazione conosciuti per i nodi figlio IVsQueryUndoUnit.

Esempi

In questo esempio C++, il padre smette di eseguire una query su se qualsiasi elemento figlio restituisce 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;
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

IVsQueryUndoUnit Interfaccia

Spazio dei nomi Microsoft.VisualStudio.TextManager.Interop

IVsLinkedUndoTransactionManager

Altre risorse

Procedura: utilizzare la gestione di annullamento collegata