![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Apartment switching: COM without COM
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Apartment switching: Unwinding the stack
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Apartment switching: Bypassing the context callback
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Apartment switching: Unblocking the outgoing thread
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Apartment switching: The basic idea
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Inside C++/WinRT: Coroutine completions: The oversimplified version
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
How can I call a method on a derived class from a base class, say, to get a strong reference to the containing object?
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Windows Runtime asynchronous operations can fail in two different ways, so make sure you get them both
![](https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)