⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multimediainfo.cpp

📁 一个用vc获取系统硬件信息的例子
💻 CPP
字号:
//------------------------------------------------------------------------------
// MultimediaInfo.cpp
//    
//   This file contains MultimediaInfo.
// 
//   Copyright (c) 2001 J. Michael McGarrah ( mcgarrah@mcgarware.com )
// 
#include "MultimediaInfo.h"
#include <windows.h>
#include <mmreg.h>

#include <sstream>
using namespace std;

MultimediaInfo::MultimediaInfo()
{
   determineMultimediaInfo();
}

MultimediaInfo::MultimediaInfo(const MultimediaInfo& source)
{
   assign(source);
}

MultimediaInfo& MultimediaInfo::operator=(const MultimediaInfo& right)
{
   if (this != &right)
   {
      assign(right);
   }

   return (*this);
}

MultimediaInfo::~MultimediaInfo()
{
   // nothing to do yet
}

void MultimediaInfo::assign(const MultimediaInfo& source)
{
   m_bIsInstalled = source.m_bIsInstalled;
	m_bHasVolCtrl = source.m_bHasVolCtrl;
	m_bHasSeparateLRVolCtrl = source.m_bHasSeparateLRVolCtrl;
	m_strCompanyName = source.m_strCompanyName;
	m_strProductName = source.m_strProductName;
}

void MultimediaInfo::determineMultimediaInfo()
{

	HRESULT hRes = S_OK;
	MMRESULT mmRes = MMSYSERR_NOERROR;
	UINT numDevices = 0;
	UINT cbCaps;
	WAVEOUTCAPS wavCaps;

	// Get the number of audio output devices installed on your system.
	numDevices = waveOutGetNumDevs ();
	m_bIsInstalled = (numDevices > 0) ? TRUE : FALSE;

	// If the device is present, only then we will proceed to get other information.
	if (m_bIsInstalled)
	{
		hRes = E_FAIL;
		cbCaps = sizeof (AUXCAPS);
		mmRes = waveOutGetDevCaps (0, &wavCaps, cbCaps);
		if (mmRes == MMSYSERR_NOERROR) {
			hRes = S_OK;
			m_strProductName = wavCaps.szPname;
			m_bHasSeparateLRVolCtrl = (wavCaps.dwSupport & WAVECAPS_VOLUME) ? TRUE : FALSE;
			m_bHasVolCtrl = (wavCaps.dwSupport & AUXCAPS_VOLUME) ? TRUE : FALSE;
			m_strCompanyName = GetAudioDevCompanyName (wavCaps.wMid);
		}
	}

    return; 
}


std::string MultimediaInfo::GetAudioDevCompanyName(int wCompany)
{
	string stCompany;

	stCompany = ("Unknown");
	switch (wCompany) {
		case MM_MICROSOFT:
			stCompany = ("Microsoft Corporation");
			break;
		case MM_CREATIVE:
			stCompany = ("Creative Labs, Inc");
			break;
		case MM_MEDIAVISION:
			stCompany = ("Media Vision, Inc.");
			break;
		case MM_FUJITSU:
			stCompany = ("Fujitsu Corp.");
			break;
		case MM_ARTISOFT:
			stCompany = ("Artisoft, Inc.");
			break;
		case MM_TURTLE_BEACH:
			stCompany = ("Turtle Beach, Inc.");
			break;
		case MM_IBM:
			stCompany = ("IBM Corporation");
			break;
		case MM_VOCALTEC:
			stCompany = ("Vocaltec LTD.");
			break;
		case MM_ROLAND:
			stCompany = ("Roland");
			break;
		case MM_DSP_SOLUTIONS:
			stCompany = ("DSP Solutions, Inc.");
			break;
		case MM_NEC:
			stCompany = ("NEC");
			break;
		case MM_ATI:
			stCompany = ("ATI");
			break;
		case MM_WANGLABS:
			stCompany = ("Wang Laboratories, Inc");
			break;
		case MM_TANDY:
			stCompany = ("Tandy Corporation");
			break;
		case MM_VOYETRA:
			stCompany = ("Voyetra");
			break;
		case MM_ANTEX:
			stCompany = ("Antex Electronics Corporation");
			break;
		case MM_ICL_PS:
			stCompany = ("ICL Personal Systems");
			break;
		case MM_INTEL:
			stCompany = ("Intel Corporation");
			break;
		case MM_GRAVIS:
			stCompany = ("Advanced Gravis");
			break;
		case MM_VAL:
			stCompany = ("Video Associates Labs, Inc.");
			break;
		case MM_INTERACTIVE:
			stCompany = ("InterActive Inc");
			break;
		case MM_YAMAHA:
			stCompany = ("Yamaha Corporation of America");
			break;
		case MM_EVEREX:
			stCompany = ("Everex Systems, Inc");
			break;
		case MM_ECHO:
			stCompany = ("Echo Speech Corporation");
			break;
		case MM_SIERRA:
			stCompany = ("Sierra Semiconductor Corp");
			break;
		case MM_CAT:
			stCompany = ("Computer Aided Technologies");
			break;
		case MM_APPS:
			stCompany = ("APPS Software International");
			break;
		case MM_DSP_GROUP:
			stCompany = ("DSP Group, Inc");
			break;
		case MM_MELABS:
			stCompany = ("MicroEngineering Labs");
			break;
		case MM_COMPUTER_FRIENDS:
			stCompany = ("Computer Friends, Inc.");
			break;
		case MM_ESS:
			stCompany = ("ESS Technology");
			break;
		case MM_AUDIOFILE:
			stCompany = ("Audio, Inc.");
			break;
		case MM_MOTOROLA:
			stCompany = ("Motorola, Inc.");
		case MM_CANOPUS:
			stCompany = ("Canopus, co., Ltd.");
			break;
		case MM_EPSON:
			stCompany = ("Seiko Epson Corporation");
			break;
		case MM_TRUEVISION:
			stCompany = ("Truevision");
			break;
		case MM_AZTECH:
			stCompany = ("Aztech Labs, Inc.");
			break;
		case MM_VIDEOLOGIC:
			stCompany = ("Videologic");
			break;
		case MM_SCALACS:
			stCompany = ("SCALACS");
			break;
		case MM_KORG:
			stCompany = ("Korg Inc.");
			break;
		case MM_APT:
			stCompany = ("Audio Processing Technology");
			break;
		case MM_ICS:
			stCompany = ("Integrated Circuit Systems, Inc.");
			break;
		case MM_ITERATEDSYS:
			stCompany = ("Iterated Systems, Inc.");
			break;
		case MM_METHEUS:
			stCompany = ("Metheus");
			break;
		case MM_LOGITECH:
			stCompany = ("Logitech, Inc.");
			break;
		case MM_WINNOV:
			stCompany = ("Winnov, Inc.");
			break;
		case MM_NCR:
			stCompany = ("NCR Corporation");
			break;
		case MM_EXAN:
			stCompany = ("EXAN");
			break;
		case MM_AST:
			stCompany = ("AST Research Inc.");
			break;
		case MM_WILLOWPOND:
			stCompany = ("Willow Pond Corporation");
			break;
		case MM_SONICFOUNDRY:
			stCompany = ("Sonic Foundry");
			break;
		case MM_VITEC:
			stCompany = ("Vitec Multimedia");
			break;
		case MM_MOSCOM:
			stCompany = ("MOSCOM Corporation");
			break;
		case MM_SILICONSOFT:
			stCompany = ("Silicon Soft, Inc.");
			break;
		case MM_SUPERMAC:
			stCompany = ("Supermac");
			break;
		case MM_AUDIOPT:
			stCompany = ("Audio Processing Technology");
			break;
		case MM_SPEECHCOMP:
			stCompany = ("Speech Compression");
			break;
		case MM_AHEAD:
			stCompany = ("Ahead, Inc.");
			break;
		case MM_DOLBY:
			stCompany = ("Dolby Laboratories");
			break;
		case MM_OKI:
			stCompany = ("OKI");
			break;
		case MM_AURAVISION:
			stCompany = ("AuraVision Corporation");
			break;
		case MM_OLIVETTI:
			stCompany = ("Ing C. Olivetti & C., S.p.A.");
			break;
		case MM_IOMAGIC:
			stCompany = ("I/O Magic Corporation");
			break;
		case MM_MATSUSHITA:
			stCompany = ("Matsushita Electric Industrial Co., LTD.");
			break;
		case MM_CONTROLRES:
			stCompany = ("Control Resources Limited");
			break;
		case MM_XEBEC:
			stCompany = ("Xebec Multimedia Solutions Limited");
			break;
		case MM_NEWMEDIA:
			stCompany = ("New Media Corporation");
			break;
		case MM_NMS:
			stCompany = ("Natural MicroSystems");
			break;
		case MM_LYRRUS:
			stCompany = ("Lyrrus Inc.");
			break;
		case MM_COMPUSIC:
			stCompany = ("Compusic");
			break;
		case MM_OPTI:
			stCompany = ("OPTI Computers Inc.");
			break;
		case MM_ADLACC:
			stCompany = ("Adlib Accessories Inc.");
			break;
		case MM_COMPAQ:
			stCompany = ("Compaq Computer Corp.");
			break;
		case MM_DIALOGIC:
			stCompany = ("Dialogic Corporation");
			break;
		case MM_INSOFT:
			stCompany = ("InSoft, Inc.");
			break;
		case MM_MPTUS:
			stCompany = ("M.P. Technologies, Inc.");
			break;
		case MM_WEITEK:
			stCompany = ("Weitek");
			break;
		case MM_LERNOUT_AND_HAUSPIE:
			stCompany = ("Lernout & Hauspie");
			break;
		case MM_QCIAR:
			stCompany = ("Quanta Computer Inc.");
			break;
		case MM_APPLE:
			stCompany = ("Apple Computer, Inc.");
			break;
		case MM_DIGITAL:
			stCompany = ("Digital Equipment Corporation");
			break;
		case MM_MOTU:
			stCompany = ("Mark of the Unicorn");
			break;
		case MM_WORKBIT:
			stCompany = ("Workbit Corporation");
			break;
		case MM_OSITECH:
			stCompany = ("Ositech Communications Inc.");
			break;
		case MM_MIRO:
			stCompany = ("miro Computer Products AG");
			break;
		case MM_CIRRUSLOGIC:
			stCompany = ("Cirrus Logic");
			break;
		case MM_ISOLUTION:
			stCompany = ("ISOLUTION  B.V.");
			break;
		case MM_HORIZONS:
			stCompany = ("Horizons Technology, Inc");
			break;
		case MM_CONCEPTS:
			stCompany = ("Computer Concepts Ltd");
			break;
		case MM_VTG:
			stCompany = ("Voice Technologies Group, Inc.");
			break;
		case MM_RADIUS:
			stCompany = ("Radius");
			break;
		case MM_ROCKWELL:
			stCompany = ("Rockwell International");
			break;
		//case MM_XYZ:
		//	stCompany = ("Co. XYZ for testing");
		//	break;
		case MM_OPCODE:
			stCompany = ("Opcode Systems");
			break;
		case MM_VOXWARE:
			stCompany = ("Voxware Inc");
			break;
		case MM_NORTHERN_TELECOM:
			stCompany = ("Northern Telecom Limited");
			break;
		case MM_APICOM:
			stCompany = ("APICOM");
			break;
		case MM_GRANDE:
			stCompany = ("Grande Software");
			break;
		case MM_ADDX:
			stCompany = ("ADDX");
			break;
		case MM_WILDCAT:
			stCompany = ("Wildcat Canyon Software");
			break;
		case MM_RHETOREX:
			stCompany = ("Rhetorex Inc");
			break;
		case MM_BROOKTREE:
			stCompany = ("Brooktree Corporation");
			break;
		case MM_ENSONIQ:
			stCompany = ("ENSONIQ Corporation");
			break;
		case MM_FAST:
			stCompany = ("///FAST Multimedia AG");
			break;
		case MM_NVIDIA:
			stCompany = ("NVidia Corporation");
			break;
		case MM_OKSORI:
			stCompany = ("OKSORI Co., Ltd.");
			break;
		case MM_DIACOUSTICS:
			stCompany = ("DiAcoustics, Inc.");
			break;
		case MM_GULBRANSEN:
			stCompany = ("Gulbransen, Inc.");
			break;
		case MM_KAY_ELEMETRICS:
			stCompany = ("Kay Elemetrics, Inc.");
			break;
		case MM_CRYSTAL:
			stCompany = ("Crystal Semiconductor Corporation");
			break;
		case MM_SPLASH_STUDIOS:
			stCompany = ("Splash Studios");
			break;
		case MM_QUARTERDECK:
			stCompany = ("Quarterdeck Corporation");
			break;
		case MM_TDK:
			stCompany = ("TDK Corporation");
			break;
		case MM_DIGITAL_AUDIO_LABS:
			stCompany = ("Digital Audio Labs, Inc.");
			break;
		case MM_SEERSYS:
			stCompany = ("Seer Systems, Inc.");
			break;
		case MM_PICTURETEL:
			stCompany = ("PictureTel Corporation");
			break;
		case MM_ATT_MICROELECTRONICS:
			stCompany = ("AT&T Microelectronics");
			break;
		case MM_OSPREY:
			stCompany = ("Osprey Technologies, Inc.");
			break;
		case MM_MEDIATRIX:
			stCompany = ("Mediatrix Peripherals");
			break;
		case MM_SOUNDESIGNS:
			stCompany = ("SounDesignS M.C.S. Ltd.");
			break;
		case MM_ALDIGITAL:
			stCompany = ("A.L. Digital Ltd.");
			break;
		case MM_SPECTRUM_SIGNAL_PROCESSING:
			stCompany = ("Spectrum Signal Processing, Inc.");
			break;
		case MM_ECS:
			stCompany = ("Electronic Courseware Systems, Inc.");
			break;
		case MM_AMD:
			stCompany = ("AMD");
			break;
		case MM_COREDYNAMICS:
			stCompany = ("Core Dynamics");
			break;
		case MM_CANAM:
			stCompany = ("CANAM Computers");
			break;
		case MM_SOFTSOUND:
			stCompany = ("Softsound, Ltd.");
			break;
		case MM_NORRIS:
			stCompany = ("Norris Communications, Inc.");
			break;
		case MM_DDD:
			stCompany = ("Danka Data Devices");
			break;
		case MM_EUPHONICS:
			stCompany = ("EuPhonics");
			break;
		case MM_PRECEPT:
			stCompany = ("Precept Software, Inc.");
			break;
		case MM_CRYSTAL_NET:
			stCompany = ("Crystal Net Corporation");
			break;
		case MM_CHROMATIC:
			stCompany = ("Chromatic Research, Inc");
			break;
		case MM_VOICEINFO:
			stCompany = ("Voice Information Systems, Inc");
			break;
		case MM_VIENNASYS:
			stCompany = ("Vienna Systems");
			break;
		case MM_CONNECTIX:
			stCompany = ("Connectix Corporation");
			break;
		case MM_GADGETLABS:
			stCompany = ("Gadget Labs LLC");
			break;
		case MM_FRONTIER:
			stCompany = ("Frontier Design Group LLC");
			break;
		case MM_VIONA:
			stCompany = ("Viona Development GmbH");
			break;
		case MM_CASIO:
			stCompany = ("Casio Computer Co., LTD");
			break;
		case MM_DIAMONDMM:
			stCompany = ("Diamond Multimedia");
			break;
		case MM_S3:
			stCompany = ("S3");
			break;
		case MM_FRAUNHOFER_IIS:
			stCompany = ("Fraunhofer");
			break;
		default:
			stCompany = ("Unknown");
			break;
	}

	return stCompany;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -