通过MCI系列的API是无法知道当前声卡信息的,有办法取到所有声卡信息的,不记得了,你搜一搜。
解决方案 »
- 求过来人指点.......学了c/c++ ,mfc 越来越迷茫,工作也不知道在哪.....
- 了解opc的都来看看
- 急问:WH_KEYBOARD_LL 和 WH_KEYBOARD有什么区别啊?
- 我想做一个类似Word的具有向客户抛标准COM的二次开发接口的应用程序,不知道如何下手??????
- 如何在用户界面线程中的成员函数中获得该工程下的视图类的指针?
- 如何给自己的程序设置代理服务器
- 昨天的问题.int转LPCTSTR后是乱码,100分求救(全部呆码)~~~~
- ActiveX控件添加菜单和工具栏???
- 高分求高见(送分了,up有分)
- ===菜鸟系列===:我愿罄尽所有求解致命连接错误!!!!!在线等候!!!!
- 关于listctrl中单元格中文字可点击的问题,求思路,求代码,求讨论
- COM编程时候的一个堆内存分配的问题?
下面依此读取所有的项,直到找到Class键的值为MEDIA(声卡),
找到后读取下面的键值
也可以通过WMI来读取
Display Adapters
Class = Display
ClassGuid = {4d36e968-e325-11ce-bfc1-08002be10318}Multimedia
Class = Media
ClassGuid = {4d36e96c-e325-11ce-bfc1-08002be10318}#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
#include <setupapi.h>int main(int argc, char* argv[])
{
DWORD dwIdx = 0;
SP_DEVINFO_DATA adapterData;
DWORD dwType = 0;
DWORD dwBuflen = 0;
PUCHAR pBuf = NULL;
HDEVINFO hScsi = INVALID_HANDLE_VALUE;
GUID guidScsiRaid = {
0x4D36E97B,
0xE325,
0x11CE,
{0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18}
};BOOL bret = FALSE;hScsi = SetupDiGetClassDevs(&guidScsiRaid
, NULL, NULL, DIGCF_PRESENT);adapterData.cbSize = sizeof(SP_DEVINFO_DATA);for(dwIdx = 0; SetupDiEnumDeviceInfo(hScsi, dwIdx, &adapterData); dwIdx++)
{
SetupDiGetDeviceRegistryProperty(
hScsi,
&adapterData,
SPDRP_DEVICEDESC,
&dwType,
NULL,
0,
&dwBuflen
);if(ERROR_INSUFFICIENT_BUFFER == GetLastError())
{
pBuf = (PUCHAR)malloc(dwBuflen);
if(SetupDiGetDeviceRegistryProperty(
hScsi,
&adapterData,
SPDRP_DEVICEDESC,
&dwType,
pBuf,
dwBuflen,
NULL
))
{
printf("%s\n", pBuf);
}free(pBuf);
pBuf = NULL;
}
}SetupDiDestroyDeviceInfoList(hScsi);return 0;
}
waveInGetID
waveInGetNumDevs
waveInOpen这几个API楼主认真看看。