| Revision | c764e897eeaad0819c894da144ef2c94c296674c (tree) |
|---|---|
| Time | 2012-02-25 04:25:30 |
| Author | qwerty2501 <riot313@gmai...> |
| Commiter | qwerty2501 |
規定のブラウザ名取得処理実装
| @@ -502,7 +502,7 @@ static VOID DebugOutputCommon(LPCWSTR szBuf,UINT mode,const struct tm* now); | ||
| 502 | 502 | static VOID DebugOutW(LPCWSTR fileName,LPCWSTR functionName,UINT lineNo,UINT mode,UINT infoFlag,LPCWSTR pszFormat, ...); |
| 503 | 503 | |
| 504 | 504 | //マルチバイト文字用デバッグ関数 |
| 505 | -static VOID DebugOutMB(UINT codePage,LPSTR fileName,LPSTR functionName,UINT lineNo,UINT mode,UINT infoFlag,LPSTR pszFormat, ...); | |
| 505 | +static VOID DebugOutMB(UINT codePage,LPSTR fileName,LPSTR functionName,UINT lineNo,UINT mode,UINT infoFlag,LPCSTR pszFormat, ...); | |
| 506 | 506 | |
| 507 | 507 | |
| 508 | 508 |
| @@ -16,6 +16,7 @@ | ||
| 16 | 16 | #define IDC_COMMENT_SPEAK_CHECKBOX 1001 |
| 17 | 17 | #define IDC_LT_BACKCOLOR_STATIC 1001 |
| 18 | 18 | #define IDC_ZORDER_TOP_CHECKBOX 1001 |
| 19 | +#define IDC_DEFAULT_BT_RADIO 1002 | |
| 19 | 20 | #define IDC_USERID_STATIC 1002 |
| 20 | 21 | #define IDC_NICKNAME_EDIT 1003 |
| 21 | 22 | #define IDC_LT_NICKNAME_STATIC 1004 |
| @@ -63,7 +63,7 @@ IDC_NLITE MENU | ||
| 63 | 63 | // Dialog resources |
| 64 | 64 | // |
| 65 | 65 | LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL |
| 66 | -IDD_DIALOG_BROWSERTYPE DIALOG 0, 0, 193, 159 | |
| 66 | +IDD_DIALOG_BROWSERTYPE DIALOG 0, 0, 193, 174 | |
| 67 | 67 | STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU |
| 68 | 68 | CAPTION "クッキーの設定" |
| 69 | 69 | FONT 8, "Ms Shell Dlg" |
| @@ -72,11 +72,12 @@ FONT 8, "Ms Shell Dlg" | ||
| 72 | 72 | AUTORADIOBUTTON "FireFox", IDC_RADIO_FIREFOX, 61, 45, 39, 8 |
| 73 | 73 | AUTORADIOBUTTON "GoogleChrome", IDC_RADIO_CHROME, 61, 61, 62, 8 |
| 74 | 74 | AUTORADIOBUTTON "IEコンポーネント", IDC_RADIO_IECM, 60, 77, 61, 8 |
| 75 | - PUSHBUTTON "OK", IDC_BUTTON_COOKIE_OK, 40, 136, 38, 14 | |
| 76 | - PUSHBUTTON "キャンセル", IDCANCEL, 105, 137, 33, 14 | |
| 75 | + PUSHBUTTON "OK", IDC_BUTTON_COOKIE_OK, 40, 151, 38, 14 | |
| 76 | + PUSHBUTTON "キャンセル", IDCANCEL, 105, 152, 33, 14 | |
| 77 | 77 | LTEXT "普段使用しているブラウザを指定してください", IDC_STATIC, 21, 6, 82, 22, SS_LEFT |
| 78 | 78 | AUTORADIOBUTTON "Safari", IDC_RADIO_SAFARI, 60, 94, 33, 8 |
| 79 | 79 | AUTORADIOBUTTON "Opera", IDC_RADIO_OPERA, 60, 111, 35, 8 |
| 80 | + AUTORADIOBUTTON "規定のブラウザ", IDC_DEFAULT_BT_RADIO, 59, 130, 59, 8 | |
| 80 | 81 | } |
| 81 | 82 | |
| 82 | 83 |
| @@ -48,6 +48,10 @@ BOOL CCookieSettingWindow::OnInitDialog(CWindow wndFocus, LPARAM lInitParam){ | ||
| 48 | 48 | |
| 49 | 49 | break; |
| 50 | 50 | |
| 51 | + case BT_DEFAULT: | |
| 52 | + | |
| 53 | + radio = GetDlgItem(IDC_DEFAULT_BT_RADIO); | |
| 54 | + | |
| 51 | 55 | default: |
| 52 | 56 | goto skip; |
| 53 | 57 | } |
| @@ -65,6 +69,7 @@ VOID CCookieSettingWindow::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){ | ||
| 65 | 69 | CButton iecmRadio = GetDlgItem(IDC_RADIO_IECM); |
| 66 | 70 | CButton safariRadio = GetDlgItem(IDC_RADIO_SAFARI); |
| 67 | 71 | CButton operaRadio = GetDlgItem(IDC_RADIO_OPERA); |
| 72 | + CButton defaultRadio = GetDlgItem(IDC_DEFAULT_BT_RADIO); | |
| 68 | 73 | |
| 69 | 74 | if(ieRadio.GetCheck() == BST_CHECKED){ |
| 70 | 75 |
| @@ -89,7 +94,10 @@ VOID CCookieSettingWindow::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){ | ||
| 89 | 94 | } else if(operaRadio.GetCheck() == BST_CHECKED){ |
| 90 | 95 | |
| 91 | 96 | this->browserType = BT_OPERA; |
| 92 | - | |
| 97 | + } else if(defaultRadio.GetCheck() == BST_CHECKED){ | |
| 98 | + | |
| 99 | + this->browserType = BT_DEFAULT; | |
| 100 | + | |
| 93 | 101 | }else { |
| 94 | 102 | |
| 95 | 103 | this->browserType = BT_NOSETTING; |
| @@ -31,4 +31,10 @@ typedef UINT_PTR BROWSERTYPE; | ||
| 31 | 31 | #define BT_SAFARI ((BROWSERTYPE)5) |
| 32 | 32 | |
| 33 | 33 | ///IEコンポーネント |
| 34 | -#define BT_IE_COMPONENT ((BROWSERTYPE)6) | |
| \ No newline at end of file | ||
| 34 | +#define BT_IE_COMPONENT ((BROWSERTYPE)6) | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | +///規定のブラウザ | |
| 40 | +#define BT_DEFAULT ((BROWSERTYPE)65535) | |
| \ No newline at end of file |
| @@ -1,7 +1,8 @@ | ||
| 1 | 1 | |
| 2 | 2 | #include "shareCookie.h" |
| 3 | 3 | #define WINDEBUGER_NOPRINTING |
| 4 | - | |
| 4 | +#define _CRT_SECURE_NO_WARNINGS 1 //vc++のおせっかいな警告を消す | |
| 5 | +#define _CRT_NON_CONFORMING_SWPRINTFS 1 //vc++のおせっかいな警告を消す | |
| 5 | 6 | #include <shlobj.h> |
| 6 | 7 | #include <Wininet.h> |
| 7 | 8 | #include <Iepmapi.h> |
| @@ -37,6 +38,11 @@ static INLINE VOID cookieStepExec(sqlite3_stmt *stmt,LPWSTR cooki,SIZE_T bufSize | ||
| 37 | 38 | |
| 38 | 39 | |
| 39 | 40 | /// |
| 41 | +///規定のブラウザタイプを取得 | |
| 42 | +/// | |
| 43 | +static BROWSERTYPE getDefaultBrowserType(); | |
| 44 | + | |
| 45 | +/// | |
| 40 | 46 | ///自力で解析す場合の共通処理 |
| 41 | 47 | /// |
| 42 | 48 | static INLINE COOKIE_RESULT SelfParseCookie(LPCWSTR cookieFilePath,LPWSTR cookie,SIZE_T bufSize,LPCWSTR key,LPCWSTR domein,SelfParseCookieCallBack callBack); |
| @@ -233,6 +239,11 @@ COOKIE_RESULT GetCookie(BROWSERTYPE browserType,LPWSTR cookie,SIZE_T bufSize, LP | ||
| 233 | 239 | |
| 234 | 240 | return GetCookieInternetExplorer(cookie,bufSize,key,domein,FALSE); |
| 235 | 241 | |
| 242 | + //規定のブラウザ | |
| 243 | + | |
| 244 | + case BT_DEFAULT: | |
| 245 | + | |
| 246 | + return GetCookie(getDefaultBrowserType(),cookie,bufSize,key,domein); | |
| 236 | 247 | |
| 237 | 248 | //ブラウザタイプが設定されていない場合 |
| 238 | 249 | case BT_NOSETTING: |
| @@ -658,7 +669,6 @@ static INLINE COOKIE_RESULT GetCookieOpera(LPCSTR targetString,LPCSTR targetEndP | ||
| 658 | 669 | CHAR mb_domein[_MAX_PATH]; |
| 659 | 670 | LPCSTR cookiePointer; |
| 660 | 671 | LPCSTR keyPointer; |
| 661 | - SIZE_T mb_keyLen; | |
| 662 | 672 | |
| 663 | 673 | if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_THREAD_ACP,key)){ |
| 664 | 674 |
| @@ -931,4 +941,29 @@ end: | ||
| 931 | 941 | fileopenerr: |
| 932 | 942 | result = COOKIE_ERR_OPEN_FAILED; |
| 933 | 943 | goto end; |
| 944 | +} | |
| 945 | + | |
| 946 | + | |
| 947 | +BROWSERTYPE getDefaultBrowserType(){ | |
| 948 | + | |
| 949 | + BROWSERTYPE rslt = BT_NOSETTING; | |
| 950 | + WCHAR currentUserSID[_MAX_PATH]; | |
| 951 | + DWORD cName = ARRAY_LENGTH(currentUserSID); | |
| 952 | + FILETIME fileTime; | |
| 953 | + HKEY hKey; | |
| 954 | + //レジストリキーを読み取り専用でオープン | |
| 955 | + if(RegOpenKeyEx(HKEY_CURRENT_USER,L"Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\https\\UserChoice",0,KEY_READ,&hKey) != ERROR_SUCCESS){ | |
| 956 | + return COOKIE_ERR_INTERNETOPTION_NOTOPEN; | |
| 957 | + } | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + RegQueryValueEx(hKey,TEXT("Progid"),(LPDWORD)NULL,(LPDWORD)NULL,(LPBYTE)¤tUserSID,&cName); | |
| 964 | + //HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider\ | |
| 965 | + | |
| 966 | + | |
| 967 | + RegCloseKey(hKey); | |
| 968 | + return rslt; | |
| 934 | 969 | } |
| \ No newline at end of file |