playlisteditor.cpp
来自「PocketMVP V0.8082503 source for Pocket 的」· C++ 代码 · 共 593 行 · 第 1/2 页
CPP
593 行
if (fnGetFileName(hWnd,_T("*.pdl"), NULL, szPDLFile, 200,NULL,VK_ESCAPE,0))
#endif
{
if (wcsstr(szPDLFile,_T(".pdl")))
{
HANDLE h=CreateFile((LPCTSTR)szPDLFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
int size=GetFileSize(h,NULL);
unsigned long t;
Edited=false;
TCHAR* temp=(TCHAR*)malloc(size);
TCHAR* EndPos=0;
TCHAR* BeginPos=0;
ReadFile(h,temp,size,&t,NULL);
CloseHandle(h);
BeginPos=temp;
ListView_DeleteAllItems(hwndList);
while(BeginPos<(temp+size) &&((EndPos=wcsstr(BeginPos,_T("\r")))!=NULL))
{
*EndPos=0;
AddEntry(BeginPos,-1);
BeginPos=EndPos+2;
}
free(temp);
}
}
break;
case IDM_SAVE:
{
TCHAR temp[200];
wcscpy(tfile,szPDLFile);
memset(&ofn,0,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = tfile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFilter = TEXT("Play List(*.pdl)\0*.pdl\0\0");
ofn.lpstrTitle = TEXT("Save File");
ofn.Flags = OFN_HIDEREADONLY|OFN_PATHMUSTEXIST;
ofn.lpstrDefExt=_T("pdl");
if (GetSaveFileName(&ofn))
{
HANDLE h=CreateFile(ofn.lpstrFile,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (h==INVALID_HANDLE_VALUE)
{
ofn.lpstrFile++;
h=CreateFile(ofn.lpstrFile,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
}
wcscpy(szPDLFile,ofn.lpstrFile);
//MessageBox(hWnd,szPDLFile,_T(""),MB_OK);
int n=0;
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
unsigned long out;
ListView_GetItemText(hwndList,n,2,temp,200);
wcscat(temp,_T("\r\n"));
WriteFile(h,temp,wcslen(temp)*sizeof(TCHAR),&out,NULL);
}
CloseHandle(h);
Edited=false;
}
}
break;
/* case IDM_SAVE:
{
TCHAR temp[200];
memset(&ofn,0,sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = szPDLFile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrFilter = TEXT("Play List(*.pdl)\0*.pdl\0\0");
ofn.lpstrTitle = TEXT("Save File");
ofn.Flags = OFN_HIDEREADONLY;
if (GetSaveFileName(&ofn))
{
HANDLE h=CreateFile(ofn.lpstrFile,GENERIC_WRITE,NULL,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
int n=0;
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
unsigned long out;
ListView_GetItemText(hwndList,n,2,temp,200);
wcscat(temp,_T("\r\n"));
WriteFile(h,temp,wcslen(temp)*sizeof(TCHAR),&out,NULL);
}
CloseHandle(h);
}
}
break;*/
case IDM_DELETE:
{
int n=0;
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
if (ListView_GetItemState(hwndList,n,LVIS_SELECTED))
{
ListView_DeleteItem(hwndList,n);
}
}
Edited=true;
}
break;
case IDM_MOVEDOWN:
{
int n;
TCHAR value[200];
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
if (ListView_GetItemState(hwndList,n,LVIS_SELECTED))
{
if (n<ListView_GetItemCount(hwndList)-1)
{
ListView_GetItemText(hwndList,n,2,value,200);
ListView_DeleteItem(hwndList,n);
AddEntry(value,n+1);
ListView_SetItemState(hwndList,n+1,LVIS_SELECTED|LVIS_FOCUSED,0xFFFF);
ListView_EnsureVisible( hwndList, n+1, false );
break;
}
}
}
Edited=true;
}
break;
case IDM_MOVEUP:
{
int n;
TCHAR value[200];
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
if (ListView_GetItemState(hwndList,n,LVIS_SELECTED))
{
if (n>0)
{
ListView_GetItemText(hwndList,n,2,value,200);
ListView_DeleteItem(hwndList,n);
AddEntry(value,n-1);
ListView_SetItemState(hwndList,n-1,LVIS_SELECTED|LVIS_FOCUSED,0xFFFF);
ListView_EnsureVisible( hwndList, n-1, false );
break;
}
}
}
Edited=true;
}
break;
case IDM_PLAY:
case IDM_PLAYFILE:
{
if (!Edited) //(szPDLFile&&(wcslen(szPDLFile)>4))
{
int n=0;
int ok;
HWND d=FindWindow(NULL,_T("PocketMVP"));
PROCESS_INFORMATION p;
if (d) SendMessage(d,WM_CLOSE,NULL,NULL);
TCHAR path[200];
TCHAR file[200];
wcscpy(file,szPDLFile);
for (n=0;n<ListView_GetItemCount(hwndList);n++)
{
if (ListView_GetItemState(hwndList,n,LVIS_SELECTED))
{
TCHAR temp[10];
wcscat(file,_T(" "));
_itow(n,temp,10);
wcscat(file,temp);
}
}
HANDLE h=GetModuleHandle(_T("PlayListEditor.exe"));
GetModuleFileName((HMODULE)h,path,200);
LPTSTR t=wcsstr(path,_T("PlaylistEditor"));
*t=0;
wcscat(path,_T("PocketMVP.exe"));
ok=CreateProcess(path,file,NULL,NULL,NULL,0,NULL,NULL,NULL,&p);
}
else
{
MessageBox(hWnd,_T("You have unsaved changes."),_T("Cannot Play"),MB_OK);
}
}
break;
case IDM_ADD_URL:
URL=1;
case IDM_ADD:
wcscpy(value,_T("*.divx,*.avi"));
if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_BASE_FMT, 0, 0, &hKey ) )
{
dwTmp = 0;
dwSize =sizeof(value);
RegQueryValueEx( hKey, _T("SupportedExtensions"), 0, &dwType, ( LPBYTE )value, &dwSize );
}
#ifdef GAPI
if (fnGetFileName(hWnd,value, NULL,szFile, 200,&temp,g_gxk.vkStart,URL))
#else
if (fnGetFileName(hWnd,value, NULL,szFile, 200,&temp,VK_ESCAPE,URL))
#endif
{
TCHAR* EndPos=0;
TCHAR* BeginPos=0;
BeginPos=temp;
Edited=true;
while(((EndPos=wcsstr(BeginPos,_T("\r")))!=NULL))
{
*EndPos=0;
AddEntry(BeginPos,-1);
BeginPos=EndPos+2;
}
}
break;
case IDM_FILE_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_CREATE:
{
#if (_WIN32_WCE >= 300 && !defined(HPC))
//Create the PocketPC compatible menubar.
HANDLE ha=LoadLibrary(_T("aygshell.dll"));
if (ha!=NULL)
{
aygshell_SHCreateMenuBar=(paygshell_SHCreateMenuBar)GetProcAddress((HINSTANCE)ha,_T("SHCreateMenuBar"));
}
SHMENUBARINFO sMbi;
memset( &sMbi, 0, sizeof ( SHMENUBARINFO ) );
sMbi.cbSize = sizeof( sMbi );
sMbi.hwndParent = hWnd;
sMbi.dwFlags = 0; //SHCMBF_SHOWSIPBUTTON;
sMbi.nToolBarId = IDR_MENUBAR1;
sMbi.hInstRes = hInst;
sMbi.nBmpId = 0;
sMbi.cBmpImages = 0;
if ( aygshell_SHCreateMenuBar( &sMbi ) )
{
hwndCB = sMbi.hwndMB;
}
#else
hwndCB = CommandBar_Create(hInst, hWnd, 1);
CommandBar_InsertMenubar(hwndCB, hInst, IDM_MENU, 0);
#endif
TBBUTTON but;
but.fsState=TBSTATE_ENABLED ;
but.fsStyle=TBSTYLE_BUTTON ;
but.iBitmap=0;
but.iString=0;
but.idCommand=IDM_OPEN;
CommandBar_AddBitmap(hwndCB,hInst,IDB_BUTTONS,8,16,16);
CommandBar_AddToolTips(hwndCB,9,ToolTips);
CommandBar_InsertButton(hwndCB,1, &but);
but.iBitmap=1;
but.idCommand=IDM_SAVE;
CommandBar_InsertButton(hwndCB,2, &but);
but.iBitmap=2;
but.idCommand=IDM_ADD;
CommandBar_InsertButton(hwndCB,3, &but);
but.iBitmap=3;
but.idCommand=IDM_ADD_URL;
CommandBar_InsertButton(hwndCB,4, &but);
but.iBitmap=4;
but.idCommand=IDM_DELETE;
CommandBar_InsertButton(hwndCB,5, &but);
but.iBitmap=5;
but.idCommand=IDM_PLAY;
CommandBar_InsertButton(hwndCB,6, &but);
but.iBitmap=6;
but.idCommand=IDM_MOVEUP;
CommandBar_InsertButton(hwndCB,7, &but);
but.iBitmap=7;
but.idCommand=IDM_MOVEDOWN;
CommandBar_InsertButton(hwndCB,8, &but);
#if ( defined(HPC))
CommandBar_AddAdornments(hwndCB,NULL,NULL);
#endif
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
CommandBar_Destroy(hwndCB);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?