Partager via


IVsCompletionSet.OnCommit, méthode

Détermine comment le texte est complété.

Espace de noms :  Microsoft.VisualStudio.TextManager.Interop
Assembly :  Microsoft.VisualStudio.TextManager.Interop (dans Microsoft.VisualStudio.TextManager.Interop.dll)

Syntaxe

'Déclaration
Function OnCommit ( _
    pszSoFar As String, _
    iIndex As Integer, _
    fSelected As Integer, _
    cCommit As UShort, _
    <OutAttribute> ByRef pbstrCompleteWord As String _
) As Integer
int OnCommit(
    string pszSoFar,
    int iIndex,
    int fSelected,
    ushort cCommit,
    out string pbstrCompleteWord
)
int OnCommit(
    [InAttribute] String^ pszSoFar, 
    [InAttribute] int iIndex, 
    [InAttribute] int fSelected, 
    [InAttribute] unsigned short cCommit, 
    [OutAttribute] String^% pbstrCompleteWord
)
abstract OnCommit : 
        pszSoFar:string * 
        iIndex:int * 
        fSelected:int * 
        cCommit:uint16 * 
        pbstrCompleteWord:string byref -> int
function OnCommit(
    pszSoFar : String, 
    iIndex : int, 
    fSelected : int, 
    cCommit : ushort, 
    pbstrCompleteWord : String
) : int

Paramètres

  • pszSoFar
    Type : String

    [in] le texte tapé jusqu'à présent.

  • iIndex
    Type : Int32

    [in] indexez identifier l'élément de jeu de saisies semi-automatiques de correspondance.

  • fSelected
    Type : Int32

    [in] indique si un élément d'achèvement est sélectionné dans la zone d'achèvement. Si true, alors la valeur du paramètre d'pszSoFar est remplacé par le texte retourné par GetDisplayText. Si true, cela indique qu'un retour d'S_OK avec la valeur d'pbstrCompleteWord égale à pszSoFar est comportement par défaut approprié. La valeur par défaut de fSelected est true.

  • cCommit
    Type : UInt16

    [in] finir le personnage qui a été tapé.

  • pbstrCompleteWord
    Type : String%

    [] retourne le mot terminé.

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

Signature de COM

De textmgr.idl :

HRESULT IVsCompletionSet::OnCommit(
   [in] const WCHAR *pszSoFar,
   [in] long iIndex,
   [in] BOOL fSelected,
   [in] WCHAR cCommit,
   [out] BSTR *pbstrCompleteWord
);

Appliquez cette méthode pour personnaliser quand et comment des saisies semi-automatiques des instructions sont validées au texte.

Le comportement par défaut provoque une validation si l'utilisateur appuie sur les personnages standards l'différents d'achèvement. Les personnages standards d'achèvement sont tous des personnages non- alphanumériques à l'exception de le « ~ » et « _ ». Le remplacement de texte se produit à la validation uniquement si un élément de texte de correspondance au mieux est actuellement sélectionné dans la zone de liste de déplacement de saisie semi-automatique des instructions. C'est ce texte qui remplace le texte tapé jusqu'à présent.

Cette méthode est appelée uniquement si une valeur d'CSF_CUSTOMCOMMIT est spécifiée pour les balises de jeu de saisies semi-automatiques. Cette méthode est appelée une fois pour chaque personnage que l'achèvement d'instruction while de types d'utilisateur est actif.

Si cette méthode retourne S_FALSE, aucune validation ne se produit et le personnage est inséré comme personnage (non- s'achevant) normal.

Notes

Ne retournez pas S_FALSE si le personnage est TABULATION ou CTRL-ENTRÉE, puisque ce sont des cas imposés de validation.

Si cette méthode retourne S_OK, une validation se produit. Si fSelected est true, alors la valeur retournée dans pbstrCompleteWord remplace le texte tapé jusqu'à présent. Si fSelected est false ou la valeur retournée d'pbstrCompleteWord est nullune référence null (Nothing en Visual Basic), alors le texte existant n'est pas remplacé à la validation.

Exemples

Voici un exemple de la méthode d'OnCommit.

STDMETHODIMP CFigStatementCompletion::OnCommit(
   /*[in] */ const WCHAR *pszSoFar,
   /*[in] */ long iIndex,
   /*[in] */ BOOL fSelected,
   /*[in] */ WCHAR cCommit,
   /*[out]*/ BSTR *pbstrCompleteWord )
{
      if (IsCharAlphaNumeric(cCommit) || cCommit == ':' || cCommit == '_')
       {
              // continue trying to match without completion
              return S_FALSE;
       }
       if (null == pbstrCompleteWord)
         return E_POINTER;
       *pbstrCompleteWord = SysAllocString(m_vecCompletions[ iIndex ]);
       return S_OK;
}

Sécurité .NET Framework

Voir aussi

Référence

IVsCompletionSet Interface

Microsoft.VisualStudio.TextManager.Interop, espace de noms