PolicyConfig.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. // ----------------------------------------------------------------------------
  2. // PolicyConfig.h
  3. // Undocumented COM-interface IPolicyConfig.
  4. // Use for set default audio render endpoint
  5. // @author EreTIk
  6. // ----------------------------------------------------------------------------
  7. #ifndef RVC_POLICY_CONFIG_H__
  8. #define RVC_POLICY_CONFIG_H__
  9. #pragma once
  10. #include <mmeapi.h>
  11. #include <mmdeviceapi.h>
  12. interface DECLSPEC_UUID("f8679f50-850a-41cf-9c72-430f290290c8")
  13. IPolicyConfig;
  14. class DECLSPEC_UUID("870af99c-171d-4f9e-af0d-e63df40c2bc9")
  15. CPolicyConfigClient;
  16. // ----------------------------------------------------------------------------
  17. // class CPolicyConfigClient
  18. // {870af99c-171d-4f9e-af0d-e63df40c2bc9}
  19. //
  20. // interface IPolicyConfig
  21. // {f8679f50-850a-41cf-9c72-430f290290c8}
  22. //
  23. // Query interface:
  24. // CComPtr<IPolicyConfig> PolicyConfig;
  25. // PolicyConfig.CoCreateInstance(__uuidof(CPolicyConfigClient));
  26. //
  27. // @compatible: Windows 7 and Later
  28. // ----------------------------------------------------------------------------
  29. interface IPolicyConfig : public IUnknown
  30. {
  31. public:
  32. virtual HRESULT GetMixFormat(
  33. PCWSTR,
  34. WAVEFORMATEX **
  35. );
  36. virtual HRESULT STDMETHODCALLTYPE GetDeviceFormat(
  37. PCWSTR,
  38. INT,
  39. WAVEFORMATEX **
  40. );
  41. virtual HRESULT STDMETHODCALLTYPE ResetDeviceFormat(
  42. PCWSTR
  43. );
  44. virtual HRESULT STDMETHODCALLTYPE SetDeviceFormat(
  45. PCWSTR,
  46. WAVEFORMATEX *,
  47. WAVEFORMATEX *
  48. );
  49. virtual HRESULT STDMETHODCALLTYPE GetProcessingPeriod(
  50. PCWSTR,
  51. INT,
  52. PINT64,
  53. PINT64
  54. );
  55. virtual HRESULT STDMETHODCALLTYPE SetProcessingPeriod(
  56. PCWSTR,
  57. PINT64
  58. );
  59. virtual HRESULT STDMETHODCALLTYPE GetShareMode(
  60. PCWSTR,
  61. struct DeviceShareMode *
  62. );
  63. virtual HRESULT STDMETHODCALLTYPE SetShareMode(
  64. PCWSTR,
  65. struct DeviceShareMode *
  66. );
  67. virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
  68. PCWSTR,
  69. const PROPERTYKEY &,
  70. PROPVARIANT *
  71. );
  72. virtual HRESULT STDMETHODCALLTYPE SetPropertyValue(
  73. PCWSTR,
  74. const PROPERTYKEY &,
  75. PROPVARIANT *
  76. );
  77. virtual HRESULT STDMETHODCALLTYPE SetDefaultEndpoint(
  78. __in PCWSTR wszDeviceId,
  79. __in ERole eRole
  80. );
  81. virtual HRESULT STDMETHODCALLTYPE SetEndpointVisibility(
  82. PCWSTR,
  83. INT
  84. );
  85. };
  86. interface DECLSPEC_UUID("568b9108-44bf-40b4-9006-86afe5b5a620")
  87. IPolicyConfigVista;
  88. class DECLSPEC_UUID("294935CE-F637-4E7C-A41B-AB255460B862")
  89. CPolicyConfigVistaClient;
  90. // ----------------------------------------------------------------------------
  91. // class CPolicyConfigVistaClient
  92. // {294935CE-F637-4E7C-A41B-AB255460B862}
  93. //
  94. // interface IPolicyConfigVista
  95. // {568b9108-44bf-40b4-9006-86afe5b5a620}
  96. //
  97. // Query interface:
  98. // CComPtr<IPolicyConfigVista> PolicyConfig;
  99. // PolicyConfig.CoCreateInstance(__uuidof(CPolicyConfigVistaClient));
  100. //
  101. // @compatible: Windows Vista and Later
  102. // ----------------------------------------------------------------------------
  103. interface IPolicyConfigVista : public IUnknown
  104. {
  105. public:
  106. virtual HRESULT GetMixFormat(
  107. PCWSTR,
  108. WAVEFORMATEX **
  109. ); // not available on Windows 7, use method from IPolicyConfig
  110. virtual HRESULT STDMETHODCALLTYPE GetDeviceFormat(
  111. PCWSTR,
  112. INT,
  113. WAVEFORMATEX **
  114. );
  115. virtual HRESULT STDMETHODCALLTYPE SetDeviceFormat(
  116. PCWSTR,
  117. WAVEFORMATEX *,
  118. WAVEFORMATEX *
  119. );
  120. virtual HRESULT STDMETHODCALLTYPE GetProcessingPeriod(
  121. PCWSTR,
  122. INT,
  123. PINT64,
  124. PINT64
  125. ); // not available on Windows 7, use method from IPolicyConfig
  126. virtual HRESULT STDMETHODCALLTYPE SetProcessingPeriod(
  127. PCWSTR,
  128. PINT64
  129. ); // not available on Windows 7, use method from IPolicyConfig
  130. virtual HRESULT STDMETHODCALLTYPE GetShareMode(
  131. PCWSTR,
  132. struct DeviceShareMode *
  133. ); // not available on Windows 7, use method from IPolicyConfig
  134. virtual HRESULT STDMETHODCALLTYPE SetShareMode(
  135. PCWSTR,
  136. struct DeviceShareMode *
  137. ); // not available on Windows 7, use method from IPolicyConfig
  138. virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
  139. PCWSTR,
  140. const PROPERTYKEY &,
  141. PROPVARIANT *
  142. );
  143. virtual HRESULT STDMETHODCALLTYPE SetPropertyValue(
  144. PCWSTR,
  145. const PROPERTYKEY &,
  146. PROPVARIANT *
  147. );
  148. virtual HRESULT STDMETHODCALLTYPE SetDefaultEndpoint(
  149. __in PCWSTR wszDeviceId,
  150. __in ERole eRole
  151. );
  152. virtual HRESULT STDMETHODCALLTYPE SetEndpointVisibility(
  153. PCWSTR,
  154. INT
  155. ); // not available on Windows 7, use method from IPolicyConfig
  156. };
  157. #endif //RVC_POLICY_CONFIG_H__