亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dsutil.h

?? VC游戲編程基礎
?? H
字號:
//-----------------------------------------------------------------------------
// File: DSUtil.h
//
// Desc: 
//
// Copyright (c) Microsoft Corp. All rights reserved.
//-----------------------------------------------------------------------------
#ifndef DSUTIL_H
#define DSUTIL_H

#include <windows.h>
#include <mmsystem.h>
#include <mmreg.h>
#include <dsound.h>




//-----------------------------------------------------------------------------
// Classes used by this header
//-----------------------------------------------------------------------------
class CSoundManager;
class CSound;
class CStreamingSound;
class CWaveFile;




//-----------------------------------------------------------------------------
// Typing macros 
//-----------------------------------------------------------------------------
#define WAVEFILE_READ   1
#define WAVEFILE_WRITE  2

#define DSUtil_StopSound(s)         { if(s) s->Stop(); }
#define DSUtil_PlaySound(s)         { if(s) s->Play( 0, 0 ); }
#define DSUtil_PlaySoundLooping(s)  { if(s) s->Play( 0, DSBPLAY_LOOPING ); }




//-----------------------------------------------------------------------------
// Name: class CSoundManager
// Desc: 
//-----------------------------------------------------------------------------
class CSoundManager
{
protected:
    LPDIRECTSOUND8 m_pDS;

public:
    CSoundManager();
    ~CSoundManager();

    HRESULT Initialize( HWND hWnd, DWORD dwCoopLevel );
    inline  LPDIRECTSOUND8 GetDirectSound() { return m_pDS; }
    HRESULT SetPrimaryBufferFormat( DWORD dwPrimaryChannels, DWORD dwPrimaryFreq, DWORD dwPrimaryBitRate );
    HRESULT Get3DListenerInterface( LPDIRECTSOUND3DLISTENER* ppDSListener );

    HRESULT Create( CSound** ppSound, LPTSTR strWaveFileName, DWORD dwCreationFlags = 0, GUID guid3DAlgorithm = GUID_NULL, DWORD dwNumBuffers = 1 );
    HRESULT CreateFromMemory( CSound** ppSound, BYTE* pbData, ULONG ulDataSize, LPWAVEFORMATEX pwfx, DWORD dwCreationFlags = 0, GUID guid3DAlgorithm = GUID_NULL, DWORD dwNumBuffers = 1 );
    HRESULT CreateStreaming( CStreamingSound** ppStreamingSound, LPTSTR strWaveFileName, DWORD dwCreationFlags, GUID guid3DAlgorithm, DWORD dwNotifyCount, DWORD dwNotifySize, HANDLE hNotifyEvent );
};




//-----------------------------------------------------------------------------
// Name: class CSound
// Desc: Encapsulates functionality of a DirectSound buffer.
//-----------------------------------------------------------------------------
class CSound
{
protected:
    LPDIRECTSOUNDBUFFER* m_apDSBuffer;
    DWORD                m_dwDSBufferSize;
    CWaveFile*           m_pWaveFile;
    DWORD                m_dwNumBuffers;
    DWORD                m_dwCreationFlags;

    HRESULT RestoreBuffer( LPDIRECTSOUNDBUFFER pDSB, BOOL* pbWasRestored );

public:
    CSound( LPDIRECTSOUNDBUFFER* apDSBuffer, DWORD dwDSBufferSize, DWORD dwNumBuffers, CWaveFile* pWaveFile, DWORD dwCreationFlags );
    virtual ~CSound();

    HRESULT Get3DBufferInterface( DWORD dwIndex, LPDIRECTSOUND3DBUFFER* ppDS3DBuffer );
    HRESULT FillBufferWithSound( LPDIRECTSOUNDBUFFER pDSB, BOOL bRepeatWavIfBufferLarger );
    LPDIRECTSOUNDBUFFER GetFreeBuffer();
    LPDIRECTSOUNDBUFFER GetBuffer( DWORD dwIndex );

    HRESULT Play( DWORD dwPriority = 0, DWORD dwFlags = 0, LONG lVolume = 0, LONG lFrequency = -1, LONG lPan = 0 );
    HRESULT Play3D( LPDS3DBUFFER p3DBuffer, DWORD dwPriority = 0, DWORD dwFlags = 0, LONG lFrequency = 0 );
    HRESULT Stop();
    HRESULT Reset();
    BOOL    IsSoundPlaying();
};




//-----------------------------------------------------------------------------
// Name: class CStreamingSound
// Desc: Encapsulates functionality to play a wave file with DirectSound.  
//       The Create() method loads a chunk of wave file into the buffer, 
//       and as sound plays more is written to the buffer by calling 
//       HandleWaveStreamNotification() whenever hNotifyEvent is signaled.
//-----------------------------------------------------------------------------
class CStreamingSound : public CSound
{
protected:
    DWORD m_dwLastPlayPos;
    DWORD m_dwPlayProgress;
    DWORD m_dwNotifySize;
    DWORD m_dwNextWriteOffset;
    BOOL  m_bFillNextNotificationWithSilence;

public:
    CStreamingSound( LPDIRECTSOUNDBUFFER pDSBuffer, DWORD dwDSBufferSize, CWaveFile* pWaveFile, DWORD dwNotifySize );
    ~CStreamingSound();

    HRESULT HandleWaveStreamNotification( BOOL bLoopedPlay );
    HRESULT Reset();
};




//-----------------------------------------------------------------------------
// Name: class CWaveFile
// Desc: Encapsulates reading or writing sound data to or from a wave file
//-----------------------------------------------------------------------------
class CWaveFile
{
public:
    WAVEFORMATEX* m_pwfx;        // Pointer to WAVEFORMATEX structure
    HMMIO         m_hmmio;       // MM I/O handle for the WAVE
    MMCKINFO      m_ck;          // Multimedia RIFF chunk
    MMCKINFO      m_ckRiff;      // Use in opening a WAVE file
    DWORD         m_dwSize;      // The size of the wave file
    MMIOINFO      m_mmioinfoOut;
    DWORD         m_dwFlags;
    BOOL          m_bIsReadingFromMemory;
    BYTE*         m_pbData;
    BYTE*         m_pbDataCur;
    ULONG         m_ulDataSize;
    CHAR*         m_pResourceBuffer;

protected:
    HRESULT ReadMMIO();
    HRESULT WriteMMIO( WAVEFORMATEX *pwfxDest );

public:
    CWaveFile();
    ~CWaveFile();

    HRESULT Open( LPTSTR strFileName, WAVEFORMATEX* pwfx, DWORD dwFlags );
    HRESULT OpenFromMemory( BYTE* pbData, ULONG ulDataSize, WAVEFORMATEX* pwfx, DWORD dwFlags );
    HRESULT Close();

    HRESULT Read( BYTE* pBuffer, DWORD dwSizeToRead, DWORD* pdwSizeRead );
    HRESULT Write( UINT nSizeToWrite, BYTE* pbData, UINT* pnSizeWrote );

    DWORD   GetSize();
    HRESULT ResetFile();
    WAVEFORMATEX* GetFormat() { return m_pwfx; };
};




#endif // DSUTIL_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩专区在线| 亚洲三级久久久| 欧美日韩国产片| av亚洲精华国产精华精| 激情小说欧美图片| 毛片不卡一区二区| 美女一区二区三区在线观看| 肉色丝袜一区二区| 免费观看一级欧美片| 麻豆精品视频在线观看| 麻豆成人免费电影| 国产一区二区0| 成人美女在线观看| 成人性生交大片免费| 91麻豆精品视频| 欧美日韩国产首页在线观看| 91精品国产91久久综合桃花| 26uuu欧美| 亚洲图片激情小说| 日韩二区三区四区| 国产成人一区在线| 91麻豆国产福利在线观看| 色综合激情五月| 欧美一卡2卡3卡4卡| 欧美精品一区二区三区视频| 久久色视频免费观看| 亚洲精品自拍动漫在线| 婷婷综合久久一区二区三区| 国产一本一道久久香蕉| 日本精品免费观看高清观看| 51精品视频一区二区三区| 欧美精选在线播放| 久久久久久麻豆| 一区二区三区中文在线| 韩国欧美一区二区| bt欧美亚洲午夜电影天堂| 欧美高清性hdvideosex| 国产精品久久久久国产精品日日| 亚洲丰满少妇videoshd| 国产成人精品一区二| 欧美久久一二三四区| 国产拍揄自揄精品视频麻豆| 亚洲小说春色综合另类电影| 国产一区二区视频在线播放| 色婷婷久久久亚洲一区二区三区| 日韩欧美中文字幕公布| 亚洲欧美经典视频| 狠狠色丁香婷综合久久| 欧美日韩国产精品成人| 亚洲免费在线电影| 高清不卡一二三区| 精品日韩av一区二区| 亚洲一区在线电影| 9l国产精品久久久久麻豆| 精品日韩99亚洲| 青青草原综合久久大伊人精品| 91丝袜美腿高跟国产极品老师| 欧美大胆人体bbbb| 免费在线看成人av| 欧美午夜影院一区| 中文字幕佐山爱一区二区免费| 国产精选一区二区三区| 日韩欧美国产成人一区二区| 亚洲bt欧美bt精品| 欧美午夜视频网站| 亚洲永久免费av| 91网址在线看| 亚洲另类在线视频| 91丨porny丨最新| 日韩伦理电影网| 91美女在线看| 亚洲一区二区欧美| 欧美主播一区二区三区美女| 亚洲精品免费电影| 91福利精品第一导航| 亚洲欧美日韩国产另类专区| 国产精品 日产精品 欧美精品| 欧美电影一区二区| 捆绑变态av一区二区三区| 精品三级在线看| 国产精品影视在线观看| 国产欧美日本一区二区三区| 国产成人av资源| 中文字幕在线观看不卡视频| 972aa.com艺术欧美| 亚洲综合网站在线观看| 欧美精品久久久久久久多人混战| 午夜欧美在线一二页| 91麻豆精品久久久久蜜臀| 蓝色福利精品导航| 欧美国产日韩亚洲一区| 色国产精品一区在线观看| 婷婷丁香久久五月婷婷| 日韩欧美精品在线| 成人黄色国产精品网站大全在线免费观看| 欧美天堂一区二区三区| 亚洲成人自拍偷拍| 日韩精品在线一区二区| 免费成人性网站| 久久亚洲精华国产精华液 | jizzjizzjizz欧美| 久久久久成人黄色影片| 久久精品999| 国产精品伦理在线| 欧美日韩免费一区二区三区视频| 日本不卡一区二区三区| 久久精品日韩一区二区三区| 成人av电影在线| 午夜精品福利在线| 久久久久成人黄色影片| 在线看不卡av| 久久精品久久综合| 国产精品成人免费在线| 欧美精品第1页| 成人性色生活片| 日韩不卡一区二区三区| 国产精品色噜噜| 日韩午夜中文字幕| 日本精品视频一区二区| 国产在线视频精品一区| 亚洲高清一区二区三区| 国产精品免费aⅴ片在线观看| 国产女主播视频一区二区| 日韩久久精品一区| 国产成人免费视频一区| 视频一区在线播放| 国产精品国产三级国产普通话99 | 精品国产欧美一区二区| 91免费看视频| 国产99一区视频免费| 日av在线不卡| 一区二区三区欧美| 亚洲国产精品传媒在线观看| 日韩午夜三级在线| 欧美亚男人的天堂| 91小视频在线| av一区二区三区四区| 国产精品一二三区在线| 日本欧美一区二区三区乱码 | 五月婷婷久久综合| 亚洲精品视频免费观看| 国产精品理论片| 久久久精品日韩欧美| 日韩免费视频线观看| 欧美美女激情18p| 91福利在线观看| 色老综合老女人久久久| 99久久精品国产麻豆演员表| 国产99久久精品| 国产精一区二区三区| 激情五月激情综合网| 精品制服美女丁香| 九色综合狠狠综合久久| 久久av老司机精品网站导航| 另类的小说在线视频另类成人小视频在线| 国产精品一级片| 麻豆成人久久精品二区三区红 | 六月丁香综合在线视频| 中文字幕一区二区日韩精品绯色| 日韩欧美色综合网站| 精品乱人伦小说| 2024国产精品| 国产欧美一区二区三区沐欲| 久久五月婷婷丁香社区| 欧美韩日一区二区三区四区| 国产精品伦理一区二区| 亚洲色图色小说| 一区二区三区 在线观看视频| 亚洲一区在线观看视频| 麻豆精品久久久| 成人精品一区二区三区四区 | 国产永久精品大片wwwapp| 精品一区二区国语对白| 国产成a人亚洲精| 成人福利视频网站| 91小宝寻花一区二区三区| 欧美日韩国产影片| 综合婷婷亚洲小说| 国产女人18水真多18精品一级做| 日本一区二区成人在线| 亚洲欧洲中文日韩久久av乱码| 亚洲免费高清视频在线| 日韩av二区在线播放| 国产不卡一区视频| 欧美视频日韩视频| 精品捆绑美女sm三区| 亚洲色大成网站www久久九九| 亚洲国产精品一区二区久久恐怖片 | 日韩理论片在线| 日韩成人精品在线| 成人精品国产免费网站| 欧美三级电影网站| 久久伊人中文字幕| 亚洲国产你懂的| 国产成人综合亚洲91猫咪| 欧美日韩免费观看一区三区| 久久亚洲一区二区三区明星换脸| 亚洲激情第一区| 成人性生交大片免费看视频在线| 欧美一区二区三区四区视频|