Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by [EMAIL PROTECTED]

http://bugzilla.ximian.com/show_bug.cgi?id=79312

--- shadow/79312        2006-09-07 21:07:15.000000000 -0400
+++ shadow/79312.tmp.25334      2006-09-07 23:09:53.000000000 -0400
@@ -384,6 +384,35 @@
 No. Struct (composite) return values are always marshaled as
 defined by the ABI.
 
 
 ------- Additional Comments From [EMAIL PROTECTED]  2006-09-07 21:07 -------
 Thanks, Robert, for clearing all this up.
+
+------- Additional Comments From [EMAIL PROTECTED]  2006-09-07 23:09 -------
+> I would really like to avoid that, since I'm wrapping many Carbon 
+> functions, and would like to maintain type safety. 
+
+There are three solutions to provide type safety instead of using IntPtr.
+
+1. Copy the IntPtr into another structure, as suggested by Robert Jordan.
+
+2. Use unsafe code + pointers:
+
+struct EventLoop {};
+struct HI {
+  [DllImport (...)]
+  public static unsafe EventLoop* GetCurrentEventLoop();
+}
+
+The downside is that this is not CLS compliant.
+
+3. If you can target .NET 2.0 APIs, you can eventually use SafeHandles.
+
+class EventLoopHandle : SafeHandle {...}
+struct HI {
+  [DllImport (...)]
+  public static extern EventLoopHandle GetCurrentEventLoop ();
+}
+
+The downside is that Mono doesn't currently support this feature, but
+it should eventually (and perhaps you can help implement it if desired ;-)
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to