# settings are opaque, ignore all changes
[suppress_type]
type_kind = struct
name = rdp_settings

# allow insertions at end of structs
[suppress_type]
type_kind = struct
has_data_members_inserted_at = end

# winpr_strerror did use unsigned instead of signed int as argument
[suppress_function]
change_kind = function-subtype-change
name = winpr_strerror
parameter = '0 INT32

# NtStatus2Tag did use unsigned instead of signed NTSTATUS as argument
[suppress_function]
change_kind = function-subtype-change
name = NtStatus2Tag
parameter = '0 NTSTATUS

# rdpdr_write_iocompletion_header did use unsigned instead of signed NTSTATUS as argument
[suppress_function]
change_kind = function-subtype-change
name = rdpdr_write_iocompletion_header
parameter = '3 NTSTATUS

# smartcard_irp_device_control_call did use unsigned instead of signed NTSTATUS as argument
[suppress_function]
change_kind = function-subtype-change
name = smartcard_irp_device_control_call
parameter = '2 NTSTATUS*

# freerdp_passphrase_read did not return const char* but char*
[suppress_function]
change_kind = function-subtype-change
name = freerdp_passphrase_read
return_type_name = const char*

[suppress_type]
change_kind = enum
name = FreeRDP_Settings_Keys_UInt32
changed_enumerators = FreeRDP_MonitorLocalShiftX, FreeRDP_MonitorLocalShiftY

# gdi_graphics_pipeline_init_ex subtype change (__uint32 to uint32_t)
[suppress_type]
change_kind = typedef
name = UINT

[suppress_type]
change_kind = typedef
name = UINT16

[suppress_type]
change_kind = typedef
name = UINT32

[suppress_type]
change_kind = typedef
name = UINT64

# msusb_msconfig_dump did use MSUSB_CONFIG_DESCRIPTOR* instead of const MSUSB_CONFIG_DESCRIPTOR*
[suppress_function]
change_kind = function-subtype-change
name = msusb_msconfig_dump

[suppress_function]
change_kind = function-subtype-change
name = gdi_CopyRect
parameter = '0 GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = gdi_CopyRect
parameter = '1 const GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = gdi_EqualRgn

[suppress_function]
change_kind = function-subtype-change
name = gdi_CRectToRgn
parameter = '4 GDI_RGN*

[suppress_function]
change_kind = function-subtype-change
name = gdi_CreateRect

[suppress_function]
change_kind = function-subtype-change
name = gdi_CreateRectRgn

[suppress_function]
change_kind = function-subtype-change
name = gdi_RectToRgn
parameter = '1 GDI_RGN*

[suppress_function]
change_kind = function-subtype-change
name = gdi_SetRgn
parameter = '0 GDI_RGN*

[suppress_function]
change_kind = function-subtype-change
name = gdi_RgnToRect
parameter = '1 GDI_RGN*

[suppress_function]
change_kind = function-subtype-change
name = gdi_SetRectRgn
parameter = '0 GDI_RGN*

[suppress_function]
change_kind = function-subtype-change
name = gdi_SetRect
parameter = '0 GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = gdi_PtInRect

[suppress_function]
change_kind = function-subtype-change
name = gdi_FillRect

[suppress_function]
change_kind = function-subtype-change
name = gdi_RgnToRect
parameter = '1 GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = gdi_CRgnToRect
parameter = '4 GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = gdi_RectToCRgn

[suppress_function]
change_kind = function-subtype-change
name = gdi_RgnToCRect

[suppress_function]
change_kind = function-subtype-change
name = gdi_CRgnToRect
parameter = '4 GDI_RECT*

[suppress_function]
change_kind = function-subtype-change
name = freerdp_client_settings_parse_command_line_arguments_ex
parameter = '6 freerdp_command_line_handle_option_t

[suppress_function]
change_kind = function-subtype-change
name = freerdp_shall_disconnect_context

[suppress_function]
change_kind = function-subtype-change
name = GetDynamicTimeZoneInformationEffectiveYears

[suppress_type]
change_kind = typedef
name = SEC_WINNT_AUTH_IDENTITY_INFO

[suppress_function]
change_kind = function-subtype-change
parameter = '0 /.*restrict.*/

[suppress_function]
change_kind = function-subtype-change
parameter = '1 /.*restrict.*/

[suppress_function]
change_kind = function-subtype-change
parameter = '7 /.*restrict.*/

[suppress_function]
change_kind = function-subtype-change
name = shadow_server_command_line_status_print
parameter = '4 /.*const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_error_info
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_get_disconnect_ultimatum
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_get_last_error
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_get_transport_sent
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_nego_get_routing_token
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_shall_disconnect
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = getChannelError
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = getChannelErrorDescription
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = freerdp_get_nla_sspi_error
parameter = '0 /^const.*/

[suppress_function]
change_kind = function-subtype-change
name = msusb_msconfig_free

[suppress_function]
change_kind = function-subtype-change
name = msusb_msconfig_new

[suppress_function]
change_kind = function-subtype-change
name = msusb_msinterface_free

# Functions not actually part of the API
# These were not hidden in versions < 3.23.0
# ignore these.
[suppress_function]
change_kind = deleted-function
name = add_device

[suppress_function]
change_kind = deleted-function
name = del_device

[suppress_function]
change_kind = deleted-function
name = msusb_msconfig_dump

[suppress_function]
change_kind = deleted-function
name = msusb_msconfig_free

[suppress_function]
change_kind = deleted-function
name = msusb_msconfig_new

[suppress_function]
change_kind = deleted-function
name = msusb_msconfig_read

[suppress_function]
change_kind = deleted-function
name = msusb_msconfig_write

[suppress_function]
change_kind = deleted-function
name = msusb_msinterface_free

[suppress_function]
change_kind = deleted-function
name = msusb_msinterface_read

[suppress_function]
change_kind = deleted-function
name = msusb_msinterface_replace

[suppress_function]
change_kind = deleted-function
name = msusb_msinterface_write

[suppress_function]
change_kind = deleted-function
name = msusb_mspipes_replace

[suppress_function]
change_kind = function-subtype-change
name = scard_log_status_error_wlog

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv1A
parameter = '0 LPCSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv1W
parameter = '0 LPCWSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2A
parameter = '0 LPCSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2A
parameter = '2 LPCSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2A
parameter = '4 LPCSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2W
parameter = '0 LPCWSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2W
parameter = '2 LPCWSTR

[suppress_function]
change_kind = function-subtype-change
name = NTOWFv2W
parameter = '4 LPCWSTR

[suppress_function]
change_kind = function-subtype-change
name = CommDeviceIoControl
parameter = '3 LPCVOID
