Been tearing my hair out over this issue. It appears that Silk does not check to see if a dialog is disposed before attempting to query properties. The result is UGLY.

In my case, a WinForm app displays a 'status' window (no caption, static text and cancel button, tagged "[SwfDialogBox]$WaitDialog") while importing/export/etc. Sometimes this dialog will open and close very quickly for short operations. My routine waits for this dialog to dismiss before carrying on. Would get this critical messagebox randomly:
</font><blockquote><font size="1" face="Verdana, Arial, Helvetica">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> Cannot access a disposed object &quot;WaitDialog&quot;.
Object name: &quot;WaitDialog&quot;.</pre><hr /></blockquote><font size="2" face="Verdana, Arial, Helvetica">Note that this is displayed by the main application! At first thought it was a bug, but realized it was Silk causing this error. IMO, Silk should be checking to see if an object is disposing or disposed BEFORE accessing any properties or methods.

I do have a fix:
</font><blockquote><font size="1" face="Verdana, Arial, Helvetica">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">winclass cSwfDialogBox : SwfDialogBox
// all objects in .Net have these
property Boolean bDisposing alias &quot;Disposing&quot;
property Boolean bIsDisposed alias &quot;IsDisposed&quot;
obj Boolean get_Disposing ( )
obj Boolean get_IsDisposed ( )

// overridden method to check the GC
BOOLEAN Exists(NUMBER nTimeout optional)
if derived :: Exists(nTimeout)
if !this.IsDisposed()

// returns TRUE if disposed or disposing
boolean IsDisposed()
if !this.Exists()
if this.get_IsDisposed()
if this.get_Disposing()
return(false)</pre><hr /></blockquote><font size="2" face="Verdana, Arial, Helvetica">Nice to be charged $1500 for DotNet support. [img]images/icons/wink.gif[/img]

David P. Brown
Kofax Image Products