Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenTao committed Jun 23, 2016
2 parents 6f1f46c + 4e88654 commit c2c038a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 7 deletions.
16 changes: 11 additions & 5 deletions EarTrumpet.Interop/AudioDeviceService.cpp
Expand Up @@ -89,13 +89,19 @@ HRESULT AudioDeviceService::SetDefaultAudioDevice(LPWSTR deviceId)
HRESULT AudioDeviceService::GetPolicyConfigClient(IPolicyConfig** client)
{
//
// The IPolicyConfig interface GUID changed multiple times between Windows 10 TH1 and RS1
// breaking app compat along the way. We attempt CoCreateInstance twice with known valid GUIDs
// to cover all Windows 10 scenarios.
// The IPolicyConfig interface GUID keeps changing in Windows 10 for unknown reasons.
// We attempt CoCreateInstance with known IIDs cover all Windows 10 scenarios.
//
if (FAILED(CoCreateInstance(CLSID_PolicyConfigClient, nullptr, CLSCTX_INPROC, IID_IPolicyConfig_TH2, reinterpret_cast<LPVOID*>(client))))
// Pulled out of _ATL_INTMAP_ENTRYs found in AudioSes.dll
// (i.e. AudioSes!ATL::CComObject<CPolicyConfigClient>::QueryInterface)
//

if (FAILED(CoCreateInstance(CLSID_PolicyConfigClient, nullptr, CLSCTX_INPROC, IID_IPolicyConfig_TH1, reinterpret_cast<LPVOID*>(client))))
{
FAST_FAIL(CoCreateInstance(CLSID_PolicyConfigClient, nullptr, CLSCTX_INPROC, IID_IPolicyConfig_TH1, reinterpret_cast<LPVOID*>(client)));
if (FAILED(CoCreateInstance(CLSID_PolicyConfigClient, nullptr, CLSCTX_INPROC, IID_IPolicyConfig_TH2, reinterpret_cast<LPVOID*>(client))))
{
FAST_FAIL(CoCreateInstance(CLSID_PolicyConfigClient, nullptr, CLSCTX_INPROC, IID_IPolicyConfig_RS1, reinterpret_cast<LPVOID*>(client)));
}
}

return S_OK;
Expand Down
3 changes: 3 additions & 0 deletions EarTrumpet.Interop/PolicyConfig.h
Expand Up @@ -9,6 +9,9 @@ const GUID IID_IPolicyConfig_TH1 = { 0xCA286FC3, 0x91FD, 0x42C3, { 0x8E,
// 6BE54BE8-A068-4875-A49D-0C2966473B11
const GUID IID_IPolicyConfig_TH2 = { 0x6BE54BE8, 0xA068, 0x4875, { 0xA4, 0x9D, 0x0C, 0x29, 0x66, 0x47, 0x3B, 0x11 } };

// F8679F50-850A-41CF-9C72-430F290290C8
const GUID IID_IPolicyConfig_RS1 = { 0xF8679F50, 0x850A, 0x41CF, { 0x9C, 0x72, 0x43, 0x0F, 0x29, 0x02, 0x90, 0xC8 } };

interface IPolicyConfig : public IUnknown
{
public:
Expand Down
4 changes: 2 additions & 2 deletions EarTrumpet/Properties/AssemblyInfo.cs
Expand Up @@ -10,7 +10,7 @@
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion("1.3.1.0")]
[assembly: AssemblyFileVersion("1.3.1.0")]
[assembly: AssemblyVersion("1.3.2.0")]
[assembly: AssemblyFileVersion("1.3.2.0")]
[assembly: ComVisible(false)]
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

0 comments on commit c2c038a

Please sign in to comment.