internal static void OnRedeemEntitlements(IntPtr address) { OnRedeemEntitlementsCallback callback = null; RedeemEntitlementsCallbackInfo callbackInfo = null; if (Helper.TryGetAndRemoveCallback <OnRedeemEntitlementsCallback, RedeemEntitlementsCallbackInfoInternal, RedeemEntitlementsCallbackInfo>(address, out callback, out callbackInfo)) { callback(callbackInfo); } }
/// <summary> /// Requests that the provided entitlement be marked redeemed. This will cause that entitlement /// to no longer be returned from QueryEntitlements unless the include redeemed request flag is set true. /// </summary> /// <param name="options">structure containing entitlement to redeem</param> /// <param name="clientData">arbitrary data that is passed back to you in the CompletionDelegate</param> /// <param name="completionDelegate">a callback that is fired when the async operation completes, either successfully or in error</param> public void RedeemEntitlements(RedeemEntitlementsOptions options, object clientData, OnRedeemEntitlementsCallback completionDelegate) { var optionsInternal = Helper.CopyProperties <RedeemEntitlementsOptionsInternal>(options); var completionDelegateInternal = new OnRedeemEntitlementsCallbackInternal(OnRedeemEntitlements); var clientDataAddress = IntPtr.Zero; Helper.AddCallback(ref clientDataAddress, clientData, completionDelegate, completionDelegateInternal); EOS_Ecom_RedeemEntitlements(InnerHandle, ref optionsInternal, clientDataAddress, completionDelegateInternal); Helper.TryMarshalDispose(ref optionsInternal); }