diff options
| author | Luke <[email protected]> | 2017-11-28 00:22:11 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-11-28 00:22:11 -0800 |
| commit | 79bbbca2f6e37d94fbbbd60d12c5c1e7dde650da (patch) | |
| tree | 793ff943b8b641f95d05401156badd42da4a0f12 /audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp | |
| parent | ed1df9a8b80b154b71b79635e40af75f4f19001c (diff) | |
| parent | 2817004092cee784d4aaf36c045fdb5b0bc09f7e (diff) | |
Merge pull request #1 from Microsoft/master
Updating Local
Diffstat (limited to 'audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp')
| -rw-r--r-- | audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp b/audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp deleted file mode 100644 index 9dc272af..00000000 --- a/audio/sysvad/SwapAPO/PropPageExtensions/UIWidgets.cpp +++ /dev/null @@ -1,321 +0,0 @@ -//**@@@*@@@**************************************************** -// -// Microsoft Windows -// Copyright (C) Microsoft Corporation. All rights reserved. -// -//**@@@*@@@**************************************************** - -// -// FileName: UIWidgets.cpp -// -// Abstract: Implementation of CUIWidget and derived classes -// -// ---------------------------------------------------------------------------- - - -#include "stdafx.h" -#include <DeviceTopology.h> -#include "UIWidgets.h" - -_Analysis_mode_(_Analysis_code_type_user_driver_) - -// ---------------------------------------------------------------------- -// CUIWidget base class - - -// ---------------------------------------------------------------------------- -// Function: -// CUIWidget::CUIWidget -// -// Description: -// CUIWidget constructor -// ---------------------------------------------------------------------------- -CUIWidget::CUIWidget -( - IPart* pPart, - REFIID iid -) -: m_hwndParentDlg(NULL), - m_iid(iid), - m_wstrLabel(NULL), - m_bRegisteredForCallbacks(NULL) -{ - // This is done here rather than in the initializer list to avoid a prefix error - if (pPart != NULL) - { - m_spPart = pPart; - } - - m_dwProcessId = GetCurrentProcessId(); -} - - -// ---------------------------------------------------------------------------- -// Function: -// CUIWidget::~CUIWidget -// -// Description: -// CUIWidget destructor -// ---------------------------------------------------------------------------- -CUIWidget::~CUIWidget() -{ - SAFE_COTASKMEMFREE(m_wstrLabel); - - if (m_bRegisteredForCallbacks) - { - m_spPart->UnregisterControlChangeCallback(this); - } -} - - -// ---------------------------------------------------------------------------- -// Function: -// CUIWidget::Create -// -// Description: -// -- Activates the control interface on the specified part -// -- Registers for control change callbacks -// -// Parameters: -// hwndDlg - [in] Parent dialog of the widget -// rc - [in] Not used -// ctrlIdBase - [in] Not used -// -// Return values: -// S_OK if successful -// ---------------------------------------------------------------------------- -HRESULT CUIWidget::Create -( - HWND hwndDlg, - SRECT& /*rc*/, - UINT& /*ctrlIdBase*/ -) -{ - HRESULT hr; - - m_hwndParentDlg = hwndDlg; - - RPC_STATUS rpcs = UuidCreate(&m_guidEventContext); - if (rpcs != RPC_S_OK) - { - hr = HRESULT_FROM_WIN32(rpcs); - goto Exit; - } - - hr = m_spPart->Activate(CLSCTX_INPROC_SERVER, m_iid, (void**)&m_spControl); - IF_FAILED_JUMP(hr, Exit); - - hr = m_spPart->RegisterControlChangeCallback(m_iid, this); - IF_FAILED_JUMP(hr, Exit); - - m_bRegisteredForCallbacks = TRUE; - - hr = m_spPart->GetName(&m_wstrLabel); - -Exit: - return hr; -}; - - -// ---------------------------------------------------------------------- -// Function: -// CUIWidget::OnNotify -// -// Description: -// Implementation of IControlChangeNotify::OnNotify -// Called when someone calls a "Set" method on a control interface. -// -// Parameters: -// dwProcessId - [in] Process ID -// pguidEventContext - Event context guid -// -// Return: -// S_OK always -// ---------------------------------------------------------------------- -_Use_decl_annotations_ -HRESULT CUIWidget::OnNotify -( - DWORD dwProcessId, - LPCGUID pguidEventContext -) -{ - UNREFERENCED_PARAMETER(dwProcessId); - - if ((pguidEventContext == NULL) || - (*pguidEventContext != m_guidEventContext)) - { - // Delegate to derived class - HandleControlChangeNotification(); - } - - return S_OK; -} - - -// ---------------------------------------------------------------------- -// ---------------------------------------------------------------------- -// CBooleanWidget - - -// ---------------------------------------------------------------------------- -// Function: -// CBooleanWidget::CBooleanWidget -// -// Description: -// CBooleanWidget constructor -// ---------------------------------------------------------------------------- -CBooleanWidget::CBooleanWidget -( - IPart* pPart, - REFIID iid -) -: CUIWidget(pPart, iid), - m_hwndCheckbox(NULL), - m_bCurrentValue(FALSE) -{ -} - - -// ---------------------------------------------------------------------------- -// Function: -// CBooleanWidget::Create -// -// Description: -// Creates the widget which is a dialog -// -// Parameters: -// hwndDlg - [in] Parent dialog of the widget -// rc - [in] Position of the widget -// nCtrlId - [in] Child-window identifier -// -// Return values: -// S_OK if successful -// ---------------------------------------------------------------------------- -HRESULT CBooleanWidget::Create -( - HWND hwndDlg, - SRECT& rc, - UINT& nCtrlId -) -{ - HRESULT hr; - HFONT hFont; - DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX; - - // Activate the control interface and register for callbacks - hr = CUIWidget::Create(hwndDlg, rc, nCtrlId); - IF_FAILED_JUMP(hr, Exit); - - // Create a check box - rc.w = 300; - rc.h = 20; - m_hwndCheckbox = CreateWindowEx( - 0, //WS_EX_STATICEDGE, - WC_BUTTON, - m_wstrLabel, - dwStyle, - rc.x, rc.y, // put at (x,y) - rc.w, rc.h, - m_hwndParentDlg, - (HMENU)(UINT_PTR)nCtrlId, - NULL, - 0); - IF_TRUE_ACTION_JUMP((m_hwndCheckbox == NULL), hr = HRESULT_FROM_WIN32(GetLastError()), Exit); - - // Make the new control use the same font as the dialog - hFont = Window_GetFont(hwndDlg); - Window_SetFont(m_hwndCheckbox, hFont); - - // Get the current value - hr = HandleControlChangeNotification(); - IF_FAILED_JUMP(hr, Exit); - -Exit: - return hr; -} - - -// ---------------------------------------------------------------------- -// Function: -// CBooleanWidget::HandleControlChangeNotification() -// -// Description: -// Handles widget change notifications -// -// Return: -// S_OK if successful -// ---------------------------------------------------------------------- -HRESULT CBooleanWidget::HandleControlChangeNotification() -{ - HRESULT hr = S_OK; - - ATLASSERT(m_spControl); - ATLASSERT(m_hwndCheckbox); - - // Set value on DeviceTopology control interface - if (m_iid == __uuidof(IAudioLoudness)) - { - CComQIPtr<IAudioLoudness> spLoudness = m_spControl; - hr = spLoudness->GetEnabled(&m_bCurrentValue); - } - else if (m_iid == __uuidof(IAudioAutoGainControl)) - { - CComQIPtr<IAudioAutoGainControl> spAGC = m_spControl; - hr = spAGC->GetEnabled(&m_bCurrentValue); - } - else if (m_iid == __uuidof(IDeviceSpecificProperty)) - { - CComQIPtr<IDeviceSpecificProperty> spBoolCtrl = m_spControl; - DWORD cbValue = sizeof(m_bCurrentValue); - - hr = spBoolCtrl->GetValue(&m_bCurrentValue, &cbValue); - } - - // Set the check box to reflect the current value - SendMessage(m_hwndCheckbox, BM_SETCHECK, (WPARAM)(int)(m_bCurrentValue), 0L); - - return hr; -} - - -// ---------------------------------------------------------------------------- -// Function: -// CBooleanWidget::CommitValue -// -// Description: -// Commit the value set on the control -// -// Return values: -// S_OK if successful -// ---------------------------------------------------------------------------- -HRESULT CBooleanWidget::CommitValue() -{ - HRESULT hr = S_OK; - - ATLASSERT(m_spControl); - ATLASSERT(m_hwndCheckbox); - - // Get current value from check box - m_bCurrentValue = ((int)(DWORD)SendMessage(m_hwndCheckbox, BM_GETCHECK, 0L, 0L)); - - // Set value on DeviceTopology control interface - if (m_iid == __uuidof(IAudioLoudness)) - { - CComQIPtr<IAudioLoudness> spLoudness = m_spControl; - hr = spLoudness->SetEnabled(m_bCurrentValue, GetEventContext()); - } - else if (m_iid == __uuidof(IAudioAutoGainControl)) - { - CComQIPtr<IAudioAutoGainControl> spAGC = m_spControl; - hr = spAGC->SetEnabled(m_bCurrentValue, GetEventContext()); - } - else if (m_iid == __uuidof(IDeviceSpecificProperty)) - { - CComQIPtr<IDeviceSpecificProperty> spBoolCtrl = m_spControl; - - hr = spBoolCtrl->SetValue(&m_bCurrentValue, sizeof(m_bCurrentValue), - GetEventContext()); - } - - return hr; -}; |
