diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.dll
index e70570afa..cd32f5924 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
index 1fa35ceac..1330d4afb 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.dll
index b7a23dbb8..91b731c8a 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
index 12a8de124..3ec3bf415 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.dll
index af70049f0..661b603cb 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
index 6dcb9b9bd..a6672a0fe 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.dll
index 9dabac27d..410c2ca87 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
index e97d295dd..686535059 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.dll
index 22aac98cf..7f8530a07 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
index fa9a0361d..61a87865f 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.dll
index 6584f5799..7f0c748e1 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd
index 885759693..626d4a166 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.dll
index 66b1efd88..b89b99675 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
index 5fc5dd99b..7dc39cedd 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.dll b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.dll
index 35a4e4e9f..dbf0e5ff9 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.dll and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.dll differ
diff --git a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd
index 28ec69100..cc0b45d34 100644
Binary files a/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd and b/build/staging/app-sdk/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd differ
diff --git a/build/staging/app-sdk/Arm64EC/mididiag.exe b/build/staging/app-sdk/Arm64EC/mididiag.exe
index 15c86c532..321cbebfa 100644
Binary files a/build/staging/app-sdk/Arm64EC/mididiag.exe and b/build/staging/app-sdk/Arm64EC/mididiag.exe differ
diff --git a/build/staging/version/BundleInfo.wxi b/build/staging/version/BundleInfo.wxi
index c438fa0c5..e50981ccd 100644
--- a/build/staging/version/BundleInfo.wxi
+++ b/build/staging/version/BundleInfo.wxi
@@ -1,4 +1,4 @@
-
+
diff --git a/docs/developer-how-to/how-to-check-for-windows-midi-services.md b/docs/developer-how-to/how-to-check-for-windows-midi-services.md
index 17c1804bc..04c9b9a3b 100644
--- a/docs/developer-how-to/how-to-check-for-windows-midi-services.md
+++ b/docs/developer-how-to/how-to-check-for-windows-midi-services.md
@@ -46,11 +46,11 @@ else
### How this works
-The Windows Service is triggered to start via a specific call, which triggers an ETL event. The ETL event is what the service watches for to spin up. Typically, this takes only a second or two to happen.
+The Windows Service is triggered to start via `EnsureServiceAvailable()`, which calls the service interface and triggers an ETL event. The ETL event is what the service watches for to spin up. Typically, this takes only a second or two to happen.
-Once the service is started, all the devices it is responsible for begin to be enumerated.
+Once the service hass started, all the devices it is responsible for begin to be enumerated. It will remain running until manually shut down or the PC is rebooted.
-Once the service is demand-started, it remains running until manually shut down or the next reboot.
+> Musicians may want to set the service to auto-start with Windows. It adds a little bit of time to Windows startup, but the devices will be available when needed.
## Bootstrap the Windows MIDI Services SDK runtime (Desktop apps only)
@@ -58,17 +58,16 @@ For desktop apps, other than the initializer, the rest of the SDK is installed c
Because the SDK is shipped out-of-band from Windows itself, and is restricted to specific versions of Windows and devices (no current support on Xbox and Hololens, for example) the SDK must be bootstrapped/initialized so the application can find the WinRT types contained within.
-Internally, the initializer uses a combination of Registration-free WinRT and the Detours library to hook into type resolution. To support the use of the initializer, the application must include a manifest file, named `AppName.exe.manifest` where "AppName" is the name of the executable.
+Internally, the initializer uses a combination of Registration-free WinRT and the Detours library to hook into type resolution and activation. To support the use of the initializer, the application must include an entry in the application manifest file, named `AppName.exe.manifest` where "AppName" is the name of the executable.
Manifest contents:
```xml
-
+
-
-
+
```
@@ -89,18 +88,17 @@ In addition to the manifest, the application must include the `Microsoft.Windows
If the runtime is not present, but the service is present, the application can either prompt the user to download and install the runtime. That is an application-specific decision.
```cpp
-auto uri = (MidiServicesInitializer::GetLatestRuntimeReleaseInstallerUri())
+auto uri = MidiServicesInitializer::GetLatestRuntimeReleaseInstallerUri();
```
-> Your desktop application installer can also include code to download and install the latest Windows MIDI Services runtime, rather than doing this after the application has already started.
+> Your desktop application's installer can also include code to download and install the latest Windows MIDI Services runtime, rather than doing this after the application has already started.
## Use the SDK from packaged (Store etc.) apps
-If the app is packaged using MSIX, the bootstrapper is not used. Instead, the app must declare all Windows MIDI Services WinRT types in its manifest. It must also declare a dependency on ... TODO
-
-
-## Sample Code
+If the app is packaged using MSIX, the bootstrapper is not used. Instead, the app must declare all Windows MIDI Services WinRT types in its manifest. It must also declare a dependency on ...
TODO
+## Sample Code
+The existing samples are in the process of being updated with this new bootstrapping code.
diff --git a/docs/developer-how-to/how-to-create-loopback-endpoints.md b/docs/developer-how-to/how-to-create-loopback-endpoints.md
index 1124cb806..7df37b0bf 100644
--- a/docs/developer-how-to/how-to-create-loopback-endpoints.md
+++ b/docs/developer-how-to/how-to-create-loopback-endpoints.md
@@ -1,17 +1,12 @@
---
layout: page
-title: Create Loopback Endpoints= Pairs
+title: Create Loopback Endpoint Pairs
parent: Developer How-to
has_children: false
---
# How to create simple Loopback Endpoint Pairs at runtime
-## How the Loopback Endpoint Pair works
-
-
-## How to create a Loopback Endpoint Pair
-
We'll assume here you've already initialized Windows MIDI Services and created a session.
First, you define the two sides of the loopback. Because UMP endpoints are bidirectional, the loopback works from either direction: Messages set out on A arrive in on B, and those sent out on B arrive in on A.
@@ -31,7 +26,7 @@ definitionB.Description = L"The second description is optional, but is displayed
definitionB.UniqueId = L"3263827-OU812-5150"; // can be the same as the first one, but doesn't need to be.
```
-Next, create the transient (meaning they are not in the config file and recreated after a reboot) loopback endpoint pair using the above definitions
+Next, create the transient (meaning they are not in the config file and therefore are not recreated after a reboot) loopback endpoint pair using the above definitions
```cpp
MidiLoopbackEndpointCreationConfig creationConfig(m_associationId, definitionA, definitionB);
@@ -40,7 +35,7 @@ auto response = MidiLoopbackEndpointManager::CreateTransientLoopbackEndpoints(cr
if (response.Success)
{
- std::wcout << L"Endpoints created successfully" << std::endl << std::endl;
+ std::cout << "Endpoints created successfully" << std::endl << std::endl;
std::cout
<< "Loopback Endpoint A: " << std::endl
@@ -60,18 +55,15 @@ else
// failed to create the loopback pair. It may be that the unique
// Ids are already in use.
}
-
```
-One thing you may have noticed in the listing above is the use of an association Id. This identifier is just a GUID you generate to associate the endpoint pairs together. This is what establishes the relationship between them.
+One thing you may have noticed in the listing above is the use of an **association Id**. This identifier is a GUID you generate and then use to associate the endpoint pairs together. This is what establishes the relationship between the two endpoints.
```cpp
winrt::guid m_associationId = winrt::Windows::Foundation::GuidHelper::CreateNewGuid();
```
-That's all that's needed. You can connect to either endpoint and use it as you would any other.
-
-> Note: Loopback Endpoint Pairs are not currently visible to the WinMM MIDI 1.0 API. There are complexities with that API when devices are added and removed at runtime. It's possible these devices will never be visibile to WinMM MIDI 1.0. For full functionality, we recommend using the new Windows MIDI Services SDK.
+That's all that's needed. You can connect to and open either endpoint and use it as you would any other.
## Sample Code
diff --git a/docs/developer-how-to/how-to-create-virtual-ump-device.md b/docs/developer-how-to/how-to-create-virtual-ump-device.md
index 3f4ed28ec..5b83129bf 100644
--- a/docs/developer-how-to/how-to-create-virtual-ump-device.md
+++ b/docs/developer-how-to/how-to-create-virtual-ump-device.md
@@ -5,35 +5,145 @@ parent: Developer How-to
has_children: false
---
-# How to Create Virtual UMP Devices at Runtime
+# How to Create Virtual Devices at Runtime
If you develop an application which should appear as a new MIDI device to other applications on Windows, you want to create a Virtual UMP Device. Your app may be a controller app, a sound generator/synthesizer, or a bridge to accessibility or other controllers. Anything a hardware MIDI device can do is open to you here.
+## How Virtual Devices work
+
+A virtual device enables an application to appear as a UMP Endpoint to other applications.
+
+[More information on how Virtual Devices work may be found here](../endpoints/virtual-device-app.md).
+
## Steps to Create a Virtual Device
-1. Create a MIDI session
-2. Define the Virtual MIDI Device, its function blocks, and other properties
-3. Create the Device and get the `EndpointDeviceId` for the device application
-4. Connect to the Device like any other MIDI connection
-5. Wire up event handlers for message received and optionally for protocol negotiation
-6. Open the connection
-7. Respond to any protocol negotiation or message received events
-8. When the application no longer needs to expose the virtual device, close the connection.
+1. [Check for and bootstrap Windows MIDI Services](./how-to-check-for-windows-midi-services.md)
+2. Create a MIDI session
+3. Define the Virtual MIDI Device, its function blocks, and other properties
+4. Create the Device and get the `EndpointDeviceId` for the device-side application endpoint
+5. Connect to the Device like any other MIDI connection
+6. Wire up event handlers for message received and optionally for stream configuration
+7. Open the connection
+8. Respond to any protocol negotiation or message received events
+9. When the application no longer needs to expose the virtual device, close the connection.
On the service-side, the Virtual Device works like any other native UMP MIDI 2.0 device, including for endpoint metadata capture and protocol negotiation.
-More details available in the Endpoints documentation.
+## Code
-### Example
+We'll assume you've already performed the [Windows MIDI Services bootstrapping steps](./how-to-check-for-windows-midi-services.md).
-TODO
+The first step is to define the virtual device by creating the different metadata declarations and then assemble them together using the `MidiVirtualDeviceCreationConfig` type.
+This information is all required so that the virtual device responder can handle the MIDI 2.0 endpoint discovery and protocol negotiation messages on your behalf. This removes the complexity of message parsing and (in the case of names and ids) message assembly.
+> When creating the device's software device id (SWD) only the first 32 characters of the `ProductInstanceId` are used. This must be unique among all **virtual UMP devices** currently running in Windows MIDI Services, or else the device creation will fail. One recommendation for uniqueness is to use a GUID with all non-alphanumeric characters removed. Another would be to use the app name and an internal index or differentiator.
+```cpp
+// endpoint information returned from endpoint discovery
+midi2::MidiDeclaredEndpointInfo declaredEndpointInfo{ };
+declaredEndpointInfo.Name = endpointSuppliedName;
+declaredEndpointInfo.ProductInstanceId = L"PMB_APP2_3263827"; // must be unique
+declaredEndpointInfo.SpecificationVersionMajor = 1; // see latest MIDI 2 UMP spec
+declaredEndpointInfo.SpecificationVersionMinor = 1; // see latest MIDI 2 UMP spec
+declaredEndpointInfo.SupportsMidi10Protocol = true;
+declaredEndpointInfo.SupportsMidi20Protocol = true;
+declaredEndpointInfo.SupportsReceivingJitterReductionTimestamps = false;
+declaredEndpointInfo.SupportsSendingJitterReductionTimestamps = false;
+declaredEndpointInfo.HasStaticFunctionBlocks = true;
-## Sample Code
+midi2::MidiDeclaredDeviceIdentity declaredDeviceIdentity{ };
+// todo: set any device identity values if you want. This is optional
+
+midi2::MidiEndpointUserSuppliedInfo userSuppliedInfo{ };
+userSuppliedInfo.Name = userSuppliedName; // for names, this will bubble to the top in priority
+userSuppliedInfo.Description = userSuppliedDescription;
+
+// create the config type to aggregate all this info
+virt::MidiVirtualDeviceCreationConfig config(
+ transportSuppliedName, // this could be a different "transport-supplied" name value here
+ transportSuppliedDescription, // transport-supplied description
+ transportSuppliedManufacturerName, // transport-supplied company name
+ declaredEndpointInfo, // for endpoint discovery
+ declaredDeviceIdentity, // for endpoint discovery
+ userSuppliedInfo
+);
+```
+
+We're not quite done yet, however. The config type is also where you'll set function blocks. At least one function block is needed.
+
+```cpp
+// Function blocks. The MIDI 2 UMP specification covers the meanings of these values
+midi2::MidiFunctionBlock block1{ };
+block1.Number(0);
+block1.Name(L"Pads Output");
+block1.IsActive(true);
+block1.UIHint(midi2::MidiFunctionBlockUIHint::Sender);
+block1.FirstGroupIndex(0);
+block1.GroupCount(1);
+block1.Direction(midi2::MidiFunctionBlockDirection::Bidirectional);
+block1.RepresentsMidi10Connection(midi2::MidiFunctionBlockRepresentsMidi10Connection::Not10);
+block1.MaxSystemExclusive8Streams(0);
+block1.MidiCIMessageVersionFormat(0);
+
+config.FunctionBlocks().Append(block1);
+
+midi2::MidiFunctionBlock block2{ };
+block2.Number(1);
+block2.Name(L"A Function Block");
+block2.IsActive(true);
+block2.UIHint(midi2::MidiFunctionBlockUIHint::Sender);
+block2.FirstGroupIndex(1);
+block2.GroupCount(2);
+block2.Direction(midi2::MidiFunctionBlockDirection::Bidirectional);
+block2.RepresentsMidi10Connection(midi2::MidiFunctionBlockRepresentsMidi10Connection::Not10);
+block2.MaxSystemExclusive8Streams(0);
+block2.MidiCIMessageVersionFormat(0);
+
+config.FunctionBlocks().Append(block2);
+```
+
+Now, the virtual device is fully defined. The next step is to open a session and then actually create the device in the service.
-* [C# Sample](https://github.com/microsoft/MIDI/tree/main/samples/csharp-net/app-to-app-midi-cs)
+```cpp
+// create the session. The name here is just convenience.
+m_session = midi2::MidiSession::Create(config.Name());
+if (m_session == nullptr) return; // return if unable to create session
+
+// create the virtual device, so we can get the endpoint device id to connect to
+m_virtualDevice = virt::MidiVirtualDeviceManager::CreateVirtualDevice(config);
+
+if (m_virtualDevice == nullptr) return; // return if unable to create virtual device
+
+// create the endpoint connection to the device-side endpoint
+// to prevent confusion, this endpoint is not enumerated to
+// apps when using the standard set of enumeration filters
+m_connection = m_session.CreateEndpointConnection(
+ m_virtualDevice.DeviceEndpointDeviceId());
+
+// add the virtual device as a message processing plugin so it receives the messages
+m_connection.AddMessageProcessingPlugin(m_virtualDevice);
+
+// wire up the stream configuration request received handler
+auto streamEventToken = m_virtualDevice.StreamConfigRequestReceived(
+ { this, &MainWindow::OnStreamConfigurationRequestReceived });
+
+// wire up the message received handler on the connection itself
+auto messageEventToken = m_connection.MessageReceived(
+ { this, &MainWindow::OnMidiMessageReceived });
+
+// the client-side endpoint will become visible to other apps once Open() completes
+m_connection.Open();
+```
+
+From there, you may send and receive messages just like with any other endpoint.
+
+## Troubleshooting
+
+What can cause a failure in virtual device creation? Assuming the service is installed and working properly, the main thing to check will be to ensure that the unique Id provided is actually unique. The unique Id is used as the differentiator in the SWD Id, without any additional hashing or obfuscation, so it must be unique among all virtual devices currently running. When in doubt, one practice to ensure uniqueness is to use a GUID by formatting as string and removing all non alpha-numeric characters. The unique Id is just large enough to hold that string.
+
+## Sample Code
-> Note: Virtual UMP devices are not currently visible to the WinMM MIDI 1.0 API (the API used by most MIDI 1.0 apps on Windows). There are enumeration complexities with that API when devices are added and removed at runtime, which is part of why we needed to create a new API anyway. It's possible these devices will never be visibile to WinMM MIDI 1.0. For full functionality, we recommend using the new Windows MIDI Services SDK.
+* [C++ WinUI Sample](https://github.com/microsoft/MIDI/tree/main/samples/cpp-winrt/virtual-device-app-winui)
+* [C# WinUI Sample](https://github.com/microsoft/MIDI/tree/main/samples/csharp-net/virtual-device-app-winui)
diff --git a/docs/developer-how-to/how-to-enumerate-endpoints.md b/docs/developer-how-to/how-to-enumerate-endpoints.md
index b29489349..21fd0704b 100644
--- a/docs/developer-how-to/how-to-enumerate-endpoints.md
+++ b/docs/developer-how-to/how-to-enumerate-endpoints.md
@@ -20,7 +20,7 @@ That is the equivalent of passing in a sort order of the name, and a filter of t
```cpp
auto endpointList = MidiEndpointDeviceInformation::FindAll(
MidiEndpointDeviceInformationSortOrder::Name,
- MidiEndpointDeviceInformationFilters::AllTypicalEndpoints
+ MidiEndpointDeviceInformationFilters::AllStandardEndpoints
);
```
@@ -30,7 +30,7 @@ The application may then iterate through the list, reading the properties as nee
Windows MIDI Services has a very rich set of properties available for a UMP Endpoint. This information includes hardware and other transport information, parent device information, user-supplied information, and in the case of a MIDI 2.0 UMP Endpoint, declared information from endpoint discovery and protocol negotiation carried out within the Windows service.
-For more details, see the `MidiEndpointDeviceInformation` class documentation. You may also use the MIDI Console application to see all of the properties (including the raw property data if you choose to) for an endpoint.
+For more details, see the [`MidiEndpointDeviceInformation`](../sdk-winrt-core/enumeration/MidiEndpointDeviceInformation.md) class documentation. You may also use the [MIDI Console application](../console/midi-console.md) to see all of the properties (including the raw property data if you choose to) for an endpoint.
## Sample Code
diff --git a/docs/developer-how-to/how-to-watch-endpoints.md b/docs/developer-how-to/how-to-watch-endpoints.md
index 4e64b85f5..ef6541899 100644
--- a/docs/developer-how-to/how-to-watch-endpoints.md
+++ b/docs/developer-how-to/how-to-watch-endpoints.md
@@ -15,7 +15,7 @@ In Windows MIDI Services, we've provided a specialized version of the device wat
## Events
-To use the `MidiEndpointDeviceWatcher`, first wire up handlers for the `Added`, `Removed`, and `Updated` events. Optionally, you may wire up handlers for the `EnumerationCompleted` event to be notified when initial enumeration has finished, and the `Stopped` event to know when the watcher has been stopped by a call to the `Stop` method.
+To use the [`MidiEndpointDeviceWatcher`](../sdk-winrt-core/enumeration/MidiEndpointDeviceWatcher.md), first wire up handlers for the `Added`, `Removed`, and `Updated` events. Optionally, you may wire up handlers for the `EnumerationCompleted` event to be notified when initial enumeration has finished, and the `Stopped` event to know when the watcher has been stopped by a call to the `Stop` method.
Once the event handlers have been wired up, create the watcher using the static `Create` function.
@@ -26,16 +26,16 @@ auto watcher = MidiEndpointDeviceWatcher::Create();
If you wish to use a filter list that differs from the default (the default is appropriate for most applications, as it filters out diagnostics and other endpoints not typically shown to end users) you may use the overloaded Create function. For example, to show only native UMP endpoints, not translated MIDI 1.0 devices, you would do this:
```cpp
-auto watcher = MidiEndpointDeviceWatcher::Create(MidiEndpointDeviceInformationFilters::IncludeClientUmpFormatNative);
+auto watcher = MidiEndpointDeviceWatcher::Create(MidiEndpointDeviceInformationFilters::StandardNativeUniversalMidiPacketFormat);
```
And, conversely, to show only up-converted MIDI 1.0 byte format endpoints:
```cpp
-auto watcher = MidiEndpointDeviceWatcher::Create(MidiEndpointDeviceInformationFilters::IncludeClientByteFormatNative);
+auto watcher = MidiEndpointDeviceWatcher::Create(MidiEndpointDeviceInformationFilters::StandardNativeMidi1ByteFormat);
```
-The default is to include both, which is also represented by `MidiEndpointDeviceInformationFilters::AllTypicalEndpoints`.
+The default is to include both, which is also represented by `MidiEndpointDeviceInformationFilters::AllStandardEndpoints`.
## Accessing the list
diff --git a/docs/endpoints/virtual-device-app.md b/docs/endpoints/virtual-device-app.md
index 09799fd14..ff5aafa23 100644
--- a/docs/endpoints/virtual-device-app.md
+++ b/docs/endpoints/virtual-device-app.md
@@ -21,10 +21,12 @@ Another approach is to allow applications to create and publish an endpoint whic
In addition, MIDI 2.0 has additional requirements for endpoints. They need to be able to participate in the MIDI Endpoint Discovery process, and respond with appropriate endpoint capabilities and preferred settings. The Virtual Device App makes that configuration simple for application developers and musicians.
+![Virtual Device](virtual-device.png)
+
### Lifetime
-* The Virtual UMP Device includes two endpoints: one is just for the application creating the device, the other is for all other applications to connect to.
-* The lifetime of the Virtual UMP Device is controlled by the lifetime of the application's connection. Once the owning application disconnects from the endpoint, the Virtual UMP Device is torn down.
+* The Virtual UMP Device includes two endpoints: one is just for the application creating the device (the "device side"), the other is for all other applications to connect to.
+* The lifetime of the Virtual Device is controlled by the lifetime of the application's connection. Once the owning application disconnects from the endpoint, the Virtual UMP Device is torn down.
## Suggested Uses
@@ -39,9 +41,11 @@ The best experience for Windows MIDI Services will be with applications using th
| API | Compatible App User | Compatible App Host | Notes |
| --- | ---------- | ---------- | ----- |
| Windows MIDI Services Native | Yes | Yes | This provides the best experience for applications. |
-| WinRT MIDI 1.0 | Yes | No | Any applications using the WinRT MIDI 1.0 API we shipped with Windows 10/11 will be able to see these devices. Note that they can only send/receive MIDI 1.0 messages, and will not see any MIDI 2.0-specific messages that cannot be translated, including stream messages. |
-| WinMM MIDI 1.0 | No | No | There are challenges with the port indexes with the WinMM API. For the forseeable future, we will not surface these virtual devices with the WinMM API. This means that most MIDI 1.0 applications will not recognize these devices. |
+| WinRT MIDI 1.0 | Yes | No | Any applications using the WinRT MIDI 1.0 API we shipped with Windows 10/11 will be able to see these devices and connect to them. Note that they can only send/receive MIDI 1.0 messages, and will not see any MIDI 2.0-specific messages that cannot be translated, including stream messages. |
+| WinMM MIDI 1.0 | No | No | There are challenges with the port indexes with the WinMM API. For the forseeable future, we will not surface these virtual devices to the WinMM API. This means that most MIDI 1.0 applications will not recognize these virtual devices. |
## Configuration
-Because this type of endpoint is tied to the runtime of an application, it can be created only through the API by creating a `MidiVirtualDeviceDefinition` and calling the appropriate `MidiSession` methods to create and open the endpoint. This is not something that a MIDI user will pre-create in the settings app or configuration file.
+Virtual Devices cannot be specified in the configuration file. Instead, applications must create them through code.
+
+For developer information on how to set up a Virtual Device, see the [developer how-to](../developer-how-to/how-to-create-virtual-ump-device.md).
diff --git a/docs/endpoints/virtual-device.png b/docs/endpoints/virtual-device.png
new file mode 100644
index 000000000..8c23b5184
Binary files /dev/null and b/docs/endpoints/virtual-device.png differ
diff --git a/docs/sdk-winrt-core/enumeration/MidiEndpointDeviceInformationFilterEnum.md b/docs/sdk-winrt-core/enumeration/MidiEndpointDeviceInformationFilterEnum.md
index 405db626f..8330f6486 100644
--- a/docs/sdk-winrt-core/enumeration/MidiEndpointDeviceInformationFilterEnum.md
+++ b/docs/sdk-winrt-core/enumeration/MidiEndpointDeviceInformationFilterEnum.md
@@ -6,7 +6,7 @@ grand_parent: Midi2 core
has_children: false
---
-# MidiEndpointDeviceInformationFilter Enumeration
+# MidiEndpointDeviceInformationFilters Enumeration
When enumerating devices, it is helpful to be able to filter for different types of devices. For example, an application providing diagnostic or development services may want to enumerate the diagnostic loopback endpoints. A Digital Audio Workstation, on the other hand, would only want to enumerate the normal UMP and Byte Stream native endpoints.
@@ -14,12 +14,12 @@ When enumerating devices, it is helpful to be able to filter for different types
| Property | Value | Description |
| --------------- | ---------- | ----------- |
-| `IncludeClientUmpNative` | `0x00000001` | Include endpoints which are MIDI UMP endpoints natively. These are typically considered MIDI 2.0 devices even if they only send MIDI 1.0 messages in UMP. |
-| `IncludeClientByteStreamNative` | `0x00000002` | Include endpoints which are MIDI 1.0 byte stream endpoints natively. These are converted to UMP internally in Windows MIDI Services. |
-| `IncludeVirtualDeviceResponder` | `0x00000100` | Include endpoints which are virtual devices. Note that this is the device side of the endpoint, not the side available to other applications. Typically, you would not use this. |
-| `IncludeDiagnosticLoopback` | `0x00010000` | Use this value only when providing development, test, or diagnostic services for MIDI. |
-| `IncludeDiagnosticPing` | `0x00020000` | You would not normally include this in an enumeration. This endpoint is internal. |
-| `AllTypicalEndpoints` | `IncludeClientUmpNative | IncludeClientByteStreamNative` | This is the value most applications should use, and is the default. |
+| `StandardNativeUniversalMidiPacketFormat` | `0x00000001` | Include endpoints which are MIDI UMP endpoints natively. These are typically considered MIDI 2.0 devices even if they only send MIDI 1.0 messages in UMP. |
+| `StandardNativeMidi1ByteFormat` | `0x00000002` | Include endpoints which are MIDI 1.0 byte stream endpoints natively. These are converted to UMP internally in Windows MIDI Services. |
+| `VirtualDeviceResponder` | `0x00000100` | Include endpoints which are virtual devices. Note that this is the device side of the endpoint, not the side available to other applications. Typically, you would not use this. |
+| `DiagnosticLoopback` | `0x00010000` | Use this value only when providing development, test, or diagnostic services for MIDI. |
+| `DiagnosticPing` | `0x00020000` | You would not normally include this in an enumeration. This endpoint is internal. |
+| `AllStandardEndpoints` | `StandardNativeUniversalMidiPacketFormat` plus `StandardNativeMidi1ByteFormat` | This is the value most applications should use, and is the default. |
## IDL
diff --git a/docs/sdk-winrt-core/enumeration/MidiEndpointNativeDataFormatEnum.md b/docs/sdk-winrt-core/enumeration/MidiEndpointNativeDataFormatEnum.md
index 95d855272..0781b0c06 100644
--- a/docs/sdk-winrt-core/enumeration/MidiEndpointNativeDataFormatEnum.md
+++ b/docs/sdk-winrt-core/enumeration/MidiEndpointNativeDataFormatEnum.md
@@ -13,7 +13,7 @@ has_children: false
| Property | Value | Description |
| --------------- | ---------- | ----------- |
| `Unknown` | `0` | Unknown native data format |
-| `ByteFormat` | `0` | The native data format is the MIDI 1.0 byte message format |
+| `Midi1ByteFormat` | `0` | The native data format is the MIDI 1.0 byte message format |
| `UniversalMidiPacketFormat` | `0` | The native data format is the Universal MIDI Packet data format |
## IDL
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1631-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1639-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 1fa35ceac..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 12a8de124..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 6dcb9b9bd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index e97d295dd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 885759693..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 5fc5dd99b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index 28ec69100..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 1fa35ceac..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 12a8de124..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 6dcb9b9bd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index e97d295dd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 885759693..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 5fc5dd99b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index 28ec69100..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 7fe83395a..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 13ddb6a25..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 2b1aa5c4b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index be3e131b5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd
deleted file mode 100644
index 290e2d6c7..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 43a8b1d39..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 0d897d0a4..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index fb3647fa5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 7fe83395a..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 13ddb6a25..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 2b1aa5c4b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index be3e131b5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd
deleted file mode 100644
index 290e2d6c7..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 43a8b1d39..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 0d897d0a4..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index fb3647fa5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1650-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 1fa35ceac..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 12a8de124..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 6dcb9b9bd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index e97d295dd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 885759693..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 5fc5dd99b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index 28ec69100..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/native/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 1fa35ceac..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 12a8de124..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 6dcb9b9bd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index e97d295dd..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index fa9a0361d..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 885759693..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 5fc5dd99b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index 28ec69100..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/lib/uap10.0/Arm64EC/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 7fe83395a..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 13ddb6a25..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 2b1aa5c4b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index be3e131b5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd
deleted file mode 100644
index 290e2d6c7..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Initialization.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 43a8b1d39..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 0d897d0a4..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index fb3647fa5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/native/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll
deleted file mode 100644
index 1a508bd3e..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/net6.0-windows10.0.20348.0/Microsoft.Windows.Devices.Midi2.NetProjection.dll and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd
deleted file mode 100644
index 7fe83395a..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.CapabilityInquiry.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd
deleted file mode 100644
index 13ddb6a25..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ClientPlugins.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd
deleted file mode 100644
index 2b1aa5c4b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Diagnostics.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd
deleted file mode 100644
index be3e131b5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Loopback.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd
deleted file mode 100644
index cb529386b..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd
deleted file mode 100644
index 290e2d6c7..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Initialization.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd
deleted file mode 100644
index 43a8b1d39..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.Messages.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd
deleted file mode 100644
index 0d897d0a4..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.ServiceConfig.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd
deleted file mode 100644
index fb3647fa5..000000000
Binary files a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1709-preview.6/ref/uap10.0/Microsoft.Windows.Devices.Midi2.winmd and /dev/null differ
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.h b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.h
deleted file mode 100644
index 225cbc82e..000000000
--- a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.h
+++ /dev/null
@@ -1,516 +0,0 @@
-// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15
-
-#pragma once
-#ifndef WINRT_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_H
-#define WINRT_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_H
-#include "winrt/base.h"
-static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.240405.15"), "Mismatched C++/WinRT headers.");
-#define CPPWINRT_VERSION "2.0.240405.15"
-#include "winrt/Microsoft.Windows.Devices.Midi2.h"
-#include "winrt/impl/Microsoft.Windows.Devices.Midi2.2.h"
-#include "winrt/impl/Microsoft.Windows.Devices.Midi2.ServiceConfig.2.h"
-#include "winrt/impl/Windows.Foundation.2.h"
-#include "winrt/impl/Windows.Foundation.Collections.2.h"
-#include "winrt/impl/Microsoft.Windows.Devices.Midi2.Endpoints.Virtual.2.h"
-namespace winrt::impl
-{
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiStreamConfigRequestReceivedEventArgs::Timestamp() const
- {
- uint64_t value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiStreamConfigRequestReceivedEventArgs)->get_Timestamp(&value));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiStreamConfigRequestReceivedEventArgs::PreferredMidiProtocol() const
- {
- winrt::Microsoft::Windows::Devices::Midi2::MidiProtocol value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiStreamConfigRequestReceivedEventArgs)->get_PreferredMidiProtocol(reinterpret_cast(&value)));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiStreamConfigRequestReceivedEventArgs::RequestEndpointTransmitJitterReductionTimestamps() const
- {
- bool value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiStreamConfigRequestReceivedEventArgs)->get_RequestEndpointTransmitJitterReductionTimestamps(&value));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiStreamConfigRequestReceivedEventArgs::RequestEndpointReceiveJitterReductionTimestamps() const
- {
- bool value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiStreamConfigRequestReceivedEventArgs)->get_RequestEndpointReceiveJitterReductionTimestamps(&value));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::DeviceEndpointDeviceId() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->get_DeviceEndpointDeviceId(&value));
- return hstring{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::ClientEndpointDeviceId() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->get_ClientEndpointDeviceId(&value));
- return hstring{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::FunctionBlocks() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->get_FunctionBlocks(&value));
- return winrt::Windows::Foundation::Collections::IMapView{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::UpdateFunctionBlock(winrt::Microsoft::Windows::Devices::Midi2::MidiFunctionBlock const& block) const
- {
- bool result{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->UpdateFunctionBlock(*(void**)(&block), &result));
- return result;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::UpdateEndpointName(param::hstring const& name) const
- {
- bool result{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->UpdateEndpointName(*(void**)(&name), &result));
- return result;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::SuppressHandledMessages() const
- {
- bool value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->get_SuppressHandledMessages(&value));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::SuppressHandledMessages(bool value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->put_SuppressHandledMessages(value));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::StreamConfigRequestReceived(winrt::Windows::Foundation::TypedEventHandler const& handler) const
- {
- winrt::event_token token{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->add_StreamConfigRequestReceived(*(void**)(&handler), put_abi(token)));
- return token;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::StreamConfigRequestReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& handler) const
- {
- return impl::make_event_revoker(this, StreamConfigRequestReceived(handler));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDevice::StreamConfigRequestReceived(winrt::event_token const& token) const noexcept
- {
- WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDevice)->remove_StreamConfigRequestReceived(impl::bind_in(token));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Name() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_Name(&value));
- return hstring{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Name(param::hstring const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_Name(*(void**)(&value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Description() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_Description(&value));
- return hstring{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Description(param::hstring const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_Description(*(void**)(&value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Manufacturer() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_Manufacturer(&value));
- return hstring{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::Manufacturer(param::hstring const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_Manufacturer(*(void**)(&value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::DeclaredDeviceIdentity() const
- {
- winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_DeclaredDeviceIdentity(put_abi(value)));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::DeclaredDeviceIdentity(winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_DeclaredDeviceIdentity(impl::bind_in(value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::DeclaredEndpointInfo() const
- {
- winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_DeclaredEndpointInfo(put_abi(value)));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::DeclaredEndpointInfo(winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_DeclaredEndpointInfo(impl::bind_in(value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::UserSuppliedInfo() const
- {
- winrt::Microsoft::Windows::Devices::Midi2::MidiEndpointUserSuppliedInfo value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_UserSuppliedInfo(put_abi(value)));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::UserSuppliedInfo(winrt::Microsoft::Windows::Devices::Midi2::MidiEndpointUserSuppliedInfo const& value) const
- {
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->put_UserSuppliedInfo(impl::bind_in(value)));
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfig::FunctionBlocks() const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfig)->get_FunctionBlocks(&value));
- return winrt::Windows::Foundation::Collections::IVector{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfigFactory::CreateInstance(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo) const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfigFactory)->CreateInstance(*(void**)(&name), *(void**)(&description), *(void**)(&manufacturer), impl::bind_in(declaredEndpointInfo), &value));
- return winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationConfig{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfigFactory::CreateInstance2(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity const& declaredDeviceIdentity) const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfigFactory)->CreateInstance2(*(void**)(&name), *(void**)(&description), *(void**)(&manufacturer), impl::bind_in(declaredEndpointInfo), impl::bind_in(declaredDeviceIdentity), &value));
- return winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationConfig{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceCreationConfigFactory::CreateInstance3(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity const& declaredDeviceIdentity, winrt::Microsoft::Windows::Devices::Midi2::MidiEndpointUserSuppliedInfo const& userSuppliedInfo) const
- {
- void* value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceCreationConfigFactory)->CreateInstance3(*(void**)(&name), *(void**)(&description), *(void**)(&manufacturer), impl::bind_in(declaredEndpointInfo), impl::bind_in(declaredDeviceIdentity), impl::bind_in(userSuppliedInfo), &value));
- return winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationConfig{ value, take_ownership_from_abi };
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceManagerStatics::IsTransportAvailable() const
- {
- bool value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceManagerStatics)->get_IsTransportAvailable(&value));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceManagerStatics::AbstractionId() const
- {
- winrt::guid value{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceManagerStatics)->get_AbstractionId(put_abi(value)));
- return value;
- }
- template auto consume_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_IMidiVirtualDeviceManagerStatics::CreateVirtualDevice(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationConfig const& creationConfig) const
- {
- winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationResult result{};
- check_hresult(WINRT_IMPL_SHIM(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::IMidiVirtualDeviceManagerStatics)->CreateVirtualDevice(*(void**)(&creationConfig), put_abi(result)));
- return result;
- }
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- int32_t __stdcall get_Timestamp(uint64_t* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().Timestamp());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_PreferredMidiProtocol(int32_t* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().PreferredMidiProtocol());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_RequestEndpointTransmitJitterReductionTimestamps(bool* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().RequestEndpointTransmitJitterReductionTimestamps());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_RequestEndpointReceiveJitterReductionTimestamps(bool* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().RequestEndpointReceiveJitterReductionTimestamps());
- return 0;
- }
- catch (...) { return to_hresult(); }
- };
-#endif
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- int32_t __stdcall get_DeviceEndpointDeviceId(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().DeviceEndpointDeviceId());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_ClientEndpointDeviceId(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().ClientEndpointDeviceId());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_FunctionBlocks(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from>(this->shim().FunctionBlocks());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall UpdateFunctionBlock(void* block, bool* result) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *result = detach_from(this->shim().UpdateFunctionBlock(*reinterpret_cast(&block)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall UpdateEndpointName(void* name, bool* result) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *result = detach_from(this->shim().UpdateEndpointName(*reinterpret_cast(&name)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_SuppressHandledMessages(bool* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().SuppressHandledMessages());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_SuppressHandledMessages(bool value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().SuppressHandledMessages(value);
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall add_StreamConfigRequestReceived(void* handler, winrt::event_token* token) noexcept final try
- {
- zero_abi(token);
- typename D::abi_guard guard(this->shim());
- *token = detach_from(this->shim().StreamConfigRequestReceived(*reinterpret_cast const*>(&handler)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall remove_StreamConfigRequestReceived(winrt::event_token token) noexcept final
- {
- typename D::abi_guard guard(this->shim());
- this->shim().StreamConfigRequestReceived(*reinterpret_cast(&token));
- return 0;
- }
- };
-#endif
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- int32_t __stdcall get_Name(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().Name());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_Name(void* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().Name(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_Description(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().Description());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_Description(void* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().Description(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_Manufacturer(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().Manufacturer());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_Manufacturer(void* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().Manufacturer(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_DeclaredDeviceIdentity(struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredDeviceIdentity* value) noexcept final try
- {
- zero_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().DeclaredDeviceIdentity());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_DeclaredDeviceIdentity(struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredDeviceIdentity value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().DeclaredDeviceIdentity(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_DeclaredEndpointInfo(struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredEndpointInfo* value) noexcept final try
- {
- zero_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().DeclaredEndpointInfo());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_DeclaredEndpointInfo(struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredEndpointInfo value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().DeclaredEndpointInfo(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_UserSuppliedInfo(struct struct_Microsoft_Windows_Devices_Midi2_MidiEndpointUserSuppliedInfo* value) noexcept final try
- {
- zero_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().UserSuppliedInfo());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall put_UserSuppliedInfo(struct struct_Microsoft_Windows_Devices_Midi2_MidiEndpointUserSuppliedInfo value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- this->shim().UserSuppliedInfo(*reinterpret_cast(&value));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_FunctionBlocks(void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from>(this->shim().FunctionBlocks());
- return 0;
- }
- catch (...) { return to_hresult(); }
- };
-#endif
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- int32_t __stdcall CreateInstance(void* name, void* description, void* manufacturer, struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredEndpointInfo declaredEndpointInfo, void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().CreateInstance(*reinterpret_cast(&name), *reinterpret_cast(&description), *reinterpret_cast(&manufacturer), *reinterpret_cast(&declaredEndpointInfo)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall CreateInstance2(void* name, void* description, void* manufacturer, struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredEndpointInfo declaredEndpointInfo, struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredDeviceIdentity declaredDeviceIdentity, void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().CreateInstance2(*reinterpret_cast(&name), *reinterpret_cast(&description), *reinterpret_cast(&manufacturer), *reinterpret_cast(&declaredEndpointInfo), *reinterpret_cast(&declaredDeviceIdentity)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall CreateInstance3(void* name, void* description, void* manufacturer, struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredEndpointInfo declaredEndpointInfo, struct struct_Microsoft_Windows_Devices_Midi2_MidiDeclaredDeviceIdentity declaredDeviceIdentity, struct struct_Microsoft_Windows_Devices_Midi2_MidiEndpointUserSuppliedInfo userSuppliedInfo, void** value) noexcept final try
- {
- clear_abi(value);
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().CreateInstance3(*reinterpret_cast(&name), *reinterpret_cast(&description), *reinterpret_cast(&manufacturer), *reinterpret_cast(&declaredEndpointInfo), *reinterpret_cast(&declaredDeviceIdentity), *reinterpret_cast(&userSuppliedInfo)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- };
-#endif
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- };
-#endif
-#ifndef WINRT_LEAN_AND_MEAN
- template
- struct produce : produce_base
- {
- int32_t __stdcall get_IsTransportAvailable(bool* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().IsTransportAvailable());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall get_AbstractionId(winrt::guid* value) noexcept final try
- {
- typename D::abi_guard guard(this->shim());
- *value = detach_from(this->shim().AbstractionId());
- return 0;
- }
- catch (...) { return to_hresult(); }
- int32_t __stdcall CreateVirtualDevice(void* creationConfig, struct struct_Microsoft_Windows_Devices_Midi2_Endpoints_Virtual_MidiVirtualDeviceCreationResult* result) noexcept final try
- {
- zero_abi(result);
- typename D::abi_guard guard(this->shim());
- *result = detach_from(this->shim().CreateVirtualDevice(*reinterpret_cast(&creationConfig)));
- return 0;
- }
- catch (...) { return to_hresult(); }
- };
-#endif
-}
-WINRT_EXPORT namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual
-{
- inline MidiVirtualDeviceCreationConfig::MidiVirtualDeviceCreationConfig(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo) :
- MidiVirtualDeviceCreationConfig(impl::call_factory([&](IMidiVirtualDeviceCreationConfigFactory const& f) { return f.CreateInstance(name, description, manufacturer, declaredEndpointInfo); }))
- {
- }
- inline MidiVirtualDeviceCreationConfig::MidiVirtualDeviceCreationConfig(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity const& declaredDeviceIdentity) :
- MidiVirtualDeviceCreationConfig(impl::call_factory([&](IMidiVirtualDeviceCreationConfigFactory const& f) { return f.CreateInstance2(name, description, manufacturer, declaredEndpointInfo, declaredDeviceIdentity); }))
- {
- }
- inline MidiVirtualDeviceCreationConfig::MidiVirtualDeviceCreationConfig(param::hstring const& name, param::hstring const& description, param::hstring const& manufacturer, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredEndpointInfo const& declaredEndpointInfo, winrt::Microsoft::Windows::Devices::Midi2::MidiDeclaredDeviceIdentity const& declaredDeviceIdentity, winrt::Microsoft::Windows::Devices::Midi2::MidiEndpointUserSuppliedInfo const& userSuppliedInfo) :
- MidiVirtualDeviceCreationConfig(impl::call_factory([&](IMidiVirtualDeviceCreationConfigFactory const& f) { return f.CreateInstance3(name, description, manufacturer, declaredEndpointInfo, declaredDeviceIdentity, userSuppliedInfo); }))
- {
- }
- inline auto MidiVirtualDeviceManager::IsTransportAvailable()
- {
- return impl::call_factory_cast([](IMidiVirtualDeviceManagerStatics const& f) { return f.IsTransportAvailable(); });
- }
- inline auto MidiVirtualDeviceManager::AbstractionId()
- {
- return impl::call_factory_cast([](IMidiVirtualDeviceManagerStatics const& f) { return f.AbstractionId(); });
- }
- inline auto MidiVirtualDeviceManager::CreateVirtualDevice(winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Virtual::MidiVirtualDeviceCreationConfig const& creationConfig)
- {
- return impl::call_factory([&](IMidiVirtualDeviceManagerStatics const& f) { return f.CreateVirtualDevice(creationConfig); });
- }
-}
-namespace std
-{
-#ifndef WINRT_LEAN_AND_MEAN
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
- template<> struct hash : winrt::impl::hash_base {};
-#endif
-#ifdef __cpp_lib_format
-#endif
-}
-#endif
diff --git a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/impl/Microsoft.Windows.Devices.Midi2.0.h b/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/impl/Microsoft.Windows.Devices.Midi2.0.h
deleted file mode 100644
index 08e41736d..000000000
--- a/samples/cpp-winrt/Microsoft.Windows.Devices.Midi2.1.0.24171.1720-preview.6/build/native/include/midi2/impl/Microsoft.Windows.Devices.Midi2.0.h
+++ /dev/null
@@ -1,1524 +0,0 @@
-// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15
-
-#pragma once
-#ifndef WINRT_Microsoft_Windows_Devices_Midi2_0_H
-#define WINRT_Microsoft_Windows_Devices_Midi2_0_H
-WINRT_EXPORT namespace winrt::Windows::Devices::Enumeration
-{
- struct DeviceInformation;
- struct DeviceInformationUpdate;
- enum class DeviceWatcherStatus : int32_t;
-}
-WINRT_EXPORT namespace winrt::Windows::Foundation
-{
- struct EventRegistrationToken;
- struct IMemoryBuffer;
- template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler;
-}
-WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
-{
- template struct WINRT_IMPL_EMPTY_BASES IIterable;
- template struct WINRT_IMPL_EMPTY_BASES IVector;
-}
-WINRT_EXPORT namespace winrt::Microsoft::Windows::Devices::Midi2
-{
- enum class MidiEndpointDeviceInformationFilters : uint32_t
- {
- IncludeClientUmpFormatNative = 0x1,
- IncludeClientByteFormatNative = 0x2,
- IncludeVirtualDeviceResponder = 0x100,
- IncludeDiagnosticLoopback = 0x10000,
- IncludeDiagnosticPing = 0x20000,
- AllTypicalEndpoints = 0x3,
- };
- enum class MidiEndpointDeviceInformationSortOrder : int32_t
- {
- None = 0,
- Name = 1,
- EndpointDeviceId = 2,
- DeviceInstanceId = 3,
- ContainerThenName = 11,
- ContainerThenEndpointDeviceId = 12,
- ContainerThenDeviceInstanceId = 13,
- TransportMnemonicThenName = 21,
- TransportMnemonicThenEndpointDeviceId = 22,
- TransportMnemonicThenDeviceInstanceId = 23,
- };
- enum class MidiEndpointDevicePurpose : int32_t
- {
- NormalMessageEndpoint = 0,
- VirtualDeviceResponder = 100,
- InBoxGeneralMidiSynth = 400,
- DiagnosticLoopback = 500,
- DiagnosticPing = 510,
- };
- enum class MidiEndpointNativeDataFormat : int32_t
- {
- Unknown = 0,
- ByteStream = 1,
- UniversalMidiPacket = 2,
- };
- enum class MidiFunctionBlockDirection : int32_t
- {
- Undefined = 0,
- BlockInput = 1,
- BlockOutput = 2,
- Bidirectional = 3,
- };
- enum class MidiFunctionBlockRepresentsMidi10Connection : int32_t
- {
- Not10 = 0,
- YesBandwidthUnrestricted = 1,
- YesBandwidthRestricted = 2,
- Reserved = 3,
- };
- enum class MidiFunctionBlockUIHint : int32_t
- {
- Unknown = 0,
- Receiver = 1,
- Sender = 2,
- Bidirectional = 3,
- };
- enum class MidiGroupTerminalBlockDirection : int32_t
- {
- Bidirectional = 0,
- BlockInput = 1,
- BlockOutput = 2,
- };
- enum class MidiGroupTerminalBlockProtocol : int32_t
- {
- Unknown = 0,
- Midi1Message64 = 1,
- Midi1Message64WithJitterReduction = 2,
- Midi1Message128 = 3,
- Midi1Message128WithJitterReduction = 4,
- Midi2 = 17,
- Midi2WithJitterReduction = 18,
- };
- enum class MidiMessageType : int32_t
- {
- UtilityMessage32 = 0,
- SystemCommon32 = 1,
- Midi1ChannelVoice32 = 2,
- DataMessage64 = 3,
- Midi2ChannelVoice64 = 4,
- DataMessage128 = 5,
- FutureReserved632 = 6,
- FutureReserved732 = 7,
- FutureReserved864 = 8,
- FutureReserved964 = 9,
- FutureReservedA64 = 10,
- FutureReservedB96 = 11,
- FutureReservedC96 = 12,
- FlexData128 = 13,
- FutureReservedE128 = 14,
- Stream128 = 15,
- };
- enum class MidiPacketType : int32_t
- {
- UnknownOrInvalid = 0,
- UniversalMidiPacket32 = 1,
- UniversalMidiPacket64 = 2,
- UniversalMidiPacket96 = 3,
- UniversalMidiPacket128 = 4,
- };
- enum class MidiProtocol : int32_t
- {
- Default = 0,
- Midi1 = 1,
- Midi2 = 2,
- };
- enum class MidiSendMessageResults : uint32_t
- {
- Succeeded = 0x80000000,
- Failed = 0x10000000,
- BufferFull = 0x10000,
- EndpointConnectionClosedOrInvalid = 0x40000,
- InvalidMessageTypeForWordCount = 0x100000,
- InvalidMessageOther = 0x200000,
- DataIndexOutOfRange = 0x400000,
- TimestampOutOfRange = 0x800000,
- MessageListPartiallyProcessed = 0xf00000,
- };
- struct IMidiChannel;
- struct IMidiChannelFactory;
- struct IMidiChannelStatics;
- struct IMidiClock;
- struct IMidiClockStatics;
- struct IMidiEndpointConnection;
- struct IMidiEndpointConnectionSettings;
- struct IMidiEndpointConnectionSource;
- struct IMidiEndpointConnectionStatics;
- struct IMidiEndpointDeviceInformation;
- struct IMidiEndpointDeviceInformationAddedEventArgs;
- struct IMidiEndpointDeviceInformationRemovedEventArgs;
- struct IMidiEndpointDeviceInformationStatics;
- struct IMidiEndpointDeviceInformationUpdatedEventArgs;
- struct IMidiEndpointDeviceWatcher;
- struct IMidiEndpointDeviceWatcherStatics;
- struct IMidiEndpointMessageProcessingPlugin;
- struct IMidiFunctionBlock;
- struct IMidiGroup;
- struct IMidiGroupFactory;
- struct IMidiGroupStatics;
- struct IMidiGroupTerminalBlock;
- struct IMidiMessage128;
- struct IMidiMessage128Factory;
- struct IMidiMessage128Statics;
- struct IMidiMessage32;
- struct IMidiMessage32Factory;
- struct IMidiMessage32Statics;
- struct IMidiMessage64;
- struct IMidiMessage64Factory;
- struct IMidiMessage64Statics;
- struct IMidiMessage96;
- struct IMidiMessage96Factory;
- struct IMidiMessage96Statics;
- struct IMidiMessageReceivedEventArgs;
- struct IMidiMessageReceivedEventSource;
- struct IMidiSession;
- struct IMidiSessionStatics;
- struct IMidiUniversalPacket;
- struct MidiChannel;
- struct MidiClock;
- struct MidiEndpointConnection;
- struct MidiEndpointDeviceInformation;
- struct MidiEndpointDeviceInformationAddedEventArgs;
- struct MidiEndpointDeviceInformationRemovedEventArgs;
- struct MidiEndpointDeviceInformationUpdatedEventArgs;
- struct MidiEndpointDeviceWatcher;
- struct MidiFunctionBlock;
- struct MidiGroup;
- struct MidiGroupTerminalBlock;
- struct MidiMessage128;
- struct MidiMessage32;
- struct MidiMessage64;
- struct MidiMessage96;
- struct MidiMessageReceivedEventArgs;
- struct MidiSession;
- struct MidiDeclaredDeviceIdentity;
- struct MidiDeclaredEndpointInfo;
- struct MidiDeclaredStreamConfiguration;
- struct MidiEndpointTransportSuppliedInfo;
- struct MidiEndpointUserSuppliedInfo;
- struct MidiMessageStruct;
-}
-namespace winrt::impl
-{
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = interface_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = class_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = enum_category; };
- template <> struct category{ using type = struct_category; };
- template <> struct category{ using type = struct_category; };
- template <> struct category{ using type = struct_category; };
- template <> struct category{ using type = struct_category; };
- template <> struct category{ using type = struct_category; };
- template <> struct category{ using type = struct_category; };
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiChannel";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiClock";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointConnection";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointDeviceInformation";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointDeviceInformationAddedEventArgs";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointDeviceInformationRemovedEventArgs";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointDeviceInformationUpdatedEventArgs";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiEndpointDeviceWatcher";
- template <> inline constexpr auto& name_v = L"Microsoft.Windows.Devices.Midi2.MidiFunctionBlock";
- template <> inline constexpr auto& name_v