WAVEINCAPS

See also WIDM_GETDEVCAPS


typedef struct waveincaps_tag {
    UINT  wMid;
    UINT  wPid;
    VERSION  vDriverVersion;
    char  szPname[MAXPNAMELEN];
    DWORD  dwFormats;
    UINT  wChannels;
} WAVEINCAPS;

The <k>WAVEINCAPS</k> structure describes the capabilities of a waveform input device.
<parm>
<i><k>wMid</k>
<d>Specifies a manufacturer ID for the device driver for the waveform input device. Manufacturer IDs are defined in the <e>Multimedia Programmer's Reference</e> in the Microsoft Windows Software Development Kit.
<i><k>wPid</k>
<d>Specifies a product ID for the waveform input device. Product IDs are defined in the <e>Multimedia Programmer's Reference</e> in the Microsoft Windows Software Development Kit.
<i><k>vDriverVersion</k>
<d>Specifies the version number of the device driver for the waveform input device. The high-order byte is the major version number, and the low-order byte is the minor version number. The numbering is up to the driver developer but should be changed with each driver release. 
<i><k>szPname[MAXPNAMELEN]</k>
<d>Specifies the product name in a NULL-terminated string.
<i><k>dwFormats</k>
<d>Specifies which standard formats are supported. The supported formats are specified with a logical OR of the following flags:
<list>
<i>WAVE_FORMAT_1M08
<d>11.025 kHz, Mono, 8-bit
<i>WAVE_FORMAT_1S08
<d>11.025 kHz, Stereo, 8-bit
<i>WAVE_FORMAT_1M16
<d>11.025 kHz, Mono, 16-bit
<i>WAVE_FORMAT_1S16
<d>11.025 kHz, Stereo, 16-bit
<i>WAVE_FORMAT_2M08
<d>22.05 kHz, Mono, 8-bit
<i>WAVE_FORMAT_2S08
<d>22.05 kHz, Stereo, 8-bit
<i>WAVE_FORMAT_2M16
<d>22.05 kHz, Mono, 16-bit
<i>WAVE_FORMAT_2S16
<d>22.05 kHz, Stereo, 16-bit
<i>WAVE_FORMAT_4M08
<d>44.1 kHz, Mono, 8-bit
<i>WAVE_FORMAT_4S08
<d>44.1 kHz, Stereo, 8-bit
<i>WAVE_FORMAT_4M16
<d>44.1 kHz, Mono, 16-bit
<i>WAVE_FORMAT_4S16
<d>44.1 kHz, Stereo, 16-bit
</list>
<i><k>wChannels</k>
<d>Specifies whether the device supports mono (1) or stereo (2) input.
</parm>

<cmt>Drivers can support other formats in addition to those specified in the <k>dwFormats</k> field.
</cmt></ref>
<ref id=WAVEOPENDESC>WAVEOPENDESC
<sa>WODM_OPEN, WIDM_OPEN</sa>

<syn>typedef struct waveopendesc_tag {
    HWAVE  hWave;
    LPWAVEFORMAT  lpFormat;
    DWORD  dwCallback;
    DWORD  dwInstance;
} WAVEOPENDESC;

This structure contains information needed by a waveform input or waveform output device driver when devices are opened with a WODM_OPEN or WIDM_OPEN message.

hWave

Specifies the client's handle to the device, assigned by MMSYSTEM. Use this handle when notifying the client with the DriverCallback function.

lpFormat

Specifies a far pointer to a WAVEFORMAT structure, indicating the waveform data format requested by the client.

dwCallback

Specifies either the address of a callback function, a window handle, or a task handle, depending on the flags specified in the dwParam2 parameter of the WODM_OPEN or WIDM_OPEN message. If this field contains a handle it is contained in the low-order word. The driver uses this information to notify the client using the DriverCallback function.

dwInstance

Specifies a DWORD of instance information for the client. This instance information is returned to the client whenever the driver notifies the client using the DriverCallback function.