public OperationGetIntCallbackWrapper(GnomeKeyring.OperationGetIntCallback managed)
 {
     this.managed = managed;
     if (managed != null)
     {
         NativeDelegate = new OperationGetIntCallbackNative(NativeCallback);
     }
 }
示例#2
0
文件: Global.cs 项目: MrJoe/lat
        public static IntPtr SetNetworkPassword(string user, string server, string protocol, uint port, string password, GnomeKeyring.OperationGetIntCallback cb)
        {
            IntPtr keyring_as_native  = GLib.Marshaller.StringToPtrGStrdup(null);
            IntPtr user_as_native     = GLib.Marshaller.StringToPtrGStrdup(user);
            IntPtr domain_as_native   = GLib.Marshaller.StringToPtrGStrdup(null);
            IntPtr server_as_native   = GLib.Marshaller.StringToPtrGStrdup(server);
            IntPtr objekt_as_native   = GLib.Marshaller.StringToPtrGStrdup(null);
            IntPtr protocol_as_native = GLib.Marshaller.StringToPtrGStrdup(protocol);
            IntPtr authtype_as_native = GLib.Marshaller.StringToPtrGStrdup(null);
            IntPtr password_as_native = GLib.Marshaller.StringToPtrGStrdup(password);

            GnomeKeyringSharp.OperationGetIntCallbackWrapper cb_wrapper;
            IntPtr data;

            GLib.DestroyNotify destroy_data;
            if (cb == null)
            {
                cb_wrapper   = null;
                data         = IntPtr.Zero;
                destroy_data = null;
            }
            else
            {
                cb_wrapper   = new GnomeKeyringSharp.OperationGetIntCallbackWrapper(cb);
                data         = (IntPtr)GCHandle.Alloc(cb_wrapper);
                destroy_data = GLib.DestroyHelper.NotifyHandler;
            }
            IntPtr raw_ret = gnome_keyring_set_network_password(keyring_as_native, user_as_native, domain_as_native, server_as_native, objekt_as_native, protocol_as_native, authtype_as_native, port, password_as_native, cb_wrapper.NativeDelegate, data, destroy_data);
            IntPtr ret     = raw_ret;

            GLib.Marshaller.Free(keyring_as_native);
            GLib.Marshaller.Free(user_as_native);
            GLib.Marshaller.Free(domain_as_native);
            GLib.Marshaller.Free(server_as_native);
            GLib.Marshaller.Free(objekt_as_native);
            GLib.Marshaller.Free(protocol_as_native);
            GLib.Marshaller.Free(authtype_as_native);
            GLib.Marshaller.Free(password_as_native);
            return(ret);
        }
 public OperationGetIntCallbackWrapper(GnomeKeyring.OperationGetIntCallback managed)
 {
     this.managed = managed;
     if (managed != null)
         NativeDelegate = new OperationGetIntCallbackNative (NativeCallback);
 }