Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / modules / rosapps / applications / net / tsclient / porting-tools / rdesktop-core-tester / mstsclib_h.h
diff --git a/modules/rosapps/applications/net/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h b/modules/rosapps/applications/net/tsclient/porting-tools/rdesktop-core-tester/mstsclib_h.h
new file mode 100644 (file)
index 0000000..2685131
--- /dev/null
@@ -0,0 +1,8946 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0493 */
+/* at Sun Aug 13 16:46:06 2006
+ */
+/* Compiler settings for .\mstsclib.idl:
+    Oicf, W1, Zp8, env=Win32 (32b run)
+    protocol : dce , ms_ext, c_ext, robust
+    error checks: allocation ref bounds_check enum stub_data
+    VC __declspec() decoration level:
+         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+         DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING(  )
+
+#pragma warning( disable: 4049 )  /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#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 // __RPCNDR_H_VERSION__
+
+
+#ifndef __mstsclib_h_h__
+#define __mstsclib_h_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IMsTscAxEvents_FWD_DEFINED__
+#define __IMsTscAxEvents_FWD_DEFINED__
+typedef interface IMsTscAxEvents IMsTscAxEvents;
+#endif         /* __IMsTscAxEvents_FWD_DEFINED__ */
+
+
+#ifndef __IMsTscAx_FWD_DEFINED__
+#define __IMsTscAx_FWD_DEFINED__
+typedef interface IMsTscAx IMsTscAx;
+#endif         /* __IMsTscAx_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClient_FWD_DEFINED__
+#define __IMsRdpClient_FWD_DEFINED__
+typedef interface IMsRdpClient IMsRdpClient;
+#endif         /* __IMsRdpClient_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClient2_FWD_DEFINED__
+#define __IMsRdpClient2_FWD_DEFINED__
+typedef interface IMsRdpClient2 IMsRdpClient2;
+#endif         /* __IMsRdpClient2_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClient3_FWD_DEFINED__
+#define __IMsRdpClient3_FWD_DEFINED__
+typedef interface IMsRdpClient3 IMsRdpClient3;
+#endif         /* __IMsRdpClient3_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClient4_FWD_DEFINED__
+#define __IMsRdpClient4_FWD_DEFINED__
+typedef interface IMsRdpClient4 IMsRdpClient4;
+#endif         /* __IMsRdpClient4_FWD_DEFINED__ */
+
+
+#ifndef __IMsTscNonScriptable_FWD_DEFINED__
+#define __IMsTscNonScriptable_FWD_DEFINED__
+typedef interface IMsTscNonScriptable IMsTscNonScriptable;
+#endif         /* __IMsTscNonScriptable_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientNonScriptable_FWD_DEFINED__
+#define __IMsRdpClientNonScriptable_FWD_DEFINED__
+typedef interface IMsRdpClientNonScriptable IMsRdpClientNonScriptable;
+#endif         /* __IMsRdpClientNonScriptable_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientNonScriptable2_FWD_DEFINED__
+#define __IMsRdpClientNonScriptable2_FWD_DEFINED__
+typedef interface IMsRdpClientNonScriptable2 IMsRdpClientNonScriptable2;
+#endif         /* __IMsRdpClientNonScriptable2_FWD_DEFINED__ */
+
+
+#ifndef __IMsTscAdvancedSettings_FWD_DEFINED__
+#define __IMsTscAdvancedSettings_FWD_DEFINED__
+typedef interface IMsTscAdvancedSettings IMsTscAdvancedSettings;
+#endif         /* __IMsTscAdvancedSettings_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings_FWD_DEFINED__
+#define __IMsRdpClientAdvancedSettings_FWD_DEFINED__
+typedef interface IMsRdpClientAdvancedSettings IMsRdpClientAdvancedSettings;
+#endif         /* __IMsRdpClientAdvancedSettings_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings2_FWD_DEFINED__
+#define __IMsRdpClientAdvancedSettings2_FWD_DEFINED__
+typedef interface IMsRdpClientAdvancedSettings2 IMsRdpClientAdvancedSettings2;
+#endif         /* __IMsRdpClientAdvancedSettings2_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings3_FWD_DEFINED__
+#define __IMsRdpClientAdvancedSettings3_FWD_DEFINED__
+typedef interface IMsRdpClientAdvancedSettings3 IMsRdpClientAdvancedSettings3;
+#endif         /* __IMsRdpClientAdvancedSettings3_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings4_FWD_DEFINED__
+#define __IMsRdpClientAdvancedSettings4_FWD_DEFINED__
+typedef interface IMsRdpClientAdvancedSettings4 IMsRdpClientAdvancedSettings4;
+#endif         /* __IMsRdpClientAdvancedSettings4_FWD_DEFINED__ */
+
+
+#ifndef __IMsTscSecuredSettings_FWD_DEFINED__
+#define __IMsTscSecuredSettings_FWD_DEFINED__
+typedef interface IMsTscSecuredSettings IMsTscSecuredSettings;
+#endif         /* __IMsTscSecuredSettings_FWD_DEFINED__ */
+
+
+#ifndef __IMsRdpClientSecuredSettings_FWD_DEFINED__
+#define __IMsRdpClientSecuredSettings_FWD_DEFINED__
+typedef interface IMsRdpClientSecuredSettings IMsRdpClientSecuredSettings;
+#endif         /* __IMsRdpClientSecuredSettings_FWD_DEFINED__ */
+
+
+#ifndef __IMsTscDebug_FWD_DEFINED__
+#define __IMsTscDebug_FWD_DEFINED__
+typedef interface IMsTscDebug IMsTscDebug;
+#endif         /* __IMsTscDebug_FWD_DEFINED__ */
+
+
+#ifndef __MsTscAx_FWD_DEFINED__
+#define __MsTscAx_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class MsTscAx MsTscAx;
+#else
+typedef struct MsTscAx MsTscAx;
+#endif /* __cplusplus */
+
+#endif         /* __MsTscAx_FWD_DEFINED__ */
+
+
+#ifndef __MsRdpClient_FWD_DEFINED__
+#define __MsRdpClient_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class MsRdpClient MsRdpClient;
+#else
+typedef struct MsRdpClient MsRdpClient;
+#endif /* __cplusplus */
+
+#endif         /* __MsRdpClient_FWD_DEFINED__ */
+
+
+#ifndef __MsRdpClient2_FWD_DEFINED__
+#define __MsRdpClient2_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class MsRdpClient2 MsRdpClient2;
+#else
+typedef struct MsRdpClient2 MsRdpClient2;
+#endif /* __cplusplus */
+
+#endif         /* __MsRdpClient2_FWD_DEFINED__ */
+
+
+#ifndef __MsRdpClient3_FWD_DEFINED__
+#define __MsRdpClient3_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class MsRdpClient3 MsRdpClient3;
+#else
+typedef struct MsRdpClient3 MsRdpClient3;
+#endif /* __cplusplus */
+
+#endif         /* __MsRdpClient3_FWD_DEFINED__ */
+
+
+#ifndef __MsRdpClient4_FWD_DEFINED__
+#define __MsRdpClient4_FWD_DEFINED__
+
+#ifdef __cplusplus
+typedef class MsRdpClient4 MsRdpClient4;
+#else
+typedef struct MsRdpClient4 MsRdpClient4;
+#endif /* __cplusplus */
+
+#endif         /* __MsRdpClient4_FWD_DEFINED__ */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+
+#ifndef __MSTSCLib_LIBRARY_DEFINED__
+#define __MSTSCLib_LIBRARY_DEFINED__
+
+/* library MSTSCLib */
+/* [version][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef /* [public][public][public] */
+enum __MIDL___MIDL_itf_mstsax_0275_0001
+    {  autoReconnectContinueAutomatic  = 0,
+       autoReconnectContinueStop       = 1,
+       autoReconnectContinueManual     = 2
+    }  AutoReconnectContinueState;
+
+typedef /* [public][public][public] */
+enum __MIDL_IMsRdpClient_0001
+    {  exDiscReasonNoInfo      = 0,
+       exDiscReasonAPIInitiatedDisconnect      = 1,
+       exDiscReasonAPIInitiatedLogoff  = 2,
+       exDiscReasonServerIdleTimeout   = 3,
+       exDiscReasonServerLogonTimeout  = 4,
+       exDiscReasonReplacedByOtherConnection   = 5,
+       exDiscReasonOutOfMemory = 6,
+       exDiscReasonServerDeniedConnection      = 7,
+       exDiscReasonServerDeniedConnectionFips  = 8,
+       exDiscReasonLicenseInternal     = 256,
+       exDiscReasonLicenseNoLicenseServer      = 257,
+       exDiscReasonLicenseNoLicense    = 258,
+       exDiscReasonLicenseErrClientMsg = 259,
+       exDiscReasonLicenseHwidDoesntMatchLicense       = 260,
+       exDiscReasonLicenseErrClientLicense     = 261,
+       exDiscReasonLicenseCantFinishProtocol   = 262,
+       exDiscReasonLicenseClientEndedProtocol  = 263,
+       exDiscReasonLicenseErrClientEncryption  = 264,
+       exDiscReasonLicenseCantUpgradeLicense   = 265,
+       exDiscReasonLicenseNoRemoteConnections  = 266,
+       exDiscReasonProtocolRangeStart  = 4096,
+       exDiscReasonProtocolRangeEnd    = 32767
+    }  ExtendedDisconnectReasonCode;
+
+typedef /* [public][public][public] */
+enum __MIDL_IMsRdpClient_0002
+    {  controlCloseCanProceed  = 0,
+       controlCloseWaitForEvents       = 1
+    }  ControlCloseStatus;
+
+typedef /* [custom][public] */ unsigned __int3264 UINT_PTR;
+
+typedef /* [custom][public] */ __int3264 LONG_PTR;
+
+
+EXTERN_C const IID LIBID_MSTSCLib;
+
+#ifndef __IMsTscAxEvents_DISPINTERFACE_DEFINED__
+#define __IMsTscAxEvents_DISPINTERFACE_DEFINED__
+
+/* dispinterface IMsTscAxEvents */
+/* [uuid] */
+
+
+EXTERN_C const IID DIID_IMsTscAxEvents;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6")
+    IMsTscAxEvents : public IDispatch
+    {
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscAxEventsVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscAxEvents * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscAxEvents * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscAxEvents * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsTscAxEvents * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsTscAxEvents * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsTscAxEvents * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsTscAxEvents * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        END_INTERFACE
+    } IMsTscAxEventsVtbl;
+
+    interface IMsTscAxEvents
+    {
+        CONST_VTBL struct IMsTscAxEventsVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscAxEvents_QueryInterface(This,riid,ppvObject)     \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscAxEvents_AddRef(This)    \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscAxEvents_Release(This)   \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscAxEvents_GetTypeInfoCount(This,pctinfo)  \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsTscAxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)   \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsTscAxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsTscAxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)   \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+#endif         /* __IMsTscAxEvents_DISPINTERFACE_DEFINED__ */
+
+
+#ifndef __IMsTscAx_INTERFACE_DEFINED__
+#define __IMsTscAx_INTERFACE_DEFINED__
+
+/* interface IMsTscAx */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsTscAx;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("8C11EFAE-92C3-11D1-BC1E-00C04FA31489")
+    IMsTscAx : public IDispatch
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Server(
+            /* [in] */ BSTR pServer) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Server(
+            /* [retval][out] */ BSTR *pServer) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Domain(
+            /* [in] */ BSTR pDomain) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Domain(
+            /* [retval][out] */ BSTR *pDomain) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_UserName(
+            /* [in] */ BSTR pUserName) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_UserName(
+            /* [retval][out] */ BSTR *pUserName) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisconnectedText(
+            /* [in] */ BSTR pDisconnectedText) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisconnectedText(
+            /* [retval][out] */ BSTR *pDisconnectedText) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectingText(
+            /* [in] */ BSTR pConnectingText) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectingText(
+            /* [retval][out] */ BSTR *pConnectingText) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Connected(
+            /* [retval][out] */ short *pIsConnected) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopWidth(
+            /* [in] */ long pVal) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopWidth(
+            /* [retval][out] */ long *pVal) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DesktopHeight(
+            /* [in] */ long pVal) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DesktopHeight(
+            /* [retval][out] */ long *pVal) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartConnected(
+            /* [in] */ long pfStartConnected) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartConnected(
+            /* [retval][out] */ long *pfStartConnected) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollBarVisible(
+            /* [retval][out] */ long *pfHScrollVisible) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollBarVisible(
+            /* [retval][out] */ long *pfVScrollVisible) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreenTitle(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CipherStrength(
+            /* [retval][out] */ long *pCipherStrength) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Version(
+            /* [retval][out] */ BSTR *pVersion) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettingsEnabled(
+            /* [retval][out] */ long *pSecuredSettingsEnabled) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings(
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings(
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings) = 0;
+
+        virtual /* [hidden][propget][id] */ HRESULT STDMETHODCALLTYPE get_Debugger(
+            /* [retval][out] */ IMsTscDebug **ppDebugger) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Connect( void) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Disconnect( void) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateVirtualChannels(
+            /* [in] */ BSTR newVal) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SendOnVirtualChannel(
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscAxVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscAx * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscAx * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscAx * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsTscAx * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsTscAx * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsTscAx * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsTscAx * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
+            IMsTscAx * This,
+            /* [in] */ BSTR pServer);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pServer);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )(
+            IMsTscAx * This,
+            /* [in] */ BSTR pDomain);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pDomain);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )(
+            IMsTscAx * This,
+            /* [in] */ BSTR pUserName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pUserName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )(
+            IMsTscAx * This,
+            /* [in] */ BSTR pDisconnectedText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pDisconnectedText);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )(
+            IMsTscAx * This,
+            /* [in] */ BSTR pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
+            IMsTscAx * This,
+            /* [retval][out] */ short *pIsConnected);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )(
+            IMsTscAx * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )(
+            IMsTscAx * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )(
+            IMsTscAx * This,
+            /* [in] */ long pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pfHScrollVisible);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pfVScrollVisible);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )(
+            IMsTscAx * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pCipherStrength);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
+            IMsTscAx * This,
+            /* [retval][out] */ BSTR *pVersion);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )(
+            IMsTscAx * This,
+            /* [retval][out] */ long *pSecuredSettingsEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )(
+            IMsTscAx * This,
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )(
+            IMsTscAx * This,
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings);
+
+        /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )(
+            IMsTscAx * This,
+            /* [retval][out] */ IMsTscDebug **ppDebugger);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+            IMsTscAx * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+            IMsTscAx * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )(
+            IMsTscAx * This,
+            /* [in] */ BSTR newVal);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )(
+            IMsTscAx * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData);
+
+        END_INTERFACE
+    } IMsTscAxVtbl;
+
+    interface IMsTscAx
+    {
+        CONST_VTBL struct IMsTscAxVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscAx_QueryInterface(This,riid,ppvObject)   \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscAx_AddRef(This)  \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscAx_Release(This) \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscAx_GetTypeInfoCount(This,pctinfo)        \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsTscAx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsTscAx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)       \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsTscAx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsTscAx_put_Server(This,pServer)      \
+    ( (This)->lpVtbl -> put_Server(This,pServer) )
+
+#define IMsTscAx_get_Server(This,pServer)      \
+    ( (This)->lpVtbl -> get_Server(This,pServer) )
+
+#define IMsTscAx_put_Domain(This,pDomain)      \
+    ( (This)->lpVtbl -> put_Domain(This,pDomain) )
+
+#define IMsTscAx_get_Domain(This,pDomain)      \
+    ( (This)->lpVtbl -> get_Domain(This,pDomain) )
+
+#define IMsTscAx_put_UserName(This,pUserName)  \
+    ( (This)->lpVtbl -> put_UserName(This,pUserName) )
+
+#define IMsTscAx_get_UserName(This,pUserName)  \
+    ( (This)->lpVtbl -> get_UserName(This,pUserName) )
+
+#define IMsTscAx_put_DisconnectedText(This,pDisconnectedText)  \
+    ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsTscAx_get_DisconnectedText(This,pDisconnectedText)  \
+    ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsTscAx_put_ConnectingText(This,pConnectingText)      \
+    ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) )
+
+#define IMsTscAx_get_ConnectingText(This,pConnectingText)      \
+    ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) )
+
+#define IMsTscAx_get_Connected(This,pIsConnected)      \
+    ( (This)->lpVtbl -> get_Connected(This,pIsConnected) )
+
+#define IMsTscAx_put_DesktopWidth(This,pVal)   \
+    ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) )
+
+#define IMsTscAx_get_DesktopWidth(This,pVal)   \
+    ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) )
+
+#define IMsTscAx_put_DesktopHeight(This,pVal)  \
+    ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) )
+
+#define IMsTscAx_get_DesktopHeight(This,pVal)  \
+    ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) )
+
+#define IMsTscAx_put_StartConnected(This,pfStartConnected)     \
+    ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) )
+
+#define IMsTscAx_get_StartConnected(This,pfStartConnected)     \
+    ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) )
+
+#define IMsTscAx_get_HorizontalScrollBarVisible(This,pfHScrollVisible) \
+    ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) )
+
+#define IMsTscAx_get_VerticalScrollBarVisible(This,pfVScrollVisible)   \
+    ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) )
+
+#define IMsTscAx_put_FullScreenTitle(This,rhs) \
+    ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) )
+
+#define IMsTscAx_get_CipherStrength(This,pCipherStrength)      \
+    ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) )
+
+#define IMsTscAx_get_Version(This,pVersion)    \
+    ( (This)->lpVtbl -> get_Version(This,pVersion) )
+
+#define IMsTscAx_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled)      \
+    ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) )
+
+#define IMsTscAx_get_SecuredSettings(This,ppSecuredSettings)   \
+    ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) )
+
+#define IMsTscAx_get_AdvancedSettings(This,ppAdvSettings)      \
+    ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) )
+
+#define IMsTscAx_get_Debugger(This,ppDebugger) \
+    ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) )
+
+#define IMsTscAx_Connect(This) \
+    ( (This)->lpVtbl -> Connect(This) )
+
+#define IMsTscAx_Disconnect(This)      \
+    ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IMsTscAx_CreateVirtualChannels(This,newVal)    \
+    ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) )
+
+#define IMsTscAx_SendOnVirtualChannel(This,chanName,ChanData)  \
+    ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsTscAx_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClient_INTERFACE_DEFINED__
+#define __IMsRdpClient_INTERFACE_DEFINED__
+
+/* interface IMsRdpClient */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClient;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("92B4A539-7115-4B7C-A5A9-E5D9EFC2780A")
+    IMsRdpClient : public IMsTscAx
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ColorDepth(
+            /* [in] */ long pcolorDepth) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ColorDepth(
+            /* [retval][out] */ long *pcolorDepth) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings2(
+            /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SecuredSettings2(
+            /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ExtendedDisconnectReason(
+            /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen(
+            /* [in] */ VARIANT_BOOL pfFullScreen) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen(
+            /* [retval][out] */ VARIANT_BOOL *pfFullScreen) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetVirtualChannelOptions(
+            /* [in] */ BSTR chanName,
+            /* [in] */ long chanOptions) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetVirtualChannelOptions(
+            /* [in] */ BSTR chanName,
+            /* [retval][out] */ long *pChanOptions) = 0;
+
+        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RequestClose(
+            /* [retval][out] */ ControlCloseStatus *pCloseStatus) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClient * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClient * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClient * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClient * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClient * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClient * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClient * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR pServer);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pServer);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR pDomain);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pDomain);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR pUserName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pUserName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR pDisconnectedText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pDisconnectedText);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
+            IMsRdpClient * This,
+            /* [retval][out] */ short *pIsConnected);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )(
+            IMsRdpClient * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )(
+            IMsRdpClient * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )(
+            IMsRdpClient * This,
+            /* [in] */ long pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pfHScrollVisible);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pfVScrollVisible);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pCipherStrength);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
+            IMsRdpClient * This,
+            /* [retval][out] */ BSTR *pVersion);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pSecuredSettingsEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )(
+            IMsRdpClient * This,
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )(
+            IMsRdpClient * This,
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings);
+
+        /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )(
+            IMsRdpClient * This,
+            /* [retval][out] */ IMsTscDebug **ppDebugger);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+            IMsRdpClient * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+            IMsRdpClient * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR newVal);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )(
+            IMsRdpClient * This,
+            /* [in] */ long pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )(
+            IMsRdpClient * This,
+            /* [retval][out] */ long *pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )(
+            IMsRdpClient * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )(
+            IMsRdpClient * This,
+            /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )(
+            IMsRdpClient * This,
+            /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsRdpClient * This,
+            /* [in] */ VARIANT_BOOL pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsRdpClient * This,
+            /* [retval][out] */ VARIANT_BOOL *pfFullScreen);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ long chanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )(
+            IMsRdpClient * This,
+            /* [in] */ BSTR chanName,
+            /* [retval][out] */ long *pChanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )(
+            IMsRdpClient * This,
+            /* [retval][out] */ ControlCloseStatus *pCloseStatus);
+
+        END_INTERFACE
+    } IMsRdpClientVtbl;
+
+    interface IMsRdpClient
+    {
+        CONST_VTBL struct IMsRdpClientVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClient_QueryInterface(This,riid,ppvObject)       \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClient_AddRef(This)      \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClient_Release(This)     \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClient_GetTypeInfoCount(This,pctinfo)    \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClient_GetTypeInfo(This,iTInfo,lcid,ppTInfo)     \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClient_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClient_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)     \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClient_put_Server(This,pServer)  \
+    ( (This)->lpVtbl -> put_Server(This,pServer) )
+
+#define IMsRdpClient_get_Server(This,pServer)  \
+    ( (This)->lpVtbl -> get_Server(This,pServer) )
+
+#define IMsRdpClient_put_Domain(This,pDomain)  \
+    ( (This)->lpVtbl -> put_Domain(This,pDomain) )
+
+#define IMsRdpClient_get_Domain(This,pDomain)  \
+    ( (This)->lpVtbl -> get_Domain(This,pDomain) )
+
+#define IMsRdpClient_put_UserName(This,pUserName)      \
+    ( (This)->lpVtbl -> put_UserName(This,pUserName) )
+
+#define IMsRdpClient_get_UserName(This,pUserName)      \
+    ( (This)->lpVtbl -> get_UserName(This,pUserName) )
+
+#define IMsRdpClient_put_DisconnectedText(This,pDisconnectedText)      \
+    ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient_get_DisconnectedText(This,pDisconnectedText)      \
+    ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient_put_ConnectingText(This,pConnectingText)  \
+    ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient_get_ConnectingText(This,pConnectingText)  \
+    ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient_get_Connected(This,pIsConnected)  \
+    ( (This)->lpVtbl -> get_Connected(This,pIsConnected) )
+
+#define IMsRdpClient_put_DesktopWidth(This,pVal)       \
+    ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient_get_DesktopWidth(This,pVal)       \
+    ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient_put_DesktopHeight(This,pVal)      \
+    ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient_get_DesktopHeight(This,pVal)      \
+    ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient_put_StartConnected(This,pfStartConnected) \
+    ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient_get_StartConnected(This,pfStartConnected) \
+    ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient_get_HorizontalScrollBarVisible(This,pfHScrollVisible)     \
+    ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) )
+
+#define IMsRdpClient_get_VerticalScrollBarVisible(This,pfVScrollVisible)       \
+    ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) )
+
+#define IMsRdpClient_put_FullScreenTitle(This,rhs)     \
+    ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) )
+
+#define IMsRdpClient_get_CipherStrength(This,pCipherStrength)  \
+    ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) )
+
+#define IMsRdpClient_get_Version(This,pVersion)        \
+    ( (This)->lpVtbl -> get_Version(This,pVersion) )
+
+#define IMsRdpClient_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled)  \
+    ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) )
+
+#define IMsRdpClient_get_SecuredSettings(This,ppSecuredSettings)       \
+    ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) )
+
+#define IMsRdpClient_get_AdvancedSettings(This,ppAdvSettings)  \
+    ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) )
+
+#define IMsRdpClient_get_Debugger(This,ppDebugger)     \
+    ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) )
+
+#define IMsRdpClient_Connect(This)     \
+    ( (This)->lpVtbl -> Connect(This) )
+
+#define IMsRdpClient_Disconnect(This)  \
+    ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IMsRdpClient_CreateVirtualChannels(This,newVal)        \
+    ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) )
+
+#define IMsRdpClient_SendOnVirtualChannel(This,chanName,ChanData)      \
+    ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) )
+
+
+#define IMsRdpClient_put_ColorDepth(This,pcolorDepth)  \
+    ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient_get_ColorDepth(This,pcolorDepth)  \
+    ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient_get_AdvancedSettings2(This,ppAdvSettings) \
+    ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) )
+
+#define IMsRdpClient_get_SecuredSettings2(This,ppSecuredSettings)      \
+    ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) )
+
+#define IMsRdpClient_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason)      \
+    ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) )
+
+#define IMsRdpClient_put_FullScreen(This,pfFullScreen) \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient_get_FullScreen(This,pfFullScreen) \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient_SetVirtualChannelOptions(This,chanName,chanOptions)       \
+    ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) )
+
+#define IMsRdpClient_GetVirtualChannelOptions(This,chanName,pChanOptions)      \
+    ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) )
+
+#define IMsRdpClient_RequestClose(This,pCloseStatus)   \
+    ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClient_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClient2_INTERFACE_DEFINED__
+#define __IMsRdpClient2_INTERFACE_DEFINED__
+
+/* interface IMsRdpClient2 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClient2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F")
+    IMsRdpClient2 : public IMsRdpClient
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings3(
+            /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectedStatusText(
+            /* [in] */ BSTR pConnectedStatusText) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectedStatusText(
+            /* [retval][out] */ BSTR *pConnectedStatusText) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClient2Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClient2 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClient2 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClient2 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClient2 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClient2 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClient2 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClient2 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pServer);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pServer);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pDomain);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pDomain);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pUserName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pUserName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pDisconnectedText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pDisconnectedText);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ short *pIsConnected);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )(
+            IMsRdpClient2 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )(
+            IMsRdpClient2 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )(
+            IMsRdpClient2 * This,
+            /* [in] */ long pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pfHScrollVisible);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pfVScrollVisible);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pCipherStrength);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pVersion);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pSecuredSettingsEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings);
+
+        /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsTscDebug **ppDebugger);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+            IMsRdpClient2 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+            IMsRdpClient2 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR newVal);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )(
+            IMsRdpClient2 * This,
+            /* [in] */ long pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ long *pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsRdpClient2 * This,
+            /* [in] */ VARIANT_BOOL pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfFullScreen);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ long chanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR chanName,
+            /* [retval][out] */ long *pChanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ ControlCloseStatus *pCloseStatus);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )(
+            IMsRdpClient2 * This,
+            /* [in] */ BSTR pConnectedStatusText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )(
+            IMsRdpClient2 * This,
+            /* [retval][out] */ BSTR *pConnectedStatusText);
+
+        END_INTERFACE
+    } IMsRdpClient2Vtbl;
+
+    interface IMsRdpClient2
+    {
+        CONST_VTBL struct IMsRdpClient2Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClient2_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClient2_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClient2_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClient2_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClient2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClient2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClient2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClient2_put_Server(This,pServer) \
+    ( (This)->lpVtbl -> put_Server(This,pServer) )
+
+#define IMsRdpClient2_get_Server(This,pServer) \
+    ( (This)->lpVtbl -> get_Server(This,pServer) )
+
+#define IMsRdpClient2_put_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> put_Domain(This,pDomain) )
+
+#define IMsRdpClient2_get_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> get_Domain(This,pDomain) )
+
+#define IMsRdpClient2_put_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> put_UserName(This,pUserName) )
+
+#define IMsRdpClient2_get_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> get_UserName(This,pUserName) )
+
+#define IMsRdpClient2_put_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient2_get_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient2_put_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient2_get_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient2_get_Connected(This,pIsConnected) \
+    ( (This)->lpVtbl -> get_Connected(This,pIsConnected) )
+
+#define IMsRdpClient2_put_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient2_get_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient2_put_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient2_get_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient2_put_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient2_get_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient2_get_HorizontalScrollBarVisible(This,pfHScrollVisible)    \
+    ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) )
+
+#define IMsRdpClient2_get_VerticalScrollBarVisible(This,pfVScrollVisible)      \
+    ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) )
+
+#define IMsRdpClient2_put_FullScreenTitle(This,rhs)    \
+    ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) )
+
+#define IMsRdpClient2_get_CipherStrength(This,pCipherStrength) \
+    ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) )
+
+#define IMsRdpClient2_get_Version(This,pVersion)       \
+    ( (This)->lpVtbl -> get_Version(This,pVersion) )
+
+#define IMsRdpClient2_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \
+    ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) )
+
+#define IMsRdpClient2_get_SecuredSettings(This,ppSecuredSettings)      \
+    ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) )
+
+#define IMsRdpClient2_get_AdvancedSettings(This,ppAdvSettings) \
+    ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) )
+
+#define IMsRdpClient2_get_Debugger(This,ppDebugger)    \
+    ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) )
+
+#define IMsRdpClient2_Connect(This)    \
+    ( (This)->lpVtbl -> Connect(This) )
+
+#define IMsRdpClient2_Disconnect(This) \
+    ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IMsRdpClient2_CreateVirtualChannels(This,newVal)       \
+    ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) )
+
+#define IMsRdpClient2_SendOnVirtualChannel(This,chanName,ChanData)     \
+    ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) )
+
+
+#define IMsRdpClient2_put_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient2_get_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient2_get_AdvancedSettings2(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) )
+
+#define IMsRdpClient2_get_SecuredSettings2(This,ppSecuredSettings)     \
+    ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) )
+
+#define IMsRdpClient2_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason)     \
+    ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) )
+
+#define IMsRdpClient2_put_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient2_get_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient2_SetVirtualChannelOptions(This,chanName,chanOptions)      \
+    ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) )
+
+#define IMsRdpClient2_GetVirtualChannelOptions(This,chanName,pChanOptions)     \
+    ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) )
+
+#define IMsRdpClient2_RequestClose(This,pCloseStatus)  \
+    ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) )
+
+
+#define IMsRdpClient2_get_AdvancedSettings3(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) )
+
+#define IMsRdpClient2_put_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) )
+
+#define IMsRdpClient2_get_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClient2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClient3_INTERFACE_DEFINED__
+#define __IMsRdpClient3_INTERFACE_DEFINED__
+
+/* interface IMsRdpClient3 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClient3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("91B7CBC5-A72E-4FA0-9300-D647D7E897FF")
+    IMsRdpClient3 : public IMsRdpClient2
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings4(
+            /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClient3Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClient3 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClient3 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClient3 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClient3 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClient3 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClient3 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClient3 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pServer);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pServer);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pDomain);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pDomain);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pUserName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pUserName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pDisconnectedText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pDisconnectedText);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ short *pIsConnected);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )(
+            IMsRdpClient3 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )(
+            IMsRdpClient3 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )(
+            IMsRdpClient3 * This,
+            /* [in] */ long pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pfHScrollVisible);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pfVScrollVisible);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pCipherStrength);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pVersion);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pSecuredSettingsEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings);
+
+        /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsTscDebug **ppDebugger);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+            IMsRdpClient3 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+            IMsRdpClient3 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR newVal);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )(
+            IMsRdpClient3 * This,
+            /* [in] */ long pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ long *pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsRdpClient3 * This,
+            /* [in] */ VARIANT_BOOL pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfFullScreen);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ long chanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR chanName,
+            /* [retval][out] */ long *pChanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ ControlCloseStatus *pCloseStatus);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )(
+            IMsRdpClient3 * This,
+            /* [in] */ BSTR pConnectedStatusText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ BSTR *pConnectedStatusText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )(
+            IMsRdpClient3 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings);
+
+        END_INTERFACE
+    } IMsRdpClient3Vtbl;
+
+    interface IMsRdpClient3
+    {
+        CONST_VTBL struct IMsRdpClient3Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClient3_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClient3_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClient3_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClient3_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClient3_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClient3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClient3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClient3_put_Server(This,pServer) \
+    ( (This)->lpVtbl -> put_Server(This,pServer) )
+
+#define IMsRdpClient3_get_Server(This,pServer) \
+    ( (This)->lpVtbl -> get_Server(This,pServer) )
+
+#define IMsRdpClient3_put_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> put_Domain(This,pDomain) )
+
+#define IMsRdpClient3_get_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> get_Domain(This,pDomain) )
+
+#define IMsRdpClient3_put_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> put_UserName(This,pUserName) )
+
+#define IMsRdpClient3_get_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> get_UserName(This,pUserName) )
+
+#define IMsRdpClient3_put_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient3_get_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient3_put_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient3_get_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient3_get_Connected(This,pIsConnected) \
+    ( (This)->lpVtbl -> get_Connected(This,pIsConnected) )
+
+#define IMsRdpClient3_put_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient3_get_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient3_put_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient3_get_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient3_put_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient3_get_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient3_get_HorizontalScrollBarVisible(This,pfHScrollVisible)    \
+    ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) )
+
+#define IMsRdpClient3_get_VerticalScrollBarVisible(This,pfVScrollVisible)      \
+    ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) )
+
+#define IMsRdpClient3_put_FullScreenTitle(This,rhs)    \
+    ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) )
+
+#define IMsRdpClient3_get_CipherStrength(This,pCipherStrength) \
+    ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) )
+
+#define IMsRdpClient3_get_Version(This,pVersion)       \
+    ( (This)->lpVtbl -> get_Version(This,pVersion) )
+
+#define IMsRdpClient3_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \
+    ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) )
+
+#define IMsRdpClient3_get_SecuredSettings(This,ppSecuredSettings)      \
+    ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) )
+
+#define IMsRdpClient3_get_AdvancedSettings(This,ppAdvSettings) \
+    ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) )
+
+#define IMsRdpClient3_get_Debugger(This,ppDebugger)    \
+    ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) )
+
+#define IMsRdpClient3_Connect(This)    \
+    ( (This)->lpVtbl -> Connect(This) )
+
+#define IMsRdpClient3_Disconnect(This) \
+    ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IMsRdpClient3_CreateVirtualChannels(This,newVal)       \
+    ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) )
+
+#define IMsRdpClient3_SendOnVirtualChannel(This,chanName,ChanData)     \
+    ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) )
+
+
+#define IMsRdpClient3_put_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient3_get_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient3_get_AdvancedSettings2(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) )
+
+#define IMsRdpClient3_get_SecuredSettings2(This,ppSecuredSettings)     \
+    ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) )
+
+#define IMsRdpClient3_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason)     \
+    ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) )
+
+#define IMsRdpClient3_put_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient3_get_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient3_SetVirtualChannelOptions(This,chanName,chanOptions)      \
+    ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) )
+
+#define IMsRdpClient3_GetVirtualChannelOptions(This,chanName,pChanOptions)     \
+    ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) )
+
+#define IMsRdpClient3_RequestClose(This,pCloseStatus)  \
+    ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) )
+
+
+#define IMsRdpClient3_get_AdvancedSettings3(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) )
+
+#define IMsRdpClient3_put_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) )
+
+#define IMsRdpClient3_get_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) )
+
+
+#define IMsRdpClient3_get_AdvancedSettings4(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClient3_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClient4_INTERFACE_DEFINED__
+#define __IMsRdpClient4_INTERFACE_DEFINED__
+
+/* interface IMsRdpClient4 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClient4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("095E0738-D97D-488B-B9F6-DD0E8D66C0DE")
+    IMsRdpClient4 : public IMsRdpClient3
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AdvancedSettings5(
+            /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClient4Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClient4 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClient4 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClient4 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClient4 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClient4 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClient4 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClient4 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Server )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pServer);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Server )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pServer);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Domain )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pDomain);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Domain )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pDomain);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_UserName )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pUserName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_UserName )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pUserName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisconnectedText )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pDisconnectedText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisconnectedText )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pDisconnectedText);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectingText )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectingText )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pConnectingText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Connected )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ short *pIsConnected);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopWidth )(
+            IMsRdpClient4 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopWidth )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DesktopHeight )(
+            IMsRdpClient4 * This,
+            /* [in] */ long pVal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DesktopHeight )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pVal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartConnected )(
+            IMsRdpClient4 * This,
+            /* [in] */ long pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartConnected )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pfStartConnected);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollBarVisible )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pfHScrollVisible);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollBarVisible )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pfVScrollVisible);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreenTitle )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CipherStrength )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pCipherStrength);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Version )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pVersion);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettingsEnabled )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pSecuredSettingsEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsTscSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsTscAdvancedSettings **ppAdvSettings);
+
+        /* [hidden][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Debugger )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsTscDebug **ppDebugger);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Connect )(
+            IMsRdpClient4 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )(
+            IMsRdpClient4 * This);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateVirtualChannels )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR newVal);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SendOnVirtualChannel )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ BSTR ChanData);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ColorDepth )(
+            IMsRdpClient4 * This,
+            /* [in] */ long pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ColorDepth )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ long *pcolorDepth);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings2 )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings **ppAdvSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SecuredSettings2 )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsRdpClientSecuredSettings **ppSecuredSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedDisconnectReason )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ ExtendedDisconnectReasonCode *pExtendedDisconnectReason);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsRdpClient4 * This,
+            /* [in] */ VARIANT_BOOL pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfFullScreen);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SetVirtualChannelOptions )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR chanName,
+            /* [in] */ long chanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetVirtualChannelOptions )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR chanName,
+            /* [retval][out] */ long *pChanOptions);
+
+        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RequestClose )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ ControlCloseStatus *pCloseStatus);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings3 )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings2 **ppAdvSettings);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectedStatusText )(
+            IMsRdpClient4 * This,
+            /* [in] */ BSTR pConnectedStatusText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectedStatusText )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ BSTR *pConnectedStatusText);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings4 )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings3 **ppAdvSettings);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AdvancedSettings5 )(
+            IMsRdpClient4 * This,
+            /* [retval][out] */ IMsRdpClientAdvancedSettings4 **ppAdvSettings5);
+
+        END_INTERFACE
+    } IMsRdpClient4Vtbl;
+
+    interface IMsRdpClient4
+    {
+        CONST_VTBL struct IMsRdpClient4Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClient4_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClient4_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClient4_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClient4_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClient4_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClient4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClient4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClient4_put_Server(This,pServer) \
+    ( (This)->lpVtbl -> put_Server(This,pServer) )
+
+#define IMsRdpClient4_get_Server(This,pServer) \
+    ( (This)->lpVtbl -> get_Server(This,pServer) )
+
+#define IMsRdpClient4_put_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> put_Domain(This,pDomain) )
+
+#define IMsRdpClient4_get_Domain(This,pDomain) \
+    ( (This)->lpVtbl -> get_Domain(This,pDomain) )
+
+#define IMsRdpClient4_put_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> put_UserName(This,pUserName) )
+
+#define IMsRdpClient4_get_UserName(This,pUserName)     \
+    ( (This)->lpVtbl -> get_UserName(This,pUserName) )
+
+#define IMsRdpClient4_put_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> put_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient4_get_DisconnectedText(This,pDisconnectedText)     \
+    ( (This)->lpVtbl -> get_DisconnectedText(This,pDisconnectedText) )
+
+#define IMsRdpClient4_put_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> put_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient4_get_ConnectingText(This,pConnectingText) \
+    ( (This)->lpVtbl -> get_ConnectingText(This,pConnectingText) )
+
+#define IMsRdpClient4_get_Connected(This,pIsConnected) \
+    ( (This)->lpVtbl -> get_Connected(This,pIsConnected) )
+
+#define IMsRdpClient4_put_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> put_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient4_get_DesktopWidth(This,pVal)      \
+    ( (This)->lpVtbl -> get_DesktopWidth(This,pVal) )
+
+#define IMsRdpClient4_put_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> put_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient4_get_DesktopHeight(This,pVal)     \
+    ( (This)->lpVtbl -> get_DesktopHeight(This,pVal) )
+
+#define IMsRdpClient4_put_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> put_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient4_get_StartConnected(This,pfStartConnected)        \
+    ( (This)->lpVtbl -> get_StartConnected(This,pfStartConnected) )
+
+#define IMsRdpClient4_get_HorizontalScrollBarVisible(This,pfHScrollVisible)    \
+    ( (This)->lpVtbl -> get_HorizontalScrollBarVisible(This,pfHScrollVisible) )
+
+#define IMsRdpClient4_get_VerticalScrollBarVisible(This,pfVScrollVisible)      \
+    ( (This)->lpVtbl -> get_VerticalScrollBarVisible(This,pfVScrollVisible) )
+
+#define IMsRdpClient4_put_FullScreenTitle(This,rhs)    \
+    ( (This)->lpVtbl -> put_FullScreenTitle(This,rhs) )
+
+#define IMsRdpClient4_get_CipherStrength(This,pCipherStrength) \
+    ( (This)->lpVtbl -> get_CipherStrength(This,pCipherStrength) )
+
+#define IMsRdpClient4_get_Version(This,pVersion)       \
+    ( (This)->lpVtbl -> get_Version(This,pVersion) )
+
+#define IMsRdpClient4_get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) \
+    ( (This)->lpVtbl -> get_SecuredSettingsEnabled(This,pSecuredSettingsEnabled) )
+
+#define IMsRdpClient4_get_SecuredSettings(This,ppSecuredSettings)      \
+    ( (This)->lpVtbl -> get_SecuredSettings(This,ppSecuredSettings) )
+
+#define IMsRdpClient4_get_AdvancedSettings(This,ppAdvSettings) \
+    ( (This)->lpVtbl -> get_AdvancedSettings(This,ppAdvSettings) )
+
+#define IMsRdpClient4_get_Debugger(This,ppDebugger)    \
+    ( (This)->lpVtbl -> get_Debugger(This,ppDebugger) )
+
+#define IMsRdpClient4_Connect(This)    \
+    ( (This)->lpVtbl -> Connect(This) )
+
+#define IMsRdpClient4_Disconnect(This) \
+    ( (This)->lpVtbl -> Disconnect(This) )
+
+#define IMsRdpClient4_CreateVirtualChannels(This,newVal)       \
+    ( (This)->lpVtbl -> CreateVirtualChannels(This,newVal) )
+
+#define IMsRdpClient4_SendOnVirtualChannel(This,chanName,ChanData)     \
+    ( (This)->lpVtbl -> SendOnVirtualChannel(This,chanName,ChanData) )
+
+
+#define IMsRdpClient4_put_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> put_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient4_get_ColorDepth(This,pcolorDepth) \
+    ( (This)->lpVtbl -> get_ColorDepth(This,pcolorDepth) )
+
+#define IMsRdpClient4_get_AdvancedSettings2(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings2(This,ppAdvSettings) )
+
+#define IMsRdpClient4_get_SecuredSettings2(This,ppSecuredSettings)     \
+    ( (This)->lpVtbl -> get_SecuredSettings2(This,ppSecuredSettings) )
+
+#define IMsRdpClient4_get_ExtendedDisconnectReason(This,pExtendedDisconnectReason)     \
+    ( (This)->lpVtbl -> get_ExtendedDisconnectReason(This,pExtendedDisconnectReason) )
+
+#define IMsRdpClient4_put_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient4_get_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClient4_SetVirtualChannelOptions(This,chanName,chanOptions)      \
+    ( (This)->lpVtbl -> SetVirtualChannelOptions(This,chanName,chanOptions) )
+
+#define IMsRdpClient4_GetVirtualChannelOptions(This,chanName,pChanOptions)     \
+    ( (This)->lpVtbl -> GetVirtualChannelOptions(This,chanName,pChanOptions) )
+
+#define IMsRdpClient4_RequestClose(This,pCloseStatus)  \
+    ( (This)->lpVtbl -> RequestClose(This,pCloseStatus) )
+
+
+#define IMsRdpClient4_get_AdvancedSettings3(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings3(This,ppAdvSettings) )
+
+#define IMsRdpClient4_put_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> put_ConnectedStatusText(This,pConnectedStatusText) )
+
+#define IMsRdpClient4_get_ConnectedStatusText(This,pConnectedStatusText)       \
+    ( (This)->lpVtbl -> get_ConnectedStatusText(This,pConnectedStatusText) )
+
+
+#define IMsRdpClient4_get_AdvancedSettings4(This,ppAdvSettings)        \
+    ( (This)->lpVtbl -> get_AdvancedSettings4(This,ppAdvSettings) )
+
+
+#define IMsRdpClient4_get_AdvancedSettings5(This,ppAdvSettings5)       \
+    ( (This)->lpVtbl -> get_AdvancedSettings5(This,ppAdvSettings5) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClient4_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsTscNonScriptable_INTERFACE_DEFINED__
+#define __IMsTscNonScriptable_INTERFACE_DEFINED__
+
+/* interface IMsTscNonScriptable */
+/* [object][uuid] */
+
+
+EXTERN_C const IID IID_IMsTscNonScriptable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("C1E6743A-41C1-4A74-832A-0DD06C1C7A0E")
+    IMsTscNonScriptable : public IUnknown
+    {
+    public:
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortablePassword(
+            /* [in] */ BSTR pPortablePass) = 0;
+
+        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortablePassword(
+            /* [retval][out] */ BSTR *pPortablePass) = 0;
+
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PortableSalt(
+            /* [in] */ BSTR pPortableSalt) = 0;
+
+        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PortableSalt(
+            /* [retval][out] */ BSTR *pPortableSalt) = 0;
+
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinaryPassword(
+            /* [in] */ BSTR pBinaryPassword) = 0;
+
+        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinaryPassword(
+            /* [retval][out] */ BSTR *pBinaryPassword) = 0;
+
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BinarySalt(
+            /* [in] */ BSTR pSalt) = 0;
+
+        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BinarySalt(
+            /* [retval][out] */ BSTR *pSalt) = 0;
+
+        virtual HRESULT STDMETHODCALLTYPE ResetPassword( void) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscNonScriptableVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscNonScriptable * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscNonScriptable * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscNonScriptable * This);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsTscNonScriptable * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
+            IMsTscNonScriptable * This,
+            /* [in] */ BSTR pPortablePass);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
+            IMsTscNonScriptable * This,
+            /* [retval][out] */ BSTR *pPortablePass);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
+            IMsTscNonScriptable * This,
+            /* [in] */ BSTR pPortableSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
+            IMsTscNonScriptable * This,
+            /* [retval][out] */ BSTR *pPortableSalt);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
+            IMsTscNonScriptable * This,
+            /* [in] */ BSTR pBinaryPassword);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
+            IMsTscNonScriptable * This,
+            /* [retval][out] */ BSTR *pBinaryPassword);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
+            IMsTscNonScriptable * This,
+            /* [in] */ BSTR pSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
+            IMsTscNonScriptable * This,
+            /* [retval][out] */ BSTR *pSalt);
+
+        HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
+            IMsTscNonScriptable * This);
+
+        END_INTERFACE
+    } IMsTscNonScriptableVtbl;
+
+    interface IMsTscNonScriptable
+    {
+        CONST_VTBL struct IMsTscNonScriptableVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscNonScriptable_QueryInterface(This,riid,ppvObject)        \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscNonScriptable_AddRef(This)       \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscNonScriptable_Release(This)      \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscNonScriptable_put_ClearTextPassword(This,rhs)    \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsTscNonScriptable_put_PortablePassword(This,pPortablePass)   \
+    ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) )
+
+#define IMsTscNonScriptable_get_PortablePassword(This,pPortablePass)   \
+    ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) )
+
+#define IMsTscNonScriptable_put_PortableSalt(This,pPortableSalt)       \
+    ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) )
+
+#define IMsTscNonScriptable_get_PortableSalt(This,pPortableSalt)       \
+    ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) )
+
+#define IMsTscNonScriptable_put_BinaryPassword(This,pBinaryPassword)   \
+    ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsTscNonScriptable_get_BinaryPassword(This,pBinaryPassword)   \
+    ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsTscNonScriptable_put_BinarySalt(This,pSalt) \
+    ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) )
+
+#define IMsTscNonScriptable_get_BinarySalt(This,pSalt) \
+    ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) )
+
+#define IMsTscNonScriptable_ResetPassword(This)        \
+    ( (This)->lpVtbl -> ResetPassword(This) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsTscNonScriptable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientNonScriptable_INTERFACE_DEFINED__
+#define __IMsRdpClientNonScriptable_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientNonScriptable */
+/* [object][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientNonScriptable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("2F079C4C-87B2-4AFD-97AB-20CDB43038AE")
+    IMsRdpClientNonScriptable : public IMsTscNonScriptable
+    {
+    public:
+        virtual HRESULT STDMETHODCALLTYPE NotifyRedirectDeviceChange(
+            /* [in] */ UINT_PTR wParam,
+            /* [in] */ LONG_PTR lParam) = 0;
+
+        virtual HRESULT STDMETHODCALLTYPE SendKeys(
+            /* [in] */ long numKeys,
+            /* [in] */ VARIANT_BOOL *pbArrayKeyUp,
+            /* [in] */ long *plKeyData) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientNonScriptableVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientNonScriptable * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientNonScriptable * This);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ BSTR pPortablePass);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
+            IMsRdpClientNonScriptable * This,
+            /* [retval][out] */ BSTR *pPortablePass);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ BSTR pPortableSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
+            IMsRdpClientNonScriptable * This,
+            /* [retval][out] */ BSTR *pPortableSalt);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ BSTR pBinaryPassword);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
+            IMsRdpClientNonScriptable * This,
+            /* [retval][out] */ BSTR *pBinaryPassword);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ BSTR pSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
+            IMsRdpClientNonScriptable * This,
+            /* [retval][out] */ BSTR *pSalt);
+
+        HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
+            IMsRdpClientNonScriptable * This);
+
+        HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ UINT_PTR wParam,
+            /* [in] */ LONG_PTR lParam);
+
+        HRESULT ( STDMETHODCALLTYPE *SendKeys )(
+            IMsRdpClientNonScriptable * This,
+            /* [in] */ long numKeys,
+            /* [in] */ VARIANT_BOOL *pbArrayKeyUp,
+            /* [in] */ long *plKeyData);
+
+        END_INTERFACE
+    } IMsRdpClientNonScriptableVtbl;
+
+    interface IMsRdpClientNonScriptable
+    {
+        CONST_VTBL struct IMsRdpClientNonScriptableVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientNonScriptable_QueryInterface(This,riid,ppvObject)  \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientNonScriptable_AddRef(This) \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientNonScriptable_Release(This)        \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientNonScriptable_put_ClearTextPassword(This,rhs)      \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientNonScriptable_put_PortablePassword(This,pPortablePass)     \
+    ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) )
+
+#define IMsRdpClientNonScriptable_get_PortablePassword(This,pPortablePass)     \
+    ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) )
+
+#define IMsRdpClientNonScriptable_put_PortableSalt(This,pPortableSalt) \
+    ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) )
+
+#define IMsRdpClientNonScriptable_get_PortableSalt(This,pPortableSalt) \
+    ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) )
+
+#define IMsRdpClientNonScriptable_put_BinaryPassword(This,pBinaryPassword)     \
+    ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsRdpClientNonScriptable_get_BinaryPassword(This,pBinaryPassword)     \
+    ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsRdpClientNonScriptable_put_BinarySalt(This,pSalt)   \
+    ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) )
+
+#define IMsRdpClientNonScriptable_get_BinarySalt(This,pSalt)   \
+    ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) )
+
+#define IMsRdpClientNonScriptable_ResetPassword(This)  \
+    ( (This)->lpVtbl -> ResetPassword(This) )
+
+
+#define IMsRdpClientNonScriptable_NotifyRedirectDeviceChange(This,wParam,lParam)       \
+    ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) )
+
+#define IMsRdpClientNonScriptable_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData)        \
+    ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClientNonScriptable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__
+#define __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientNonScriptable2 */
+/* [object][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientNonScriptable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("17A5E535-4072-4FA4-AF32-C8D0D47345E9")
+    IMsRdpClientNonScriptable2 : public IMsRdpClientNonScriptable
+    {
+    public:
+        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UIParentWindowHandle(
+            /* [in] */ HWND phwndUIParentWindowHandle) = 0;
+
+        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UIParentWindowHandle(
+            /* [retval][out] */ HWND *phwndUIParentWindowHandle) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientNonScriptable2Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientNonScriptable2 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientNonScriptable2 * This);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortablePassword )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ BSTR pPortablePass);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortablePassword )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [retval][out] */ BSTR *pPortablePass);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_PortableSalt )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ BSTR pPortableSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_PortableSalt )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [retval][out] */ BSTR *pPortableSalt);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinaryPassword )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ BSTR pBinaryPassword);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinaryPassword )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [retval][out] */ BSTR *pBinaryPassword);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BinarySalt )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ BSTR pSalt);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BinarySalt )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [retval][out] */ BSTR *pSalt);
+
+        HRESULT ( STDMETHODCALLTYPE *ResetPassword )(
+            IMsRdpClientNonScriptable2 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *NotifyRedirectDeviceChange )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ UINT_PTR wParam,
+            /* [in] */ LONG_PTR lParam);
+
+        HRESULT ( STDMETHODCALLTYPE *SendKeys )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ long numKeys,
+            /* [in] */ VARIANT_BOOL *pbArrayKeyUp,
+            /* [in] */ long *plKeyData);
+
+        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_UIParentWindowHandle )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [in] */ HWND phwndUIParentWindowHandle);
+
+        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UIParentWindowHandle )(
+            IMsRdpClientNonScriptable2 * This,
+            /* [retval][out] */ HWND *phwndUIParentWindowHandle);
+
+        END_INTERFACE
+    } IMsRdpClientNonScriptable2Vtbl;
+
+    interface IMsRdpClientNonScriptable2
+    {
+        CONST_VTBL struct IMsRdpClientNonScriptable2Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientNonScriptable2_QueryInterface(This,riid,ppvObject) \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientNonScriptable2_AddRef(This)        \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientNonScriptable2_Release(This)       \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientNonScriptable2_put_ClearTextPassword(This,rhs)     \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientNonScriptable2_put_PortablePassword(This,pPortablePass)    \
+    ( (This)->lpVtbl -> put_PortablePassword(This,pPortablePass) )
+
+#define IMsRdpClientNonScriptable2_get_PortablePassword(This,pPortablePass)    \
+    ( (This)->lpVtbl -> get_PortablePassword(This,pPortablePass) )
+
+#define IMsRdpClientNonScriptable2_put_PortableSalt(This,pPortableSalt)        \
+    ( (This)->lpVtbl -> put_PortableSalt(This,pPortableSalt) )
+
+#define IMsRdpClientNonScriptable2_get_PortableSalt(This,pPortableSalt)        \
+    ( (This)->lpVtbl -> get_PortableSalt(This,pPortableSalt) )
+
+#define IMsRdpClientNonScriptable2_put_BinaryPassword(This,pBinaryPassword)    \
+    ( (This)->lpVtbl -> put_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsRdpClientNonScriptable2_get_BinaryPassword(This,pBinaryPassword)    \
+    ( (This)->lpVtbl -> get_BinaryPassword(This,pBinaryPassword) )
+
+#define IMsRdpClientNonScriptable2_put_BinarySalt(This,pSalt)  \
+    ( (This)->lpVtbl -> put_BinarySalt(This,pSalt) )
+
+#define IMsRdpClientNonScriptable2_get_BinarySalt(This,pSalt)  \
+    ( (This)->lpVtbl -> get_BinarySalt(This,pSalt) )
+
+#define IMsRdpClientNonScriptable2_ResetPassword(This) \
+    ( (This)->lpVtbl -> ResetPassword(This) )
+
+
+#define IMsRdpClientNonScriptable2_NotifyRedirectDeviceChange(This,wParam,lParam)      \
+    ( (This)->lpVtbl -> NotifyRedirectDeviceChange(This,wParam,lParam) )
+
+#define IMsRdpClientNonScriptable2_SendKeys(This,numKeys,pbArrayKeyUp,plKeyData)       \
+    ( (This)->lpVtbl -> SendKeys(This,numKeys,pbArrayKeyUp,plKeyData) )
+
+
+#define IMsRdpClientNonScriptable2_put_UIParentWindowHandle(This,phwndUIParentWindowHandle)    \
+    ( (This)->lpVtbl -> put_UIParentWindowHandle(This,phwndUIParentWindowHandle) )
+
+#define IMsRdpClientNonScriptable2_get_UIParentWindowHandle(This,phwndUIParentWindowHandle)    \
+    ( (This)->lpVtbl -> get_UIParentWindowHandle(This,phwndUIParentWindowHandle) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClientNonScriptable2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsTscAdvancedSettings_INTERFACE_DEFINED__
+#define __IMsTscAdvancedSettings_INTERFACE_DEFINED__
+
+/* interface IMsTscAdvancedSettings */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsTscAdvancedSettings;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D")
+    IMsTscAdvancedSettings : public IDispatch
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_Compress(
+            /* [in] */ long pcompress) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_Compress(
+            /* [retval][out] */ long *pcompress) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPeristence(
+            /* [in] */ long pbitmapPeristence) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPeristence(
+            /* [retval][out] */ long *pbitmapPeristence) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_allowBackgroundInput(
+            /* [in] */ long pallowBackgroundInput) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_allowBackgroundInput(
+            /* [retval][out] */ long *pallowBackgroundInput) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyBoardLayoutStr(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PluginDlls(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconFile(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_IconIndex(
+            /* [in] */ long rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ContainerHandledFullScreen(
+            /* [in] */ long pContainerHandledFullScreen) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ContainerHandledFullScreen(
+            /* [retval][out] */ long *pContainerHandledFullScreen) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableRdpdr(
+            /* [in] */ long pDisableRdpdr) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableRdpdr(
+            /* [retval][out] */ long *pDisableRdpdr) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscAdvancedSettingsVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscAdvancedSettings * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscAdvancedSettings * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsTscAdvancedSettings * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long pcompress);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )(
+            IMsTscAdvancedSettings * This,
+            /* [retval][out] */ long *pcompress);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long pbitmapPeristence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )(
+            IMsTscAdvancedSettings * This,
+            /* [retval][out] */ long *pbitmapPeristence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long pallowBackgroundInput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )(
+            IMsTscAdvancedSettings * This,
+            /* [retval][out] */ long *pallowBackgroundInput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long pContainerHandledFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )(
+            IMsTscAdvancedSettings * This,
+            /* [retval][out] */ long *pContainerHandledFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )(
+            IMsTscAdvancedSettings * This,
+            /* [in] */ long pDisableRdpdr);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )(
+            IMsTscAdvancedSettings * This,
+            /* [retval][out] */ long *pDisableRdpdr);
+
+        END_INTERFACE
+    } IMsTscAdvancedSettingsVtbl;
+
+    interface IMsTscAdvancedSettings
+    {
+        CONST_VTBL struct IMsTscAdvancedSettingsVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscAdvancedSettings_QueryInterface(This,riid,ppvObject)     \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscAdvancedSettings_AddRef(This)    \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscAdvancedSettings_Release(This)   \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscAdvancedSettings_GetTypeInfoCount(This,pctinfo)  \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsTscAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)   \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsTscAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsTscAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)   \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsTscAdvancedSettings_put_Compress(This,pcompress)    \
+    ( (This)->lpVtbl -> put_Compress(This,pcompress) )
+
+#define IMsTscAdvancedSettings_get_Compress(This,pcompress)    \
+    ( (This)->lpVtbl -> get_Compress(This,pcompress) )
+
+#define IMsTscAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence)    \
+    ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsTscAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence)    \
+    ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsTscAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput)    \
+    ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsTscAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput)    \
+    ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsTscAdvancedSettings_put_KeyBoardLayoutStr(This,rhs) \
+    ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) )
+
+#define IMsTscAdvancedSettings_put_PluginDlls(This,rhs)        \
+    ( (This)->lpVtbl -> put_PluginDlls(This,rhs) )
+
+#define IMsTscAdvancedSettings_put_IconFile(This,rhs)  \
+    ( (This)->lpVtbl -> put_IconFile(This,rhs) )
+
+#define IMsTscAdvancedSettings_put_IconIndex(This,rhs) \
+    ( (This)->lpVtbl -> put_IconIndex(This,rhs) )
+
+#define IMsTscAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen)        \
+    ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsTscAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen)        \
+    ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsTscAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr)    \
+    ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) )
+
+#define IMsTscAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr)    \
+    ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsTscAdvancedSettings_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__
+#define __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientAdvancedSettings */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientAdvancedSettings;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2")
+    IMsRdpClientAdvancedSettings : public IMsTscAdvancedSettings
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmoothScroll(
+            /* [in] */ long psmoothScroll) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmoothScroll(
+            /* [retval][out] */ long *psmoothScroll) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AcceleratorPassthrough(
+            /* [in] */ long pacceleratorPassthrough) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AcceleratorPassthrough(
+            /* [retval][out] */ long *pacceleratorPassthrough) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ShadowBitmap(
+            /* [in] */ long pshadowBitmap) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ShadowBitmap(
+            /* [retval][out] */ long *pshadowBitmap) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_TransportType(
+            /* [in] */ long ptransportType) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_TransportType(
+            /* [retval][out] */ long *ptransportType) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SasSequence(
+            /* [in] */ long psasSequence) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SasSequence(
+            /* [retval][out] */ long *psasSequence) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EncryptionEnabled(
+            /* [in] */ long pencryptionEnabled) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EncryptionEnabled(
+            /* [retval][out] */ long *pencryptionEnabled) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DedicatedTerminal(
+            /* [in] */ long pdedicatedTerminal) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DedicatedTerminal(
+            /* [retval][out] */ long *pdedicatedTerminal) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RDPPort(
+            /* [in] */ long prdpPort) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RDPPort(
+            /* [retval][out] */ long *prdpPort) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableMouse(
+            /* [in] */ long penableMouse) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableMouse(
+            /* [retval][out] */ long *penableMouse) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisableCtrlAltDel(
+            /* [in] */ long pdisableCtrlAltDel) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisableCtrlAltDel(
+            /* [retval][out] */ long *pdisableCtrlAltDel) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableWindowsKey(
+            /* [in] */ long penableWindowsKey) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableWindowsKey(
+            /* [retval][out] */ long *penableWindowsKey) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DoubleClickDetect(
+            /* [in] */ long pdoubleClickDetect) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DoubleClickDetect(
+            /* [retval][out] */ long *pdoubleClickDetect) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaximizeShell(
+            /* [in] */ long pmaximizeShell) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaximizeShell(
+            /* [retval][out] */ long *pmaximizeShell) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyFullScreen(
+            /* [in] */ long photKeyFullScreen) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyFullScreen(
+            /* [retval][out] */ long *photKeyFullScreen) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlEsc(
+            /* [in] */ long photKeyCtrlEsc) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlEsc(
+            /* [retval][out] */ long *photKeyCtrlEsc) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltEsc(
+            /* [in] */ long photKeyAltEsc) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltEsc(
+            /* [retval][out] */ long *photKeyAltEsc) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltTab(
+            /* [in] */ long photKeyAltTab) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltTab(
+            /* [retval][out] */ long *photKeyAltTab) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltShiftTab(
+            /* [in] */ long photKeyAltShiftTab) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltShiftTab(
+            /* [retval][out] */ long *photKeyAltShiftTab) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyAltSpace(
+            /* [in] */ long photKeyAltSpace) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyAltSpace(
+            /* [retval][out] */ long *photKeyAltSpace) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HotKeyCtrlAltDel(
+            /* [in] */ long photKeyCtrlAltDel) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HotKeyCtrlAltDel(
+            /* [retval][out] */ long *photKeyCtrlAltDel) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_orderDrawThreshold(
+            /* [in] */ long porderDrawThreshold) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_orderDrawThreshold(
+            /* [retval][out] */ long *porderDrawThreshold) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheSize(
+            /* [in] */ long pbitmapCacheSize) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheSize(
+            /* [retval][out] */ long *pbitmapCacheSize) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCacheSize(
+            /* [in] */ long pbitmapVirtualCacheSize) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCacheSize(
+            /* [retval][out] */ long *pbitmapVirtualCacheSize) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ScaleBitmapCachesByBPP(
+            /* [in] */ long pbScale) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ScaleBitmapCachesByBPP(
+            /* [retval][out] */ long *pbScale) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NumBitmapCaches(
+            /* [in] */ long pnumBitmapCaches) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NumBitmapCaches(
+            /* [retval][out] */ long *pnumBitmapCaches) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CachePersistenceActive(
+            /* [in] */ long pcachePersistenceActive) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CachePersistenceActive(
+            /* [retval][out] */ long *pcachePersistenceActive) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PersistCacheDirectory(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_brushSupportLevel(
+            /* [in] */ long pbrushSupportLevel) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_brushSupportLevel(
+            /* [retval][out] */ long *pbrushSupportLevel) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_minInputSendInterval(
+            /* [in] */ long pminInputSendInterval) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_minInputSendInterval(
+            /* [retval][out] */ long *pminInputSendInterval) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_InputEventsAtOnce(
+            /* [in] */ long pinputEventsAtOnce) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_InputEventsAtOnce(
+            /* [retval][out] */ long *pinputEventsAtOnce) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_maxEventCount(
+            /* [in] */ long pmaxEventCount) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_maxEventCount(
+            /* [retval][out] */ long *pmaxEventCount) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_keepAliveInterval(
+            /* [in] */ long pkeepAliveInterval) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_keepAliveInterval(
+            /* [retval][out] */ long *pkeepAliveInterval) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_shutdownTimeout(
+            /* [in] */ long pshutdownTimeout) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_shutdownTimeout(
+            /* [retval][out] */ long *pshutdownTimeout) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_overallConnectionTimeout(
+            /* [in] */ long poverallConnectionTimeout) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_overallConnectionTimeout(
+            /* [retval][out] */ long *poverallConnectionTimeout) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_singleConnectionTimeout(
+            /* [in] */ long psingleConnectionTimeout) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_singleConnectionTimeout(
+            /* [retval][out] */ long *psingleConnectionTimeout) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardType(
+            /* [in] */ long pkeyboardType) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardType(
+            /* [retval][out] */ long *pkeyboardType) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardSubType(
+            /* [in] */ long pkeyboardSubType) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardSubType(
+            /* [retval][out] */ long *pkeyboardSubType) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardFunctionKey(
+            /* [in] */ long pkeyboardFunctionKey) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardFunctionKey(
+            /* [retval][out] */ long *pkeyboardFunctionKey) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WinceFixedPalette(
+            /* [in] */ long pwinceFixedPalette) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WinceFixedPalette(
+            /* [retval][out] */ long *pwinceFixedPalette) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectToServerConsole(
+            /* [in] */ VARIANT_BOOL pConnectToConsole) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectToServerConsole(
+            /* [retval][out] */ VARIANT_BOOL *pConnectToConsole) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapPersistence(
+            /* [in] */ long pbitmapPersistence) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapPersistence(
+            /* [retval][out] */ long *pbitmapPersistence) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MinutesToIdleTimeout(
+            /* [in] */ long pminutesToIdleTimeout) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MinutesToIdleTimeout(
+            /* [retval][out] */ long *pminutesToIdleTimeout) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_SmartSizing(
+            /* [in] */ VARIANT_BOOL pfSmartSizing) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_SmartSizing(
+            /* [retval][out] */ VARIANT_BOOL *pfSmartSizing) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrLocalPrintingDocName(
+            /* [in] */ BSTR pLocalPrintingDocName) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrLocalPrintingDocName(
+            /* [retval][out] */ BSTR *pLocalPrintingDocName) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipCleanTempDirString(
+            /* [in] */ BSTR clipCleanTempDirString) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipCleanTempDirString(
+            /* [retval][out] */ BSTR *clipCleanTempDirString) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RdpdrClipPasteInfoString(
+            /* [in] */ BSTR clipPasteInfoString) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RdpdrClipPasteInfoString(
+            /* [retval][out] */ BSTR *clipPasteInfoString) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ClearTextPassword(
+            /* [in] */ BSTR rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_DisplayConnectionBar(
+            /* [in] */ VARIANT_BOOL pDisplayConnectionBar) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_DisplayConnectionBar(
+            /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PinConnectionBar(
+            /* [in] */ VARIANT_BOOL pPinConnectionBar) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PinConnectionBar(
+            /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_GrabFocusOnConnect(
+            /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_GrabFocusOnConnect(
+            /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LoadBalanceInfo(
+            /* [in] */ BSTR pLBInfo) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LoadBalanceInfo(
+            /* [retval][out] */ BSTR *pLBInfo) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectDrives(
+            /* [in] */ VARIANT_BOOL pRedirectDrives) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectDrives(
+            /* [retval][out] */ VARIANT_BOOL *pRedirectDrives) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPrinters(
+            /* [in] */ VARIANT_BOOL pRedirectPrinters) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPrinters(
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectPorts(
+            /* [in] */ VARIANT_BOOL pRedirectPorts) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectPorts(
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPorts) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_RedirectSmartCards(
+            /* [in] */ VARIANT_BOOL pRedirectSmartCards) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_RedirectSmartCards(
+            /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache16BppSize(
+            /* [in] */ long pBitmapVirtualCache16BppSize) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache16BppSize(
+            /* [retval][out] */ long *pBitmapVirtualCache16BppSize) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapVirtualCache24BppSize(
+            /* [in] */ long pBitmapVirtualCache24BppSize) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapVirtualCache24BppSize(
+            /* [retval][out] */ long *pBitmapVirtualCache24BppSize) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_PerformanceFlags(
+            /* [in] */ long pDisableList) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_PerformanceFlags(
+            /* [retval][out] */ long *pDisableList) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectWithEndpoint(
+            /* [in] */ VARIANT *rhs) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NotifyTSPublicKey(
+            /* [in] */ VARIANT_BOOL pfNotify) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NotifyTSPublicKey(
+            /* [retval][out] */ VARIANT_BOOL *pfNotify) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientAdvancedSettingsVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientAdvancedSettings * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientAdvancedSettings * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pcompress);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pcompress);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbitmapPeristence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbitmapPeristence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pallowBackgroundInput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pallowBackgroundInput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pContainerHandledFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pContainerHandledFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pDisableRdpdr);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pDisableRdpdr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long psmoothScroll);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *psmoothScroll);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pacceleratorPassthrough);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pacceleratorPassthrough);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pshadowBitmap);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pshadowBitmap);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long ptransportType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *ptransportType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long psasSequence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *psasSequence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pencryptionEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pencryptionEnabled);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pdedicatedTerminal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pdedicatedTerminal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long prdpPort);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *prdpPort);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long penableMouse);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *penableMouse);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pdisableCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pdisableCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long penableWindowsKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *penableWindowsKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pdoubleClickDetect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pdoubleClickDetect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pmaximizeShell);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pmaximizeShell);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyCtrlEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyCtrlEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyAltEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyAltEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyAltTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyAltTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyAltShiftTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyAltShiftTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyAltSpace);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyAltSpace);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long photKeyCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *photKeyCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long porderDrawThreshold);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *porderDrawThreshold);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbitmapCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbitmapCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbitmapVirtualCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbitmapVirtualCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbScale);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbScale);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pnumBitmapCaches);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pnumBitmapCaches);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pcachePersistenceActive);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pcachePersistenceActive);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbrushSupportLevel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbrushSupportLevel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pminInputSendInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pminInputSendInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pinputEventsAtOnce);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pinputEventsAtOnce);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pmaxEventCount);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pmaxEventCount);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pkeepAliveInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pkeepAliveInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pshutdownTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pshutdownTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long poverallConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *poverallConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long psingleConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *psingleConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pkeyboardType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pkeyboardType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pkeyboardSubType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pkeyboardSubType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pkeyboardFunctionKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pkeyboardFunctionKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pwinceFixedPalette);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pwinceFixedPalette);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pConnectToConsole);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pConnectToConsole);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pbitmapPersistence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pbitmapPersistence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pminutesToIdleTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pminutesToIdleTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pfSmartSizing);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pfSmartSizing);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR pLocalPrintingDocName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ BSTR *pLocalPrintingDocName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR clipCleanTempDirString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ BSTR *clipCleanTempDirString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR clipPasteInfoString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ BSTR *clipPasteInfoString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pDisplayConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pPinConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ BSTR pLBInfo);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ BSTR *pLBInfo);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pRedirectDrives);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectDrives);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pRedirectPrinters);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pRedirectPorts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPorts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pRedirectSmartCards);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pBitmapVirtualCache16BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pBitmapVirtualCache16BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pBitmapVirtualCache24BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pBitmapVirtualCache24BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ long pDisableList);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ long *pDisableList);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT *rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [in] */ VARIANT_BOOL pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings * This,
+            /* [retval][out] */ VARIANT_BOOL *pfNotify);
+
+        END_INTERFACE
+    } IMsRdpClientAdvancedSettingsVtbl;
+
+    interface IMsRdpClientAdvancedSettings
+    {
+        CONST_VTBL struct IMsRdpClientAdvancedSettingsVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientAdvancedSettings_QueryInterface(This,riid,ppvObject)       \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientAdvancedSettings_AddRef(This)      \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientAdvancedSettings_Release(This)     \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientAdvancedSettings_GetTypeInfoCount(This,pctinfo)    \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClientAdvancedSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)     \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClientAdvancedSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)   \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClientAdvancedSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)     \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClientAdvancedSettings_put_Compress(This,pcompress)      \
+    ( (This)->lpVtbl -> put_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings_get_Compress(This,pcompress)      \
+    ( (This)->lpVtbl -> get_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapPeristence(This,pbitmapPeristence)      \
+    ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapPeristence(This,pbitmapPeristence)      \
+    ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings_put_allowBackgroundInput(This,pallowBackgroundInput)      \
+    ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings_get_allowBackgroundInput(This,pallowBackgroundInput)      \
+    ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings_put_KeyBoardLayoutStr(This,rhs)   \
+    ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_PluginDlls(This,rhs)  \
+    ( (This)->lpVtbl -> put_PluginDlls(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_IconFile(This,rhs)    \
+    ( (This)->lpVtbl -> put_IconFile(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_IconIndex(This,rhs)   \
+    ( (This)->lpVtbl -> put_IconIndex(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen)  \
+    ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen)  \
+    ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings_put_DisableRdpdr(This,pDisableRdpdr)      \
+    ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) )
+
+#define IMsRdpClientAdvancedSettings_get_DisableRdpdr(This,pDisableRdpdr)      \
+    ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) )
+
+
+#define IMsRdpClientAdvancedSettings_put_SmoothScroll(This,psmoothScroll)      \
+    ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings_get_SmoothScroll(This,psmoothScroll)      \
+    ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings_put_AcceleratorPassthrough(This,pacceleratorPassthrough)  \
+    ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings_get_AcceleratorPassthrough(This,pacceleratorPassthrough)  \
+    ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings_put_ShadowBitmap(This,pshadowBitmap)      \
+    ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings_get_ShadowBitmap(This,pshadowBitmap)      \
+    ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings_put_TransportType(This,ptransportType)    \
+    ( (This)->lpVtbl -> put_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings_get_TransportType(This,ptransportType)    \
+    ( (This)->lpVtbl -> get_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings_put_SasSequence(This,psasSequence)        \
+    ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings_get_SasSequence(This,psasSequence)        \
+    ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings_put_EncryptionEnabled(This,pencryptionEnabled)    \
+    ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings_get_EncryptionEnabled(This,pencryptionEnabled)    \
+    ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings_put_DedicatedTerminal(This,pdedicatedTerminal)    \
+    ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings_get_DedicatedTerminal(This,pdedicatedTerminal)    \
+    ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings_put_RDPPort(This,prdpPort)        \
+    ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings_get_RDPPort(This,prdpPort)        \
+    ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings_put_EnableMouse(This,penableMouse)        \
+    ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings_get_EnableMouse(This,penableMouse)        \
+    ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings_put_DisableCtrlAltDel(This,pdisableCtrlAltDel)    \
+    ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings_get_DisableCtrlAltDel(This,pdisableCtrlAltDel)    \
+    ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings_put_EnableWindowsKey(This,penableWindowsKey)      \
+    ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings_get_EnableWindowsKey(This,penableWindowsKey)      \
+    ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings_put_DoubleClickDetect(This,pdoubleClickDetect)    \
+    ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings_get_DoubleClickDetect(This,pdoubleClickDetect)    \
+    ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings_put_MaximizeShell(This,pmaximizeShell)    \
+    ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings_get_MaximizeShell(This,pmaximizeShell)    \
+    ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyFullScreen(This,photKeyFullScreen)      \
+    ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyFullScreen(This,photKeyFullScreen)      \
+    ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlEsc(This,photKeyCtrlEsc)    \
+    ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlEsc(This,photKeyCtrlEsc)    \
+    ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyAltEsc(This,photKeyAltEsc)      \
+    ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyAltEsc(This,photKeyAltEsc)      \
+    ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyAltTab(This,photKeyAltTab)      \
+    ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyAltTab(This,photKeyAltTab)      \
+    ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyAltShiftTab(This,photKeyAltShiftTab)    \
+    ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyAltShiftTab(This,photKeyAltShiftTab)    \
+    ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyAltSpace(This,photKeyAltSpace)  \
+    ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyAltSpace(This,photKeyAltSpace)  \
+    ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)      \
+    ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)      \
+    ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings_put_orderDrawThreshold(This,porderDrawThreshold)  \
+    ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings_get_orderDrawThreshold(This,porderDrawThreshold)  \
+    ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapCacheSize(This,pbitmapCacheSize)        \
+    ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapCacheSize(This,pbitmapCacheSize)        \
+    ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize)  \
+    ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize)  \
+    ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings_put_ScaleBitmapCachesByBPP(This,pbScale)  \
+    ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings_get_ScaleBitmapCachesByBPP(This,pbScale)  \
+    ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings_put_NumBitmapCaches(This,pnumBitmapCaches)        \
+    ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings_get_NumBitmapCaches(This,pnumBitmapCaches)        \
+    ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings_put_CachePersistenceActive(This,pcachePersistenceActive)  \
+    ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings_get_CachePersistenceActive(This,pcachePersistenceActive)  \
+    ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings_put_PersistCacheDirectory(This,rhs)       \
+    ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_brushSupportLevel(This,pbrushSupportLevel)    \
+    ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings_get_brushSupportLevel(This,pbrushSupportLevel)    \
+    ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings_put_minInputSendInterval(This,pminInputSendInterval)      \
+    ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings_get_minInputSendInterval(This,pminInputSendInterval)      \
+    ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings_put_InputEventsAtOnce(This,pinputEventsAtOnce)    \
+    ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings_get_InputEventsAtOnce(This,pinputEventsAtOnce)    \
+    ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings_put_maxEventCount(This,pmaxEventCount)    \
+    ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings_get_maxEventCount(This,pmaxEventCount)    \
+    ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings_put_keepAliveInterval(This,pkeepAliveInterval)    \
+    ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings_get_keepAliveInterval(This,pkeepAliveInterval)    \
+    ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings_put_shutdownTimeout(This,pshutdownTimeout)        \
+    ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings_get_shutdownTimeout(This,pshutdownTimeout)        \
+    ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings_put_overallConnectionTimeout(This,poverallConnectionTimeout)      \
+    ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings_get_overallConnectionTimeout(This,poverallConnectionTimeout)      \
+    ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings_put_singleConnectionTimeout(This,psingleConnectionTimeout)        \
+    ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings_get_singleConnectionTimeout(This,psingleConnectionTimeout)        \
+    ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings_put_KeyboardType(This,pkeyboardType)      \
+    ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings_get_KeyboardType(This,pkeyboardType)      \
+    ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings_put_KeyboardSubType(This,pkeyboardSubType)        \
+    ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings_get_KeyboardSubType(This,pkeyboardSubType)        \
+    ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings_put_KeyboardFunctionKey(This,pkeyboardFunctionKey)        \
+    ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings_get_KeyboardFunctionKey(This,pkeyboardFunctionKey)        \
+    ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings_put_WinceFixedPalette(This,pwinceFixedPalette)    \
+    ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings_get_WinceFixedPalette(This,pwinceFixedPalette)    \
+    ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings_put_ConnectToServerConsole(This,pConnectToConsole)        \
+    ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings_get_ConnectToServerConsole(This,pConnectToConsole)        \
+    ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapPersistence(This,pbitmapPersistence)    \
+    ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapPersistence(This,pbitmapPersistence)    \
+    ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout)      \
+    ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout)      \
+    ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings_put_SmartSizing(This,pfSmartSizing)       \
+    ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings_get_SmartSizing(This,pfSmartSizing)       \
+    ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \
+    ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) \
+    ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)      \
+    ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)      \
+    ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings_put_RdpdrClipPasteInfoString(This,clipPasteInfoString)    \
+    ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings_get_RdpdrClipPasteInfoString(This,clipPasteInfoString)    \
+    ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings_put_ClearTextPassword(This,rhs)   \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_DisplayConnectionBar(This,pDisplayConnectionBar)      \
+    ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings_get_DisplayConnectionBar(This,pDisplayConnectionBar)      \
+    ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings_put_PinConnectionBar(This,pPinConnectionBar)      \
+    ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings_get_PinConnectionBar(This,pPinConnectionBar)      \
+    ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \
+    ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) \
+    ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings_put_LoadBalanceInfo(This,pLBInfo) \
+    ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings_get_LoadBalanceInfo(This,pLBInfo) \
+    ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings_put_RedirectDrives(This,pRedirectDrives)  \
+    ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings_get_RedirectDrives(This,pRedirectDrives)  \
+    ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings_put_RedirectPrinters(This,pRedirectPrinters)      \
+    ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings_get_RedirectPrinters(This,pRedirectPrinters)      \
+    ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings_put_RedirectPorts(This,pRedirectPorts)    \
+    ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings_get_RedirectPorts(This,pRedirectPorts)    \
+    ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings_put_RedirectSmartCards(This,pRedirectSmartCards)  \
+    ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings_get_RedirectSmartCards(This,pRedirectSmartCards)  \
+    ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)        \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)        \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)        \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)        \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings_put_PerformanceFlags(This,pDisableList)   \
+    ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings_get_PerformanceFlags(This,pDisableList)   \
+    ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint(This,rhs) \
+    ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey(This,pfNotify)      \
+    ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) )
+
+#define IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey(This,pfNotify)      \
+    ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_get_RedirectSmartCards_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [in] */ long pBitmapVirtualCache16BppSize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache16BppSize_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [retval][out] */ long *pBitmapVirtualCache16BppSize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache16BppSize_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [in] */ long pBitmapVirtualCache24BppSize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_put_BitmapVirtualCache24BppSize_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [retval][out] */ long *pBitmapVirtualCache24BppSize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_get_BitmapVirtualCache24BppSize_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_PerformanceFlags_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [in] */ long pDisableList);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_put_PerformanceFlags_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_PerformanceFlags_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [retval][out] */ long *pDisableList);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_get_PerformanceFlags_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [in] */ VARIANT *rhs);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_put_ConnectWithEndpoint_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [in] */ VARIANT_BOOL pfNotify);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_put_NotifyTSPublicKey_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Proxy(
+    IMsRdpClientAdvancedSettings * This,
+    /* [retval][out] */ VARIANT_BOOL *pfNotify);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings_get_NotifyTSPublicKey_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IMsRdpClientAdvancedSettings_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__
+#define __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientAdvancedSettings2 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientAdvancedSettings2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("9AC42117-2B76-4320-AA44-0E616AB8437B")
+    IMsRdpClientAdvancedSettings2 : public IMsRdpClientAdvancedSettings
+    {
+    public:
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CanAutoReconnect(
+            /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_EnableAutoReconnect(
+            /* [in] */ VARIANT_BOOL pfEnableAutoReconnect) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_EnableAutoReconnect(
+            /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MaxReconnectAttempts(
+            /* [in] */ long pMaxReconnectAttempts) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MaxReconnectAttempts(
+            /* [retval][out] */ long *pMaxReconnectAttempts) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientAdvancedSettings2Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientAdvancedSettings2 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientAdvancedSettings2 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pcompress);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pcompress);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbitmapPeristence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbitmapPeristence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pallowBackgroundInput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pallowBackgroundInput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pContainerHandledFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pContainerHandledFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pDisableRdpdr);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pDisableRdpdr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long psmoothScroll);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *psmoothScroll);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pacceleratorPassthrough);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pacceleratorPassthrough);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pshadowBitmap);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pshadowBitmap);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long ptransportType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *ptransportType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long psasSequence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *psasSequence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pencryptionEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pencryptionEnabled);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pdedicatedTerminal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pdedicatedTerminal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long prdpPort);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *prdpPort);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long penableMouse);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *penableMouse);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pdisableCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pdisableCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long penableWindowsKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *penableWindowsKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pdoubleClickDetect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pdoubleClickDetect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pmaximizeShell);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pmaximizeShell);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyCtrlEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyCtrlEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyAltEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyAltEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyAltTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyAltTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyAltShiftTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyAltShiftTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyAltSpace);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyAltSpace);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long photKeyCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *photKeyCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long porderDrawThreshold);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *porderDrawThreshold);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbitmapCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbitmapCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbitmapVirtualCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbitmapVirtualCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbScale);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbScale);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pnumBitmapCaches);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pnumBitmapCaches);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pcachePersistenceActive);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pcachePersistenceActive);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbrushSupportLevel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbrushSupportLevel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pminInputSendInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pminInputSendInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pinputEventsAtOnce);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pinputEventsAtOnce);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pmaxEventCount);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pmaxEventCount);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pkeepAliveInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pkeepAliveInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pshutdownTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pshutdownTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long poverallConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *poverallConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long psingleConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *psingleConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pkeyboardType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pkeyboardType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pkeyboardSubType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pkeyboardSubType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pkeyboardFunctionKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pkeyboardFunctionKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pwinceFixedPalette);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pwinceFixedPalette);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pConnectToConsole);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pConnectToConsole);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pbitmapPersistence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pbitmapPersistence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pminutesToIdleTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pminutesToIdleTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pfSmartSizing);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfSmartSizing);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR pLocalPrintingDocName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ BSTR *pLocalPrintingDocName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR clipCleanTempDirString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ BSTR *clipCleanTempDirString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR clipPasteInfoString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ BSTR *clipPasteInfoString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pDisplayConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pPinConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ BSTR pLBInfo);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ BSTR *pLBInfo);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pRedirectDrives);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectDrives);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPrinters);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPorts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPorts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pRedirectSmartCards);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pBitmapVirtualCache16BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache16BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pBitmapVirtualCache24BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache24BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pDisableList);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pDisableList);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT *rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ VARIANT_BOOL pfEnableAutoReconnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [in] */ long pMaxReconnectAttempts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings2 * This,
+            /* [retval][out] */ long *pMaxReconnectAttempts);
+
+        END_INTERFACE
+    } IMsRdpClientAdvancedSettings2Vtbl;
+
+    interface IMsRdpClientAdvancedSettings2
+    {
+        CONST_VTBL struct IMsRdpClientAdvancedSettings2Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientAdvancedSettings2_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientAdvancedSettings2_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientAdvancedSettings2_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientAdvancedSettings2_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClientAdvancedSettings2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClientAdvancedSettings2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClientAdvancedSettings2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClientAdvancedSettings2_put_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> put_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings2_get_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> get_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings2_put_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings2_get_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings2_put_KeyBoardLayoutStr(This,rhs)  \
+    ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_PluginDlls(This,rhs) \
+    ( (This)->lpVtbl -> put_PluginDlls(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_IconFile(This,rhs)   \
+    ( (This)->lpVtbl -> put_IconFile(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_IconIndex(This,rhs)  \
+    ( (This)->lpVtbl -> put_IconIndex(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings2_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings2_put_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) )
+
+#define IMsRdpClientAdvancedSettings2_get_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) )
+
+
+#define IMsRdpClientAdvancedSettings2_put_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings2_get_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings2_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings2_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings2_put_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings2_get_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings2_put_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> put_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings2_get_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> get_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings2_put_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings2_get_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings2_put_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings2_get_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings2_put_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings2_get_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings2_put_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings2_get_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings2_put_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings2_get_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings2_put_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings2_get_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings2_put_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings2_get_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings2_put_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings2_get_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings2_put_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings2_get_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings2_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings2_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings2_put_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings2_get_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings2_put_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings2_get_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings2_put_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings2_get_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings2_put_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings2_get_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings2_put_PersistCacheDirectory(This,rhs)      \
+    ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings2_get_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings2_put_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings2_get_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings2_put_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings2_get_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings2_put_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings2_get_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings2_put_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings2_get_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings2_put_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_get_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_put_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_get_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_put_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_get_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_put_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings2_get_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings2_put_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings2_get_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings2_put_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings2_get_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings2_put_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings2_get_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings2_put_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings2_get_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings2_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings2_put_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings2_get_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings2_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings2_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings2_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings2_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings2_put_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings2_get_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings2_put_ClearTextPassword(This,rhs)  \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings2_get_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings2_put_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings2_get_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings2_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings2_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings2_put_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings2_get_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings2_put_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings2_get_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings2_put_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings2_get_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings2_put_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings2_get_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings2_put_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings2_get_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings2_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings2_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings2_put_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings2_get_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings2_put_ConnectWithEndpoint(This,rhs)        \
+    ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings2_put_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) )
+
+#define IMsRdpClientAdvancedSettings2_get_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) )
+
+
+#define IMsRdpClientAdvancedSettings2_get_CanAutoReconnect(This,pfCanAutoReconnect)    \
+    ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+#define IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Proxy(
+    IMsRdpClientAdvancedSettings2 * This,
+    /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings2_get_CanAutoReconnect_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Proxy(
+    IMsRdpClientAdvancedSettings2 * This,
+    /* [in] */ VARIANT_BOOL pfEnableAutoReconnect);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings2_put_EnableAutoReconnect_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Proxy(
+    IMsRdpClientAdvancedSettings2 * This,
+    /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings2_get_EnableAutoReconnect_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Proxy(
+    IMsRdpClientAdvancedSettings2 * This,
+    /* [in] */ long pMaxReconnectAttempts);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings2_put_MaxReconnectAttempts_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Proxy(
+    IMsRdpClientAdvancedSettings2 * This,
+    /* [retval][out] */ long *pMaxReconnectAttempts);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings2_get_MaxReconnectAttempts_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IMsRdpClientAdvancedSettings2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__
+#define __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientAdvancedSettings3 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientAdvancedSettings3;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("19CD856B-C542-4C53-ACEE-F127E3BE1A59")
+    IMsRdpClientAdvancedSettings3 : public IMsRdpClientAdvancedSettings2
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowMinimizeButton(
+            /* [in] */ VARIANT_BOOL pfShowMinimize) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowMinimizeButton(
+            /* [retval][out] */ VARIANT_BOOL *pfShowMinimize) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_ConnectionBarShowRestoreButton(
+            /* [in] */ VARIANT_BOOL pfShowRestore) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_ConnectionBarShowRestoreButton(
+            /* [retval][out] */ VARIANT_BOOL *pfShowRestore) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientAdvancedSettings3Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientAdvancedSettings3 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientAdvancedSettings3 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pcompress);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pcompress);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbitmapPeristence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbitmapPeristence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pallowBackgroundInput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pallowBackgroundInput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pContainerHandledFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pContainerHandledFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pDisableRdpdr);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pDisableRdpdr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long psmoothScroll);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *psmoothScroll);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pacceleratorPassthrough);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pacceleratorPassthrough);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pshadowBitmap);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pshadowBitmap);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long ptransportType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *ptransportType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long psasSequence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *psasSequence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pencryptionEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pencryptionEnabled);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pdedicatedTerminal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pdedicatedTerminal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long prdpPort);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *prdpPort);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long penableMouse);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *penableMouse);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pdisableCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pdisableCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long penableWindowsKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *penableWindowsKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pdoubleClickDetect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pdoubleClickDetect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pmaximizeShell);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pmaximizeShell);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyCtrlEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyCtrlEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyAltEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyAltEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyAltTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyAltTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyAltShiftTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyAltShiftTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyAltSpace);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyAltSpace);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long photKeyCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *photKeyCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long porderDrawThreshold);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *porderDrawThreshold);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbitmapCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbitmapCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbitmapVirtualCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbitmapVirtualCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbScale);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbScale);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pnumBitmapCaches);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pnumBitmapCaches);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pcachePersistenceActive);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pcachePersistenceActive);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbrushSupportLevel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbrushSupportLevel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pminInputSendInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pminInputSendInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pinputEventsAtOnce);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pinputEventsAtOnce);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pmaxEventCount);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pmaxEventCount);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pkeepAliveInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pkeepAliveInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pshutdownTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pshutdownTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long poverallConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *poverallConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long psingleConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *psingleConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pkeyboardType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pkeyboardType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pkeyboardSubType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pkeyboardSubType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pkeyboardFunctionKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pkeyboardFunctionKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pwinceFixedPalette);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pwinceFixedPalette);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pConnectToConsole);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pConnectToConsole);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pbitmapPersistence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pbitmapPersistence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pminutesToIdleTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pminutesToIdleTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfSmartSizing);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfSmartSizing);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR pLocalPrintingDocName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ BSTR *pLocalPrintingDocName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR clipCleanTempDirString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ BSTR *clipCleanTempDirString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR clipPasteInfoString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ BSTR *clipPasteInfoString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pDisplayConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pPinConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ BSTR pLBInfo);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ BSTR *pLBInfo);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pRedirectDrives);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectDrives);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPrinters);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPorts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPorts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pRedirectSmartCards);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pBitmapVirtualCache16BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache16BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pBitmapVirtualCache24BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache24BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pDisableList);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pDisableList);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT *rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfEnableAutoReconnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ long pMaxReconnectAttempts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ long *pMaxReconnectAttempts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfShowMinimize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfShowMinimize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [in] */ VARIANT_BOOL pfShowRestore);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )(
+            IMsRdpClientAdvancedSettings3 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfShowRestore);
+
+        END_INTERFACE
+    } IMsRdpClientAdvancedSettings3Vtbl;
+
+    interface IMsRdpClientAdvancedSettings3
+    {
+        CONST_VTBL struct IMsRdpClientAdvancedSettings3Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientAdvancedSettings3_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientAdvancedSettings3_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientAdvancedSettings3_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientAdvancedSettings3_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClientAdvancedSettings3_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClientAdvancedSettings3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClientAdvancedSettings3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClientAdvancedSettings3_put_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> put_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings3_get_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> get_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings3_put_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings3_get_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings3_put_KeyBoardLayoutStr(This,rhs)  \
+    ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_PluginDlls(This,rhs) \
+    ( (This)->lpVtbl -> put_PluginDlls(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_IconFile(This,rhs)   \
+    ( (This)->lpVtbl -> put_IconFile(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_IconIndex(This,rhs)  \
+    ( (This)->lpVtbl -> put_IconIndex(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings3_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings3_put_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) )
+
+#define IMsRdpClientAdvancedSettings3_get_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) )
+
+
+#define IMsRdpClientAdvancedSettings3_put_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings3_get_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings3_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings3_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings3_put_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings3_get_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings3_put_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> put_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings3_get_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> get_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings3_put_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings3_get_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings3_put_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings3_get_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings3_put_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings3_get_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings3_put_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings3_get_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings3_put_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings3_get_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings3_put_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings3_get_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings3_put_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings3_get_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings3_put_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings3_get_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings3_put_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings3_get_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings3_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings3_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings3_put_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings3_get_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings3_put_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings3_get_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings3_put_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings3_get_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings3_put_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings3_get_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings3_put_PersistCacheDirectory(This,rhs)      \
+    ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings3_get_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings3_put_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings3_get_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings3_put_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings3_get_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings3_put_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings3_get_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings3_put_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings3_get_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings3_put_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_get_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_put_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_get_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_put_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_get_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_put_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings3_get_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings3_put_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings3_get_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings3_put_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings3_get_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings3_put_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings3_get_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings3_put_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings3_get_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings3_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings3_put_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings3_get_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings3_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings3_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings3_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings3_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings3_put_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings3_get_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings3_put_ClearTextPassword(This,rhs)  \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings3_get_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings3_put_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings3_get_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings3_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings3_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings3_put_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings3_get_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings3_put_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings3_get_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings3_put_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings3_get_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings3_put_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings3_get_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings3_put_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings3_get_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings3_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings3_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings3_put_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings3_get_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings3_put_ConnectWithEndpoint(This,rhs)        \
+    ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings3_put_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) )
+
+#define IMsRdpClientAdvancedSettings3_get_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) )
+
+
+#define IMsRdpClientAdvancedSettings3_get_CanAutoReconnect(This,pfCanAutoReconnect)    \
+    ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings3_put_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings3_get_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings3_put_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+#define IMsRdpClientAdvancedSettings3_get_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+
+#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \
+    ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) )
+
+#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \
+    ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) )
+
+#define IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton(This,pfShowRestore)   \
+    ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) )
+
+#define IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton(This,pfShowRestore)   \
+    ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Proxy(
+    IMsRdpClientAdvancedSettings3 * This,
+    /* [in] */ VARIANT_BOOL pfShowMinimize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowMinimizeButton_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Proxy(
+    IMsRdpClientAdvancedSettings3 * This,
+    /* [retval][out] */ VARIANT_BOOL *pfShowMinimize);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowMinimizeButton_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Proxy(
+    IMsRdpClientAdvancedSettings3 * This,
+    /* [in] */ VARIANT_BOOL pfShowRestore);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings3_put_ConnectionBarShowRestoreButton_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Proxy(
+    IMsRdpClientAdvancedSettings3 * This,
+    /* [retval][out] */ VARIANT_BOOL *pfShowRestore);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings3_get_ConnectionBarShowRestoreButton_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IMsRdpClientAdvancedSettings3_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__
+#define __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientAdvancedSettings4 */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientAdvancedSettings4;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("FBA7F64E-7345-4405-AE50-FA4A763DC0DE")
+    IMsRdpClientAdvancedSettings4 : public IMsRdpClientAdvancedSettings3
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AuthenticationLevel(
+            /* [in] */ unsigned int puiAuthLevel) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AuthenticationLevel(
+            /* [retval][out] */ unsigned int *puiAuthLevel) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientAdvancedSettings4Vtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientAdvancedSettings4 * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientAdvancedSettings4 * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Compress )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pcompress);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Compress )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pcompress);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbitmapPeristence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPeristence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbitmapPeristence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pallowBackgroundInput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_allowBackgroundInput )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pallowBackgroundInput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyBoardLayoutStr )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PluginDlls )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconFile )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_IconIndex )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pContainerHandledFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ContainerHandledFullScreen )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pContainerHandledFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pDisableRdpdr);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableRdpdr )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pDisableRdpdr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmoothScroll )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long psmoothScroll);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmoothScroll )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *psmoothScroll);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pacceleratorPassthrough);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AcceleratorPassthrough )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pacceleratorPassthrough);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pshadowBitmap);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShadowBitmap )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pshadowBitmap);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_TransportType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long ptransportType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_TransportType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *ptransportType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SasSequence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long psasSequence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SasSequence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *psasSequence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pencryptionEnabled);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EncryptionEnabled )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pencryptionEnabled);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pdedicatedTerminal);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DedicatedTerminal )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pdedicatedTerminal);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RDPPort )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long prdpPort);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RDPPort )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *prdpPort);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableMouse )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long penableMouse);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableMouse )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *penableMouse);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pdisableCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisableCtrlAltDel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pdisableCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long penableWindowsKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableWindowsKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *penableWindowsKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pdoubleClickDetect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleClickDetect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pdoubleClickDetect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaximizeShell )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pmaximizeShell);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaximizeShell )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pmaximizeShell);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyFullScreen )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyCtrlEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlEsc )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyCtrlEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyAltEsc);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltEsc )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyAltEsc);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyAltTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltTab )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyAltTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyAltShiftTab);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltShiftTab )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyAltShiftTab);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyAltSpace);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyAltSpace )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyAltSpace);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long photKeyCtrlAltDel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HotKeyCtrlAltDel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *photKeyCtrlAltDel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long porderDrawThreshold);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_orderDrawThreshold )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *porderDrawThreshold);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbitmapCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbitmapCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbitmapVirtualCacheSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCacheSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbitmapVirtualCacheSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbScale);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ScaleBitmapCachesByBPP )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbScale);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pnumBitmapCaches);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NumBitmapCaches )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pnumBitmapCaches);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pcachePersistenceActive);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CachePersistenceActive )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pcachePersistenceActive);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PersistCacheDirectory )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbrushSupportLevel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_brushSupportLevel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbrushSupportLevel);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pminInputSendInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_minInputSendInterval )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pminInputSendInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pinputEventsAtOnce);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_InputEventsAtOnce )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pinputEventsAtOnce);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_maxEventCount )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pmaxEventCount);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_maxEventCount )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pmaxEventCount);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pkeepAliveInterval);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_keepAliveInterval )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pkeepAliveInterval);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pshutdownTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_shutdownTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pshutdownTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long poverallConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_overallConnectionTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *poverallConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long psingleConnectionTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_singleConnectionTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *psingleConnectionTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pkeyboardType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pkeyboardType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pkeyboardSubType);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardSubType )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pkeyboardSubType);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pkeyboardFunctionKey);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardFunctionKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pkeyboardFunctionKey);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pwinceFixedPalette);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WinceFixedPalette )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pwinceFixedPalette);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pConnectToConsole);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectToServerConsole )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pConnectToConsole);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pbitmapPersistence);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapPersistence )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pbitmapPersistence);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pminutesToIdleTimeout);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MinutesToIdleTimeout )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pminutesToIdleTimeout);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_SmartSizing )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfSmartSizing);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_SmartSizing )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfSmartSizing);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR pLocalPrintingDocName);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrLocalPrintingDocName )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ BSTR *pLocalPrintingDocName);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR clipCleanTempDirString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipCleanTempDirString )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ BSTR *clipCleanTempDirString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR clipPasteInfoString);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RdpdrClipPasteInfoString )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ BSTR *clipPasteInfoString);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ClearTextPassword )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pDisplayConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_DisplayConnectionBar )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pDisplayConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pPinConnectionBar);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PinConnectionBar )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pPinConnectionBar);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfGrabFocusOnConnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_GrabFocusOnConnect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfGrabFocusOnConnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ BSTR pLBInfo);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LoadBalanceInfo )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ BSTR *pLBInfo);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectDrives )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pRedirectDrives);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectDrives )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectDrives);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPrinters);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPrinters )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPrinters);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectPorts )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pRedirectPorts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectPorts )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectPorts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pRedirectSmartCards);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_RedirectSmartCards )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pRedirectSmartCards);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pBitmapVirtualCache16BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache16BppSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache16BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pBitmapVirtualCache24BppSize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapVirtualCache24BppSize )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pBitmapVirtualCache24BppSize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pDisableList);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_PerformanceFlags )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pDisableList);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectWithEndpoint )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT *rhs);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NotifyTSPublicKey )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfNotify);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CanAutoReconnect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfCanAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfEnableAutoReconnect);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_EnableAutoReconnect )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfEnableAutoReconnect);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ long pMaxReconnectAttempts);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MaxReconnectAttempts )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ long *pMaxReconnectAttempts);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowMinimizeButton )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfShowMinimize);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowMinimizeButton )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfShowMinimize);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ConnectionBarShowRestoreButton )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ VARIANT_BOOL pfShowRestore);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ConnectionBarShowRestoreButton )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ VARIANT_BOOL *pfShowRestore);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AuthenticationLevel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [in] */ unsigned int puiAuthLevel);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AuthenticationLevel )(
+            IMsRdpClientAdvancedSettings4 * This,
+            /* [retval][out] */ unsigned int *puiAuthLevel);
+
+        END_INTERFACE
+    } IMsRdpClientAdvancedSettings4Vtbl;
+
+    interface IMsRdpClientAdvancedSettings4
+    {
+        CONST_VTBL struct IMsRdpClientAdvancedSettings4Vtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientAdvancedSettings4_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientAdvancedSettings4_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientAdvancedSettings4_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientAdvancedSettings4_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClientAdvancedSettings4_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClientAdvancedSettings4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClientAdvancedSettings4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClientAdvancedSettings4_put_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> put_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings4_get_Compress(This,pcompress)     \
+    ( (This)->lpVtbl -> get_Compress(This,pcompress) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> put_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapPeristence(This,pbitmapPeristence)     \
+    ( (This)->lpVtbl -> get_BitmapPeristence(This,pbitmapPeristence) )
+
+#define IMsRdpClientAdvancedSettings4_put_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> put_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings4_get_allowBackgroundInput(This,pallowBackgroundInput)     \
+    ( (This)->lpVtbl -> get_allowBackgroundInput(This,pallowBackgroundInput) )
+
+#define IMsRdpClientAdvancedSettings4_put_KeyBoardLayoutStr(This,rhs)  \
+    ( (This)->lpVtbl -> put_KeyBoardLayoutStr(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_PluginDlls(This,rhs) \
+    ( (This)->lpVtbl -> put_PluginDlls(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_IconFile(This,rhs)   \
+    ( (This)->lpVtbl -> put_IconFile(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_IconIndex(This,rhs)  \
+    ( (This)->lpVtbl -> put_IconIndex(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> put_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings4_get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) \
+    ( (This)->lpVtbl -> get_ContainerHandledFullScreen(This,pContainerHandledFullScreen) )
+
+#define IMsRdpClientAdvancedSettings4_put_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> put_DisableRdpdr(This,pDisableRdpdr) )
+
+#define IMsRdpClientAdvancedSettings4_get_DisableRdpdr(This,pDisableRdpdr)     \
+    ( (This)->lpVtbl -> get_DisableRdpdr(This,pDisableRdpdr) )
+
+
+#define IMsRdpClientAdvancedSettings4_put_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> put_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings4_get_SmoothScroll(This,psmoothScroll)     \
+    ( (This)->lpVtbl -> get_SmoothScroll(This,psmoothScroll) )
+
+#define IMsRdpClientAdvancedSettings4_put_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> put_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings4_get_AcceleratorPassthrough(This,pacceleratorPassthrough) \
+    ( (This)->lpVtbl -> get_AcceleratorPassthrough(This,pacceleratorPassthrough) )
+
+#define IMsRdpClientAdvancedSettings4_put_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> put_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings4_get_ShadowBitmap(This,pshadowBitmap)     \
+    ( (This)->lpVtbl -> get_ShadowBitmap(This,pshadowBitmap) )
+
+#define IMsRdpClientAdvancedSettings4_put_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> put_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings4_get_TransportType(This,ptransportType)   \
+    ( (This)->lpVtbl -> get_TransportType(This,ptransportType) )
+
+#define IMsRdpClientAdvancedSettings4_put_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> put_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings4_get_SasSequence(This,psasSequence)       \
+    ( (This)->lpVtbl -> get_SasSequence(This,psasSequence) )
+
+#define IMsRdpClientAdvancedSettings4_put_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> put_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings4_get_EncryptionEnabled(This,pencryptionEnabled)   \
+    ( (This)->lpVtbl -> get_EncryptionEnabled(This,pencryptionEnabled) )
+
+#define IMsRdpClientAdvancedSettings4_put_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> put_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings4_get_DedicatedTerminal(This,pdedicatedTerminal)   \
+    ( (This)->lpVtbl -> get_DedicatedTerminal(This,pdedicatedTerminal) )
+
+#define IMsRdpClientAdvancedSettings4_put_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> put_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings4_get_RDPPort(This,prdpPort)       \
+    ( (This)->lpVtbl -> get_RDPPort(This,prdpPort) )
+
+#define IMsRdpClientAdvancedSettings4_put_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> put_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings4_get_EnableMouse(This,penableMouse)       \
+    ( (This)->lpVtbl -> get_EnableMouse(This,penableMouse) )
+
+#define IMsRdpClientAdvancedSettings4_put_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> put_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings4_get_DisableCtrlAltDel(This,pdisableCtrlAltDel)   \
+    ( (This)->lpVtbl -> get_DisableCtrlAltDel(This,pdisableCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings4_put_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> put_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings4_get_EnableWindowsKey(This,penableWindowsKey)     \
+    ( (This)->lpVtbl -> get_EnableWindowsKey(This,penableWindowsKey) )
+
+#define IMsRdpClientAdvancedSettings4_put_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> put_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings4_get_DoubleClickDetect(This,pdoubleClickDetect)   \
+    ( (This)->lpVtbl -> get_DoubleClickDetect(This,pdoubleClickDetect) )
+
+#define IMsRdpClientAdvancedSettings4_put_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> put_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings4_get_MaximizeShell(This,pmaximizeShell)   \
+    ( (This)->lpVtbl -> get_MaximizeShell(This,pmaximizeShell) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> put_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyFullScreen(This,photKeyFullScreen)     \
+    ( (This)->lpVtbl -> get_HotKeyFullScreen(This,photKeyFullScreen) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> put_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlEsc(This,photKeyCtrlEsc)   \
+    ( (This)->lpVtbl -> get_HotKeyCtrlEsc(This,photKeyCtrlEsc) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> put_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyAltEsc(This,photKeyAltEsc)     \
+    ( (This)->lpVtbl -> get_HotKeyAltEsc(This,photKeyAltEsc) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> put_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyAltTab(This,photKeyAltTab)     \
+    ( (This)->lpVtbl -> get_HotKeyAltTab(This,photKeyAltTab) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> put_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyAltShiftTab(This,photKeyAltShiftTab)   \
+    ( (This)->lpVtbl -> get_HotKeyAltShiftTab(This,photKeyAltShiftTab) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> put_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyAltSpace(This,photKeyAltSpace) \
+    ( (This)->lpVtbl -> get_HotKeyAltSpace(This,photKeyAltSpace) )
+
+#define IMsRdpClientAdvancedSettings4_put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> put_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings4_get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel)     \
+    ( (This)->lpVtbl -> get_HotKeyCtrlAltDel(This,photKeyCtrlAltDel) )
+
+#define IMsRdpClientAdvancedSettings4_put_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> put_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings4_get_orderDrawThreshold(This,porderDrawThreshold) \
+    ( (This)->lpVtbl -> get_orderDrawThreshold(This,porderDrawThreshold) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> put_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapCacheSize(This,pbitmapCacheSize)       \
+    ( (This)->lpVtbl -> get_BitmapCacheSize(This,pbitmapCacheSize) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> put_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) \
+    ( (This)->lpVtbl -> get_BitmapVirtualCacheSize(This,pbitmapVirtualCacheSize) )
+
+#define IMsRdpClientAdvancedSettings4_put_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> put_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings4_get_ScaleBitmapCachesByBPP(This,pbScale) \
+    ( (This)->lpVtbl -> get_ScaleBitmapCachesByBPP(This,pbScale) )
+
+#define IMsRdpClientAdvancedSettings4_put_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> put_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings4_get_NumBitmapCaches(This,pnumBitmapCaches)       \
+    ( (This)->lpVtbl -> get_NumBitmapCaches(This,pnumBitmapCaches) )
+
+#define IMsRdpClientAdvancedSettings4_put_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> put_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings4_get_CachePersistenceActive(This,pcachePersistenceActive) \
+    ( (This)->lpVtbl -> get_CachePersistenceActive(This,pcachePersistenceActive) )
+
+#define IMsRdpClientAdvancedSettings4_put_PersistCacheDirectory(This,rhs)      \
+    ( (This)->lpVtbl -> put_PersistCacheDirectory(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> put_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings4_get_brushSupportLevel(This,pbrushSupportLevel)   \
+    ( (This)->lpVtbl -> get_brushSupportLevel(This,pbrushSupportLevel) )
+
+#define IMsRdpClientAdvancedSettings4_put_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> put_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings4_get_minInputSendInterval(This,pminInputSendInterval)     \
+    ( (This)->lpVtbl -> get_minInputSendInterval(This,pminInputSendInterval) )
+
+#define IMsRdpClientAdvancedSettings4_put_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> put_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings4_get_InputEventsAtOnce(This,pinputEventsAtOnce)   \
+    ( (This)->lpVtbl -> get_InputEventsAtOnce(This,pinputEventsAtOnce) )
+
+#define IMsRdpClientAdvancedSettings4_put_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> put_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings4_get_maxEventCount(This,pmaxEventCount)   \
+    ( (This)->lpVtbl -> get_maxEventCount(This,pmaxEventCount) )
+
+#define IMsRdpClientAdvancedSettings4_put_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> put_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings4_get_keepAliveInterval(This,pkeepAliveInterval)   \
+    ( (This)->lpVtbl -> get_keepAliveInterval(This,pkeepAliveInterval) )
+
+#define IMsRdpClientAdvancedSettings4_put_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> put_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_get_shutdownTimeout(This,pshutdownTimeout)       \
+    ( (This)->lpVtbl -> get_shutdownTimeout(This,pshutdownTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_put_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> put_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_get_overallConnectionTimeout(This,poverallConnectionTimeout)     \
+    ( (This)->lpVtbl -> get_overallConnectionTimeout(This,poverallConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_put_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> put_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_get_singleConnectionTimeout(This,psingleConnectionTimeout)       \
+    ( (This)->lpVtbl -> get_singleConnectionTimeout(This,psingleConnectionTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_put_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> put_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings4_get_KeyboardType(This,pkeyboardType)     \
+    ( (This)->lpVtbl -> get_KeyboardType(This,pkeyboardType) )
+
+#define IMsRdpClientAdvancedSettings4_put_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> put_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings4_get_KeyboardSubType(This,pkeyboardSubType)       \
+    ( (This)->lpVtbl -> get_KeyboardSubType(This,pkeyboardSubType) )
+
+#define IMsRdpClientAdvancedSettings4_put_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> put_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings4_get_KeyboardFunctionKey(This,pkeyboardFunctionKey)       \
+    ( (This)->lpVtbl -> get_KeyboardFunctionKey(This,pkeyboardFunctionKey) )
+
+#define IMsRdpClientAdvancedSettings4_put_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> put_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings4_get_WinceFixedPalette(This,pwinceFixedPalette)   \
+    ( (This)->lpVtbl -> get_WinceFixedPalette(This,pwinceFixedPalette) )
+
+#define IMsRdpClientAdvancedSettings4_put_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> put_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings4_get_ConnectToServerConsole(This,pConnectToConsole)       \
+    ( (This)->lpVtbl -> get_ConnectToServerConsole(This,pConnectToConsole) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> put_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapPersistence(This,pbitmapPersistence)   \
+    ( (This)->lpVtbl -> get_BitmapPersistence(This,pbitmapPersistence) )
+
+#define IMsRdpClientAdvancedSettings4_put_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> put_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_get_MinutesToIdleTimeout(This,pminutesToIdleTimeout)     \
+    ( (This)->lpVtbl -> get_MinutesToIdleTimeout(This,pminutesToIdleTimeout) )
+
+#define IMsRdpClientAdvancedSettings4_put_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> put_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings4_get_SmartSizing(This,pfSmartSizing)      \
+    ( (This)->lpVtbl -> get_SmartSizing(This,pfSmartSizing) )
+
+#define IMsRdpClientAdvancedSettings4_put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> put_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings4_get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName)        \
+    ( (This)->lpVtbl -> get_RdpdrLocalPrintingDocName(This,pLocalPrintingDocName) )
+
+#define IMsRdpClientAdvancedSettings4_put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> put_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings4_get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString)     \
+    ( (This)->lpVtbl -> get_RdpdrClipCleanTempDirString(This,clipCleanTempDirString) )
+
+#define IMsRdpClientAdvancedSettings4_put_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> put_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings4_get_RdpdrClipPasteInfoString(This,clipPasteInfoString)   \
+    ( (This)->lpVtbl -> get_RdpdrClipPasteInfoString(This,clipPasteInfoString) )
+
+#define IMsRdpClientAdvancedSettings4_put_ClearTextPassword(This,rhs)  \
+    ( (This)->lpVtbl -> put_ClearTextPassword(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> put_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings4_get_DisplayConnectionBar(This,pDisplayConnectionBar)     \
+    ( (This)->lpVtbl -> get_DisplayConnectionBar(This,pDisplayConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings4_put_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> put_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings4_get_PinConnectionBar(This,pPinConnectionBar)     \
+    ( (This)->lpVtbl -> get_PinConnectionBar(This,pPinConnectionBar) )
+
+#define IMsRdpClientAdvancedSettings4_put_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> put_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings4_get_GrabFocusOnConnect(This,pfGrabFocusOnConnect)        \
+    ( (This)->lpVtbl -> get_GrabFocusOnConnect(This,pfGrabFocusOnConnect) )
+
+#define IMsRdpClientAdvancedSettings4_put_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> put_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings4_get_LoadBalanceInfo(This,pLBInfo)        \
+    ( (This)->lpVtbl -> get_LoadBalanceInfo(This,pLBInfo) )
+
+#define IMsRdpClientAdvancedSettings4_put_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> put_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings4_get_RedirectDrives(This,pRedirectDrives) \
+    ( (This)->lpVtbl -> get_RedirectDrives(This,pRedirectDrives) )
+
+#define IMsRdpClientAdvancedSettings4_put_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> put_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings4_get_RedirectPrinters(This,pRedirectPrinters)     \
+    ( (This)->lpVtbl -> get_RedirectPrinters(This,pRedirectPrinters) )
+
+#define IMsRdpClientAdvancedSettings4_put_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> put_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings4_get_RedirectPorts(This,pRedirectPorts)   \
+    ( (This)->lpVtbl -> get_RedirectPorts(This,pRedirectPorts) )
+
+#define IMsRdpClientAdvancedSettings4_put_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> put_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings4_get_RedirectSmartCards(This,pRedirectSmartCards) \
+    ( (This)->lpVtbl -> get_RedirectSmartCards(This,pRedirectSmartCards) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache16BppSize(This,pBitmapVirtualCache16BppSize) )
+
+#define IMsRdpClientAdvancedSettings4_put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> put_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings4_get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize)       \
+    ( (This)->lpVtbl -> get_BitmapVirtualCache24BppSize(This,pBitmapVirtualCache24BppSize) )
+
+#define IMsRdpClientAdvancedSettings4_put_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> put_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings4_get_PerformanceFlags(This,pDisableList)  \
+    ( (This)->lpVtbl -> get_PerformanceFlags(This,pDisableList) )
+
+#define IMsRdpClientAdvancedSettings4_put_ConnectWithEndpoint(This,rhs)        \
+    ( (This)->lpVtbl -> put_ConnectWithEndpoint(This,rhs) )
+
+#define IMsRdpClientAdvancedSettings4_put_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> put_NotifyTSPublicKey(This,pfNotify) )
+
+#define IMsRdpClientAdvancedSettings4_get_NotifyTSPublicKey(This,pfNotify)     \
+    ( (This)->lpVtbl -> get_NotifyTSPublicKey(This,pfNotify) )
+
+
+#define IMsRdpClientAdvancedSettings4_get_CanAutoReconnect(This,pfCanAutoReconnect)    \
+    ( (This)->lpVtbl -> get_CanAutoReconnect(This,pfCanAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings4_put_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> put_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings4_get_EnableAutoReconnect(This,pfEnableAutoReconnect)      \
+    ( (This)->lpVtbl -> get_EnableAutoReconnect(This,pfEnableAutoReconnect) )
+
+#define IMsRdpClientAdvancedSettings4_put_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> put_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+#define IMsRdpClientAdvancedSettings4_get_MaxReconnectAttempts(This,pMaxReconnectAttempts)     \
+    ( (This)->lpVtbl -> get_MaxReconnectAttempts(This,pMaxReconnectAttempts) )
+
+
+#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \
+    ( (This)->lpVtbl -> put_ConnectionBarShowMinimizeButton(This,pfShowMinimize) )
+
+#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) \
+    ( (This)->lpVtbl -> get_ConnectionBarShowMinimizeButton(This,pfShowMinimize) )
+
+#define IMsRdpClientAdvancedSettings4_put_ConnectionBarShowRestoreButton(This,pfShowRestore)   \
+    ( (This)->lpVtbl -> put_ConnectionBarShowRestoreButton(This,pfShowRestore) )
+
+#define IMsRdpClientAdvancedSettings4_get_ConnectionBarShowRestoreButton(This,pfShowRestore)   \
+    ( (This)->lpVtbl -> get_ConnectionBarShowRestoreButton(This,pfShowRestore) )
+
+
+#define IMsRdpClientAdvancedSettings4_put_AuthenticationLevel(This,puiAuthLevel)       \
+    ( (This)->lpVtbl -> put_AuthenticationLevel(This,puiAuthLevel) )
+
+#define IMsRdpClientAdvancedSettings4_get_AuthenticationLevel(This,puiAuthLevel)       \
+    ( (This)->lpVtbl -> get_AuthenticationLevel(This,puiAuthLevel) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+/* [propput][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Proxy(
+    IMsRdpClientAdvancedSettings4 * This,
+    /* [in] */ unsigned int puiAuthLevel);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings4_put_AuthenticationLevel_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+/* [propget][id] */ HRESULT STDMETHODCALLTYPE IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Proxy(
+    IMsRdpClientAdvancedSettings4 * This,
+    /* [retval][out] */ unsigned int *puiAuthLevel);
+
+
+void __RPC_STUB IMsRdpClientAdvancedSettings4_get_AuthenticationLevel_Stub(
+    IRpcStubBuffer *This,
+    IRpcChannelBuffer *_pRpcChannelBuffer,
+    PRPC_MESSAGE _pRpcMessage,
+    DWORD *_pdwStubPhase);
+
+
+
+#endif         /* __IMsRdpClientAdvancedSettings4_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsTscSecuredSettings_INTERFACE_DEFINED__
+#define __IMsTscSecuredSettings_INTERFACE_DEFINED__
+
+/* interface IMsTscSecuredSettings */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsTscSecuredSettings;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6")
+    IMsTscSecuredSettings : public IDispatch
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_StartProgram(
+            /* [in] */ BSTR pStartProgram) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_StartProgram(
+            /* [retval][out] */ BSTR *pStartProgram) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_WorkDir(
+            /* [in] */ BSTR pWorkDir) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_WorkDir(
+            /* [retval][out] */ BSTR *pWorkDir) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_FullScreen(
+            /* [in] */ long pfFullScreen) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_FullScreen(
+            /* [retval][out] */ long *pfFullScreen) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscSecuredSettingsVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscSecuredSettings * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscSecuredSettings * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsTscSecuredSettings * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ BSTR pStartProgram);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )(
+            IMsTscSecuredSettings * This,
+            /* [retval][out] */ BSTR *pStartProgram);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ BSTR pWorkDir);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )(
+            IMsTscSecuredSettings * This,
+            /* [retval][out] */ BSTR *pWorkDir);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsTscSecuredSettings * This,
+            /* [in] */ long pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsTscSecuredSettings * This,
+            /* [retval][out] */ long *pfFullScreen);
+
+        END_INTERFACE
+    } IMsTscSecuredSettingsVtbl;
+
+    interface IMsTscSecuredSettings
+    {
+        CONST_VTBL struct IMsTscSecuredSettingsVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscSecuredSettings_QueryInterface(This,riid,ppvObject)      \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscSecuredSettings_AddRef(This)     \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscSecuredSettings_Release(This)    \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscSecuredSettings_GetTypeInfoCount(This,pctinfo)   \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsTscSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)    \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsTscSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)  \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsTscSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)    \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsTscSecuredSettings_put_StartProgram(This,pStartProgram)     \
+    ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) )
+
+#define IMsTscSecuredSettings_get_StartProgram(This,pStartProgram)     \
+    ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) )
+
+#define IMsTscSecuredSettings_put_WorkDir(This,pWorkDir)       \
+    ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) )
+
+#define IMsTscSecuredSettings_get_WorkDir(This,pWorkDir)       \
+    ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) )
+
+#define IMsTscSecuredSettings_put_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsTscSecuredSettings_get_FullScreen(This,pfFullScreen)        \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsTscSecuredSettings_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__
+#define __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__
+
+/* interface IMsRdpClientSecuredSettings */
+/* [object][oleautomation][dual][uuid] */
+
+
+EXTERN_C const IID IID_IMsRdpClientSecuredSettings;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("605BEFCF-39C1-45CC-A811-068FB7BE346D")
+    IMsRdpClientSecuredSettings : public IMsTscSecuredSettings
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_KeyboardHookMode(
+            /* [in] */ long pkeyboardHookMode) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_KeyboardHookMode(
+            /* [retval][out] */ long *pkeyboardHookMode) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_AudioRedirectionMode(
+            /* [in] */ long pAudioRedirectionMode) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_AudioRedirectionMode(
+            /* [retval][out] */ long *pAudioRedirectionMode) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsRdpClientSecuredSettingsVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsRdpClientSecuredSettings * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsRdpClientSecuredSettings * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsRdpClientSecuredSettings * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_StartProgram )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ BSTR pStartProgram);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_StartProgram )(
+            IMsRdpClientSecuredSettings * This,
+            /* [retval][out] */ BSTR *pStartProgram);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_WorkDir )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ BSTR pWorkDir);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_WorkDir )(
+            IMsRdpClientSecuredSettings * This,
+            /* [retval][out] */ BSTR *pWorkDir);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_FullScreen )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ long pfFullScreen);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_FullScreen )(
+            IMsRdpClientSecuredSettings * This,
+            /* [retval][out] */ long *pfFullScreen);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_KeyboardHookMode )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ long pkeyboardHookMode);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardHookMode )(
+            IMsRdpClientSecuredSettings * This,
+            /* [retval][out] */ long *pkeyboardHookMode);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_AudioRedirectionMode )(
+            IMsRdpClientSecuredSettings * This,
+            /* [in] */ long pAudioRedirectionMode);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_AudioRedirectionMode )(
+            IMsRdpClientSecuredSettings * This,
+            /* [retval][out] */ long *pAudioRedirectionMode);
+
+        END_INTERFACE
+    } IMsRdpClientSecuredSettingsVtbl;
+
+    interface IMsRdpClientSecuredSettings
+    {
+        CONST_VTBL struct IMsRdpClientSecuredSettingsVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsRdpClientSecuredSettings_QueryInterface(This,riid,ppvObject)        \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsRdpClientSecuredSettings_AddRef(This)       \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsRdpClientSecuredSettings_Release(This)      \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsRdpClientSecuredSettings_GetTypeInfoCount(This,pctinfo)     \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsRdpClientSecuredSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsRdpClientSecuredSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsRdpClientSecuredSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsRdpClientSecuredSettings_put_StartProgram(This,pStartProgram)       \
+    ( (This)->lpVtbl -> put_StartProgram(This,pStartProgram) )
+
+#define IMsRdpClientSecuredSettings_get_StartProgram(This,pStartProgram)       \
+    ( (This)->lpVtbl -> get_StartProgram(This,pStartProgram) )
+
+#define IMsRdpClientSecuredSettings_put_WorkDir(This,pWorkDir) \
+    ( (This)->lpVtbl -> put_WorkDir(This,pWorkDir) )
+
+#define IMsRdpClientSecuredSettings_get_WorkDir(This,pWorkDir) \
+    ( (This)->lpVtbl -> get_WorkDir(This,pWorkDir) )
+
+#define IMsRdpClientSecuredSettings_put_FullScreen(This,pfFullScreen)  \
+    ( (This)->lpVtbl -> put_FullScreen(This,pfFullScreen) )
+
+#define IMsRdpClientSecuredSettings_get_FullScreen(This,pfFullScreen)  \
+    ( (This)->lpVtbl -> get_FullScreen(This,pfFullScreen) )
+
+
+#define IMsRdpClientSecuredSettings_put_KeyboardHookMode(This,pkeyboardHookMode)       \
+    ( (This)->lpVtbl -> put_KeyboardHookMode(This,pkeyboardHookMode) )
+
+#define IMsRdpClientSecuredSettings_get_KeyboardHookMode(This,pkeyboardHookMode)       \
+    ( (This)->lpVtbl -> get_KeyboardHookMode(This,pkeyboardHookMode) )
+
+#define IMsRdpClientSecuredSettings_put_AudioRedirectionMode(This,pAudioRedirectionMode)       \
+    ( (This)->lpVtbl -> put_AudioRedirectionMode(This,pAudioRedirectionMode) )
+
+#define IMsRdpClientSecuredSettings_get_AudioRedirectionMode(This,pAudioRedirectionMode)       \
+    ( (This)->lpVtbl -> get_AudioRedirectionMode(This,pAudioRedirectionMode) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsRdpClientSecuredSettings_INTERFACE_DEFINED__ */
+
+
+#ifndef __IMsTscDebug_INTERFACE_DEFINED__
+#define __IMsTscDebug_INTERFACE_DEFINED__
+
+/* interface IMsTscDebug */
+/* [object][oleautomation][dual][hidden][uuid] */
+
+
+EXTERN_C const IID IID_IMsTscDebug;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+    MIDL_INTERFACE("209D0EB9-6254-47B1-9033-A98DAE55BB27")
+    IMsTscDebug : public IDispatch
+    {
+    public:
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchBitmapPDU(
+            /* [in] */ long phatchBitmapPDU) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchBitmapPDU(
+            /* [retval][out] */ long *phatchBitmapPDU) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchSSBOrder(
+            /* [in] */ long phatchSSBOrder) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchSSBOrder(
+            /* [retval][out] */ long *phatchSSBOrder) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchMembltOrder(
+            /* [in] */ long phatchMembltOrder) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchMembltOrder(
+            /* [retval][out] */ long *phatchMembltOrder) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_HatchIndexPDU(
+            /* [in] */ long phatchIndexPDU) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_HatchIndexPDU(
+            /* [retval][out] */ long *phatchIndexPDU) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_LabelMemblt(
+            /* [in] */ long plabelMemblt) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_LabelMemblt(
+            /* [retval][out] */ long *plabelMemblt) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_BitmapCacheMonitor(
+            /* [in] */ long pbitmapCacheMonitor) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_BitmapCacheMonitor(
+            /* [retval][out] */ long *pbitmapCacheMonitor) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocFailuresPercent(
+            /* [in] */ long pmallocFailuresPercent) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocFailuresPercent(
+            /* [retval][out] */ long *pmallocFailuresPercent) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_MallocHugeFailuresPercent(
+            /* [in] */ long pmallocHugeFailuresPercent) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_MallocHugeFailuresPercent(
+            /* [retval][out] */ long *pmallocHugeFailuresPercent) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_NetThroughput(
+            /* [in] */ long NetThroughput) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_NetThroughput(
+            /* [retval][out] */ long *NetThroughput) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXCmdLine(
+            /* [in] */ BSTR pCLXCmdLine) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXCmdLine(
+            /* [retval][out] */ BSTR *pCLXCmdLine) = 0;
+
+        virtual /* [propput][id] */ HRESULT STDMETHODCALLTYPE put_CLXDll(
+            /* [in] */ BSTR pCLXDll) = 0;
+
+        virtual /* [propget][id] */ HRESULT STDMETHODCALLTYPE get_CLXDll(
+            /* [retval][out] */ BSTR *pCLXDll) = 0;
+
+    };
+
+#else  /* C style interface */
+
+    typedef struct IMsTscDebugVtbl
+    {
+        BEGIN_INTERFACE
+
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+            IMsTscDebug * This,
+            /* [in] */ REFIID riid,
+            /* [iid_is][out] */
+            __RPC__deref_out  void **ppvObject);
+
+        ULONG ( STDMETHODCALLTYPE *AddRef )(
+            IMsTscDebug * This);
+
+        ULONG ( STDMETHODCALLTYPE *Release )(
+            IMsTscDebug * This);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+            IMsTscDebug * This,
+            /* [out] */ UINT *pctinfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+            IMsTscDebug * This,
+            /* [in] */ UINT iTInfo,
+            /* [in] */ LCID lcid,
+            /* [out] */ ITypeInfo **ppTInfo);
+
+        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+            IMsTscDebug * This,
+            /* [in] */ REFIID riid,
+            /* [size_is][in] */ LPOLESTR *rgszNames,
+            /* [range][in] */ UINT cNames,
+            /* [in] */ LCID lcid,
+            /* [size_is][out] */ DISPID *rgDispId);
+
+        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+            IMsTscDebug * This,
+            /* [in] */ DISPID dispIdMember,
+            /* [in] */ REFIID riid,
+            /* [in] */ LCID lcid,
+            /* [in] */ WORD wFlags,
+            /* [out][in] */ DISPPARAMS *pDispParams,
+            /* [out] */ VARIANT *pVarResult,
+            /* [out] */ EXCEPINFO *pExcepInfo,
+            /* [out] */ UINT *puArgErr);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchBitmapPDU )(
+            IMsTscDebug * This,
+            /* [in] */ long phatchBitmapPDU);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchBitmapPDU )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *phatchBitmapPDU);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchSSBOrder )(
+            IMsTscDebug * This,
+            /* [in] */ long phatchSSBOrder);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchSSBOrder )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *phatchSSBOrder);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchMembltOrder )(
+            IMsTscDebug * This,
+            /* [in] */ long phatchMembltOrder);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchMembltOrder )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *phatchMembltOrder);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_HatchIndexPDU )(
+            IMsTscDebug * This,
+            /* [in] */ long phatchIndexPDU);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HatchIndexPDU )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *phatchIndexPDU);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_LabelMemblt )(
+            IMsTscDebug * This,
+            /* [in] */ long plabelMemblt);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_LabelMemblt )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *plabelMemblt);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_BitmapCacheMonitor )(
+            IMsTscDebug * This,
+            /* [in] */ long pbitmapCacheMonitor);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_BitmapCacheMonitor )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *pbitmapCacheMonitor);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocFailuresPercent )(
+            IMsTscDebug * This,
+            /* [in] */ long pmallocFailuresPercent);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocFailuresPercent )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *pmallocFailuresPercent);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_MallocHugeFailuresPercent )(
+            IMsTscDebug * This,
+            /* [in] */ long pmallocHugeFailuresPercent);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_MallocHugeFailuresPercent )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *pmallocHugeFailuresPercent);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_NetThroughput )(
+            IMsTscDebug * This,
+            /* [in] */ long NetThroughput);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_NetThroughput )(
+            IMsTscDebug * This,
+            /* [retval][out] */ long *NetThroughput);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXCmdLine )(
+            IMsTscDebug * This,
+            /* [in] */ BSTR pCLXCmdLine);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXCmdLine )(
+            IMsTscDebug * This,
+            /* [retval][out] */ BSTR *pCLXCmdLine);
+
+        /* [propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_CLXDll )(
+            IMsTscDebug * This,
+            /* [in] */ BSTR pCLXDll);
+
+        /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_CLXDll )(
+            IMsTscDebug * This,
+            /* [retval][out] */ BSTR *pCLXDll);
+
+        END_INTERFACE
+    } IMsTscDebugVtbl;
+
+    interface IMsTscDebug
+    {
+        CONST_VTBL struct IMsTscDebugVtbl *lpVtbl;
+    };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IMsTscDebug_QueryInterface(This,riid,ppvObject)        \
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IMsTscDebug_AddRef(This)       \
+    ( (This)->lpVtbl -> AddRef(This) )
+
+#define IMsTscDebug_Release(This)      \
+    ( (This)->lpVtbl -> Release(This) )
+
+
+#define IMsTscDebug_GetTypeInfoCount(This,pctinfo)     \
+    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IMsTscDebug_GetTypeInfo(This,iTInfo,lcid,ppTInfo)      \
+    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IMsTscDebug_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)    \
+    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IMsTscDebug_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)      \
+    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IMsTscDebug_put_HatchBitmapPDU(This,phatchBitmapPDU)   \
+    ( (This)->lpVtbl -> put_HatchBitmapPDU(This,phatchBitmapPDU) )
+
+#define IMsTscDebug_get_HatchBitmapPDU(This,phatchBitmapPDU)   \
+    ( (This)->lpVtbl -> get_HatchBitmapPDU(This,phatchBitmapPDU) )
+
+#define IMsTscDebug_put_HatchSSBOrder(This,phatchSSBOrder)     \
+    ( (This)->lpVtbl -> put_HatchSSBOrder(This,phatchSSBOrder) )
+
+#define IMsTscDebug_get_HatchSSBOrder(This,phatchSSBOrder)     \
+    ( (This)->lpVtbl -> get_HatchSSBOrder(This,phatchSSBOrder) )
+
+#define IMsTscDebug_put_HatchMembltOrder(This,phatchMembltOrder)       \
+    ( (This)->lpVtbl -> put_HatchMembltOrder(This,phatchMembltOrder) )
+
+#define IMsTscDebug_get_HatchMembltOrder(This,phatchMembltOrder)       \
+    ( (This)->lpVtbl -> get_HatchMembltOrder(This,phatchMembltOrder) )
+
+#define IMsTscDebug_put_HatchIndexPDU(This,phatchIndexPDU)     \
+    ( (This)->lpVtbl -> put_HatchIndexPDU(This,phatchIndexPDU) )
+
+#define IMsTscDebug_get_HatchIndexPDU(This,phatchIndexPDU)     \
+    ( (This)->lpVtbl -> get_HatchIndexPDU(This,phatchIndexPDU) )
+
+#define IMsTscDebug_put_LabelMemblt(This,plabelMemblt) \
+    ( (This)->lpVtbl -> put_LabelMemblt(This,plabelMemblt) )
+
+#define IMsTscDebug_get_LabelMemblt(This,plabelMemblt) \
+    ( (This)->lpVtbl -> get_LabelMemblt(This,plabelMemblt) )
+
+#define IMsTscDebug_put_BitmapCacheMonitor(This,pbitmapCacheMonitor)   \
+    ( (This)->lpVtbl -> put_BitmapCacheMonitor(This,pbitmapCacheMonitor) )
+
+#define IMsTscDebug_get_BitmapCacheMonitor(This,pbitmapCacheMonitor)   \
+    ( (This)->lpVtbl -> get_BitmapCacheMonitor(This,pbitmapCacheMonitor) )
+
+#define IMsTscDebug_put_MallocFailuresPercent(This,pmallocFailuresPercent)     \
+    ( (This)->lpVtbl -> put_MallocFailuresPercent(This,pmallocFailuresPercent) )
+
+#define IMsTscDebug_get_MallocFailuresPercent(This,pmallocFailuresPercent)     \
+    ( (This)->lpVtbl -> get_MallocFailuresPercent(This,pmallocFailuresPercent) )
+
+#define IMsTscDebug_put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent)     \
+    ( (This)->lpVtbl -> put_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) )
+
+#define IMsTscDebug_get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent)     \
+    ( (This)->lpVtbl -> get_MallocHugeFailuresPercent(This,pmallocHugeFailuresPercent) )
+
+#define IMsTscDebug_put_NetThroughput(This,NetThroughput)      \
+    ( (This)->lpVtbl -> put_NetThroughput(This,NetThroughput) )
+
+#define IMsTscDebug_get_NetThroughput(This,NetThroughput)      \
+    ( (This)->lpVtbl -> get_NetThroughput(This,NetThroughput) )
+
+#define IMsTscDebug_put_CLXCmdLine(This,pCLXCmdLine)   \
+    ( (This)->lpVtbl -> put_CLXCmdLine(This,pCLXCmdLine) )
+
+#define IMsTscDebug_get_CLXCmdLine(This,pCLXCmdLine)   \
+    ( (This)->lpVtbl -> get_CLXCmdLine(This,pCLXCmdLine) )
+
+#define IMsTscDebug_put_CLXDll(This,pCLXDll)   \
+    ( (This)->lpVtbl -> put_CLXDll(This,pCLXDll) )
+
+#define IMsTscDebug_get_CLXDll(This,pCLXDll)   \
+    ( (This)->lpVtbl -> get_CLXDll(This,pCLXDll) )
+
+#endif /* COBJMACROS */
+
+
+#endif         /* C style interface */
+
+
+
+
+#endif         /* __IMsTscDebug_INTERFACE_DEFINED__ */
+
+
+EXTERN_C const CLSID CLSID_MsTscAx;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("A41A4187-5A86-4E26-B40A-856F9035D9CB")
+MsTscAx;
+#endif
+
+EXTERN_C const CLSID CLSID_MsRdpClient;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("7CACBD7B-0D99-468F-AC33-22E495C0AFE5")
+MsRdpClient;
+#endif
+
+EXTERN_C const CLSID CLSID_MsRdpClient2;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("3523C2FB-4031-44E4-9A3B-F1E94986EE7F")
+MsRdpClient2;
+#endif
+
+EXTERN_C const CLSID CLSID_MsRdpClient3;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("ACE575FD-1FCF-4074-9401-EBAB990FA9DE")
+MsRdpClient3;
+#endif
+
+EXTERN_C const CLSID CLSID_MsRdpClient4;
+
+#ifdef __cplusplus
+
+class DECLSPEC_UUID("6AE29350-321B-42BE-BBE5-12FB5270C0DE")
+MsRdpClient4;
+#endif
+#endif /* __MSTSCLib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+