Today it's only possible to declare Windows Runtime (IInspectable derived) interfaces in a Windows Metadata file. While Win32Metadata exists, it's just not the same. Certain interop interfaces are declared in SDK headers since they use raw pointers but that means they won't be projected by language projections in a natural way. This means projected languages that support raw pointers can directly expose them if the interface has methods that return or take in pointers.
Essentially I want to do something like this from MIDL 3.0.
And access it from C++/WinRT just like any other projected interface just by referencing the WinMD file (no com_ptr needed). The same should work with other projections. If a language doesn't support raw pointers, either it could be made available in some other way or hidden from user code.
Today it's only possible to declare Windows Runtime (IInspectable derived) interfaces in a Windows Metadata file. While Win32Metadata exists, it's just not the same. Certain interop interfaces are declared in SDK headers since they use raw pointers but that means they won't be projected by language projections in a natural way. This means projected languages that support raw pointers can directly expose them if the interface has methods that return or take in pointers.
Essentially I want to do something like this from MIDL 3.0.
And access it from C++/WinRT just like any other projected interface just by referencing the WinMD file (no com_ptr needed). The same should work with other projections. If a language doesn't support raw pointers, either it could be made available in some other way or hidden from user code.