public CompletionCallback(CompletionCallbackFunc callbackFunc, PPCompletionCallbackFlag flags = PPCompletionCallbackFlag.None) { this.compCallbackFunc = callbackFunc; // if no callbackfunc is specified then if (callbackFunc != null) { var ourCallback = new PPCompletionCallback(); ourCallback.func = OnCallBack; ourCallback.flags = (int)flags; GCHandle userHandle = GCHandle.Alloc(this, GCHandleType.Normal); ourCallback.user_data = (IntPtr)userHandle; Callback = ourCallback; } }
internal CompletionCallback(PPCompletionCallbackFunc callbackFunc, object userData = null, PPCompletionCallbackFlag flags = PPCompletionCallbackFlag.None) { this.callbackFunc = callbackFunc; // if no callbackfunc is specified then if (callbackFunc != null) { if (userData == null) { this.userData = IntPtr.Zero; } else { GCHandle userDataHandle = GCHandle.Alloc(userData, GCHandleType.Normal); this.userData = (IntPtr)userDataHandle; } var ourCallback = new PPCompletionCallback(); ourCallback.func = OnCallBack; ourCallback.flags = (int)PPCompletionCallbackFlag.None; GCHandle userHandle = GCHandle.Alloc(this, GCHandleType.Normal); ourCallback.user_data = (IntPtr)userHandle; Callback = ourCallback; } }