FreeRDP
Loading...
Searching...
No Matches
win_shadow.h
1
19#ifndef FREERDP_SERVER_SHADOW_WIN_H
20#define FREERDP_SERVER_SHADOW_WIN_H
21
22#include <freerdp/assistance.h>
23
24#include <freerdp/server/shadow.h>
25
26typedef struct win_shadow_subsystem winShadowSubsystem;
27
28#include <winpr/crt.h>
29#include <winpr/synch.h>
30#include <winpr/thread.h>
31#include <winpr/stream.h>
32#include <winpr/collections.h>
33
34#include "win_rdp.h"
35#include "win_wds.h"
36#include "win_dxgi.h"
37
39{
40 rdpShadowSubsystem base;
41
42 int bpp;
43 int width;
44 int height;
45
46 /* Ctrl and Alt held on the remote keyboard: with Delete, the secure
47 * attention sequence */
48 BOOL ctrlDown;
49 BOOL altDown;
50
51 /* the sound capture (win_audio.c) */
52 HANDLE audioThread;
53 HANDLE audioStopEvent;
54
55#ifdef WITH_WDS_API
56 HWND hWnd;
57 shwContext* shw;
58 HANDLE RdpUpdateEnterEvent;
59 HANDLE RdpUpdateLeaveEvent;
60 rdpAssistanceFile* pAssistanceFile;
61 _IRDPSessionEvents* pSessionEvents;
62 IRDPSRAPISharingSession* pSharingSession;
63 IRDPSRAPIInvitation* pInvitation;
64 IRDPSRAPIInvitationManager* pInvitationMgr;
65 IRDPSRAPISessionProperties* pSessionProperties;
66 IRDPSRAPIVirtualChannelManager* pVirtualChannelMgr;
67 IRDPSRAPIApplicationFilter* pApplicationFilter;
68 IRDPSRAPIAttendeeManager* pAttendeeMgr;
69#endif
70
71#ifdef WITH_DXGI_1_2
72 UINT pendingFrames;
73 BYTE* MetadataBuffer;
74 UINT MetadataBufferSize;
75 BOOL dxgiSurfaceMapped;
76 BOOL dxgiFrameAcquired;
77 ID3D11Device* dxgiDevice;
78 IDXGISurface* dxgiSurface;
79 ID3D11Texture2D* dxgiStage;
80 IDXGIResource* dxgiResource;
81 D3D_FEATURE_LEVEL featureLevel;
82 ID3D11Texture2D* dxgiDesktopImage;
83 DXGI_OUTDUPL_FRAME_INFO dxgiFrameInfo;
84 ID3D11DeviceContext* dxgiDeviceContext;
85 IDXGIOutputDuplication* dxgiOutputDuplication;
86#endif
87};
88
89#ifdef __cplusplus
90extern "C"
91{
92#endif
93
94 /* Refreshes the monitor definition and the shadow screen when the
95 * desktop display mode changed. Returns 1 when the geometry changed,
96 * 0 when it did not and <0 on fatal error. */
97 WINPR_ATTR_NODISCARD
98 int win_shadow_check_resize(winShadowSubsystem* subsystem);
99
100#ifdef __cplusplus
101}
102#endif
103
104#endif /* FREERDP_SERVER_SHADOW_WIN_H */