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

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;
};
};