On Fri Nov 28 18:03:04 2025 +0000, Paul Gofman wrote:
But those are not copied, they are different between modules. Then, they don't implement specific class IAsyncOperation_SpatialPerceptionAccessStatus, they won't work as is and would be different anyway. Then, they are more complicated and implement real async, they will also require extra code at usage. So, until we have some common winrt support library which could be updated as needed instead of copy-pasting and diverging, I thought this simple class is way better? FWIW I already did the same recently in 84cd975748b8609feb19d9083f6486ebf0720461. I actually looked a bit to approach instead a generic helper for complete-at-once async which at the same time wouldn't be specific to types which can be just copied. But concluded so far that adding this here is a bit too weird for a little benefit. Needs a helper idl for providing generic IAsyncOperation_; that doesn't work for 'void *' template parameter; could use UINT32 to make it more generic wrapping specified IID for specific async but yet again didn't see much use in generalization while I am using that in one place in this dll and it is not shared for others (so, e. g., I could at once reuse for what 84cd975748b8609feb19d9083f6486ebf0720461 does).
TL; DR; copying and reusing existing async.c (which are more complicated) will add dead code for more generic async handling and will immediately diverge from other copies anyway.