Example #1
0
        // Register CB function that takes a C# object as userdata
        public void RegisterRemovalCB(RemovalCbFunc cb, object data)
        {
            // Free existing GCHandle (if exists)
            if (hRemUserData.IsAllocated && hRemUserData.Target != null)
            {
                hRemUserData.Free();
            }

            // Convert object to pointer
            hRemUserData = GCHandle.Alloc(data);

            // Apply the user-defined CB function
            UserRemCB = new RemovalCbFunc(cb);
            wrf       = new WrapRemovalCbFunc(WrapperRemCB);

            _RegisterRemovalCB(wrf, (IntPtr)hRemUserData);
        }
Example #2
0
 // Register CB function that takes a pointer as userdata
 public void RegisterRemovalCB(WrapRemovalCbFunc cb, IntPtr data)
 {
     wrf = new WrapRemovalCbFunc(cb);
     _RegisterRemovalCB(wrf, data);
 }
Example #3
0
 private extern static void _RegisterRemovalCB(WrapRemovalCbFunc cb, IntPtr data);
Example #4
0
 // Register CB function that takes a pointer as userdata
 public void RegisterRemovalCB(WrapRemovalCbFunc cb, IntPtr data)
 {
     wrf = new WrapRemovalCbFunc(cb);
     _RegisterRemovalCB(wrf, data);
 }
Example #5
0
        // Register CB function that takes a C# object as userdata
        public void RegisterRemovalCB(RemovalCbFunc cb, object data)
        {
            // Free existing GCHandle (if exists)
            if (hRemUserData.IsAllocated && hRemUserData.Target != null)
                hRemUserData.Free();

            // Convert object to pointer
            hRemUserData = GCHandle.Alloc(data);

            // Apply the user-defined CB function          
            UserRemCB = new RemovalCbFunc(cb);
            wrf = new WrapRemovalCbFunc(WrapperRemCB);

            _RegisterRemovalCB(wrf, (IntPtr)hRemUserData);
        }
Example #6
0
 private extern static void _RegisterRemovalCB(WrapRemovalCbFunc cb, IntPtr data);