Adventures in application compatibility: The case of the wild instruction...
Application compatibility testing as well as Windows Insiders discovered that Windows began crashing randomly if you upgraded to a specific build and had a specific program installed. Uninstalling that...
View ArticleWhat does this mean? The caller specified wait timed out before the operation...
So your program is running along, minding its own business, and then it crashes with exception 0x80070bfe = “The caller specified wait timed out before the operation completed because a host...
View ArticleThe CertUtil program will decode Windows error codes, and in a variety of...
Some time ago, I noted that The NET HELPMSG command will decode Windows error codes, at least the simple ones. Stefan Kanthak pointed out that there’s another built-in program for converting numbers to...
View ArticleConverting between UTF-8 strings and UTF-16 strings in C++/WinRT
C++/WinRT provides a pair of functions for converting between UTF-8 strings (with code units represented as char) and UTF-16 strings (code units of wchar_t). The to_string function takes a...
View ArticleWhy is there trailing garbage when I try to decode the bytes of a HttpContent...
A customer was having trouble extracting text from an HTTP response. winrt::HttpRequest request = ...; auto result = co_await request.Content().ReadAsStringAsync(); This version produced a string that...
View ArticleThe case of the UWP application that crashes at launch on Windows 10X
Application compatibility testing for Windows 10X identified a program that crashed at launch. We were able to obtain a time travel trace for the application. Let’s do some application compatibility...
View ArticleWhy am I getting an unresolved external from C++/WinRT if it is a header-only...
A customer was getting unresolved external errors from their C++/WinRT code. How is that possible? C++/WinRT is a header-only library; there is no static library that needs to be linked in. I mean, the...
View ArticleThe subtleties of CreateStreamOnHGlobal, part 1: Introduction and basic usage
The CreateStreamOnHGlobal function lets you create a COM IStream that uses an HGLOBAL memory block as its backing store. It takes two input parameters: an optional HGLOBAL that represents the memory...
View ArticleThe subtleties of CreateStreamOnHGlobal, part 2: Suppressing the deletion...
Last time, we looked at the easy case of the CreateStreamOnHGlobal function, where you just hand an HGLOBAL to the stream and wipe your hands of it. The weird case is where you pass...
View ArticleThe subtleties of CreateStreamOnHGlobal, part 3: Suppressing the deletion...
Last time, we looked at what happens if you suppress the deletion of a HGLOBAL that the stream created on your behalf. This time, we’ll look at what happens if you provide an explicit initial HGLOBAL....
View Article
More Pages to Explore .....