diff options
-rw-r--r-- | options.cpp | 7 | ||||
-rw-r--r-- | utilities.cpp | 25 | ||||
-rw-r--r-- | utilities.h | 1 |
3 files changed, 31 insertions, 2 deletions
diff --git a/options.cpp b/options.cpp index 2b813d7..f160500 100644 --- a/options.cpp +++ b/options.cpp @@ -243,8 +243,11 @@ static BOOL CALLBACK DlgProcLoadPublicKey(HWND hwndDlg,UINT msg,WPARAM wParam,LP ListView_SetItemText(hwndList_p, item_num, 2, (_tcslen(tmp) > 1)?tmp:_T("not set")); DestroyWindow(hwndDlg); break; - default: - break; + case ID_LOD_FROM_FILE: + TCHAR *tmp2 = GetFilePath(_T("Set file containing GPG public key"), _T("*"), _T("GPG public key file")); + MessageBox(0, tmp2, _T("i will parse"), MB_OK); + delete tmp2; + break; } SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); diff --git a/utilities.cpp b/utilities.cpp index 0654bd6..0e4fc06 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -102,6 +102,31 @@ void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szEx DBWriteContactSettingTString(0, szModuleName, szSetting, str); } +TCHAR *GetFilePath(TCHAR *WindowTittle, TCHAR *szExt, TCHAR *szExtDesc) +{ + TCHAR *str = new TCHAR [MAX_PATH+2]; + OPENFILENAME ofn={0}; + TCHAR filter[512], *pfilter; + ofn.lStructSize=CDSIZEOF_STRUCT(OPENFILENAME,lpTemplateName); + ofn.Flags=OFN_EXPLORER; + ofn.lpstrTitle=TranslateW(WindowTittle); + _tcscpy(filter,TranslateW(szExtDesc)); + pfilter=filter+_tcslen(filter)+1; + _tcscpy(pfilter, szExt); + pfilter[_tcslen(pfilter)+1] = '\0'; + pfilter[_tcslen(pfilter)+2] = '\0'; + ofn.lpstrFilter=filter; + _tcscpy(str, _T("")); + if(_tcslen(str)< 2) + str[0] = '\0'; + ofn.lpstrFile=str; + ofn.nMaxFile=_MAX_PATH; + ofn.nMaxFileTitle=MAX_PATH; + if(!GetOpenFileName(&ofn)) + return _T(""); + return str; +} + void GetFolderPath(TCHAR *WindowTittle, char *szSetting) { BROWSEINFO pbi = {0}; diff --git a/utilities.h b/utilities.h index c913838..8ec36db 100644 --- a/utilities.h +++ b/utilities.h @@ -18,6 +18,7 @@ #define UTILITIES_H TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef); void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szExtDesc); +TCHAR *GetFilePath(TCHAR *WindowTittle, TCHAR *szExt, TCHAR *szExtDesc); void GetFolderPath(TCHAR *WindowTittle, char *szSetting); #endif |