Ryan,
On my website is an example of how to use an interface object as a means of communication with a form. It's under Q&A, Forms, Article qFRM001
>Good point. I was wondering if I was missing something. Here's a question, then. If the goal is to use a modal form and allow the user to choose some parameters and then pass them back to the calling routine upon closing, does CREATEOBJECT not handle this gracefully? In other words, would DO FORM be more appropriate, or can any return values from a form be read from a calling routine? If the return values can be read from the calling routine, how would this be done? Createobject seems great when you have one routine that starts and shuts down the object programmatically, but what would you do for the 'mixed' scenario you describe in which a routine starts an object, but something on the object itself closes it?