Now that we've seen what OLE Automation and the IDispatch interface are all about, we can look at a number of practical design considerations involving this technology. After we discuss performance, we'll describe Automation-compatible interfaces, which restrict the types of data structures you can pass through a dispinterface. This leads to various indirect means of exchanging data structures. We'll then look at the choices you have between dispinterfaces and custom interfaces and take a brief look at what IDispatch means for outgoing interfaces and event sets.