FreeRDP
include/freerdp/client/file.h
1 
20 #ifndef FREERDP_CLIENT_RDP_FILE_H
21 #define FREERDP_CLIENT_RDP_FILE_H
22 
23 #include <freerdp/api.h>
24 #include <freerdp/types.h>
25 #include <freerdp/settings.h>
26 
27 /* Ignore invalid integer values */
28 #define RDP_FILE_FLAG_PARSE_INT_RELAXED 1
29 
30 #ifdef __cplusplus
31 extern "C"
32 {
33 #endif
34 
35  typedef struct rdp_file rdpFile;
36  typedef BOOL (*rdp_file_fkt_parse)(void* context, const char* key, char type,
37  const char* value);
38 
39  /* When using freerdp_client_parse_rdp_file_ex or freerdp_client_parse_rdp_file_buffer_ex
40  * set the context for the callback with this function. */
41  FREERDP_API void freerdp_client_rdp_file_set_callback_context(rdpFile* file, void* context);
42 
43  FREERDP_API BOOL freerdp_client_parse_rdp_file(rdpFile* file, const char* name);
44  FREERDP_API BOOL freerdp_client_parse_rdp_file_ex(rdpFile* file, const char* name,
45  rdp_file_fkt_parse parse);
46  FREERDP_API BOOL freerdp_client_parse_rdp_file_buffer(rdpFile* file, const BYTE* buffer,
47  size_t size);
48  FREERDP_API BOOL freerdp_client_parse_rdp_file_buffer_ex(rdpFile* file, const BYTE* buffer,
49  size_t size, rdp_file_fkt_parse parse);
50  FREERDP_API BOOL freerdp_client_populate_settings_from_rdp_file(const rdpFile* file,
51  rdpSettings* settings);
52 
53  FREERDP_API BOOL freerdp_client_populate_rdp_file_from_settings(rdpFile* file,
54  const rdpSettings* settings);
55  FREERDP_API BOOL freerdp_client_write_rdp_file(const rdpFile* file, const char* name,
56  BOOL unicode);
57  FREERDP_API size_t freerdp_client_write_rdp_file_buffer(const rdpFile* file, char* buffer,
58  size_t size);
59 
60  FREERDP_API int freerdp_client_rdp_file_set_string_option(rdpFile* file, const char* name,
61  const char* value);
62  FREERDP_API const char* freerdp_client_rdp_file_get_string_option(const rdpFile* file,
63  const char* name);
64 
65  FREERDP_API int freerdp_client_rdp_file_set_integer_option(rdpFile* file, const char* name,
66  int value);
67  FREERDP_API int freerdp_client_rdp_file_get_integer_option(const rdpFile* file,
68  const char* name);
69 
70  FREERDP_API void freerdp_client_rdp_file_free(rdpFile* file);
71 
72  WINPR_ATTR_MALLOC(freerdp_client_rdp_file_free, 1)
73  FREERDP_API rdpFile* freerdp_client_rdp_file_new(void);
74 
75  WINPR_ATTR_MALLOC(freerdp_client_rdp_file_free, 1)
76  FREERDP_API rdpFile* freerdp_client_rdp_file_new_ex(DWORD flags);
77 
78 #ifdef __cplusplus
79 }
80 #endif
81 
82 #endif /* FREERDP_CLIENT_RDP_FILE_H */