Freigeben über


IVsQueryUndoUnit.ActionWouldBeAborted-Methode

Abfragen zum Rückgängigmachen Satz von jeder Member verknüpft, um zu bestimmen, ob eine Rückgängigaktion abgebrochen wird.

Namespace:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop.8.0 (in Microsoft.VisualStudio.TextManager.Interop.8.0.dll)

Syntax

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

Parameter

  • pbWouldBeAborted
    Typ: Int32%

    [out] Wenn 1 (TRUE), Rückgängigaktion abgebrochen wird. 0 (wenn FALSCHE) Rückgängigaktion nicht abgebrochen werden.

Rückgabewert

Typ: Int32
Wenn die Methode erfolgreich ausgeführt, gibt sie S_OKzurück.Bei einem Fehler wird ein Fehlercode zurückgegeben.

Hinweise

Verknüpft zum Rückgängigmachen Satz verfolgt die gleiche Rückgängigaktion in mehreren Puffern.

Diese Schnittstellen abfragen zum Rückgängigmachen Satz verknüpft, um den einzelnen Membern des Satzes zu ermöglichen, um zu bestimmen, ob eine Rückgängigaktion abgebrochen wird.

, bevor Sie versuchen, rufen Sie diese Methode, um verknüpfte Befehl Rückgängig aus, um verknüpfte zu vermeiden, führen Sie ein Rollback Rückgängigaktionen werden muss.

Hinweise zur Implementierung

Implementieren Sie diese Methode für das erste übergeordnete Element eines Joins zum Rückgängigmachen der Gruppe. In der Implementierung jedes fragen Sie zum Rückgängigmachen untergeordnetes Element ActionWouldBeAborted ab, und rufen IVsQueryUndoUnit wenn Kindergeld.

Beispiele

In diesem C++-Beispiel endet der untergeordneten Elemente ggf. Abfragen true zurückgibt:

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-Sicherheit

Siehe auch

Referenz

IVsQueryUndoUnit Schnittstelle

Microsoft.VisualStudio.TextManager.Interop-Namespace

IVsLinkedUndoTransactionManager

Weitere Ressourcen

Gewusst wie: Die verknüpfte Verwendung macht Verwaltung