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__
27typedef struct ITPluggableTerminalEventSink ITPluggableTerminalEventSink;
28#endif
29
30#ifndef __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
31#define __ITPluggableTerminalEventSinkRegistration_FWD_DEFINED__
32typedef struct ITPluggableTerminalEventSinkRegistration ITPluggableTerminalEventSinkRegistration;
33#endif
34
35#ifndef __ITMSPAddress_FWD_DEFINED__
36#define __ITMSPAddress_FWD_DEFINED__
37typedef struct ITMSPAddress ITMSPAddress;
38#endif
39
40#include "tapi3if.h"
41
42#ifdef __cplusplus
43extern "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