From fe6d861a5c21edf5341ec203a12d6f62f8a80367 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Tue, 3 Sep 2024 16:29:16 +0200 Subject: [PATCH] [channels] fix VCAPITYPE for all channel entry points --- channels/ainput/client/ainput_main.c | 2 +- channels/audin/client/alsa/audin_alsa.c | 4 ++-- channels/audin/client/audin_main.c | 2 +- channels/audin/client/ios/audin_ios.m | 4 ++-- channels/audin/client/mac/audin_mac.m | 4 ++-- .../audin/client/opensles/audin_opensl_es.c | 2 +- channels/audin/client/oss/audin_oss.c | 4 ++-- channels/audin/client/pulse/audin_pulse.c | 2 +- channels/audin/client/sndio/audin_sndio.c | 2 +- channels/audin/client/winmm/audin_winmm.c | 3 ++- channels/client/CMakeLists.txt | 17 ++++++++++------- channels/client/tables.c.in | 2 +- channels/client/tables.h | 7 ++++--- channels/disp/client/disp_main.c | 2 +- channels/drive/client/drive_main.c | 3 ++- channels/echo/client/echo_main.c | 2 +- channels/geometry/client/geometry_main.c | 2 +- channels/location/client/location_main.c | 2 +- channels/parallel/client/parallel_main.c | 3 ++- channels/printer/client/cups/printer_cups.c | 2 +- channels/printer/client/printer_main.c | 3 ++- channels/printer/client/win/printer_win.c | 3 ++- .../rdpecam/client/camera_device_enum_main.c | 2 +- channels/rdpecam/client/v4l/camera_v4l.c | 4 ++-- channels/rdpei/client/rdpei_main.c | 2 +- channels/rdpgfx/client/rdpgfx_main.c | 2 +- channels/rdpsnd/client/alsa/rdpsnd_alsa.c | 2 +- channels/rdpsnd/client/fake/rdpsnd_fake.c | 2 +- channels/rdpsnd/client/ios/rdpsnd_ios.c | 2 +- channels/rdpsnd/client/mac/rdpsnd_mac.m | 2 +- .../rdpsnd/client/opensles/rdpsnd_opensles.c | 2 +- channels/rdpsnd/client/oss/rdpsnd_oss.c | 2 +- channels/rdpsnd/client/pulse/rdpsnd_pulse.c | 2 +- channels/rdpsnd/client/rdpsnd_main.c | 2 +- channels/rdpsnd/client/sndio/rdpsnd_sndio.c | 2 +- channels/rdpsnd/client/winmm/rdpsnd_winmm.c | 3 ++- channels/serial/client/serial_main.c | 3 ++- channels/smartcard/client/smartcard_main.c | 3 +-- channels/sshagent/client/sshagent_main.c | 2 +- channels/tsmf/client/alsa/tsmf_alsa.c | 2 +- channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c | 2 +- channels/tsmf/client/gstreamer/tsmf_gstreamer.c | 2 +- channels/tsmf/client/oss/tsmf_oss.c | 2 +- channels/tsmf/client/pulse/tsmf_pulse.c | 2 +- channels/tsmf/client/tsmf_main.c | 2 +- channels/urbdrc/client/libusb/libusb_udevman.c | 2 +- channels/urbdrc/client/urbdrc_main.c | 2 +- channels/video/client/video_main.c | 2 +- 48 files changed, 72 insertions(+), 62 deletions(-) diff --git a/channels/ainput/client/ainput_main.c b/channels/ainput/client/ainput_main.c index 1a2128dcc..51d912ad3 100644 --- a/channels/ainput/client/ainput_main.c +++ b/channels/ainput/client/ainput_main.c @@ -175,7 +175,7 @@ static const IWTSVirtualChannelCallback ainput_functions = { ainput_on_data_rece * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT ainput_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE ainput_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, AINPUT_DVC_CHANNEL_NAME, sizeof(AINPUT_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/audin/client/alsa/audin_alsa.c b/channels/audin/client/alsa/audin_alsa.c index 47d5d5561..f666d6457 100644 --- a/channels/audin/client/alsa/audin_alsa.c +++ b/channels/audin/client/alsa/audin_alsa.c @@ -392,8 +392,8 @@ static UINT audin_alsa_parse_addin_args(AudinALSADevice* device, const ADDIN_ARG * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT( - UINT alsa_freerdp_audin_client_subsystem_entry(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE alsa_freerdp_audin_client_subsystem_entry( + PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; AudinALSADevice* alsa = NULL; diff --git a/channels/audin/client/audin_main.c b/channels/audin/client/audin_main.c index bc3b63ae6..8f9002641 100644 --- a/channels/audin/client/audin_main.c +++ b/channels/audin/client/audin_main.c @@ -973,7 +973,7 @@ BOOL audin_process_addin_args(AUDIN_PLUGIN* audin, const ADDIN_ARGV* args) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT audin_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE audin_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { struct SubsystemEntry { diff --git a/channels/audin/client/ios/audin_ios.m b/channels/audin/client/ios/audin_ios.m index ae30aee71..30819858e 100644 --- a/channels/audin/client/ios/audin_ios.m +++ b/channels/audin/client/ios/audin_ios.m @@ -295,8 +295,8 @@ static UINT audin_ios_free(IAudinDevice *device) return CHANNEL_RC_OK; } -FREERDP_ENTRY_POINT( - UINT ios_freerdp_audin_client_subsystem_entry(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE ios_freerdp_audin_client_subsystem_entry( + PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { DWORD errCode; char errString[1024]; diff --git a/channels/audin/client/mac/audin_mac.m b/channels/audin/client/mac/audin_mac.m index 19749a966..346d85945 100644 --- a/channels/audin/client/mac/audin_mac.m +++ b/channels/audin/client/mac/audin_mac.m @@ -380,8 +380,8 @@ static UINT audin_mac_parse_addin_args(AudinMacDevice *device, const ADDIN_ARGV return CHANNEL_RC_OK; } -FREERDP_ENTRY_POINT( - UINT mac_freerdp_audin_client_subsystem_entry(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE mac_freerdp_audin_client_subsystem_entry( + PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { DWORD errCode; char errString[1024]; diff --git a/channels/audin/client/opensles/audin_opensl_es.c b/channels/audin/client/opensles/audin_opensl_es.c index a59fe0562..9885b033a 100644 --- a/channels/audin/client/opensles/audin_opensl_es.c +++ b/channels/audin/client/opensles/audin_opensl_es.c @@ -292,7 +292,7 @@ static UINT audin_opensles_parse_addin_args(AudinOpenSLESDevice* device, const A * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT opensles_freerdp_audin_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE opensles_freerdp_audin_client_subsystem_entry( PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args; diff --git a/channels/audin/client/oss/audin_oss.c b/channels/audin/client/oss/audin_oss.c index fadff6c7d..ca14dd593 100644 --- a/channels/audin/client/oss/audin_oss.c +++ b/channels/audin/client/oss/audin_oss.c @@ -445,8 +445,8 @@ static UINT audin_oss_parse_addin_args(AudinOSSDevice* device, const ADDIN_ARGV* * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT( - UINT oss_freerdp_audin_client_subsystem_entry(PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE oss_freerdp_audin_client_subsystem_entry( + PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; AudinOSSDevice* oss = NULL; diff --git a/channels/audin/client/pulse/audin_pulse.c b/channels/audin/client/pulse/audin_pulse.c index c2cb3fc7d..0f178f7fe 100644 --- a/channels/audin/client/pulse/audin_pulse.c +++ b/channels/audin/client/pulse/audin_pulse.c @@ -490,7 +490,7 @@ static UINT audin_pulse_parse_addin_args(AudinPulseDevice* device, const ADDIN_A * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT pulse_freerdp_audin_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE pulse_freerdp_audin_client_subsystem_entry( PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; diff --git a/channels/audin/client/sndio/audin_sndio.c b/channels/audin/client/sndio/audin_sndio.c index 92dac1385..f7c6a8a39 100644 --- a/channels/audin/client/sndio/audin_sndio.c +++ b/channels/audin/client/sndio/audin_sndio.c @@ -309,7 +309,7 @@ static UINT audin_sndio_parse_addin_args(AudinSndioDevice* device, ADDIN_ARGV* a * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT sndio_freerdp_audin_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE sndio_freerdp_audin_client_subsystem_entry( PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { ADDIN_ARGV* args; diff --git a/channels/audin/client/winmm/audin_winmm.c b/channels/audin/client/winmm/audin_winmm.c index b4172a516..82b19e51e 100644 --- a/channels/audin/client/winmm/audin_winmm.c +++ b/channels/audin/client/winmm/audin_winmm.c @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -491,7 +492,7 @@ static UINT audin_winmm_parse_addin_args(AudinWinmmDevice* device, const ADDIN_A * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT winmm_freerdp_audin_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE winmm_freerdp_audin_client_subsystem_entry( PFREERDP_AUDIN_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args; diff --git a/channels/client/CMakeLists.txt b/channels/client/CMakeLists.txt index cb946e11b..1d02d8264 100644 --- a/channels/client/CMakeLists.txt +++ b/channels/client/CMakeLists.txt @@ -2,6 +2,8 @@ # FreeRDP cmake build script # # Copyright 2012 Marc-Andre Moreau +# Copyright 2024 Armin Novak +# Copyright 2024 Thincast Technologies GmbH # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -35,7 +37,7 @@ foreach(STATIC_ENTRY ${CHANNEL_STATIC_CLIENT_ENTRIES}) if(${ENTRY} STREQUAL ${STATIC_ENTRY}) set(STATIC_MODULE_NAME ${${STATIC_MODULE}_CLIENT_NAME}) set(STATIC_MODULE_CHANNEL ${${STATIC_MODULE}_CLIENT_CHANNEL}) - set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} ${STATIC_MODULE_NAME}) + list(APPEND ${MODULE_PREFIX}_LIBS ${STATIC_MODULE_NAME}) set(ENTRY_POINT_NAME "${STATIC_MODULE_CHANNEL}_${ENTRY}") if(${ENTRY} STREQUAL "VirtualChannelEntry") @@ -43,14 +45,15 @@ foreach(STATIC_ENTRY ${CHANNEL_STATIC_CLIENT_ENTRIES}) elseif(${ENTRY} STREQUAL "VirtualChannelEntryEx") set(ENTRY_POINT_IMPORT "extern BOOL VCAPITYPE ${ENTRY_POINT_NAME}(PCHANNEL_ENTRY_POINTS,PVOID);") elseif(${ENTRY} MATCHES "DVCPluginEntry$") - set(ENTRY_POINT_IMPORT "extern UINT ${ENTRY_POINT_NAME}(IDRDYNVC_ENTRY_POINTS* pEntryPoints);") + set(ENTRY_POINT_IMPORT "extern UINT VCAPITYPE ${ENTRY_POINT_NAME}(IDRDYNVC_ENTRY_POINTS* pEntryPoints);") elseif(${ENTRY} MATCHES "DeviceServiceEntry$") - set(ENTRY_POINT_IMPORT "extern UINT ${ENTRY_POINT_NAME}(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints);") + set(ENTRY_POINT_IMPORT "extern UINT VCAPITYPE ${ENTRY_POINT_NAME}(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints);") else() - set(ENTRY_POINT_IMPORT "extern UINT ${ENTRY_POINT_NAME}(void);") + set(ENTRY_POINT_IMPORT "extern UINT VCAPITYPE ${ENTRY_POINT_NAME}(void);") endif() - set(${STATIC_ENTRY}_IMPORTS "${${STATIC_ENTRY}_IMPORTS}\n${ENTRY_POINT_IMPORT}") - set(${STATIC_ENTRY}_TABLE "${${STATIC_ENTRY}_TABLE}\n\t{ \"${STATIC_MODULE_CHANNEL}\", ${ENTRY_POINT_NAME} },") + + string(APPEND ${STATIC_ENTRY}_IMPORTS "\n${ENTRY_POINT_IMPORT}") + string(APPEND ${STATIC_ENTRY}_TABLE "\n\t{ \"${STATIC_MODULE_CHANNEL}\", ${ENTRY_POINT_NAME} },") endif() endforeach() endforeach() @@ -95,7 +98,7 @@ foreach(STATIC_MODULE ${CHANNEL_STATIC_CLIENT_MODULES}) set(STATIC_SUBSYSTEM_ENTRY "${STATIC_SUBSYSTEM_NAME}_freerdp_${STATIC_MODULE_CHANNEL}_client_subsystem_entry") endif() set(SUBSYSTEM_TABLE "${SUBSYSTEM_TABLE}\n\t{ \"${STATIC_SUBSYSTEM_NAME}\", \"${STATIC_SUBSYSTEM_TYPE}\", ${STATIC_SUBSYSTEM_ENTRY} },") - set(SUBSYSTEM_IMPORT "extern UINT ${STATIC_SUBSYSTEM_ENTRY}(void*);") + set(SUBSYSTEM_IMPORT "extern UINT VCAPITYPE ${STATIC_SUBSYSTEM_ENTRY}(void*);") set(CLIENT_STATIC_SUBSYSTEM_IMPORTS "${CLIENT_STATIC_SUBSYSTEM_IMPORTS}\n${SUBSYSTEM_IMPORT}") endforeach() set(SUBSYSTEM_TABLE "${SUBSYSTEM_TABLE}\n\t{ NULL, NULL, NULL }\n};") diff --git a/channels/client/tables.c.in b/channels/client/tables.c.in index a22621b32..2c34a30ee 100644 --- a/channels/client/tables.c.in +++ b/channels/client/tables.c.in @@ -25,9 +25,9 @@ ${CLIENT_STATIC_TYPEDEFS} ${CLIENT_STATIC_ENTRY_IMPORTS} +${CLIENT_STATIC_SUBSYSTEM_IMPORTS} ${CLIENT_STATIC_ENTRY_TABLES} ${CLIENT_STATIC_ENTRY_TABLES_LIST} -${CLIENT_STATIC_SUBSYSTEM_IMPORTS} ${CLIENT_STATIC_SUBSYSTEM_TABLES} ${CLIENT_STATIC_ADDIN_TABLE} diff --git a/channels/client/tables.h b/channels/client/tables.h index f399ab51b..6f629fb05 100644 --- a/channels/client/tables.h +++ b/channels/client/tables.h @@ -18,13 +18,14 @@ */ #include +#include #include /* The 'entry' function pointers have variable arguments. */ WINPR_PRAGMA_DIAG_PUSH WINPR_PRAGMA_DIAG_IGNORED_STRICT_PROTOTYPES -typedef UINT (*static_entry_fn_t)(); +typedef UINT(VCAPITYPE* static_entry_fn_t)(); typedef struct { const char* name; @@ -37,7 +38,7 @@ typedef struct const STATIC_ENTRY* table; } STATIC_ENTRY_TABLE; -typedef UINT (*static_subsystem_entry_fn_t)(); +typedef UINT(VCAPITYPE* static_subsystem_entry_fn_t)(); typedef struct { const char* name; @@ -45,7 +46,7 @@ typedef struct static_subsystem_entry_fn_t entry; } STATIC_SUBSYSTEM_ENTRY; -typedef UINT (*static_addin_entry_fn_t)(); +typedef UINT(VCAPITYPE* static_addin_entry_fn_t)(); typedef struct { const char* name; diff --git a/channels/disp/client/disp_main.c b/channels/disp/client/disp_main.c index f01824013..144927962 100644 --- a/channels/disp/client/disp_main.c +++ b/channels/disp/client/disp_main.c @@ -314,7 +314,7 @@ static const IWTSVirtualChannelCallback disp_callbacks = { disp_on_data_received * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT disp_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE disp_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, DISP_DVC_CHANNEL_NAME, sizeof(DISP_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/drive/client/drive_main.c b/channels/drive/client/drive_main.c index 04f8d837f..089ea2cb7 100644 --- a/channels/drive/client/drive_main.c +++ b/channels/drive/client/drive_main.c @@ -1009,7 +1009,8 @@ out_error: * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT drive_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT( + UINT VCAPITYPE drive_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) { RDPDR_DRIVE* drive = NULL; UINT error = 0; diff --git a/channels/echo/client/echo_main.c b/channels/echo/client/echo_main.c index c4e1c226e..af6baafb5 100644 --- a/channels/echo/client/echo_main.c +++ b/channels/echo/client/echo_main.c @@ -84,7 +84,7 @@ static const IWTSVirtualChannelCallback echo_callbacks = { echo_on_data_received * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT echo_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE echo_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, ECHO_DVC_CHANNEL_NAME, sizeof(ECHO_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/geometry/client/geometry_main.c b/channels/geometry/client/geometry_main.c index 5465fc9fe..d86007592 100644 --- a/channels/geometry/client/geometry_main.c +++ b/channels/geometry/client/geometry_main.c @@ -394,7 +394,7 @@ static void terminate_plugin_cb(GENERIC_DYNVC_PLUGIN* base) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT geometry_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE geometry_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, GEOMETRY_DVC_CHANNEL_NAME, sizeof(GEOMETRY_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/location/client/location_main.c b/channels/location/client/location_main.c index f84d7fc2e..516cc4131 100644 --- a/channels/location/client/location_main.c +++ b/channels/location/client/location_main.c @@ -465,7 +465,7 @@ static const IWTSVirtualChannelCallback location_callbacks = { location_on_data_ * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT location_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE location_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, LOCATION_DVC_CHANNEL_NAME, sizeof(LOCATION_PLUGIN), sizeof(LOCATION_CALLBACK), diff --git a/channels/parallel/client/parallel_main.c b/channels/parallel/client/parallel_main.c index 740fecf51..1eb2320f6 100644 --- a/channels/parallel/client/parallel_main.c +++ b/channels/parallel/client/parallel_main.c @@ -430,7 +430,8 @@ static void parallel_message_free(void* obj) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT parallel_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT( + UINT VCAPITYPE parallel_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) { PARALLEL_DEVICE* parallel = NULL; UINT error = 0; diff --git a/channels/printer/client/cups/printer_cups.c b/channels/printer/client/cups/printer_cups.c index 3b2fe37b8..40464f1e2 100644 --- a/channels/printer/client/cups/printer_cups.c +++ b/channels/printer/client/cups/printer_cups.c @@ -432,7 +432,7 @@ static void printer_cups_release_ref_driver(rdpPrinterDriver* driver) cups_driver->references--; } -FREERDP_ENTRY_POINT(UINT cups_freerdp_printer_client_subsystem_entry(void* arg)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE cups_freerdp_printer_client_subsystem_entry(void* arg)) { rdpPrinterDriver** ppPrinter = (rdpPrinterDriver**)arg; if (!ppPrinter) diff --git a/channels/printer/client/printer_main.c b/channels/printer/client/printer_main.c index b89bf9b32..8408a8a4c 100644 --- a/channels/printer/client/printer_main.c +++ b/channels/printer/client/printer_main.c @@ -1072,7 +1072,8 @@ static rdpPrinterDriver* printer_load_backend(const char* backend) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT printer_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT( + UINT VCAPITYPE printer_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) { char* name = NULL; char* driver_name = NULL; diff --git a/channels/printer/client/win/printer_win.c b/channels/printer/client/win/printer_win.c index 7c62b4011..c92b60249 100644 --- a/channels/printer/client/win/printer_win.c +++ b/channels/printer/client/win/printer_win.c @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -436,7 +437,7 @@ static void printer_win_release_ref_driver(rdpPrinterDriver* driver) win->references--; } -FREERDP_ENTRY_POINT(UINT win_freerdp_printer_client_subsystem_entry(void* arg)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE win_freerdp_printer_client_subsystem_entry(void* arg)) { rdpPrinterDriver** ppPrinter = (rdpPrinterDriver**)arg; if (!ppPrinter) diff --git a/channels/rdpecam/client/camera_device_enum_main.c b/channels/rdpecam/client/camera_device_enum_main.c index b73138475..d6da9e7aa 100644 --- a/channels/rdpecam/client/camera_device_enum_main.c +++ b/channels/rdpecam/client/camera_device_enum_main.c @@ -504,7 +504,7 @@ static UINT ecam_load_hal_plugin(CameraPlugin* ecam, const char* name, const ADD * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT rdpecam_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE rdpecam_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT error = CHANNEL_RC_INITIALIZATION_ERROR; diff --git a/channels/rdpecam/client/v4l/camera_v4l.c b/channels/rdpecam/client/v4l/camera_v4l.c index ccb60d65b..8d5f4a628 100644 --- a/channels/rdpecam/client/v4l/camera_v4l.c +++ b/channels/rdpecam/client/v4l/camera_v4l.c @@ -734,8 +734,8 @@ static UINT cam_v4l_free(ICamHal* ihal) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT( - UINT v4l_freerdp_rdpecam_client_subsystem_entry(PFREERDP_CAMERA_HAL_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE v4l_freerdp_rdpecam_client_subsystem_entry( + PFREERDP_CAMERA_HAL_ENTRY_POINTS pEntryPoints)) { UINT ret = CHANNEL_RC_OK; WINPR_ASSERT(pEntryPoints); diff --git a/channels/rdpei/client/rdpei_main.c b/channels/rdpei/client/rdpei_main.c index cdb7759c1..78ed5e7fd 100644 --- a/channels/rdpei/client/rdpei_main.c +++ b/channels/rdpei/client/rdpei_main.c @@ -1466,7 +1466,7 @@ static const IWTSVirtualChannelCallback geometry_callbacks = { rdpei_on_data_rec * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT rdpei_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE rdpei_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, RDPEI_DVC_CHANNEL_NAME, sizeof(RDPEI_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/rdpgfx/client/rdpgfx_main.c b/channels/rdpgfx/client/rdpgfx_main.c index b60739942..94de1d023 100644 --- a/channels/rdpgfx/client/rdpgfx_main.c +++ b/channels/rdpgfx/client/rdpgfx_main.c @@ -2424,7 +2424,7 @@ static const IWTSVirtualChannelCallback rdpgfx_callbacks = { rdpgfx_on_data_rece * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT rdpgfx_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE rdpgfx_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { return freerdp_generic_DVCPluginEntry(pEntryPoints, TAG, RDPGFX_DVC_CHANNEL_NAME, sizeof(RDPGFX_PLUGIN), sizeof(GENERIC_CHANNEL_CALLBACK), diff --git a/channels/rdpsnd/client/alsa/rdpsnd_alsa.c b/channels/rdpsnd/client/alsa/rdpsnd_alsa.c index 43e812bee..93a39ee3b 100644 --- a/channels/rdpsnd/client/alsa/rdpsnd_alsa.c +++ b/channels/rdpsnd/client/alsa/rdpsnd_alsa.c @@ -511,7 +511,7 @@ static UINT rdpsnd_alsa_parse_addin_args(rdpsndDevicePlugin* device, const ADDIN * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT alsa_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE alsa_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; diff --git a/channels/rdpsnd/client/fake/rdpsnd_fake.c b/channels/rdpsnd/client/fake/rdpsnd_fake.c index 35251d26c..9e06f4c11 100644 --- a/channels/rdpsnd/client/fake/rdpsnd_fake.c +++ b/channels/rdpsnd/client/fake/rdpsnd_fake.c @@ -109,7 +109,7 @@ static UINT rdpsnd_fake_parse_addin_args(rdpsndFakePlugin* fake, const ADDIN_ARG * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT fake_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE fake_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; diff --git a/channels/rdpsnd/client/ios/rdpsnd_ios.c b/channels/rdpsnd/client/ios/rdpsnd_ios.c index 4aa8311ce..c3e17ece6 100644 --- a/channels/rdpsnd/client/ios/rdpsnd_ios.c +++ b/channels/rdpsnd/client/ios/rdpsnd_ios.c @@ -262,7 +262,7 @@ static void rdpsnd_ios_free(rdpsndDevicePlugin* device) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT ios_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE ios_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { rdpsndIOSPlugin* p = (rdpsndIOSPlugin*)calloc(1, sizeof(rdpsndIOSPlugin)); diff --git a/channels/rdpsnd/client/mac/rdpsnd_mac.m b/channels/rdpsnd/client/mac/rdpsnd_mac.m index 648ded4a9..89e02c2d5 100644 --- a/channels/rdpsnd/client/mac/rdpsnd_mac.m +++ b/channels/rdpsnd/client/mac/rdpsnd_mac.m @@ -382,7 +382,7 @@ static UINT rdpsnd_mac_play(rdpsndDevicePlugin *device, const BYTE *data, size_t * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT mac_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE mac_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { rdpsndMacPlugin *mac; diff --git a/channels/rdpsnd/client/opensles/rdpsnd_opensles.c b/channels/rdpsnd/client/opensles/rdpsnd_opensles.c index c5679b623..1417899ef 100644 --- a/channels/rdpsnd/client/opensles/rdpsnd_opensles.c +++ b/channels/rdpsnd/client/opensles/rdpsnd_opensles.c @@ -332,7 +332,7 @@ static int rdpsnd_opensles_parse_addin_args(rdpsndDevicePlugin* device, ADDIN_AR * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT opensles_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE opensles_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { ADDIN_ARGV* args; diff --git a/channels/rdpsnd/client/oss/rdpsnd_oss.c b/channels/rdpsnd/client/oss/rdpsnd_oss.c index 02bbf605d..a77da51a3 100644 --- a/channels/rdpsnd/client/oss/rdpsnd_oss.c +++ b/channels/rdpsnd/client/oss/rdpsnd_oss.c @@ -443,7 +443,7 @@ static int rdpsnd_oss_parse_addin_args(rdpsndDevicePlugin* device, const ADDIN_A * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT oss_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE oss_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; diff --git a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c index 843693bf9..311bbf906 100644 --- a/channels/rdpsnd/client/pulse/rdpsnd_pulse.c +++ b/channels/rdpsnd/client/pulse/rdpsnd_pulse.c @@ -704,7 +704,7 @@ static UINT rdpsnd_pulse_parse_addin_args(rdpsndDevicePlugin* device, const ADDI return CHANNEL_RC_OK; } -FREERDP_ENTRY_POINT(UINT pulse_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE pulse_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args = NULL; diff --git a/channels/rdpsnd/client/rdpsnd_main.c b/channels/rdpsnd/client/rdpsnd_main.c index 23bf49607..b9f275aec 100644 --- a/channels/rdpsnd/client/rdpsnd_main.c +++ b/channels/rdpsnd/client/rdpsnd_main.c @@ -1800,7 +1800,7 @@ static UINT rdpsnd_plugin_terminated(IWTSPlugin* pPlugin) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT rdpsnd_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE rdpsnd_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT error = CHANNEL_RC_OK; rdpsndPlugin* rdpsnd = NULL; diff --git a/channels/rdpsnd/client/sndio/rdpsnd_sndio.c b/channels/rdpsnd/client/sndio/rdpsnd_sndio.c index 4414653c6..541c6f7b5 100644 --- a/channels/rdpsnd/client/sndio/rdpsnd_sndio.c +++ b/channels/rdpsnd/client/sndio/rdpsnd_sndio.c @@ -179,7 +179,7 @@ static UINT rdpsnd_sndio_parse_addin_args(rdpsndDevicePlugin* device, ADDIN_ARGV * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT sndio_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE sndio_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { ADDIN_ARGV* args; diff --git a/channels/rdpsnd/client/winmm/rdpsnd_winmm.c b/channels/rdpsnd/client/winmm/rdpsnd_winmm.c index 2ba065456..205a6cb2d 100644 --- a/channels/rdpsnd/client/winmm/rdpsnd_winmm.c +++ b/channels/rdpsnd/client/winmm/rdpsnd_winmm.c @@ -31,6 +31,7 @@ #include #include +#include #include #include @@ -313,7 +314,7 @@ static void rdpsnd_winmm_parse_addin_args(rdpsndDevicePlugin* device, const ADDI * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT winmm_freerdp_rdpsnd_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE winmm_freerdp_rdpsnd_client_subsystem_entry( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) { const ADDIN_ARGV* args; diff --git a/channels/serial/client/serial_main.c b/channels/serial/client/serial_main.c index 8ceb5f51b..34d3ee96d 100644 --- a/channels/serial/client/serial_main.c +++ b/channels/serial/client/serial_main.c @@ -837,7 +837,8 @@ static void irp_thread_close(void* arg) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT serial_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) +FREERDP_ENTRY_POINT( + UINT VCAPITYPE serial_DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) { size_t len = 0; SERIAL_DEVICE* serial = NULL; diff --git a/channels/smartcard/client/smartcard_main.c b/channels/smartcard/client/smartcard_main.c index 0037b4e6a..71951a6a5 100644 --- a/channels/smartcard/client/smartcard_main.c +++ b/channels/smartcard/client/smartcard_main.c @@ -625,8 +625,7 @@ static void smartcard_free_irp(void* obj) * * @return 0 on success, otherwise a Win32 error code */ -extern UINT DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints); -UINT DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints) +FREERDP_ENTRY_POINT(UINT VCAPITYPE DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POINTS pEntryPoints)) { SMARTCARD_DEVICE* smartcard = NULL; size_t length = 0; diff --git a/channels/sshagent/client/sshagent_main.c b/channels/sshagent/client/sshagent_main.c index 9ee5102cc..9a20944c1 100644 --- a/channels/sshagent/client/sshagent_main.c +++ b/channels/sshagent/client/sshagent_main.c @@ -345,7 +345,7 @@ static UINT sshagent_plugin_terminated(IWTSPlugin* pPlugin) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT sshagent_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE sshagent_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT status = CHANNEL_RC_OK; SSHAGENT_PLUGIN* sshagent; diff --git a/channels/tsmf/client/alsa/tsmf_alsa.c b/channels/tsmf/client/alsa/tsmf_alsa.c index 6d8bf109e..c590be42b 100644 --- a/channels/tsmf/client/alsa/tsmf_alsa.c +++ b/channels/tsmf/client/alsa/tsmf_alsa.c @@ -221,7 +221,7 @@ static void tsmf_alsa_free(ITSMFAudioDevice* audio) free(alsa); } -FREERDP_ENTRY_POINT(UINT alsa_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE alsa_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) { ITSMFAudioDevice** sptr = (ITSMFAudioDevice**)ptr; WINPR_ASSERT(sptr); diff --git a/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c b/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c index ff72079a6..ce5bcd7c2 100644 --- a/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c +++ b/channels/tsmf/client/ffmpeg/tsmf_ffmpeg.c @@ -693,7 +693,7 @@ static BOOL CALLBACK InitializeAvCodecs(PINIT_ONCE once, PVOID param, PVOID* con return TRUE; } -FREERDP_ENTRY_POINT(UINT ffmpeg_freerdp_tsmf_client_decoder_subsystem_entry(void* ptr)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE ffmpeg_freerdp_tsmf_client_decoder_subsystem_entry(void* ptr)) { ITSMFDecoder** sptr = (ITSMFDecoder**)ptr; WINPR_ASSERT(sptr); diff --git a/channels/tsmf/client/gstreamer/tsmf_gstreamer.c b/channels/tsmf/client/gstreamer/tsmf_gstreamer.c index bc1b837c4..c297a20cf 100644 --- a/channels/tsmf/client/gstreamer/tsmf_gstreamer.c +++ b/channels/tsmf/client/gstreamer/tsmf_gstreamer.c @@ -1003,7 +1003,7 @@ static BOOL tsmf_gstreamer_sync(ITSMFDecoder* decoder, void (*cb)(void*), void* return TRUE; } -FREERDP_ENTRY_POINT(UINT gstreamer_freerdp_tsmf_client_decoder_subsystem_entry(void* ptr)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE gstreamer_freerdp_tsmf_client_decoder_subsystem_entry(void* ptr)) { ITSMFDecoder** sptr = (ITSMFDecoder**)ptr; WINPR_ASSERT(sptr); diff --git a/channels/tsmf/client/oss/tsmf_oss.c b/channels/tsmf/client/oss/tsmf_oss.c index 7d7b4db80..683c056aa 100644 --- a/channels/tsmf/client/oss/tsmf_oss.c +++ b/channels/tsmf/client/oss/tsmf_oss.c @@ -231,7 +231,7 @@ static void tsmf_oss_free(ITSMFAudioDevice* audio) free(oss); } -FREERDP_ENTRY_POINT(UINT oss_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE oss_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) { ITSMFAudioDevice** sptr = (ITSMFAudioDevice**)ptr; WINPR_ASSERT(sptr); diff --git a/channels/tsmf/client/pulse/tsmf_pulse.c b/channels/tsmf/client/pulse/tsmf_pulse.c index 084e88a4c..34a9fd55a 100644 --- a/channels/tsmf/client/pulse/tsmf_pulse.c +++ b/channels/tsmf/client/pulse/tsmf_pulse.c @@ -396,7 +396,7 @@ static void tsmf_pulse_free(ITSMFAudioDevice* audio) free(pulse); } -FREERDP_ENTRY_POINT(UINT pulse_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE pulse_freerdp_tsmf_client_audio_subsystem_entry(void* ptr)) { ITSMFAudioDevice** sptr = (ITSMFAudioDevice**)ptr; WINPR_ASSERT(sptr); diff --git a/channels/tsmf/client/tsmf_main.c b/channels/tsmf/client/tsmf_main.c index 877ef24f1..040c94e09 100644 --- a/channels/tsmf/client/tsmf_main.c +++ b/channels/tsmf/client/tsmf_main.c @@ -552,7 +552,7 @@ static UINT tsmf_process_addin_args(IWTSPlugin* pPlugin, const ADDIN_ARGV* args) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT tsmf_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE tsmf_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT status = 0; TSMF_PLUGIN* tsmf = NULL; diff --git a/channels/urbdrc/client/libusb/libusb_udevman.c b/channels/urbdrc/client/libusb/libusb_udevman.c index d8455622d..27f9644db 100644 --- a/channels/urbdrc/client/libusb/libusb_udevman.c +++ b/channels/urbdrc/client/libusb/libusb_udevman.c @@ -894,7 +894,7 @@ static DWORD WINAPI poll_thread(LPVOID lpThreadParameter) return 0; } -FREERDP_ENTRY_POINT(UINT libusb_freerdp_urbdrc_client_subsystem_entry( +FREERDP_ENTRY_POINT(UINT VCAPITYPE libusb_freerdp_urbdrc_client_subsystem_entry( PFREERDP_URBDRC_SERVICE_ENTRY_POINTS pEntryPoints)) { wObject* obj = NULL; diff --git a/channels/urbdrc/client/urbdrc_main.c b/channels/urbdrc/client/urbdrc_main.c index 90b4df83a..bf2044eaf 100644 --- a/channels/urbdrc/client/urbdrc_main.c +++ b/channels/urbdrc/client/urbdrc_main.c @@ -954,7 +954,7 @@ BOOL del_device(IUDEVMAN* idevman, UINT32 flags, BYTE busnum, BYTE devnum, UINT1 * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT urbdrc_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE urbdrc_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT status = 0; const ADDIN_ARGV* args = NULL; diff --git a/channels/video/client/video_main.c b/channels/video/client/video_main.c index ad5283593..7d3637a7e 100644 --- a/channels/video/client/video_main.c +++ b/channels/video/client/video_main.c @@ -1170,7 +1170,7 @@ static UINT video_plugin_terminated(IWTSPlugin* pPlugin) * * @return 0 on success, otherwise a Win32 error code */ -FREERDP_ENTRY_POINT(UINT video_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) +FREERDP_ENTRY_POINT(UINT VCAPITYPE video_DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)) { UINT error = CHANNEL_RC_OK; VIDEO_PLUGIN* videoPlugin = NULL;