Я запускаю SampleWrapExistingCredentialProvider из VistaCredentialProviderSamples, и в файле CSampleCredential.cpp есть функция SetComboBoxSelectedValue. Эта функция вызывается, когда пользователь изменяет выбранный элемент в поле со списком и сохраняет индекс выбранного элемента. Однако, когда я добавляю элемент в поле со списком во время выполнения с помощью функции AppendFieldComboBoxItem, а затем, если добавленный элемент выбран, эта функция не вызывается . Из-за этого я не могу получить индекс выбранного элемента для добавленного поля.
Я попытался отобразить окно сообщений, чтобы увидеть, когда вызывается эта функция. Эта функция вызывается только в том случае, если один из элементов списка по умолчанию выбран пользователем, и не вызывается при выборе добавленных элементов.
// Called when the user changes the selected item in the combobox. We'll check to see if
// it's for us or the wrapped credential, and then handle or route it as appropriate.
HRESULT CSampleCredential::SetComboBoxSelectedValue(
DWORD dwFieldID,
DWORD dwSelectedItem
)
{
HRESULT hr = E_UNEXPECTED;
// Make sure we have a wrapped credential.
if (_pWrappedCredential != NULL)
{
// If this field belongs to the wrapped credential, hand it off.
if (_IsFieldInWrappedCredential(dwFieldID))
{
hr = _pWrappedCredential->SetComboBoxSelectedValue(dwFieldID, dwSelectedItem);
}
// Otherwise determine if we need to handle it.
else
{
FIELD_STATE_PAIR *pfsp = _LookupLocalFieldStatePair(dwFieldID);
if ((pfsp != NULL) && (dwSelectedItem < ARRAYSIZE(s_rgDatabases)))
{
_dwComboIndex = dwSelectedItem;
HWND hwndOwner = nullptr;
if (_pCredProvCredentialEvents)
{
_pCredProvCredentialEvents->OnCreatingWindow(&hwndOwner);
}
TCHAR msg[100];
StringCbPrintf(msg, 100, TEXT("%d"), _dwComboIndex);
MessageBox(hwndOwner, msg, TEXT("Combobox selected ID"), MB_OK | MB_ICONERROR);
hr = S_OK;
}
else
{
hr = E_INVALIDARG;
}
}
}
return hr;
}
Мне также нужно определить индекс выбранного элемента со списком для добавленных полей. Будем признательны за любую помощь в том, как определить индекс добавленного элемента со списком?