• R/O
  • SSH
  • HTTPS

exewrap: Commit


Commit MetaInfo

Revision99 (tree)
Zeit2021-06-19 21:56:24
Autorhirukawa_ryo

Log Message

* exewrap 1.6.5
Splash-Image で指定されたファイルがファイルシステム上に存在する場合、それを優先的に使用するようにしました。

Ändern Zusammenfassung

Diff

--- exewrap/trunk/exewrap/LICENSE.txt (revision 98)
+++ exewrap/trunk/exewrap/LICENSE.txt (revision 99)
@@ -1,27 +1,24 @@
1-Copyright (C) 2005-2020 HIRUKAWA Ryo. All rights reserved.
1+Copyright (C) 2005-2021 HIRUKAWA Ryo. All rights reserved.
22
3-ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、以下の条件を満
4-たす限りにおいて、再配布および使用を許可します:
3+ソースコード形式であれバイナリ形式であれ、変更の有無に関わらず、以下の条件を満たす限り
4+において、再配布および使用を許可します:
55
6- 1. ソースコード形式で再配布する場合、上記著作権表示、本条件書および下記責任
7- 限定規定を必ず含めてください。
6+ 1. ソースコード形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規
7+ 定を必ず含めてください。
88
9- 2. バイナリ形式で再配布する場合、上記著作権表示、本条件書および下記責任限定
10- 規定を、配布物とともに提供される文書および/または他の資料に必ず含めてく
11- ださい。
9+ 2. バイナリ形式で再配布する場合、上記著作権表示、本条件書および下記責任限定規定を、
10+ 配布物とともに提供される文書および/または他の資料に必ず含めてください。
1211
13-本ソフトウェアの実行により生成されたファイルの利用および配布について一切の制限
14-を行いません。上記著作権表示、本状条件書、下記責任限定規定を含まずに、本ソフト
15-ウェアの実行により生成されたファイルを完全に自由に利用および配布することができ
16-ます。
12+本ソフトウェアの実行により生成されたファイルの利用および配布について一切の制限を行いま
13+せん。上記著作権表示、本状条件書、下記責任限定規定を含まずに、本ソフトウェアの実行によ
14+り生成されたファイルを完全に自由に利用および配布することができます。
1715
18-本ソフトウェアは HIRUKAWA Ryo によって、"現状のまま" 提供されるものとします。
19-本ソフトウェアについては、明示黙示を問わず、商用品として通常そなえるべき品質を
20-そなえているとの保証も、特定の目的に適合するとの保証を含め、何の保証もなされま
21-せん。事由のいかんを問わず、損害発生の原因いかんを問わず、且つ、責任の根拠が契
22-約であるか厳格責任であるか (過失その他) 不法行為であるかを問わず、HIRUKAWA Ryo
23-も寄与者も、仮にそのような損害が発生する可能性を知らされていたとしても、本ソフ
24-トウェアの使用から発生した直接損害、間接損害、偶発的な損害、特別損害、懲罰的損
25-害または結果損害のいずれに対しても (代替品または サービスの提供; 使用機会、
26-データまたは利益の損失の補償;または、業務の中断に対する補償を含め) 責任をいっ
27-さい負いません。
16+本ソフトウェアは HIRUKAWA Ryo によって、"現状のまま" 提供されるものとします。 本ソフ
17+トウェアについては、明示黙示を問わず、商用品として通常そなえるべき品質をそなえていると
18+の保証も、特定の目的に適合するとの保証を含め、何の保証もなされません。事由のいかんを問
19+わず、損害発生の原因いかんを問わず、且つ、責任の根拠が契約であるか厳格責任であるか (過
20+失その他) 不法行為であるかを問わず、HIRUKAWA Ryoも寄与者も、仮にそのような損害が発生
21+する可能性を知らされていたとしても、本ソフトウェアの使用から発生した直接損害、間接損害、
22+偶発的な損害、特別損害、懲罰的損害または結果損害のいずれに対しても (代替品または サー
23+ビスの提供; 使用機会、データまたは利益の損失の補償; または、業務の中断に対する補償を含
24+め) 責任をいっさい負いません。
--- exewrap/trunk/exewrap/src/exewrap.c (revision 98)
+++ exewrap/trunk/exewrap/src/exewrap.c (revision 99)
@@ -93,7 +93,7 @@
9393
9494 wcoutf( L"exewrap %ls for %ls (%d-bit) \r\n"
9595 L"Native executable java application wrapper.\r\n"
96- L"Copyright (C) 2005-2020 HIRUKAWA Ryo. All rights reserved.\r\n"
96+ L"Copyright (C) 2005-2021 HIRUKAWA Ryo. All rights reserved.\r\n"
9797 L"\r\n"
9898 L"Usage: %ls <options> <jar-file>\r\n"
9999 L"Options:\r\n"
--- exewrap/trunk/exewrap/src/image_gui.c (revision 98)
+++ exewrap/trunk/exewrap/src/image_gui.c (revision 99)
@@ -34,13 +34,16 @@
3434
3535 typedef void(*SplashInit_t)(void);
3636 typedef int(*SplashLoadMemory_t)(void* pdata, int size);
37-SplashInit_t SplashInit;
38-SplashLoadMemory_t SplashLoadMemory;
39-HMODULE splashscreendll;
40-static HANDLE hConOut = NULL;
37+typedef int(*SplashLoadFile_t)(const char* filename);
38+// typedef void (*SplashSetScaleFactor_t)(float scaleFactor);
39+SplashInit_t SplashInit;
40+SplashLoadMemory_t SplashLoadMemory;
41+SplashLoadFile_t SplashLoadFile;
42+// SplashSetScaleFactor_t SplashSetScaleFactor;
43+HMODULE splashscreendll;
44+static HANDLE hConOut = NULL;
4145
4246
43-
4447 INT WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t* lpCmdLine, int nCmdShow)
4548 {
4649 int argc = __argc;
@@ -51,7 +54,8 @@
5154 wchar_t* relative_extdirs = NULL;
5255 wchar_t* ext_flags = NULL;
5356 wchar_t* vm_args_opt = NULL;
54- wchar_t* utilities = NULL;
57+ wchar_t* utilities = NULL;
58+ wchar_t* splash_screen_name = NULL;
5559 BOOL use_server_vm;
5660 DWORD vm_search_locations = 0;
5761 BOOL is_security_manager_required = FALSE;
@@ -178,7 +182,8 @@
178182 //wcscat_s(utilities, BUFFER_SIZE, UTIL_EVENT_LOG_HANDLER);
179183
180184 // Display Splash Screen
181- if(get_resource(L"SPLASH_SCREEN_IMAGE", &res) != NULL)
185+ splash_screen_name = from_utf8((char*)get_resource(L"SPLASH_SCREEN_NAME", NULL));
186+ if(splash_screen_name != NULL)
182187 {
183188 if(is_add_dll_directory_supported)
184189 {
@@ -193,16 +198,25 @@
193198 if(splashscreendll != NULL)
194199 {
195200 SplashInit = (SplashInit_t)GetProcAddress(splashscreendll, "SplashInit");
196- if(SplashInit != NULL)
197- {
198- SplashLoadMemory = (SplashLoadMemory_t)GetProcAddress(splashscreendll, "SplashLoadMemory");
199- if(SplashLoadMemory != NULL)
200- {
201- SplashInit();
202- SplashLoadMemory(res.buf, res.len);
203- }
204- }
201+ SplashLoadMemory = (SplashLoadMemory_t)GetProcAddress(splashscreendll, "SplashLoadMemory");
202+ SplashLoadFile = (SplashLoadFile_t)GetProcAddress(splashscreendll, "SplashLoadFile");
205203 }
204+
205+ // SPLASH_SCREEN_NAME に格納されているファイル名がファイルシステム上に存在する場合はそれを SPLASH_SCREEN_IMAGE より優先して扱います。
206+ if(SplashInit != NULL && SplashLoadFile != NULL && GetFileAttributes(splash_screen_name) != INVALID_FILE_ATTRIBUTES)
207+ {
208+ char* filename = to_platform_encoding(splash_screen_name);
209+
210+ SplashInit();
211+ SplashLoadFile(filename);
212+
213+ free(filename);
214+ }
215+ else if(SplashInit != NULL && SplashLoadMemory != NULL && get_resource(L"SPLASH_SCREEN_IMAGE", &res) != NULL)
216+ {
217+ SplashInit();
218+ SplashLoadMemory(res.buf, res.len);
219+ }
206220 }
207221
208222 vm_args_opt = from_utf8((char*)get_resource(L"VMARGS", NULL));
@@ -314,11 +328,10 @@
314328 relative_extdirs = NULL;
315329 }
316330
317- if(get_resource(L"SPLASH_SCREEN_IMAGE", &res) != NULL)
331+ if(splash_screen_name != NULL && get_resource(L"SPLASH_SCREEN_IMAGE", &res) != NULL)
318332 {
319333 BYTE* splash_screen_image_buf = res.buf;
320334 DWORD splash_screen_image_len = res.len;
321- wchar_t* splash_screen_name = from_utf8((char*)get_resource(L"SPLASH_SCREEN_NAME", NULL));
322335
323336 // exewrapで実行ファイルを作成時にマニフェストファイルのSplash-Image:に指定されたファイルは
324337 // 実行ファイルのリソース SPLASH_SCREEN_NAME と SPLASH_SCREEN_IMAGE に配置され、
@@ -326,12 +339,12 @@
326339 // 実行ファイルの起動時にリソース SPLASH_SCREEN_NAME と SPLASH_SCREEN_IMAGE を Loader の resources に登録することでJavaコードからもリソースを参照できるようにます。
327340 // (JARから取り除かれたスプラッシュスクリーンのリソースがちゃんと参照できます。)
328341 set_splash_screen_resource(splash_screen_name, splash_screen_image_buf, splash_screen_image_len);
329-
330- if(splash_screen_name != NULL)
331- {
332- free(splash_screen_name);
333- }
334342 }
343+ if(splash_screen_name != NULL)
344+ {
345+ free(splash_screen_name);
346+ splash_screen_name = NULL;
347+ }
335348
336349 if(synchronize_mutex_handle != NULL)
337350 {
Show on old repository browser