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 __REQUIRED_RPCNDR_H_VERSION__
7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
8 #endif
9 
10 #include "rpc.h"
11 #include "rpcndr.h"
12 
13 #ifndef __RPCNDR_H_VERSION__
14 #error This stub requires an updated version of <rpcndr.h>
15 #endif
16 
17 #ifndef COM_NO_WINDOWS_H
18 #include "windows.h"
19 #include "ole2.h"
20 #endif
21 
22 #ifndef __msp_h__
23 #define __msp_h__
24 
25 #ifndef __ITPluggableTerminalEventSink_FWD_DEFINED__
26 #define __ITPluggableTerminalEventSink_FWD_DEFINED__
27 typedef struct ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
28 #endif
29 
30 #ifndef __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
31 #define __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
32 typedef struct ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
33 #endif
34 
35 #ifndef __ITMSPAddress_FWD_DEFINED__
36 #define __ITMSPAddress_FWD_DEFINED__
37 typedef struct ITMSPAddress ITMSPAddress;
38 #endif
39 
40 #include "tapi3if.h"
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 #ifndef __MIDL_user_allocate_free_DEFINED__
47 #define __MIDL_user_allocate_free_DEFINED__
48   void *__RPC_API MIDL_user_allocate(size_t);
49   void __RPC_API MIDL_user_free(void *);
50 #endif
51 
52   typedef __LONG32 *MSP_HANDLE;
53 
54   typedef enum __MIDL___MIDL_itf_msp_0000_0001 {
55     ADDRESS_TERMINAL_AVAILABLE = 0,ADDRESS_TERMINAL_UNAVAILABLE
56   } MSP_ADDRESS_EVENT;
57 
58   typedef enum __MIDL___MIDL_itf_msp_0000_0002 {
59     CALL_NEW_STREAM = 0,CALL_STREAM_FAIL,CALL_TERMINAL_FAIL,
60     CALL_STREAM_NOT_USED,CALL_STREAM_ACTIVE,CALL_STREAM_INACTIVE
61   } MSP_CALL_EVENT;
62 
63   typedef enum __MIDL___MIDL_itf_msp_0000_0003 {
64     CALL_CAUSE_UNKNOWN = 0,CALL_CAUSE_BAD_DEVICE,CALL_CAUSE_CONNECT_FAIL,
65     CALL_CAUSE_LOCAL_REQUEST,CALL_CAUSE_REMOTE_REQUEST,
66     CALL_CAUSE_MEDIA_TIMEOUT,CALL_CAUSE_MEDIA_RECOVERED,
67     CALL_CAUSE_QUALITY_OF_SERVICE
68   } MSP_CALL_EVENT_CAUSE;
69 
70   typedef enum __MIDL___MIDL_itf_msp_0000_0004 {
71     ME_ADDRESS_EVENT = 0,ME_CALL_EVENT,ME_TSP_DATA,ME_PRIVATE_EVENT,
72     ME_ASR_TERMINAL_EVENT,ME_TTS_TERMINAL_EVENT,ME_FILE_TERMINAL_EVENT,
73     ME_TONE_TERMINAL_EVENT
74   } MSP_EVENT;
75 
76   typedef struct __MIDL___MIDL_itf_msp_0000_0005 {
77     DWORD dwSize;
78     MSP_EVENT Event;
79     MSP_HANDLE hCall;
80     __C89_NAMELESS union {
81       struct {
82 	MSP_ADDRESS_EVENT Type;
83 	ITTerminal *pTerminal;
84       } MSP_ADDRESS_EVENT_INFO;
85       struct {
86 	MSP_CALL_EVENT Type;
87 	MSP_CALL_EVENT_CAUSE Cause;
88 	ITStream *pStream;
89 	ITTerminal *pTerminal;
90 	HRESULT hrError;
91       } MSP_CALL_EVENT_INFO;
92       struct {
93 	DWORD dwBufferSize;
94 	BYTE pBuffer[1 ];
95       } MSP_TSP_DATA;
96       struct {
97 	IDispatch *pEvent;
98 	__LONG32 lEventCode;
99       } MSP_PRIVATE_EVENT_INFO;
100       struct {
101 	ITTerminal *pParentFileTerminal;
102 	ITFileTrack *pFileTrack;
103 	TERMINAL_MEDIA_STATE TerminalMediaState;
104 	FT_STATE_EVENT_CAUSE ftecEventCause;
105 	HRESULT hrErrorCode;
106       } MSP_FILE_TERMINAL_EVENT_INFO;
107       struct {
108 	ITTerminal *pASRTerminal;
109 	HRESULT hrErrorCode;
110       } MSP_ASR_TERMINAL_EVENT_INFO;
111       struct {
112 	ITTerminal *pTTSTerminal;
113 	HRESULT hrErrorCode;
114       } MSP_TTS_TERMINAL_EVENT_INFO;
115       struct {
116 	ITTerminal *pToneTerminal;
117 	HRESULT hrErrorCode;
118       } MSP_TONE_TERMINAL_EVENT_INFO;
119     };
120   } MSP_EVENT_INFO;
121 
122   extern RPC_IF_HANDLE __MIDL_itf_msp_0000_v0_0_c_ifspec;
123   extern RPC_IF_HANDLE __MIDL_itf_msp_0000_v0_0_s_ifspec;
124 
125 #ifndef __ITPluggableTerminalEventSink_INTERFACE_DEFINED__
126 #define __ITPluggableTerminalEventSink_INTERFACE_DEFINED__
127   EXTERN_C const IID IID_ITPluggableTerminalEventSink;
128 #if defined(__cplusplus) && !defined(CINTERFACE)
129   struct ITPluggableTerminalEventSink : public IUnknown {
130   public:
131     virtual HRESULT WINAPI FireEvent(const MSP_EVENT_INFO *pMspEventInfo) = 0;
132   };
133 #else
134   typedef struct ITPluggableTerminalEventSinkVtbl {
135     BEGIN_INTERFACE
136       HRESULT (WINAPI *QueryInterface)(ITPluggableTerminalEventSink *This,REFIID riid,void **ppvObject);
137       ULONG (WINAPI *AddRef)(ITPluggableTerminalEventSink *This);
138       ULONG (WINAPI *Release)(ITPluggableTerminalEventSink *This);
139       HRESULT (WINAPI *FireEvent)(ITPluggableTerminalEventSink *This,const MSP_EVENT_INFO *pMspEventInfo);
140     END_INTERFACE
141   } ITPluggableTerminalEventSinkVtbl;
142   struct ITPluggableTerminalEventSink {
143     CONST_VTBL struct ITPluggableTerminalEventSinkVtbl *lpVtbl;
144   };
145 #ifdef COBJMACROS
146 #define ITPluggableTerminalEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
147 #define ITPluggableTerminalEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
148 #define ITPluggableTerminalEventSink_Release(This) (This)->lpVtbl->Release(This)
149 #define ITPluggableTerminalEventSink_FireEvent(This,pMspEventInfo) (This)->lpVtbl->FireEvent(This,pMspEventInfo)
150 #endif
151 #endif
152   HRESULT WINAPI ITPluggableTerminalEventSink_FireEvent_Proxy(ITPluggableTerminalEventSink *This,const MSP_EVENT_INFO *pMspEventInfo);
153   void __RPC_STUB ITPluggableTerminalEventSink_FireEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
154 #endif
155 
156 #ifndef __ITPluggableTerminalEventSinkRegistration_INTERFACE_DEFINED__
157 #define __ITPluggableTerminalEventSinkRegistration_INTERFACE_DEFINED__
158   EXTERN_C const IID IID_ITPluggableTerminalEventSinkRegistration;
159 #if defined(__cplusplus) && !defined(CINTERFACE)
160   struct ITPluggableTerminalEventSinkRegistration : public IUnknown {
161   public:
162     virtual HRESULT WINAPI RegisterSink(ITPluggableTerminalEventSink *pEventSink) = 0;
163     virtual HRESULT WINAPI UnregisterSink(void) = 0;
164   };
165 #else
166   typedef struct ITPluggableTerminalEventSinkRegistrationVtbl {
167     BEGIN_INTERFACE
168       HRESULT (WINAPI *QueryInterface)(ITPluggableTerminalEventSinkRegistration *This,REFIID riid,void **ppvObject);
169       ULONG (WINAPI *AddRef)(ITPluggableTerminalEventSinkRegistration *This);
170       ULONG (WINAPI *Release)(ITPluggableTerminalEventSinkRegistration *This);
171       HRESULT (WINAPI *RegisterSink)(ITPluggableTerminalEventSinkRegistration *This,ITPluggableTerminalEventSink *pEventSink);
172       HRESULT (WINAPI *UnregisterSink)(ITPluggableTerminalEventSinkRegistration *This);
173     END_INTERFACE
174   } ITPluggableTerminalEventSinkRegistrationVtbl;
175   struct ITPluggableTerminalEventSinkRegistration {
176     CONST_VTBL struct ITPluggableTerminalEventSinkRegistrationVtbl *lpVtbl;
177   };
178 #ifdef COBJMACROS
179 #define ITPluggableTerminalEventSinkRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
180 #define ITPluggableTerminalEventSinkRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
181 #define ITPluggableTerminalEventSinkRegistration_Release(This) (This)->lpVtbl->Release(This)
182 #define ITPluggableTerminalEventSinkRegistration_RegisterSink(This,pEventSink) (This)->lpVtbl->RegisterSink(This,pEventSink)
183 #define ITPluggableTerminalEventSinkRegistration_UnregisterSink(This) (This)->lpVtbl->UnregisterSink(This)
184 #endif
185 #endif
186   HRESULT WINAPI ITPluggableTerminalEventSinkRegistration_RegisterSink_Proxy(ITPluggableTerminalEventSinkRegistration *This,ITPluggableTerminalEventSink *pEventSink);
187   void __RPC_STUB ITPluggableTerminalEventSinkRegistration_RegisterSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
188   HRESULT WINAPI ITPluggableTerminalEventSinkRegistration_UnregisterSink_Proxy(ITPluggableTerminalEventSinkRegistration *This);
189   void __RPC_STUB ITPluggableTerminalEventSinkRegistration_UnregisterSink_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
190 #endif
191 
192 #ifndef __ITMSPAddress_INTERFACE_DEFINED__
193 #define __ITMSPAddress_INTERFACE_DEFINED__
194   EXTERN_C const IID IID_ITMSPAddress;
195 #if defined(__cplusplus) && !defined(CINTERFACE)
196   struct ITMSPAddress : public IUnknown {
197   public:
198     virtual HRESULT WINAPI Initialize(MSP_HANDLE hEvent) = 0;
199     virtual HRESULT WINAPI Shutdown(void) = 0;
200     virtual HRESULT WINAPI CreateMSPCall(MSP_HANDLE hCall,DWORD dwReserved,DWORD dwMediaType,IUnknown *pOuterUnknown,IUnknown **ppStreamControl) = 0;
201     virtual HRESULT WINAPI ShutdownMSPCall(IUnknown *pStreamControl) = 0;
202     virtual HRESULT WINAPI ReceiveTSPData(IUnknown *pMSPCall,BYTE *pBuffer,DWORD dwSize) = 0;
203     virtual HRESULT WINAPI GetEvent(DWORD *pdwSize,byte *pEventBuffer) = 0;
204   };
205 #else
206   typedef struct ITMSPAddressVtbl {
207     BEGIN_INTERFACE
208       HRESULT (WINAPI *QueryInterface)(ITMSPAddress *This,REFIID riid,void **ppvObject);
209       ULONG (WINAPI *AddRef)(ITMSPAddress *This);
210       ULONG (WINAPI *Release)(ITMSPAddress *This);
211       HRESULT (WINAPI *Initialize)(ITMSPAddress *This,MSP_HANDLE hEvent);
212       HRESULT (WINAPI *Shutdown)(ITMSPAddress *This);
213       HRESULT (WINAPI *CreateMSPCall)(ITMSPAddress *This,MSP_HANDLE hCall,DWORD dwReserved,DWORD dwMediaType,IUnknown *pOuterUnknown,IUnknown **ppStreamControl);
214       HRESULT (WINAPI *ShutdownMSPCall)(ITMSPAddress *This,IUnknown *pStreamControl);
215       HRESULT (WINAPI *ReceiveTSPData)(ITMSPAddress *This,IUnknown *pMSPCall,BYTE *pBuffer,DWORD dwSize);
216       HRESULT (WINAPI *GetEvent)(ITMSPAddress *This,DWORD *pdwSize,byte *pEventBuffer);
217     END_INTERFACE
218   } ITMSPAddressVtbl;
219   struct ITMSPAddress {
220     CONST_VTBL struct ITMSPAddressVtbl *lpVtbl;
221   };
222 #ifdef COBJMACROS
223 #define ITMSPAddress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
224 #define ITMSPAddress_AddRef(This) (This)->lpVtbl->AddRef(This)
225 #define ITMSPAddress_Release(This) (This)->lpVtbl->Release(This)
226 #define ITMSPAddress_Initialize(This,hEvent) (This)->lpVtbl->Initialize(This,hEvent)
227 #define ITMSPAddress_Shutdown(This) (This)->lpVtbl->Shutdown(This)
228 #define ITMSPAddress_CreateMSPCall(This,hCall,dwReserved,dwMediaType,pOuterUnknown,ppStreamControl) (This)->lpVtbl->CreateMSPCall(This,hCall,dwReserved,dwMediaType,pOuterUnknown,ppStreamControl)
229 #define ITMSPAddress_ShutdownMSPCall(This,pStreamControl) (This)->lpVtbl->ShutdownMSPCall(This,pStreamControl)
230 #define ITMSPAddress_ReceiveTSPData(This,pMSPCall,pBuffer,dwSize) (This)->lpVtbl->ReceiveTSPData(This,pMSPCall,pBuffer,dwSize)
231 #define ITMSPAddress_GetEvent(This,pdwSize,pEventBuffer) (This)->lpVtbl->GetEvent(This,pdwSize,pEventBuffer)
232 #endif
233 #endif
234   HRESULT WINAPI ITMSPAddress_Initialize_Proxy(ITMSPAddress *This,MSP_HANDLE hEvent);
235   void __RPC_STUB ITMSPAddress_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
236   HRESULT WINAPI ITMSPAddress_Shutdown_Proxy(ITMSPAddress *This);
237   void __RPC_STUB ITMSPAddress_Shutdown_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
238   HRESULT WINAPI ITMSPAddress_CreateMSPCall_Proxy(ITMSPAddress *This,MSP_HANDLE hCall,DWORD dwReserved,DWORD dwMediaType,IUnknown *pOuterUnknown,IUnknown **ppStreamControl);
239   void __RPC_STUB ITMSPAddress_CreateMSPCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
240   HRESULT WINAPI ITMSPAddress_ShutdownMSPCall_Proxy(ITMSPAddress *This,IUnknown *pStreamControl);
241   void __RPC_STUB ITMSPAddress_ShutdownMSPCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
242   HRESULT WINAPI ITMSPAddress_ReceiveTSPData_Proxy(ITMSPAddress *This,IUnknown *pMSPCall,BYTE *pBuffer,DWORD dwSize);
243   void __RPC_STUB ITMSPAddress_ReceiveTSPData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
244   HRESULT WINAPI ITMSPAddress_GetEvent_Proxy(ITMSPAddress *This,DWORD *pdwSize,byte *pEventBuffer);
245   void __RPC_STUB ITMSPAddress_GetEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
246 #endif
247 
248 #ifdef __cplusplus
249 }
250 #endif
251 #endif
252