IVsCompletionSet.OnCommit 方法
決定文字如何完成。
命名空間: Microsoft.VisualStudio.TextManager.Interop
組件: Microsoft.VisualStudio.TextManager.Interop (在 Microsoft.VisualStudio.TextManager.Interop.dll 中)
語法
'宣告
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
參數
pszSoFar
類型:String[in]到目前為止所輸入的文字。
iIndex
類型:Int32[in]索引用來識別符合的項目完成設定項目。
fSelected
類型:Int32[in]表示完成項目是否已選取 [完成] 方塊中。 如果true,然後值pszSoFar參數所傳回的文字就會取代GetDisplayText。 如果true,這表示S_OK傳回值為pbstrCompleteWord等於pszSoFar是適當的預設行為。 fSelected 的預設值為 true。
cCommit
類型:UInt16[in]所輸入的最後一個字元。
pbstrCompleteWord
類型:String%[] out傳回完整的文字。
傳回值
類型:Int32
如果此方法將會成功,則會傳回S_OK。如果失敗,它就會傳回錯誤碼。
備註
COM 簽章
從 textmgr.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如果字元是從 ] 索引標籤或 CTRL 輸入,因為這種強制的認可的情況。 |
如果這個方法會傳回S_OK,進行認可。 如果fSelected是true,然後在傳回值pbstrCompleteWord會取代目前為止所輸入的文字。 如果fSelected是false或傳回pbstrCompleteWord值是nullnull 參考 (即 Visual Basic 中的 Nothing),然後將現有的文字並不會取代在認可。
範例
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;
}
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。