FreeRDP
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
28 extern "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