init.cpp

来自「PocketMVP V0.8082503 source for Pocket 的」· C++ 代码 · 共 949 行 · 第 1/3 页

CPP
949
字号

		dwSize = sizeof( DWORD );
		dwTmp = 0;
		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_NEXTKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
			 REG_DWORD == dwType )
			PlayerOptions->NextKey = dwTmp;

		dwSize = sizeof( DWORD );
		dwTmp = 0;
		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_PREVKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
			 REG_DWORD == dwType )
			PlayerOptions->PrevKey = dwTmp;

		dwSize = sizeof( DWORD );
		dwTmp = 0;
		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_CONTROLKEY, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
			 REG_DWORD == dwType )
			PlayerOptions->ControlSelectKey = dwTmp;

		dwSize = sizeof( DWORD );
		dwTmp = 0;
		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_LASTFILEPOS, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
			 REG_DWORD == dwType )
			PlayerOptions->LastFilePos = dwTmp;

		dwSize = sizeof( DWORD );
		dwTmp = 0;
		if ( ERROR_SUCCESS == RegQueryValueEx( hKey, OPT_EQ, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
			 REG_DWORD == dwType )
			PlayerOptions->EnableEQ = ( dwTmp != 0 );

		for (ns=IDC_EQ0;ns<IDC_EQ10+1;ns++)
		{
			TCHAR sKey[10];
			wcscpy(sKey,_T("Eq"));
			_itow(ns-IDC_EQ0,sKey+2,10);
			dwSize = sizeof( DWORD );
			dwTmp = 0;
			if ( ERROR_SUCCESS == RegQueryValueEx( hKey, sKey, 0, &dwType, ( LPBYTE )&dwTmp, &dwSize ) &&
				 REG_DWORD == dwType )
				 PlayerOptions->Eq[ns-IDC_EQ0] = dwTmp;
		}				
		dwSize=sizeof(PlayerOptions->Skin);
		dwType=0;
		wcscpy(PlayerOptions->Skin,_T(""));
		if ( ERROR_SUCCESS != RegQueryValueEx( hKey, OPT_SKIN, 0, &dwType, ( LPBYTE )PlayerOptions->Skin, &dwSize ) )
		{
			TCHAR path[200];
			HANDLE h=GetModuleHandle(_T("PocketMVP.exe"));
			GetModuleFileName((HMODULE)h,path,200);
			LPTSTR t=wcsstr(path,_T("PocketMVP"));
			*t=0;
			wcscpy(PlayerOptions->Skin,path);
			wcscat(PlayerOptions->Skin,_T("Skins\\PocketMVP.pds"));
		}
		dwSize=sizeof(PlayerOptions->LastFile);
		dwType=0;
		if ( (!bExitOk)||(ERROR_SUCCESS != RegQueryValueEx( hKey, OPT_LASTFILE, 0, &dwType, ( LPBYTE )PlayerOptions->LastFile, &dwSize )) )
		{
			wcscpy(PlayerOptions->LastFile,_T(""));
		}
		if (!wcscmp(PlayerOptions->Skin,_T("")))
		{
			TCHAR path[200];
			HANDLE h=GetModuleHandle(_T("PocketMVP.exe"));
			GetModuleFileName((HMODULE)h,path,200);
			LPTSTR t=wcsstr(path,_T("PocketMVP."));
			*t=0;
			wcscpy(PlayerOptions->Skin,path);
			wcscat(PlayerOptions->Skin,_T("Skins\\PocketMVP.pds"));
		}


		RegCloseKey( hKey );
	}
	if ( ERROR_SUCCESS == RegCreateKeyEx( HKEY_LOCAL_MACHINE, REG_BASE, NULL, 0, 0,
		KEY_READ | KEY_WRITE | KEY_SET_VALUE,
		NULL, &hKey, &dwDisp ) )
	{
		bool ok=false;
		RegSetValueEx( hKey, OPT_EXITEDOK, 0, REG_DWORD, ( LPBYTE )&(ok), sizeof( bool ) );
	}
}


INIT_API void SaveOptions(UserOptions* PlayerOptions)
{
	HKEY hKey = 0;
	int ns;
	DWORD dwDisp = 0;
	bool iPAQ=false;
#ifdef GAPI
#ifdef ARM
	GXDisplayProperties x;			
	x=GXGetDisplayProperties();
	if (x.cbxPitch>2||(x.cbxPitch<2)) iPAQ=true;
#endif
#endif
	if ( ERROR_SUCCESS == RegCreateKeyEx( HKEY_LOCAL_MACHINE, REG_BASE, NULL, 0, 0,
		KEY_READ | KEY_WRITE | KEY_SET_VALUE,
		NULL, &hKey, &dwDisp ) )
	{
		bool bRotate;
		bool ok=true;
		if (iPAQ) bRotate=!PlayerOptions->Rotate;
		else bRotate=PlayerOptions->Rotate;
		RegSetValueEx( hKey, OPT_ROTATE, 0, REG_DWORD, ( LPBYTE )&(bRotate), sizeof( bool ) );
		RegSetValueEx( hKey, OPT_AUDIO, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Audio, sizeof( bool ) );
	
		RegSetValueEx( hKey, OPT_KEEPALIVE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->KeepAlive, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_ALWAYSHIDE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->AlwaysHide, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_NOINDEX, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->NoIndex, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_DOUBLESIZE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Double, sizeof( bool ) );
	
		RegSetValueEx( hKey, OPT_CLEANVIDEO, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Clean, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_FITTOVIEWPORT, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->FitToViewPort, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_VIEWMEDIA, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Media, sizeof( bool ) );
		
		RegSetValueEx( hKey, OPT_VIEWPLAYLIST, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Playlist, sizeof( bool ) );
	

		RegSetValueEx( hKey, OPT_MDRIVECACHING, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Cache, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_PLAYATOPEN, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->PlayAtOpen, sizeof( bool ) );
		
		RegSetValueEx( hKey, OPT_SHUFFLE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Shuffle, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_REPEAT, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Repeat, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_SHOWDROP, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->ShowDropped, sizeof( bool ) );
		
		RegSetValueEx( hKey, OPT_KEEPLASTFILE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->KeepLastFile, sizeof( bool ) );

		RegSetValueEx( hKey, OPT_CACHESIZE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->CacheSize, sizeof( DWORD ) );

#ifdef ARM
		RegSetValueEx( hKey, OPT_BRIGHTNESS, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Brightness, sizeof( DWORD ) );
#endif
		RegSetValueEx( hKey, OPT_DROPTOLERANCE, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->DropTolerance, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_PAUSEKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->PauseKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_STOPKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->StopKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_MUTEKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->MuteKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_FASTKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->FastKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_ROTATEKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->RotateKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_ZOOMKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->ZoomKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_TOGGLEKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->ToggleKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_VOLUMEUPKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->VolumeUpKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_VOLUMEDOWNKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->VolumeDownKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_VOLUMEUPKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->VolumeUpKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_VOLUMEDOWNKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->VolumeDownKey, sizeof( DWORD ) );

#ifdef ARM
		RegSetValueEx( hKey, OPT_BRIGHTNESSUPKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->BrightnessUpKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_BRIGHTNESSDOWNKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->BrightnessDownKey, sizeof( DWORD ) );
#endif
		RegSetValueEx( hKey, OPT_NEXTKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->NextKey, sizeof( DWORD ) );
		
		RegSetValueEx( hKey, OPT_PREVKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->PrevKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_CONTROLKEY, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->ControlSelectKey, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_LASTFILEPOS, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->LastFilePos, sizeof( DWORD ) );

		RegSetValueEx( hKey, OPT_EQ, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->EnableEQ, sizeof( bool ) );

		for (ns=IDC_EQ0;ns<IDC_EQ10+1;ns++)
		{
			TCHAR sKey[10];
			wcscpy(sKey,_T("Eq"));
			_itow(ns-IDC_EQ0,sKey+2,10);
			RegSetValueEx( hKey, sKey, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Eq[ns-IDC_EQ0], sizeof( DWORD ) );
//			wcscpy(sKey,PlayerOptions->Preset);
//			wcscat(sKey,_T("Eq"));
//			_itow(ns-IDC_EQ0,sKey+2,10);
//			RegSetValueEx( hKey, sKey, 0, REG_DWORD, ( LPBYTE )&PlayerOptions->Eq[ns-IDC_EQ0], sizeof( DWORD ) );
		}
//		RegSetValueEx( hKey, OPT_PRESET, 0, REG_SZ, ( LPBYTE )&PlayerOptions->Preset, sizeof( PlayerOptions->Preset ) );
		RegSetValueEx( hKey, OPT_SKIN, 0, REG_SZ, ( LPBYTE )&PlayerOptions->Skin, sizeof( PlayerOptions->Skin ) );
		RegSetValueEx( hKey, OPT_LASTFILE, 0, REG_SZ, ( LPBYTE )&PlayerOptions->LastFile, sizeof( PlayerOptions->LastFile ) );
		RegSetValueEx( hKey, OPT_EXITEDOK, 0, REG_DWORD, ( LPBYTE )&(ok), sizeof( bool ) );
		RegCloseKey( hKey );
	}

}


ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass, WNDPROC WndProc)

{
	WNDCLASS wc1;

    wc1.style			= CS_HREDRAW | CS_VREDRAW;
    wc1.lpfnWndProc		= (WNDPROC) WndProc;
    wc1.cbClsExtra		= 0;
    wc1.cbWndExtra		= 0;
    wc1.hInstance		= hInstance;
    wc1.hIcon			= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_POCKETMVP));
    wc1.hCursor			= 0;
    wc1.hbrBackground	= (HBRUSH) GetStockObject(BLACK_BRUSH);
    wc1.lpszMenuName	= 0; //MAKEINTRESOURCE(IDM_MENU);
    wc1.lpszClassName	= szWindowClass;

	ATOM x1 = RegisterClass(&wc1);


	return  x1;
}

LRESULT CALLBACK ListProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	

	switch (message) 
	{
		case WM_KEYDOWN:
			if ((wParam>0&&(wParam<91))||(wParam>185)||(wParam>95&&(wParam<112)))
			{
				SendMessage(hWnd,CB_SETITEMDATA,SendMessage(hWnd,CB_GETCURSEL,0,0),wParam);
				SetDlgItemText(GetParent(hWnd),IDC_STATICSTATUS,_T("(Function Mapped)"));
			}
			break;
		default:
#if _WIN32_WCE >= 300
			return CallWindowProc((WNDPROC)oldproc,hWnd,message,wParam,lParam);
#else
			return CallWindowProc((int (__cdecl *)(void))oldproc,hWnd,message,wParam,lParam);
#endif
			break;
	}
}



BOOL CALLBACK cfgDlg(
HWND hwndDlg, 
UINT uMsg, 
WPARAM wParam, 
LPARAM lParam )
{
	NMHDR* nm=(NMHDR*) lParam;
	switch(uMsg)
	{
	case WM_COMMAND:
		switch (HIWORD(wParam))
		{
			case CBN_SELENDOK:
				SetDlgItemText(hwndDlg,IDC_STATICSTATUS,_T("(Press Button to Map)"));
				break;			
			default:
				break;
		}
		switch (wParam)
		{
			case ID_OK:
				gPlayerOptions->Cache=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKCACHE),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->KeepAlive=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKKEEPALIVE),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->AlwaysHide=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKHIDE),BM_GETCHECK,0,0)==BST_CHECKED);

				gPlayerOptions->NoIndex=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKNOINDEX),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->PlayAtOpen=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKPLAYATOPEN),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->ShowDropped=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKDROP),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->KeepLastFile=(SendMessage(GetDlgItem(hwndDlg,IDC_CHECKREMEMBER),BM_GETCHECK,0,0)==BST_CHECKED);
				gPlayerOptions->CacheSize=SendMessage( GetDlgItem(hwndDlg,IDC_SLIDER1), TBM_GETPOS, 0,0 );
#ifdef ARM
				gPlayerOptions->Brightness=SendMessage( GetDlgItem(hwndDlg,IDC_BRIGHT), TBM_GETPOS, 0,0 );
#endif
				gPlayerOptions->DropTolerance=SendMessage( GetDlgItem(hwndDlg,IDC_DROP), TBM_GETPOS, 0,0 );
				gPlayerOptions->ToggleKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)0,(LPARAM)0);
				gPlayerOptions->PauseKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)1,(LPARAM)0);
				gPlayerOptions->FastKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)2,(LPARAM)0);
				gPlayerOptions->RotateKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)3,(LPARAM)0);
				gPlayerOptions->ZoomKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)4,(LPARAM)0);
				gPlayerOptions->VolumeUpKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)5,(LPARAM)0);
				gPlayerOptions->VolumeDownKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)6,(LPARAM)0);
				gPlayerOptions->NextKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)7,(LPARAM)0);
				gPlayerOptions->PrevKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)8,(LPARAM)0);
				gPlayerOptions->ControlSelectKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)9,(LPARAM)0);
				gPlayerOptions->StopKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)10,(LPARAM)0);
				gPlayerOptions->MuteKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)11,(LPARAM)0);
#ifdef ARM
				gPlayerOptions->BrightnessUpKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)12,(LPARAM)0);
				gPlayerOptions->BrightnessDownKey=SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_GETITEMDATA,(WPARAM)13,(LPARAM)0);
#endif				
				
				SaveOptions(gPlayerOptions);
				EndDialog(hwndDlg,1);
				SetWindowLong(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),GWL_WNDPROC,(long)oldproc);
				break;
			case ID_CLEAR:
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)0,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)1,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)2,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)3,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)4,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)5,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)6,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)7,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)8,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)9,(LPARAM)0);
				SendMessage(GetDlgItem(hwndDlg,IDC_CBOFUNCTIONS),CB_SETITEMDATA,(WPARAM)10,(LPARAM)0);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?