include/tsvirtualchannels: Generate header from IDL

Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/tsvirtualchannels.h b/mingw-w64-headers/include/tsvirtualchannels.h
new file mode 100644
index 0000000..c8ced97
--- /dev/null
+++ b/mingw-w64-headers/include/tsvirtualchannels.h
@@ -0,0 +1,1060 @@
+/*** Autogenerated by WIDL 6.4 from include/tsvirtualchannels.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __tsvirtualchannels_h__
+#define __tsvirtualchannels_h__
+
+/* Forward declarations */
+
+#ifndef __IWTSPlugin_FWD_DEFINED__
+#define __IWTSPlugin_FWD_DEFINED__
+typedef interface IWTSPlugin IWTSPlugin;
+#ifdef __cplusplus
+interface IWTSPlugin;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListener_FWD_DEFINED__
+#define __IWTSListener_FWD_DEFINED__
+typedef interface IWTSListener IWTSListener;
+#ifdef __cplusplus
+interface IWTSListener;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListenerCallback_FWD_DEFINED__
+#define __IWTSListenerCallback_FWD_DEFINED__
+typedef interface IWTSListenerCallback IWTSListenerCallback;
+#ifdef __cplusplus
+interface IWTSListenerCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__
+#define __IWTSVirtualChannelCallback_FWD_DEFINED__
+typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback;
+#ifdef __cplusplus
+interface IWTSVirtualChannelCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__
+#define __IWTSVirtualChannelManager_FWD_DEFINED__
+typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager;
+#ifdef __cplusplus
+interface IWTSVirtualChannelManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannel_FWD_DEFINED__
+#define __IWTSVirtualChannel_FWD_DEFINED__
+typedef interface IWTSVirtualChannel IWTSVirtualChannel;
+#ifdef __cplusplus
+interface IWTSVirtualChannel;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSPluginServiceProvider_FWD_DEFINED__
+#define __IWTSPluginServiceProvider_FWD_DEFINED__
+typedef interface IWTSPluginServiceProvider IWTSPluginServiceProvider;
+#ifdef __cplusplus
+interface IWTSPluginServiceProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRenderer_FWD_DEFINED__
+#define __IWTSBitmapRenderer_FWD_DEFINED__
+typedef interface IWTSBitmapRenderer IWTSBitmapRenderer;
+#ifdef __cplusplus
+interface IWTSBitmapRenderer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRendererCallback_FWD_DEFINED__
+#define __IWTSBitmapRendererCallback_FWD_DEFINED__
+typedef interface IWTSBitmapRendererCallback IWTSBitmapRendererCallback;
+#ifdef __cplusplus
+interface IWTSBitmapRendererCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSBitmapRenderService_FWD_DEFINED__
+#define __IWTSBitmapRenderService_FWD_DEFINED__
+typedef interface IWTSBitmapRenderService IWTSBitmapRenderService;
+#ifdef __cplusplus
+interface IWTSBitmapRenderService;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <oaidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __IWTSPlugin_FWD_DEFINED__
+#define __IWTSPlugin_FWD_DEFINED__
+typedef interface IWTSPlugin IWTSPlugin;
+#ifdef __cplusplus
+interface IWTSPlugin;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListener_FWD_DEFINED__
+#define __IWTSListener_FWD_DEFINED__
+typedef interface IWTSListener IWTSListener;
+#ifdef __cplusplus
+interface IWTSListener;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSListenerCallback_FWD_DEFINED__
+#define __IWTSListenerCallback_FWD_DEFINED__
+typedef interface IWTSListenerCallback IWTSListenerCallback;
+#ifdef __cplusplus
+interface IWTSListenerCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelCallback_FWD_DEFINED__
+#define __IWTSVirtualChannelCallback_FWD_DEFINED__
+typedef interface IWTSVirtualChannelCallback IWTSVirtualChannelCallback;
+#ifdef __cplusplus
+interface IWTSVirtualChannelCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannelManager_FWD_DEFINED__
+#define __IWTSVirtualChannelManager_FWD_DEFINED__
+typedef interface IWTSVirtualChannelManager IWTSVirtualChannelManager;
+#ifdef __cplusplus
+interface IWTSVirtualChannelManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWTSVirtualChannel_FWD_DEFINED__
+#define __IWTSVirtualChannel_FWD_DEFINED__
+typedef interface IWTSVirtualChannel IWTSVirtualChannel;
+#ifdef __cplusplus
+interface IWTSVirtualChannel;
+#endif /* __cplusplus */
+#endif
+
+#define WTS_PROPERTY_DEFAULT_CONFIG L"DefaultConfig"
+#define E_MAPPEDRENDERER_SHUTDOWN HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+#define E_DUPLICATE_WINDOW_HINT HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
+/*****************************************************************************
+ * IWTSPlugin interface
+ */
+#ifndef __IWTSPlugin_INTERFACE_DEFINED__
+#define __IWTSPlugin_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230201-1439-4e62-a414-190d0ac3d40e")
+IWTSPlugin : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        IWTSVirtualChannelManager *pChannelMgr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Connected(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Disconnected(
+        DWORD dwDisconnectCode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Terminated(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSPlugin, 0xa1230201, 0x1439, 0x4e62, 0xa4,0x14, 0x19,0x0d,0x0a,0xc3,0xd4,0x0e)
+#endif
+#else
+typedef struct IWTSPluginVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSPlugin *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSPlugin *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSPlugin *This);
+
+    /*** IWTSPlugin methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IWTSPlugin *This,
+        IWTSVirtualChannelManager *pChannelMgr);
+
+    HRESULT (STDMETHODCALLTYPE *Connected)(
+        IWTSPlugin *This);
+
+    HRESULT (STDMETHODCALLTYPE *Disconnected)(
+        IWTSPlugin *This,
+        DWORD dwDisconnectCode);
+
+    HRESULT (STDMETHODCALLTYPE *Terminated)(
+        IWTSPlugin *This);
+
+    END_INTERFACE
+} IWTSPluginVtbl;
+
+interface IWTSPlugin {
+    CONST_VTBL IWTSPluginVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSPlugin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSPlugin_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSPlugin_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSPlugin methods ***/
+#define IWTSPlugin_Initialize(This,pChannelMgr) (This)->lpVtbl->Initialize(This,pChannelMgr)
+#define IWTSPlugin_Connected(This) (This)->lpVtbl->Connected(This)
+#define IWTSPlugin_Disconnected(This,dwDisconnectCode) (This)->lpVtbl->Disconnected(This,dwDisconnectCode)
+#define IWTSPlugin_Terminated(This) (This)->lpVtbl->Terminated(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSPlugin_QueryInterface(IWTSPlugin* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSPlugin_AddRef(IWTSPlugin* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSPlugin_Release(IWTSPlugin* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSPlugin methods ***/
+static FORCEINLINE HRESULT IWTSPlugin_Initialize(IWTSPlugin* This,IWTSVirtualChannelManager *pChannelMgr) {
+    return This->lpVtbl->Initialize(This,pChannelMgr);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Connected(IWTSPlugin* This) {
+    return This->lpVtbl->Connected(This);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Disconnected(IWTSPlugin* This,DWORD dwDisconnectCode) {
+    return This->lpVtbl->Disconnected(This,dwDisconnectCode);
+}
+static FORCEINLINE HRESULT IWTSPlugin_Terminated(IWTSPlugin* This) {
+    return This->lpVtbl->Terminated(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSPlugin_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSListener interface
+ */
+#ifndef __IWTSListener_INTERFACE_DEFINED__
+#define __IWTSListener_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230206-9a39-4d58-8674-cdb4dff4e73b")
+IWTSListener : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetConfiguration(
+        IPropertyBag **ppPropertyBag) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSListener, 0xa1230206, 0x9a39, 0x4d58, 0x86,0x74, 0xcd,0xb4,0xdf,0xf4,0xe7,0x3b)
+#endif
+#else
+typedef struct IWTSListenerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSListener *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSListener *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSListener *This);
+
+    /*** IWTSListener methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetConfiguration)(
+        IWTSListener *This,
+        IPropertyBag **ppPropertyBag);
+
+    END_INTERFACE
+} IWTSListenerVtbl;
+
+interface IWTSListener {
+    CONST_VTBL IWTSListenerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSListener_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSListener_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSListener methods ***/
+#define IWTSListener_GetConfiguration(This,ppPropertyBag) (This)->lpVtbl->GetConfiguration(This,ppPropertyBag)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSListener_QueryInterface(IWTSListener* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSListener_AddRef(IWTSListener* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSListener_Release(IWTSListener* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSListener methods ***/
+static FORCEINLINE HRESULT IWTSListener_GetConfiguration(IWTSListener* This,IPropertyBag **ppPropertyBag) {
+    return This->lpVtbl->GetConfiguration(This,ppPropertyBag);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSListener_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSListenerCallback interface
+ */
+#ifndef __IWTSListenerCallback_INTERFACE_DEFINED__
+#define __IWTSListenerCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230203-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSListenerCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnNewChannelConnection(
+        IWTSVirtualChannel *pChannel,
+        BSTR data,
+        WINBOOL *pbAccept,
+        IWTSVirtualChannelCallback **ppCallback) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSListenerCallback, 0xa1230203, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSListenerCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSListenerCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSListenerCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSListenerCallback *This);
+
+    /*** IWTSListenerCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnNewChannelConnection)(
+        IWTSListenerCallback *This,
+        IWTSVirtualChannel *pChannel,
+        BSTR data,
+        WINBOOL *pbAccept,
+        IWTSVirtualChannelCallback **ppCallback);
+
+    END_INTERFACE
+} IWTSListenerCallbackVtbl;
+
+interface IWTSListenerCallback {
+    CONST_VTBL IWTSListenerCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSListenerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSListenerCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSListenerCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSListenerCallback methods ***/
+#define IWTSListenerCallback_OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback) (This)->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSListenerCallback_QueryInterface(IWTSListenerCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSListenerCallback_AddRef(IWTSListenerCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSListenerCallback_Release(IWTSListenerCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSListenerCallback methods ***/
+static FORCEINLINE HRESULT IWTSListenerCallback_OnNewChannelConnection(IWTSListenerCallback* This,IWTSVirtualChannel *pChannel,BSTR data,WINBOOL *pbAccept,IWTSVirtualChannelCallback **ppCallback) {
+    return This->lpVtbl->OnNewChannelConnection(This,pChannel,data,pbAccept,ppCallback);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSListenerCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSVirtualChannelCallback interface
+ */
+#ifndef __IWTSVirtualChannelCallback_INTERFACE_DEFINED__
+#define __IWTSVirtualChannelCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230204-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannelCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnDataReceived(
+        ULONG cbSize,
+        BYTE *pBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnClose(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannelCallback, 0xa1230204, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSVirtualChannelCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSVirtualChannelCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSVirtualChannelCallback *This);
+
+    /*** IWTSVirtualChannelCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnDataReceived)(
+        IWTSVirtualChannelCallback *This,
+        ULONG cbSize,
+        BYTE *pBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *OnClose)(
+        IWTSVirtualChannelCallback *This);
+
+    END_INTERFACE
+} IWTSVirtualChannelCallbackVtbl;
+
+interface IWTSVirtualChannelCallback {
+    CONST_VTBL IWTSVirtualChannelCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannelCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannelCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannelCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannelCallback methods ***/
+#define IWTSVirtualChannelCallback_OnDataReceived(This,cbSize,pBuffer) (This)->lpVtbl->OnDataReceived(This,cbSize,pBuffer)
+#define IWTSVirtualChannelCallback_OnClose(This) (This)->lpVtbl->OnClose(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_QueryInterface(IWTSVirtualChannelCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelCallback_AddRef(IWTSVirtualChannelCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelCallback_Release(IWTSVirtualChannelCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannelCallback methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnDataReceived(IWTSVirtualChannelCallback* This,ULONG cbSize,BYTE *pBuffer) {
+    return This->lpVtbl->OnDataReceived(This,cbSize,pBuffer);
+}
+static FORCEINLINE HRESULT IWTSVirtualChannelCallback_OnClose(IWTSVirtualChannelCallback* This) {
+    return This->lpVtbl->OnClose(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSVirtualChannelCallback_INTERFACE_DEFINED__ */
+
+#define TS_VC_LISTENER_STATIC_CHANNEL 0x00000001
+/*****************************************************************************
+ * IWTSVirtualChannelManager interface
+ */
+#ifndef __IWTSVirtualChannelManager_INTERFACE_DEFINED__
+#define __IWTSVirtualChannelManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230205-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannelManager : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateListener(
+        const char *pszChannelName,
+        ULONG uFlags,
+        IWTSListenerCallback *pListenerCallback,
+        IWTSListener **ppListener) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannelManager, 0xa1230205, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSVirtualChannelManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSVirtualChannelManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSVirtualChannelManager *This);
+
+    /*** IWTSVirtualChannelManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateListener)(
+        IWTSVirtualChannelManager *This,
+        const char *pszChannelName,
+        ULONG uFlags,
+        IWTSListenerCallback *pListenerCallback,
+        IWTSListener **ppListener);
+
+    END_INTERFACE
+} IWTSVirtualChannelManagerVtbl;
+
+interface IWTSVirtualChannelManager {
+    CONST_VTBL IWTSVirtualChannelManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannelManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannelManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannelManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannelManager methods ***/
+#define IWTSVirtualChannelManager_CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener) (This)->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelManager_QueryInterface(IWTSVirtualChannelManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelManager_AddRef(IWTSVirtualChannelManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannelManager_Release(IWTSVirtualChannelManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannelManager methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannelManager_CreateListener(IWTSVirtualChannelManager* This,const char *pszChannelName,ULONG uFlags,IWTSListenerCallback *pListenerCallback,IWTSListener **ppListener) {
+    return This->lpVtbl->CreateListener(This,pszChannelName,uFlags,pListenerCallback,ppListener);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSVirtualChannelManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSVirtualChannel interface
+ */
+#ifndef __IWTSVirtualChannel_INTERFACE_DEFINED__
+#define __IWTSVirtualChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a1230207-d6a7-11d8-b9fd-000bdbd1f198")
+IWTSVirtualChannel : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Write(
+        ULONG cbSize,
+        BYTE *pBuffer,
+        IUnknown *pReserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSVirtualChannel, 0xa1230207, 0xd6a7, 0x11d8, 0xb9,0xfd, 0x00,0x0b,0xdb,0xd1,0xf1,0x98)
+#endif
+#else
+typedef struct IWTSVirtualChannelVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSVirtualChannel *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSVirtualChannel *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSVirtualChannel *This);
+
+    /*** IWTSVirtualChannel methods ***/
+    HRESULT (STDMETHODCALLTYPE *Write)(
+        IWTSVirtualChannel *This,
+        ULONG cbSize,
+        BYTE *pBuffer,
+        IUnknown *pReserved);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IWTSVirtualChannel *This);
+
+    END_INTERFACE
+} IWTSVirtualChannelVtbl;
+
+interface IWTSVirtualChannel {
+    CONST_VTBL IWTSVirtualChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSVirtualChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSVirtualChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSVirtualChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSVirtualChannel methods ***/
+#define IWTSVirtualChannel_Write(This,cbSize,pBuffer,pReserved) (This)->lpVtbl->Write(This,cbSize,pBuffer,pReserved)
+#define IWTSVirtualChannel_Close(This) (This)->lpVtbl->Close(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannel_QueryInterface(IWTSVirtualChannel* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSVirtualChannel_AddRef(IWTSVirtualChannel* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSVirtualChannel_Release(IWTSVirtualChannel* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSVirtualChannel methods ***/
+static FORCEINLINE HRESULT IWTSVirtualChannel_Write(IWTSVirtualChannel* This,ULONG cbSize,BYTE *pBuffer,IUnknown *pReserved) {
+    return This->lpVtbl->Write(This,cbSize,pBuffer,pReserved);
+}
+static FORCEINLINE HRESULT IWTSVirtualChannel_Close(IWTSVirtualChannel* This) {
+    return This->lpVtbl->Close(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSVirtualChannel_INTERFACE_DEFINED__ */
+
+EXTERN_GUID( RDCLIENT_BITMAP_RENDER_SERVICE, 0xe4cc08cb, 0x942e, 0x4b19, 0x85, 0x4, 0xbd, 0x5a, 0x89, 0xa7, 0x47, 0xf5);
+/*****************************************************************************
+ * IWTSPluginServiceProvider interface
+ */
+#ifndef __IWTSPluginServiceProvider_INTERFACE_DEFINED__
+#define __IWTSPluginServiceProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d3e07363-087c-476c-86a7-dbb15f46ddb4")
+IWTSPluginServiceProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetService(
+        GUID ServiceId,
+        IUnknown **ppunkObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSPluginServiceProvider, 0xd3e07363, 0x087c, 0x476c, 0x86,0xa7, 0xdb,0xb1,0x5f,0x46,0xdd,0xb4)
+#endif
+#else
+typedef struct IWTSPluginServiceProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSPluginServiceProvider *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSPluginServiceProvider *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSPluginServiceProvider *This);
+
+    /*** IWTSPluginServiceProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        IWTSPluginServiceProvider *This,
+        GUID ServiceId,
+        IUnknown **ppunkObject);
+
+    END_INTERFACE
+} IWTSPluginServiceProviderVtbl;
+
+interface IWTSPluginServiceProvider {
+    CONST_VTBL IWTSPluginServiceProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSPluginServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSPluginServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSPluginServiceProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSPluginServiceProvider methods ***/
+#define IWTSPluginServiceProvider_GetService(This,ServiceId,ppunkObject) (This)->lpVtbl->GetService(This,ServiceId,ppunkObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSPluginServiceProvider_QueryInterface(IWTSPluginServiceProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSPluginServiceProvider_AddRef(IWTSPluginServiceProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSPluginServiceProvider_Release(IWTSPluginServiceProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSPluginServiceProvider methods ***/
+static FORCEINLINE HRESULT IWTSPluginServiceProvider_GetService(IWTSPluginServiceProvider* This,GUID ServiceId,IUnknown **ppunkObject) {
+    return This->lpVtbl->GetService(This,ServiceId,ppunkObject);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSPluginServiceProvider_INTERFACE_DEFINED__ */
+
+typedef struct __BITMAP_RENDERER_STATISTICS {
+    DWORD dwFramesDelivered;
+    DWORD dwFramesDropped;
+} BITMAP_RENDERER_STATISTICS;
+typedef struct __BITMAP_RENDERER_STATISTICS *PBITMAP_RENDERER_STATISTICS;
+/*****************************************************************************
+ * IWTSBitmapRenderer interface
+ */
+#ifndef __IWTSBitmapRenderer_INTERFACE_DEFINED__
+#define __IWTSBitmapRenderer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5b7acc97-f3c9-46f7-8c5b-fa685d3441b1")
+IWTSBitmapRenderer : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Render(
+        GUID imageFormat,
+        DWORD dwWidth,
+        DWORD dwHeight,
+        LONG cbStride,
+        DWORD cbImageBuffer,
+        BYTE *pImageBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRendererStatistics(
+        BITMAP_RENDERER_STATISTICS *pStatistics) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveMapping(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRenderer, 0x5b7acc97, 0xf3c9, 0x46f7, 0x8c,0x5b, 0xfa,0x68,0x5d,0x34,0x41,0xb1)
+#endif
+#else
+typedef struct IWTSBitmapRendererVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSBitmapRenderer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSBitmapRenderer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSBitmapRenderer *This);
+
+    /*** IWTSBitmapRenderer methods ***/
+    HRESULT (STDMETHODCALLTYPE *Render)(
+        IWTSBitmapRenderer *This,
+        GUID imageFormat,
+        DWORD dwWidth,
+        DWORD dwHeight,
+        LONG cbStride,
+        DWORD cbImageBuffer,
+        BYTE *pImageBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *GetRendererStatistics)(
+        IWTSBitmapRenderer *This,
+        BITMAP_RENDERER_STATISTICS *pStatistics);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveMapping)(
+        IWTSBitmapRenderer *This);
+
+    END_INTERFACE
+} IWTSBitmapRendererVtbl;
+
+interface IWTSBitmapRenderer {
+    CONST_VTBL IWTSBitmapRendererVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRenderer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRenderer_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRenderer methods ***/
+#define IWTSBitmapRenderer_Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer) (This)->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer)
+#define IWTSBitmapRenderer_GetRendererStatistics(This,pStatistics) (This)->lpVtbl->GetRendererStatistics(This,pStatistics)
+#define IWTSBitmapRenderer_RemoveMapping(This) (This)->lpVtbl->RemoveMapping(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderer_QueryInterface(IWTSBitmapRenderer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderer_AddRef(IWTSBitmapRenderer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderer_Release(IWTSBitmapRenderer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRenderer methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderer_Render(IWTSBitmapRenderer* This,GUID imageFormat,DWORD dwWidth,DWORD dwHeight,LONG cbStride,DWORD cbImageBuffer,BYTE *pImageBuffer) {
+    return This->lpVtbl->Render(This,imageFormat,dwWidth,dwHeight,cbStride,cbImageBuffer,pImageBuffer);
+}
+static FORCEINLINE HRESULT IWTSBitmapRenderer_GetRendererStatistics(IWTSBitmapRenderer* This,BITMAP_RENDERER_STATISTICS *pStatistics) {
+    return This->lpVtbl->GetRendererStatistics(This,pStatistics);
+}
+static FORCEINLINE HRESULT IWTSBitmapRenderer_RemoveMapping(IWTSBitmapRenderer* This) {
+    return This->lpVtbl->RemoveMapping(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSBitmapRenderer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSBitmapRendererCallback interface
+ */
+#ifndef __IWTSBitmapRendererCallback_INTERFACE_DEFINED__
+#define __IWTSBitmapRendererCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d782928e-fe4e-4e77-ae90-9cd0b3e3b353")
+IWTSBitmapRendererCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnTargetSizeChanged(
+        RECT rcNewSize) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRendererCallback, 0xd782928e, 0xfe4e, 0x4e77, 0xae,0x90, 0x9c,0xd0,0xb3,0xe3,0xb3,0x53)
+#endif
+#else
+typedef struct IWTSBitmapRendererCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSBitmapRendererCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSBitmapRendererCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSBitmapRendererCallback *This);
+
+    /*** IWTSBitmapRendererCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnTargetSizeChanged)(
+        IWTSBitmapRendererCallback *This,
+        RECT rcNewSize);
+
+    END_INTERFACE
+} IWTSBitmapRendererCallbackVtbl;
+
+interface IWTSBitmapRendererCallback {
+    CONST_VTBL IWTSBitmapRendererCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRendererCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRendererCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRendererCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRendererCallback methods ***/
+#define IWTSBitmapRendererCallback_OnTargetSizeChanged(This,rcNewSize) (This)->lpVtbl->OnTargetSizeChanged(This,rcNewSize)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRendererCallback_QueryInterface(IWTSBitmapRendererCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRendererCallback_AddRef(IWTSBitmapRendererCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRendererCallback_Release(IWTSBitmapRendererCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRendererCallback methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRendererCallback_OnTargetSizeChanged(IWTSBitmapRendererCallback* This,RECT rcNewSize) {
+    return This->lpVtbl->OnTargetSizeChanged(This,rcNewSize);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSBitmapRendererCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWTSBitmapRenderService interface
+ */
+#ifndef __IWTSBitmapRenderService_INTERFACE_DEFINED__
+#define __IWTSBitmapRenderService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea326091-05fe-40c1-b49c-3d2ef4626a0e")
+IWTSBitmapRenderService : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetMappedRenderer(
+        UINT64 mappingId,
+        IWTSBitmapRendererCallback *pMappedRendererCallback,
+        IWTSBitmapRenderer **ppMappedRenderer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWTSBitmapRenderService, 0xea326091, 0x05fe, 0x40c1, 0xb4,0x9c, 0x3d,0x2e,0xf4,0x62,0x6a,0x0e)
+#endif
+#else
+typedef struct IWTSBitmapRenderServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWTSBitmapRenderService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWTSBitmapRenderService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWTSBitmapRenderService *This);
+
+    /*** IWTSBitmapRenderService methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetMappedRenderer)(
+        IWTSBitmapRenderService *This,
+        UINT64 mappingId,
+        IWTSBitmapRendererCallback *pMappedRendererCallback,
+        IWTSBitmapRenderer **ppMappedRenderer);
+
+    END_INTERFACE
+} IWTSBitmapRenderServiceVtbl;
+
+interface IWTSBitmapRenderService {
+    CONST_VTBL IWTSBitmapRenderServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWTSBitmapRenderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWTSBitmapRenderService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWTSBitmapRenderService_Release(This) (This)->lpVtbl->Release(This)
+/*** IWTSBitmapRenderService methods ***/
+#define IWTSBitmapRenderService_GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer) (This)->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderService_QueryInterface(IWTSBitmapRenderService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderService_AddRef(IWTSBitmapRenderService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWTSBitmapRenderService_Release(IWTSBitmapRenderService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWTSBitmapRenderService methods ***/
+static FORCEINLINE HRESULT IWTSBitmapRenderService_GetMappedRenderer(IWTSBitmapRenderService* This,UINT64 mappingId,IWTSBitmapRendererCallback *pMappedRendererCallback,IWTSBitmapRenderer **ppMappedRenderer) {
+    return This->lpVtbl->GetMappedRenderer(This,mappingId,pMappedRendererCallback,ppMappedRenderer);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWTSBitmapRenderService_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __tsvirtualchannels_h__ */