The winrt::guid constructor that accepts a string calls abort() on failure instead of throwing an exception. This precludes the application from handling the error, e.g. to show a message to the user or fall back to default inputs. There is also no try_parse() function, so the guid parsing functionality of the library is limited to strings which are a priori known to be valid GUIDs.