📄 init.cpp
字号:
/***************************************************************************************
*This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* The GPL can be found at: http://www.gnu.org/copyleft/gpl.html *
* *
* *
****************************************************************************************
* Authors: *
* Marc Dukette *
**************************************************************************************/
#include "stdafx.h"
#include "init.h"
#include "../resource.h"
#include "resource.h"
#include <commctrl.h>
#include <winuser.h>
#if (_WIN32_WCE >= 300 && !defined(HPC))
#include <aygshell.h>
#include <sipapi.h>
#define SHCMBM_GETMENU (WM_USER + 402)
#define SHGetMenu( hWndMB ) ( HMENU )SendMessage( ( hWndMB ), SHCMBM_GETMENU, ( WPARAM )0, ( LPARAM )0 )
#define CommandBar_GetMenu( hWndMB, x ) ( HMENU )SendMessage( ( hWndMB ), SHCMBM_GETMENU, ( WPARAM )0, ( LPARAM )0 )
typedef BOOL (CALLBACK* paygshell_SHCreateMenuBar)( SHMENUBARINFO *pmb );
typedef BOOL (CALLBACK* paygshell_SHInitDialog)( SHINITDLGINFO *shdi );
paygshell_SHCreateMenuBar aygshell_SHCreateMenuBar;
paygshell_SHInitDialog aygshell_SHInitDialog;
#endif
#ifdef GAPI
#ifdef ARM
#include "gx.h"
#endif
#endif
HWND hwndAdv,hwndFiles;
long oldproc;
HANDLE tDLL;
UserOptions* gPlayerOptions;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
tDLL=hModule;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
#define REG_BASE L"software\\PocketMVP"
#define OPT_ROTATE L"Rotate"
#define OPT_AUDIO L"Audio"
#define OPT_KEEPALIVE L"Keep Alive"
#define OPT_ALWAYSHIDE L"Always Hide"
#define OPT_DOUBLESIZE L"Double Size"
#define OPT_CLEANVIDEO L"Clean Video"
#define OPT_FITTOVIEWPORT L"Fit to Viewport"
#define OPT_VIEWPLAYLIST L"View Playlist"
#define OPT_VIEWMEDIA L"View Media Info"
#define OPT_MDRIVECACHING L"Microdrive Caching"
#define OPT_CACHESIZE L"Cache Size"
#define OPT_BRIGHTNESS L"Brightness"
#define OPT_DROPTOLERANCE L"DropTolerance"
#define OPT_PLAYATOPEN L"Play at File Open"
#define OPT_SHUFFLE L"Shuffle"
#define OPT_REPEAT L"Repeat"
#define OPT_SHOWDROP L"ShowDropped"
#define OPT_SLOW L"Slow Motion Optimize"
#define OPT_PAUSEKEY L"PauseKey"
#define OPT_STOPKEY L"StopKey"
#define OPT_FASTKEY L"FastKey"
#define OPT_NEXTKEY L"NextKey"
#define OPT_PREVKEY L"PrevKey"
#define OPT_ROTATEKEY L"RotateKey"
#define OPT_ZOOMKEY L"ZoomKey"
#define OPT_TOGGLEKEY L"ToggleKey"
#define OPT_VOLUMEUPKEY L"VolumeUpKey"
#define OPT_VOLUMEDOWNKEY L"VolumeDownKey"
#define OPT_BRIGHTNESSUPKEY L"BrightnessUpKey"
#define OPT_BRIGHTNESSDOWNKEY L"BrightnessDownKey"
#define OPT_CONTROLKEY L"ControlKey"
#define OPT_MUTEKEY L"MuteKey"
#define OPT_NOINDEX L"No Index"
#define OPT_EQ L"EQ"
#define OPT_SKIN L"Skin"
#define OPT_KEEPLASTFILE L"KeepLastFile"
#define OPT_LASTFILE L"LastFile"
#define OPT_LASTFILEPOS L"LastFilePos"
#define OPT_PRESET L"Preset"
#define OPT_EXITEDOK L"Exited"
#define OPT_VOLUME L"Volume"
INIT_API void LoadOptions(UserOptions* PlayerOptions)
{
HKEY hKey = 0;
DWORD dwSize = 0;
DWORD dwType = 0;
DWORD dwTmp;
DWORD dwDisp = 0;
int ns;
BOOL iPAQ=false;
#ifdef GAPI
#ifdef ARM
GXDisplayProperties x;
x=GXGetDisplayProperties();
if (x.cbxPitch>2||(x.cbxPitch<2)) iPAQ=true;
#endif
#endif
// if (wcsstr((LPTSTR)temp,_T("iPAQ"))||(wcsstr((LPTSTR)temp,_T("Amigo")))) iPAQ=true;
// SystemParametersInfo(SPI_GETOEMINFO,200,(void*)temp,0);
if ( ERROR_SUCCESS == RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_BASE, 0, 0, &hKey ) )
{
bool bExitOk;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_ROTATE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
if (iPAQ) PlayerOptions->Rotate = ( dwTmp == 0 );
else PlayerOptions->Rotate = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_AUDIO, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Audio = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_KEEPALIVE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->KeepAlive = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_ALWAYSHIDE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->AlwaysHide = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_NOINDEX, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->NoIndex = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_DOUBLESIZE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Double = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_CLEANVIDEO, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Clean = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_FITTOVIEWPORT, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->FitToViewPort = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_VIEWPLAYLIST, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Playlist = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_VIEWMEDIA, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Media = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_MDRIVECACHING, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Cache = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_PLAYATOPEN, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->PlayAtOpen = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_SHUFFLE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Shuffle = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_REPEAT, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Repeat = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_SHOWDROP, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->ShowDropped = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_EXITEDOK, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
bExitOk = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_KEEPLASTFILE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->KeepLastFile = ( dwTmp != 0 );
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_CACHESIZE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->CacheSize = dwTmp;
#ifdef ARM
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_BRIGHTNESS, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->Brightness = dwTmp;
#endif
dwSize = sizeof( DWORD );
dwTmp = 0;
PlayerOptions->DropTolerance = 3;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_DROPTOLERANCE, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->DropTolerance = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_PAUSEKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->PauseKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_STOPKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->StopKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_MUTEKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->MuteKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_FASTKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->FastKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_VOLUME, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->PlayerVolume = dwTmp;
else
waveOutGetVolume(0,&(PlayerOptions->PlayerVolume));
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_ROTATEKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->RotateKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_ZOOMKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->ZoomKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_TOGGLEKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->ToggleKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_VOLUMEUPKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->VolumeUpKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_VOLUMEDOWNKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->VolumeDownKey = dwTmp;
#ifdef ARM
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_BRIGHTNESSUPKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->BrightnessUpKey = dwTmp;
dwSize = sizeof( DWORD );
dwTmp = 0;
if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_BRIGHTNESSDOWNKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
REG_DWORD == dwType )
PlayerOptions->BrightnessDownKey = dwTmp;
#endif
dwSize = sizeof( DWORD );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -