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

📄 soundlib.h

📁 墨香最新私服
💻 H
字号:

// The following ifdef block is the standard way of creating macros which make exporting 
// from a DLL simpler. All files within this DLL are compiled with the SOUNDLIB_EXPORTS
// symbol defined on the command line. this symbol should not be defined on any project
// that uses this DLL. This way any other project whose source files include this file see 
// SOUNDLIB_API functions as being imported from a DLL, wheras this DLL sees symbols
// defined with this macro as being exported.
/*
	¿Þ¼Õ ÁÂÇ¥°è.
	x´Â ¿À¸¥ÂÊ, y´Â À§, z´Â ¾ÕÀÌ¶ó °¡Á¤ÇÑ´Ù.
*/
#ifndef	_SoundLib_h_
#define	_SoundLib_h_


#ifdef SOUNDLIB_EXPORTS
#define SOUNDLIB_API extern "C" __declspec(dllexport)
#else
#define SOUNDLIB_API extern "C" __declspec(dllimport)
#endif

#include <windows.h>
#include "../4DyuchiGRX_common/typedef.h"


enum	SOUND_3D_DRIVER
{
	SOUND_DRIVER_TYPE_NONE,
	SOUND_DRIVER_TYPE_EAX3,
	SOUND_DRIVER_TYPE_EAX2,
	SOUND_DRIVER_TYPE_EAX1,
	SOUND_DRIVER_TYPE_DS3DHW,
	SOUND_DRIVER_TYPE_DS3DSW,
	SOUND_DRIVER_TYPE_MILES,
	SOUND_DRIVER_TYPE_DOLBY
};

enum	SOUND_SPEAKER_TYPE
{
	SOUND_SPEAKER_TYPE_STEREO,			// ÀϹÝÀûÀÎ 2ü³Î.
	SOUND_SPEAKER_TYPE_HEADPHONE,		// ÇìµåÆù, »ç¿îµåÄ«µåÀÇ Á¾·ù¿¡ µû¶ó ÇìµåÆù ¿¥ÇÁµîÀÌ ÀÛµ¿ÇÑ´Ù.
	SOUND_SPEAKER_TYPE_4CH,				// 4ü³Î Æ÷Áö¼Å´×.
	SOUND_SPEAKER_TYPE_6CH,				// 5.1ü³Î Æ÷Áö¼Å´×.
	SOUND_SPEAKER_TYPE_8CH,				// 7.1ü³Î Æ÷Áö¼Å´×. ÇÁ·ÎµðÁö7.1 µî¿¡¼­ Áö¿øµÈ´Ù.
	SOUND_SPEAKER_TYPE_UNKNOWN			// miles¿¡¼­ ¼­¶ó¿îµåÇüÀ̶õ°É Áö¿øÇϴµ¥ ¹ºÁö ¸ð¸§. 
};

typedef		void*	SOUND_FILE_HANDLE;

// IMilesSoundLib::GetLastError ·Î ¸®ÅϵǴ ¿¡·¯°ª.
enum SOUND_ERROR_CODE
{
	SOUND_ERROR_NOERROR,
	SOUND_ERROR_ALREADY_INITIALIZED,
	SOUND_ERROR_INVALID_ARGUMENT,
	SOUND_ERROR_MILES_STARTUP_FAILED,
	SOUND_ERROR_BGMDRIVER_STARTUP_FAILED,			// InitÁß »ç¿îµå Ä«µå°¡ ¾øÀ» °æ¿ì ÀÌ ¸Þ½ÃÁö¸¦ ³»°í Æ¢¾î³ª¿Â´Ù.
	SOUND_ERROR_3DDRIVER_STARTUP_FAILED,			// InitÁß 3D µå¶óÀ̹ö¸¦ ¸øÃ£À¸¸é ¿¡·¯¸¦ ³½´Ù. ÀÌ·² °æ¿ì°¡ ÀÖÀ»±î?
	SOUND_ERROR_BGMDRIVER_NOT_LOADED,
	SOUND_ERROR_UNABLE_OPEN_FILE,
	SOUND_ERROR_OUT_OF_MAX_FILE_COUNT,
	SOUND_ERROR_OUT_OF_MAX_EFFECT_COUNT
};

struct	ISoundEffect
{
	virtual	void	_stdcall	Play( BOOL bLoop)=0;
	/*
		»ç¿îµå Àç»ý.
		
		BOOL	bLoop     À̰ÍÀÌ TRUE¸é ·çÇÁ¸¦ µ·´Ù.

		¼³Á¤µÈ À§Ä¡, ¼³Á¤µÈ º¼·ý, ¼³Á¤µÈ max,minÀ» ¹ÙÅÁÀ¸·Î ¼Ò¸®¸¦ Àç»ýÇÑ´Ù.
		³»ºÎÀûÀ¸·Î´Â Play ÇÏ´Â ¼ø°£ MilesÀÇ »ùÇðú ÆÄÀÏÀ» ¿¬°á½Ã۰í start ÇÑ´Ù.
	*/
	virtual void	_stdcall	Stop(void)=0;
	/*
		¼Ò¸®¸¦ Á¤Áö½ÃŲ´Ù.
		³»ºÎÀûÀ¸·Î´Â Stop ÇÏ´Â ¼ø°£ ¼Ò¸®¸¦ end ½Ã۰í MilesÀÇ »ùÇÃÀ» ¸±¸®Áî ÇÑ´Ù.
	*/

	virtual	void	_stdcall	SetMaxMinDistance( float fMaxDist, float fMinDist)=0;
	/*
		¼Ò¸®°¡ µé¸®´Â ÃÖ´ë °Å¸®, ÃÖ¼Ò °Å¸®¸¦ ³Ö´Â´Ù.

		float fMaxDist			// ÃÖ´ë °Å¸®. 
		float fMinDist			// ÃÖ¼Ò °Å¸®. °Å¸® 0ºÎÅÍ ÀÌ °Å¸®±îÁö´Â º¼·ýÀÌ ÁÙ¾îµéÁö ¾Ê´Â´Ù.

		fMinDist¿Í fMaxDist´Â °øºÎ¸¦ Á» Çϰųª ½ÃÇàÂø¿À¸¦ °Þ¾î°¡¸é¼­ ¼¼ÆÃ ÇØ¾ßÇÒ µí.
	*/

	virtual	void	_stdcall	SetPosition( VECTOR3* pPosition)=0;
	/*
		ÀÌÆåÆ®ÀÇ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù.

		VECTOR3* pPosition			¿ùµå¿¡¼­ÀÇ ÀÌÆåÆ®ÀÇ ÁÂÇ¥¸¦ ¼³Á¤ÇÑ´Ù.

		SetPositionÀ» ÇÒ °æ¿ì, IMilesSoundLib::SetListener ¿¡¼­ ¼³Á¤ÇÑ Ä«¸Þ¶ó¸¦ Âü°íÇØ¼­ Ä«¸Þ¶ó¿¡ »ó´ëÀûÀÎ À§Ä¡¸¦ ¼¼ÆÃ ÇÑ´Ù.
	*/

	virtual	void	_stdcall	SetRelativePosition( VECTOR3* pPosition)=0;
	/*
		ÀÌÆåÆ®ÀÇ »ó´ëÀû À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù.

		VECTOR3* pPosition			Ä«¸Þ¶ó¿¡¼­ÀÇ »ó´ë À§Ä¡.

		SetPosition()°ú ´Ù¸£°Ô À̰ÍÀº Ä«¸Þ¶ó¸¦ 0,0,0¿¡ À§Ä¡½ÃŲ »óÅ·Π°¡Á¤ÇÏ°í ±× Àý´ë°ªÀ» ¼¼ÆÃÇÏ´Â È¿°ú¸¦ ÁØ´Ù.
	*/

	virtual	void	_stdcall	SetVolume( float fVolume)=0;
	/*
		º¼·ýÀ» ¼³Á¤ÇÑ´Ù.

		float fVolume			0.0f ºÎÅÍ 1.0f ±îÁö º¼·ýÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
	*/
	virtual	float	_stdcall	GetVolume(void)=0;
	/*
		º¼·ýÀ» ¾ò´Â´Ù.
	*/

	virtual	BOOL	_stdcall	IsAlive(void)=0;
	/*
		»ç¿îµå°¡ Àç»ýµÇ°í sampleÀ» Àâ°í Àִ°¡¸¦ ¸®ÅÏÇÑ´Ù.
	*/

	virtual	BOOL	_stdcall	IsLoop(void)=0;
	/*
		·çÇÁ Ç÷¢ÀÌ ›¾ µÇ¾îÀִ°¡.?
	*/

	virtual	DWORD	_stdcall	AddRef()=0;
	virtual	DWORD	_stdcall	Release()=0;
	/*
		·¹ÆÛ·±½º Ä«¿îÅ͸¦ »«´Ù.
		ÀϹÝÀûÀ¸·Î Release() ÇÏ´Â ¼ø°£ ·¹ÆÛ·±½ºÄ«¿îÅͰ¡ 0ÀÌ µÇ¸é¼­ ¸Þ¸ð¸®¿¡¼­ »ç¶óÁø´Ù.
	*/
};

struct	IMilesSoundLib
{
	virtual	SOUND_ERROR_CODE _stdcall Init(DWORD dwMaxSoundFileCount, DWORD dwMaxSoundEffectCount, char* szMilesPass, BOOL bTryEAX, BOOL bForceSoftware) = 0;// »ç¿îµå ¸Þ´ÏÀú ÃʱâÈ­.
	/*
		IMilesSoundLibÀ» ÃʱâÈ­ ÇÑ´Ù.

		DWORD	dwMaxSoundFileCount´Â ÃÖ´ëÇÑ ¿Ã·Á ³õÀ» ¼ö ÀÖ´Â wav, mp3ÆÄÀÏÀÇ °¹¼ö,
		DWORD	dwMaxSoundEffectCount´Â °ÔÀÓ °´Ã¼°¡ ¼Ò¸®¸¦ ³¾ ¼Ò¸® °´Ã¼ ÃÖ´ë °¹¼ö.
		char*	szMilesPass´Â ¸¶ÀÏÁî°¡ ±ò·ÁÀÖ´Â µð·ºÅ丮 ±âº»ÀûÀ¸·Î "redist"ÀÌÁö¸¸ "miles"·Î ¿Å±â±æ..
		BOOL	bTryEAX´Â 3D µå¶óÀ̹ö¸¦ ÀâÀ» ¶§ eax¸¦ ½Ãµµ Çϴ°¡ ¿©ºÎ¸¦ ¾Ë¸°´Ù.
		BOOL	bForceSoftware´Â ¼ÒÇÁÆ®¿þ¾îµå¶óÀ̹ö¸¦ °­Á¦·Î ½ÃµµÇÑ´Ù. ´ëºÎºÐÀÇ °æ¿ì ¼º°øÇÒ °ÍÀ̰í, À̶§ bTryEAX´Â ¹«½ÃµÈ´Ù.
		¸®ÅϰªÀº º° ¹®Á¦ ¾øÀÌ ¼º°øÇϸé SOUND_ERROR_NOERROR,
		Init°¡ µÎ¹øÂ° µÇ´Â °æ¿ì SOUND_ERROR_ALREADY_INITIALIZED,
		µé¾î¿Â ÀÎÀÚ°¡ ÀÌ»óÇÒ °æ¿ì SOUND_ERROR_INVALID_ARGUMENT,
		¸¶ÀÏÁî ÃʱâÈ­¿¡ ½ÇÆÐÇϸé SOUND_ERROR_MILES_STARTUP_FAILED,
		BGMµå¶óÀ̹ö¸¦ ãÁö ¸øÇÒ °æ¿ì, »ç¿îµåÄ«µå°¡ ¾ø´Ù¸é SOUND_ERROR_BGMDRIVER_STARTUP_FAILED,
		3D »ç¿îµå µå¶óÀ̹ö¸¦ ¿Ã¸®Áö ¸øÇϸé SOUND_ERROR_3DDRIVER_STARTUP_FAILED
		¸¦ “ʾ´Ù.
		ÀÌÁß »ç¿îµåÄ«µå°¡ ¾øÀ»°æ¿ì ¸¦ ´ëºñÇØ SOUND_ERROR_BGMDRIVER_STARTUP_FAILED´Â ó¸®ÇØÁÖ°í,
		³ª¸ÓÁö ¿¡·¯´Â ÇÁ·Î±×·¡¸Ó¸¦ ãµµ·Ï. -_-;
	*/

	virtual	SOUND_3D_DRIVER		_stdcall	Get3DDriver(void)=0;
	/*
		ÇöÀç ÀâÇôÀÖ´Â 3D µå¶óÀ̹ö¸¦ ¸®ÅÏÇÑ´Ù.
	*/

	virtual	void				_stdcall	SetListener( VECTOR3* pPosition, VECTOR3* pAngle)=0;
	/*
		ûÀÚÀÇ À§Ä¡¿Í º¸´Â °¢À» °áÁ¤ÇÑ´Ù.
		VECTOR3* pPosition		 ûÀÚÀÇ À§Ä¡.
		VECTOR3* pAngle			ûÀÚ°¡ º¸´Â °¢µµ, radius ´ÜÀ§ÀÌ´Ù.

		ÇÑ °ÔÀÓ ÇÁ·¹ÀÓ ³»¿¡¼­ ´Ù¸¥ ISoundEffect¿¡ SetPositionÇϱâ Àü¿¡ ¸ÕÀú ¼¼ÆÃ µÇ´Â °ÍÀÌ ¸ÖÂÄÇÏ´Ù.
	*/

	virtual	SOUND_SPEAKER_TYPE	_stdcall Get3DSpeakerType(void)=0;
	/*
		ÀâÇôÀÖ´Â 3D driver°¡ »ç¿ëÇÏ´Â ½ºÇÇÄ¿ ¹èÄ¡ÀÇ ÇüŸ¦ ¾Ë¾Æ³½´Ù.
		ÀÌ´Â Á¦¾îÆÇ/»ç¿îµå ÀÇ °í±ÞÁ¤º¸¿¡ ÀÖ´Â ½ºÇÇÄ¿ ¹èÄ¡¿Í °°À»µí.
	*/

	virtual	void				_stdcall Set3DSpeakerType( SOUND_SPEAKER_TYPE Type)=0;
	/*
		3D driver°¡ »ç¿ëÇÏ´Â ½ºÇÇÄ¿ ŸÀÔÀ» °­Á¦·Î ¼³Á¤ÇÑ´Ù.
	*/

	// BGM
	virtual	SOUND_ERROR_CODE _stdcall PlayBGM( char* szBGMFileName)=0;
	/*
		szBGMFileNameÀ¸·Î ¸î½ÃµÈ ÆÄÀÏÀ» ¹é±×¶ó¿îµå·Î Ç÷¹ÀÌ ÇÑ´Ù.
		
		char* szBGMFileName		¿¡´Â BGMÆÄÀÏ À̸§À» ³Ö´Â´Ù. .wav, .mp3µîÀÌ °¡´ÉÇÏ´Ù.

		¼º°øÇÒ °æ¿ì SOUND_ERROR_NOERROR,
		Init°¡ ¼º°øÇÏÁö ¸øÇÑ °æ¿ì SOUND_ERROR_BGMDRIVER_NOT_LOADED À» ¸®ÅÏÇÏ°í ¾Æ¹«Áþµµ ¾ÈÇÑ´Ù.
		ÆÄÀÏ À̸§ÀÌ À߸ø‰çÀ» °æ¿ì SOUND_ERROR_UNABLE_OPEN_FILE
		À» ¸®ÅÏÇÑ´Ù.

	*/

	virtual	void			 _stdcall StopBGM(void)=0;
	/*
		Ç÷¹ÀÌ µÇ°í ÀÖ´Â BGMÀ» Á¤ÁöÇÑ´Ù.
		Init°¡ ¼º°øÇÏÁö ¾ÈÀº »óÅ¿¡¼­ È£ÃâµÇµµ »ó°ü ¾ø´Ù. 
	*/

	virtual void			_stdcall SetBGMVolume( float fVolume)=0;
	/*
	 *	BGMÀÇ º¼·ýÀ» ¼³Á¤ÇÑ´Ù. ¹üÀ§´Â 1.0f ¿¡¼­ 0.0f±îÁö.
	 */

	// Sound Effect File
	virtual SOUND_ERROR_CODE _stdcall CreateSoundEffectFile( SOUND_FILE_HANDLE* pOutHandle, char* szFileName)=0;
	/*
		»ç¿îµå ÆÄÀÏ¿¡ ´ëÇÑ ÇÚµéÀ» Çϳª ¸¸µç´Ù. »ý¼º½ÃÀÇ ¼Óµµ¸¦ À§ÇØ »ç¿îµå ÀÌÆåÆ®´Â ÆÄÀÏ À̸§À¸·Î ¹Ù·Î »ý¼ºµÇÁö ¾ÈÀ¸¹Ç·Î
		ÆÄÀÏ ÇÚµéÀ» Çϳª ¸¸µé°í ÀÌ ÇÚµé·Î »ç¿îµå ÀÌÆåÆ®¸¦ ¸¸µç´Ù.

		SOUND_FILE_HANDLE* pOutHandle		»ç¿îµå ÆÄÀÏ ÇÚµéÀ» ¹ÞÀ» Æ÷ÀÎÅÍ.
		char* szFileName					ÇÒ´çÇÒ ÆÄÀÏ À̸§.

		¼º°øÇÒ °æ¿ì SOUND_ERROR_NOERROR,
		BGMµå¶óÀ̹ö°¡ ¿Ã¶ó°¡Áö ¸øÇÑ °æ¿ì(»ç¿îµåÄ«µå°¡ ¾ø´Â °æ¿ì µî..) SOUND_ERROR_BGMDRIVER_NOT_LOADED,
		ÁÖ¾îÁø ÀÎÀÚ¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì SOUND_ERROR_INVALID_ARGUMENT,
		ÃÖ´ë ÆÄÀÏ °³Ã¼ °¹¼ö¸¦ ÃʰúÇÒ °æ¿ì SOUND_ERROR_OUT_OF_MAX_FILE_COUNT,
		ÁÖ¾îÁø ÆÄÀÏÀ» ¿­Áö ¸øÇßÀ» °æ¿ì SOUND_ERROR_UNABLE_OPEN_FILE
		À» ¸®ÅÏÇÑ´Ù.

		³»ºÎÀûÀ¸·Î ¸®¼Ò½º °øÀ¯°¡ µÇ¹Ç·Î °°Àº ÆÄÀÏÀ̸§¿¡ ´ëÇØ Creat¸¦ ÇÏ¸é ¹Ì¸® ¹ß±Þ µÇ¾ú´ø ÇÚµéÀ» ¸®ÅÏÇϰí,
		·¹ÆÛ·±½º Ä«¿îÅͰ¡ 1 ¿Ã¶ó°£´Ù.
	*/

	virtual	void			 _stdcall ReleaseSoundEffectFile( SOUND_FILE_HANDLE hFile)=0;
	/*
		hFile·Î ÁÖ¾îÁø ÆÄÀÏÀ» ¸±¸®Áî ÇÑ´Ù.
		
		ÇϳªÀÇ ÆÄÀÏ¿¡ ´ëÇØ ÇÚµéÀÌ ¿©·¯°³ ¹ß±ÞµÉ °ÍÀ̹ǷÎ, ³»ºÎÀûÀ¸·Î hFileÀÇ ·¹ÆÛ·±½º Ä«¿îÅ͸¦ Çϳª ¶³¾î¶ß¸°´Ù.
		·¹ÆÛ·±½º Ä«¿îÅͰ¡ 0ÀÌ µÇ´Â ¼ø°£ ½ÇÁ¦ ¸Þ¸ð¸®¿¡¼­ ¾ø¾îÁø´Ù.
	*/

	virtual	SOUND_ERROR_CODE _stdcall CreateSoundEffect( ISoundEffect** ppSoundEffect, SOUND_FILE_HANDLE hSound)=0;
	/*
		hSound ÆÄÀÏ ÇÚµéÀ» Ç÷¹ÀÌ ÇÏ´Â »ç¿îµå °´Ã¼¸¦ ¸¸µç´Ù.
		¸¸µå´Â ¼ø°£ Ç÷¹À̰¡ µÇ´Â °ÍÀº ¾Æ´Ï°í ¸¸µç ÈÄ ¹ÞÀº ÀÎÅÍÆäÀ̽º·Î Play ÇØÁà¾ß ÇÑ´Ù.

		ISoundEffect** ppSoundEffect		ÀÎÅÍÆäÀ̽º Æ÷ÀÎÅÍ.
		SOUND_FILE_HANDLE hSound			¸¸µé·Á´Â »ç¿îµåÀÇ ÆÄÀÏ ÇÚµé.

		¼º°øÇϸé SOUND_ERROR_NOERROR,
		ÀÎÀÚ·Î ÁÖ¾îÁø hSound°¡ ¾öÇÑ °ªÀ̸é SOUND_ERROR_INVALID_ARGUMENT,
		Init¶§ ÁÖ¾îÁø ÃÖ´ë ÀÌÆåÆ® °¹¼ö¸¦ ÃʰúÇϸé SOUND_ERROR_OUT_OF_MAX_EFFECT_COUNT
		¸¦ ¸®ÅÏÇÑ´Ù.

		¹ÞÀº ISoundEffect °´Ã¼´Â Áö¿ï¶§ ISoundEffect->Release()¸¦ »ç¿ëÇÑ´Ù.
	*/

	virtual	void			_stdcall	Run()=0;

	virtual	DWORD			_stdcall	GetAllocatedSoundEffectCount()=0;
	/*
		ÇöÀç ÀâÇôÀÖ´Â »ç¿îµå ÀÌÆÑÆ®ÀÇ °¹¼ö¸¦ ¸®ÅÏÇÑ´Ù.

		µð¹ö±×¿ë.
	*/
	virtual	DWORD			_stdcall	GetAllocatedSoundFileCount()=0;
	/*
		ÇöÀç ÀâÇôÀÖ´Â »ç¿îµå ÆÄÀÏÀÇ °¹¼ö¸¦ ¸®ÅÏÇÑ´Ù.

		µð¹ö±×¿ë.
	*/

	
	virtual	DWORD			_stdcall	ReleaseAllSoundEffect(void)=0;
	/*
		ÀâÇôÀÖ´ø ¸ðµç Effect¸¦ Áö¿î´Ù.

		À̽ÃÁ¡±îÁö ¸±¸®Áî µÇÁö ¾ÊÀº Sound EffectÀÇ °¹¼ö°¡ ¸®ÅϵȴÙ.

		À¢¸¸Çϸé ÀÌ ÇÔ¼ö ¾²Áö ¸»°í ±×¶§±×¶§ ÇϳªÇϳª Á÷Á¢ Áö¿öÁÙ °ÍÀ» ÃßõÇÑ´Ù.
	*/

	virtual	DWORD			_stdcall	ReleaseAllSoundFile(void)=0;
	/*
		ÀâÇôÀÖ´ø ¸ðµç FileÀ» Áö¿î´Ù.

		À̽ÃÁ¡±îÁö ¸±¸®Áî µÇÁö ¾ÊÀº Sound Effect FileÀÇ °¹¼ö°¡ ¸®ÅϵȴÙ.

		À¢¸¸Çϸé ÀÌ ÇÔ¼ö ¾²Áö ¸»°í ±×¶§±×¶§ ÇϳªÇϳª Á÷Á¢ Áö¿öÁÙ °ÍÀ» ÃßõÇÑ´Ù.
	*/

	virtual	void _stdcall Delete() = 0;
	/*
		ISoundLibÀÇ ¼Ò¸êÀÚ.

		¸®¼Ò½º¸¦ Á¦´ë·Î ÇØÁ¦ÇÏÁö ¾ÊÀº»óÅ¿¡¼­ È£ÃâµÇ¸é ¹«½Ã¹«½ÃÇÑ ÀÎÅÍ·´Æ®µéÀÌ °É¸± °ÍÀ̸®.
	*/

	virtual	void _stdcall GetErrorString( char** pszErrorString, SOUND_ERROR_CODE)=0;
	/*
		SOUND_ERROR_NOERROR ¿ÜÀÇ ¿¡·¯°ªÀ» ¹Þ¾ÒÀ»¶§ ±×°ÍµéÀ» ¹®ÀÚ¿­·Î Ä¡È¯ÇØÁØ´Ù.
		µð¹ö±ë¿ë ÇÔ¼ö.
	*/

	virtual	void	_stdcall	SetMaxVoiceCount( DWORD dwMaxVoice)=0;
	virtual	DWORD	_stdcall	GetMaxVoiceCount()=0;

};


SOUNDLIB_API BOOL CreateSoundLib( IMilesSoundLib** ppISoundLib);



#endif

⌨️ 快捷键说明

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