win32: Load notification icons from Windows DLLs
fixes showing wrong icons when loaded as PKCS#11 module
This commit is contained in:
parent
956ad33e31
commit
7bc070ac67
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,27 +1,5 @@
|
|||
#include <winresrc.h>
|
||||
|
||||
#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
|
||||
|
||||
|
|
|
@ -1,27 +1,5 @@
|
|||
#include <winresrc.h>
|
||||
|
||||
#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
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 $<
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
#include <winresrc.h>
|
||||
|
||||
#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
|
|
@ -1,27 +1,5 @@
|
|||
#include <winresrc.h>
|
||||
|
||||
#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@
|
||||
|
|
|
@ -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__)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
Binary file not shown.
Before Width: | Height: | Size: 10 KiB |
|
@ -1,27 +1,5 @@
|
|||
#include <winresrc.h>
|
||||
|
||||
#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
|
||||
|
||||
|
|
Loading…
Reference in New Issue