363 lines
14 KiB
Plaintext
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;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|