void InvokeNative(Gnome.Vfs.DNSSDResolveHandle handle, Gnome.Vfs.Result result, Gnome.Vfs.DNSSDService service, string host, int port, System.IntPtr text, int text_raw_len, string text_raw) { IntPtr native_service = GLib.Marshaller.StructureToPtrAlloc(service); IntPtr native_host = GLib.Marshaller.StringToPtrGStrdup(host); IntPtr native_text_raw = GLib.Marshaller.StringToPtrGStrdup(text_raw); native_cb(handle == null ? IntPtr.Zero : handle.Handle, (int)result, native_service, native_host, port, text, text_raw_len, native_text_raw, __data); service = Gnome.Vfs.DNSSDService.New(native_service); Marshal.FreeHGlobal(native_service); GLib.Marshaller.Free(native_host); GLib.Marshaller.Free(native_text_raw); }
void InvokeNative(Gnome.Vfs.DNSSDBrowseHandle handle, Gnome.Vfs.DNSSDServiceStatus status, Gnome.Vfs.DNSSDService service) { IntPtr native_service = GLib.Marshaller.StructureToPtrAlloc(service); native_cb(handle == null ? IntPtr.Zero : handle.Handle, (int)status, native_service, __data); service = Gnome.Vfs.DNSSDService.New(native_service); Marshal.FreeHGlobal(native_service); }