diff options
Diffstat (limited to 'plugins/AutoRun/src/main.cpp')
| -rw-r--r-- | plugins/AutoRun/src/main.cpp | 75 | 
1 files changed, 32 insertions, 43 deletions
diff --git a/plugins/AutoRun/src/main.cpp b/plugins/AutoRun/src/main.cpp index c953afe6f1..26af671bcd 100644 --- a/plugins/AutoRun/src/main.cpp +++ b/plugins/AutoRun/src/main.cpp @@ -1,7 +1,6 @@  #include "autorun.h"
  HINSTANCE hInst;
 -HANDLE hHookOptionInit = NULL;
  int hLangpack;
  PLUGININFOEX pluginInfoEx=
 @@ -23,9 +22,10 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)  	hInst = hinstDLL;
  	return TRUE;
  }
 +
  void GetProfilePath(TCHAR *res)
  {
 -  	TCHAR dbname[MAX_PATH], dbpath[MAX_PATH], exename[MAX_PATH];
 +	TCHAR dbname[MAX_PATH], dbpath[MAX_PATH], exename[MAX_PATH];
  	CallService(MS_DB_GETPROFILENAMET, SIZEOF(dbname), (LPARAM)(TCHAR*) dbname);
  	CallService(MS_DB_GETPROFILEPATHT, SIZEOF(dbpath), (LPARAM)(TCHAR*) dbpath);
  	GetModuleFileName(NULL,exename, SIZEOF(exename));
 @@ -38,66 +38,57 @@ void GetProfilePath(TCHAR *res)  static void SetAutorun(BOOL autorun)
  {
 -  HKEY hKey;
 -  DWORD dw;
 -  switch (autorun)
 -  {
 -  case TRUE:
 -	if (RegCreateKeyEx(ROOT_KEY, SUB_KEY, 0, NULL, 0, KEY_CREATE_SUB_KEY|KEY_SET_VALUE,NULL,&hKey,&dw) == ERROR_SUCCESS)
 -	{
 -	  	TCHAR result[MAX_PATH];
 -		GetProfilePath(result);
 -		RegSetValueEx(hKey, _T("MirandaNG"), 0, REG_SZ, (BYTE*)result, lstrlen(result)+1);
 -		RegCloseKey(hKey);
 +	HKEY hKey;
 +	DWORD dw;
 +	switch (autorun) {
 +	case TRUE:
 +		if (RegCreateKeyEx(ROOT_KEY, SUB_KEY, 0, NULL, 0, KEY_CREATE_SUB_KEY|KEY_SET_VALUE,NULL,&hKey,&dw) == ERROR_SUCCESS) {
 +			TCHAR result[MAX_PATH];
 +			GetProfilePath(result);
 +			RegSetValueEx(hKey, _T("MirandaNG"), 0, REG_SZ, (BYTE*)result, lstrlen(result)+1);
 +			RegCloseKey(hKey);
 +		}
  		break;
 -	}
 -  case FALSE:
 -	if (RegOpenKey(ROOT_KEY, SUB_KEY, &hKey) == ERROR_SUCCESS)
 -	{
 -		RegDeleteValue(hKey, _T("MirandaNG"));
 -		RegCloseKey(hKey);
 +	case FALSE:
 +		if (RegOpenKey(ROOT_KEY, SUB_KEY, &hKey) == ERROR_SUCCESS) {
 +			RegDeleteValue(hKey, _T("MirandaNG"));
 +			RegCloseKey(hKey);
 +		}
  		break;
  	}
 -  }
  }
  static BOOL CmpCurrentAndRegistry()
  {
  	HKEY hKey;
 -	DWORD dwBufLen = MAX_PATH;
 +	if ( RegOpenKeyEx(ROOT_KEY, SUB_KEY, 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
 +		return FALSE;
 +
  	TCHAR result[MAX_PATH], dbpath[MAX_PATH];
 -	GetProfilePath(result);
 -	
 -	if (RegOpenKeyEx(ROOT_KEY, SUB_KEY, 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
 -	{
 -		if (RegQueryValueEx(hKey, _T("MirandaNG"), NULL, NULL, (LPBYTE)dbpath, &dwBufLen) == ERROR_SUCCESS)
 -		{
 -			return (lstrcmpi(result,dbpath) == 0 ? TRUE : FALSE);
 -		} 
 -		else 
 -			return FALSE;
 -	} 
 -	else 
 +	DWORD dwBufLen = MAX_PATH;
 +	if ( RegQueryValueEx(hKey, _T("MirandaNG"), NULL, NULL, (LPBYTE)dbpath, &dwBufLen) != ERROR_SUCCESS)
  		return FALSE;
 +	
 +	GetProfilePath(result);
 +	return lstrcmpi(result,dbpath) == 0;
  }
  static INT_PTR CALLBACK DlgProcAutorunOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
  {
 -	switch (msg)
 -	{
 +	switch (msg) {
  	case WM_INITDIALOG:
  		TranslateDialogDefault(hwndDlg);
 -        CheckDlgButton(hwndDlg,IDC_AUTORUN,CmpCurrentAndRegistry()); // Check chekbox if Registry value exists
 +		CheckDlgButton(hwndDlg,IDC_AUTORUN,CmpCurrentAndRegistry()); // Check chekbox if Registry value exists
  		return TRUE;
 +
  	case WM_COMMAND:
  		SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); // Send message to activate "Apply" button
  		return TRUE;
 -		break;
 +
  	case WM_NOTIFY:
  		switch(((LPNMHDR)lParam)->idFrom) {
  		case 0:
 -			switch (((LPNMHDR)lParam)->code)
 -			{
 +			switch (((LPNMHDR)lParam)->code) {
  			case PSN_APPLY: // if "Apply" pressed then...
  				SetAutorun(IsDlgButtonChecked(hwndDlg,IDC_AUTORUN)); //Save changes to registry;
  				return TRUE;
 @@ -132,13 +123,11 @@ extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD miranda  extern "C" __declspec(dllexport) int Load(void)
  {
  	mir_getLP(&pluginInfoEx);
 -	hHookOptionInit = HookEvent(ME_OPT_INITIALISE, AutorunOptInitialise);
 +	HookEvent(ME_OPT_INITIALISE, AutorunOptInitialise);
  	return 0;
  }
  extern "C" __declspec(dllexport) int Unload(void)
  {
 -	if (hHookOptionInit)
 -		UnhookEvent(hHookOptionInit);    
  	return 0;
 -}
\ No newline at end of file +}
  | 
