windows-nt/Source/XPSP1/NT/net/tapi/skywalker/hidtsp/audio.h
2020-09-26 16:20:57 +08:00

88 lines
2.3 KiB
C

//
// Copyright (c) 1999 Microsoft Corporation
//
// HIDCOM.EXE -- exploratory USB Phone Console Application
//
// audio.h -- audio magic
//
#ifndef _HIDCOM_AUDIO_H_
#define _HIDCOM_AUDIO_H_
#ifdef __cplusplus
extern "C"
{
#endif
#include <basetyps.h>
#include <setupapi.h>
//////////////////////////////////////////////////////////////////////////////
//
// DiscoverAssociatedWaveId
//
// This function searches for a wave device to match the HID device in the
// PNP tree location specified in the passed in SP_DEVICE_INTERFACE_DATA
// structure, obtained from the SetupKi API. It returns the wave id for
// the matched device.
//
// It uses the helper function FindWaveIdFromHardwareIdString() to search for
// the wave device based on a devinst DWORD and a hardware ID string. First,
// it must obtain the devinst for the device; it does this by calling a SetupDi
// function and looking up the devinst in a resulting structure. The hardware
// ID string is then retrieved from the registry and trimmed, using the helper
// function HardwareIdFromDevinst().
//
// See FindWaveIdFromHardwareIdString() for further comments on the search
// algorithm.
//
// Arguments:
// dwDevInst - IN - Device Instance of the HID device
// fRender - IN - TRUE for wave out, FALSE for wave in
// pdwWaveId - OUT - the wave id associated with this HID device
//
// Return values:
// S_OK - succeeded and matched wave id
// other from helper functions FindWaveIdFromHardwareIdString() or
// or HardwareIdFromDevinst()
//
HRESULT DiscoverAssociatedWaveId(
IN DWORD dwDevInst,
IN BOOL fRender,
OUT DWORD * pdwWaveId
);
//////////////////////////////////////////////////////////////////////////////
//
// ExamineWaveDevices
//
// This function is for debugging purposes only. It enumerates audio devices
// using the Wave API and prints the device path string as well as the
// device instance DWORD for each render or capture device.
//
// Arguments:
// fRender - IN - true means examine wave out devices; false = wave in
//
// Return values:
// E_OUTOFMEMORY
// S_OK
//
HRESULT ExamineWaveDevices(
IN BOOL fRender
);
#ifdef __cplusplus
};
#endif
#endif // _HIDCOM_AUDIO_H_
//
// eof
//