I'm looking for some clarification as to how exactly the SendControlKeySync method works. My impression is that it sends the control key, then does an implicit WaitForHostSettle afterwards. However, I'm having issues getting this to work cleanly. On queries that take more than about a second to process, the method ends up returning almost immediately, even though the host is still processing. In my experience, this usually points to a timeout value that's too low, but I don't see anywhere to set a timeout value on the SendControlKeySync method. I know it relies on the ScreenSettleTime property, but I didn't see anything about the timeout value.

In any case, I've been able to work around it by using the regular SendControlKey and then doing an explicit WaitForHostSettle with a specific timeout and settle time, but I just wanted to make sure I wasn't missing something on the Sync version of the method.