IVsCompletionSet.OnCommit(String, Int32, Int32, UInt16, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bestimmt, wie Text abgeschlossen wird.
public:
int OnCommit(System::String ^ pszSoFar, int iIndex, int fSelected, System::UInt16 cCommit, [Runtime::InteropServices::Out] System::String ^ % pbstrCompleteWord);
int OnCommit(std::wstring const & pszSoFar, int iIndex, int fSelected, unsigned short cCommit, [Runtime::InteropServices::Out] std::wstring const & & pbstrCompleteWord);
public int OnCommit (string pszSoFar, int iIndex, int fSelected, ushort cCommit, out string pbstrCompleteWord);
abstract member OnCommit : string * int * int * uint16 * string -> int
Public Function OnCommit (pszSoFar As String, iIndex As Integer, fSelected As Integer, cCommit As UShort, ByRef pbstrCompleteWord As String) As Integer
Parameter
- pszSoFar
- String
[in] Der bis jetzt eingegebene Text.
- iIndex
- Int32
[in] Index, der das übereinstimmende Element im Vervollständigungssatz identifiziert.
- fSelected
- Int32
[in] Gibt an, ob ein Vervollständigungselement im Vervollständigungsfeld ausgewählt ist. Wenn der Wert true ist, wird der Wert des- pszSoFar Parameters durch den von zurückgegebenen Text ersetzt GetDisplayText(Int32, String, Int32[]) . Wenn true, gibt dies an, dass eine S_OK Rückgabe mit dem Wert von pbstrCompleteWord gleich dem pszSoFar entsprechenden Standardverhalten entspricht. Der Standardwert von fSelected ist "true".
- cCommit
- UInt16
[in] Letztes Zeichen, das eingegeben wurde.
- pbstrCompleteWord
- String
[out] Gibt das vollständige Wort zurück.
Gibt zurück
Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.
Beispiele
Im folgenden finden Sie ein Beispiel für die OnCommit-Methode.
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;
}
Hinweise
COM-Signatur
Aus textmgr. idl:
HRESULT IVsCompletionSet::OnCommit(
[in] const WCHAR *pszSoFar,
[in] long iIndex,
[in] BOOL fSelected,
[in] WCHAR cCommit,
[out] BSTR *pbstrCompleteWord
);
Implementieren Sie diese Methode, um anzupassen, wann und wie Anweisungs Vervollständigungen an Text übertragen werden.
Das Standardverhalten bewirkt einen Commit, wenn der Benutzer eines der Standard Abschluss Zeichen drückt. Die Standard Vervollständigungs Zeichen sind nicht-alphanumerische Zeichen mit Ausnahme von "~" und "_". Die Text Ersetzung erfolgt bei Commit nur dann, wenn im Dropdown Listenfeld der Anweisungs Vervollständigung derzeit ein am besten passendes Textelement ausgewählt ist. Dieser Text ersetzt den bisher typisierten Text.
Diese Methode wird nur aufgerufen, wenn CSF_CUSTOMCOMMIT für die Vervollständigungs Satz-Flags der Wert angegeben wird. Diese Methode wird einmal für jedes Zeichen aufgerufen, das der Benutzer beim Abschließen der Anweisungs Vervollständigung eingibt.
Wenn diese Methode zurückgibt S_FALSE , wird kein Commit ausgeführt, und das Zeichen wird als normales (nicht vervollständigte) Zeichen eingefügt.
Hinweis
Geben Sie nicht zurück S_FALSE , wenn es sich bei dem Zeichen um eine Tab -oder STRG- Taste handelt, da dies Erzwungene Commit-Fälle sind.
Wenn diese Methode zurückgibt S_OK , wird ein Commit ausgeführt. Wenn fSelected den true Wert hat, ersetzt der Wert, der in zurückgegeben wird, pbstrCompleteWord den bisher typisierten Text. Wenn fSelected false den Wert hat oder der zurückgegebene pbstrCompleteWord Wert ist null , wird der vorhandene Text beim Commit nicht ersetzt.