Hm, I really don't think you will be able to do this. You can attach to the object model of the opened form, so I would suggest making an "invisible trigger field" with an OnAfterChange event attached to it. Then, from the calling form, change the value of this field (via the object model). This should trigger the OnAfterChange, and then you can call whatever function your button calls.
This is kind of hacky, but I think it should work. Please let us know how it works out!
Matt Faus / Microsoft InfoPath MVPQdabra® Software / Streamline data gathering to turn process into knowledge