IVsQueryUndoUnit.ActionWouldBeAborted, méthode
Interroge chaque membre d'un ensemble lié de phase de restauration pour déterminer si une opération d'annulation est interrompue.
Espace de noms : Microsoft.VisualStudio.TextManager.Interop
Assembly : Microsoft.VisualStudio.TextManager.Interop.8.0 (dans Microsoft.VisualStudio.TextManager.Interop.8.0.dll)
Syntaxe
'Déclaration
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
Paramètres
pbWouldBeAborted
Type : Int32%[out] si 1 (TRUE), opération d'annulation est interrompu ; si 0 opérations d'annulation (FAUSSES) ne seraient pas interrompu.
Valeur de retour
Type : Int32
Si la méthode réussit, elle retourne S_OK.En cas d'échec, un code d'erreur est retourné.
Notes
Un ensemble lié de phase de restauration suit la même opération d'annulation dans de plusieurs mémoires tampon.
Cette interface interroge un ensemble lié de phase de restauration pour permettre à chaque membre de l'ensemble pour déterminer si une opération d'annulation est interrompue.
Appelez cette méthode avant de tenter une phase de restauration liée pour éviter doivent annuler des opérations d'annulation liées retourner.
Remarques à l'attention des implémenteurs
Appliquez cette méthode pour le parent initial d'un ensemble lié de phase de restauration. Dans l'implémentation, interrogez chaque enfant et appel ActionWouldBeAborted de phase de restauration si les pensions alimentaires pour les enfants IVsQueryUndoUnit.
Exemples
Dans cet exemple de C++, le parent arrête de s'interroger si tout enfant retourne la valeur 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;
}
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, voir Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Microsoft.VisualStudio.TextManager.Interop, espace de noms
IVsLinkedUndoTransactionManager