IVsCompletionSet.OnCommit(String, Int32, Int32, UInt16, String) Метод

Определение

Определяет завершение текста.

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

Параметры

pszSoFar
String

[in] Введенный на данный момент текст.

iIndex
Int32

[in] Индекс, указывающий элемент набора завершений совпадения.

fSelected
Int32

[in] Указывает, выбран ли элемент завершения в окне завершения. Если значение — true, значение pszSoFar параметра заменяется текстом, возвращенным GetDisplayText(Int32, String, Int32[]) . Если значение — true, это означает, что S_OK Возврат со значением, pbstrCompleteWord равным, pszSoFar соответствует поведению по умолчанию. Значение по умолчанию fSelected — true.

cCommit
UInt16

[in] Последний набранный символ.

pbstrCompleteWord
String

[out] Возвращает завершенное слово.

Возвращаемое значение

Int32

Если метод завершается успешно, возвращает значение S_OK. В противном случае функция возвращает код ошибки.

Примеры

Ниже приведен пример метода 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;  
}  

Комментарии

Подпись COM

Из текстмгр. IDL:

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

Реализуйте этот метод, чтобы настроить время и способ фиксации завершения операторов в тексте.

Поведение по умолчанию вызывает фиксацию, если пользователь нажимает любой из стандартных символов завершения. Стандартные символы завершения — это любые символы, отличные от буквенно-цифровых, за исключением "~" и "_". Замена текста происходит при фиксации, только если в раскрывающемся списке завершения операторов выбран наиболее подходящий текстовый элемент. Это текст, который заменяет текст, введенный на данный момент.

Этот метод вызывается, только если CSF_CUSTOMCOMMIT для флагов завершения задано значение. Этот метод вызывается по одному разу для каждого символа, который пользователь вводит при активном завершении операторов.

Если этот метод возвращает значение S_FALSE , то фиксация не выполняется и символ вставляется как стандартный (незавершенный) символ.

Примечание

Не возвращайтесь S_FALSE , если символ является клавишей Tab или Ctrl-Enter, так как они применяются принудительно фиксации.

Если этот метод возвращает значение S_OK , происходит фиксация. Если fSelected равно true , то значение, возвращаемое в, pbstrCompleteWord заменяет текст, введенный на данный момент. Если параметр fSelected имеет false значение или возвращается pbstrCompleteWord , то null существующий текст не заменяется при фиксации.

Применяется к