Я запускаю 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;
}
Мне нужно также определить индекс выделенного элемента в выпадающем списке для добавленных полей. Любая помощь будет полезна для определения индекса добавленного элемента комбинированного списка?