[PATCH 8/9] includes: Add mmdeviceapi.idl

Maarten Lankhorst (none) mlankhorst at patser.
Fri Nov 13 07:48:27 CST 2009


---
 .gitignore                 |    1 +
 include/Makefile.in        |    1 +
 include/devicetopology.idl |    3 +
 include/mmdeviceapi.idl    |  234 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 239 insertions(+), 0 deletions(-)
 create mode 100644 include/mmdeviceapi.idl

diff --git a/.gitignore b/.gitignore
index f7f40ba..a66febc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -158,6 +158,7 @@ include/mediaobj.h
 include/mimeinfo.h
 include/mimeole.h
 include/mlang.h
+include/mmdeviceapi.h
 include/mmstream.h
 include/mscoree.h
 include/msctf.h
diff --git a/include/Makefile.in b/include/Makefile.in
index dde6d2b..c22c7ec 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -45,6 +45,7 @@ PUBLIC_IDL_H_SRCS = \
 	mimeinfo.idl \
 	mimeole.idl \
 	mlang.idl \
+	mmdeviceapi.idl \
 	mmstream.idl \
 	mscoree.idl \
 	msctf.idl \
diff --git a/include/devicetopology.idl b/include/devicetopology.idl
index 494cad6..62c7ab4 100644
--- a/include/devicetopology.idl
+++ b/include/devicetopology.idl
@@ -36,7 +36,10 @@ import "oaidl.idl";
 import "ocidl.idl";
 import "propidl.idl";
 
+cpp_quote("#ifndef E_NOTFOUND")
 cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")
+cpp_quote("#endif")
+
 cpp_quote("#define DEVTOPO_HARDWARE_INITIATED_EVENTCONTEXT 'draH'")
 cpp_quote("DEFINE_GUID(EVENTCONTEXT_VOLUMESLIDER, 0xe2c2e9de, 0x09b1, 0x4b04,0x84,0xe5, 0x07, 0x93, 0x12, 0x25, 0xee, 0x04);")
 
diff --git a/include/mmdeviceapi.idl b/include/mmdeviceapi.idl
new file mode 100644
index 0000000..08ff4d3
--- /dev/null
+++ b/include/mmdeviceapi.idl
@@ -0,0 +1,234 @@
+
+import "unknwn.idl";
+import "propsys.idl";
+
+cpp_quote("#ifndef E_NOTFOUND")
+cpp_quote("#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)")
+cpp_quote("#endif")
+cpp_quote("#ifndef E_UNSUPPORTED_TYPE")
+cpp_quote("#define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)")
+cpp_quote("#endif")
+
+
+cpp_quote("#define DEVICE_STATE_ACTIVE 0x1")
+cpp_quote("#define DEVICE_STATE_DISABLED 0x2")
+cpp_quote("#define DEVICE_STATE_NOTPRESENT 0x4")
+cpp_quote("#define DEVICE_STATE_UNPLUGGED 0x8")
+cpp_quote("#define DEVICE_STATEMASK_ALL 0xf")
+
+/* Generic PKEY_AudioEndPoint ID for grepping: {1da5d803-d492-4edd-8c23-e0c0ffee7f0e} */
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FormFactor,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,0);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_ControlPanelPageProvider,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,1);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Association,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,2);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_PhysicalSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,3);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_GUID,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,4);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Disable_SysFx,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,5);")
+
+cpp_quote("#define ENDPOINT_SYSFX_ENABLED 0")
+cpp_quote("#define ENDPOINT_SYSFX_DISABLED 1")
+
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_FullRangeSpeakers,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,6);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_Supports_EventDriven_Mode,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,7);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEndpoint_JackSubType,0x1da5d803,0xd492,0x4edd,0x8c,0x23,0xe0,0xc0,0xff,0xee,0x7f,0x0e,8);")
+
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_DeviceFormat,0xf19f064d,0x082c,0x4e27,0xbc,0x73,0x68,0x82,0xa1,0xbb,0x8e,0x4c,0);")
+cpp_quote("DEFINE_PROPERTYKEY(PKEY_AudioEngine_OEMFormat,0xe4870e26,0x3cc5,0x4cd2,0xba,0x46,0xca,0x0a,0x9a,0x70,0xed,0x04,3);")
+
+typedef struct tagDIRECTX_AUDIO_ACTIVATION_PARAMS
+{
+    DWORD cbDirectXAudioActivationParams;
+    GUID guidAudioSession;
+    DWORD dwAudioStreamFlags;
+} DIRECTX_AUDIO_ACTIVATION_PARAMS, *PDIRECTX_AUDIO_ACTIVATION_PARAMS;
+
+typedef enum _EDataFlow
+{
+    eRender,
+    eCapture,
+    eAll,
+    EDataFlow_enum_count
+} EDataFlow;
+
+typedef enum _ERole
+{
+    eConsole,
+    eMultimedia,
+    eCommunications,
+    ERole_enum_count
+} ERole;
+
+typedef enum _EndpointFormFactor
+{
+    RemoteNetworkDevice,
+    Speakers,
+    LineLevel,
+    Headphones,
+    Microphone,
+    Headset,
+    Handset,
+    UnknownDigitalPassthrough,
+    SPDIF,
+    DigitalAudioDisplayDevice,
+    UnknownFormFactor,
+    EndpointFormFactor_enum_count
+} EndpointFormFactor;
+
+cpp_quote("#define HDMI DigitalAudioDisplayDevice")
+
+[
+    object,
+    local,
+    uuid(7991eec9-7e89-4d85-8390-6c703cec60c0),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMNotificationClient : IUnknown
+{
+    [id(1)] HRESULT OnDeviceStateChanged(
+        [in] LPCWSTR pwstrDeviceId,
+        [in] DWORD dwNewState
+    );
+    [id(2)] HRESULT OnDeviceAdded(
+        [in] LPCWSTR pwstrDeviceId
+    );
+    [id(3)] HRESULT OnDeviceRemoved(
+        [in] LPCWSTR pwstrDeviceId
+    );
+    [id(4)] HRESULT OnDefaultDeviceChanged(
+        [in] EDataFlow flow,
+        [in] ERole role,
+        [in] LPCWSTR pwstrDeviceId
+    );
+    [id(5)] HRESULT OnPropertyValueChanged(
+        [in] LPCWSTR pwstrDeviceId,
+        [in] const PROPERTYKEY key
+    );
+}
+
+[
+    object,
+    local,
+    uuid(d666063f-1587-4e43-81f1-b948e807363f),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMDevice : IUnknown
+{
+    [id(1)] HRESULT Activate(
+        [in] REFIID iid,
+        [in] DWORD dwClsCtx,
+        [in,unique] PROPVARIANT *pActivationParams,
+        [out,iid_is(iid)] void **ppv
+    );
+    [id(2)] HRESULT OpenPropertyStore(
+        [in] DWORD stgmAccess,
+        [out] IPropertyStore **ppProperties
+    );
+    [id(3)] HRESULT GetId(
+        [out] LPWSTR *ppstrId
+    );
+    [id(4)] HRESULT GetState(
+        [out] DWORD *pdwState
+    );
+}
+
+[
+    object,
+    local,
+    uuid(0bd7a1be-7a1a-44db-8397-cc5392387b5e),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMDeviceCollection : IUnknown
+{
+    [id(1)] HRESULT GetCount(
+        [out] UINT *pcDevices
+    );
+    [id(2)] HRESULT Item(
+        [in] UINT nDevice,
+        [out] IMMDevice **ppdevice
+    );
+}
+
+[
+    object,
+    local,
+    uuid(1be09788-6894-4089-8586-9a2a6c265ac5),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMEndPoint : IUnknown
+{
+    [id(1)] HRESULT GetDataFlow(
+        [out] EDataFlow *pDataFlow
+    );
+}
+
+[
+    object,
+    local,
+    uuid(a95664d2-9614-4f35-a746-de8db63617e6),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMDeviceEnumerator : IUnknown
+{
+    [id(1)] HRESULT EnumAudioEndpoints(
+        [in] EDataFlow dataFlow,
+        [in] DWORD dwStateMask,
+        [out] IMMDeviceCollection **ppDevices
+    );
+    [id(2)] HRESULT GetDefaultAudioEndpoint(
+        [in] EDataFlow dataFlow,
+        [in] ERole role,
+        [out] IMMDevice **ppEndpoint
+    );
+    [id(3)] HRESULT GetDevice(
+        [in] LPCWSTR pwstrId,
+        [out] IMMDevice **ppDevice
+    );
+    [id(4)] HRESULT RegisterEndpointNotificationCallback(
+        [in] IMMNotificationClient *pClient
+    );
+    [id(5)] HRESULT UnregisterEndpointNotificationCallback(
+        [in] IMMNotificationClient *pClient
+    );
+}
+
+[
+    object,
+    local,
+    uuid(3b0d0ea4-d0a9-4b0e-935b-09516746fac0),
+    nonextensible,
+    pointer_default(unique)
+]
+interface IMMDeviceActivator : IUnknown
+{
+    [id(1)] HRESULT Activate(
+        [in] REFIID iid,
+        [in] IMMDevice *pDevice,
+        [in] PROPVARIANT *pActivationParams,
+        [out,iid_is(iid)] void **ppv
+    );
+}
+
+typedef struct _AudioExtensionParams
+{
+    LPARAM AddPageParam;
+    IMMDevice *pEndPoint;
+    IMMDevice *pPnpInterface;
+    IMMDevice *pPnpDevnode;
+} AudioExtensionParams;
+
+[
+    uuid(2fdaafa3-7523-4f66-9957-9d5e7fe698f6),
+    version(1.0)
+]
+library MMDeviceAPILib
+{
+    [ uuid(bcde0395-e52f-467c-8e3d-c457929169e2) ] coclass MMDeviceEnumerator
+    {
+        [default] interface IMMDeviceEnumerator;
+    }
+}
+
-- 
1.6.5.2


--------------080105050809000503050801--



More information about the wine-patches mailing list