FreeRDP
Loading...
Searching...
No Matches
client/geometry.h
1
20#ifndef FREERDP_CHANNELS_CLIENT_GEOMETRY_H
21#define FREERDP_CHANNELS_CLIENT_GEOMETRY_H
22
23#include <winpr/collections.h>
24#include <freerdp/api.h>
25#include <freerdp/channels/geometry.h>
26
27#ifdef __cplusplus
28extern "C"
29{
30#endif
31
35 typedef struct s_geometry_client_context GeometryClientContext;
36
37 typedef struct S_MAPPED_GEOMETRY MAPPED_GEOMETRY;
38 typedef BOOL (*pcMappedGeometryAdded)(GeometryClientContext* context,
39 MAPPED_GEOMETRY* geometry);
40 typedef BOOL (*pcMappedGeometryUpdate)(MAPPED_GEOMETRY* geometry);
41 typedef BOOL (*pcMappedGeometryClear)(MAPPED_GEOMETRY* geometry);
42
45 {
46 volatile LONG refCounter;
47 UINT64 mappingId;
48 UINT64 topLevelId;
49 INT32 left, top, right, bottom;
50 INT32 topLevelLeft, topLevelTop, topLevelRight, topLevelBottom;
51 FREERDP_RGNDATA geometry;
52
53 void* custom;
54 pcMappedGeometryUpdate MappedGeometryUpdate;
55 pcMappedGeometryClear MappedGeometryClear;
56 };
57
60 {
61 wHashTable* geometries;
62 void* handle;
63 void* custom;
64
65 pcMappedGeometryAdded MappedGeometryAdded;
66 UINT32 remoteVersion;
67 };
68
69 FREERDP_API void mappedGeometryRef(MAPPED_GEOMETRY* g);
70 FREERDP_API void mappedGeometryUnref(MAPPED_GEOMETRY* g);
71
72#ifdef __cplusplus
73}
74#endif
75
76#endif /* FREERDP_CHANNELS_CLIENT_GEOMETRY_H */
a geometry record tracked by the geometry channel
the geometry context for client channel