static int Convert_cb(IntPtr inst, IntPtr inbuf, UIntPtr inbuf_size, IntPtr outbuf, UIntPtr outbuf_size, int flags, out UIntPtr bytes_read, out UIntPtr bytes_written, out IntPtr error)
        {
            error = IntPtr.Zero;

            try {
                IConverterImplementor __obj = GLib.Object.GetObject(inst, false) as IConverterImplementor;
                GLib.ConverterResult  __result;
                ulong mybytes_read;
                ulong mybytes_written;
                __result      = __obj.Convert(inbuf, (ulong)inbuf_size, outbuf, (ulong)outbuf_size, (GLib.ConverterFlags)flags, out mybytes_read, out mybytes_written);
                bytes_read    = new UIntPtr(mybytes_read);
                bytes_written = new UIntPtr(mybytes_written);
                return((int)__result);
            } catch (Exception e) {
                GLib.ExceptionManager.RaiseUnhandledException(e, true);
                // NOTREACHED: above call does not return.
                throw e;
            }
        }