diff --git a/configure.ac b/configure.ac index 9ebbb066..bbedd37c 100644 --- a/configure.ac +++ b/configure.ac @@ -1049,6 +1049,7 @@ AC_CONFIG_FILES([ src/tests/regression/Makefile src/tools/Makefile src/tools/versioninfo-tools.rc + src/tools/versioninfo-opensc-notify.rc src/smm/Makefile src/minidriver/Makefile src/minidriver/versioninfo-minidriver.rc diff --git a/src/minidriver/versioninfo-minidriver.rc.in b/src/minidriver/versioninfo-minidriver.rc.in index 71a7089c..2a91b5c3 100644 --- a/src/minidriver/versioninfo-minidriver.rc.in +++ b/src/minidriver/versioninfo-minidriver.rc.in @@ -3,23 +3,11 @@ #define IDC_STATIC -1 /* defined twice: in ressource file and in source code */ #define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 #ifndef __MINGW32__ IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "..\\..\\win32\\certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "..\\..\\win32\\certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "..\\..\\win32\\SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "..\\..\\win32\\SCardDlg.dll_14_143.ico" #else IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "../../win32/certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "../../win32/certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "../../win32/SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "../../win32/SCardDlg.dll_14_143.ico" #endif VS_VERSION_INFO VERSIONINFO diff --git a/src/pkcs11/versioninfo-pkcs11-spy.rc.in b/src/pkcs11/versioninfo-pkcs11-spy.rc.in index f3a7f59e..a4a1a281 100644 --- a/src/pkcs11/versioninfo-pkcs11-spy.rc.in +++ b/src/pkcs11/versioninfo-pkcs11-spy.rc.in @@ -1,27 +1,5 @@ #include -#define IDC_STATIC -1 -/* defined twice: in ressource file and in source code */ -#define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 - -#ifndef __MINGW32__ -IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "..\\..\\win32\\certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "..\\..\\win32\\certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "..\\..\\win32\\SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "..\\..\\win32\\SCardDlg.dll_14_143.ico" -#else -IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "../../win32/certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "../../win32/certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "../../win32/SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "../../win32/SCardDlg.dll_14_143.ico" -#endif - VS_VERSION_INFO VERSIONINFO FILEVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ PRODUCTVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ @@ -57,3 +35,4 @@ BEGIN VALUE "Translation", 0x409, 1200 END END + diff --git a/src/pkcs11/versioninfo-pkcs11.rc.in b/src/pkcs11/versioninfo-pkcs11.rc.in index 946d3f8e..e8bc91d3 100644 --- a/src/pkcs11/versioninfo-pkcs11.rc.in +++ b/src/pkcs11/versioninfo-pkcs11.rc.in @@ -1,27 +1,5 @@ #include -#define IDC_STATIC -1 -/* defined twice: in ressource file and in source code */ -#define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 - -#ifndef __MINGW32__ -IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "..\\..\\win32\\certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "..\\..\\win32\\certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "..\\..\\win32\\SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "..\\..\\win32\\SCardDlg.dll_14_143.ico" -#else -IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "../../win32/certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "../../win32/certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "../../win32/SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "../../win32/SCardDlg.dll_14_143.ico" -#endif - VS_VERSION_INFO VERSIONINFO FILEVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ PRODUCTVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ @@ -57,3 +35,4 @@ BEGIN VALUE "Translation", 0x409, 1200 END END + diff --git a/src/tools/Makefile.am b/src/tools/Makefile.am index 3011e168..6de171d3 100644 --- a/src/tools/Makefile.am +++ b/src/tools/Makefile.am @@ -14,8 +14,8 @@ do_subst = $(SED) \ NPA_TOOL_BUILT_SOURCES = npa-tool-cmdline.h npa-tool-cmdline.c OPENSC_NOTIFY_BUILT_SOURCES = opensc-notify-cmdline.h opensc-notify-cmdline.c -MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/versioninfo-tools.rc -EXTRA_DIST = Makefile.mak versioninfo-tools.rc.in npa-tool.ggo.in npa-tool.1 opensc-notify.ggo.in +MAINTAINERCLEANFILES = $(srcdir)/Makefile.in $(srcdir)/versioninfo-tools.rc $(srcdir)/versioninfo-opensc-notify.rc +EXTRA_DIST = Makefile.mak versioninfo-tools.rc.in versioninfo-opensc-notify.rc.in npa-tool.ggo.in npa-tool.1 opensc-notify.ggo.in noinst_HEADERS = util.h fread_to_eof.h noinst_PROGRAMS = sceac-example @@ -143,6 +143,7 @@ openpgp_tool_SOURCES += versioninfo-tools.rc iasecc_tool_SOURCES += versioninfo-tools.rc sc_hsm_tool_SOURCES += versioninfo-tools.rc gids_tool_SOURCES += versioninfo-tools.rc +opensc_notify_SOURCES += versioninfo-opensc-notify.rc endif clean-local: diff --git a/src/tools/Makefile.mak b/src/tools/Makefile.mak index 8e3be233..fdaae536 100644 --- a/src/tools/Makefile.mak +++ b/src/tools/Makefile.mak @@ -11,9 +11,6 @@ TARGETS = opensc-tool.exe opensc-explorer.exe pkcs15-tool.exe pkcs15-crypt.exe \ OBJECTS = util.obj npa-tool-cmdline.obj fread_to_eof.obj versioninfo-tools.res -TARGET2 = opensc-notify.exe -OBJECT2 = opensc-notify-cmdline.obj versioninfo-tools.res - LIBS = $(TOPDIR)\src\common\common.lib \ $(TOPDIR)\src\scconf\scconf.lib \ $(TOPDIR)\src\libopensc\opensc.lib \ @@ -21,11 +18,14 @@ LIBS = $(TOPDIR)\src\common\common.lib \ $(TOPDIR)\src\common\libpkcs11.lib \ $(TOPDIR)\src\common\libscdl.lib -all: $(TARGETS) $(TARGET2) +all: $(TARGETS) $(TARGETS): $(OBJECTS) $(LIBS) -$(TARGET2): $(OBJECT2) $(LIBS) +opensc-notify.exe: opensc-notify-cmdline.obj versioninfo-opensc-notify.res $(LIBS) + cl $(COPTS) /c $*.c + link $(LINKFLAGS) /pdb:$*.pdb /out:$@ $*.obj opensc-notify-cmdline.obj versioninfo-opensc-notify.res $(LIBS) $(OPENPACE_LIB) $(OPENSSL_LIB) gdi32.lib shell32.lib User32.lib ws2_32.lib + mt -manifest exe.manifest -outputresource:$@;1 .c.exe: cl $(COPTS) /c $< diff --git a/src/tools/versioninfo-opensc-notify.rc.in b/src/tools/versioninfo-opensc-notify.rc.in new file mode 100644 index 00000000..3c6aa7f6 --- /dev/null +++ b/src/tools/versioninfo-opensc-notify.rc.in @@ -0,0 +1,47 @@ +#include + +#define IDC_STATIC -1 +/* defined twice: in ressource file and in source code */ +#define IDI_SMARTCARD 102 + +#ifndef __MINGW32__ +IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" +#else +IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ + PRODUCTVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x21L +#else + FILEFLAGS 0x20L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "@OPENSC_VS_FF_COMMENTS@" + VALUE "CompanyName", "@OPENSC_VS_FF_COMPANY_NAME@" + VALUE "FileVersion", "@OPENSC_VERSION_MAJOR@.@OPENSC_VERSION_MINOR@.@OPENSC_VERSION_FIX@.@OPENSC_VERSION_REVISION@" + VALUE "InternalName", "@PACKAGE_NAME@" + VALUE "LegalCopyright", "@OPENSC_VS_FF_LEGAL_COPYRIGHT@" + VALUE "LegalTrademarks", "" + VALUE "PrivateBuild", "" + VALUE "ProductName", "@OPENSC_VS_FF_PRODUCT_NAME@" + VALUE "ProductVersion", "@OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@" + VALUE "SpecialBuild", "" + VALUE "FileDescription", "OpenSC Notify" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/src/tools/versioninfo-tools.rc.in b/src/tools/versioninfo-tools.rc.in index 2c7f14c5..444b1a25 100644 --- a/src/tools/versioninfo-tools.rc.in +++ b/src/tools/versioninfo-tools.rc.in @@ -1,27 +1,5 @@ #include -#define IDC_STATIC -1 -/* defined twice: in ressource file and in source code */ -#define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 - -#ifndef __MINGW32__ -IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "..\\..\\win32\\certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "..\\..\\win32\\certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "..\\..\\win32\\SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "..\\..\\win32\\SCardDlg.dll_14_143.ico" -#else -IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "../../win32/certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "../../win32/certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "../../win32/SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "../../win32/SCardDlg.dll_14_143.ico" -#endif - VS_VERSION_INFO VERSIONINFO FILEVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ PRODUCTVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ diff --git a/src/ui/notify.c b/src/ui/notify.c index 0a9c0091..9cb7ac59 100644 --- a/src/ui/notify.c +++ b/src/ui/notify.c @@ -77,10 +77,6 @@ HINSTANCE sc_notify_instance = NULL; HWND hwndNotification = NULL; BOOL delete_icon = TRUE; #define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 UINT const WMAPP_NOTIFYCALLBACK = WM_APP + 1; static BOOL RestoreTooltip(); @@ -184,9 +180,10 @@ static BOOL RestoreTooltip() } static void notify_shell(struct sc_context *ctx, - const char *title, const char *text, WORD icon) + const char *title, const char *text, LPCTSTR icon_path, int icon_index) { NOTIFYICONDATA nid = {0}; + HICON icon = NULL; nid.cbSize = sizeof(NOTIFYICONDATA); nid.uFlags = NIF_GUID; @@ -199,12 +196,19 @@ static void notify_shell(struct sc_context *ctx, nid.uFlags |= NIF_INFO; strlcpy(nid.szInfo, text, ARRAYSIZE(nid.szInfo)); } - if (icon) { - nid.dwInfoFlags = NIIF_USER | NIIF_LARGE_ICON; - LoadIconMetric(sc_notify_instance, MAKEINTRESOURCEW(icon), LIM_LARGE, &nid.hBalloonIcon); + if (icon_path) { + ExtractIconEx(icon_path, icon_index, &icon, NULL, 1); + if (icon) { + nid.dwInfoFlags = NIIF_USER | NIIF_LARGE_ICON; + nid.hBalloonIcon = icon; + } } Shell_NotifyIcon(NIM_MODIFY, &nid); + + if (icon) { + DestroyIcon(icon); + } } void sc_notify_init(void) @@ -224,36 +228,40 @@ void sc_notify_close(void) void sc_notify(const char *title, const char *text) { - notify_shell(NULL, title, text, 0); + notify_shell(NULL, title, text, NULL, 0); } void sc_notify_id(struct sc_context *ctx, struct sc_atr *atr, struct sc_pkcs15_card *p15card, enum ui_str id) { const char *title, *text; - WORD icon; + LPCTSTR icon_path = NULL; + int icon_index = 0; title = ui_get_str(ctx, atr, p15card, id); text = ui_get_str(ctx, atr, p15card, id+1); switch (id) { case NOTIFY_CARD_INSERTED: - icon = IDI_CARD_INSERTED; + icon_path = TEXT("%SYSTEMROOT%\\system32\\SCardDlg.dll"); + icon_index = 3; break; case NOTIFY_CARD_REMOVED: - icon = IDI_READER_EMPTY; + icon_path = TEXT("%SYSTEMROOT%\\system32\\SCardDlg.dll"); + icon_index = 2; break; case NOTIFY_PIN_GOOD: - icon = IDI_UNLOCKED; + icon_path = TEXT("%SYSTEMROOT%\\system32\\certmgr.dll"); + icon_index = 16; break; case NOTIFY_PIN_BAD: - icon = IDI_LOCKED; + icon_path = TEXT("%SYSTEMROOT%\\system32\\certmgr.dll"); + icon_index = 11; break; default: - icon = 0; break; } - notify_shell(ctx, title, text, icon); + notify_shell(ctx, title, text, icon_path, icon_index); } #elif defined(ENABLE_NOTIFY) && defined(__APPLE__) diff --git a/win32/SCardDlg.dll_14_142.ico b/win32/SCardDlg.dll_14_142.ico deleted file mode 100644 index 5fe23fe2..00000000 Binary files a/win32/SCardDlg.dll_14_142.ico and /dev/null differ diff --git a/win32/SCardDlg.dll_14_143.ico b/win32/SCardDlg.dll_14_143.ico deleted file mode 100644 index e14f89de..00000000 Binary files a/win32/SCardDlg.dll_14_143.ico and /dev/null differ diff --git a/win32/certmgr.dll_14_452.ico b/win32/certmgr.dll_14_452.ico deleted file mode 100644 index 457af40f..00000000 Binary files a/win32/certmgr.dll_14_452.ico and /dev/null differ diff --git a/win32/certmgr.dll_14_6170.ico b/win32/certmgr.dll_14_6170.ico deleted file mode 100644 index 23571d78..00000000 Binary files a/win32/certmgr.dll_14_6170.ico and /dev/null differ diff --git a/win32/versioninfo.rc.in b/win32/versioninfo.rc.in index 246efa6d..fb340840 100644 --- a/win32/versioninfo.rc.in +++ b/win32/versioninfo.rc.in @@ -1,27 +1,5 @@ #include -#define IDC_STATIC -1 -/* defined twice: in ressource file and in source code */ -#define IDI_SMARTCARD 102 -#define IDI_UNLOCKED 103 -#define IDI_LOCKED 104 -#define IDI_READER_EMPTY 105 -#define IDI_CARD_INSERTED 106 - -#ifndef __MINGW32__ -IDI_SMARTCARD ICON "..\\..\\win32\\DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "..\\..\\win32\\certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "..\\..\\win32\\certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "..\\..\\win32\\SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "..\\..\\win32\\SCardDlg.dll_14_143.ico" -#else -IDI_SMARTCARD ICON "../../win32/DDORes.dll_14_2302.ico" -IDI_UNLOCKED ICON "../../win32/certmgr.dll_14_6170.ico" -IDI_LOCKED ICON "../../win32/certmgr.dll_14_452.ico" -IDI_READER_EMPTY ICON "../../win32/SCardDlg.dll_14_142.ico" -IDI_CARD_INSERTED ICON "../../win32/SCardDlg.dll_14_143.ico" -#endif - VS_VERSION_INFO VERSIONINFO FILEVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ PRODUCTVERSION @OPENSC_VERSION_MAJOR@,@OPENSC_VERSION_MINOR@,@OPENSC_VERSION_FIX@,@OPENSC_VERSION_REVISION@ @@ -57,3 +35,4 @@ BEGIN VALUE "Translation", 0x409, 1200 END END +