Add -Wnon-virtual-dtor and resolve issues

The IPolicyConfig file is a third party file and since it describes a
third party API we can't make changes to it. Adding it via the system
includes disables warnings on most compilers.
This commit is contained in:
Vasily
2019-02-21 18:48:53 +01:00
committed by username223
parent 60bd0a54c1
commit 34204d2441
6 changed files with 10 additions and 3 deletions
@@ -5,7 +5,7 @@
#include <mmdeviceapi.h>
#include <functiondiscoverykeys_devpkey.h>
#include <endpointvolume.h>
#include "IPolicyConfig.h"
#include <IPolicyConfig.h>
#include <mutex>
// application namespace
@@ -1,133 +0,0 @@
// ----------------------------------------------------------------------------
// PolicyConfig.h
// Undocumented COM-interface IPolicyConfig.
// Use for set default audio render endpoint
// @author EreTIk
// ----------------------------------------------------------------------------
#pragma once
// ca286fc3-91fd-42c3-8e9b-caafa66242e3
static const GUID IID_IPolicyConfig2
= { 0xCA286FC3,
0x91FD,
0x42C3,
{ 0x8E, 0x9B, 0xCA, 0xAF, 0xA6, 0x62, 0x42, 0xE3 } };
// 6be54be8-a068-4875-a49d-0c2966473b11
static const GUID IID_IPolicyConfig1
= { 0x6BE54BE8,
0xA068,
0x4875,
{ 0xA4, 0x9D, 0x0C, 0x29, 0x66, 0x47, 0x3B, 0x11 } };
// f8679f50-850a-41cf-9c72-430f290290c8
static const GUID IID_IPolicyConfig0
= { 0xF8679F50,
0x850A,
0x41CF,
{ 0x9C, 0x72, 0x43, 0x0F, 0x29, 0x02, 0x90, 0xC8 } };
class DECLSPEC_UUID( "870af99c-171d-4f9e-af0d-e63df40c2bc9" )
CPolicyConfigClient;
interface IPolicyConfig : public IUnknown
{
public:
virtual HRESULT GetMixFormat( PCWSTR, WAVEFORMATEX** );
virtual HRESULT STDMETHODCALLTYPE GetDeviceFormat(
PCWSTR, INT, WAVEFORMATEX** );
virtual HRESULT STDMETHODCALLTYPE ResetDeviceFormat( PCWSTR );
virtual HRESULT STDMETHODCALLTYPE SetDeviceFormat(
PCWSTR, WAVEFORMATEX*, WAVEFORMATEX* );
virtual HRESULT STDMETHODCALLTYPE GetProcessingPeriod(
PCWSTR, INT, PINT64, PINT64 );
virtual HRESULT STDMETHODCALLTYPE SetProcessingPeriod( PCWSTR, PINT64 );
virtual HRESULT STDMETHODCALLTYPE GetShareMode( PCWSTR,
struct DeviceShareMode* );
virtual HRESULT STDMETHODCALLTYPE SetShareMode( PCWSTR,
struct DeviceShareMode* );
virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
PCWSTR, int, const PROPERTYKEY&, const PROPVARIANT* );
virtual HRESULT STDMETHODCALLTYPE SetPropertyValue(
PCWSTR, int, const PROPERTYKEY&, const PROPVARIANT* );
virtual HRESULT STDMETHODCALLTYPE SetDefaultEndpoint(
__in PCWSTR wszDeviceId, __in ERole eRole );
virtual HRESULT STDMETHODCALLTYPE SetEndpointVisibility( PCWSTR, INT );
};
interface DECLSPEC_UUID( "568b9108-44bf-40b4-9006-86afe5b5a620" )
IPolicyConfigVista;
class DECLSPEC_UUID( "294935CE-F637-4E7C-A41B-AB255460B862" )
CPolicyConfigVistaClient;
// ----------------------------------------------------------------------------
// class CPolicyConfigVistaClient
// {294935CE-F637-4E7C-A41B-AB255460B862}
//
// interface IPolicyConfigVista
// {568b9108-44bf-40b4-9006-86afe5b5a620}
//
// Query interface:
// CComPtr<IPolicyConfigVista> PolicyConfig;
// PolicyConfig.CoCreateInstance(__uuidof(CPolicyConfigVistaClient));
//
// @compatible: Windows Vista and Later
// ----------------------------------------------------------------------------
interface IPolicyConfigVista : public IUnknown
{
public:
virtual HRESULT GetMixFormat(
PCWSTR,
WAVEFORMATEX** ); // not available on Windows 7, use method from
// IPolicyConfig
virtual HRESULT STDMETHODCALLTYPE GetDeviceFormat(
PCWSTR, INT, WAVEFORMATEX** );
virtual HRESULT STDMETHODCALLTYPE SetDeviceFormat(
PCWSTR, WAVEFORMATEX*, WAVEFORMATEX* );
virtual HRESULT STDMETHODCALLTYPE GetProcessingPeriod(
PCWSTR,
INT,
PINT64,
PINT64 ); // not available on Windows 7, use method from IPolicyConfig
virtual HRESULT STDMETHODCALLTYPE SetProcessingPeriod(
PCWSTR,
PINT64 ); // not available on Windows 7, use method from IPolicyConfig
virtual HRESULT STDMETHODCALLTYPE GetShareMode(
PCWSTR,
struct DeviceShareMode* ); // not available on Windows 7, use method
// from IPolicyConfig
virtual HRESULT STDMETHODCALLTYPE SetShareMode(
PCWSTR,
struct DeviceShareMode* ); // not available on Windows 7, use method
// from IPolicyConfig
virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
PCWSTR, int, const PROPERTYKEY&, const PROPVARIANT* );
virtual HRESULT STDMETHODCALLTYPE SetPropertyValue(
PCWSTR, int, const PROPERTYKEY&, const PROPVARIANT* );
virtual HRESULT STDMETHODCALLTYPE SetDefaultEndpoint(
__in PCWSTR wszDeviceId, __in ERole eRole );
virtual HRESULT STDMETHODCALLTYPE SetEndpointVisibility(
PCWSTR,
INT ); // not available on Windows 7, use method from IPolicyConfig
};