Exemplo n.º 1
0
        public bool RegisterUriScheme(string scheme, GLib.VfsFileLookupFunc uri_func, GLib.DestroyNotify uri_destroy, GLib.VfsFileLookupFunc parse_name_func)
        {
            IntPtr native_scheme = GLib.Marshaller.StringToPtrGStrdup(scheme);

            GLibSharp.VfsFileLookupFuncWrapper uri_func_wrapper        = new GLibSharp.VfsFileLookupFuncWrapper(uri_func);
            GLibSharp.VfsFileLookupFuncWrapper parse_name_func_wrapper = new GLibSharp.VfsFileLookupFuncWrapper(parse_name_func);
            IntPtr parse_name_data;

            GLib.DestroyNotify parse_name_destroy;
            if (parse_name_func == null)
            {
                parse_name_data    = IntPtr.Zero;
                parse_name_destroy = null;
            }
            else
            {
                parse_name_data    = (IntPtr)GCHandle.Alloc(parse_name_func_wrapper);
                parse_name_destroy = GLib.DestroyHelper.NotifyHandler;
            }
            bool raw_ret = g_vfs_register_uri_scheme(Handle, native_scheme, uri_func_wrapper.NativeDelegate, IntPtr.Zero, uri_destroy, parse_name_func_wrapper.NativeDelegate, parse_name_data, parse_name_destroy);
            bool ret     = raw_ret;

            GLib.Marshaller.Free(native_scheme);
            return(ret);
        }
Exemplo n.º 2
0
 public VfsFileLookupFuncWrapper(GLib.VfsFileLookupFunc managed)
 {
     this.managed = managed;
     if (managed != null)
     {
         NativeDelegate = new VfsFileLookupFuncNative(NativeCallback);
     }
 }