internal static bool ReportFulfillment(MainWindow window, string itemid, int quantity = 1) { main = window; purchaseCallback = new PurchaseCallback(ReportFulFillmentCallback); var ret = ReportConsumableFulfillment(itemid, (uint)quantity, purchaseCallback); return(ret); }
internal static bool AddonPurchase(MainWindow window, string itemId) { main = window; purchaseCallback = new PurchaseCallback(AddonPurchaseCallback); var ret = RequestPurchaseAddon(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle, itemId, purchaseCallback); return(ret); }
internal static bool AppPurchase(MainWindow window) { main = window; purchaseCallback = new PurchaseCallback(AppPurchaseCallback); var ret = RequestPurchaseApp(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle, purchaseCallback); return(ret); }
static void AddonPurchaseCallback(bool result, string msg) { main.Dispatcher.Invoke(() => { main.Logs("=====Add-On Purchase================"); if (!result) { main.Logs("Error"); } main.Logs(msg); }); // Release delegate. // デリゲートの解放 var ds = purchaseCallback.GetInvocationList(); foreach (var d in ds) { purchaseCallback -= (PurchaseCallback)d; } }
static extern bool ReportConsumableFulfillment([MarshalAs(UnmanagedType.LPWStr)] string itemId, uint quantity, PurchaseCallback callback);
static extern bool RequestPurchaseAddon(IntPtr hwnd, [MarshalAs(UnmanagedType.LPWStr)] string itemId, PurchaseCallback callback);
static extern bool RequestPurchaseApp(IntPtr hwnd, PurchaseCallback callback);