IFACEMETHODIMP CTriColorControlProvider::SetValue(_In_ LPCWSTR val) { HRESULT hr = CheckDisconnected(); if (SUCCEEDED(hr)) { TriColorValue newValue = TriColorValue::Red; bool bFound = false; if (0 == _wcsicmp(val, L"red")) { newValue = TriColorValue::Red; bFound = true; } else if (0 == _wcsicmp(val, L"yellow")) { newValue = TriColorValue::Yellow; bFound = true; } else if (0 == _wcsicmp(val, L"green")) { newValue = TriColorValue::Green; bFound = true; } if (bFound) { hr = m_control->put_ControlValue(newValue); } else { hr = E_INVALIDARG; } } return hr; }
STDMETHODIMP CTriColorFragmentProvider::Select() { HRESULT hr = CheckDisconnected(); if (SUCCEEDED(hr)) { hr = m_control->put_ControlValue(m_value); } return hr; }