[wdmaudiodev] Re: obtaining a mixer for a given device interface

  • From: "Jeff Pages" <jeff@xxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 6 Oct 2005 10:28:37 +1000

obtaining a mixer for a given device interfaceJerry asked for some sample 
code...

Here's a sample that obtains the device interface given a device ID, and then 
opens a handle to the interface. Note that the first parameter to waveInMessage 
must be a device ID, not a waveIn handle - the documentation on this used to be 
wrong but was recently fixed.

    UINT DeviceID = 0;
    ULONG Size = 0;
    waveInMessage ((HWAVEIN) DeviceID, DRV_QUERYDEVICEINTERFACESIZE, 
(DWORD_PTR) &Size, 0);
    if (Size > 0) {
        char *Info = new char[Size];
        if (waveInMessage (0, DRV_QUERYDEVICEINTERFACE, (DWORD_PTR) Info, 
(DWORD_PTR) Size) == MMSYSERR_NOERROR) {
            HANDLE hDev = CreateFileW ((WCHAR *) Info, 0, 0, NULL, 
OPEN_EXISTING, 0, NULL);
        ...
        }
    }

Jeff

  ----- Original Message ----- 
  From: Jerry Evans 
  To: wdmaudiodev@xxxxxxxxxxxxx 
  Sent: Tuesday, October 04, 2005 9:53 PM
  Subject: [wdmaudiodev] Re: obtaining a mixer for a given device interface


  Jeff,

  Have you got some example code you could share on this ? 

  Many thx.

  Jerry

  ----- Original Message ----- 
    From: Jeff Pages 
    To: wdmaudiodev@xxxxxxxxxxxxx 
    Sent: Thursday, July 21, 2005 6:37 AM
    Subject: [wdmaudiodev] Re: obtaining a mixer for a given device interface


    Given a mixer Device ID, you can obtain its corresponding device interface 
by calling mixerMessage with DRV_QUERYDEVICEINTERFACE (and 
DRV_QUERYDEVICEINTERFACESIZE). See the latest DDK under WDM Audio Extensions to 
Legacy Windows Multimedia APIs for details. This should (hopefully) match with 
one of the device interfaces you found from SetupDiEnumDeviceInterfaces.

    Jeff Pages
    Innes Corporation Pty Ltd

Other related posts: