1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _INC_RDPENCOMAPI
7 #define _INC_RDPENCOMAPI
8 
9 #if (_WIN32_WINNT >= 0x0600)
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 typedef enum _ATTENDEE_DISCONNECT_REASON {
16   ATTENDEE_DISCONNECT_REASON_MIN   = 0,
17   ATTENDEE_DISCONNECT_REASON_APP   = 0,
18   ATTENDEE_DISCONNECT_REASON_ERR   = 1,
19   ATTENDEE_DISCONNECT_REASON_CLI   = 2,
20   ATTENDEE_DISCONNECT_REASON_MAX   = 2
21 } ATTENDEE_DISCONNECT_REASON;
22 
23 typedef enum _CHANNEL_ACCESS_ENUM {
24   CHANNEL_ACCESS_ENUM_NONE          = 0,
25   CHANNEL_ACCESS_ENUM_SENDRECEIVE   = 1
26 } CHANNEL_ACCESS_ENUM;
27 
28 typedef enum _CHANNEL_FLAGS {
29   CHANNEL_FLAGS_LEGACY         = 0x01,
30   CHANNEL_FLAGS_UNCOMPRESSED   = 0x02
31 } CHANNEL_FLAGS;
32 
33 typedef enum _CHANNEL_PRIORITY {
34   CHANNEL_PRIORITY_LO    = 0,
35   CHANNEL_PRIORITY_MED   = 1,
36   CHANNEL_PRIORITY_HI    = 2
37 } CHANNEL_PRIORITY;
38 
39 typedef enum _CTRL_LEVEL {
40   CTRL_LEVEL_MIN           = 0,
41   CTRL_LEVEL_INVALID       = 0,
42   CTRL_LEVEL_NONE          = 1,
43   CTRL_LEVEL_VIEW          = 2,
44   CTRL_LEVEL_INTERACTIVE   = 3,
45   CTRL_LEVEL_MAX           = 3
46 } CTRL_LEVEL;
47 
48 typedef enum _RDPENCOMAPI_ATTENDEE_FLAGS {
49   ATTENDEE_FLAGS_LOCAL   = 1
50 } RDPENCOMAPI_ATTENDEE_FLAGS;
51 
52 typedef enum _RDPENCOMAPI_CONSTANTS {
53   CONST_MAX_CHANNEL_MESSAGE_SIZE          = 1024,
54   CONST_MAX_CHANNEL_NAME_LEN              = 8,
55   CONST_MAX_LEGACY_CHANNEL_MESSAGE_SIZE   = 409600,
56   CONST_ATTENDEE_ID_EVERYONE              = -1,
57   CONST_ATTENDEE_ID_HOST                  = 0,
58   CONST_CONN_INTERVAL                     = 50
59 } RDPENCOMAPI_CONSTANTS;
60 
61 typedef enum _RDPSRAPI_APP_FLAGS {
62   APP_FLAG_PRIVILEGED   = 1
63 } RDPSRAPI_APP_FLAGS;
64 
65 typedef enum _RDPSRAPI_WND_FLAGS {
66   WND_FLAG_PRIVILEGED   = 1
67 } RDPSRAPI_WND_FLAGS;
68 
69 #ifdef __cplusplus
70 }
71 #endif
72 
73 #undef  INTERFACE
74 #define INTERFACE IRDPSRAPITcpConnectionInfo
75 #ifdef __GNUC__
76 #warning COM interfaces layout in this header has not been verified.
77 #warning COM interfaces with incorrect layout may not work at all.
78 __MINGW_BROKEN_INTERFACE(INTERFACE)
79 #endif
DECLARE_INTERFACE_(IRDPSRAPITcpConnectionInfo,IDispatch)80 DECLARE_INTERFACE_(IRDPSRAPITcpConnectionInfo,IDispatch)
81 {
82     BEGIN_INTERFACE
83 
84     /* IUnknown methods */
85     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
86     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
87     STDMETHOD_(ULONG, Release)(THIS) PURE;
88 
89     /* IDispatch methods */
90     STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
91     STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
92     STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
93     STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
94 
95     /* IRDPSRAPITcpConnectionInfo methods */
96     STDMETHOD_(HRESULT,get_Protocol)(THIS_ __LONG32 *plProtocol) PURE;
97     STDMETHOD_(HRESULT,get_LocalPort)(THIS_ __LONG32 *plPort) PURE;
98     STDMETHOD_(HRESULT,get_LocalIP)(THIS_ BSTR *pbstrLocalIP) PURE;
99     STDMETHOD_(HRESULT,get_PeerPort)(THIS_ __LONG32 *plPort) PURE;
100     STDMETHOD_(HRESULT,get_PeerIP)(THIS_ BSTR *pbstrIP) PURE;
101 
102     END_INTERFACE
103 };
104 #ifdef COBJMACROS
105 #define IRDPSRAPITcpConnectionInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
106 #define IRDPSRAPITcpConnectionInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
107 #define IRDPSRAPITcpConnectionInfo_Release(This) (This)->lpVtbl->Release(This)
108 #define IRDPSRAPITcpConnectionInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
109 #define IRDPSRAPITcpConnectionInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
110 #define IRDPSRAPITcpConnectionInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
111 #define IRDPSRAPITcpConnectionInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
112 #define IRDPSRAPITcpConnectionInfo_get_Protocol(This,plProtocol) (This)->lpVtbl->get_Protocol(This,plProtocol)
113 #define IRDPSRAPITcpConnectionInfo_get_LocalPort(This,plPort) (This)->lpVtbl->get_LocalPort(This,plPort)
114 #define IRDPSRAPITcpConnectionInfo_get_LocalIP(This,pbstrLocalIP) (This)->lpVtbl->get_LocalIP(This,pbstrLocalIP)
115 #define IRDPSRAPITcpConnectionInfo_get_PeerPort(This,plPort) (This)->lpVtbl->get_PeerPort(This,plPort)
116 #define IRDPSRAPITcpConnectionInfo_get_PeerIP(This,pbstrIP) (This)->lpVtbl->get_PeerIP(This,pbstrIP)
117 #endif /*COBJMACROS*/
118 
119 #undef  INTERFACE
120 #define INTERFACE IRDPSRAPIAttendee
121 #ifdef __GNUC__
122 #warning COM interfaces layout in this header has not been verified.
123 #warning COM interfaces with incorrect layout may not work at all.
124 __MINGW_BROKEN_INTERFACE(INTERFACE)
125 #endif
DECLARE_INTERFACE_(IRDPSRAPIAttendee,IDispatch)126 DECLARE_INTERFACE_(IRDPSRAPIAttendee,IDispatch)
127 {
128     BEGIN_INTERFACE
129 
130     /* IUnknown methods */
131     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
132     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
133     STDMETHOD_(ULONG, Release)(THIS) PURE;
134 
135     /* IDispatch methods */
136     STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
137     STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
138     STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
139     STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
140 
141     /* IRDPSRAPIAttendee methods */
142     STDMETHOD_(HRESULT,get_Id)(THIS_ __LONG32 *pId) PURE;
143     STDMETHOD_(HRESULT,get_RemoteName)(THIS_ BSTR *pVal) PURE;
144     STDMETHOD_(HRESULT,get_ControlLevel)(THIS_ CTRL_LEVEL *pVal) PURE;
145     STDMETHOD_(HRESULT,put_ControlLevel)(THIS_ CTRL_LEVEL pNewVal) PURE;
146     STDMETHOD_(HRESULT,get_Invitation)(THIS_ IRDPSRAPIInvitation **ppVal) PURE;
147     STDMETHOD_(HRESULT,TerminateConnection)(THIS) PURE;
148     STDMETHOD_(HRESULT,get_Flags)(THIS_ __LONG32 *plFlags) PURE;
149     STDMETHOD_(HRESULT,get_ConnectivityInfo)(THIS_ IUnknown **ppVal) PURE;
150 
151     END_INTERFACE
152 };
153 #ifdef COBJMACROS
154 #define IRDPSRAPIAttendee_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
155 #define IRDPSRAPIAttendee_AddRef(This) (This)->lpVtbl->AddRef(This)
156 #define IRDPSRAPIAttendee_Release(This) (This)->lpVtbl->Release(This)
157 #define IRDPSRAPIAttendee_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
158 #define IRDPSRAPIAttendee_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
159 #define IRDPSRAPIAttendee_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
160 #define IRDPSRAPIAttendee_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
161 #define IRDPSRAPIAttendee_get_Id(This,pId) (This)->lpVtbl->get_Id(This,pId)
162 #define IRDPSRAPIAttendee_get_RemoteName(This,pVal) (This)->lpVtbl->get_RemoteName(This,pVal)
163 #define IRDPSRAPIAttendee_get_ControlLevel(This,pVal) (This)->lpVtbl->get_ControlLevel(This,pVal)
164 #define IRDPSRAPIAttendee_put_ControlLevel(This,pNewVal) (This)->lpVtbl->put_ControlLevel(This,pNewVal)
165 #define IRDPSRAPIAttendee_get_Invitation(This,ppVal) (This)->lpVtbl->get_Invitation(This,ppVal)
166 #define IRDPSRAPIAttendee_TerminateConnection() (This)->lpVtbl->TerminateConnection(This)
167 #define IRDPSRAPIAttendee_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
168 #define IRDPSRAPIAttendee_get_ConnectivityInfo(This,ppVal) (This)->lpVtbl->get_ConnectivityInfo(This,ppVal)
169 #endif /*COBJMACROS*/
170 
171 #endif /*(_WIN32_WINNT >= 0x0600)*/
172 
173 #endif /*_INC_RDPENCOMAPI */
174 
175