diff --git a/src/main/java/com/cryptlex/lexactivator/LexActivator.java b/src/main/java/com/cryptlex/lexactivator/LexActivator.java
index caab6ff..b69f69f 100644
--- a/src/main/java/com/cryptlex/lexactivator/LexActivator.java
+++ b/src/main/java/com/cryptlex/lexactivator/LexActivator.java
@@ -2079,6 +2079,29 @@ public static void ResetActivationMeterAttributeUses(String name)
}
}
+ /**
+ * Migrates existing license data to system-wide storage. Call this function
+ * after SetProductData(). If you intend to use a custom data directory after
+ * migration, set it first using SetDataDirectory(). Note: The function
+ * does not support migration from custom data directories.
+ *
+ * @param oldPermissionFlag previous permission flag used
+ * @return LA_OK, LA_FAIL
+ * @throws LexActivatorException
+ */
+ public static int MigrateToSystemWideActivation(int oldPermissionFlag) throws LexActivatorException {
+ int status;
+ status = LexActivatorNative.MigrateToSystemWideActivation(oldPermissionFlag);
+ switch (status) {
+ case LA_OK:
+ return LA_OK;
+ case LA_FAIL:
+ return LA_FAIL;
+ default:
+ throw new LexActivatorException(status);
+ }
+ }
+
/**
* Resets the activation and trial data stored in the machine. This function is
* meant for developer testing only. Note: The function does not reset
diff --git a/src/main/java/com/cryptlex/lexactivator/LexActivatorNative.java b/src/main/java/com/cryptlex/lexactivator/LexActivatorNative.java
index 3a6bb58..7c8ee8d 100644
--- a/src/main/java/com/cryptlex/lexactivator/LexActivatorNative.java
+++ b/src/main/java/com/cryptlex/lexactivator/LexActivatorNative.java
@@ -305,5 +305,7 @@ public interface ReleaseUpdateCallbackTypeA extends Callback {
public static native int ResetActivationMeterAttributeUses(WString name);
+ public static native int MigrateToSystemWideActivation(int oldPermissionFlag);
+
public static native int Reset();
}