Fix cl build break (#1517)

Fix build break caused by #1515. Let's see what CI says...
このコミットが含まれているのは:
John Tur 2024-06-10 03:26:10 -04:00 committed by GitHub
コミット 4615a9f4b7
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: B5690EEEBB952194
1個のファイルの変更18行の追加14行の削除

ファイルの表示

@ -7,10 +7,11 @@
#include <functiondiscoverykeys_devpkey.h> #include <functiondiscoverykeys_devpkey.h>
#if defined(_MSC_VER) #if defined(_MSC_VER)
#define CLSID_MMDeviceEnumerator __uuidof(MMDeviceEnumerator) #define CLSID_MMDeviceEnumerator __uuidof(MMDeviceEnumerator)
#define IID_IMMDeviceEnumerator __uuidof(IMMDeviceEnumerator) #define IID_IMMDeviceEnumerator __uuidof(IMMDeviceEnumerator)
#define IID_IAudioClient __uuidof(IAudioClient) #define IID_IAudioClient __uuidof(IAudioClient)
#define IID_IAudioRenderClient __uuidof(IAudioRenderClient) #define IID_IAudioRenderClient __uuidof(IAudioRenderClient)
#define IID_IActivateAudioInterfaceCompletionHandler __uuidof(IActivateAudioInterfaceCompletionHandler)
#endif #endif
struct ActivateAudioInterfaceHandler : public IActivateAudioInterfaceCompletionHandler { struct ActivateAudioInterfaceHandler : public IActivateAudioInterfaceCompletionHandler {
@ -156,7 +157,7 @@ private:
} }
} }
using PActivateAudioInterfaceAsync = HRESULT __stdcall(*)(LPCWSTR, REFIID, PROPVARIANT*, IActivateAudioInterfaceCompletionHandler*, IActivateAudioInterfaceAsyncOperation**); using PActivateAudioInterfaceAsync = HRESULT(__stdcall *)(LPCWSTR, REFIID, PROPVARIANT*, IActivateAudioInterfaceCompletionHandler*, IActivateAudioInterfaceAsyncOperation**);
maybe<bool> defaultDeviceSupported; maybe<bool> defaultDeviceSupported;
PActivateAudioInterfaceAsync activateAudioInterfaceAsync; PActivateAudioInterfaceAsync activateAudioInterfaceAsync;
@ -165,11 +166,13 @@ private:
return *self.defaultDeviceSupported; return *self.defaultDeviceSupported;
} }
OSVERSIONINFO info = { OSVERSIONINFOEX info{};
.dwOSVersionInfoSize = sizeof(info) info.dwOSVersionInfoSize = sizeof(info);
}; info.dwBuildNumber = 14393;
if(GetVersionEx(&info) && info.dwBuildNumber >= 14393) { DWORDLONG conditionMask = 0;
VER_SET_CONDITION(conditionMask, VER_BUILDNUMBER, VER_GREATER_EQUAL);
if(VerifyVersionInfo(&info, VER_BUILDNUMBER, conditionMask)) {
auto audioLib = LoadLibrary(L"mmdevapi"); auto audioLib = LoadLibrary(L"mmdevapi");
self.activateAudioInterfaceAsync = (PActivateAudioInterfaceAsync)GetProcAddress(audioLib, "ActivateAudioInterfaceAsync"); self.activateAudioInterfaceAsync = (PActivateAudioInterfaceAsync)GetProcAddress(audioLib, "ActivateAudioInterfaceAsync");
self.defaultDeviceSupported = true; self.defaultDeviceSupported = true;
@ -184,13 +187,14 @@ private:
if(self.isDefaultDeviceSupported()) { if(self.isDefaultDeviceSupported()) {
PWSTR defaultDeviceString; PWSTR defaultDeviceString;
if(StringFromIID(DEVINTERFACE_AUDIO_RENDER, &defaultDeviceString) != S_OK) return false; if(StringFromIID(DEVINTERFACE_AUDIO_RENDER, &defaultDeviceString) != S_OK) return false;
Device defaultDevice = {
.id = (const char*)utf8_t(defaultDeviceString), Device defaultDevice{};
.name = "Default", defaultDevice.id = (const char*)utf8_t(defaultDeviceString);
.isDefault = true defaultDevice.name = "Default";
}; defaultDevice.isDefault = true;
self.devices.append(defaultDevice); self.devices.append(defaultDevice);
CoTaskMemFree(defaultDeviceString);
} }
if(CoCreateInstance(CLSID_MMDeviceEnumerator, nullptr, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&self.enumerator) != S_OK) return false; if(CoCreateInstance(CLSID_MMDeviceEnumerator, nullptr, CLSCTX_ALL, IID_IMMDeviceEnumerator, (void**)&self.enumerator) != S_OK) return false;