• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisionc764e897eeaad0819c894da144ef2c94c296674c (tree)
Time2012-02-25 04:25:30
Authorqwerty2501 <riot313@gmai...>
Commiterqwerty2501

Log Message

規定のブラウザ名取得処理実装

Change Summary

Incremental Difference

--- a/include/qwerty/windebuger.h
+++ b/include/qwerty/windebuger.h
@@ -502,7 +502,7 @@ static VOID DebugOutputCommon(LPCWSTR szBuf,UINT mode,const struct tm* now);
502502 static VOID DebugOutW(LPCWSTR fileName,LPCWSTR functionName,UINT lineNo,UINT mode,UINT infoFlag,LPCWSTR pszFormat, ...);
503503
504504 //マルチバイト文字用デバッグ関数
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, ...);
506506
507507
508508
Binary files a/nlite.suo and b/nlite.suo differ
--- a/nlite/Resource.h
+++ b/nlite/Resource.h
@@ -16,6 +16,7 @@
1616 #define IDC_COMMENT_SPEAK_CHECKBOX 1001
1717 #define IDC_LT_BACKCOLOR_STATIC 1001
1818 #define IDC_ZORDER_TOP_CHECKBOX 1001
19+#define IDC_DEFAULT_BT_RADIO 1002
1920 #define IDC_USERID_STATIC 1002
2021 #define IDC_NICKNAME_EDIT 1003
2122 #define IDC_LT_NICKNAME_STATIC 1004
--- a/nlite/nlite.rc
+++ b/nlite/nlite.rc
@@ -63,7 +63,7 @@ IDC_NLITE MENU
6363 // Dialog resources
6464 //
6565 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
66-IDD_DIALOG_BROWSERTYPE DIALOG 0, 0, 193, 159
66+IDD_DIALOG_BROWSERTYPE DIALOG 0, 0, 193, 174
6767 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
6868 CAPTION "クッキーの設定"
6969 FONT 8, "Ms Shell Dlg"
@@ -72,11 +72,12 @@ FONT 8, "Ms Shell Dlg"
7272 AUTORADIOBUTTON "FireFox", IDC_RADIO_FIREFOX, 61, 45, 39, 8
7373 AUTORADIOBUTTON "GoogleChrome", IDC_RADIO_CHROME, 61, 61, 62, 8
7474 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
7777 LTEXT "普段使用しているブラウザを指定してください", IDC_STATIC, 21, 6, 82, 22, SS_LEFT
7878 AUTORADIOBUTTON "Safari", IDC_RADIO_SAFARI, 60, 94, 33, 8
7979 AUTORADIOBUTTON "Opera", IDC_RADIO_OPERA, 60, 111, 35, 8
80+ AUTORADIOBUTTON "規定のブラウザ", IDC_DEFAULT_BT_RADIO, 59, 130, 59, 8
8081 }
8182
8283
--- a/nlite/nlite_propertyWindow.cpp
+++ b/nlite/nlite_propertyWindow.cpp
@@ -48,6 +48,10 @@ BOOL CCookieSettingWindow::OnInitDialog(CWindow wndFocus, LPARAM lInitParam){
4848
4949 break;
5050
51+ case BT_DEFAULT:
52+
53+ radio = GetDlgItem(IDC_DEFAULT_BT_RADIO);
54+
5155 default:
5256 goto skip;
5357 }
@@ -65,6 +69,7 @@ VOID CCookieSettingWindow::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){
6569 CButton iecmRadio = GetDlgItem(IDC_RADIO_IECM);
6670 CButton safariRadio = GetDlgItem(IDC_RADIO_SAFARI);
6771 CButton operaRadio = GetDlgItem(IDC_RADIO_OPERA);
72+ CButton defaultRadio = GetDlgItem(IDC_DEFAULT_BT_RADIO);
6873
6974 if(ieRadio.GetCheck() == BST_CHECKED){
7075
@@ -89,7 +94,10 @@ VOID CCookieSettingWindow::OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){
8994 } else if(operaRadio.GetCheck() == BST_CHECKED){
9095
9196 this->browserType = BT_OPERA;
92-
97+ } else if(defaultRadio.GetCheck() == BST_CHECKED){
98+
99+ this->browserType = BT_DEFAULT;
100+
93101 }else {
94102
95103 this->browserType = BT_NOSETTING;
--- a/shareCookie/browserType.h
+++ b/shareCookie/browserType.h
@@ -31,4 +31,10 @@ typedef UINT_PTR BROWSERTYPE;
3131 #define BT_SAFARI ((BROWSERTYPE)5)
3232
3333 ///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
--- a/shareCookie/shareCookie.c
+++ b/shareCookie/shareCookie.c
@@ -1,7 +1,8 @@
11
22 #include "shareCookie.h"
33 #define WINDEBUGER_NOPRINTING
4-
4+#define _CRT_SECURE_NO_WARNINGS 1 //vc++のおせっかいな警告を消す
5+#define _CRT_NON_CONFORMING_SWPRINTFS 1 //vc++のおせっかいな警告を消す
56 #include <shlobj.h>
67 #include <Wininet.h>
78 #include <Iepmapi.h>
@@ -37,6 +38,11 @@ static INLINE VOID cookieStepExec(sqlite3_stmt *stmt,LPWSTR cooki,SIZE_T bufSize
3738
3839
3940 ///
41+///規定のブラウザタイプを取得
42+///
43+static BROWSERTYPE getDefaultBrowserType();
44+
45+///
4046 ///自力で解析す場合の共通処理
4147 ///
4248 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
233239
234240 return GetCookieInternetExplorer(cookie,bufSize,key,domein,FALSE);
235241
242+ //規定のブラウザ
243+
244+ case BT_DEFAULT:
245+
246+ return GetCookie(getDefaultBrowserType(),cookie,bufSize,key,domein);
236247
237248 //ブラウザタイプが設定されていない場合
238249 case BT_NOSETTING:
@@ -658,7 +669,6 @@ static INLINE COOKIE_RESULT GetCookieOpera(LPCSTR targetString,LPCSTR targetEndP
658669 CHAR mb_domein[_MAX_PATH];
659670 LPCSTR cookiePointer;
660671 LPCSTR keyPointer;
661- SIZE_T mb_keyLen;
662672
663673 if(ARRAY_LENGTH(mb_key) < GetLenToMB(CP_THREAD_ACP,key)){
664674
@@ -931,4 +941,29 @@ end:
931941 fileopenerr:
932942 result = COOKIE_ERR_OPEN_FAILED;
933943 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)&currentUserSID,&cName);
964+ //HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider\
965+
966+
967+ RegCloseKey(hKey);
968+ return rslt;
934969 }
\ No newline at end of file