#include<windows.h>
#include<mmsystem.h>
#include<digitalv.h>
#include<commctrl.h>
#include<stdio.h>
#include "resource.h"
int _GetFileName(TCHAR *FileName, HANDLE hwnd,char *lei)
{
int i;
int j;
int len;
char c[100]={0};
char a[]="(*.)\0*.\0\0";
OPENFILENAME FileNames;
static char szFileName[MAX_PATH];
static char szTitleName [MAX_PATH] ;
static TCHAR szFilter[100] = {0};
len = strlen(lei);
c[0]=a[0];
c[1]=a[1];
c[2]=a[2];
for(i=0;i<len;i++)
{
c[3+i]=lei[i];
}
c[3+i]=a[3];
c[4+i]=a[4];
c[5+i]=a[5];
c[6+i]=a[6];
for(j=0;j<len;j++)
{
c[7+i+j]=lei[j];
}
c[7+i+j]=a[7];
c[8+i+j]=a[8];
memcpy(szFilter, c,100);
FileNames.lStructSize = sizeof (OPENFILENAME) ;
FileNames.hwndOwner = hwnd ;
FileNames.hInstance = NULL ;
FileNames.lpstrFilter = szFilter ;
FileNames.lpstrCustomFilter = NULL ;
FileNames.nMaxCustFilter = 0 ;
FileNames.nFilterIndex = 0 ;
FileNames.lpstrFile = szFileName ;
FileNames.nMaxFile = MAX_PATH ;
FileNames.lpstrFileTitle = szTitleName ;
FileNames.nMaxFileTitle = MAX_PATH ;
FileNames.lpstrInitialDir = NULL ;
FileNames.lpstrTitle = NULL ;
FileNames.Flags = 0 ;
FileNames.nFileOffset = 0 ;
FileNames.nFileExtension = 0 ;
FileNames.lpstrDefExt = NULL;
FileNames.lCustData = 0 ;
FileNames.lpfnHook = NULL ;
FileNames.lpTemplateName = NULL ;
GetOpenFileName(&FileNames);
for(i=0,j=0; szFileName[i]; i++,j++)
{
if(szFileName[i]=='\\')
{
FileName[j++] = szFileName[i];
FileName[j]='\\';
}
else
FileName[j]=szFileName[i];
}
FileName[j] = 0;
return 0;
}
LONG CALLBACK
DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static char FileName[250];
static MCI_PLAY_PARMS mciPlay;
static MCI_OPEN_PARMS mciOpen;
static MCI_DGV_SETAUDIO_PARMS mciSetAudioPara;
memset(FileName, 0, sizeof(FileName) );
switch(message)
{
case WM_CLOSE:
EndDialog( hwnd, 0);
return 0;
case WM_INITDIALOG:
return 0;
case WM_COMMAND:
switch(LOWORD(wParam) )
{
case IDB_SCAN:
_GetFileName(FileName, hwnd, "mp3");
SetDlgItemText(hwnd, IDC_EDIT, FileName);
SetFocus(GetDlgItem(hwnd, IDB_PLAY) );
return 0;
case IDB_PLAY:
mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD)&mciOpen);
mciOpen.lpstrElementName=(char *)malloc(250*sizeof(char));
GetDlgItemText(hwnd, IDC_EDIT, mciOpen.lpstrElementName, 250);
mciSendCommand(mciOpen.wDeviceID, MCI_PLAY, /*MCI_WAIT*/MCI_NOTIFY, (DWORD)&mciPlay);
return 0;
default:return 0;
}
return 0;
default:return 0;
}
}
LONG WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
InitCommonControls();
DialogBoxParam(hInstance, IDD_DIALOG1, NULL, DlgProc,NULL);
return 0;
}