The UI Automation COM-to-.NET Adapter makes it possible to use the new Windows Automation API 3.0 COM interfaces, with their improved reliability and performance, while still using the same System.Windows.Automation classes as in earlier versions of UI Automation.
This project makes it easier to re-use existing UI Automation managed applications, which use System.Windows.Automation classes, while also using the new UI Automation COM API available on Windows 7. This is an instance of the Adapter
design pattern, wrapping one interface in terms of another to avoid having to change the usage pattern of existing code.
The System.Windows.Automation classes are documented under the UI Automation Community Promise
. This implementation of those classes relies on the open specification. The implementation is as complete as possible, although some elements of the System.Windows.Automation namespace cannot be implemented in terms of the UI Automation COM API.
Please see the Documentation tab for more details.
If you are looking to try this out, skip to Using with a Real Project
to see how to do it.
The project is a reasonably complete implementation of the System.Windows.Automation classes. The client-side-provider classes are omitted, since they are relatively difficult to translate into the way that the COM API does it.
The next step is to validate the implementation with a real UI Automation client to make sure that the end-to-end scenarios work as expected. The current code passes its unit test, but has not been used in a real-world way yet.