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
