Laurent, The work-around is working fine. Here is my working code.
[ObjectiveCMessage("openUntitledDocumentAndDisplay:error:")] public Id OpenUntitledDocumentAndDisplayErrorNew(bool displayDocument, IntPtr outError) { // The outError parameter points to a native memory zone that waits for a NSError pointer // Error will be initialized by the MakeUntitledDocumentOfTypeError call NSError error = null; Id oDocId = this.MakeUntitledDocumentOfTypeError("DocumentType", out error); if (oDocId != null) { this.AddDocument(oDocId.CastTo<NSDocument>()); if (displayDocument) { oDocId.CastTo<NSDocument>().MakeWindowControllers(); oDocId.CastTo<NSDocument>().ShowWindows(); } } // Marshal back the pointer to Objective-C Marshal.WriteIntPtr(outError, error.NativePointer); return oDocId; } Regards, Ben Martin TruStorm Software http://www.trustorm.com.au<http://www.trustorm.com.au/> 0407 256 072 ________________________________ From: [EMAIL PROTECTED] [EMAIL PROTECTED] On Behalf Of Laurent Etiemble [EMAIL PROTECTED] Sent: Saturday, 16 August 2008 11:38 PM To: users@lists.monobjc.net Subject: Re: [EMAIL PROTECTED] NSDocumentController Hello, I have not forgotten your problem, but after some analysis, the problem seems serious enough to need a big patch in the proxy generator. Meanwhile, you can try the following untested work-around (I have put bold to emphasis): [ObjectiveCMessage("openUntitledDocumentAndDisplay:error:")] public override Id OpenUntitledDocumentAndDisplayError(bool displayDocument, IntPtr outError) { // The outError parameter points to a native memory zone that waits for a NSError pointer // Error will be initialized by the MakeUntitledDocumentOfTypeError call NSError error = null; Id oDocId = this.MakeUntitledDocumentOfTypeError("hpf", out outError); this.NewDocument (oDocId); if (displayDocument) { oDocId.CastTo<NSDocument>().MakeWindowControllers(); oDocId.CastTo<NSDocument>().ShowWindows(); } // Marshal back the pointer to Objective-C Marshal.WriteIntPtr(outError, error.NativePointer); return oDocId; } Tell me if it solves your problem, while I am trying to get things fixed in the bridge. Regards, Laurent Etiemble 2008/8/8 Laurent Etiemble <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>> Hello, The unmarshalling of the NSError seems to be problematic (it has a 'out' keyword). I will take a look at this. Regards, Laurent Etiemble. 2008/8/8 Ben Martin <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>>: > I trying to override OpenUntitledDocumentAndDisplayError but I am get the a > exception when the method is called i.e it does not enter my method. > > Unhandled Exception: System.Reflection.TargetInvocationException: Exception > has been thrown by the target of an invocation. ---> > System.InvalidProgramException: Invalid IL code in > Monobjc.Dynamic.Proxies.Mac.BaseDocumentController:OpenUntitledDocumentAndDisplayError_System_Boolean_Monobjc_Cocoa_NSError& > (intptr,intptr,bool,intptr): IL_000f: call 0x0a0001ec at (wrapper > native-to-managed) > Monobjc.Dynamic.Proxies.Mac.BaseDocumentController:OpenUntitledDocumentAndDisplayError_System_Boolean_Monobjc_Cocoa_NSError& > (intptr,intptr,bool,intptr) > at (wrapper managed-to-native) Monobjc.Dynamic.Messaging.OBJC_MSGSEND > [System_Void]():objc_msgSend (intptr,intptr) > at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke > (object,object[]) > at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags > invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, > System.Globalization.CultureInfo culture) [0x00000] --- End of inner > exception stack trace --- > > > The code: > > [ObjectiveCMessage("openUntitledDocumentAndDisplay:error:")] > public override Id OpenUntitledDocumentAndDisplayError(bool > displayDocument, out NSError outError) > { > Id oDocId = this.MakeUntitledDocumentOfTypeError("hpf", out > outError); > this.NewDocument (oDocId); > > if (displayDocument) > { > oDocId.CastTo<NSDocument>().MakeWindowControllers(); > oDocId.CastTo<NSDocument>().ShowWindows(); > } > return oDocId; > } > > Regards, > > Ben Martin > > TruStorm Software > http://www.trustorm.com.au > 0407 256 072 > ________________________________________ > From: Ben Martin [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>] > Sent: Monday, 4 August 2008 10:45 AM > To: users@lists.monobjc.net<mailto:users@lists.monobjc.net> > Subject: RE: [EMAIL PROTECTED]<mailto:users@lists.monobjc.net>] > NSDocumentController > > Hi Laurent, > > Thank you, the information helped. > > Regards, > > Ben Martin > > TruStorm Software > http://www.trustorm.com.au > 0407 256 072 > ________________________________________ > From: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> [EMAIL > PROTECTED]<mailto:[EMAIL PROTECTED]>] On Behalf Of Laurent Etiemble [EMAIL > PROTECTED]<mailto:[EMAIL PROTECTED]>] > Sent: Wednesday, 30 July 2008 5:38 PM > To: users@lists.monobjc.net<mailto:users@lists.monobjc.net> > Subject: Re: [EMAIL PROTECTED]<mailto:users@lists.monobjc.net>] > NSDocumentController > > Hello, > > There is no such example in the Monobjc sample, but I am sure that you > can find an example in Objective-C and port it to .NET. Be careful > when overriding methods and calling super implementation (use Monobjc > documentation to learn about it) > > Here are some useful links: > - > http://developer.apple.com/documentation/Cocoa/Conceptual/Documents/Tasks/SubclassController.html > - http://www.monobjc.net/index.php?page=exposing-net-class > - http://www.monobjc.net/index.php?page=messaging > > Regards, Laurent Etiemble. > > 2008/7/30 Ben Martin <[EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]>>: >> Hi, >> >> Is there any examples using a subclassed NSDocumentController with Monobjc? >> >> >> >> Regards, >> >> >> >> Ben Martin >> >> >> >> TruStorm Software >> >> http://www.trustorm.com.au >> >> 0407 256 072 >