FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
wf_client.h
1
22#ifndef FREERDP_CLIENT_WIN_INTERFACE_H
23#define FREERDP_CLIENT_WIN_INTERFACE_H
24
25#include <winpr/windows.h>
26
27#include <winpr/collections.h>
28
29#ifdef WITH_PROGRESS_BAR
30#include <shobjidl.h>
31#endif
32
33#include <freerdp/api.h>
34#include <freerdp/freerdp.h>
35#include <freerdp/gdi/gdi.h>
36#include <freerdp/gdi/dc.h>
37#include <freerdp/gdi/region.h>
38#include <freerdp/codec/color.h>
39
40#include <freerdp/client/rail.h>
41#include <freerdp/channels/channels.h>
42#include <freerdp/codec/rfx.h>
43#include <freerdp/codec/nsc.h>
44#include <freerdp/client/file.h>
45
46#include "wf_channels.h"
47#include "wf_floatbar.h"
48#include "wf_event.h"
49#include "wf_cliprdr.h"
50
51#ifdef __cplusplus
52extern "C"
53{
54#endif
55
56// System menu constants
57#define SYSCOMMAND_ID_SMARTSIZING 1000
58#define SYSCOMMAND_ID_REQUEST_CONTROL 1001
59
60 typedef struct
61 {
62 rdpBitmap _bitmap;
63 HDC hdc;
64 HBITMAP bitmap;
65 HBITMAP org_bitmap;
66 BYTE* pdata;
67 } wfBitmap;
68
69 typedef struct
70 {
71 rdpPointer pointer;
72 HCURSOR cursor;
73 } wfPointer;
74
76 {
77 rdpClientContext common;
78
79 int offset_x;
80 int offset_y;
81 int fullscreen_toggle;
82 int fullscreen;
83 int percentscreen;
84 WCHAR* window_title;
85 int client_x;
86 int client_y;
87 int client_width;
88 int client_height;
89
90 HANDLE keyboardThread;
91
92 HICON icon;
93 HWND hWndParent;
94 HINSTANCE hInstance;
95 WNDCLASSEX wndClass;
96 LPCTSTR wndClassName;
97 HCURSOR hDefaultCursor;
98
99 UINT systemMenuInsertPosition;
100
101 HWND hwnd;
102 BOOL is_shown;
103 ITaskbarList3* taskBarList;
104 POINT diff;
105
106 wfBitmap* primary;
107 wfBitmap* drawing;
108 HCURSOR cursor;
109 HBRUSH brush;
110 HBRUSH org_brush;
111 RECT update_rect;
112 RECT scale_update_rect;
113
114 DWORD mainThreadId;
115 DWORD keyboardThreadId;
116
117 rdpFile* connectionRdpFile;
118
119 BOOL disablewindowtracking;
120
121 BOOL updating_scrollbars;
122 BOOL xScrollVisible;
123 int xMinScroll;
124 int xCurrentScroll;
125 int xMaxScroll;
126
127 BOOL yScrollVisible;
128 int yMinScroll;
129 int yCurrentScroll;
130 int yMaxScroll;
131
132 void* clipboard;
133 CliprdrClientContext* cliprdr;
134
135 wfFloatBar* floatbar;
136
137 RailClientContext* rail;
138 wHashTable* railWindows;
139 BOOL isConsole;
140
141 DispClientContext* disp;
142 UINT64 lastSentDate;
143 BOOL wasMaximized;
144 };
145
150 FREERDP_API int RdpClientEntry(RDP_CLIENT_ENTRY_POINTS* pEntryPoints);
151 FREERDP_API int freerdp_client_set_window_size(wfContext* wfc, int width, int height);
152 FREERDP_API void wf_size_scrollbars(wfContext* wfc, UINT32 client_width, UINT32 client_height);
153
154#ifdef __cplusplus
155}
156#endif
157
158#endif /* FREERDP_CLIENT_WIN_INTERFACE_H */