00001
00002
00003
00004
00005
00006 #include "stdafx.h"
00007 #include "FdmApp.h"
00008 #include "EnterKeyDlg.h"
00009 #include "misc.h"
00010
00011 #ifdef _DEBUG
00012 #define new DEBUG_NEW
00013 #undef THIS_FILE
00014 static char THIS_FILE[] = __FILE__;
00015 #endif
00016
00017 CEnterKeyDlg::CEnterKeyDlg(CWnd* pParent )
00018 : CDialog(CEnterKeyDlg::IDD, pParent)
00019 {
00020
00021
00022
00023 }
00024
00025 void CEnterKeyDlg::DoDataExchange(CDataExchange* pDX)
00026 {
00027 CDialog::DoDataExchange(pDX);
00028
00029
00030
00031 }
00032
00033 BEGIN_MESSAGE_MAP(CEnterKeyDlg, CDialog)
00034
00035 ON_BN_CLICKED(IDC_GETKEY, OnGetkey)
00036 ON_WM_CONTEXTMENU()
00037 ON_COMMAND(ID_WHATISTHIS, OnWhatisthis)
00038 ON_WM_HELPINFO()
00039
00040 END_MESSAGE_MAP()
00041
00042 void CEnterKeyDlg::OnGetkey()
00043 {
00044 fsOpenBuyPage ();
00045 }
00046
00047 BOOL CEnterKeyDlg::OnInitDialog()
00048 {
00049 CDialog::OnInitDialog();
00050
00051 ApplyLanguage ();
00052
00053 return TRUE;
00054 }
00055
00056 void CEnterKeyDlg::OnContextMenu(CWnd* , CPoint point)
00057 {
00058 PrepareCHMgr (point);
00059 _CHMgr.ShowMenu ();
00060 }
00061
00062 void CEnterKeyDlg::OnWhatisthis()
00063 {
00064 _CHMgr.OnWT ();
00065 }
00066
00067 void CEnterKeyDlg::ApplyLanguage()
00068 {
00069 fsDlgLngInfo lnginfo [] = {
00070 fsDlgLngInfo (IDC__KEY, L_KEY),
00071 fsDlgLngInfo (IDC__KEYNOTE, L_KEYNOTE),
00072 fsDlgLngInfo (IDC_GETKEY, L_GETKEY),
00073 fsDlgLngInfo (IDCANCEL, L_CANCEL),
00074 };
00075
00076 _LngMgr.ApplyLanguage (this, lnginfo, sizeof (lnginfo) / sizeof (fsDlgLngInfo), L_REGISTRATION);
00077 }
00078
00079 BOOL CEnterKeyDlg::RegisterKey(LPCSTR pszKey)
00080 {
00081 HKEY hKey;
00082 DWORD dwDisposition;
00083
00084 if (ERROR_SUCCESS != RegCreateKeyEx (HKEY_CURRENT_USER, "Software\\FreeDownloadManager.ORG\\Free Download Manager", 0, NULL,
00085 REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition))
00086 {
00087 return FALSE;
00088 }
00089
00090 if (ERROR_SUCCESS != RegSetValueEx (hKey, "Key", 0, REG_SZ, (BYTE*)pszKey, strlen (pszKey) ))
00091 {
00092 RegCloseKey(hKey);
00093 return FALSE;
00094 }
00095
00096 RegCloseKey(hKey);
00097 return TRUE;
00098 }
00099
00100 void CEnterKeyDlg::OnOK()
00101 {
00102 CString strKey;
00103 GetDlgItemText (IDC_KEY, strKey);
00104 if (strKey != "")
00105 {
00106 if (RegisterKey (strKey) == FALSE)
00107 MessageBox (LS (L_FAILEDTOREG), LS (L_ERR), MB_ICONERROR);
00108 else
00109 MessageBox (LS (L_THANKSFORREG), LS (L_SUCCESS), MB_OK);
00110 }
00111 CDialog::OnOK();
00112 }
00113
00114 BOOL CEnterKeyDlg::OnHelpInfo(HELPINFO* pHelpInfo)
00115 {
00116 RECT rc;
00117 CWnd *pItem = GetDlgItem (pHelpInfo->iCtrlId);
00118 if (pItem == NULL)
00119 return TRUE;
00120 pItem->GetWindowRect (&rc);
00121 if (PtInRect (&rc, pHelpInfo->MousePos) == FALSE)
00122 {
00123 pHelpInfo->MousePos.x = rc.left + (rc.right - rc.left) / 2;
00124 pHelpInfo->MousePos.y = rc.top + (rc.bottom - rc.top) / 2;
00125 }
00126 PrepareCHMgr (pHelpInfo->MousePos);
00127 _CHMgr.OnWT ();
00128 return TRUE;
00129 }
00130
00131 void CEnterKeyDlg::PrepareCHMgr(CPoint point)
00132 {
00133 fsCtrlContextHelp aCH1 [] = {
00134 fsCtrlContextHelp (IDC__KEY, LS (L_SPECKEY)),
00135 fsCtrlContextHelp (IDC_KEY, LS (L_SPECKEY)),
00136
00137 fsCtrlContextHelp (IDOK, LS (L_CLICKAFTER)),
00138 fsCtrlContextHelp (IDCANCEL, LS (L_DONTREGISTER)),
00139 };
00140
00141 static fsCtrlContextHelp aCH [sizeof (aCH1) / sizeof (fsCtrlContextHelp)];
00142 CopyMemory (aCH, aCH1, sizeof (aCH));
00143
00144 _CHMgr.PrepareContextMenu (this, point, aCH, sizeof (aCH) / sizeof (fsCtrlContextHelp));
00145 }