windows-nt/Source/XPSP1/NT/public/internal/termsrv/inc/rdchost.idl
2020-09-26 16:20:57 +08:00

363 lines
14 KiB
Plaintext

/*++
Copyright (c) 1999-2000 Microsoft Corporation
Module Name:
RDCHOST.IDL
Abstract:
Remote Desktopping Client-Side IDL for Core Remote Desktopping Interfaces
and Classes
Author:
Tad Brockway 02/00
Revision History:
--*/
import "oaidl.idl";
import "ocidl.idl";
import "rdschan.idl";
import "rderror.idl";
#include "olectl.h"
/**
** IDataChannelIO
**
** Non-Public Data Channel IO Interface
**/
[
object,
uuid(43A09182-0472-436E-9883-2D95C347C5F1),
helpstring("IDataChannelIO Interface"),
pointer_default(unique)
]
interface IDataChannelIO : IUnknown
{
[helpstring("method SendData")] HRESULT SendData([in]BSTR data);
[propput, helpstring("property ChannelMgr")] HRESULT ChannelMgr(
[in] ISAFRemoteDesktopChannelMgr *newVal
);
};
/**
** ISAFRemoteDesktopClient Interface
**/
cpp_quote("")
cpp_quote("#define DISPID_RDSCLIENT_CHANNELMANAGER 1")
cpp_quote("#define DISPID_RDSCLIENT_CONNECTPARMS 2")
cpp_quote("#define DISPID_RDSCLIENT_CONNECTTOSERVER 3")
cpp_quote("#define DISPID_RDSCLIENT_CONNECTREMOTEDESKTOP 4")
cpp_quote("#define DISPID_RDSCLIENT_DISCONNECTREMOTEDESKTOP 5")
cpp_quote("#define DISPID_RDSCLIENT_ISREMOTEDESKTOPCONNECTED 6")
cpp_quote("#define DISPID_RDSCLIENT_ISSERVERCONNECTED 7")
cpp_quote("#define DISPID_RDSCLIENT_DISCONNECTFROMSERVER 8")
cpp_quote("#define DISPID_RDSCLIENT_ONCONNECTED 9")
cpp_quote("#define DISPID_RDSCLIENT_ONDISCONNECTED 10")
cpp_quote("#define DISPID_RDSCLIENT_ONCONNECTREMOTEDESKTOPCOMPLETE 11")
cpp_quote("#define DISPID_RDSCLIENT_EXTENDEDERRORINFO 12")
cpp_quote("#define DISPID_RDSCLIENT_ENABLESMARTSIZING 13")
cpp_quote("#define DISPID_RDSCLIENT_CONNECTEDSERVER 14")
cpp_quote("#define DISPID_RDSCLIENT_CONNECTEDPORT 15")
cpp_quote("#define DISPID_RDSCLIENT_CREATELISTENENDPOINT 16")
cpp_quote("#define DISPID_RDSCLIENT_STARTLISTEN 17")
cpp_quote("#define DISPID_RDSCLIENT_ACCEPTCONNECTION 18")
cpp_quote("#define DISPID_RDSCLIENT_STOPLISTEN 19")
cpp_quote("#define DISPID_RDSCLIENT_ONLISTENCONNECT 20")
cpp_quote("#define DISPID_RDSCLIENT_COLORDEPTH 21")
cpp_quote("#define DISPID_RDSCLIENT_ONBEGINCONNECT 22")
cpp_quote("")
#define DISPID_RDSCLIENT_CHANNELMANAGER 1
#define DISPID_RDSCLIENT_CONNECTPARMS 2
#define DISPID_RDSCLIENT_CONNECTTOSERVER 3
#define DISPID_RDSCLIENT_CONNECTREMOTEDESKTOP 4
#define DISPID_RDSCLIENT_DISCONNECTREMOTEDESKTOP 5
#define DISPID_RDSCLIENT_ISREMOTEDESKTOPCONNECTED 6
#define DISPID_RDSCLIENT_ISSERVERCONNECTED 7
#define DISPID_RDSCLIENT_DISCONNECTFROMSERVER 8
#define DISPID_RDSCLIENT_ONCONNECTED 9
#define DISPID_RDSCLIENT_ONDISCONNECTED 10
#define DISPID_RDSCLIENT_ONCONNECTREMOTEDESKTOPCOMPLETE 11
#define DISPID_RDSCLIENT_EXTENDEDERRORINFO 12
#define DISPID_RDSCLIENT_ENABLESMARTSIZING 13
#define DISPID_RDSCLIENT_CONNECTEDSERVER 14
#define DISPID_RDSCLIENT_CONNECTEDPORT 15
#define DISPID_RDSCLIENT_CREATELISTENENDPOINT 16
#define DISPID_RDSCLIENT_STARTLISTEN 17
#define DISPID_RDSCLIENT_ACCEPTCONNECTION 18
#define DISPID_RDSCLIENT_STOPLISTEN 19
#define DISPID_RDSCLIENT_ONLISTENCONNECT 20
#define DISPID_RDSCLIENT_COLORDEPTH 21
#define DISPID_RDSCLIENT_ONBEGINCONNECT 22
[
object,
uuid(8AA5F108-2918-435C-88AA-DE0AFEE51440),
dual,
helpstring("ISAFRemoteDesktopClient Interface"),
pointer_default(unique)
]
interface ISAFRemoteDesktopClient : IDispatch
{
[propget, id(DISPID_RDSCLIENT_CHANNELMANAGER), helpstring("ChannelManager")]
HRESULT ChannelManager([out, retval]ISAFRemoteDesktopChannelMgr **mgr);
[propput, id(DISPID_RDSCLIENT_CONNECTPARMS), helpstring("ConnectParms")]
HRESULT ConnectParms([in]BSTR parms);
[propget, id(DISPID_RDSCLIENT_CONNECTPARMS), helpstring("ConnectParms")]
HRESULT ConnectParms([out, retval]BSTR *parms);
[id(DISPID_RDSCLIENT_CONNECTTOSERVER), helpstring("method ConnectToServer")]
HRESULT ConnectToServer([in] BSTR expertBlob);
[id(DISPID_RDSCLIENT_CONNECTREMOTEDESKTOP), helpstring("method ConnectRemoteDesktop")]
HRESULT ConnectRemoteDesktop();
[id(DISPID_RDSCLIENT_DISCONNECTREMOTEDESKTOP), helpstring("method DisconnectRemoteDesktop")]
HRESULT DisconnectRemoteDesktop();
[propget, id(DISPID_RDSCLIENT_ISREMOTEDESKTOPCONNECTED), helpstring("property IsRemoteDesktopConnected")]
HRESULT IsRemoteDesktopConnected([out, retval] BOOL *pVal);
[propget, id(DISPID_RDSCLIENT_ISSERVERCONNECTED), helpstring("property IsServerConnected")]
HRESULT IsServerConnected([out, retval] BOOL *pVal);
[id(DISPID_RDSCLIENT_DISCONNECTFROMSERVER), helpstring("method DisconnectFromServer")]
HRESULT DisconnectFromServer();
[propput, id(DISPID_RDSCLIENT_ONCONNECTED), helpstring("OnConnected")]
HRESULT OnConnected([in] IDispatch *iDisp);
[propput, id(DISPID_RDSCLIENT_ONDISCONNECTED), helpstring("OnDisconnected")]
HRESULT OnDisconnected([in] IDispatch *iDisp);
[propput, id(DISPID_RDSCLIENT_ONCONNECTREMOTEDESKTOPCOMPLETE), helpstring("OnConnectRemoteDesktopComplete")]
HRESULT OnConnectRemoteDesktopComplete([in] IDispatch *iDisp);
[propget, id(DISPID_RDSCLIENT_EXTENDEDERRORINFO), helpstring("ExtendedErrorInfo")]
HRESULT ExtendedErrorInfo([out, retval]LONG *error);
[propput, id(DISPID_RDSCLIENT_ENABLESMARTSIZING), helpstring("EnableSmartSizing")]
HRESULT EnableSmartSizing([in] BOOL val);
[propget, id(DISPID_RDSCLIENT_ENABLESMARTSIZING), helpstring("EnableSmartSizing")]
HRESULT EnableSmartSizing([out, retval]BOOL *val);
[propget, id(DISPID_RDSCLIENT_CONNECTEDSERVER), helpstring("ConnectedServer")]
HRESULT ConnectedServer([out, retval]BSTR *val);
[propget, id(DISPID_RDSCLIENT_CONNECTEDPORT), helpstring("ConnectedPort")]
HRESULT ConnectedPort([out, retval]LONG *val);
// Create a listening endpoint and return connect parm
[id(DISPID_RDSCLIENT_CREATELISTENENDPOINT), helpstring("CreateListenEndpoint")]
HRESULT CreateListenEndpoint([in] LONG port, [out, retval] BSTR* pConnectParm);
// Wait for incoming connection ISAFRemoteDesktopServerHost
[id(DISPID_RDSCLIENT_STARTLISTEN), helpstring("StartListen")]
HRESULT StartListen([in] LONG timeout);
[id(DISPID_RDSCLIENT_ACCEPTCONNECTION), helpstring("AcceptListenConnection")]
HRESULT AcceptListenConnection([in]BSTR expertBlob);
// no event is fired.
[id(DISPID_RDSCLIENT_STOPLISTEN), helpstring("StopListen")]
HRESULT StopListen();
[propput, id(DISPID_RDSCLIENT_ONLISTENCONNECT), helpstring("OnListenConnect")]
HRESULT OnListenConnect([in] IDispatch *iDisp);
//set and get the colordepths
[propput, id(DISPID_RDSCLIENT_COLORDEPTH), helpstring("ColorDepth")]
HRESULT ColorDepth([in] LONG val);
[propget, id(DISPID_RDSCLIENT_COLORDEPTH), helpstring("ColorDepth")]
HRESULT ColorDepth([out, retval] LONG* val);
[propput, id(DISPID_RDSCLIENT_ONBEGINCONNECT), helpstring("OnBeginConnect")]
HRESULT OnBeginConnect([in] IDispatch *iDisp);
};
[
object,
uuid(69DE5BF3-5EB9-4158-81DA-6FD662BBDDDD),
dual,
helpstring("ISAFRemoteDesktopClientHost Interface"),
pointer_default(unique)
]
interface ISAFRemoteDesktopClientHost : IDispatch
{
[id(1), helpstring("method GetRemoteDesktopClient")]
HRESULT GetRemoteDesktopClient([out, retval] ISAFRemoteDesktopClient **client);
};
[
object,
uuid(5C7A32EF-1C77-4F35-8FBA-729DD2DE7222),
dual,
helpstring("ISAFRemoteDesktopTestExtension Interface"),
pointer_default(unique)
]
interface ISAFRemoteDesktopTestExtension : IDispatch
{
[propput, id(1), helpstring("property TestExtDllName")] HRESULT TestExtDllName([in] BSTR newVal);
[propput, id(2), helpstring("property TestExtParams")] HRESULT TestExtParams([in] BSTR newVal);
};
/**
** RDSClientHost Type Lib
**/
cpp_quote("")
cpp_quote("#define DISPID_RDSCLIENTEVENTS_CONNECTED 2")
cpp_quote("#define DISPID_RDSCLIENTEVENTS_DISCONNECTED 3")
cpp_quote("#define DISPID_RDSCLIENTEVENTS_REMOTECONTROLREQUESTCOMPLETE 4")
cpp_quote("#define DISPID_DATACHANNELEVEVENTS_DATAREADY 1")
cpp_quote("#define DISPID_RDSCLIENTEVENTS_LISTENCONNECT 5")
cpp_quote("#define DISPID_RDSCLIENTEVENTS_BEGINCONNECT 6")
cpp_quote("")
#define DISPID_RDSCLIENTEVENTS_CONNECTED 2
#define DISPID_RDSCLIENTEVENTS_DISCONNECTED 3
#define DISPID_RDSCLIENTEVENTS_REMOTECONTROLREQUESTCOMPLETE 4
#define DISPID_DATACHANNELEVEVENTS_DATAREADY 1
#define DISPID_RDSCLIENTEVENTS_LISTENCONNECT 5
#define DISPID_RDSCLIENTEVENTS_BEGINCONNECT 6
cpp_quote("")
cpp_quote("#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1")
cpp_quote("")
#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1
[
uuid(97917068-BB0B-4DDA-8067-B1A00C890F44),
version(1.0),
helpstring("RDCClientHost 1.0 Type Library")
]
library RDCCLIENTHOSTLib
{
importlib("stdole2.tlb");
/* TODO: Find a way to define this in a common location, instead of in the client and server IDL */
//
// Changes made here must be reflected in the server RDSHost IDL.
//
cpp_quote("")
cpp_quote("#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1")
cpp_quote("")
#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1
[
uuid(59AE79BC-9721-42df-9396-9D98E7F7A396),
helpstring("_ISAFRemoteDesktopDataChannelEvents Interface")
]
dispinterface _ISAFRemoteDesktopDataChannelEvents
{
properties:
methods:
[id(DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY), helpstring("method ChannelDataReady")]
void ChannelDataReady([in]BSTR channelName);
};
[
uuid(299BE050-E83E-4DB7-A7DA-D86FDEBFE6D0),
helpstring("RemoteDesktopClientHost Class")
]
coclass SAFRemoteDesktopClientHost
{
[default] interface ISAFRemoteDesktopClientHost;
};
[
uuid(C91C2A81-8B14-4a96-A5DB-4640F551F3EE),
helpstring("ClientDataChannel Class")
]
coclass ClientDataChannel
{
[default] interface ISAFRemoteDesktopDataChannel;
[default, source] dispinterface _ISAFRemoteDesktopDataChannelEvents;
};
[
uuid(078BB428-FA9B-43f1-B002-1ABF3A8C95CF),
helpstring("ClientRemoteDesktopChannelMgr Class")
]
coclass ClientRemoteDesktopChannelMgr
{
[default] interface ISAFRemoteDesktopChannelMgr;
[source] dispinterface _ISAFRemoteDesktopDataChannelEvents;
};
[
uuid(327A98F6-B337-43B0-A3DE-408B46E6C4CE),
helpstring("_ISAFRemoteDesktopClientEvents Interface")
]
dispinterface _ISAFRemoteDesktopClientEvents
{
properties:
methods:
[id(DISPID_RDSCLIENTEVENTS_CONNECTED), helpstring("method Connected")] void Connected();
[id(DISPID_RDSCLIENTEVENTS_DISCONNECTED), helpstring("method Disconnected")]
void Disconnected([in]long reason);
[id(DISPID_RDSCLIENTEVENTS_REMOTECONTROLREQUESTCOMPLETE), helpstring("method RemoteControlRequestComplete")]
void RemoteControlRequestComplete([in]long status);
// Fire SAFERROR_NOERROR - listen connection established
// SAFERROR_CONNECTIONTIMEDOUT - listen timeout
// SAFERROR_OUTOFMEMORY - out of memory
// SAFERROR_INTERNALERROR - internal error
[id(DISPID_RDSCLIENTEVENTS_LISTENCONNECT), helpstring("method ListenConnect")]
void ListenConnect([in]long status);
[id(DISPID_RDSCLIENTEVENTS_BEGINCONNECT), helpstring("method BeginConnect")]
void BeginConnect();
};
[
uuid(85C037E5-743F-4938-936B-A8DB95430391),
helpstring("_IDataChannelIOEvents Interface")
]
dispinterface _IDataChannelIOEvents
{
properties:
methods:
[id(DISPID_DATACHANNELEVEVENTS_DATAREADY), helpstring("method DataReady")]
void DataReady([in]BSTR data);
};
[
uuid(B90D0115-3AEA-45D3-801E-93913008D49E),
helpstring("RemoteDesktopClient Class")
]
coclass SAFRemoteDesktopClient
{
[default] interface ISAFRemoteDesktopClient;
interface ISAFRemoteDesktopTestExtension;
[source] dispinterface _ISAFRemoteDesktopClientEvents;
};
[
uuid(F137E241-0092-4575-976A-D3E33980BB26),
helpstring("TSRDPRemoteDesktopClient Class")
]
coclass TSRDPRemoteDesktopClient
{
[default] interface ISAFRemoteDesktopClient;
interface ISAFRemoteDesktopTestExtension;
[source] dispinterface _ISAFRemoteDesktopClientEvents;
};
};