Merge pull request #12187 from akallabeth/nodiscard

[utils] Nodiscard
This commit is contained in:
akallabeth
2026-01-26 14:51:55 +01:00
committed by GitHub
186 changed files with 597 additions and 37 deletions

View File

@@ -79,6 +79,7 @@ static const char* filemap[] = { "PortDosName", "PnPName", "DriverName",
"CachedPrinterConfigData" };
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
static char* get_printer_hash(const WCHAR* name, size_t length)
{
BYTE hash[WINPR_SHA256_DIGEST_LENGTH] = { 0 };
@@ -90,6 +91,7 @@ static char* get_printer_hash(const WCHAR* name, size_t length)
}
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
static char* get_printer_config_path(const rdpSettings* settings, const WCHAR* name, size_t length)
{
char* config = NULL;

View File

@@ -130,14 +130,17 @@ extern "C"
}
WINPR_ATTR_MALLOC(ndr_context_free, 1)
WINPR_ATTR_NODISCARD
NdrContext* ndr_context_new(BOOL bigEndianDrep, BYTE version);
void ndr_context_reset(NdrContext* context);
WINPR_ATTR_MALLOC(ndr_context_free, 1)
WINPR_ATTR_NODISCARD
NdrContext* ndr_context_copy(const NdrContext* src);
WINPR_ATTR_MALLOC(ndr_context_free, 1)
WINPR_ATTR_NODISCARD
NdrContext* ndr_read_header(wStream* s);
BOOL ndr_write_header(NdrContext* context, wStream* s);

View File

@@ -81,6 +81,7 @@ typedef enum
FREERDP_LOCAL RdpEarPackageType rdpear_packageType_from_name(const WinPrAsn1_OctetString* package);
WINPR_ATTR_MALLOC(Stream_Free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL wStream* rdpear_encodePayload(BOOL isKerb, wStream* payload);
#define RDPEAR_COMMON_MESSAGE_DECL(V) \

View File

@@ -265,6 +265,7 @@ UINT ecam_channel_write(CameraPlugin* ecam, GENERIC_CHANNEL_CALLBACK* hchannel,
void ecam_dev_destroy(CameraDevice* dev);
WINPR_ATTR_MALLOC(ecam_dev_destroy, 1)
WINPR_ATTR_NODISCARD
CameraDevice* ecam_dev_create(CameraPlugin* ecam, const char* deviceId, const char* deviceName);
/* video encoding interface */

View File

@@ -713,7 +713,8 @@ FREERDP_ENTRY_POINT(UINT VCAPITYPE DeviceServiceEntry(PDEVICE_SERVICE_ENTRY_POIN
if (pEntryPoints->device->Name)
{
smartcard_call_context_add(smartcard->callctx, pEntryPoints->device->Name);
if (!smartcard_call_context_add(smartcard->callctx, pEntryPoints->device->Name))
goto fail;
}
sSmartcard = smartcard;

View File

@@ -85,9 +85,11 @@ extern "C"
FREERDP_API void msusb_msconfig_free(MSUSB_CONFIG_DESCRIPTOR* MsConfig);
WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_new(void);
WINPR_ATTR_MALLOC(msusb_msconfig_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API MSUSB_CONFIG_DESCRIPTOR* msusb_msconfig_read(wStream* s, UINT32 NumInterfaces);
FREERDP_API BOOL msusb_msconfig_write(const MSUSB_CONFIG_DESCRIPTOR* MsConfg, wStream* out);
FREERDP_API void msusb_msconfig_dump(const MSUSB_CONFIG_DESCRIPTOR* MsConfg);

View File

@@ -28,6 +28,7 @@
void xf_clipboard_free(xfClipboard* clipboard);
WINPR_ATTR_MALLOC(xf_clipboard_free, 1)
WINPR_ATTR_NODISCARD
xfClipboard* xf_clipboard_new(xfContext* xfc, BOOL relieveFilenameRestriction);
void xf_cliprdr_init(xfContext* xfc, CliprdrClientContext* cliprdr);

View File

@@ -31,6 +31,7 @@ FREERDP_API BOOL xf_disp_uninit(xfDispContext* xfDisp, DispClientContext* disp);
void xf_disp_free(xfDispContext* disp);
WINPR_ATTR_MALLOC(xf_disp_free, 1)
WINPR_ATTR_NODISCARD
xfDispContext* xf_disp_new(xfContext* xfc);
BOOL xf_disp_handle_xevent(xfContext* xfc, const XEvent* event);

View File

@@ -25,6 +25,7 @@ typedef struct xf_floatbar xfFloatbar;
void xf_floatbar_free(xfFloatbar* floatbar);
WINPR_ATTR_MALLOC(xf_floatbar_free, 1)
WINPR_ATTR_NODISCARD
xfFloatbar* xf_floatbar_new(xfContext* xfc, Window window, const char* title, DWORD flags);
BOOL xf_floatbar_is_window(xfFloatbar* floatbar, Window window);

View File

@@ -30,6 +30,7 @@ void xf_video_control_uninit(xfContext* xfc, VideoClientContext* video);
void xf_video_free(xfVideoContext* context);
WINPR_ATTR_MALLOC(xf_video_free, 1)
WINPR_ATTR_NODISCARD
xfVideoContext* xf_video_new(xfContext* xfc);
#endif /* CLIENT_X11_XF_VIDEO_H_ */

View File

@@ -2389,6 +2389,7 @@ BOOL freerdp_client_use_relative_mouse_events(rdpClientContext* ccontext)
#if defined(WITH_AAD)
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
static char* get_redirect_uri(const rdpSettings* settings)
{
char* redirect_uri = NULL;

View File

@@ -214,6 +214,7 @@ static void fuse_file_free(void* data)
WINPR_ATTR_FORMAT_ARG(1, 2)
WINPR_ATTR_MALLOC(fuse_file_free, 1)
WINPR_ATTR_NODISCARD
static CliprdrFuseFile* fuse_file_new(WINPR_FORMAT_ARG const char* fmt, ...)
{
CliprdrFuseFile* file = calloc(1, sizeof(CliprdrFuseFile));

View File

@@ -11,6 +11,7 @@
void sso_mib_free(MIBClientWrapper* sso);
WINPR_ATTR_MALLOC(sso_mib_free, 1)
WINPR_ATTR_NODISCARD
MIBClientWrapper* sso_mib_new(rdpContext* context);
#endif /* FREERDP_CLIENT_COMMON_SSO_MIB_TOKENS_H */

View File

@@ -32,18 +32,23 @@ extern "C"
typedef struct rdp_assistance_file rdpAssistanceFile;
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BYTE* freerdp_assistance_hex_string_to_bin(const void* str, size_t* size);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_assistance_bin_to_hex_string(const void* data, size_t size);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_assistance_generate_pass_stub(DWORD flags);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_assistance_construct_expert_blob(const char* name, const char* pass);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BYTE* freerdp_assistance_encrypt_pass_stub(const char* password,
const char* passStub,
size_t* pEncryptedSize);
@@ -66,6 +71,7 @@ extern "C"
FREERDP_API void freerdp_assistance_file_free(rdpAssistanceFile* file);
WINPR_ATTR_MALLOC(freerdp_assistance_file_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpAssistanceFile* freerdp_assistance_file_new(void);
FREERDP_API void freerdp_assistance_print_file(rdpAssistanceFile* file, wLog* log, DWORD level);

View File

@@ -91,6 +91,7 @@ extern "C"
FREERDP_API void persistent_cache_free(rdpPersistentCache* persistent);
WINPR_ATTR_MALLOC(persistent_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPersistentCache* persistent_cache_new(void);
#ifdef __cplusplus

View File

@@ -153,6 +153,7 @@ extern "C"
FREERDP_API void freerdp_client_context_free(rdpContext* context);
WINPR_ATTR_MALLOC(freerdp_client_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpContext* freerdp_client_context_new(const RDP_CLIENT_ENTRY_POINTS* pEntryPoints);
FREERDP_API int freerdp_client_start(rdpContext* context);
@@ -338,6 +339,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_client_get_aad_url(rdpClientContext* cctx,
freerdp_client_aad_type type, ...);

View File

@@ -35,6 +35,7 @@ extern "C"
FREERDP_API void cliprdr_file_context_free(CliprdrFileContext* file);
WINPR_ATTR_MALLOC(cliprdr_file_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API CliprdrFileContext* cliprdr_file_context_new(void* context);
/**! \brief returns if the implementation supports pasting files in a client file browser.

View File

@@ -90,9 +90,11 @@ extern "C"
FREERDP_API void freerdp_client_rdp_file_free(rdpFile* file);
WINPR_ATTR_MALLOC(freerdp_client_rdp_file_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpFile* freerdp_client_rdp_file_new(void);
WINPR_ATTR_MALLOC(freerdp_client_rdp_file_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpFile* freerdp_client_rdp_file_new_ex(DWORD flags);
#ifdef __cplusplus

View File

@@ -180,6 +180,7 @@ extern "C"
FREERDP_API void rdpgfx_client_context_free(RdpgfxClientContext* context);
WINPR_ATTR_MALLOC(rdpgfx_client_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RdpgfxClientContext* rdpgfx_client_context_new(rdpContext* context);
#ifdef __cplusplus

View File

@@ -221,9 +221,11 @@ extern "C"
FREERDP_API void audio_formats_free(AUDIO_FORMAT* formats, size_t count);
WINPR_ATTR_MALLOC(audio_formats_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API AUDIO_FORMAT* audio_format_new(void);
WINPR_ATTR_MALLOC(audio_formats_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API AUDIO_FORMAT* audio_formats_new(size_t count);
#ifdef __cplusplus

View File

@@ -50,6 +50,7 @@ extern "C"
FREERDP_API void clear_context_free(CLEAR_CONTEXT* WINPR_RESTRICT clear);
WINPR_ATTR_MALLOC(clear_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API CLEAR_CONTEXT* clear_context_new(BOOL Compressor);
#ifdef __cplusplus

View File

@@ -301,7 +301,7 @@ typedef struct gdi_palette gdiPalette;
WINPR_DEPRECATED_VAR("[since 3.21.0] use freerdp_glyph_convert_ex instead",
WINPR_ATTR_MALLOC(winpr_aligned_free, 1)
FREERDP_API BYTE* freerdp_glyph_convert(
WINPR_ATTR_NODISCARD FREERDP_API BYTE* freerdp_glyph_convert(
UINT32 width, UINT32 height, const BYTE* WINPR_RESTRICT data));
#endif
@@ -317,6 +317,7 @@ typedef struct gdi_palette gdiPalette;
* @since version 3.21.0
*/
WINPR_ATTR_MALLOC(winpr_aligned_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BYTE* freerdp_glyph_convert_ex(UINT32 width, UINT32 height,
const BYTE* WINPR_RESTRICT data, size_t len);

View File

@@ -35,6 +35,7 @@ extern "C"
FREERDP_API void freerdp_dsp_context_free(FREERDP_DSP_CONTEXT* context);
WINPR_ATTR_MALLOC(freerdp_dsp_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API FREERDP_DSP_CONTEXT* freerdp_dsp_context_new(BOOL encoder);
FREERDP_API BOOL freerdp_dsp_supports_format(const AUDIO_FORMAT* WINPR_RESTRICT format,

View File

@@ -126,6 +126,7 @@ extern "C"
FREERDP_API void h264_context_free(H264_CONTEXT* h264);
WINPR_ATTR_MALLOC(h264_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API H264_CONTEXT* h264_context_new(BOOL Compressor);
#ifdef __cplusplus

View File

@@ -56,6 +56,7 @@ extern "C"
bitmap_interleaved_context_free(BITMAP_INTERLEAVED_CONTEXT* WINPR_RESTRICT interleaved);
WINPR_ATTR_MALLOC(bitmap_interleaved_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BITMAP_INTERLEAVED_CONTEXT* bitmap_interleaved_context_new(BOOL Compressor);
#ifdef __cplusplus

View File

@@ -73,6 +73,7 @@ extern "C"
FREERDP_API void nsc_context_free(NSC_CONTEXT* context);
WINPR_ATTR_MALLOC(nsc_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API NSC_CONTEXT* nsc_context_new(void);
#ifdef __cplusplus

View File

@@ -53,6 +53,7 @@ extern "C"
FREERDP_API void freerdp_bitmap_planar_context_free(BITMAP_PLANAR_CONTEXT* context);
WINPR_ATTR_MALLOC(freerdp_bitmap_planar_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BITMAP_PLANAR_CONTEXT* freerdp_bitmap_planar_context_new(DWORD flags, UINT32 width,
UINT32 height);

View File

@@ -64,9 +64,11 @@ extern "C"
FREERDP_API void progressive_context_free(PROGRESSIVE_CONTEXT* progressive);
WINPR_ATTR_MALLOC(progressive_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API PROGRESSIVE_CONTEXT* progressive_context_new(BOOL Compressor);
WINPR_ATTR_MALLOC(progressive_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API PROGRESSIVE_CONTEXT* progressive_context_new_ex(BOOL Compressor,
UINT32 ThreadingFlags);

View File

@@ -102,17 +102,22 @@ extern "C"
const BYTE* WINPR_RESTRICT image_data, UINT32 width,
UINT32 height, UINT32 rowstride);
WINPR_ATTR_MALLOC(rfx_message_free, 2)
WINPR_ATTR_NODISCARD
FREERDP_API RFX_MESSAGE* rfx_encode_message(RFX_CONTEXT* WINPR_RESTRICT context,
const RFX_RECT* WINPR_RESTRICT rects,
size_t numRects, const BYTE* WINPR_RESTRICT data,
UINT32 width, UINT32 height, size_t scanline);
FREERDP_API void rfx_message_list_free(RFX_MESSAGE_LIST* messages);
WINPR_ATTR_MALLOC(rfx_message_list_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RFX_MESSAGE_LIST*
rfx_encode_messages(RFX_CONTEXT* WINPR_RESTRICT context, const RFX_RECT* WINPR_RESTRICT rects,
size_t numRects, const BYTE* WINPR_RESTRICT data, UINT32 width,
UINT32 height, UINT32 scanline, size_t* WINPR_RESTRICT numMessages,
size_t maxDataSize);
FREERDP_API void rfx_message_list_free(RFX_MESSAGE_LIST* messages);
FREERDP_API const RFX_MESSAGE*
rfx_message_list_get(const RFX_MESSAGE_LIST* WINPR_RESTRICT messages, size_t idx);
@@ -124,9 +129,11 @@ extern "C"
FREERDP_API void rfx_context_free(RFX_CONTEXT* context);
WINPR_ATTR_MALLOC(rfx_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RFX_CONTEXT* rfx_context_new_ex(BOOL encoder, UINT32 ThreadingFlags);
WINPR_ATTR_MALLOC(rfx_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RFX_CONTEXT* rfx_context_new(BOOL encoder);
FREERDP_API BOOL rfx_context_reset(RFX_CONTEXT* WINPR_RESTRICT context, UINT32 width,

View File

@@ -61,6 +61,7 @@ extern "C"
FREERDP_API void yuv_context_free(YUV_CONTEXT* context);
WINPR_ATTR_MALLOC(yuv_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API YUV_CONTEXT* yuv_context_new(BOOL encoder, UINT32 ThreadingFlags);
#ifdef __cplusplus

View File

@@ -57,6 +57,7 @@ extern "C"
FREERDP_API void zgfx_context_free(ZGFX_CONTEXT* zgfx);
WINPR_ATTR_MALLOC(zgfx_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API ZGFX_CONTEXT* zgfx_context_new(BOOL Compressor);
#ifdef __cplusplus

View File

@@ -84,15 +84,17 @@ extern "C"
* @since version 3.6.0
*/
WINPR_ATTR_MALLOC(freerdp_client_codecs_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCodecs* freerdp_client_codecs_new(UINT32 TheadingFlags);
#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
WINPR_DEPRECATED_VAR("[since 3.6.0] Use freerdp_client_codecs_free",
FREERDP_API void codecs_free(rdpCodecs* codecs));
WINPR_DEPRECATED_VAR("[since 3.6.0] Use freerdp_client_codecs_new",
WINPR_ATTR_MALLOC(codecs_free, 1)
FREERDP_API rdpCodecs* codecs_new(rdpContext* context));
WINPR_DEPRECATED_VAR(
"[since 3.6.0] Use freerdp_client_codecs_new",
WINPR_ATTR_MALLOC(codecs_free, 1)
WINPR_ATTR_NODISCARD FREERDP_API rdpCodecs* codecs_new(rdpContext* context));
#endif
/** @brief return a string representation of the given codecid

View File

@@ -41,36 +41,45 @@ extern "C"
FREERDP_API void freerdp_certificate_free(rdpCertificate* certificate);
WINPR_ATTR_MALLOC(freerdp_certificate_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificate* freerdp_certificate_new(void);
WINPR_ATTR_MALLOC(freerdp_certificate_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificate* freerdp_certificate_new_from_file(const char* file);
WINPR_ATTR_MALLOC(freerdp_certificate_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificate* freerdp_certificate_new_from_pem(const char* pem);
WINPR_ATTR_MALLOC(freerdp_certificate_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificate* freerdp_certificate_new_from_der(const BYTE* data, size_t length);
FREERDP_API BOOL freerdp_certificate_is_rsa(const rdpCertificate* certificate);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_hash(const rdpCertificate* certificate,
const char* hash, size_t* plength);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_fingerprint_by_hash(const rdpCertificate* certificate,
const char* hash);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char*
freerdp_certificate_get_fingerprint_by_hash_ex(const rdpCertificate* certificate,
const char* hash, BOOL separator);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_fingerprint(const rdpCertificate* certificate);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_pem(const rdpCertificate* certificate,
size_t* pLength);
@@ -84,23 +93,29 @@ extern "C"
* @since version 3.8.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_pem_ex(const rdpCertificate* certificate,
size_t* pLength, BOOL withCertChain);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API BYTE* freerdp_certificate_get_der(const rdpCertificate* certificate,
size_t* pLength);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_subject(const rdpCertificate* certificate);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_issuer(const rdpCertificate* certificate);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_upn(const rdpCertificate* certificate);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_email(const rdpCertificate* certificate);
/**
@@ -111,16 +126,19 @@ extern "C"
* @since version 3.8.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_validity(const rdpCertificate* certificate,
BOOL startDate);
FREERDP_API WINPR_MD_TYPE freerdp_certificate_get_signature_alg(const rdpCertificate* cert);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_common_name(const rdpCertificate* cert,
size_t* plength);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char** freerdp_certificate_get_dns_names(const rdpCertificate* cert, size_t* pcount,
size_t** pplengths);
FREERDP_API void freerdp_certificate_free_dns_names(size_t count, size_t* lengths,
@@ -137,6 +155,7 @@ extern "C"
FREERDP_API BOOL freerdp_certificate_is_rdp_security_compatible(const rdpCertificate* cert);
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_get_param(const rdpCertificate* cert,
enum FREERDP_CERT_PARAM what, size_t* psize);

View File

@@ -33,21 +33,26 @@ extern "C"
typedef struct rdp_certificate_data rdpCertificateData;
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_data_hash(const char* hostname, UINT16 port);
FREERDP_API void freerdp_certificate_data_free(rdpCertificateData* data);
WINPR_ATTR_MALLOC(freerdp_certificate_data_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificateData* freerdp_certificate_data_new(const char* hostname, UINT16 port,
const rdpCertificate* xcert);
WINPR_ATTR_MALLOC(freerdp_certificate_data_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificateData* freerdp_certificate_data_new_from_pem(const char* hostname,
UINT16 port,
const char* pem,
size_t length);
WINPR_ATTR_MALLOC(freerdp_certificate_data_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificateData*
freerdp_certificate_data_new_from_file(const char* hostname, UINT16 port, const char* file);

View File

@@ -43,12 +43,14 @@ extern "C"
FREERDP_API void freerdp_certificate_store_free(rdpCertificateStore* store);
WINPR_ATTR_MALLOC(freerdp_certificate_store_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificateStore* freerdp_certificate_store_new(const rdpSettings* settings);
FREERDP_API freerdp_certificate_store_result freerdp_certificate_store_contains_data(
rdpCertificateStore* store, const rdpCertificateData* data);
WINPR_ATTR_MALLOC(freerdp_certificate_data_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpCertificateData*
freerdp_certificate_store_load_data(rdpCertificateStore* store, const char* host, UINT16 port);
@@ -72,6 +74,8 @@ extern "C"
*
* @return The certificate store file path or \b NULL
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_certificate_store_get_cert_path(const rdpCertificateStore* store,
const char* host, UINT16 port);

View File

@@ -33,11 +33,13 @@ extern "C"
FREERDP_API void freerdp_key_free(rdpPrivateKey* key);
WINPR_ATTR_MALLOC(freerdp_key_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPrivateKey* freerdp_key_new(void);
FREERDP_API rdpPrivateKey* freerdp_key_new_from_file(const char* keyfile);
WINPR_ATTR_MALLOC(freerdp_key_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem(const char* pem);
/** @brief Create a private key from file \b keyfile with optional password \b password
@@ -47,6 +49,8 @@ extern "C"
* @return An allocated private key, \b NULL in case of failure.
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(freerdp_key_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPrivateKey* freerdp_key_new_from_file_enc(const char* keyfile,
const char* password);
@@ -58,6 +62,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(freerdp_key_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPrivateKey* freerdp_key_new_from_pem_enc(const char* pem, const char* password);
FREERDP_API BOOL freerdp_key_is_rsa(const rdpPrivateKey* key);
@@ -74,6 +79,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_key_get_pem(const rdpPrivateKey* key, size_t* plen,
const char* password);

View File

@@ -37,6 +37,7 @@ extern "C"
FREERDP_API void Emulate_Free(SmartcardEmulationContext* context);
WINPR_ATTR_MALLOC(Emulate_Free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API SmartcardEmulationContext* Emulate_New(const rdpSettings* settings);
FREERDP_API BOOL Emulate_IsConfigured(SmartcardEmulationContext* context);

View File

@@ -691,6 +691,7 @@ owned by rdpRdp */
FREERDP_API void freerdp_free(freerdp* instance);
WINPR_ATTR_MALLOC(freerdp_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API freerdp* freerdp_new(void);
FREERDP_API BOOL freerdp_focus_required(freerdp* instance);

View File

@@ -44,6 +44,7 @@ extern "C"
FREERDP_API void gdi_video_free(gdiVideoContext* context);
WINPR_ATTR_MALLOC(gdi_video_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API gdiVideoContext* gdi_video_new(rdpGdi* gdi);
#ifdef __cplusplus

View File

@@ -166,6 +166,7 @@ extern "C"
FREERDP_API void graphics_free(rdpGraphics* graphics);
WINPR_ATTR_MALLOC(graphics_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpGraphics* graphics_new(rdpContext* context);
#ifdef __cplusplus

View File

@@ -77,6 +77,7 @@ extern "C"
FREERDP_API void freerdp_listener_free(freerdp_listener* instance);
WINPR_ATTR_MALLOC(freerdp_listener_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API freerdp_listener* freerdp_listener_new(void);
#ifdef __cplusplus

View File

@@ -243,6 +243,7 @@ FREERDP_API void freerdp_keyboard_layouts_free(RDP_KEYBOARD_LAYOUT* layouts, siz
* @return An allocated array of keyboard layouts, free with \b freerdp_keyboard_layouts_free
*/
WINPR_ATTR_MALLOC(freerdp_keyboard_layouts_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RDP_KEYBOARD_LAYOUT* freerdp_keyboard_get_layouts(DWORD types, size_t* count);
/** @brief Get a string representation of a keyboard layout.
@@ -298,6 +299,7 @@ FREERDP_API void freerdp_keyboard_remap_free(FREERDP_REMAP_TABLE* table);
* @since version 3.11.0
*/
WINPR_ATTR_MALLOC(freerdp_keyboard_remap_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API FREERDP_REMAP_TABLE* freerdp_keyboard_remap_string_to_list(const char* list);
/** @brief does remap a RDP scancode according to the remap table provided.
@@ -336,6 +338,7 @@ FREERDP_API void freerdp_codepages_free(RDP_CODEPAGE* codepages);
* freed by \ref freerdp_codepages_free
*/
WINPR_ATTR_MALLOC(freerdp_codepages_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RDP_CODEPAGE* freerdp_keyboard_get_matching_codepages(DWORD column, const char* filter,
size_t* count);

View File

@@ -43,6 +43,7 @@ extern "C"
FREERDP_API void metrics_free(rdpMetrics* metrics);
WINPR_ATTR_MALLOC(metrics_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpMetrics* metrics_new(rdpContext* context);
#ifdef __cplusplus

View File

@@ -216,6 +216,7 @@ extern "C"
FREERDP_API void freerdp_peer_free(freerdp_peer* client);
WINPR_ATTR_MALLOC(freerdp_peer_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API freerdp_peer* freerdp_peer_new(int sockfd);
FREERDP_API BOOL freerdp_peer_set_local_and_hostname(freerdp_peer* client,

View File

@@ -55,6 +55,7 @@ extern "C"
FREERDP_API void redirection_free(rdpRedirection* redirection);
WINPR_ATTR_MALLOC(redirection_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpRedirection* redirection_new(void);
/** \brief This function checks if all necessary settings for a given \b rdpRedirection are

View File

@@ -115,6 +115,7 @@ extern "C"
FREERDP_API void ainput_server_context_free(ainput_server_context* context);
WINPR_ATTR_MALLOC(ainput_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API ainput_server_context* ainput_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -156,6 +156,7 @@ extern "C"
FREERDP_API void audin_server_context_free(audin_server_context* context);
WINPR_ATTR_MALLOC(audin_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API audin_server_context* audin_server_context_new(HANDLE vcm);
/** \brief sets the supported audio formats for AUDIN server channel context.

View File

@@ -137,6 +137,7 @@ extern "C"
FREERDP_API void cliprdr_server_context_free(CliprdrServerContext* context);
WINPR_ATTR_MALLOC(cliprdr_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API CliprdrServerContext* cliprdr_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -69,6 +69,7 @@ extern "C"
FREERDP_API void disp_server_context_free(DispServerContext* context);
WINPR_ATTR_MALLOC(disp_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API DispServerContext* disp_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -54,6 +54,7 @@ extern "C"
FREERDP_API void drdynvc_server_context_free(DrdynvcServerContext* context);
WINPR_ATTR_MALLOC(drdynvc_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API DrdynvcServerContext* drdynvc_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -93,6 +93,7 @@ extern "C"
FREERDP_API void echo_server_context_free(echo_server_context* context);
WINPR_ATTR_MALLOC(echo_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API echo_server_context* echo_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -95,6 +95,7 @@ extern "C"
FREERDP_API void encomsp_server_context_free(EncomspServerContext* context);
WINPR_ATTR_MALLOC(encomsp_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API EncomspServerContext* encomsp_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -95,6 +95,7 @@ extern "C"
FREERDP_API void gfxredir_server_context_free(GfxRedirServerContext* context);
WINPR_ATTR_MALLOC(gfxredir_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API GfxRedirServerContext* gfxredir_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -133,6 +133,7 @@ extern "C"
FREERDP_API void location_server_context_free(LocationServerContext* context);
WINPR_ATTR_MALLOC(location_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API LocationServerContext* location_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -144,6 +144,7 @@ extern "C"
* @return A proxyConfig or NULL in case of failure.
*/
WINPR_ATTR_MALLOC(pf_server_config_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API proxyConfig* server_config_load_ini(wIniFile* ini);
/**
* @brief pf_server_config_load_file Create a proxyConfig from a INI file found at path.
@@ -153,6 +154,7 @@ extern "C"
* @return A proxyConfig or NULL in case of failure.
*/
WINPR_ATTR_MALLOC(pf_server_config_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API proxyConfig* pf_server_config_load_file(const char* path);
/**
@@ -164,6 +166,7 @@ extern "C"
* @return A proxyConfig or NULL in case of failure.
*/
WINPR_ATTR_MALLOC(pf_server_config_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API proxyConfig* pf_server_config_load_buffer(const char* buffer);
/**

View File

@@ -90,6 +90,7 @@ extern "C"
typedef struct p_server_context pServerContext;
WINPR_ATTR_MALLOC(StaticChannelContext_free, 1)
WINPR_ATTR_NODISCARD
pServerStaticChannelContext* StaticChannelContext_new(pServerContext* ps, const char* name,
UINT32 id);
@@ -167,11 +168,13 @@ extern "C"
FREERDP_API BOOL pf_context_init_server_context(freerdp_peer* client);
WINPR_ATTR_MALLOC(freerdp_client_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API pClientContext* pf_context_create_client_context(const rdpSettings* clientSettings);
FREERDP_API void proxy_data_free(proxyData* pdata);
WINPR_ATTR_MALLOC(proxy_data_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API proxyData* proxy_data_new(void);
FREERDP_API void proxy_data_set_client_context(proxyData* pdata, pClientContext* context);
FREERDP_API void proxy_data_set_server_context(proxyData* pdata, pServerContext* context);

View File

@@ -46,6 +46,7 @@ extern "C"
* @return A new proxy server instance or NULL on failure.
*/
WINPR_ATTR_MALLOC(pf_server_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API proxyServer* pf_server_new(const proxyConfig* config);
/**

View File

@@ -145,6 +145,7 @@ extern "C"
FREERDP_API void rail_server_context_free(RailServerContext* context);
WINPR_ATTR_MALLOC(rail_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RailServerContext* rail_server_context_new(HANDLE vcm);
FREERDP_API UINT rail_server_handle_messages(RailServerContext* context);

View File

@@ -223,6 +223,7 @@ struct s_rdpdr_server_context
FREERDP_API void rdpdr_server_context_free(RdpdrServerContext* context);
WINPR_ATTR_MALLOC(rdpdr_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RdpdrServerContext* rdpdr_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -128,6 +128,7 @@ extern "C"
FREERDP_API void cam_dev_enum_server_context_free(CamDevEnumServerContext* context);
WINPR_ATTR_MALLOC(cam_dev_enum_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API CamDevEnumServerContext* cam_dev_enum_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -275,6 +275,7 @@ extern "C"
FREERDP_API void camera_device_server_context_free(CameraDeviceServerContext* context);
WINPR_ATTR_MALLOC(camera_device_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API CameraDeviceServerContext* camera_device_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -78,6 +78,7 @@ extern "C"
FREERDP_API void rdpei_server_context_free(RdpeiServerContext* context);
WINPR_ATTR_MALLOC(rdpei_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RdpeiServerContext* rdpei_server_context_new(HANDLE vcm);
FREERDP_API void rdpei_server_context_reset(RdpeiServerContext* context);

View File

@@ -123,6 +123,7 @@ extern "C"
FREERDP_API void mouse_cursor_server_context_free(MouseCursorServerContext* context);
WINPR_ATTR_MALLOC(mouse_cursor_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API MouseCursorServerContext* mouse_cursor_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -142,6 +142,7 @@ extern "C"
FREERDP_API void rdpgfx_server_context_free(RdpgfxServerContext* context);
WINPR_ATTR_MALLOC(rdpgfx_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RdpgfxServerContext* rdpgfx_server_context_new(HANDLE vcm);
FREERDP_API BOOL rdpgfx_server_set_own_thread(RdpgfxServerContext* context,

View File

@@ -185,6 +185,7 @@ extern "C"
FREERDP_API void rdpsnd_server_context_free(RdpsndServerContext* context);
WINPR_ATTR_MALLOC(rdpsnd_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RdpsndServerContext* rdpsnd_server_context_new(HANDLE vcm);
FREERDP_API void rdpsnd_server_context_reset(RdpsndServerContext*);

View File

@@ -58,6 +58,7 @@ extern "C"
FREERDP_API void remdesk_server_context_free(RemdeskServerContext* context);
WINPR_ATTR_MALLOC(remdesk_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RemdeskServerContext* remdesk_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -352,6 +352,7 @@ extern "C"
FREERDP_API void shadow_server_free(rdpShadowServer* server);
WINPR_ATTR_MALLOC(shadow_server_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpShadowServer* shadow_server_new(void);
FREERDP_API int shadow_capture_align_clip_rect(RECTANGLE_16* rect, const RECTANGLE_16* clip);

View File

@@ -102,6 +102,7 @@ extern "C"
FREERDP_API void telemetry_server_context_free(TelemetryServerContext* context);
WINPR_ATTR_MALLOC(telemetry_server_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API TelemetryServerContext* telemetry_server_context_new(HANDLE vcm);
#ifdef __cplusplus

View File

@@ -94,6 +94,7 @@ extern "C"
* \return A newly allocated settings struct or NULL
*/
WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpSettings* freerdp_settings_new(DWORD flags);
/** \brief Creates a deep copy of settings
@@ -103,6 +104,7 @@ extern "C"
* \return A newly allocated copy of \b settings or NULL
*/
WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpSettings* freerdp_settings_clone(const rdpSettings* settings);
/** \brief Deep copies settings from \b src to \b dst
@@ -114,6 +116,7 @@ extern "C"
*
* \return \b TRUE for success, \b FALSE for failure.
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_copy(rdpSettings* dst, const rdpSettings* src);
/** \brief copies one setting identified by \b id from \b src to \b dst
@@ -126,7 +129,7 @@ extern "C"
*
* \return \b TRUE for success, \b FALSE for failure.
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_copy_item(rdpSettings* dst, const rdpSettings* src,
SSIZE_T id);
@@ -153,9 +156,11 @@ extern "C"
FREERDP_API void freerdp_addin_argv_free(ADDIN_ARGV* args);
WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API ADDIN_ARGV* freerdp_addin_argv_new(size_t argc, const char* const argv[]);
WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API ADDIN_ARGV* freerdp_addin_argv_clone(const ADDIN_ARGV* args);
FREERDP_API BOOL freerdp_addin_argv_add_argument(ADDIN_ARGV* args, const char* argument);
@@ -185,20 +190,25 @@ extern "C"
*/
FREERDP_API BOOL freerdp_device_collection_del(rdpSettings* settings,
const RDPDR_DEVICE* device);
WINPR_ATTR_NODISCARD
FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find(rdpSettings* settings,
const char* name);
WINPR_ATTR_NODISCARD
FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find_type(rdpSettings* settings,
UINT32 type);
FREERDP_API void freerdp_device_free(RDPDR_DEVICE* device);
WINPR_ATTR_MALLOC(freerdp_device_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RDPDR_DEVICE* freerdp_device_new(UINT32 Type, size_t count,
const char* const args[]);
WINPR_ATTR_MALLOC(freerdp_device_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_device_equal(const RDPDR_DEVICE* one, const RDPDR_DEVICE* other);
FREERDP_API void freerdp_device_collection_free(rdpSettings* settings);
@@ -206,10 +216,13 @@ extern "C"
FREERDP_API BOOL freerdp_static_channel_collection_add(rdpSettings* settings,
ADDIN_ARGV* channel);
FREERDP_API BOOL freerdp_static_channel_collection_del(rdpSettings* settings, const char* name);
WINPR_ATTR_NODISCARD
FREERDP_API ADDIN_ARGV* freerdp_static_channel_collection_find(rdpSettings* settings,
const char* name);
#if defined(WITH_FREERDP_DEPRECATED)
WINPR_DEPRECATED(FREERDP_API ADDIN_ARGV* freerdp_static_channel_clone(ADDIN_ARGV* channel));
WINPR_DEPRECATED(FREERDP_API ADDIN_ARGV* WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
WINPR_ATTR_NODISCARD freerdp_static_channel_clone(ADDIN_ARGV* channel));
#endif
FREERDP_API void freerdp_static_channel_collection_free(rdpSettings* settings);
@@ -218,22 +231,31 @@ extern "C"
ADDIN_ARGV* channel);
FREERDP_API BOOL freerdp_dynamic_channel_collection_del(rdpSettings* settings,
const char* name);
WINPR_ATTR_NODISCARD
FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_collection_find(const rdpSettings* settings,
const char* name);
#if defined(WITH_FREERDP_DEPRECATED)
WINPR_DEPRECATED(FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_clone(ADDIN_ARGV* channel));
WINPR_DEPRECATED(FREERDP_API ADDIN_ARGV* WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
WINPR_ATTR_NODISCARD freerdp_dynamic_channel_clone(ADDIN_ARGV* channel));
#endif
FREERDP_API void freerdp_dynamic_channel_collection_free(rdpSettings* settings);
FREERDP_API void freerdp_capability_buffer_free(rdpSettings* settings);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_capability_buffer_copy(rdpSettings* settings, const rdpSettings* src);
FREERDP_API void freerdp_server_license_issuers_free(rdpSettings* settings);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_server_license_issuers_copy(rdpSettings* settings, char** addresses,
UINT32 count);
FREERDP_API void freerdp_target_net_addresses_free(rdpSettings* settings);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_target_net_addresses_copy(rdpSettings* settings, char** addresses,
UINT32 count);
@@ -252,36 +274,36 @@ extern "C"
*/
#if defined(WITH_FREERDP_DEPRECATED)
WINPR_DEPRECATED_VAR("Use freerdp_settings_get_bool instead",
FREERDP_API BOOL freerdp_get_param_bool(const rdpSettings* settings,
int id));
WINPR_ATTR_NODISCARD FREERDP_API BOOL
freerdp_get_param_bool(const rdpSettings* settings, int id));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_bool instead",
FREERDP_API int freerdp_set_param_bool(rdpSettings* settings, int id,
BOOL param));
WINPR_DEPRECATED_VAR("Use freerdp_settings_get_int[16|32] instead",
FREERDP_API int freerdp_get_param_int(const rdpSettings* settings,
int id));
WINPR_ATTR_NODISCARD FREERDP_API int freerdp_get_param_int(
const rdpSettings* settings, int id));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_int[16|32] instead",
FREERDP_API int freerdp_set_param_int(rdpSettings* settings, int id,
int param));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_uint32 instead",
FREERDP_API UINT32 freerdp_get_param_uint32(const rdpSettings* settings,
int id));
WINPR_ATTR_NODISCARD FREERDP_API UINT32
freerdp_get_param_uint32(const rdpSettings* settings, int id));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_uint32 instead",
FREERDP_API int freerdp_set_param_uint32(rdpSettings* settings, int id,
UINT32 param));
WINPR_DEPRECATED_VAR("Use freerdp_settings_get_uint64 instead",
FREERDP_API UINT64 freerdp_get_param_uint64(const rdpSettings* settings,
int id));
WINPR_ATTR_NODISCARD FREERDP_API UINT64
freerdp_get_param_uint64(const rdpSettings* settings, int id));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_uint64 instead",
FREERDP_API int freerdp_set_param_uint64(rdpSettings* settings, int id,
UINT64 param));
WINPR_DEPRECATED_VAR("Use freerdp_settings_get_string instead",
FREERDP_API char* freerdp_get_param_string(const rdpSettings* settings,
int id));
WINPR_ATTR_NODISCARD FREERDP_API char* freerdp_get_param_string(
const rdpSettings* settings, int id));
WINPR_DEPRECATED_VAR("Use freerdp_settings_set_string instead",
FREERDP_API int freerdp_set_param_string(rdpSettings* settings, int id,
const char* param));
@@ -296,6 +318,7 @@ extern "C"
*
* \return \b TRUE if valid, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_are_valid(const rdpSettings* settings);
/** \brief Returns a boolean settings value
@@ -305,6 +328,7 @@ extern "C"
*
* \return the value of the boolean key
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings* settings,
FreeRDP_Settings_Keys_Bool id);
@@ -326,6 +350,7 @@ extern "C"
*
* \return the value of the INT16 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings* settings,
FreeRDP_Settings_Keys_Int16 id);
@@ -347,6 +372,7 @@ extern "C"
*
* \return the value of the UINT16 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings* settings,
FreeRDP_Settings_Keys_UInt16 id);
@@ -368,6 +394,7 @@ extern "C"
*
* \return the value of the INT32 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings* settings,
FreeRDP_Settings_Keys_Int32 id);
@@ -389,6 +416,7 @@ extern "C"
*
* \return the value of the UINT32 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings* settings,
FreeRDP_Settings_Keys_UInt32 id);
@@ -410,6 +438,7 @@ extern "C"
*
* \return the value of the INT64 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings* settings,
FreeRDP_Settings_Keys_Int64 id);
@@ -431,6 +460,7 @@ extern "C"
*
* \return the value of the UINT64 key
*/
WINPR_ATTR_NODISCARD
FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings* settings,
FreeRDP_Settings_Keys_UInt64 id);
@@ -452,6 +482,7 @@ extern "C"
*
* \return the immutable string pointer
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_settings_get_string(const rdpSettings* settings,
FreeRDP_Settings_Keys_String id);
@@ -462,6 +493,7 @@ extern "C"
*
* \return the string pointer
*/
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_settings_get_string_writable(rdpSettings* settings,
FreeRDP_Settings_Keys_String id);
@@ -536,6 +568,8 @@ extern "C"
*
* \return An allocated, '\0' terminated WCHAR string or NULL
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API WCHAR* freerdp_settings_get_string_as_utf16(const rdpSettings* settings,
FreeRDP_Settings_Keys_String id,
size_t* pCharLen);
@@ -547,6 +581,7 @@ extern "C"
*
* \return the immutable pointer value
*/
WINPR_ATTR_NODISCARD
FREERDP_API const void* freerdp_settings_get_pointer(const rdpSettings* settings,
FreeRDP_Settings_Keys_Pointer id);
@@ -557,6 +592,7 @@ extern "C"
*
* \return the mutable pointer value
*/
WINPR_ATTR_NODISCARD
FREERDP_API void* freerdp_settings_get_pointer_writable(rdpSettings* settings,
FreeRDP_Settings_Keys_Pointer id);
@@ -584,12 +620,16 @@ extern "C"
FreeRDP_Settings_Keys_Pointer id,
const void* data, size_t len);
WINPR_ATTR_NODISCARD
FREERDP_API const void* freerdp_settings_get_pointer_array(const rdpSettings* settings,
FreeRDP_Settings_Keys_Pointer id,
size_t offset);
WINPR_ATTR_NODISCARD
FREERDP_API void* freerdp_settings_get_pointer_array_writable(const rdpSettings* settings,
FreeRDP_Settings_Keys_Pointer id,
size_t offset);
FREERDP_API BOOL freerdp_settings_set_pointer_array(rdpSettings* settings,
FreeRDP_Settings_Keys_Pointer id,
size_t offset, const void* data);
@@ -623,6 +663,7 @@ extern "C"
*
* \return The key index or -1 in case of an error (e.g. name does not exist)
*/
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char* value);
/** \brief Get a key type for the name string of that key
@@ -632,6 +673,7 @@ extern "C"
* \return The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name
* does not exist)
*/
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char* value);
/** \brief Get a key type for the key index
@@ -641,6 +683,7 @@ extern "C"
* \return The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name
* does not exist)
*/
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(SSIZE_T key);
/** \brief Returns the type name for a \b key
@@ -648,6 +691,7 @@ extern "C"
* \param key the key number to stringify
* \return the type name of the key or \b FREERDP_SETTINGS_TYPE_UNKNOWN
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_settings_get_type_name_for_key(SSIZE_T key);
/** \brief Returns the type name for a \b type
@@ -655,6 +699,7 @@ extern "C"
* \param type the type to stringify
* \return the name of the key or \b FREERDP_SETTINGS_TYPE_UNKNOWN
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_settings_get_type_name_for_type(SSIZE_T type);
/** \brief Returns the type name for a \b key
@@ -662,6 +707,7 @@ extern "C"
* \param key the key number to stringify
* \return the name of the key or \b NULL
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_settings_get_name_for_key(SSIZE_T key);
/** \brief helper function to get a mask of supported codec flags.
@@ -673,6 +719,7 @@ extern "C"
*
* \return a mask of supported codecs
*/
WINPR_ATTR_NODISCARD
FREERDP_API UINT32 freerdp_settings_get_codecs_flags(const rdpSettings* settings);
/** \brief Parse capability data and apply to settings
@@ -690,6 +737,7 @@ extern "C"
*
* \return \b TRUE for success, \b FALSE in case of an error
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_update_from_caps(rdpSettings* settings, const BYTE* capsFlags,
const BYTE** capsData,
const UINT32* capsSizes, UINT32 capsCount,
@@ -704,6 +752,7 @@ extern "C"
*
* \return A string pointer or NULL in case of failure.
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_settings_get_server_name(const rdpSettings* settings);
/** \brief Returns a stringified representation of RAIL support flags
@@ -714,6 +763,7 @@ extern "C"
*
* \return A pointer to \b buffer for success, NULL otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_rail_support_flags_to_string(UINT32 flags, char* buffer,
size_t length);
@@ -724,6 +774,7 @@ extern "C"
* \return A string representation of the protocol version as "RDP_VERSION_10_11" or
* "RDP_VERSION_UNKNOWN" for invalid/unknown versions
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_rdp_version_string(UINT32 version);
/** \brief Returns a string representation of \b RDPDR_DTYP_*
@@ -732,9 +783,12 @@ extern "C"
*
* \return A string representation of the \b RDPDR_DTYP_* or "RDPDR_DTYP_UNKNOWN"
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_rdpdr_dtyp_string(UINT32 type);
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_encryption_level_string(UINT32 EncryptionLevel);
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_encryption_methods_string(UINT32 EncryptionLevel, char* buffer,
size_t size);
@@ -745,6 +799,7 @@ extern "C"
*
* @return A string reprenentation of the bitmask.
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_supported_color_depths_string(UINT16 mask, char* buffer,
size_t size);
@@ -754,6 +809,7 @@ extern "C"
* @note Since 3.17.1 this is a wrapper for \b freerdp_GetConfigFilePath(FALSE, "")
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_settings_get_config_path(void);
/** @brief Sort monitor array according to:
@@ -773,6 +829,7 @@ extern "C"
*
* @version since 3.11.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_settings_set_monitor_def_array_sorted(rdpSettings* settings,
const rdpMonitor* monitors,
size_t count);
@@ -787,6 +844,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_settings_serialize(const rdpSettings* settings, BOOL pretty,
size_t* plength);
@@ -798,6 +856,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpSettings* freerdp_settings_deserialize(const char* json, size_t length);
#ifdef __cplusplus

View File

@@ -40,17 +40,21 @@ extern "C"
STREAM_MSG_SRV_TX = 2
} StreamDumpDirection;
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T stream_dump_append(const rdpContext* context, UINT32 flags, wStream* s,
size_t* offset);
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T stream_dump_get(const rdpContext* context, UINT32* flags, wStream* s,
size_t* offset, UINT64* pts);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL stream_dump_register_handlers(rdpContext* context, CONNECTION_STATE state,
BOOL isServer);
FREERDP_API void stream_dump_free(rdpStreamDumpContext* dump);
WINPR_ATTR_MALLOC(stream_dump_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpStreamDumpContext* stream_dump_new(void);
#ifdef __cplusplus

View File

@@ -164,6 +164,7 @@ extern "C"
* @since version 3.9.0
*/
WINPR_ATTR_MALLOC(transport_layer_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpTransportLayer* transport_layer_new(rdpTransport* transport, size_t contextSize);
#ifdef __cplusplus

View File

@@ -77,6 +77,7 @@ extern "C"
* @return The token string or \b NULL
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_utils_aad_get_access_token(wLog* log, const char* data,
size_t length);
@@ -87,6 +88,7 @@ extern "C"
* @return The string representation of the enum value
* @since version 3.10.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_utils_aad_wellknwon_value_name(AAD_WELLKNOWN_VALUES which);
/** Helper to extract a string from AAD::wellknown JSON
@@ -97,6 +99,7 @@ extern "C"
*
* @since version 3.10.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_utils_aad_get_wellknown_string(rdpContext* context,
AAD_WELLKNOWN_VALUES which);
@@ -108,6 +111,7 @@ extern "C"
*
* @since version 3.10.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_utils_aad_get_wellknown_custom_string(rdpContext* context,
const char* which);
@@ -119,6 +123,7 @@ extern "C"
*
* @since version 3.10.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_object(rdpContext* context,
AAD_WELLKNOWN_VALUES which);
@@ -130,6 +135,7 @@ extern "C"
*
* @since version 3.10.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_custom_object(rdpContext* context,
const char* which);
@@ -143,6 +149,7 @@ extern "C"
* @since version 3.10.0
*/
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
WINPR_ATTR_NODISCARD
FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const char* base,
const char* tenantid);

View File

@@ -22,6 +22,7 @@
#define FREERDP_UTILS_CLIPRDR_H
#include <winpr/wtypes.h>
#include <winpr/stream.h>
#include <winpr/shell.h>
#include <freerdp/api.h>
@@ -30,15 +31,20 @@ extern "C"
{
#endif
WINPR_ATTR_NODISCARD
FREERDP_API BOOL cliprdr_read_filedescriptor(wStream* s, FILEDESCRIPTORW* descriptor);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL cliprdr_write_filedescriptor(wStream* s, const FILEDESCRIPTORW* descriptor);
WINPR_ATTR_NODISCARD
FREERDP_API UINT cliprdr_parse_file_list(const BYTE* format_data, UINT32 format_data_length,
FILEDESCRIPTORW** file_descriptor_array,
UINT32* file_descriptor_count);
WINPR_ATTR_NODISCARD
FREERDP_API UINT cliprdr_serialize_file_list(const FILEDESCRIPTORW* file_descriptor_array,
UINT32 file_descriptor_count, BYTE** format_data,
UINT32* format_data_length);
WINPR_ATTR_NODISCARD
FREERDP_API UINT cliprdr_serialize_file_list_ex(UINT32 flags,
const FILEDESCRIPTORW* file_descriptor_array,
UINT32 file_descriptor_count,

View File

@@ -30,6 +30,7 @@ extern "C"
{
#endif
WINPR_ATTR_NODISCARD
FREERDP_API const char* drdynvc_get_packet_type(BYTE cmd);
#ifdef __cplusplus

View File

@@ -62,6 +62,7 @@ extern "C"
*
* @return \b TRUE for successful reading, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_read_four_byte_signed_integer(wStream* s, INT32* value);
/** Write a 4 byte signed integer to a stream
@@ -73,6 +74,7 @@ extern "C"
*
* @return \b TRUE for successful writing, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_write_four_byte_signed_integer(wStream* s, INT32 value);
/** Read a 4 byte float from a stream and store the decoded value
@@ -84,6 +86,7 @@ extern "C"
*
* @return \b TRUE for successful reading, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_read_four_byte_float(wStream* s, double* value);
/** Read a 4 byte float from a stream and store the decoded value and exponent
@@ -96,6 +99,7 @@ extern "C"
*
* @return \b TRUE for successful reading, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_read_four_byte_float_exp(wStream* s, double* value, BYTE* exp);
/** Write a 4 byte float to a stream
@@ -107,6 +111,7 @@ extern "C"
*
* @return \b TRUE for successful writing, \b FALSE otherwise
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_write_four_byte_float(wStream* s, double value);
#ifdef __cplusplus

View File

@@ -36,10 +36,13 @@ extern "C"
* @return The string representation of the capabilities
* @since version 3.9.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* rdpgfx_caps_version_str(UINT32 capsVersion);
WINPR_ATTR_NODISCARD
FREERDP_API const char* rdpgfx_get_cmd_id_string(UINT16 cmdId);
WINPR_ATTR_NODISCARD
FREERDP_API const char* rdpgfx_get_codec_id_string(UINT16 codecId);
#ifdef __cplusplus

View File

@@ -44,6 +44,7 @@ extern "C"
* @since version 3.9.0
*/
WINPR_ATTR_MALLOC(free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API char* freerdp_GetConfigFilePath(BOOL system, const char* filename);
/** @brief return a parsed JSON for a given config file name.
@@ -56,6 +57,7 @@ extern "C"
* @since version 3.16.0
*/
WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
WINPR_ATTR_NODISCARD
FREERDP_API WINPR_JSON* freerdp_GetJSONConfigFile(BOOL system, const char* filename);
#ifdef __cplusplus

View File

@@ -71,10 +71,13 @@ extern "C"
{
#endif
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_http_request(const char* url, const char* body, long* status_code,
BYTE** response, size_t* response_length);
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_http_status_string(long status);
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_http_status_string_format(long status, char* buffer,
size_t size);

View File

@@ -43,6 +43,7 @@ extern "C"
*
* @return The character read or \ref EOF in case of any failures
*/
WINPR_ATTR_NODISCARD
FREERDP_API int freerdp_interruptible_getc(rdpContext* context, FILE* stream);
/** @brief read a line from \ref stream with (optinal) default value that can be manipulated.
@@ -58,6 +59,7 @@ extern "C"
*
* @return \b -1 in case of failure, otherwise \ref strlen of the result
*/
WINPR_ATTR_NODISCARD
FREERDP_API SSIZE_T freerdp_interruptible_get_line(rdpContext* context, char** lineptr,
size_t* size, FILE* stream);
@@ -71,6 +73,7 @@ extern "C"
*
* @return A pointer to \ref buf containing the password or \ref NULL in case of an error.
*/
WINPR_ATTR_NODISCARD
FREERDP_API const char* freerdp_passphrase_read(rdpContext* context, const char* prompt,
char* buf, size_t bufsiz, int from_stdin);

View File

@@ -63,13 +63,21 @@ extern "C"
typedef struct rdp_pcap rdpPcap;
FREERDP_API rdpPcap* pcap_open(const char* name, BOOL write);
FREERDP_API void pcap_close(rdpPcap* pcap);
WINPR_ATTR_MALLOC(pcap_close, 1)
WINPR_ATTR_NODISCARD
FREERDP_API rdpPcap* pcap_open(const char* name, BOOL write);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL pcap_add_record(rdpPcap* pcap, const void* data, size_t length);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL pcap_has_next_record(const rdpPcap* pcap);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL pcap_get_next_record(rdpPcap* pcap, pcap_record* record);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL pcap_get_next_record_header(rdpPcap* pcap, pcap_record* record);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL pcap_get_next_record_content(rdpPcap* pcap, pcap_record* record);
FREERDP_API void pcap_flush(rdpPcap* pcap);

View File

@@ -42,24 +42,28 @@ extern "C"
a->nvalues = 0; \
} \
\
WINPR_ATTR_NODISCARD \
static inline size_t array_##TLOWER##_size(const Array##T* a) \
{ \
WINPR_ASSERT(a); \
return a->nvalues; \
} \
\
WINPR_ATTR_NODISCARD \
static inline T* array_##TLOWER##_data(const Array##T* a) \
{ \
WINPR_ASSERT(a); \
return a->values; \
} \
\
WINPR_ATTR_NODISCARD \
static inline const T* array_##TLOWER##_cdata(const Array##T* a) \
{ \
WINPR_ASSERT(a); \
return (const T*)a->values; \
} \
\
WINPR_ATTR_NODISCARD \
static inline T array_##TLOWER##_get(const Array##T* a, size_t idx) \
{ \
WINPR_ASSERT(a); \
@@ -74,6 +78,7 @@ extern "C"
a->values[idx] = v; \
} \
\
WINPR_ATTR_NODISCARD \
static inline BOOL array_##TLOWER##_append(Array##T* a, T v) \
{ \
WINPR_ASSERT(a); \
@@ -87,6 +92,7 @@ extern "C"
return TRUE; \
} \
\
WINPR_ATTR_NODISCARD \
static inline BOOL array_##TLOWER##_contains(const Array##T* a, T v) \
{ \
WINPR_ASSERT(a); \
@@ -100,6 +106,7 @@ extern "C"
return FALSE; \
} \
\
WINPR_ATTR_NODISCARD \
static inline BOOL array_##TLOWER##_foreach(Array##T* a, Array##T##Cb cb, void* data) \
{ \
WINPR_ASSERT(a); \

View File

@@ -30,9 +30,12 @@ extern "C"
typedef struct S_PROFILER PROFILER;
FREERDP_API PROFILER* profiler_create(const char* name);
FREERDP_API void profiler_free(PROFILER* profiler);
WINPR_ATTR_MALLOC(profiler_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API PROFILER* profiler_create(const char* name);
FREERDP_API void profiler_enter(PROFILER* profiler);
FREERDP_API void profiler_exit(PROFILER* profiler);

View File

@@ -36,6 +36,7 @@ extern "C"
*
* @return \b TRUE if parsed successfully
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL proxy_parse_uri(rdpSettings* settings, const char* uri_in);
#ifdef __cplusplus

View File

@@ -52,6 +52,7 @@ extern "C"
* @param initialSize the initial capacity of the ringBuffer
* @return if the initialisation was successful
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL ringbuffer_init(RingBuffer* rb, size_t initialSize);
/**
@@ -67,6 +68,7 @@ extern "C"
* @param ringbuffer A pointer to the ringbuffer
* @return the number of bytes stored in that ringbuffer
*/
WINPR_ATTR_NODISCARD
FREERDP_API size_t ringbuffer_used(const RingBuffer* ringbuffer);
/** returns the capacity of the ring buffer
@@ -74,6 +76,7 @@ extern "C"
* @param ringbuffer A pointer to the ringbuffer
* @return the capacity of this ring buffer
*/
WINPR_ATTR_NODISCARD
FREERDP_API size_t ringbuffer_capacity(const RingBuffer* ringbuffer);
/** writes some bytes in the ringbuffer, if the data doesn't fit, the ringbuffer
@@ -84,6 +87,7 @@ extern "C"
* @param sz the size of the data to add
* @return if the operation was successful, it could fail in case of OOM during realloc()
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL ringbuffer_write(RingBuffer* rb, const BYTE* ptr, size_t sz);
/** ensures that we have sz bytes available at the write head, and return a pointer
@@ -93,6 +97,7 @@ extern "C"
* @param sz the size to ensure
* @return a pointer on the write head, or NULL in case of OOM
*/
WINPR_ATTR_NODISCARD
FREERDP_API BYTE* ringbuffer_ensure_linear_write(RingBuffer* rb, size_t sz);
/** move ahead the write head in case some byte were written directly by using
@@ -104,6 +109,7 @@ extern "C"
* @param sz the number of bytes that have been written
* @return if the operation was successful, FALSE is sz is too big
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL ringbuffer_commit_written_bytes(RingBuffer* rb, size_t sz);
/** peeks the buffer chunks for sz bytes and returns how many chunks are filled.
@@ -114,6 +120,7 @@ extern "C"
* @param sz the requested size
* @return the number of chunks used for reading sz bytes
*/
WINPR_ATTR_NODISCARD
FREERDP_API int ringbuffer_peek(const RingBuffer* rb, DataChunk chunks[2], size_t sz);
/** move ahead the read head in case some byte were read using ringbuffer_peek()

View File

@@ -30,6 +30,7 @@ extern "C"
typedef void (*freerdp_signal_handler_t)(int signum, const char* signame, void* context);
WINPR_ATTR_NODISCARD
FREERDP_API int freerdp_handle_signals(void);
/** \brief registers a cleanup handler for non fatal signals.

View File

@@ -41,20 +41,29 @@ extern "C"
FREERDP_API void smartcard_call_context_free(scard_call_context* ctx);
WINPR_ATTR_MALLOC(smartcard_call_context_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API scard_call_context* smartcard_call_context_new(const rdpSettings* settings);
FREERDP_API BOOL smartcard_call_context_signal_stop(scard_call_context* ctx, BOOL reset);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL smartcard_call_context_add(scard_call_context* ctx, const char* name);
FREERDP_API BOOL smartcard_call_cancel_context(scard_call_context* ctx, SCARDCONTEXT context);
FREERDP_API BOOL smartcard_call_cancel_all_context(scard_call_context* ctx);
FREERDP_API BOOL smartcard_call_release_context(scard_call_context* ctx, SCARDCONTEXT context);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL smartcard_call_is_configured(scard_call_context* ctx);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL smarcard_call_set_callbacks(scard_call_context* ctx, void* userdata,
void* (*fn_new)(void*, SCARDCONTEXT),
void (*fn_free)(void*));
WINPR_ATTR_NODISCARD
FREERDP_API void* smartcard_call_get_context(scard_call_context* ctx, SCARDCONTEXT hContext);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_irp_device_control_call(scard_call_context* context, wStream* out,
NTSTATUS* pIoStatus,
SMARTCARD_OPERATION* operation);

View File

@@ -86,9 +86,11 @@ extern "C"
UINT32 outputBufferLength; /** @since version 3.13.0 */
} SMARTCARD_OPERATION;
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_irp_device_control_decode(wStream* s, UINT32 CompletionId,
UINT32 FileId,
SMARTCARD_OPERATION* operation);
FREERDP_API void smartcard_operation_free(SMARTCARD_OPERATION* op, BOOL allocated);
#ifdef __cplusplus

View File

@@ -42,140 +42,192 @@ extern "C"
FREERDP_API LONG smartcard_pack_write_size_align(wStream* s, size_t size, UINT32 alignment);
FREERDP_API LONG smartcard_unpack_read_size_align(wStream* s, size_t size, UINT32 alignment);
WINPR_ATTR_NODISCARD
FREERDP_API SCARDCONTEXT smartcard_scard_context_native_from_redir(REDIR_SCARDCONTEXT* context);
FREERDP_API void smartcard_scard_context_native_to_redir(REDIR_SCARDCONTEXT* context,
SCARDCONTEXT hContext);
WINPR_ATTR_NODISCARD
FREERDP_API SCARDHANDLE smartcard_scard_handle_native_from_redir(REDIR_SCARDHANDLE* handle);
FREERDP_API void smartcard_scard_handle_native_to_redir(REDIR_SCARDHANDLE* handle,
SCARDHANDLE hCard);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_common_type_header(wStream* s);
FREERDP_API void smartcard_pack_common_type_header(wStream* s);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_private_type_header(wStream* s);
FREERDP_API void smartcard_pack_private_type_header(wStream* s, UINT32 objectBufferLength);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_establish_context_call(wStream* s,
EstablishContext_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_establish_context_return(wStream* s,
const EstablishContext_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_context_call(wStream* s, Context_Call* call,
const char* name);
FREERDP_API void smartcard_trace_long_return(const Long_Return* ret, const char* name);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_list_reader_groups_call(wStream* s,
ListReaderGroups_Call* call,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_list_reader_groups_return(wStream* s,
const ListReaderGroups_Return* ret,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_list_readers_call(wStream* s, ListReaders_Call* call,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_list_readers_return(wStream* s, const ListReaders_Return* ret,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG
smartcard_unpack_context_and_two_strings_a_call(wStream* s, ContextAndTwoStringA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG
smartcard_unpack_context_and_two_strings_w_call(wStream* s, ContextAndTwoStringW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_context_and_string_a_call(wStream* s,
ContextAndStringA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_context_and_string_w_call(wStream* s,
ContextAndStringW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_locate_cards_a_call(wStream* s, LocateCardsA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_locate_cards_return(wStream* s, const LocateCards_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_locate_cards_w_call(wStream* s, LocateCardsW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_locate_cards_w_return(wStream* s, const LocateCardsW_Call* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_connect_a_call(wStream* s, ConnectA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_connect_w_call(wStream* s, ConnectW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_connect_return(wStream* s, const Connect_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_reconnect_call(wStream* s, Reconnect_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_reconnect_return(wStream* s, const Reconnect_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_hcard_and_disposition_call(wStream* s,
HCardAndDisposition_Call* call,
const char* name);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_status_change_a_call(wStream* s,
GetStatusChangeA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_status_change_w_call(wStream* s,
GetStatusChangeW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_get_status_change_return(wStream* s,
const GetStatusChange_Return* ret,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_state_call(wStream* s, State_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_state_return(wStream* s, const State_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_status_call(wStream* s, Status_Call* call, BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_status_return(wStream* s, const Status_Return* ret,
BOOL unicode);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_attrib_call(wStream* s, GetAttrib_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_get_attrib_return(wStream* s, const GetAttrib_Return* ret,
DWORD dwAttrId, DWORD cbAttrCallLen);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_set_attrib_call(wStream* s, SetAttrib_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_control_call(wStream* s, Control_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_control_return(wStream* s, const Control_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_transmit_call(wStream* s, Transmit_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_transmit_return(wStream* s, const Transmit_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_a_call(wStream* s,
LocateCardsByATRA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_locate_cards_by_atr_w_call(wStream* s,
LocateCardsByATRW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_read_cache_a_call(wStream* s, ReadCacheA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_read_cache_w_call(wStream* s, ReadCacheW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_read_cache_return(wStream* s, const ReadCache_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_write_cache_a_call(wStream* s, WriteCacheA_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_write_cache_w_call(wStream* s, WriteCacheW_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_transmit_count_call(wStream* s,
GetTransmitCount_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_get_transmit_count_return(wStream* s,
const GetTransmitCount_Return* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_reader_icon_call(wStream* s, GetReaderIcon_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_get_reader_icon_return(wStream* s,
const GetReaderIcon_Return* ret);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_unpack_get_device_type_id_call(wStream* s,
GetDeviceTypeId_Call* call);
WINPR_ATTR_NODISCARD
FREERDP_API LONG smartcard_pack_device_type_id_return(wStream* s,
const GetDeviceTypeId_Return* ret);

View File

@@ -48,12 +48,16 @@ extern "C"
SmartcardKeyInfo* key_info;
} SmartcardCertInfo;
WINPR_ATTR_NODISCARD
FREERDP_API BOOL smartcard_enumerateCerts(const rdpSettings* settings,
SmartcardCertInfo*** scCerts, size_t* retCount,
BOOL gateway);
WINPR_ATTR_NODISCARD
FREERDP_API BOOL smartcard_getCert(const rdpContext* context, SmartcardCertInfo** cert,
BOOL gateway);
FREERDP_API void smartcardCertInfo_Free(SmartcardCertInfo* pscCert);
FREERDP_API void smartcardCertList_Free(SmartcardCertInfo** pscCert, size_t count);
#ifdef __cplusplus

View File

@@ -36,13 +36,17 @@ extern "C"
UINT32 count;
} STOPWATCH;
FREERDP_API STOPWATCH* stopwatch_create(void);
FREERDP_API void stopwatch_free(STOPWATCH* stopwatch);
WINPR_ATTR_MALLOC(stopwatch_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_API STOPWATCH* stopwatch_create(void);
FREERDP_API void stopwatch_start(STOPWATCH* stopwatch);
FREERDP_API void stopwatch_stop(STOPWATCH* stopwatch);
FREERDP_API void stopwatch_reset(STOPWATCH* stopwatch);
WINPR_ATTR_NODISCARD
FREERDP_API double stopwatch_get_elapsed_time_in_seconds(STOPWATCH* stopwatch);
FREERDP_API void stopwatch_get_elapsed_time_in_useconds(STOPWATCH* stopwatch, UINT32* sec,
UINT32* usec);

View File

@@ -30,8 +30,10 @@ extern "C"
{
#endif
WINPR_ATTR_NODISCARD
FREERDP_API const char* rdp_redirection_flags_to_string(UINT32 flags, char* buffer,
size_t size);
WINPR_ATTR_NODISCARD
FREERDP_API const char* rdp_cluster_info_flags_to_string(UINT32 flags, char* buffer,
size_t size);
@@ -45,6 +47,7 @@ extern "C"
*
* @since version 3.9.0
*/
WINPR_ATTR_NODISCARD
FREERDP_API BOOL freerdp_extract_key_value(const char* str, UINT32* pkey, UINT32* pvalue);
/** @brief Convert \ref FreeRDP_DesktopRotationFlags to string

View File

@@ -60,17 +60,20 @@ extern "C"
FREERDP_LOCAL void bitmap_cache_free(rdpBitmapCache* bitmap_cache);
WINPR_ATTR_MALLOC(bitmap_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpBitmapCache* bitmap_cache_new(rdpContext* context);
FREERDP_LOCAL void free_bitmap_update(rdpContext* context, BITMAP_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_bitmap_update, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL BITMAP_UPDATE* copy_bitmap_update(rdpContext* context,
const BITMAP_UPDATE* pointer);
FREERDP_LOCAL void free_cache_bitmap_order(rdpContext* context, CACHE_BITMAP_ORDER* order);
WINPR_ATTR_MALLOC(free_cache_bitmap_order, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_BITMAP_ORDER* copy_cache_bitmap_order(rdpContext* context,
const CACHE_BITMAP_ORDER* order);
@@ -78,6 +81,7 @@ extern "C"
CACHE_BITMAP_V2_ORDER* order);
WINPR_ATTR_MALLOC(free_cache_bitmap_v2_order, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_BITMAP_V2_ORDER*
copy_cache_bitmap_v2_order(rdpContext* context, const CACHE_BITMAP_V2_ORDER* order);
@@ -85,6 +89,7 @@ extern "C"
CACHE_BITMAP_V3_ORDER* order);
WINPR_ATTR_MALLOC(free_cache_bitmap_v3_order, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_BITMAP_V3_ORDER*
copy_cache_bitmap_v3_order(rdpContext* context, const CACHE_BITMAP_V3_ORDER* order);

View File

@@ -42,11 +42,13 @@ extern "C"
FREERDP_LOCAL void brush_cache_free(rdpBrushCache* brush);
WINPR_ATTR_MALLOC(brush_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpBrushCache* brush_cache_new(rdpContext* context);
FREERDP_LOCAL void free_cache_brush_order(rdpContext* context, CACHE_BRUSH_ORDER* order);
WINPR_ATTR_MALLOC(free_cache_brush_order, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_BRUSH_ORDER* copy_cache_brush_order(rdpContext* context,
const CACHE_BRUSH_ORDER* order);

View File

@@ -51,18 +51,21 @@ extern "C"
FREERDP_LOCAL void cache_free(rdpCache* cache);
WINPR_ATTR_MALLOC(cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpCache* cache_new(rdpContext* context);
FREERDP_LOCAL void free_cache_color_table_order(rdpContext* context,
CACHE_COLOR_TABLE_ORDER* order);
WINPR_ATTR_MALLOC(free_cache_color_table_order, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_COLOR_TABLE_ORDER*
copy_cache_color_table_order(rdpContext* context, const CACHE_COLOR_TABLE_ORDER* order);
FREERDP_LOCAL void free_surface_bits_command(rdpContext* context, SURFACE_BITS_COMMAND* order);
WINPR_ATTR_MALLOC(free_surface_bits_command, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL SURFACE_BITS_COMMAND*
copy_surface_bits_command(rdpContext* context, const SURFACE_BITS_COMMAND* order);

View File

@@ -61,15 +61,22 @@ extern "C"
FREERDP_LOCAL void glyph_cache_free(rdpGlyphCache* glyph);
WINPR_ATTR_MALLOC(glyph_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpGlyphCache* glyph_cache_new(rdpContext* context);
FREERDP_LOCAL CACHE_GLYPH_ORDER* copy_cache_glyph_order(rdpContext* context,
const CACHE_GLYPH_ORDER* glyph);
FREERDP_LOCAL void free_cache_glyph_order(rdpContext* context, CACHE_GLYPH_ORDER* glyph);
WINPR_ATTR_MALLOC(free_cache_glyph_order, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_GLYPH_ORDER* copy_cache_glyph_order(rdpContext* context,
const CACHE_GLYPH_ORDER* glyph);
FREERDP_LOCAL void free_cache_glyph_v2_order(rdpContext* context, CACHE_GLYPH_V2_ORDER* glyph);
WINPR_ATTR_MALLOC(free_cache_glyph_v2_order, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL CACHE_GLYPH_V2_ORDER*
copy_cache_glyph_v2_order(rdpContext* context, const CACHE_GLYPH_V2_ORDER* glyph);
FREERDP_LOCAL void free_cache_glyph_v2_order(rdpContext* context, CACHE_GLYPH_V2_ORDER* glyph);
#ifdef __cplusplus
}

View File

@@ -41,6 +41,7 @@ extern "C"
FREERDP_LOCAL void nine_grid_cache_free(rdpNineGridCache* nine_grid);
WINPR_ATTR_MALLOC(nine_grid_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpNineGridCache* nine_grid_cache_new(rdpContext* context);
#ifdef __cplusplus

View File

@@ -34,6 +34,7 @@ extern "C"
{
#endif
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpBitmap* offscreen_cache_get(rdpOffscreenCache* offscreen_cache, UINT32 index);
FREERDP_LOCAL void offscreen_cache_register_callbacks(rdpUpdate* update);
@@ -41,6 +42,7 @@ extern "C"
FREERDP_LOCAL void offscreen_cache_free(rdpOffscreenCache* offscreen);
WINPR_ATTR_MALLOC(offscreen_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpOffscreenCache* offscreen_cache_new(rdpContext* context);
#ifdef __cplusplus

View File

@@ -50,11 +50,13 @@ extern "C"
FREERDP_LOCAL void palette_cache_free(rdpPaletteCache* palette_cache);
WINPR_ATTR_MALLOC(palette_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpPaletteCache* palette_cache_new(rdpContext* context);
FREERDP_LOCAL void free_palette_update(rdpContext* context, PALETTE_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_palette_update, 2)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL PALETTE_UPDATE* copy_palette_update(rdpContext* context,
const PALETTE_UPDATE* pointer);

View File

@@ -45,12 +45,14 @@ extern "C"
FREERDP_LOCAL void pointer_cache_free(rdpPointerCache* pointer_cache);
WINPR_ATTR_MALLOC(pointer_cache_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpPointerCache* pointer_cache_new(rdpContext* context);
FREERDP_LOCAL void free_pointer_color_update(rdpContext* context,
POINTER_COLOR_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_color_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_COLOR_UPDATE*
copy_pointer_color_update(rdpContext* context, const POINTER_COLOR_UPDATE* pointer);
@@ -58,12 +60,14 @@ extern "C"
POINTER_LARGE_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_large_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_LARGE_UPDATE*
copy_pointer_large_update(rdpContext* context, const POINTER_LARGE_UPDATE* pointer);
FREERDP_LOCAL void free_pointer_new_update(rdpContext* context, POINTER_NEW_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_new_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_NEW_UPDATE* copy_pointer_new_update(rdpContext* context,
const POINTER_NEW_UPDATE* pointer);
@@ -71,6 +75,7 @@ extern "C"
POINTER_CACHED_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_cached_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_CACHED_UPDATE*
copy_pointer_cached_update(rdpContext* context, const POINTER_CACHED_UPDATE* pointer);
@@ -78,6 +83,7 @@ extern "C"
POINTER_POSITION_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_position_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_POSITION_UPDATE*
copy_pointer_position_update(rdpContext* context, const POINTER_POSITION_UPDATE* pointer);
@@ -85,6 +91,7 @@ extern "C"
POINTER_SYSTEM_UPDATE* pointer);
WINPR_ATTR_MALLOC(free_pointer_system_update, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL POINTER_SYSTEM_UPDATE*
copy_pointer_system_update(rdpContext* context, const POINTER_SYSTEM_UPDATE* pointer);

View File

@@ -42,6 +42,7 @@ FREERDP_LOCAL void bulk_reset(rdpBulk* WINPR_RESTRICT bulk);
FREERDP_LOCAL void bulk_free(rdpBulk* bulk);
WINPR_ATTR_MALLOC(bulk_free, 1)
WINPR_ATTR_NODISCARD
FREERDP_LOCAL rdpBulk* bulk_new(rdpContext* context);
#endif /* FREERDP_LIB_CORE_BULK_H */

Some files were not shown because too many files have changed in this diff Show More