28 #include <string> 29 #include <windows.h> 30 31 #include "ResourceEditor.h" 32 #include "WinErrorHandling.h" 33 #include "IconSwap.h" 34 #include "VersionInfoSwap.h" 35 #include "Utils.h" 36 37 using namespace std; 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 /* 44 * Class: jdk_jpackage_internal_WindowsAppImageBuilder 45 * Method: iconSwap 46 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 47 */ 48 JNIEXPORT jint JNICALL Java_jdk_jpackage_internal_WindowsAppImageBuilder_iconSwap( 49 JNIEnv *pEnv, jclass c, jstring jIconTarget, jstring jLauncher) { 50 wstring iconTarget = GetStringFromJString(pEnv, jIconTarget); 51 wstring launcher = GetStringFromJString(pEnv, jLauncher); 52 53 if (ChangeIcon(iconTarget, launcher)) { 54 return 0; 55 } 56 57 return 1; 58 } 59 60 /* 61 * Class: jdk_jpackage_internal_WindowsAppImageBuilder 62 * Method: versionSwap 63 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 64 */ 65 JNIEXPORT jint JNICALL Java_jdk_jpackage_internal_WindowsAppImageBuilder_versionSwap( 66 JNIEnv *pEnv, jclass c, jstring jExecutableProperties, jstring jLauncher) { 67 68 wstring executableProperties = GetStringFromJString(pEnv, jExecutableProperties); 69 wstring launcher = GetStringFromJString(pEnv, jLauncher); 70 71 VersionInfoSwap vs(executableProperties, launcher); 72 if (vs.PatchExecutable()) { 73 return 0; 74 } 75 76 return 1; 77 } 78 79 /* 80 * Class: jdk_jpackage_internal_WinExeBundler 81 * Method: embedMSI 82 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 83 */ 84 JNIEXPORT jint JNICALL Java_jdk_jpackage_internal_WinExeBundler_embedMSI( 85 JNIEnv *pEnv, jclass c, jstring jexePath, jstring jmsiPath) { 86 87 const wstring exePath = GetStringFromJString(pEnv, jexePath); 88 const wstring msiPath = GetStringFromJString(pEnv, jmsiPath); 89 90 JP_TRY; 91 92 ResourceEditor() 93 .id(L"msi") 94 .type(RT_RCDATA) 95 .apply(ResourceEditor::FileLock(exePath), msiPath); 96 97 return 0; 98 99 JP_CATCH_ALL; 100 101 return 1; 102 } 103 104 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { 105 return TRUE; 106 } 107 108 #ifdef __cplusplus 109 } 110 #endif | 28 #include <string> 29 #include <windows.h> 30 31 #include "ResourceEditor.h" 32 #include "WinErrorHandling.h" 33 #include "IconSwap.h" 34 #include "VersionInfoSwap.h" 35 #include "Utils.h" 36 37 using namespace std; 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 /* 44 * Class: jdk_jpackage_internal_WindowsAppImageBuilder 45 * Method: iconSwap 46 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 47 */ 48 JNIEXPORT jint JNICALL 49 Java_jdk_jpackage_internal_WindowsAppImageBuilder_iconSwap( 50 JNIEnv *pEnv, jclass c, jstring jIconTarget, jstring jLauncher) { 51 wstring iconTarget = GetStringFromJString(pEnv, jIconTarget); 52 wstring launcher = GetStringFromJString(pEnv, jLauncher); 53 54 if (ChangeIcon(iconTarget, launcher)) { 55 return 0; 56 } 57 58 return 1; 59 } 60 61 /* 62 * Class: jdk_jpackage_internal_WindowsAppImageBuilder 63 * Method: versionSwap 64 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 65 */ 66 JNIEXPORT jint JNICALL 67 Java_jdk_jpackage_internal_WindowsAppImageBuilder_versionSwap( 68 JNIEnv *pEnv, jclass c, jstring jExecutableProperties, 69 jstring jLauncher) { 70 71 wstring executableProperties = GetStringFromJString(pEnv, 72 jExecutableProperties); 73 wstring launcher = GetStringFromJString(pEnv, jLauncher); 74 75 VersionInfoSwap vs(executableProperties, launcher); 76 if (vs.PatchExecutable()) { 77 return 0; 78 } 79 80 return 1; 81 } 82 83 /* 84 * Class: jdk_jpackage_internal_WinExeBundler 85 * Method: embedMSI 86 * Signature: (Ljava/lang/String;Ljava/lang/String;)I 87 */ 88 JNIEXPORT jint JNICALL Java_jdk_jpackage_internal_WinExeBundler_embedMSI( 89 JNIEnv *pEnv, jclass c, jstring jexePath, jstring jmsiPath) { 90 91 const wstring exePath = GetStringFromJString(pEnv, jexePath); 92 const wstring msiPath = GetStringFromJString(pEnv, jmsiPath); 93 94 JP_TRY; 95 96 ResourceEditor() 97 .id(L"msi") 98 .type(RT_RCDATA) 99 .apply(ResourceEditor::FileLock(exePath), msiPath); 100 101 return 0; 102 103 JP_CATCH_ALL; 104 105 return 1; 106 } 107 108 BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, 109 LPVOID lpvReserved) { 110 return TRUE; 111 } 112 113 #ifdef __cplusplus 114 } 115 #endif |