270 lines
9.3 KiB
Plaintext
270 lines
9.3 KiB
Plaintext
/*++
|
|
|
|
Copyright (c) 1999-2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
RDSHOST.IDL
|
|
|
|
Abstract:
|
|
|
|
Remote Desktopping Server-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";
|
|
|
|
/**
|
|
** Remote Desktop Sharing class.
|
|
**/
|
|
typedef [
|
|
uuid(34b3166d-870a-4f39-9e2a-09fd8d31ad83),
|
|
helpstring("Remote Desktop Sharing Class")
|
|
]
|
|
enum {
|
|
[helpstring("REMOTE DESKTOP SHARING CLASS")] DESKTOPSHARING_DEFAULT = 0x0000,
|
|
NO_DESKTOP_SHARING = 0x0001,
|
|
VIEWDESKTOP_PERMISSION_REQUIRE = 0x0002,
|
|
VIEWDESKTOP_PERMISSION_NOT_REQUIRE = 0x0004,
|
|
CONTROLDESKTOP_PERMISSION_REQUIRE = 0x0008,
|
|
CONTROLDESKTOP_PERMISSION_NOT_REQUIRE = 0x00010,
|
|
} REMOTE_DESKTOP_SHARING_CLASS;
|
|
|
|
|
|
/**
|
|
** ISAFRemoteDesktopSession Interface
|
|
**/
|
|
cpp_quote("")
|
|
cpp_quote("#define DISPID_RDSSESSION_CHANNELMANAGER 1")
|
|
cpp_quote("#define DISPID_RDSSESSION_CONNECTPARMS 2")
|
|
cpp_quote("#define DISPID_RDSSESSION_SHARINGCLASS 3")
|
|
cpp_quote("#define DISPID_RDSSESSION_ONCONNECTED 4")
|
|
cpp_quote("#define DISPID_RDSSESSION_ONDISCONNECTED 5")
|
|
cpp_quote("#define DISPID_RDSSESSION_CLOSERDSSESSION 6")
|
|
cpp_quote("#define DISPID_RDSSESSION_DISCONNECT 7")
|
|
cpp_quote("")
|
|
#define DISPID_RDSSESSION_CHANNELMANAGER 1
|
|
#define DISPID_RDSSESSION_CONNECTPARMS 2
|
|
#define DISPID_RDSSESSION_SHARINGCLASS 3
|
|
#define DISPID_RDSSESSION_ONCONNECTED 4
|
|
#define DISPID_RDSSESSION_ONDISCONNECTED 5
|
|
#define DISPID_RDSSESSION_CLOSERDSSESSION 6
|
|
#define DISPID_RDSSESSION_DISCONNECT 7
|
|
|
|
[
|
|
object,
|
|
uuid(9D8C82C9-A89F-42C5-8A52-FE2A77B00E82),
|
|
dual,
|
|
helpstring("ISAFRemoteDesktopSession Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISAFRemoteDesktopSession : IDispatch
|
|
{
|
|
[propget, id(DISPID_RDSSESSION_CHANNELMANAGER), helpstring("ChannelManager")]
|
|
HRESULT ChannelManager([out, retval]ISAFRemoteDesktopChannelMgr **mgr);
|
|
|
|
[propget, id(DISPID_RDSSESSION_CONNECTPARMS), helpstring("ConnectParms")]
|
|
HRESULT ConnectParms([out, retval]BSTR *parms);
|
|
|
|
[propput, id(DISPID_RDSSESSION_SHARINGCLASS), helpstring("Sharing Class")]
|
|
HRESULT SharingClass([in] REMOTE_DESKTOP_SHARING_CLASS sharingClass);
|
|
[propget, id(DISPID_RDSSESSION_SHARINGCLASS), helpstring("Sharing Class")]
|
|
HRESULT SharingClass([out, retval]REMOTE_DESKTOP_SHARING_CLASS *sharingClass);
|
|
|
|
[id(DISPID_RDSSESSION_CLOSERDSSESSION), helpstring("method CloseRemoteDesktopSession")]
|
|
HRESULT CloseRemoteDesktopSession();
|
|
[id(DISPID_RDSSESSION_DISCONNECT), helpstring("method Disconnect")]
|
|
HRESULT Disconnect();
|
|
|
|
[propput, id(DISPID_RDSSESSION_ONCONNECTED), helpstring("OnConnected")]
|
|
HRESULT OnConnected([in] IDispatch *iDisp);
|
|
[propput, id(DISPID_RDSSESSION_ONDISCONNECTED), helpstring("OnDisconnected")]
|
|
HRESULT OnDisconnected([in] IDispatch *iDisp);
|
|
};
|
|
|
|
/**
|
|
** IRDSThreadBridge Interface
|
|
**/
|
|
[
|
|
object,
|
|
uuid(35B9A4B1-7CA6-4aec-8762-1B590056C05D),
|
|
dual,
|
|
helpstring("IRDSThreadBridge Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRDSThreadBridge : IUnknown
|
|
{
|
|
[id(1), helpstring("method ClientConnectedNotify")] HRESULT ClientConnectedNotify();
|
|
[id(2), helpstring("method ClientDisconnectedNotify")] HRESULT ClientDisconnectedNotify();
|
|
[id(3), helpstring("method DataReadyNotify")] HRESULT DataReadyNotify([in]BSTR msg);
|
|
};
|
|
|
|
|
|
/**
|
|
** ISAFRemoteDesktopServerHost Interface
|
|
**/
|
|
cpp_quote("")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_CREATERDSSESSION 1")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_OPENRDSSESSION 2")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_CLOSERDSSESSION 3")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_DISCONNECTRDSSESSION 4")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_CREATERDSSESSIONEX 5")
|
|
cpp_quote("#define DISPID_RDSSERVERHOST_CONNECTEXPERT 6")
|
|
|
|
cpp_quote("")
|
|
#define DISPID_RDSSERVERHOST_CREATERDSSESSION 1
|
|
#define DISPID_RDSSERVERHOST_OPENRDSSESSION 2
|
|
#define DISPID_RDSSERVERHOST_CLOSERDSSESSION 3
|
|
#define DISPID_RDSSERVERHOST_DISCONNECTRDSSESSION 4
|
|
#define DISPID_RDSSERVERHOST_CREATERDSSESSIONEX 5
|
|
#define DISPID_RDSSERVERHOST_CONNECTEXPERT 6
|
|
[
|
|
object,
|
|
uuid(C9CCDEB3-A3DD-4673-B495-C1C89494D90E),
|
|
dual,
|
|
helpstring("ISAFRemoteDesktopServerHost Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISAFRemoteDesktopServerHost : IDispatch
|
|
{
|
|
[id(DISPID_RDSSERVERHOST_CREATERDSSESSION), helpstring("method CreateRemoteDesktopSession")]
|
|
HRESULT CreateRemoteDesktopSession(
|
|
[in] REMOTE_DESKTOP_SHARING_CLASS sharingClass,
|
|
[in] BOOL fEnableCallback,
|
|
[in] LONG timeOut,
|
|
[in] BSTR userHelpBlob,
|
|
[out, retval] ISAFRemoteDesktopSession **
|
|
);
|
|
[id(DISPID_RDSSERVERHOST_CREATERDSSESSIONEX), helpstring("method CreateRemoteDesktopSessionEx")]
|
|
HRESULT CreateRemoteDesktopSessionEx(
|
|
[in] REMOTE_DESKTOP_SHARING_CLASS sharingClass,
|
|
[in] BOOL fEnableCallback,
|
|
[in] LONG timeOut,
|
|
[in] BSTR userHelpBlob,
|
|
[in] LONG tsSessionID,
|
|
[in] BSTR userSID,
|
|
[out, retval] ISAFRemoteDesktopSession **
|
|
);
|
|
|
|
[id(DISPID_RDSSERVERHOST_OPENRDSSESSION), helpstring("method OpenRemoteDesktopSession")]
|
|
HRESULT OpenRemoteDesktopSession([in] BSTR parms, [out, retval] ISAFRemoteDesktopSession **);
|
|
|
|
[id(DISPID_RDSSERVERHOST_CLOSERDSSESSION), helpstring("method CloseRemoteDesktopSession")]
|
|
HRESULT CloseRemoteDesktopSession([in] ISAFRemoteDesktopSession *);
|
|
|
|
[id(DISPID_RDSSERVERHOST_CONNECTEXPERT), helpstring("method ConnectToExpert")]
|
|
HRESULT ConnectToExpert([in] BSTR expertConnectParm, [in] LONG timeout, [out, retval] LONG* SafErrorCode);
|
|
};
|
|
|
|
/**
|
|
** RDSServerHost Type Lib
|
|
**/
|
|
cpp_quote("")
|
|
cpp_quote("#define DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED 1")
|
|
cpp_quote("#define DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED 2")
|
|
cpp_quote("")
|
|
#define DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED 1
|
|
#define DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED 2
|
|
|
|
cpp_quote("")
|
|
cpp_quote("#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1")
|
|
cpp_quote("")
|
|
#define DISPID_RDSCHANNELEVENTS_CHANNELDATAREADY 1
|
|
[
|
|
uuid(1B16CE61-2406-412F-969E-21BC082F76E8),
|
|
version(1.0),
|
|
helpstring("RDSServerHost 1.0 Type Library")
|
|
]
|
|
library RDSSERVERHOSTLib
|
|
{
|
|
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 client RDCHost 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(8C71C09E-3176-4be6-B294-EA3C41CABB99),
|
|
helpstring("TSRDPServerDataChannel Class")
|
|
]
|
|
coclass TSRDPServerDataChannel
|
|
{
|
|
[default] interface ISAFRemoteDesktopDataChannel;
|
|
[default, source] dispinterface _ISAFRemoteDesktopDataChannelEvents;
|
|
};
|
|
|
|
[
|
|
uuid(92550D33-3272-43b6-B536-2DB08C1D569C),
|
|
helpstring("SAFRemoteDesktopChannelMgr Class")
|
|
]
|
|
coclass TSRDPServerDataChannelMgr
|
|
{
|
|
[default] interface ISAFRemoteDesktopChannelMgr;
|
|
interface IRDSThreadBridge;
|
|
};
|
|
|
|
[
|
|
uuid(5EA6F67B-7713-45F3-B535-0E03DD637345),
|
|
helpstring("RemoteDesktopServerHost Class")
|
|
]
|
|
coclass SAFRemoteDesktopServerHost
|
|
{
|
|
[default] interface ISAFRemoteDesktopServerHost;
|
|
};
|
|
[
|
|
uuid(434AD1CF-4054-44A8-933F-C69889CA22D7),
|
|
helpstring("_ISAFRemoteDesktopSessionEvents Interface")
|
|
]
|
|
dispinterface _ISAFRemoteDesktopSessionEvents
|
|
{
|
|
properties:
|
|
methods:
|
|
|
|
[id(DISPID_RDSSESSIONSEVENTS_CLIENTCONNECTED), helpstring("method ClientConnected")]
|
|
void ClientConnected();
|
|
|
|
[id(DISPID_RDSSESSIONSEVENTS_CLIENTDISCONNECTED), helpstring("method ClientDisconnected")]
|
|
void ClientDisconnected();
|
|
};
|
|
|
|
[
|
|
uuid(3D5D6889-14CC-4E28-8464-6B02A26F506D),
|
|
helpstring("RemoteDesktopServer Class")
|
|
]
|
|
coclass SAFRemoteDesktopSession
|
|
{
|
|
[default] interface ISAFRemoteDesktopSession;
|
|
[default, source] dispinterface _ISAFRemoteDesktopSessionEvents;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|