/*** Autogenerated by WIDL 0.9.40 from sensevts.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_SENSEVTS_H
#define __WIDL_SENSEVTS_H
#ifdef __cplusplus
extern "C" {
#endif
#include <oaidl.h>
typedef struct SENS_QOCINFO {
    DWORD dwSize;
    DWORD dwFlags;
    DWORD dwOutSpeed;
    DWORD dwInSpeed;
} SENS_QOCINFO;
typedef struct SENS_QOCINFO *LPSENS_QOCINFO;
#ifndef __ISensNetwork_FWD_DEFINED__
#define __ISensNetwork_FWD_DEFINED__
typedef interface ISensNetwork ISensNetwork;
#endif

/*****************************************************************************
 * ISensNetwork interface
 */
#ifndef __ISensNetwork_INTERFACE_DEFINED__
#define __ISensNetwork_INTERFACE_DEFINED__

#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISensNetwork : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE ConnectionMade(
        BSTR bstrConnection,
        ULONG ulType,
        LPSENS_QOCINFO lpQOCInfo) = 0;

    virtual HRESULT STDMETHODCALLTYPE ConnectionMadeNoQOCInfo(
        BSTR bstrConnection,
        ULONG ulType) = 0;

    virtual HRESULT STDMETHODCALLTYPE ConnectionLost(
        BSTR bstrConnection,
        ULONG ulType) = 0;

    virtual HRESULT STDMETHODCALLTYPE DestinationReachable(
        BSTR bstrDestination,
        BSTR bstrConnection,
        ULONG ulType,
        LPSENS_QOCINFO lpQOCInfo) = 0;

    virtual HRESULT STDMETHODCALLTYPE DestinationReachableNoQOCInfo(
        BSTR bstrDestination,
        BSTR bstrConnection,
        ULONG ulType) = 0;

};
#else
typedef struct ISensNetworkVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISensNetwork* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISensNetwork* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISensNetwork* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISensNetwork* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISensNetwork* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISensNetwork* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISensNetwork* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISensNetwork methods ***/
    HRESULT (STDMETHODCALLTYPE *ConnectionMade)(
        ISensNetwork* This,
        BSTR bstrConnection,
        ULONG ulType,
        LPSENS_QOCINFO lpQOCInfo);

    HRESULT (STDMETHODCALLTYPE *ConnectionMadeNoQOCInfo)(
        ISensNetwork* This,
        BSTR bstrConnection,
        ULONG ulType);

    HRESULT (STDMETHODCALLTYPE *ConnectionLost)(
        ISensNetwork* This,
        BSTR bstrConnection,
        ULONG ulType);

    HRESULT (STDMETHODCALLTYPE *DestinationReachable)(
        ISensNetwork* This,
        BSTR bstrDestination,
        BSTR bstrConnection,
        ULONG ulType,
        LPSENS_QOCINFO lpQOCInfo);

    HRESULT (STDMETHODCALLTYPE *DestinationReachableNoQOCInfo)(
        ISensNetwork* This,
        BSTR bstrDestination,
        BSTR bstrConnection,
        ULONG ulType);

    END_INTERFACE
} ISensNetworkVtbl;
interface ISensNetwork {
    CONST_VTBL ISensNetworkVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISensNetwork_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISensNetwork_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISensNetwork_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISensNetwork_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISensNetwork_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISensNetwork_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISensNetwork_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISensNetwork methods ***/
#define ISensNetwork_ConnectionMade(p,a,b,c) (p)->lpVtbl->ConnectionMade(p,a,b,c)
#define ISensNetwork_ConnectionMadeNoQOCInfo(p,a,b) (p)->lpVtbl->ConnectionMadeNoQOCInfo(p,a,b)
#define ISensNetwork_ConnectionLost(p,a,b) (p)->lpVtbl->ConnectionLost(p,a,b)
#define ISensNetwork_DestinationReachable(p,a,b,c,d) (p)->lpVtbl->DestinationReachable(p,a,b,c,d)
#define ISensNetwork_DestinationReachableNoQOCInfo(p,a,b,c) (p)->lpVtbl->DestinationReachableNoQOCInfo(p,a,b,c)
#endif

#endif

HRESULT CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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  /* __ISensNetwork_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * ISensOnNow interface
 */
#ifndef __ISensOnNow_INTERFACE_DEFINED__
#define __ISensOnNow_INTERFACE_DEFINED__

#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISensOnNow : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE OnAcPower(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE OnBatteryPower(
        DWORD dwBatteryLifePercent) = 0;

    virtual HRESULT STDMETHODCALLTYPE BatteryLow(
        DWORD dwBatteryLifePercent) = 0;

};
#else
typedef struct ISensOnNowVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISensOnNow* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISensOnNow* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISensOnNow* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISensOnNow* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISensOnNow* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISensOnNow* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISensOnNow* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISensOnNow methods ***/
    HRESULT (STDMETHODCALLTYPE *OnAcPower)(
        ISensOnNow* This);

    HRESULT (STDMETHODCALLTYPE *OnBatteryPower)(
        ISensOnNow* This,
        DWORD dwBatteryLifePercent);

    HRESULT (STDMETHODCALLTYPE *BatteryLow)(
        ISensOnNow* This,
        DWORD dwBatteryLifePercent);

    END_INTERFACE
} ISensOnNowVtbl;
interface ISensOnNow {
    CONST_VTBL ISensOnNowVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISensOnNow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISensOnNow_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISensOnNow_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISensOnNow_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISensOnNow_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISensOnNow_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISensOnNow_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISensOnNow methods ***/
#define ISensOnNow_OnAcPower(p) (p)->lpVtbl->OnAcPower(p)
#define ISensOnNow_OnBatteryPower(p,a) (p)->lpVtbl->OnBatteryPower(p,a)
#define ISensOnNow_BatteryLow(p,a) (p)->lpVtbl->BatteryLow(p,a)
#endif

#endif

HRESULT CALLBACK ISensOnNow_OnAcPower_Proxy(
    ISensOnNow* This);
void __RPC_STUB ISensOnNow_OnAcPower_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensOnNow_OnBatteryPower_Proxy(
    ISensOnNow* This,
    DWORD dwBatteryLifePercent);
void __RPC_STUB ISensOnNow_OnBatteryPower_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensOnNow_BatteryLow_Proxy(
    ISensOnNow* This,
    DWORD dwBatteryLifePercent);
void __RPC_STUB ISensOnNow_BatteryLow_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISensOnNow_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * ISensLogon interface
 */
#ifndef __ISensLogon_INTERFACE_DEFINED__
#define __ISensLogon_INTERFACE_DEFINED__

#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISensLogon : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE Logon(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE Logoff(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE StartShell(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE DisplayLock(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE DisplayUnlock(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE StartScreenSaver(
        BSTR bstrUserName) = 0;

    virtual HRESULT STDMETHODCALLTYPE StopScreenSaver(
        BSTR bstrUserName) = 0;

};
#else
typedef struct ISensLogonVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISensLogon* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISensLogon* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISensLogon* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISensLogon* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISensLogon* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISensLogon* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISensLogon* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISensLogon methods ***/
    HRESULT (STDMETHODCALLTYPE *Logon)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *Logoff)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *StartShell)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *DisplayLock)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *DisplayUnlock)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *StartScreenSaver)(
        ISensLogon* This,
        BSTR bstrUserName);

    HRESULT (STDMETHODCALLTYPE *StopScreenSaver)(
        ISensLogon* This,
        BSTR bstrUserName);

    END_INTERFACE
} ISensLogonVtbl;
interface ISensLogon {
    CONST_VTBL ISensLogonVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISensLogon_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISensLogon_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISensLogon_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISensLogon_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISensLogon_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISensLogon_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISensLogon_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISensLogon methods ***/
#define ISensLogon_Logon(p,a) (p)->lpVtbl->Logon(p,a)
#define ISensLogon_Logoff(p,a) (p)->lpVtbl->Logoff(p,a)
#define ISensLogon_StartShell(p,a) (p)->lpVtbl->StartShell(p,a)
#define ISensLogon_DisplayLock(p,a) (p)->lpVtbl->DisplayLock(p,a)
#define ISensLogon_DisplayUnlock(p,a) (p)->lpVtbl->DisplayUnlock(p,a)
#define ISensLogon_StartScreenSaver(p,a) (p)->lpVtbl->StartScreenSaver(p,a)
#define ISensLogon_StopScreenSaver(p,a) (p)->lpVtbl->StopScreenSaver(p,a)
#endif

#endif

HRESULT CALLBACK ISensLogon_Logon_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_Logon_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_Logoff_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_Logoff_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_StartShell_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_StartShell_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_DisplayLock_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_DisplayLock_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_DisplayUnlock_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_DisplayUnlock_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_StartScreenSaver_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_StartScreenSaver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK ISensLogon_StopScreenSaver_Proxy(
    ISensLogon* This,
    BSTR bstrUserName);
void __RPC_STUB ISensLogon_StopScreenSaver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISensLogon_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * ISensLogon2 interface
 */
#ifndef __ISensLogon2_INTERFACE_DEFINED__
#define __ISensLogon2_INTERFACE_DEFINED__

#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISensLogon2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE Logon(
        BSTR bstrUserName,
        DWORD dwSessionId) = 0;

    virtual HRESULT STDMETHODCALLTYPE Logoff(
        BSTR bstrUserName,
        DWORD dwSessionId) = 0;

    virtual HRESULT STDMETHODCALLTYPE SessionDisconnect(
        BSTR bstrUserName,
        DWORD dwSessionId) = 0;

    virtual HRESULT STDMETHODCALLTYPE SessionReconnect(
        BSTR bstrUserName,
        DWORD dwSessionId) = 0;

    virtual HRESULT STDMETHODCALLTYPE PostShell(
        BSTR bstrUserName,
        DWORD dwSessionId) = 0;

};
#else
typedef struct ISensLogon2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISensLogon2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISensLogon2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISensLogon2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISensLogon2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISensLogon2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISensLogon2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISensLogon2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISensLogon2 methods ***/
    HRESULT (STDMETHODCALLTYPE *Logon)(
        ISensLogon2* This,
        BSTR bstrUserName,
        DWORD dwSessionId);

    HRESULT (STDMETHODCALLTYPE *Logoff)(
        ISensLogon2* This,
        BSTR bstrUserName,
        DWORD dwSessionId);

    HRESULT (STDMETHODCALLTYPE *SessionDisconnect)(
        ISensLogon2* This,
        BSTR bstrUserName,
        DWORD dwSessionId);

    HRESULT (STDMETHODCALLTYPE *SessionReconnect)(
        ISensLogon2* This,
        BSTR bstrUserName,
        DWORD dwSessionId);

    HRESULT (STDMETHODCALLTYPE *PostShell)(
        ISensLogon2* This,
        BSTR bstrUserName,
        DWORD dwSessionId);

    END_INTERFACE
} ISensLogon2Vtbl;
interface ISensLogon2 {
    CONST_VTBL ISensLogon2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISensLogon2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define ISensLogon2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define ISensLogon2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define ISensLogon2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define ISensLogon2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define ISensLogon2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define ISensLogon2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** ISensLogon2 methods ***/
#define ISensLogon2_Logon(p,a,b) (p)->lpVtbl->Logon(p,a,b)
#define ISensLogon2_Logoff(p,a,b) (p)->lpVtbl->Logoff(p,a,b)
#define ISensLogon2_SessionDisconnect(p,a,b) (p)->lpVtbl->SessionDisconnect(p,a,b)
#define ISensLogon2_SessionReconnect(p,a,b) (p)->lpVtbl->SessionReconnect(p,a,b)
#define ISensLogon2_PostShell(p,a,b) (p)->lpVtbl->PostShell(p,a,b)
#endif

#endif

HRESULT CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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  /* __ISensLogon2_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_SENSEVTS_H */
