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
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.VisualStudio.TextManager.Interop
IVsLinkedUndoTransactionManager