aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/sensevts.h
blob: fe0422443ea5ea654d9af2fa8ef30f4aba368ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error This stub requires an updated version of <rpcndr.h>
#endif

#ifndef __sensevts_h__
#define __sensevts_h__

#ifndef __ISensNetwork_FWD_DEFINED__
#define __ISensNetwork_FWD_DEFINED__
typedef struct ISensNetwork ISensNetwork;
#endif

#ifndef __ISensOnNow_FWD_DEFINED__
#define __ISensOnNow_FWD_DEFINED__
typedef struct ISensOnNow ISensOnNow;
#endif

#ifndef __ISensLogon_FWD_DEFINED__
#define __ISensLogon_FWD_DEFINED__
typedef struct ISensLogon ISensLogon;
#endif

#ifndef __ISensLogon2_FWD_DEFINED__
#define __ISensLogon2_FWD_DEFINED__
typedef struct ISensLogon2 ISensLogon2;
#endif

#ifndef __SENS_FWD_DEFINED__
#define __SENS_FWD_DEFINED__
#ifdef __cplusplus
typedef class SENS SENS;
#else
typedef struct SENS SENS;
#endif
#endif

#include "wtypes.h"

#ifdef __cplusplus
extern "C"{
#endif

#ifndef __MIDL_user_allocate_free_DEFINED__
#define __MIDL_user_allocate_free_DEFINED__
  void *__RPC_API MIDL_user_allocate(size_t);
  void __RPC_API MIDL_user_free(void *);
#endif

#ifndef __SensEvents_LIBRARY_DEFINED__
#define __SensEvents_LIBRARY_DEFINED__
  typedef struct SENS_QOCINFO {
    DWORD dwSize;
    DWORD dwFlags;
    DWORD dwOutSpeed;
    DWORD dwInSpeed;
  } SENS_QOCINFO;

  typedef SENS_QOCINFO *LPSENS_QOCINFO;

  EXTERN_C const IID LIBID_SensEvents;
#ifndef __ISensNetwork_INTERFACE_DEFINED__
#define __ISensNetwork_INTERFACE_DEFINED__
  EXTERN_C const IID IID_ISensNetwork;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct ISensNetwork : public IDispatch {
  public:
    virtual HRESULT WINAPI ConnectionMade(BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo) = 0;
    virtual HRESULT WINAPI ConnectionMadeNoQOCInfo(BSTR bstrConnection,ULONG ulType) = 0;
    virtual HRESULT WINAPI ConnectionLost(BSTR bstrConnection,ULONG ulType) = 0;
    virtual HRESULT WINAPI DestinationReachable(BSTR bstrDestination,BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo) = 0;
    virtual HRESULT WINAPI DestinationReachableNoQOCInfo(BSTR bstrDestination,BSTR bstrConnection,ULONG ulType) = 0;
  };
#else
  typedef struct ISensNetworkVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(ISensNetwork *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(ISensNetwork *This);
      ULONG (WINAPI *Release)(ISensNetwork *This);
      HRESULT (WINAPI *GetTypeInfoCount)(ISensNetwork *This,UINT *pctinfo);
      HRESULT (WINAPI *GetTypeInfo)(ISensNetwork *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
      HRESULT (WINAPI *GetIDsOfNames)(ISensNetwork *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
      HRESULT (WINAPI *Invoke)(ISensNetwork *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
      HRESULT (WINAPI *ConnectionMade)(ISensNetwork *This,BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo);
      HRESULT (WINAPI *ConnectionMadeNoQOCInfo)(ISensNetwork *This,BSTR bstrConnection,ULONG ulType);
      HRESULT (WINAPI *ConnectionLost)(ISensNetwork *This,BSTR bstrConnection,ULONG ulType);
      HRESULT (WINAPI *DestinationReachable)(ISensNetwork *This,BSTR bstrDestination,BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo);
      HRESULT (WINAPI *DestinationReachableNoQOCInfo)(ISensNetwork *This,BSTR bstrDestination,BSTR bstrConnection,ULONG ulType);
    END_INTERFACE
  } ISensNetworkVtbl;
  struct ISensNetwork {
    CONST_VTBL struct ISensNetworkVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define ISensNetwork_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISensNetwork_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISensNetwork_Release(This) (This)->lpVtbl->Release(This)
#define ISensNetwork_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISensNetwork_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISensNetwork_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISensNetwork_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ISensNetwork_ConnectionMade(This,bstrConnection,ulType,lpQOCInfo) (This)->lpVtbl->ConnectionMade(This,bstrConnection,ulType,lpQOCInfo)
#define ISensNetwork_ConnectionMadeNoQOCInfo(This,bstrConnection,ulType) (This)->lpVtbl->ConnectionMadeNoQOCInfo(This,bstrConnection,ulType)
#define ISensNetwork_ConnectionLost(This,bstrConnection,ulType) (This)->lpVtbl->ConnectionLost(This,bstrConnection,ulType)
#define ISensNetwork_DestinationReachable(This,bstrDestination,bstrConnection,ulType,lpQOCInfo) (This)->lpVtbl->DestinationReachable(This,bstrDestination,bstrConnection,ulType,lpQOCInfo)
#define ISensNetwork_DestinationReachableNoQOCInfo(This,bstrDestination,bstrConnection,ulType) (This)->lpVtbl->DestinationReachableNoQOCInfo(This,bstrDestination,bstrConnection,ulType)
#endif
#endif
  HRESULT WINAPI ISensNetwork_ConnectionMade_Proxy(ISensNetwork *This,BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo);
  void __RPC_STUB ISensNetwork_ConnectionMade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensNetwork_ConnectionMadeNoQOCInfo_Proxy(ISensNetwork *This,BSTR bstrConnection,ULONG ulType);
  void __RPC_STUB ISensNetwork_ConnectionMadeNoQOCInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensNetwork_ConnectionLost_Proxy(ISensNetwork *This,BSTR bstrConnection,ULONG ulType);
  void __RPC_STUB ISensNetwork_ConnectionLost_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensNetwork_DestinationReachable_Proxy(ISensNetwork *This,BSTR bstrDestination,BSTR bstrConnection,ULONG ulType,LPSENS_QOCINFO lpQOCInfo);
  void __RPC_STUB ISensNetwork_DestinationReachable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensNetwork_DestinationReachableNoQOCInfo_Proxy(ISensNetwork *This,BSTR bstrDestination,BSTR bstrConnection,ULONG ulType);
  void __RPC_STUB ISensNetwork_DestinationReachableNoQOCInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __ISensOnNow_INTERFACE_DEFINED__
#define __ISensOnNow_INTERFACE_DEFINED__
  EXTERN_C const IID IID_ISensOnNow;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct ISensOnNow : public IDispatch {
  public:
    virtual HRESULT WINAPI OnACPower(void) = 0;
    virtual HRESULT WINAPI OnBatteryPower(DWORD dwBatteryLifePercent) = 0;
    virtual HRESULT WINAPI BatteryLow(DWORD dwBatteryLifePercent) = 0;
  };
#else
  typedef struct ISensOnNowVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(ISensOnNow *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(ISensOnNow *This);
      ULONG (WINAPI *Release)(ISensOnNow *This);
      HRESULT (WINAPI *GetTypeInfoCount)(ISensOnNow *This,UINT *pctinfo);
      HRESULT (WINAPI *GetTypeInfo)(ISensOnNow *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
      HRESULT (WINAPI *GetIDsOfNames)(ISensOnNow *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
      HRESULT (WINAPI *Invoke)(ISensOnNow *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
      HRESULT (WINAPI *OnACPower)(ISensOnNow *This);
      HRESULT (WINAPI *OnBatteryPower)(ISensOnNow *This,DWORD dwBatteryLifePercent);
      HRESULT (WINAPI *BatteryLow)(ISensOnNow *This,DWORD dwBatteryLifePercent);
    END_INTERFACE
  } ISensOnNowVtbl;
  struct ISensOnNow {
    CONST_VTBL struct ISensOnNowVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define ISensOnNow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISensOnNow_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISensOnNow_Release(This) (This)->lpVtbl->Release(This)
#define ISensOnNow_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISensOnNow_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISensOnNow_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISensOnNow_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ISensOnNow_OnACPower(This) (This)->lpVtbl->OnACPower(This)
#define ISensOnNow_OnBatteryPower(This,dwBatteryLifePercent) (This)->lpVtbl->OnBatteryPower(This,dwBatteryLifePercent)
#define ISensOnNow_BatteryLow(This,dwBatteryLifePercent) (This)->lpVtbl->BatteryLow(This,dwBatteryLifePercent)
#endif
#endif
  HRESULT WINAPI ISensOnNow_OnACPower_Proxy(ISensOnNow *This);
  void __RPC_STUB ISensOnNow_OnACPower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensOnNow_OnBatteryPower_Proxy(ISensOnNow *This,DWORD dwBatteryLifePercent);
  void __RPC_STUB ISensOnNow_OnBatteryPower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensOnNow_BatteryLow_Proxy(ISensOnNow *This,DWORD dwBatteryLifePercent);
  void __RPC_STUB ISensOnNow_BatteryLow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __ISensLogon_INTERFACE_DEFINED__
#define __ISensLogon_INTERFACE_DEFINED__
  EXTERN_C const IID IID_ISensLogon;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct ISensLogon : public IDispatch {
  public:
    virtual HRESULT WINAPI Logon(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI Logoff(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI StartShell(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI DisplayLock(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI DisplayUnlock(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI StartScreenSaver(BSTR bstrUserName) = 0;
    virtual HRESULT WINAPI StopScreenSaver(BSTR bstrUserName) = 0;
  };
#else
  typedef struct ISensLogonVtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(ISensLogon *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(ISensLogon *This);
      ULONG (WINAPI *Release)(ISensLogon *This);
      HRESULT (WINAPI *GetTypeInfoCount)(ISensLogon *This,UINT *pctinfo);
      HRESULT (WINAPI *GetTypeInfo)(ISensLogon *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
      HRESULT (WINAPI *GetIDsOfNames)(ISensLogon *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
      HRESULT (WINAPI *Invoke)(ISensLogon *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
      HRESULT (WINAPI *Logon)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *Logoff)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *StartShell)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *DisplayLock)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *DisplayUnlock)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *StartScreenSaver)(ISensLogon *This,BSTR bstrUserName);
      HRESULT (WINAPI *StopScreenSaver)(ISensLogon *This,BSTR bstrUserName);
    END_INTERFACE
  } ISensLogonVtbl;
  struct ISensLogon {
    CONST_VTBL struct ISensLogonVtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define ISensLogon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISensLogon_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISensLogon_Release(This) (This)->lpVtbl->Release(This)
#define ISensLogon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISensLogon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISensLogon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISensLogon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ISensLogon_Logon(This,bstrUserName) (This)->lpVtbl->Logon(This,bstrUserName)
#define ISensLogon_Logoff(This,bstrUserName) (This)->lpVtbl->Logoff(This,bstrUserName)
#define ISensLogon_StartShell(This,bstrUserName) (This)->lpVtbl->StartShell(This,bstrUserName)
#define ISensLogon_DisplayLock(This,bstrUserName) (This)->lpVtbl->DisplayLock(This,bstrUserName)
#define ISensLogon_DisplayUnlock(This,bstrUserName) (This)->lpVtbl->DisplayUnlock(This,bstrUserName)
#define ISensLogon_StartScreenSaver(This,bstrUserName) (This)->lpVtbl->StartScreenSaver(This,bstrUserName)
#define ISensLogon_StopScreenSaver(This,bstrUserName) (This)->lpVtbl->StopScreenSaver(This,bstrUserName)
#endif
#endif
  HRESULT WINAPI ISensLogon_Logon_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_Logoff_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_Logoff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_StartShell_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_StartShell_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_DisplayLock_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_DisplayLock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_DisplayUnlock_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_DisplayUnlock_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_StartScreenSaver_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_StartScreenSaver_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon_StopScreenSaver_Proxy(ISensLogon *This,BSTR bstrUserName);
  void __RPC_STUB ISensLogon_StopScreenSaver_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

#ifndef __ISensLogon2_INTERFACE_DEFINED__
#define __ISensLogon2_INTERFACE_DEFINED__
  EXTERN_C const IID IID_ISensLogon2;
#if defined(__cplusplus) && !defined(CINTERFACE)
  struct ISensLogon2 : public IDispatch {
  public:
    virtual HRESULT WINAPI Logon(BSTR bstrUserName,DWORD dwSessionId) = 0;
    virtual HRESULT WINAPI Logoff(BSTR bstrUserName,DWORD dwSessionId) = 0;
    virtual HRESULT WINAPI SessionDisconnect(BSTR bstrUserName,DWORD dwSessionId) = 0;
    virtual HRESULT WINAPI SessionReconnect(BSTR bstrUserName,DWORD dwSessionId) = 0;
    virtual HRESULT WINAPI PostShell(BSTR bstrUserName,DWORD dwSessionId) = 0;
  };
#else
  typedef struct ISensLogon2Vtbl {
    BEGIN_INTERFACE
      HRESULT (WINAPI *QueryInterface)(ISensLogon2 *This,REFIID riid,void **ppvObject);
      ULONG (WINAPI *AddRef)(ISensLogon2 *This);
      ULONG (WINAPI *Release)(ISensLogon2 *This);
      HRESULT (WINAPI *GetTypeInfoCount)(ISensLogon2 *This,UINT *pctinfo);
      HRESULT (WINAPI *GetTypeInfo)(ISensLogon2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
      HRESULT (WINAPI *GetIDsOfNames)(ISensLogon2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
      HRESULT (WINAPI *Invoke)(ISensLogon2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
      HRESULT (WINAPI *Logon)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
      HRESULT (WINAPI *Logoff)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
      HRESULT (WINAPI *SessionDisconnect)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
      HRESULT (WINAPI *SessionReconnect)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
      HRESULT (WINAPI *PostShell)(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
    END_INTERFACE
  } ISensLogon2Vtbl;
  struct ISensLogon2 {
    CONST_VTBL struct ISensLogon2Vtbl *lpVtbl;
  };
#ifdef COBJMACROS
#define ISensLogon2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISensLogon2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISensLogon2_Release(This) (This)->lpVtbl->Release(This)
#define ISensLogon2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISensLogon2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISensLogon2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISensLogon2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ISensLogon2_Logon(This,bstrUserName,dwSessionId) (This)->lpVtbl->Logon(This,bstrUserName,dwSessionId)
#define ISensLogon2_Logoff(This,bstrUserName,dwSessionId) (This)->lpVtbl->Logoff(This,bstrUserName,dwSessionId)
#define ISensLogon2_SessionDisconnect(This,bstrUserName,dwSessionId) (This)->lpVtbl->SessionDisconnect(This,bstrUserName,dwSessionId)
#define ISensLogon2_SessionReconnect(This,bstrUserName,dwSessionId) (This)->lpVtbl->SessionReconnect(This,bstrUserName,dwSessionId)
#define ISensLogon2_PostShell(This,bstrUserName,dwSessionId) (This)->lpVtbl->PostShell(This,bstrUserName,dwSessionId)
#endif
#endif
  HRESULT WINAPI ISensLogon2_Logon_Proxy(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
  void __RPC_STUB ISensLogon2_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon2_Logoff_Proxy(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
  void __RPC_STUB ISensLogon2_Logoff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon2_SessionDisconnect_Proxy(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
  void __RPC_STUB ISensLogon2_SessionDisconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon2_SessionReconnect_Proxy(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
  void __RPC_STUB ISensLogon2_SessionReconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  HRESULT WINAPI ISensLogon2_PostShell_Proxy(ISensLogon2 *This,BSTR bstrUserName,DWORD dwSessionId);
  void __RPC_STUB ISensLogon2_PostShell_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif

  EXTERN_C const CLSID CLSID_SENS;
#ifdef __cplusplus
  class SENS;
#endif
#endif

#ifdef __cplusplus
}
#endif
#endif