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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? winmain.cpp

?? 用DirectX編寫RPG游戲-Programming.Role.Playing.Games.with.DirectX
?? CPP
字號:
/**************************************************
WinMain.cpp
Chapter 8 Midi Playing Demo

Programming Role-Playing Games with DirectX
by Jim Adams (01 Jan 2002)

Required libraries:
  DSOUND.LIB and DXGUID.LIB
**************************************************/

#include <windows.h>
#include <stdio.h>

#include <dsound.h>
#include "dmusici.h"
#include "resource.h"

// Application variables ////////////////////////
HWND g_hWnd;                    // Window handle
char g_szClass[] = "MidiPlayDemo";  // Class name

// DirectSound component
IDirectSound8            *g_pDS = NULL;

// DirectMusic Performance, loader, and segment objects
IDirectMusicPerformance8 *g_pDMPerformance;
IDirectMusicLoader8      *g_pDMLoader;
IDirectMusicSegment8     *g_pDMSegment;

// Application prototypes ///////////////////////
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow);
long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

BOOL PlaySong(char *Filename);


// Application //////////////////////////////////
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow)
{
  WNDCLASS wc;
  MSG Msg;

  // Initialize COM
  CoInitialize(0);

  // Register window class
  wc.style         = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc   = WindowProc;
  wc.cbClsExtra    = 0;
  wc.cbWndExtra    = DLGWINDOWEXTRA;
  wc.hInstance     = hInst;
  wc.hIcon         = LoadIcon(hInst, IDI_APPLICATION);
  wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
  wc.lpszMenuName  = NULL;
  wc.lpszClassName = g_szClass;
  RegisterClass(&wc);

  // Create the dialog box window and show it
  g_hWnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_MidiPlay), 0, NULL);
  UpdateWindow(g_hWnd);
  ShowWindow(g_hWnd, nCmdShow);

  // Initialize and configure DirectSound
  if(FAILED(DirectSoundCreate8(NULL, &g_pDS, NULL))) {
    MessageBox(NULL, "Unable to create DirectSound object", "Error", MB_OK);
    return 0;
  }
  g_pDS->SetCooperativeLevel(g_hWnd, DSSCL_NORMAL);

  // Create the DirectMusic loader object
  CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, 
                   IID_IDirectMusicLoader8, (void**)&g_pDMLoader);

  // Create the DirectMusic performance object
  CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, 
                   IID_IDirectMusicPerformance8, (void**)&g_pDMPerformance);

  // Initialize the performance with the standard audio path.
  // This initializes both DirectMusic and DirectSound and 
  // sets up the synthesizer. 
  g_pDMPerformance->InitAudio(NULL, NULL, g_hWnd,
                              DMUS_APATH_SHARED_STEREOPLUSREVERB, 128,
                              DMUS_AUDIOF_ALL, NULL);

  // Tell DirectMusic where the default search path is
  char strPath[MAX_PATH];
  WCHAR wstrSearchPath[MAX_PATH];
  GetCurrentDirectory(MAX_PATH, strPath);
  MultiByteToWideChar(CP_ACP, 0, strPath, -1, wstrSearchPath, MAX_PATH);
  g_pDMLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, wstrSearchPath, FALSE);

  // Play some music
  PlaySong("escape.mid");

  // Message loop
  while(GetMessage(&Msg, NULL, 0, 0)) {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
  }
    
  // Release DirectSound objects
  g_pDMSegment->Unload(g_pDS);
  g_pDMLoader->ReleaseObjectByUnknown(g_pDMSegment);
  g_pDMSegment->Release();
  g_pDS->Release();

  // Clean up
  UnregisterClass(g_szClass, hInst);

  // Release COM system
  CoUninitialize();

  return 0;
}

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch(uMsg) {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;

    default: return DefWindowProc(hWnd, uMsg, wParam, lParam);
  }

  return 0;
}

BOOL PlaySong(char *Filename)
{
  DMUS_OBJECTDESC dmod;

  // Get the object
  ZeroMemory(&dmod, sizeof(DMUS_OBJECTDESC));
  dmod.dwSize = sizeof(DMUS_OBJECTDESC);
  dmod.guidClass = CLSID_DirectMusicSegment;
  dmod.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME | DMUS_OBJ_FULLPATH;
  mbstowcs(dmod.wszFileName, Filename, MAX_PATH);
  if(FAILED(g_pDMLoader->GetObject(&dmod, IID_IDirectMusicSegment8, (LPVOID*)&g_pDMSegment)))
    return FALSE;

  // Setup MIDI playing
  if(strstr(Filename, ".mid") != NULL) {
    if(FAILED(g_pDMSegment->SetParam(GUID_StandardMIDIFile, 0xFFFFFFFF, 0, 0, NULL)))
      return FALSE;
  }

  // Download the band
  if(FAILED(g_pDMSegment->Download(g_pDMPerformance)))
    return FALSE;

  // Set to loop forever
  g_pDMSegment->SetRepeats(DMUS_SEG_REPEAT_INFINITE);

  // Play on default audio path
  g_pDMPerformance->PlaySegmentEx(g_pDMSegment, NULL, NULL, 0, 0, NULL, NULL, NULL);
    return FALSE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美乱综合| 国产一区二区三区不卡在线观看| 图片区小说区国产精品视频| 国产成人av资源| 777久久久精品| 国产精品久久国产精麻豆99网站| 亚洲亚洲精品在线观看| 国产成人午夜精品5599| 日韩美女视频在线| 亚洲大片精品永久免费| 99国产精品久| 久久蜜桃av一区二区天堂| 蜜臀久久99精品久久久久宅男| 色哟哟一区二区在线观看| 中文字幕va一区二区三区| 青娱乐精品视频| 欧美日本高清视频在线观看| 亚洲色图视频网| 99精品在线免费| 亚洲婷婷在线视频| 成人黄色a**站在线观看| 久久嫩草精品久久久久| 国产美女一区二区| 久久欧美一区二区| 国产麻豆视频一区| 久久久久久久久久久久久久久99 | 国产精品成人一区二区三区夜夜夜| 日韩av电影天堂| 欧美高清激情brazzers| 亚洲国产中文字幕在线视频综合 | 亚洲精品高清在线观看| 91在线小视频| 亚洲欧洲国产日本综合| 99国产精品久久久久| 亚洲男人天堂av| 99久久国产综合色|国产精品| 欧美经典一区二区| 成人免费视频免费观看| 国产精品免费视频一区| 国产成人在线视频网址| 国产精品丝袜91| 99re在线精品| 一区二区三区欧美久久| 欧美精品v日韩精品v韩国精品v| 天天色图综合网| 日韩欧美国产午夜精品| 国内精品国产成人| 国产精品美日韩| 91亚洲国产成人精品一区二区三| 亚洲美女视频在线| 欧美日韩视频专区在线播放| 人禽交欧美网站| 精品国产伦一区二区三区免费| 国产一区二区免费看| 亚洲天堂2014| 欧美性猛交xxxxxxxx| 久久国产精品一区二区| 亚洲国产精品二十页| 日本乱码高清不卡字幕| 看国产成人h片视频| 中文字幕av一区二区三区| 色丁香久综合在线久综合在线观看| 婷婷亚洲久悠悠色悠在线播放| 精品国产露脸精彩对白| 色综合色狠狠天天综合色| 日韩激情一区二区| 中文字幕精品在线不卡| 欧美日韩黄色一区二区| 国产精品白丝av| 一区二区三区蜜桃| 欧美精品一区二区三区在线| 欧洲亚洲精品在线| 国产麻豆精品theporn| 亚洲一二三区不卡| 亚洲国产精品成人综合| 欧美日韩精品电影| av综合在线播放| 国内精品免费**视频| 一个色在线综合| 国产日韩av一区二区| 欧美三日本三级三级在线播放| 国内成+人亚洲+欧美+综合在线| 亚洲另类春色国产| 国产午夜精品一区二区三区视频 | 国产精品日产欧美久久久久| 欧美伦理视频网站| 不卡的av在线| 国内精品伊人久久久久av影院 | 波多野结衣在线aⅴ中文字幕不卡| 亚洲成a人片在线观看中文| 国产欧美日韩综合| 日韩欧美亚洲国产另类| 欧洲国产伦久久久久久久| 成人a免费在线看| 狠狠色丁香婷婷综合久久片| 日韩国产欧美视频| 伊人开心综合网| 亚洲少妇最新在线视频| 国产日本欧美一区二区| 久久婷婷色综合| 日韩欧美一区二区不卡| 欧美天堂一区二区三区| 色综合中文字幕| av一二三不卡影片| 国产成人在线看| 国产一区二区三区精品视频| 七七婷婷婷婷精品国产| 婷婷开心激情综合| 婷婷亚洲久悠悠色悠在线播放| 亚洲综合一区二区三区| 亚洲精品中文字幕在线观看| 亚洲视频一区二区在线观看| 国产天堂亚洲国产碰碰| 国产欧美综合在线观看第十页| 精品久久久三级丝袜| 精品日韩一区二区三区免费视频| 日韩你懂的在线播放| 日韩一区二区三区在线观看| 日韩精品一区二区三区swag| 精品人在线二区三区| 欧美大片日本大片免费观看| 欧美成人a∨高清免费观看| 欧美第一区第二区| 久久久久青草大香线综合精品| 国产人成亚洲第一网站在线播放| 国产亚洲欧洲997久久综合| 国产日韩欧美a| 亚洲免费大片在线观看| 亚洲最新在线观看| 天堂成人免费av电影一区| 麻豆极品一区二区三区| 国产成人精品影视| 91麻豆精品在线观看| 精品视频在线免费| 欧美va日韩va| 中文字幕av不卡| 亚洲成人综合网站| 国内精品伊人久久久久av影院 | 欧美日韩国产一二三| 欧美一区中文字幕| 国产天堂亚洲国产碰碰| 亚洲精品中文字幕乱码三区| 日产国产高清一区二区三区| 国产精品一区不卡| 一本久久a久久精品亚洲| 欧美日本韩国一区二区三区视频| 精品国产网站在线观看| 亚洲精品国产视频| 久久精品国内一区二区三区| 成人免费视频国产在线观看| 欧美色综合网站| 久久麻豆一区二区| 亚洲综合在线电影| 国产一区二区免费看| 欧美视频在线一区二区三区| 亚洲精品一区二区三区99| 亚洲激情自拍偷拍| 极品少妇xxxx精品少妇| 色老综合老女人久久久| www久久精品| 亚洲电影一级片| 成人短视频下载| 日韩欧美一区二区三区在线| 亚洲欧美日韩在线播放| 九一九一国产精品| 在线精品视频免费观看| 久久精品欧美一区二区三区不卡| 天使萌一区二区三区免费观看| 99在线视频精品| 精品国产自在久精品国产| 亚洲国产精品麻豆| 色综合久久六月婷婷中文字幕| 国产午夜精品久久久久久久| 日本美女一区二区三区| 91日韩在线专区| 国产亚洲一本大道中文在线| 日韩国产欧美在线视频| 欧美视频一二三区| 中文字幕综合网| 国产宾馆实践打屁股91| 日韩欧美国产一区二区三区| 亚洲国产精品久久久久秋霞影院| 成人综合婷婷国产精品久久蜜臀| 日韩美女天天操| 日本在线不卡视频| 91精品国产综合久久小美女| 亚洲成人手机在线| 日本韩国视频一区二区| 亚洲三级在线播放| 99视频精品全部免费在线| 国产欧美日产一区| 国产不卡视频在线观看| 国产日韩欧美电影| 粉嫩高潮美女一区二区三区| 久久蜜臀精品av| 国产成人在线视频网站| 国产欧美一区视频| 风间由美一区二区av101 | 亚洲成人777| 在线播放视频一区|