Tag
Raymond Chen 的 The Old New Thing 博文,讲解 C++/WinRT 中创建自实现对象时 make 与 make_self 的区别,建议在无需访问实现类成员时直接使用 make 以避免不必要的间接转换。
Raymond Chen 解释了如何重新理解 C++/WinRT 实现类型中的 C++ 访问限定符:由于实现类型只对生成它们的模块可见,public 对应实现的接口成员、protected 用于派生类、private 仅限本类,并说明了 IDL 编译器自动生成 WidgetT 模板的机制。
Raymond Chen continues his series on building an agile Windows Runtime delegate in C++/WinRT, comparing how C++/WinRT, C++/CX, and WRL handle non-marshalable delegates and agile reference creation.
The article discusses a fix for exception safety in C++/WinRT when creating an agile delegate, addressing the issue of unspecified lambda capture construction order to prevent reference leaks.
Part 6 of a series on creating an agile Windows Runtime delegate in C++/WinRT, fixing a potential exception issue with std::unique_ptr's custom deleter constructor.
This article continues a series on implementing agile delegates in C++/WinRT, addressing the issue of destructing non-agile delegates in the correct context using a custom deleter and IContextCallback.
This article discusses implementing an agile Windows Runtime delegate in C++/WinRT, focusing on using CoGetContextToken to compare context tokens for efficiency instead of comparing COM objects.
This blog post discusses handling Windows Runtime delegates that implement the INoMarshal interface in C++/WinRT, providing an agile delegate wrapper that checks the calling context to avoid marshaling errors.
This article explains how to create an agile version of a Windows Runtime delegate in C++/WinRT by wrapping the delegate in an agile_ref, with a promise of more details in part 2.
This article explains why cancellation of Windows Runtime asynchronous activities is asynchronous, using code examples to illustrate how it avoids deadlocks, especially when progress callbacks trigger cancellation.
The article discusses a C++/WinRT pattern for caching the result of a Windows Runtime IAsyncOperation, including handling failures, so that multiple coroutines can share the cached result or exception.
Raymond Chen explains why C++/WinRT does not allow multiple awaits on asynchronous operations like C#, JavaScript, and Python do, citing the lack of a standard library task type and the principle of not paying for unused functionality.
This article explains how to use Win32 structures in the Windows Runtime by declaring shadow structures with the same layout, including specific examples and alternatives for common structures.