diff --git a/build/nuke_build/Build.cs b/build/nuke_build/Build.cs
index 11fb780a..b07d6d0c 100644
--- a/build/nuke_build/Build.cs
+++ b/build/nuke_build/Build.cs
@@ -35,8 +35,8 @@ class Build : NukeBuild
//string VersionName => "Developer Preview 9";
- string VersionName => "Customer Preview 1";
- string NuGetVersionName => "preview-10";
+ string VersionName => "Customer Preview 2";
+ string NuGetVersionName => "preview-11";
// we set these here, especially the time, so it's the same for all platforms in the single build
diff --git a/build/staging/version/BundleInfo.wxi b/build/staging/version/BundleInfo.wxi
index 3b375979..bf9e08a3 100644
--- a/build/staging/version/BundleInfo.wxi
+++ b/build/staging/version/BundleInfo.wxi
@@ -1,4 +1,4 @@
-
-
+
+
diff --git a/build/staging/version/WindowsMidiServicesVersion.cs b/build/staging/version/WindowsMidiServicesVersion.cs
index 73e660e2..80727ef3 100644
--- a/build/staging/version/WindowsMidiServicesVersion.cs
+++ b/build/staging/version/WindowsMidiServicesVersion.cs
@@ -5,13 +5,13 @@ namespace Microsoft.Midi.Common
public static class MidiBuildInformation
{
public const string Source = "GitHub Preview";
- public const string Name = "Customer Preview 1";
- public const string BuildFullVersion = "1.0.3-preview-10.250204-1909";
+ public const string Name = "Customer Preview 2";
+ public const string BuildFullVersion = "1.0.3-preview-11.250206-2105";
public const string VersionMajor = "1";
public const string VersionMinor = "0";
public const string VersionRevision = "3";
- public const string VersionDateNumber = "250204";
- public const string VersionTimeNumber = "1909";
+ public const string VersionDateNumber = "250206";
+ public const string VersionTimeNumber = "2105";
}
}
diff --git a/build/staging/version/WindowsMidiServicesVersion.h b/build/staging/version/WindowsMidiServicesVersion.h
index 7d4acb96..c32b1579 100644
--- a/build/staging/version/WindowsMidiServicesVersion.h
+++ b/build/staging/version/WindowsMidiServicesVersion.h
@@ -4,13 +4,13 @@
#define WINDOWS_MIDI_SERVICES_VERSION_INCLUDE
#define WINDOWS_MIDI_SERVICES_BUILD_SOURCE L"GitHub Preview"
-#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_NAME L"Customer Preview 1"
-#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_FULL L"1.0.3-preview-10.250204-1909"
+#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_NAME L"Customer Preview 2"
+#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_FULL L"1.0.3-preview-11.250206-2105"
#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_MAJOR L"1"
#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_MINOR L"0"
#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_REVISION L"3"
-#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_DATE_NUMBER L"250204"
-#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_TIME_NUMBER L"1909"
+#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_DATE_NUMBER L"250206"
+#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_TIME_NUMBER L"2105"
#endif
diff --git a/samples/cpp-winrt/basics/client-basics-cpp.vcxproj b/samples/cpp-winrt/basics/client-basics-cpp.vcxproj
index feb1b771..e2619f58 100644
--- a/samples/cpp-winrt/basics/client-basics-cpp.vcxproj
+++ b/samples/cpp-winrt/basics/client-basics-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
false
diff --git a/samples/cpp-winrt/basics/packages.config b/samples/cpp-winrt/basics/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/basics/packages.config
+++ b/samples/cpp-winrt/basics/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj b/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj
index 1ba71453..1c807fe9 100644
--- a/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj
+++ b/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/samples/cpp-winrt/loopback-endpoints/packages.config b/samples/cpp-winrt/loopback-endpoints/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/loopback-endpoints/packages.config
+++ b/samples/cpp-winrt/loopback-endpoints/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/send-speed/packages.config b/samples/cpp-winrt/send-speed/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/send-speed/packages.config
+++ b/samples/cpp-winrt/send-speed/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj b/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj
index a93d9b9f..5733f8b7 100644
--- a/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj
+++ b/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/samples/cpp-winrt/simple-app-to-app-midi/packages.config b/samples/cpp-winrt/simple-app-to-app-midi/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/simple-app-to-app-midi/packages.config
+++ b/samples/cpp-winrt/simple-app-to-app-midi/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj b/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj
index 0974380c..1b131996 100644
--- a/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj
+++ b/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/samples/cpp-winrt/static-enum-endpoints/packages.config b/samples/cpp-winrt/static-enum-endpoints/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/static-enum-endpoints/packages.config
+++ b/samples/cpp-winrt/static-enum-endpoints/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj b/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj
index 5108b5e8..c4028957 100644
--- a/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj
+++ b/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/samples/cpp-winrt/watch-endpoints/packages.config b/samples/cpp-winrt/watch-endpoints/packages.config
index 3e1e875c..d9188454 100644
--- a/samples/cpp-winrt/watch-endpoints/packages.config
+++ b/samples/cpp-winrt/watch-endpoints/packages.config
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj b/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj
index d6c30c88..87c9e8ad 100644
--- a/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj
+++ b/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/src/api/Client/WinMM/MidiSrvPort.cpp b/src/api/Client/WinMM/MidiSrvPort.cpp
index 4c96e7a5..213e98b9 100644
--- a/src/api/Client/WinMM/MidiSrvPort.cpp
+++ b/src/api/Client/WinMM/MidiSrvPort.cpp
@@ -465,20 +465,19 @@ CMidiPort::Callback(_In_ PVOID data, _In_ UINT size, _In_ LONGLONG position, LON
while(callbackDataRemaining > 0 &&
(buffer->dwBytesRecorded < buffer->dwBufferLength))
{
- if(0 != (*callbackData & MIDI_STATUSBYTEFILTER))
+ if (0 != (*callbackData & MIDI_STATUSBYTEFILTER))
{
// this is a status byte message, we're going to need some additional checks.
// we're in a sysex block and somehow received a normal midi message,
// that's an error, complete the sysex and exit out of processing sysex.
- if(MIDI_EOX != *callbackData &&
- (*callbackData & MIDI_STATUSBYTEFILTER) < MIDI_SYSEX)
+ if (*callbackData < MIDI_SYSEX)
{
RETURN_IF_FAILED(CompleteLongBuffer(MIM_LONGERROR, position));
m_IsInSysex = false;
break;
}
- else if(MIDI_SYSTEM_REALTIME_FILTER != (*callbackData & MIDI_SYSTEM_REALTIME_FILTER))
+ else if (MIDI_SYSTEM_REALTIME_FILTER != (*callbackData & MIDI_SYSTEM_REALTIME_FILTER))
{
// a sys-ex block is supposed to end with a MIDI_EOX, however
// any valid MIDI status byte CAN end a sys-ex block EXCEPT
@@ -569,6 +568,7 @@ CMidiPort::Callback(_In_ PVOID data, _In_ UINT size, _In_ LONGLONG position, LON
callbackDataRemaining-=3;
dataWritten = true;
}
+
// if it's not a message with a status byte, it should be
// running status, which requires 2 bytes, and our running
// status should be valid.
diff --git a/src/api/Client/WinMM/MidiSrvPorts.cpp b/src/api/Client/WinMM/MidiSrvPorts.cpp
index d16ebba9..45c172a6 100644
--- a/src/api/Client/WinMM/MidiSrvPorts.cpp
+++ b/src/api/Client/WinMM/MidiSrvPorts.cpp
@@ -5,6 +5,11 @@
using unique_hdevinfo = wil::unique_any_handle_invalid;
+// via https://devblogs.microsoft.com/oldnewthing/20041025-00/?p=37483
+EXTERN_C IMAGE_DOS_HEADER __ImageBase;
+#define HINST_WDMAUD2 ((HINSTANCE)&__ImageBase)
+
+
CMidiPorts::CMidiPorts()
{
TraceLoggingWrite(
@@ -388,10 +393,16 @@ CMidiPorts::GetDevCaps(MidiFlow flow, UINT portNumber, DWORD_PTR midiCaps)
if (MidiFlowIn == flow)
{
memset((PVOID) midiCaps, 0, sizeof(MIDIINCAPSW));
+
+ // set the default name in case the port is not active. Some apps ignore the hresult
+ ::LoadStringW(HINST_WDMAUD2, IDS_MIDI_UNAVAILABLE_ENDPOINT, ((MIDIINCAPSW*)midiCaps)->szPname, MAXPNAMELEN);
}
else
{
memset((PVOID) midiCaps, 0, sizeof(MIDIOUTCAPSW));
+
+ // set the default name in case the port is not active. Some apps ignore the hresult
+ ::LoadStringW(HINST_WDMAUD2, IDS_MIDI_UNAVAILABLE_ENDPOINT, ((MIDIOUTCAPSW*)midiCaps)->szPname, MAXPNAMELEN);
}
auto lock = m_Lock.lock();
diff --git a/src/api/Client/WinMM/resource.h b/src/api/Client/WinMM/resource.h
index ecbb80b2..648bca5d 100644
--- a/src/api/Client/WinMM/resource.h
+++ b/src/api/Client/WinMM/resource.h
@@ -18,6 +18,8 @@
#define IDS_SUBMIXER_CDLINE_SHORT 111
#define IDS_SUBMIXER_CDLINE_LONG 112
+#define IDS_MIDI_UNAVAILABLE_ENDPOINT 200
+
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
diff --git a/src/api/Client/WinMM/winmmdrv.rc b/src/api/Client/WinMM/winmmdrv.rc
index dbda3f9e..5c75e8e7 100644
--- a/src/api/Client/WinMM/winmmdrv.rc
+++ b/src/api/Client/WinMM/winmmdrv.rc
@@ -29,5 +29,7 @@ BEGIN
IDS_SUBMIXER_VOLUME_LONG "Volume"
IDS_SUBMIXER_MUTE_SHORT "Mute"
IDS_SUBMIXER_MUTE_LONG "Mute"
+
+ IDS_MIDI_UNAVAILABLE_ENDPOINT "(unavailable)"
END
diff --git a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.cpp b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.cpp
index 9811715c..b2a5b64d 100644
--- a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.cpp
+++ b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.cpp
@@ -14,12 +14,12 @@ _Use_decl_annotations_
HRESULT
CMidi2NetworkMidiConfigurationManager::Initialize(
GUID transportId,
- IMidiDeviceManagerInterface* midiDeviceManager,
- IMidiServiceConfigurationManagerInterface* midiServiceConfigurationManagerInterface
+ IMidiDeviceManager* midiDeviceManager,
+ IMidiServiceConfigurationManager* midiServiceConfigurationManager
)
{
UNREFERENCED_PARAMETER(transportId);
- UNREFERENCED_PARAMETER(midiServiceConfigurationManagerInterface);
+ UNREFERENCED_PARAMETER(midiServiceConfigurationManager);
TraceLoggingWrite(
@@ -32,7 +32,7 @@ CMidi2NetworkMidiConfigurationManager::Initialize(
);
RETURN_HR_IF_NULL(E_INVALIDARG, midiDeviceManager);
- RETURN_IF_FAILED(midiDeviceManager->QueryInterface(__uuidof(IMidiDeviceManagerInterface), (void**)&m_midiDeviceManager));
+ RETURN_IF_FAILED(midiDeviceManager->QueryInterface(__uuidof(IMidiDeviceManager), (void**)&m_midiDeviceManager));
return S_OK;
}
diff --git a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.h b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.h
index a6afa71a..af894474 100644
--- a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.h
+++ b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiConfigurationManager.h
@@ -16,7 +16,7 @@ class CMidi2NetworkMidiConfigurationManager :
{
public:
- STDMETHOD(Initialize(_In_ GUID transportId, _In_ IMidiDeviceManagerInterface* midiDeviceManager, _In_ IMidiServiceConfigurationManagerInterface* midiServiceConfigurationManagerInterface));
+ STDMETHOD(Initialize(_In_ GUID transportId, _In_ IMidiDeviceManager* midiDeviceManager, _In_ IMidiServiceConfigurationManager* midiServiceConfigurationManager));
STDMETHOD(UpdateConfiguration(_In_ LPCWSTR configurationJsonSection, _Out_ LPWSTR* Response));
STDMETHOD(Shutdown)();
@@ -24,6 +24,6 @@ class CMidi2NetworkMidiConfigurationManager :
// STDMETHOD(ValidateClientDefinition(_In_ MidiNetworkUdpClientDefinition& definition));
private:
- wil::com_ptr_nothrow m_midiDeviceManager;
+ wil::com_ptr_nothrow m_midiDeviceManager;
};
diff --git a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.cpp b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.cpp
index 871e5513..301bc9dd 100644
--- a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.cpp
+++ b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.cpp
@@ -20,8 +20,8 @@ using namespace Microsoft::WRL::Wrappers;
_Use_decl_annotations_
HRESULT
CMidi2NetworkMidiEndpointManager::Initialize(
- IMidiDeviceManagerInterface* midiDeviceManager,
- IMidiEndpointProtocolManagerInterface* midiEndpointProtocolManager
+ IMidiDeviceManager* midiDeviceManager,
+ IMidiEndpointProtocolManager* midiEndpointProtocolManager
)
{
TraceLoggingWrite(
@@ -35,8 +35,8 @@ CMidi2NetworkMidiEndpointManager::Initialize(
RETURN_HR_IF(E_INVALIDARG, nullptr == midiDeviceManager);
- RETURN_IF_FAILED(midiDeviceManager->QueryInterface(__uuidof(IMidiDeviceManagerInterface), (void**)&m_midiDeviceManager));
- RETURN_IF_FAILED(midiEndpointProtocolManager->QueryInterface(__uuidof(IMidiEndpointProtocolManagerInterface), (void**)&m_midiProtocolManager));
+ RETURN_IF_FAILED(midiDeviceManager->QueryInterface(__uuidof(IMidiDeviceManager), (void**)&m_midiDeviceManager));
+ RETURN_IF_FAILED(midiEndpointProtocolManager->QueryInterface(__uuidof(IMidiEndpointProtocolManager), (void**)&m_midiProtocolManager));
m_transportId = TRANSPORT_LAYER_GUID; // this is needed so MidiSrv can instantiate the correct transport
m_containerId = m_transportId; // we use the transport ID as the container ID for convenience
diff --git a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.h b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.h
index e68fae35..1728f77e 100644
--- a/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.h
+++ b/src/api/Transport/UdpNetworkMidi2Transport/Midi2.NetworkMidiEndpointManager.h
@@ -17,7 +17,7 @@ class CMidi2NetworkMidiEndpointManager :
{
public:
- STDMETHOD(Initialize(_In_ IMidiDeviceManagerInterface*, _In_ IMidiEndpointProtocolManagerInterface*));
+ STDMETHOD(Initialize(_In_ IMidiDeviceManager*, _In_ IMidiEndpointProtocolManager*));
STDMETHOD(Shutdown)();
STDMETHOD(InitiateDiscoveryAndNegotiation(_In_ std::wstring const& endpointDeviceInterfaceId));
@@ -64,8 +64,8 @@ class CMidi2NetworkMidiEndpointManager :
HRESULT CreateParentDevice();
- wil::com_ptr_nothrow m_midiDeviceManager;
- wil::com_ptr_nothrow m_midiProtocolManager;
+ wil::com_ptr_nothrow m_midiDeviceManager;
+ wil::com_ptr_nothrow m_midiProtocolManager;
std::jthread m_backgroundEndpointCreatorThread;
diff --git a/src/app-sdk/mididiag/main.cpp b/src/app-sdk/mididiag/main.cpp
index 0b2b384f..847d008c 100644
--- a/src/app-sdk/mididiag/main.cpp
+++ b/src/app-sdk/mididiag/main.cpp
@@ -700,6 +700,33 @@ bool DoSectionWinRTMidi1ApiEndpoints(_In_ bool const verbose)
return true;
}
+void DisplayWinMMGetDevCapsErrorResult(MMRESULT result)
+{
+ switch (result)
+ {
+ case MMSYSERR_NOERROR:
+ // don't display anything
+ break;
+
+ case MMSYSERR_NODRIVER:
+ OutputError("Port returned MMSYSERR_NODRIVER. This is normal for unused port numbers.");
+ break;
+
+ case MMSYSERR_INVALPARAM:
+ OutputError("Port returned MMSYSERR_INVALPARAM.");
+ break;
+
+ case MMSYSERR_BADDEVICEID:
+ OutputError("Port returned MMSYSERR_BADDEVICEID.");
+ break;
+
+ case MMSYSERR_NOMEM:
+ OutputError("Port returned MMSYSERR_NOMEM.");
+ break;
+
+ }
+}
+
bool DoSectionWinMMMidi1ApiEndpoints(_In_ bool const verbose)
{
UNREFERENCED_PARAMETER(verbose);
@@ -718,24 +745,24 @@ bool DoSectionWinMMMidi1ApiEndpoints(_In_ bool const verbose)
for (uint32_t i = 0; i < inputDeviceCount; i++)
{
- MIDIINCAPS inputCaps{};
+ MIDIINCAPSW inputCaps{};
auto result = midiInGetDevCaps(i, &inputCaps, sizeof(inputCaps));
- if (result == MMSYSERR_NOERROR)
- {
- OutputNumericField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_ID, i);
- OutputStringField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_NAME, std::wstring{ inputCaps.szPname });
+ OutputNumericField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_ID, i);
+ OutputStringField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_NAME, std::wstring{ inputCaps.szPname });
- if (i < inputDeviceCount - 1)
- {
- OutputItemSeparator();
- }
- }
- else
+ DisplayWinMMGetDevCapsErrorResult(result);
+
+ if (result != MMSYSERR_NOERROR)
{
errorCount++;
}
+
+ if (i < inputDeviceCount - 1)
+ {
+ OutputItemSeparator();
+ }
}
OutputItemSeparator();
@@ -763,24 +790,23 @@ bool DoSectionWinMMMidi1ApiEndpoints(_In_ bool const verbose)
for (uint32_t i = 0; i < outputDeviceCount; i++)
{
- MIDIOUTCAPS outputCaps{};
+ MIDIOUTCAPSW outputCaps{};
auto result = midiOutGetDevCaps(i, &outputCaps, sizeof(outputCaps));
- if (result == MMSYSERR_NOERROR)
- {
- OutputNumericField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_ID, i);
- OutputStringField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_NAME, std::wstring{ outputCaps.szPname });
+ OutputNumericField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_ID, i);
+ OutputStringField(MIDIDIAG_FIELD_LABEL_WINMM_ENDPOINT_NAME, std::wstring{ outputCaps.szPname });
+ DisplayWinMMGetDevCapsErrorResult(result);
- if (i < outputDeviceCount - 1)
- {
- OutputItemSeparator();
- }
- }
- else
+ if (result != MMSYSERR_NOERROR)
{
errorCount++;
}
+
+ if (i < outputDeviceCount - 1)
+ {
+ OutputItemSeparator();
+ }
}
OutputItemSeparator();
diff --git a/src/app-sdk/mididiag/mididiag.vcxproj b/src/app-sdk/mididiag/mididiag.vcxproj
index 17683d00..5d35151d 100644
--- a/src/app-sdk/mididiag/mididiag.vcxproj
+++ b/src/app-sdk/mididiag/mididiag.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/src/app-sdk/mididiag/packages.config b/src/app-sdk/mididiag/packages.config
index 22fd9140..1baaa91b 100644
--- a/src/app-sdk/mididiag/packages.config
+++ b/src/app-sdk/mididiag/packages.config
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj b/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj
index d068231b..b127e8d7 100644
--- a/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj
+++ b/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/src/app-sdk/midimdnsinfo/packages.config b/src/app-sdk/midimdnsinfo/packages.config
index 22fd9140..1baaa91b 100644
--- a/src/app-sdk/midimdnsinfo/packages.config
+++ b/src/app-sdk/midimdnsinfo/packages.config
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj b/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj
index 910c5fe9..62254a9c 100644
--- a/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj
+++ b/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj
@@ -2,7 +2,7 @@
- Microsoft.Windows.Devices.Midi2.1.0.3-preview-10.250204-1909
+ Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250206-2105
true
true
true
diff --git a/src/app-sdk/midiusbinfo/packages.config b/src/app-sdk/midiusbinfo/packages.config
index 22fd9140..1baaa91b 100644
--- a/src/app-sdk/midiusbinfo/packages.config
+++ b/src/app-sdk/midiusbinfo/packages.config
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj b/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj
index d565d54d..6b7bd855 100644
--- a/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj
+++ b/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj
@@ -271,6 +271,10 @@
+
+
+
+
@@ -450,6 +454,10 @@
+
+
+
+
@@ -715,7 +723,7 @@
-
+
@@ -748,6 +756,10 @@
+
+
+
+
diff --git a/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj.filters b/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj.filters
index ed509b42..da621e97 100644
--- a/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj.filters
+++ b/src/app-sdk/winrt/Microsoft.Windows.Devices.Midi2.vcxproj.filters
@@ -82,6 +82,18 @@
SDK\Core\Enumeration\Metadata\Windows
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
@@ -166,6 +178,18 @@
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
@@ -480,12 +504,24 @@
SDK\Endpoints\Network
-
+
SDK\Endpoints\Network
SDK\Core\Enumeration\Metadata\Windows
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
+
+ SDK\Endpoints\Network\Watcher
+
@@ -595,5 +631,8 @@
{2abca8b5-6d62-4dfd-91a2-4686707eec5a}
+
+ {60e7ce2d-4313-4103-8448-6de522b5c236}
+
\ No newline at end of file
diff --git a/src/app-sdk/winrt/MidiAdvertisedHost.idl b/src/app-sdk/winrt/MidiNetworkAdvertisedHost.idl
similarity index 96%
rename from src/app-sdk/winrt/MidiAdvertisedHost.idl
rename to src/app-sdk/winrt/MidiNetworkAdvertisedHost.idl
index dc0aa6fa..100fcf87 100644
--- a/src/app-sdk/winrt/MidiAdvertisedHost.idl
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHost.idl
@@ -9,7 +9,7 @@
namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
{
[experimental]
- struct MidiAdvertisedHost
+ struct MidiNetworkAdvertisedHost
{
// from Windows props
String DeviceId;
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.cpp b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.cpp
new file mode 100644
index 00000000..cfe83294
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.cpp
@@ -0,0 +1,19 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#include "pch.h"
+#include "MidiNetworkAdvertisedHostAddedEventArgs.h"
+#include "Endpoints.Network.MidiNetworkAdvertisedHostAddedEventArgs.g.cpp"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ midi2::Endpoints::Network::MidiNetworkAdvertisedHost MidiNetworkAdvertisedHostAddedEventArgs::AddedHost()
+ {
+ throw hresult_not_implemented();
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.h b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.h
new file mode 100644
index 00000000..e9a2f96d
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.h
@@ -0,0 +1,20 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#pragma once
+#include "Endpoints.Network.MidiNetworkAdvertisedHostAddedEventArgs.g.h"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ struct MidiNetworkAdvertisedHostAddedEventArgs : MidiNetworkAdvertisedHostAddedEventArgsT
+ {
+ MidiNetworkAdvertisedHostAddedEventArgs() = default;
+
+ midi2::Endpoints::Network::MidiNetworkAdvertisedHost AddedHost();
+ };
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.idl b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.idl
new file mode 100644
index 00000000..687605d1
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostAddedEventArgs.idl
@@ -0,0 +1,19 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+import "MidiNetworkAdvertisedHost.idl";
+
+namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
+{
+ [experimental]
+ [default_interface]
+ runtimeclass MidiNetworkAdvertisedHostAddedEventArgs
+ {
+ MidiNetworkAdvertisedHost AddedHost{ get; };
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.cpp b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.cpp
new file mode 100644
index 00000000..d67e605c
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.cpp
@@ -0,0 +1,23 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#include "pch.h"
+#include "MidiNetworkAdvertisedHostRemovedEventArgs.h"
+#include "Endpoints.Network.MidiNetworkAdvertisedHostRemovedEventArgs.g.cpp"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ winrt::hstring MidiNetworkAdvertisedHostRemovedEventArgs::HostId()
+ {
+ throw hresult_not_implemented();
+ }
+ enumeration::DeviceInformationUpdate MidiNetworkAdvertisedHostRemovedEventArgs::DeviceInformationUpdate()
+ {
+ throw hresult_not_implemented();
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.h b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.h
new file mode 100644
index 00000000..bf97b269
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.h
@@ -0,0 +1,21 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#pragma once
+#include "Endpoints.Network.MidiNetworkAdvertisedHostRemovedEventArgs.g.h"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ struct MidiNetworkAdvertisedHostRemovedEventArgs : MidiNetworkAdvertisedHostRemovedEventArgsT
+ {
+ MidiNetworkAdvertisedHostRemovedEventArgs() = default;
+
+ winrt::hstring HostId();
+ enumeration::DeviceInformationUpdate DeviceInformationUpdate();
+ };
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.idl b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.idl
new file mode 100644
index 00000000..ed8bcfb6
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostRemovedEventArgs.idl
@@ -0,0 +1,19 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
+{
+ [experimental]
+ [default_interface]
+ runtimeclass MidiNetworkAdvertisedHostRemovedEventArgs
+ {
+ String HostId { get; };
+
+ Windows.Devices.Enumeration.DeviceInformationUpdate DeviceInformationUpdate{ get; };
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.cpp b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.cpp
new file mode 100644
index 00000000..373e3fb2
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.cpp
@@ -0,0 +1,23 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#include "pch.h"
+#include "MidiNetworkAdvertisedHostUpdatedEventArgs.h"
+#include "Endpoints.Network.MidiNetworkAdvertisedHostUpdatedEventArgs.g.cpp"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ hstring MidiNetworkAdvertisedHostUpdatedEventArgs::HostId()
+ {
+ throw hresult_not_implemented();
+ }
+ winrt::Windows::Devices::Enumeration::DeviceInformationUpdate MidiNetworkAdvertisedHostUpdatedEventArgs::DeviceInformationUpdate()
+ {
+ throw hresult_not_implemented();
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.h b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.h
new file mode 100644
index 00000000..f4ed0e3c
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.h
@@ -0,0 +1,21 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#pragma once
+#include "Endpoints.Network.MidiNetworkAdvertisedHostUpdatedEventArgs.g.h"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ struct MidiNetworkAdvertisedHostUpdatedEventArgs : MidiNetworkAdvertisedHostUpdatedEventArgsT
+ {
+ MidiNetworkAdvertisedHostUpdatedEventArgs() = default;
+
+ winrt::hstring HostId();
+ enumeration::DeviceInformationUpdate DeviceInformationUpdate();
+ };
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.idl b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.idl
new file mode 100644
index 00000000..53f49e77
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostUpdatedEventArgs.idl
@@ -0,0 +1,19 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
+{
+ [experimental]
+ [default_interface]
+ runtimeclass MidiNetworkAdvertisedHostUpdatedEventArgs
+ {
+ String HostId { get; };
+
+ Windows.Devices.Enumeration.DeviceInformationUpdate DeviceInformationUpdate{ get; };
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.cpp b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.cpp
new file mode 100644
index 00000000..f6a90737
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.cpp
@@ -0,0 +1,115 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+#include "pch.h"
+#include "MidiNetworkAdvertisedHostWatcher.h"
+#include "Endpoints.Network.MidiNetworkAdvertisedHostWatcher.g.cpp"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ midi2::Endpoints::Network::MidiNetworkAdvertisedHostWatcher MidiNetworkAdvertisedHostWatcher::Create()
+ {
+ throw hresult_not_implemented();
+ }
+ void MidiNetworkAdvertisedHostWatcher::Start()
+ {
+ throw hresult_not_implemented();
+ }
+ void MidiNetworkAdvertisedHostWatcher::Stop()
+ {
+ throw hresult_not_implemented();
+ }
+ collections::IMapView MidiNetworkAdvertisedHostWatcher::EnumeratedHosts()
+ {
+ throw hresult_not_implemented();
+ }
+ winrt::Windows::Devices::Enumeration::DeviceWatcherStatus MidiNetworkAdvertisedHostWatcher::Status()
+ {
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ winrt::event_token MidiNetworkAdvertisedHostWatcher::Added(
+ foundation::TypedEventHandler const& handler)
+ {
+ UNREFERENCED_PARAMETER(handler);
+
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ void MidiNetworkAdvertisedHostWatcher::Added(winrt::event_token const& token) noexcept
+ {
+ UNREFERENCED_PARAMETER(token);
+
+ }
+
+ _Use_decl_annotations_
+ winrt::event_token MidiNetworkAdvertisedHostWatcher::Removed(
+ foundation::TypedEventHandler const& handler)
+ {
+ UNREFERENCED_PARAMETER(handler);
+
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ void MidiNetworkAdvertisedHostWatcher::Removed(winrt::event_token const& token) noexcept
+ {
+ UNREFERENCED_PARAMETER(token);
+
+ }
+
+ _Use_decl_annotations_
+ winrt::event_token MidiNetworkAdvertisedHostWatcher::Updated(
+ foundation::TypedEventHandler const& handler)
+ {
+ UNREFERENCED_PARAMETER(handler);
+
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ void MidiNetworkAdvertisedHostWatcher::Updated(winrt::event_token const& token) noexcept
+ {
+ UNREFERENCED_PARAMETER(token);
+
+ }
+
+ _Use_decl_annotations_
+ winrt::event_token MidiNetworkAdvertisedHostWatcher::EnumerationCompleted(
+ foundation::TypedEventHandler const& handler)
+ {
+ UNREFERENCED_PARAMETER(handler);
+
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ void MidiNetworkAdvertisedHostWatcher::EnumerationCompleted(winrt::event_token const& token) noexcept
+ {
+ UNREFERENCED_PARAMETER(token);
+
+ }
+
+ _Use_decl_annotations_
+ winrt::event_token MidiNetworkAdvertisedHostWatcher::Stopped(
+ foundation::TypedEventHandler const& handler)
+ {
+ UNREFERENCED_PARAMETER(handler);
+
+ throw hresult_not_implemented();
+ }
+
+ _Use_decl_annotations_
+ void MidiNetworkAdvertisedHostWatcher::Stopped(winrt::event_token const& token) noexcept
+ {
+ UNREFERENCED_PARAMETER(token);
+
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.h b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.h
new file mode 100644
index 00000000..2af6acba
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.h
@@ -0,0 +1,39 @@
+#pragma once
+#include "Endpoints.Network.MidiNetworkAdvertisedHostWatcher.g.h"
+
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::implementation
+{
+ struct MidiNetworkAdvertisedHostWatcher : MidiNetworkAdvertisedHostWatcherT
+ {
+ MidiNetworkAdvertisedHostWatcher() = default;
+
+ static midi2::Endpoints::Network::MidiNetworkAdvertisedHostWatcher Create();
+
+ void Start();
+ void Stop();
+
+ collections::IMapView EnumeratedHosts();
+ enumeration::DeviceWatcherStatus Status();
+
+ winrt::event_token Added(_In_ winrt::Windows::Foundation::TypedEventHandler const& handler);
+ void Added(_In_ winrt::event_token const& token) noexcept;
+
+ winrt::event_token Removed(_In_ winrt::Windows::Foundation::TypedEventHandler const& handler);
+ void Removed(_In_ winrt::event_token const& token) noexcept;
+
+ winrt::event_token Updated(_In_ winrt::Windows::Foundation::TypedEventHandler const& handler);
+ void Updated(_In_ winrt::event_token const& token) noexcept;
+
+ winrt::event_token EnumerationCompleted(_In_ winrt::Windows::Foundation::TypedEventHandler const& handler);
+ void EnumerationCompleted(_In_ winrt::event_token const& token) noexcept;
+
+ winrt::event_token Stopped(_In_ winrt::Windows::Foundation::TypedEventHandler const& handler);
+ void Stopped(_In_ winrt::event_token const& token) noexcept;
+ };
+}
+namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::factory_implementation
+{
+ struct MidiNetworkAdvertisedHostWatcher : MidiNetworkAdvertisedHostWatcherT
+ {
+ };
+}
diff --git a/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.idl b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.idl
new file mode 100644
index 00000000..512a2bd5
--- /dev/null
+++ b/src/app-sdk/winrt/MidiNetworkAdvertisedHostWatcher.idl
@@ -0,0 +1,35 @@
+// Copyright (c) Microsoft Corporation and Contributors.
+// Licensed under the MIT License
+// ============================================================================
+// This is part of the Windows MIDI Services App SDK and should be used
+// in your Windows application via an official binary distribution.
+// Further information: https://aka.ms/midi
+// ============================================================================
+
+import "MidiNetworkAdvertisedHostAddedEventArgs.idl";
+import "MidiNetworkAdvertisedHostRemovedEventArgs.idl";
+import "MidiNetworkAdvertisedHostUpdatedEventArgs.idl";
+
+namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
+{
+ [experimental]
+ [default_interface]
+ runtimeclass MidiNetworkAdvertisedHostWatcher
+ {
+ static MidiNetworkAdvertisedHostWatcher Create();
+
+ void Start();
+ void Stop();
+
+ Windows.Foundation.Collections.IMapView EnumeratedHosts{ get; };
+
+ Windows.Devices.Enumeration.DeviceWatcherStatus Status{ get; };
+
+ event Windows.Foundation.TypedEventHandler Added;
+ event Windows.Foundation.TypedEventHandler Removed;
+ event Windows.Foundation.TypedEventHandler Updated;
+
+ event Windows.Foundation.TypedEventHandler EnumerationCompleted;
+ event Windows.Foundation.TypedEventHandler Stopped;
+ }
+}
diff --git a/src/app-sdk/winrt/MidiNetworkEndpointManager.cpp b/src/app-sdk/winrt/MidiNetworkEndpointManager.cpp
index 36d71e71..f1f5e0c0 100644
--- a/src/app-sdk/winrt/MidiNetworkEndpointManager.cpp
+++ b/src/app-sdk/winrt/MidiNetworkEndpointManager.cpp
@@ -103,9 +103,9 @@ namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::impleme
- collections::IVector MidiNetworkEndpointManager::GetAdvertisedHosts()
+ collections::IVector MidiNetworkEndpointManager::GetAdvertisedHosts()
{
- auto results = winrt::single_threaded_vector();
+ auto results = winrt::single_threaded_vector();
auto entries = enumeration::DeviceInformation::FindAllAsync(
MidiNetworkUdpDnsSdQueryString(),
@@ -117,7 +117,7 @@ namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::impleme
{
for (auto const& entry : entries)
{
- MidiAdvertisedHost host;
+ MidiNetworkAdvertisedHost host;
//props.Append(L"System.Devices.AepService.ProtocolId"); // guid
//props.Append(L"System.Devices.Dnssd.HostName"); // string
diff --git a/src/app-sdk/winrt/MidiNetworkEndpointManager.h b/src/app-sdk/winrt/MidiNetworkEndpointManager.h
index 158a54c0..afbf672c 100644
--- a/src/app-sdk/winrt/MidiNetworkEndpointManager.h
+++ b/src/app-sdk/winrt/MidiNetworkEndpointManager.h
@@ -35,7 +35,7 @@ namespace winrt::Microsoft::Windows::Devices::Midi2::Endpoints::Network::impleme
static midi2::Endpoints::Network::MidiNetworkClientEndpointCreationResult CreateNetworkClient(midi2::Endpoints::Network::MidiNetworkClientEndpointCreationConfig const& creationConfig);
static midi2::Endpoints::Network::MidiNetworkClientEndpointRemovalResult RemoveNetworkClient(midi2::Endpoints::Network::MidiNetworkClientEndpointRemovalConfig const& removalConfig);
- static collections::IVector GetAdvertisedHosts();
+ static collections::IVector GetAdvertisedHosts();
};
}
diff --git a/src/app-sdk/winrt/MidiNetworkEndpointManager.idl b/src/app-sdk/winrt/MidiNetworkEndpointManager.idl
index 82e9a668..b855ea79 100644
--- a/src/app-sdk/winrt/MidiNetworkEndpointManager.idl
+++ b/src/app-sdk/winrt/MidiNetworkEndpointManager.idl
@@ -18,7 +18,7 @@ import "MidiNetworkClientEndpointCreationConfig.idl";
import "MidiNetworkClientEndpointRemovalResult.idl";
import "MidiNetworkClientEndpointRemovalConfig.idl";
-import "MidiAdvertisedHost.idl";
+import "MidiNetworkAdvertisedHost.idl";
namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
{
@@ -42,7 +42,7 @@ namespace Microsoft.Windows.Devices.Midi2.Endpoints.Network
MidiNetworkClientEndpointRemovalConfig removalConfig);
// list the hosts currently visible to this PC
- static Windows.Foundation.Collections.IVector GetAdvertisedHosts();
+ static Windows.Foundation.Collections.IVector GetAdvertisedHosts();
static String MidiNetworkUdpDnsServiceType{ get; };
static String MidiNetworkUdpDnsSdQueryString{ get; };
diff --git a/src/app-sdk/winrt/MidiReporting.cpp b/src/app-sdk/winrt/MidiReporting.cpp
index 0df0713a..220a5ccf 100644
--- a/src/app-sdk/winrt/MidiReporting.cpp
+++ b/src/app-sdk/winrt/MidiReporting.cpp
@@ -20,7 +20,7 @@ namespace winrt::Microsoft::Windows::Devices::Midi2::Reporting::implementation
try
{
winrt::com_ptr serviceTransport;
- winrt::com_ptr metadataReporter;
+ winrt::com_ptr metadataReporter;
serviceTransport = winrt::create_instance(__uuidof(Midi2MidiSrvTransport), CLSCTX_ALL);
@@ -28,7 +28,7 @@ namespace winrt::Microsoft::Windows::Devices::Midi2::Reporting::implementation
{
- if (SUCCEEDED(serviceTransport->Activate(__uuidof(IMidiServicePluginMetadataReporterInterface), (void**)&metadataReporter)))
+ if (SUCCEEDED(serviceTransport->Activate(__uuidof(IMidiServicePluginMetadataReporter), (void**)&metadataReporter)))
{
LPWSTR rpcCallJson{ nullptr };
diff --git a/src/shared/api-ref/Arm64EC/WindowsMidiServices.h b/src/shared/api-ref/Arm64EC/WindowsMidiServices.h
index f30f661f..2bead6a3 100644
--- a/src/shared/api-ref/Arm64EC/WindowsMidiServices.h
+++ b/src/shared/api-ref/Arm64EC/WindowsMidiServices.h
@@ -87,18 +87,18 @@ typedef interface IMidiBiDi IMidiBiDi;
#endif /* __IMidiBiDi_FWD_DEFINED__ */
-#ifndef __IMidiDeviceManagerInterface_FWD_DEFINED__
-#define __IMidiDeviceManagerInterface_FWD_DEFINED__
-typedef interface IMidiDeviceManagerInterface IMidiDeviceManagerInterface;
+#ifndef __IMidiDeviceManager_FWD_DEFINED__
+#define __IMidiDeviceManager_FWD_DEFINED__
+typedef interface IMidiDeviceManager IMidiDeviceManager;
-#endif /* __IMidiDeviceManagerInterface_FWD_DEFINED__ */
+#endif /* __IMidiDeviceManager_FWD_DEFINED__ */
-#ifndef __IMidiServiceConfigurationManagerInterface_FWD_DEFINED__
-#define __IMidiServiceConfigurationManagerInterface_FWD_DEFINED__
-typedef interface IMidiServiceConfigurationManagerInterface IMidiServiceConfigurationManagerInterface;
+#ifndef __IMidiServiceConfigurationManager_FWD_DEFINED__
+#define __IMidiServiceConfigurationManager_FWD_DEFINED__
+typedef interface IMidiServiceConfigurationManager IMidiServiceConfigurationManager;
-#endif /* __IMidiServiceConfigurationManagerInterface_FWD_DEFINED__ */
+#endif /* __IMidiServiceConfigurationManager_FWD_DEFINED__ */
#ifndef __IMidiTransportConfigurationManager_FWD_DEFINED__
@@ -122,11 +122,11 @@ typedef interface IMidiDataTransform IMidiDataTransform;
#endif /* __IMidiDataTransform_FWD_DEFINED__ */
-#ifndef __IMidiEndpointProtocolManagerInterface_FWD_DEFINED__
-#define __IMidiEndpointProtocolManagerInterface_FWD_DEFINED__
-typedef interface IMidiEndpointProtocolManagerInterface IMidiEndpointProtocolManagerInterface;
+#ifndef __IMidiEndpointProtocolManager_FWD_DEFINED__
+#define __IMidiEndpointProtocolManager_FWD_DEFINED__
+typedef interface IMidiEndpointProtocolManager IMidiEndpointProtocolManager;
-#endif /* __IMidiEndpointProtocolManagerInterface_FWD_DEFINED__ */
+#endif /* __IMidiEndpointProtocolManager_FWD_DEFINED__ */
#ifndef __IMidiEndpointManager_FWD_DEFINED__
@@ -150,11 +150,11 @@ typedef interface IMidiServiceTransformPluginMetadataProvider IMidiServiceTransf
#endif /* __IMidiServiceTransformPluginMetadataProvider_FWD_DEFINED__ */
-#ifndef __IMidiServicePluginMetadataReporterInterface_FWD_DEFINED__
-#define __IMidiServicePluginMetadataReporterInterface_FWD_DEFINED__
-typedef interface IMidiServicePluginMetadataReporterInterface IMidiServicePluginMetadataReporterInterface;
+#ifndef __IMidiServicePluginMetadataReporter_FWD_DEFINED__
+#define __IMidiServicePluginMetadataReporter_FWD_DEFINED__
+typedef interface IMidiServicePluginMetadataReporter IMidiServicePluginMetadataReporter;
-#endif /* __IMidiServicePluginMetadataReporterInterface_FWD_DEFINED__ */
+#endif /* __IMidiServicePluginMetadataReporter_FWD_DEFINED__ */
#ifndef __IMidiSessionTracker_FWD_DEFINED__
@@ -291,19 +291,8 @@ typedef struct _DEVPROPERTY *PDEVPROPERTY;
#include
#include
#endif
-typedef /* [public][public][public][public] */
-enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0001
- {
- MidiApi_None = 0,
- MidiApi_Test = 1,
- MidiApi_Service = 2,
- MidiApi_Winmm = 3,
- MidiApi_Winrt1 = 4,
- MidiApi_Winrt2 = 5
- } MidiApi;
-
typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public][public][public][public] */
-enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0002
+enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0001
{
MidiDataFormats_Invalid = 0,
MidiDataFormats_ByteStream = 0x1,
@@ -312,7 +301,7 @@ enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0002
} MidiDataFormats;
typedef /* [public][public] */
-enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0003
+enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0002
{
MidiFlowIn = 0,
MidiFlowOut = ( MidiFlowIn + 1 ) ,
@@ -320,7 +309,7 @@ enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0003
} MidiFlow;
typedef /* [public][public][public][public][public][public][public] */
-enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0004
+enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0003
{
MetadataFlags_None = 0,
MetadataFlags_IsRuntimeCreatableByApps = 1,
@@ -329,13 +318,13 @@ enum __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0004
MetadataFlags_IsClientConfigurable = 8
} MetadataFlags;
-typedef /* [public] */ struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0005
+typedef /* [public] */ struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0004
{
MidiDataFormats DataFormat;
- MidiApi CallingApi;
+ GUID CallingApi;
} TRANSPORTCREATIONPARAMS;
-typedef struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0005 *PTRANSPORTCREATIONPARAMS;
+typedef struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0000_0004 *PTRANSPORTCREATIONPARAMS;
@@ -956,19 +945,19 @@ typedef struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0005_0003 *PMIDIENDPOI
extern RPC_IF_HANDLE __MIDL_itf_WindowsMidiServices_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_WindowsMidiServices_0000_0005_v0_0_s_ifspec;
-#ifndef __IMidiDeviceManagerInterface_INTERFACE_DEFINED__
-#define __IMidiDeviceManagerInterface_INTERFACE_DEFINED__
+#ifndef __IMidiDeviceManager_INTERFACE_DEFINED__
+#define __IMidiDeviceManager_INTERFACE_DEFINED__
-/* interface IMidiDeviceManagerInterface */
+/* interface IMidiDeviceManager */
/* [uuid][local][object] */
-EXTERN_C const IID IID_IMidiDeviceManagerInterface;
+EXTERN_C const IID IID_IMidiDeviceManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("A04374D3-4514-44E1-A2F9-7D8B907AEF1F")
- IMidiDeviceManagerInterface : public IUnknown
+ IMidiDeviceManager : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE ActivateVirtualParentDevice(
@@ -988,7 +977,7 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][in] */
_In_ MidiFlow midiFlow,
/* [annotation][in] */
- _In_ PMIDIENDPOINTCOMMONPROPERTIES commonProperties,
+ _In_ const PMIDIENDPOINTCOMMONPROPERTIES commonProperties,
/* [annotation][in] */
_In_ ULONG intPropertyCount,
/* [annotation][in] */
@@ -1039,28 +1028,28 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
#else /* C style interface */
- typedef struct IMidiDeviceManagerInterfaceVtbl
+ typedef struct IMidiDeviceManagerVtbl
{
BEGIN_INTERFACE
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
DECLSPEC_XFGVIRT(IUnknown, AddRef)
ULONG ( STDMETHODCALLTYPE *AddRef )(
- IMidiDeviceManagerInterface * This);
+ IMidiDeviceManager * This);
DECLSPEC_XFGVIRT(IUnknown, Release)
ULONG ( STDMETHODCALLTYPE *Release )(
- IMidiDeviceManagerInterface * This);
+ IMidiDeviceManager * This);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, ActivateVirtualParentDevice)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, ActivateVirtualParentDevice)
HRESULT ( STDMETHODCALLTYPE *ActivateVirtualParentDevice )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][in] */
_In_ ULONG devPropertyCount,
/* [annotation][size_is][in] */
@@ -1069,9 +1058,9 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][string][out] */
_Out_opt_ LPWSTR *createdDeviceId);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, ActivateEndpoint)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, ActivateEndpoint)
HRESULT ( STDMETHODCALLTYPE *ActivateEndpoint )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR parentInstanceId,
/* [annotation][in] */
@@ -1079,7 +1068,7 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][in] */
_In_ MidiFlow midiFlow,
/* [annotation][in] */
- _In_ PMIDIENDPOINTCOMMONPROPERTIES commonProperties,
+ _In_ const PMIDIENDPOINTCOMMONPROPERTIES commonProperties,
/* [annotation][in] */
_In_ ULONG intPropertyCount,
/* [annotation][in] */
@@ -1093,9 +1082,9 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][string][out] */
_Out_opt_ LPWSTR *createdEndpointDeviceInterfaceId);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, UpdateEndpointProperties)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, UpdateEndpointProperties)
HRESULT ( STDMETHODCALLTYPE *UpdateEndpointProperties )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR endpointDeviceInterfaceId,
/* [annotation][in] */
@@ -1103,9 +1092,9 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][size_is][in] */
_In_ const DEVPROPERTY *interfaceDevProperties);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, DeleteEndpointProperties)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, DeleteEndpointProperties)
HRESULT ( STDMETHODCALLTYPE *DeleteEndpointProperties )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR endpointDeviceInterfaceId,
/* [annotation][in] */
@@ -1113,21 +1102,21 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
/* [annotation][size_is][in] */
_In_opt_ const DEVPROPERTY *devPropKeys);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, DeactivateEndpoint)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, DeactivateEndpoint)
HRESULT ( STDMETHODCALLTYPE *DeactivateEndpoint )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR instanceId);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, RemoveEndpoint)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, RemoveEndpoint)
HRESULT ( STDMETHODCALLTYPE *RemoveEndpoint )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR instanceId);
- DECLSPEC_XFGVIRT(IMidiDeviceManagerInterface, UpdateTransportConfiguration)
+ DECLSPEC_XFGVIRT(IMidiDeviceManager, UpdateTransportConfiguration)
HRESULT ( STDMETHODCALLTYPE *UpdateTransportConfiguration )(
- IMidiDeviceManagerInterface * This,
+ IMidiDeviceManager * This,
/* [annotation][in] */
_In_ GUID transportId,
/* [annotation][string][in] */
@@ -1136,11 +1125,11 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
_Out_ LPWSTR *responseJson);
END_INTERFACE
- } IMidiDeviceManagerInterfaceVtbl;
+ } IMidiDeviceManagerVtbl;
- interface IMidiDeviceManagerInterface
+ interface IMidiDeviceManager
{
- CONST_VTBL struct IMidiDeviceManagerInterfaceVtbl *lpVtbl;
+ CONST_VTBL struct IMidiDeviceManagerVtbl *lpVtbl;
};
@@ -1148,35 +1137,35 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
#ifdef COBJMACROS
-#define IMidiDeviceManagerInterface_QueryInterface(This,riid,ppvObject) \
+#define IMidiDeviceManager_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-#define IMidiDeviceManagerInterface_AddRef(This) \
+#define IMidiDeviceManager_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
-#define IMidiDeviceManagerInterface_Release(This) \
+#define IMidiDeviceManager_Release(This) \
( (This)->lpVtbl -> Release(This) )
-#define IMidiDeviceManagerInterface_ActivateVirtualParentDevice(This,devPropertyCount,devProperties,createInfo,createdDeviceId) \
+#define IMidiDeviceManager_ActivateVirtualParentDevice(This,devPropertyCount,devProperties,createInfo,createdDeviceId) \
( (This)->lpVtbl -> ActivateVirtualParentDevice(This,devPropertyCount,devProperties,createInfo,createdDeviceId) )
-#define IMidiDeviceManagerInterface_ActivateEndpoint(This,parentInstanceId,umpOnly,midiFlow,commonProperties,intPropertyCount,devPropertyCount,interfaceDevProperties,deviceDevProperties,createInfo,createdEndpointDeviceInterfaceId) \
+#define IMidiDeviceManager_ActivateEndpoint(This,parentInstanceId,umpOnly,midiFlow,commonProperties,intPropertyCount,devPropertyCount,interfaceDevProperties,deviceDevProperties,createInfo,createdEndpointDeviceInterfaceId) \
( (This)->lpVtbl -> ActivateEndpoint(This,parentInstanceId,umpOnly,midiFlow,commonProperties,intPropertyCount,devPropertyCount,interfaceDevProperties,deviceDevProperties,createInfo,createdEndpointDeviceInterfaceId) )
-#define IMidiDeviceManagerInterface_UpdateEndpointProperties(This,endpointDeviceInterfaceId,intPropertyCount,interfaceDevProperties) \
+#define IMidiDeviceManager_UpdateEndpointProperties(This,endpointDeviceInterfaceId,intPropertyCount,interfaceDevProperties) \
( (This)->lpVtbl -> UpdateEndpointProperties(This,endpointDeviceInterfaceId,intPropertyCount,interfaceDevProperties) )
-#define IMidiDeviceManagerInterface_DeleteEndpointProperties(This,endpointDeviceInterfaceId,devPropertyCount,devPropKeys) \
+#define IMidiDeviceManager_DeleteEndpointProperties(This,endpointDeviceInterfaceId,devPropertyCount,devPropKeys) \
( (This)->lpVtbl -> DeleteEndpointProperties(This,endpointDeviceInterfaceId,devPropertyCount,devPropKeys) )
-#define IMidiDeviceManagerInterface_DeactivateEndpoint(This,instanceId) \
+#define IMidiDeviceManager_DeactivateEndpoint(This,instanceId) \
( (This)->lpVtbl -> DeactivateEndpoint(This,instanceId) )
-#define IMidiDeviceManagerInterface_RemoveEndpoint(This,instanceId) \
+#define IMidiDeviceManager_RemoveEndpoint(This,instanceId) \
( (This)->lpVtbl -> RemoveEndpoint(This,instanceId) )
-#define IMidiDeviceManagerInterface_UpdateTransportConfiguration(This,transportId,configurationJson,responseJson) \
+#define IMidiDeviceManager_UpdateTransportConfiguration(This,transportId,configurationJson,responseJson) \
( (This)->lpVtbl -> UpdateTransportConfiguration(This,transportId,configurationJson,responseJson) )
#endif /* COBJMACROS */
@@ -1187,22 +1176,22 @@ EXTERN_C const IID IID_IMidiDeviceManagerInterface;
-#endif /* __IMidiDeviceManagerInterface_INTERFACE_DEFINED__ */
+#endif /* __IMidiDeviceManager_INTERFACE_DEFINED__ */
-#ifndef __IMidiServiceConfigurationManagerInterface_INTERFACE_DEFINED__
-#define __IMidiServiceConfigurationManagerInterface_INTERFACE_DEFINED__
+#ifndef __IMidiServiceConfigurationManager_INTERFACE_DEFINED__
+#define __IMidiServiceConfigurationManager_INTERFACE_DEFINED__
-/* interface IMidiServiceConfigurationManagerInterface */
+/* interface IMidiServiceConfigurationManager */
/* [uuid][local][object] */
-EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
+EXTERN_C const IID IID_IMidiServiceConfigurationManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("6c21fcda-051b-4f06-8d40-f5bced5957c0")
- IMidiServiceConfigurationManagerInterface : public IUnknown
+ IMidiServiceConfigurationManager : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetTransportCreateActionEntry(
@@ -1244,52 +1233,52 @@ EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
#else /* C style interface */
- typedef struct IMidiServiceConfigurationManagerInterfaceVtbl
+ typedef struct IMidiServiceConfigurationManagerVtbl
{
BEGIN_INTERFACE
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
DECLSPEC_XFGVIRT(IUnknown, AddRef)
ULONG ( STDMETHODCALLTYPE *AddRef )(
- IMidiServiceConfigurationManagerInterface * This);
+ IMidiServiceConfigurationManager * This);
DECLSPEC_XFGVIRT(IUnknown, Release)
ULONG ( STDMETHODCALLTYPE *Release )(
- IMidiServiceConfigurationManagerInterface * This);
+ IMidiServiceConfigurationManager * This);
- DECLSPEC_XFGVIRT(IMidiServiceConfigurationManagerInterface, GetTransportCreateActionEntry)
+ DECLSPEC_XFGVIRT(IMidiServiceConfigurationManager, GetTransportCreateActionEntry)
HRESULT ( STDMETHODCALLTYPE *GetTransportCreateActionEntry )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR sourceTransportJson,
/* [annotation][string][out] */
_Out_ LPWSTR *responseJson);
- DECLSPEC_XFGVIRT(IMidiServiceConfigurationManagerInterface, GetTransportUpdateActionEntry)
+ DECLSPEC_XFGVIRT(IMidiServiceConfigurationManager, GetTransportUpdateActionEntry)
HRESULT ( STDMETHODCALLTYPE *GetTransportUpdateActionEntry )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR sourceTransportJson,
/* [annotation][string][out] */
_Out_ LPWSTR *responseJson);
- DECLSPEC_XFGVIRT(IMidiServiceConfigurationManagerInterface, GetTransportRemoveActionEntry)
+ DECLSPEC_XFGVIRT(IMidiServiceConfigurationManager, GetTransportRemoveActionEntry)
HRESULT ( STDMETHODCALLTYPE *GetTransportRemoveActionEntry )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR sourceTransportJson,
/* [annotation][string][out] */
_Out_ LPWSTR *responseJson);
- DECLSPEC_XFGVIRT(IMidiServiceConfigurationManagerInterface, GetMatchingEndpointEntry)
+ DECLSPEC_XFGVIRT(IMidiServiceConfigurationManager, GetMatchingEndpointEntry)
HRESULT ( STDMETHODCALLTYPE *GetMatchingEndpointEntry )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [annotation][string][in] */
_In_ LPCWSTR sourceActionObjectJson,
/* [annotation][string][in] */
@@ -1297,9 +1286,9 @@ EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
/* [annotation][string][out] */
_Out_ LPWSTR *responseJson);
- DECLSPEC_XFGVIRT(IMidiServiceConfigurationManagerInterface, GetCachedEndpointUpdateEntry)
+ DECLSPEC_XFGVIRT(IMidiServiceConfigurationManager, GetCachedEndpointUpdateEntry)
HRESULT ( STDMETHODCALLTYPE *GetCachedEndpointUpdateEntry )(
- IMidiServiceConfigurationManagerInterface * This,
+ IMidiServiceConfigurationManager * This,
/* [annotation][in] */
_In_ GUID transportId,
/* [annotation][string][in] */
@@ -1308,11 +1297,11 @@ EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
_Out_ LPWSTR *responseJson);
END_INTERFACE
- } IMidiServiceConfigurationManagerInterfaceVtbl;
+ } IMidiServiceConfigurationManagerVtbl;
- interface IMidiServiceConfigurationManagerInterface
+ interface IMidiServiceConfigurationManager
{
- CONST_VTBL struct IMidiServiceConfigurationManagerInterfaceVtbl *lpVtbl;
+ CONST_VTBL struct IMidiServiceConfigurationManagerVtbl *lpVtbl;
};
@@ -1320,29 +1309,29 @@ EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
#ifdef COBJMACROS
-#define IMidiServiceConfigurationManagerInterface_QueryInterface(This,riid,ppvObject) \
+#define IMidiServiceConfigurationManager_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-#define IMidiServiceConfigurationManagerInterface_AddRef(This) \
+#define IMidiServiceConfigurationManager_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
-#define IMidiServiceConfigurationManagerInterface_Release(This) \
+#define IMidiServiceConfigurationManager_Release(This) \
( (This)->lpVtbl -> Release(This) )
-#define IMidiServiceConfigurationManagerInterface_GetTransportCreateActionEntry(This,sourceTransportJson,responseJson) \
+#define IMidiServiceConfigurationManager_GetTransportCreateActionEntry(This,sourceTransportJson,responseJson) \
( (This)->lpVtbl -> GetTransportCreateActionEntry(This,sourceTransportJson,responseJson) )
-#define IMidiServiceConfigurationManagerInterface_GetTransportUpdateActionEntry(This,sourceTransportJson,responseJson) \
+#define IMidiServiceConfigurationManager_GetTransportUpdateActionEntry(This,sourceTransportJson,responseJson) \
( (This)->lpVtbl -> GetTransportUpdateActionEntry(This,sourceTransportJson,responseJson) )
-#define IMidiServiceConfigurationManagerInterface_GetTransportRemoveActionEntry(This,sourceTransportJson,responseJson) \
+#define IMidiServiceConfigurationManager_GetTransportRemoveActionEntry(This,sourceTransportJson,responseJson) \
( (This)->lpVtbl -> GetTransportRemoveActionEntry(This,sourceTransportJson,responseJson) )
-#define IMidiServiceConfigurationManagerInterface_GetMatchingEndpointEntry(This,sourceActionObjectJson,searchKeyValuePairsJson,responseJson) \
+#define IMidiServiceConfigurationManager_GetMatchingEndpointEntry(This,sourceActionObjectJson,searchKeyValuePairsJson,responseJson) \
( (This)->lpVtbl -> GetMatchingEndpointEntry(This,sourceActionObjectJson,searchKeyValuePairsJson,responseJson) )
-#define IMidiServiceConfigurationManagerInterface_GetCachedEndpointUpdateEntry(This,transportId,searchKeyValuePairsJson,responseJson) \
+#define IMidiServiceConfigurationManager_GetCachedEndpointUpdateEntry(This,transportId,searchKeyValuePairsJson,responseJson) \
( (This)->lpVtbl -> GetCachedEndpointUpdateEntry(This,transportId,searchKeyValuePairsJson,responseJson) )
#endif /* COBJMACROS */
@@ -1353,7 +1342,7 @@ EXTERN_C const IID IID_IMidiServiceConfigurationManagerInterface;
-#endif /* __IMidiServiceConfigurationManagerInterface_INTERFACE_DEFINED__ */
+#endif /* __IMidiServiceConfigurationManager_INTERFACE_DEFINED__ */
#ifndef __IMidiTransportConfigurationManager_INTERFACE_DEFINED__
@@ -1375,9 +1364,9 @@ EXTERN_C const IID IID_IMidiTransportConfigurationManager;
/* [annotation][in] */
_In_ GUID transportId,
/* [annotation][in] */
- _In_opt_ IMidiDeviceManagerInterface *midiDeviceManager,
+ _In_opt_ IMidiDeviceManager *midiDeviceManager,
/* [annotation][in] */
- _In_opt_ IMidiServiceConfigurationManagerInterface *midiServiceConfigurationManager) = 0;
+ _In_opt_ IMidiServiceConfigurationManager *midiServiceConfigurationManager) = 0;
virtual HRESULT STDMETHODCALLTYPE UpdateConfiguration(
/* [annotation][string][in] */
@@ -1417,9 +1406,9 @@ EXTERN_C const IID IID_IMidiTransportConfigurationManager;
/* [annotation][in] */
_In_ GUID transportId,
/* [annotation][in] */
- _In_opt_ IMidiDeviceManagerInterface *midiDeviceManager,
+ _In_opt_ IMidiDeviceManager *midiDeviceManager,
/* [annotation][in] */
- _In_opt_ IMidiServiceConfigurationManagerInterface *midiServiceConfigurationManager);
+ _In_opt_ IMidiServiceConfigurationManager *midiServiceConfigurationManager);
DECLSPEC_XFGVIRT(IMidiTransportConfigurationManager, UpdateConfiguration)
HRESULT ( STDMETHODCALLTYPE *UpdateConfiguration )(
@@ -1610,7 +1599,7 @@ EXTERN_C const IID IID_IMidiDataTransform;
/* [annotation][in] */
_In_ LONGLONG context,
/* [annotation][in] */
- _In_ IMidiDeviceManagerInterface *midiDeviceManager) = 0;
+ _In_ IMidiDeviceManager *midiDeviceManager) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
@@ -1660,7 +1649,7 @@ EXTERN_C const IID IID_IMidiDataTransform;
/* [annotation][in] */
_In_ LONGLONG context,
/* [annotation][in] */
- _In_ IMidiDeviceManagerInterface *midiDeviceManager);
+ _In_ IMidiDeviceManager *midiDeviceManager);
DECLSPEC_XFGVIRT(IMidiDataTransform, Shutdown)
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
@@ -1736,19 +1725,19 @@ typedef struct __MIDL___MIDL_itf_WindowsMidiServices_0000_0010_0001 *PENDPOINTPR
extern RPC_IF_HANDLE __MIDL_itf_WindowsMidiServices_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_WindowsMidiServices_0000_0010_v0_0_s_ifspec;
-#ifndef __IMidiEndpointProtocolManagerInterface_INTERFACE_DEFINED__
-#define __IMidiEndpointProtocolManagerInterface_INTERFACE_DEFINED__
+#ifndef __IMidiEndpointProtocolManager_INTERFACE_DEFINED__
+#define __IMidiEndpointProtocolManager_INTERFACE_DEFINED__
-/* interface IMidiEndpointProtocolManagerInterface */
+/* interface IMidiEndpointProtocolManager */
/* [uuid][local][object] */
-EXTERN_C const IID IID_IMidiEndpointProtocolManagerInterface;
+EXTERN_C const IID IID_IMidiEndpointProtocolManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("7a3def20-fb76-49b6-a3a0-3dcbcda8f482")
- IMidiEndpointProtocolManagerInterface : public IUnknown
+ IMidiEndpointProtocolManager : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE DiscoverAndNegotiate(
@@ -1766,28 +1755,28 @@ EXTERN_C const IID IID_IMidiEndpointProtocolManagerInterface;
#else /* C style interface */
- typedef struct IMidiEndpointProtocolManagerInterfaceVtbl
+ typedef struct IMidiEndpointProtocolManagerVtbl
{
BEGIN_INTERFACE
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IMidiEndpointProtocolManagerInterface * This,
+ IMidiEndpointProtocolManager * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
DECLSPEC_XFGVIRT(IUnknown, AddRef)
ULONG ( STDMETHODCALLTYPE *AddRef )(
- IMidiEndpointProtocolManagerInterface * This);
+ IMidiEndpointProtocolManager * This);
DECLSPEC_XFGVIRT(IUnknown, Release)
ULONG ( STDMETHODCALLTYPE *Release )(
- IMidiEndpointProtocolManagerInterface * This);
+ IMidiEndpointProtocolManager * This);
- DECLSPEC_XFGVIRT(IMidiEndpointProtocolManagerInterface, DiscoverAndNegotiate)
+ DECLSPEC_XFGVIRT(IMidiEndpointProtocolManager, DiscoverAndNegotiate)
HRESULT ( STDMETHODCALLTYPE *DiscoverAndNegotiate )(
- IMidiEndpointProtocolManagerInterface * This,
+ IMidiEndpointProtocolManager * This,
/* [annotation][in] */
_In_ GUID transportId,
/* [annotation][string][in] */
@@ -1795,16 +1784,16 @@ EXTERN_C const IID IID_IMidiEndpointProtocolManagerInterface;
/* [annotation][in] */
_In_ ENDPOINTPROTOCOLNEGOTIATIONPARAMS negotiationParams);
- DECLSPEC_XFGVIRT(IMidiEndpointProtocolManagerInterface, IsEnabled)
+ DECLSPEC_XFGVIRT(IMidiEndpointProtocolManager, IsEnabled)
BOOL ( STDMETHODCALLTYPE *IsEnabled )(
- IMidiEndpointProtocolManagerInterface * This);
+ IMidiEndpointProtocolManager * This);
END_INTERFACE
- } IMidiEndpointProtocolManagerInterfaceVtbl;
+ } IMidiEndpointProtocolManagerVtbl;
- interface IMidiEndpointProtocolManagerInterface
+ interface IMidiEndpointProtocolManager
{
- CONST_VTBL struct IMidiEndpointProtocolManagerInterfaceVtbl *lpVtbl;
+ CONST_VTBL struct IMidiEndpointProtocolManagerVtbl *lpVtbl;
};
@@ -1812,20 +1801,20 @@ EXTERN_C const IID IID_IMidiEndpointProtocolManagerInterface;
#ifdef COBJMACROS
-#define IMidiEndpointProtocolManagerInterface_QueryInterface(This,riid,ppvObject) \
+#define IMidiEndpointProtocolManager_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-#define IMidiEndpointProtocolManagerInterface_AddRef(This) \
+#define IMidiEndpointProtocolManager_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
-#define IMidiEndpointProtocolManagerInterface_Release(This) \
+#define IMidiEndpointProtocolManager_Release(This) \
( (This)->lpVtbl -> Release(This) )
-#define IMidiEndpointProtocolManagerInterface_DiscoverAndNegotiate(This,transportId,endpointDeviceInterfaceId,negotiationParams) \
+#define IMidiEndpointProtocolManager_DiscoverAndNegotiate(This,transportId,endpointDeviceInterfaceId,negotiationParams) \
( (This)->lpVtbl -> DiscoverAndNegotiate(This,transportId,endpointDeviceInterfaceId,negotiationParams) )
-#define IMidiEndpointProtocolManagerInterface_IsEnabled(This) \
+#define IMidiEndpointProtocolManager_IsEnabled(This) \
( (This)->lpVtbl -> IsEnabled(This) )
#endif /* COBJMACROS */
@@ -1836,7 +1825,7 @@ EXTERN_C const IID IID_IMidiEndpointProtocolManagerInterface;
-#endif /* __IMidiEndpointProtocolManagerInterface_INTERFACE_DEFINED__ */
+#endif /* __IMidiEndpointProtocolManager_INTERFACE_DEFINED__ */
#ifndef __IMidiEndpointManager_INTERFACE_DEFINED__
@@ -1856,9 +1845,9 @@ EXTERN_C const IID IID_IMidiEndpointManager;
public:
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [annotation][in] */
- _In_ IMidiDeviceManagerInterface *midiDeviceManager,
+ _In_ IMidiDeviceManager *midiDeviceManager,
/* [annotation][in] */
- _In_ IMidiEndpointProtocolManagerInterface *midiEndpointProtocolManager) = 0;
+ _In_ IMidiEndpointProtocolManager *midiEndpointProtocolManager) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
@@ -1890,9 +1879,9 @@ EXTERN_C const IID IID_IMidiEndpointManager;
HRESULT ( STDMETHODCALLTYPE *Initialize )(
IMidiEndpointManager * This,
/* [annotation][in] */
- _In_ IMidiDeviceManagerInterface *midiDeviceManager,
+ _In_ IMidiDeviceManager *midiDeviceManager,
/* [annotation][in] */
- _In_ IMidiEndpointProtocolManagerInterface *midiEndpointProtocolManager);
+ _In_ IMidiEndpointProtocolManager *midiEndpointProtocolManager);
DECLSPEC_XFGVIRT(IMidiEndpointManager, Shutdown)
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
@@ -2181,19 +2170,19 @@ EXTERN_C const IID IID_IMidiServiceTransformPluginMetadataProvider;
#endif /* __IMidiServiceTransformPluginMetadataProvider_INTERFACE_DEFINED__ */
-#ifndef __IMidiServicePluginMetadataReporterInterface_INTERFACE_DEFINED__
-#define __IMidiServicePluginMetadataReporterInterface_INTERFACE_DEFINED__
+#ifndef __IMidiServicePluginMetadataReporter_INTERFACE_DEFINED__
+#define __IMidiServicePluginMetadataReporter_INTERFACE_DEFINED__
-/* interface IMidiServicePluginMetadataReporterInterface */
+/* interface IMidiServicePluginMetadataReporter */
/* [uuid][local][object] */
-EXTERN_C const IID IID_IMidiServicePluginMetadataReporterInterface;
+EXTERN_C const IID IID_IMidiServicePluginMetadataReporter;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("469c7722-f779-40c3-b648-52620f75dcee")
- IMidiServicePluginMetadataReporterInterface : public IUnknown
+ IMidiServicePluginMetadataReporter : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetTransportList(
@@ -2209,43 +2198,43 @@ EXTERN_C const IID IID_IMidiServicePluginMetadataReporterInterface;
#else /* C style interface */
- typedef struct IMidiServicePluginMetadataReporterInterfaceVtbl
+ typedef struct IMidiServicePluginMetadataReporterVtbl
{
BEGIN_INTERFACE
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IMidiServicePluginMetadataReporterInterface * This,
+ IMidiServicePluginMetadataReporter * This,
/* [in] */ REFIID riid,
/* [annotation][iid_is][out] */
_COM_Outptr_ void **ppvObject);
DECLSPEC_XFGVIRT(IUnknown, AddRef)
ULONG ( STDMETHODCALLTYPE *AddRef )(
- IMidiServicePluginMetadataReporterInterface * This);
+ IMidiServicePluginMetadataReporter * This);
DECLSPEC_XFGVIRT(IUnknown, Release)
ULONG ( STDMETHODCALLTYPE *Release )(
- IMidiServicePluginMetadataReporterInterface * This);
+ IMidiServicePluginMetadataReporter * This);
- DECLSPEC_XFGVIRT(IMidiServicePluginMetadataReporterInterface, GetTransportList)
+ DECLSPEC_XFGVIRT(IMidiServicePluginMetadataReporter, GetTransportList)
HRESULT ( STDMETHODCALLTYPE *GetTransportList )(
- IMidiServicePluginMetadataReporterInterface * This,
+ IMidiServicePluginMetadataReporter * This,
/* [annotation][string][out] */
_Out_ LPWSTR *transportListJson);
- DECLSPEC_XFGVIRT(IMidiServicePluginMetadataReporterInterface, GetTransformList)
+ DECLSPEC_XFGVIRT(IMidiServicePluginMetadataReporter, GetTransformList)
HRESULT ( STDMETHODCALLTYPE *GetTransformList )(
- IMidiServicePluginMetadataReporterInterface * This,
+ IMidiServicePluginMetadataReporter * This,
/* [annotation][string][out] */
_Out_ LPWSTR *transformListJson);
END_INTERFACE
- } IMidiServicePluginMetadataReporterInterfaceVtbl;
+ } IMidiServicePluginMetadataReporterVtbl;
- interface IMidiServicePluginMetadataReporterInterface
+ interface IMidiServicePluginMetadataReporter
{
- CONST_VTBL struct IMidiServicePluginMetadataReporterInterfaceVtbl *lpVtbl;
+ CONST_VTBL struct IMidiServicePluginMetadataReporterVtbl *lpVtbl;
};
@@ -2253,20 +2242,20 @@ EXTERN_C const IID IID_IMidiServicePluginMetadataReporterInterface;
#ifdef COBJMACROS
-#define IMidiServicePluginMetadataReporterInterface_QueryInterface(This,riid,ppvObject) \
+#define IMidiServicePluginMetadataReporter_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-#define IMidiServicePluginMetadataReporterInterface_AddRef(This) \
+#define IMidiServicePluginMetadataReporter_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
-#define IMidiServicePluginMetadataReporterInterface_Release(This) \
+#define IMidiServicePluginMetadataReporter_Release(This) \
( (This)->lpVtbl -> Release(This) )
-#define IMidiServicePluginMetadataReporterInterface_GetTransportList(This,transportListJson) \
+#define IMidiServicePluginMetadataReporter_GetTransportList(This,transportListJson) \
( (This)->lpVtbl -> GetTransportList(This,transportListJson) )
-#define IMidiServicePluginMetadataReporterInterface_GetTransformList(This,transformListJson) \
+#define IMidiServicePluginMetadataReporter_GetTransformList(This,transformListJson) \
( (This)->lpVtbl -> GetTransformList(This,transformListJson) )
#endif /* COBJMACROS */
@@ -2277,7 +2266,7 @@ EXTERN_C const IID IID_IMidiServicePluginMetadataReporterInterface;
-#endif /* __IMidiServicePluginMetadataReporterInterface_INTERFACE_DEFINED__ */
+#endif /* __IMidiServicePluginMetadataReporter_INTERFACE_DEFINED__ */
#ifndef __IMidiSessionTracker_INTERFACE_DEFINED__