diff --git a/dshow/VirtualCamera/src/basefilter.cpp b/dshow/VirtualCamera/src/basefilter.cpp index 6add070..b326715 100644 --- a/dshow/VirtualCamera/src/basefilter.cpp +++ b/dshow/VirtualCamera/src/basefilter.cpp @@ -71,7 +71,6 @@ namespace AkVCam ~BaseFilterPrivate(); IEnumPins *pinsForDevice(const std::string &deviceId); void updatePins(); - static WINBOOL enumWindowsProc(HWND handler, LPARAM userData); static void serverStateChanged(void *userData, IpcBridge::ServerState state); static void frameReady(void *userData, @@ -90,6 +89,8 @@ namespace AkVCam }; } +WINBOOL CALLBACK AkVCamEnumWindowsProc(HWND handler, LPARAM userData); + AkVCam::BaseFilter::BaseFilter(const GUID &clsid, const std::string &filterName, const std::string &vendor): @@ -428,15 +429,6 @@ void AkVCam::BaseFilterPrivate::updatePins() AkVCamDevicePinCall(path, this, setControls, controls) } -WINBOOL AkVCam::BaseFilterPrivate::enumWindowsProc(HWND handler, - LPARAM userData) -{ - auto handlers = reinterpret_cast *>(userData); - handlers->push_back(handler); - - return TRUE; -} - void AkVCam::BaseFilterPrivate::serverStateChanged(void *userData, IpcBridge::ServerState state) { @@ -484,7 +476,7 @@ void AkVCam::BaseFilterPrivate::devicesChanged(void *userData, UNUSED(devices); AkLogFunction(); std::vector handlers; - EnumWindows(WNDENUMPROC(enumWindowsProc), LPARAM(&handlers)); + EnumWindows(WNDENUMPROC(AkVCamEnumWindowsProc), LPARAM(&handlers)); for (auto &handler: handlers) SendMessage(handler, WM_DEVICECHANGE, DBT_DEVNODES_CHANGED, 0); @@ -507,3 +499,11 @@ void AkVCam::BaseFilterPrivate::setControls(void *userData, auto self = reinterpret_cast(userData); AkVCamDevicePinCall(deviceId, self, setControls, controls) } + +WINBOOL CALLBACK AkVCamEnumWindowsProc(HWND handler, LPARAM userData) +{ + auto handlers = reinterpret_cast *>(userData); + handlers->push_back(handler); + + return TRUE; +}