You are on page 1of 22

Sunlogin Remote Component SDK

v1.0.0


1 ............................................................................................................................................. 3
1.1 ............................................................................................................................ 3
1.2 ............................................................................................................................ 3
2OrayPluginInterface .................................................................................................... 4
2.1 IAcceptor ............................................................................................................................. 4
2.2 IConnector ........................................................................................................................... 6
2.3 IPlugin .................................................................................................................. 8
2.4 IPluginStream....................................................................................................................... 9
2.5 IProxySetting........................................................................................................................ 10
3OrayFilemanager ........................................................................................................ 11
3.1 IFileTransfer.......................................................................................................................... 11
3.2IFileOperator..........................................................................................................................13
4OrayRemoteDesktop ................................................................................................... 14
4.1 ISingleDesktop...................................................................................................................... 14
5 OrayDesktopControl.ocx ............................................................................................. 17
5.1 .......................................................................................................................17

1
Sunlogin Remote Component SRC
Component Server ( CS) Client Component (
CC)
OrayPluginInterface AcceptorCS ConnectorCC
CS CC CS CC
CC CS CS

1.1

1.2
1OrayPluginInterface.dll IAcceptorIConnectIPluginIPluginStreamIProxySetting
IAcceptorIConnect P2P IPlugin
IPluginStream IProxySetting
2OrayFilemanager.dll IFileTransferIFileOperator
3


3OrayRemoteDesktop.dll ISingleDesktop
4OrayDesktopControl.ocx ActiveX

2 OrayPluginInterface

OrayPluginInterface.dll Regsvr32 path/to/sdk/OrayPluginInterface.dll

2.1 IAcceptor
2.1.1
P2P
1 P2P
2 Accept
ListenPort
Address
IsLogged
Login
Logout
Accept
AcceptEx
SetProxy
LoginOK
Connected Disconnected
LoginFailed

Cancel

2.1.2
short ListenPort

1 0
2P2P
rw
Address

r
BSTR

VARIANT_BOOL IsLogged

r
2.1.3
Login
P2P

HRESULT Login(BSTR bsAddr, BSTR bsOpenID, BSTR bsOpenKey)


4


bsAddr

BSTR

bsOpenID

BSTR

App ID App IDOray

bsOpenKey

BSTR

App Secret

Logout

HRESULT Logout()

Accept

HRESULT Accept(IUnknown* pClient)

pClient
FileTransfer

IUnknown*

Desktop DataTransfer

AcceptEx

SessionItem ,
session.
bMulusetrue, .Accept(),
bsName,,Connector::Connect
,(PHSRC://10.0.0.1:4118/123/name)

HRESULT AcceptEx(IUnknown* pClient, BSTR bsName, VARIANT_BOOL bMuluse,


ppSession)

IUnknown**

pClient
IUnknown
DesktopDataTransfer
FileTransfer,PhRemoteCtrl
bsName
BSTR

bMuluse
VARIANT_BOOL pClient
ppSession IUnknown**
SessionItem,Value
Session
SetProxy

HRESULT SetProxy(IUnknow* proxy)

proxy

IUnknown*

Cancel
,,Terminate

HRESULT Cancel(ByVal pClient As IUnknown)

pClient

IUnknown

2.1.4
LoginOK

Connected

Disconnected

LoginFailed

2.2 IConnector
2.2.1
P2P

Connect Disconnect SetProxy


StateChanged RequestPassword
InvalidPassword
2.1.2
2.1.3
Connect
Acceptor.Accept

HRESULT Connect(IUnknown* plugin, BSTR bsAddress, BSTR bsSession)

plugin

IUnknown*

IPlugin
6

bsAddress BSTR

Acceptor.Address

bsSession BSTR

SessionSession

Disconnect
,Terminate

HRESULT Disconnect(IUnknow* plugin)

plugin IUnknown*

SetProxy

HRESULT SetProxy(IUnknow* proxy)

proxy IUnknown*
2.2.4
StateChanged

plugin
IUnknown*
eState
ULONG
err
ULONG

//
typedef [v1_enum] enum PHERRORCODE
{
PH_E_ERROR_CODE_BEGIN =
0x80040200,//MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,0x0200),
PH_E_PLUGIN_NOTPMT = PH_E_ERROR_CODE_BEGIN+1,
PH_E_CNT_ERROR_CODE_BEGIN

= PH_E_ERROR_CODE_BEGIN +0x100, //Connector

PH_E_CNT_LOGIN_P2P_SVR_FAILED = PH_E_CNT_ERROR_CODE_BEGIN+1, //P2P

PH_E_CNT_LOGIN_FWD_SVR_FAILED = PH_E_CNT_ERROR_CODE_BEGIN+2,

//

PH_E_CNT_FWD_FAILED

= PH_E_CNT_ERROR_CODE_BEGIN+3,

//

PH_E_CNT_LOGIN_RMT_FAILED

= PH_E_CNT_ERROR_CODE_BEGIN+4,

//

PH_E_CNT_REQUEST_P2P_FAILED

= PH_E_CNT_ERROR_CODE_BEGIN+5,

//

PH_E_CNT_CONNECT_RMT_FAILED

= PH_E_CNT_ERROR_CODE_BEGIN+6,

//

P2P


PH_E_CNT_RMT_REFUSED
PH_E_CNT_AUTH_EXPIRED

= PH_E_CNT_ERROR_CODE_BEGIN+7,
= PH_E_CNT_ERROR_CODE_BEGIN+8,

//
//

PH_E_CNT_INVALID_PSW
PH_E_CNT_REQUIRED_PSW

= PH_E_CNT_ERROR_CODE_BEGIN+9,
= PH_E_CNT_ERROR_CODE_BEGIN+10,

//
//

}PHERRORCODE;
//Connector
typedef [v1_enum] enum CONNECTOR_STATE
{
CNTS_P2P ,

//P2P

CNTS_FORWARD,

//

CNTS_LOGIN,

//

CNTS_CONNECTED, //
CNTS_DISCONNECTED,//
}CONNECTOR_STATE;

RequestPassword

pPlugin
IUnknown*

Password
BSTR

bSet
VARIANT_BOOL TRUEpassword
InvalidPassword

pPlugin
IUnknown*
password
BSTR
bSet
VARIANT_BOOL

TRUEpassword

2.3 IPlugin
2.3.1

InitInstance Run
ExitInstance

2.3.2
2.3.3
8

InitInstance

HRESULT InitInstance (IUnknown * pUnk )

pUnkl

IUnknown*

IPluginStream

Run

HRESULT
Run ( )

ExitInstance

HRESULT
ExitInstance ( )

2.3.4

2.4 IPluginStream
2.4.1

Timeout
RemoteRead

2.4.2

RemoteWrite

Close

unsigned long Timeout

rw
2.4.3
RemoteRead

HRESULT RemoteRead(void* pv, ULONG cb, ULONG* pcbReadULONG flags)

pv void*
cb
ULONG
pcbRead ULONG*
Flags ULONG enum _PLUGINSTREAM_FLAG
enum _PLUGINSTREAM_FLAG
9

{
PLUGINSTREAM_FLAG_NORMAL = 0,
PLUGINSTREAM_FLAG_NOACK = 1,
PLUGINSTREAM_FLAG_NOBLOCK = 2
}

RemoteWrite

HRESULT RemoteWrite(const void* pv, ULONG cb, ULONG* pcbWrittenULONG flags)

pv
void*
cb
ULONG
pcbWritten
ULONG*
flags
ULONG
enum _PLUGINSTREAM_FLAG

enum _PLUGINSTREAM_FLAG

{
PLUGINSTREAM_FLAG_NORMAL = 0,
PLUGINSTREAM_FLAG_NOACK = 1,
PLUGINSTREAM_FLAG_NOBLOCK = 2
}

Close

HRESULT Close()

2.4.4

2.5 IProxySetting
2.5.1
IAcceptor IConnector
IP
Port
User
Password
Domain
Type

2.5.2
BSTR IP

rw

10

long Port

rw
BSTR

User

rw
Password

rw
BSTR

Domain

BSTR

rw
long Type

rw
2.5.3
2.5.4

3 OrayFilemanager
OrayFileManager.dll Regsvr32 path/to/sdk/OrayFileManager.dll

3.1 IFileTransfer
3.1.1

Session
Upload Download Terminate
UploadRequest DownloadRequest
3.1.2
BSTR

Connected

Disconnected

Session

Acceptor.Accept/Connector.Connect
accept Connect
r

11

3.1.3
Upload
FileOperator

HRESULT Upload (BSTR bsSrc,BSTR bsDest, __int64 offset, IDispatch * * ppUnit )

bsSrc
bsDest
Offset
ppUnit

BSTR

BSTR

__int64

IDispatch**

FileOperator

Download

HRESULT Download (BSTR bsSrc, BSTR bsDest, __int64 offset,IDispatch * * ppUnit )

bsSrc
bsDest
Offset
ppUnit

BSTR

BSTR

__int64

IDispatch**

FileOperator

Terminate

FileOperator
Connector::Disconnect Acceptor::Cancel

HRESULT

Terminate ( )

3.1.4
UploadRequest
pFileOP.Stop

pFileOP IDispatch * FileOperator


DownloadRequest

pFileOP.Stop

pFileOP IDispatch * FileOperator


Connected

12

Disconnected

3.2 IFileOperator
3.2.1

Source Destination TotalSize CurrentSize State


Stop Pause Continue
End
3.2.2
BSTR * Source

r
BSTR

Destination

rw
__int64 TotalSize

r
__int64 CurrentSize

r
long State

0 ;1 ;2 ;3
r

3.2.3
Stop

HRESULT Stop ( )

Pause

13


HRESULT Pause( )

Continue

HRESULT Continue( )

3.2.4
End

4 OrayRemoteDesktop
OrayRemoteDesktop.dll Regsvr32 path/to/sdk/OrayRemoteDesktop.dll

4.1 ISingleDesktop
4.1.1

EnableMirrorDriver
DisableDesktopEffects
EnableRecord
RecordPath
EnableDPMS EnableBlackScreen EnableH264Mode SelectMode CaptureMode
EnableControl StartBlackScreen DisplayChanged SetImmovableArea
Connected Disconnected RequestControl ReuestInstallDrv NotifyBlackScreen
4.1.2
VARIANT_BOOL EnableMirrorDriver

rw
VARIANT_BOOL DisableDesktopEffects

rw
VARIANT_BOOL

EnableRecord

rw
BSTR

RecordPath
14


rw
VARIANT_BOOL EnableDPMS

rw
unsigned long

EnableBlackScreen

rw
long

EnableH264Mode

h264
rw
unsigned long

SelectMode

rw
unsigned long CaptureMode

mirror driver gdidx


rw
4.1.3
EnableControl

HRESULT EnableControl (VARIANT_BOOL enable )

enable

VARIANT_BOOL

StartBlackScreen

HRESULT StartBlackScreen (VARIANT_BOOL newVal )

newVal

VARIANT_BOOL

DisplayChanged

HRESULT DisplayChanged (long newWidth, long newHeight )

newWidth

long

15

newHeight

long

SetImmovableArea

HRESULT
SetImmovableArea (long newLeft,long newTop, long newRight, long
newBottom )

newLeft
newTop
newRight
newBottom

long
long
long
long

4.1.4
Connected

Disconnected

RequestControl

bEnable VARIANT_BOOL
ReuestInstallDrv

NotifyBlackScreen

bEnable VARIANT_BOOL
nError
unsigned long

16

5 OrayDesktopControl.ocx
OrayDesktopControl.ocx Regsvr32 path/to/sdk/OrayDesktopControl.ocx

5.1
5.1.1
ActiveX
type
address
session
Version
showTitlebar
FullScreen
AutoColor
AutoSize
SyncClipboard
CurConsoleID
Connector
UsingIEProxySetting
EnableScreenWhiteBoard
EnableControl
DesktopColor
ShowControlSelector
DisplayCompression Language SupportedSound AutoStart
ConnectAuto AboutBox RequestControl
OpenTaskManager
ShutdownRemote
RestartRemote LogoffRemote OpenConsole
SendCtrlAltDel SetColor
OpenExplorer
GetCurColor
GetResolutionCount
GetResolutionX
GetResolutionY
ChangeResolution
GetSessionCount
GetSessionName GetSessionID
SwitchSession
EnableH264
SwitchScreen
StartStream

5.1.2
CString type

rw
CString address
URL
rw
CString session
session
rw
CString Version

rw
long showTitlebar

rw
long FullScreen

rw

17

long AutoColor

rw
Long AutoSize

rw
Long SyncClipboard

rw
long CurConsoleID
ID
rw
LPDISPATCH Connector

rw
BOOL UsingIEProxySetting
IE
rw
BOOL EnableScreenWhiteBoard

rw
BOOL EnableControl

rw
long
DesktopColor

rw
long
ShowControlSelector

rw
CString DisplayCompression

rw

18

CString Language

rw
BOOL SupportedSound

rw
long AutoStart

rw
5.1.3
ConnectAuto

long ConnectAuto(LPCTSTR szAddress, LPCTSTR szSession)

szAddress
szSession

LPCTSTR

//

LPCTSTR

// session

AboutBox

void AboutBox()

RequestControl

long RequestControl()

OpenTaskManager

long OpenTaskManager()

ShutdownRemote

long ShutdownRemote()

19


RestartRemote

long RestartRemote()

LogoffRemote

long LogoffRemote()

OpenConsole

long OpenConsole()

SendCtrlAltDel

ctrl+alt+delete

long SendCtrlAltDel()

SetColor

long SetColor(long nColor)

nColor

long

OpenExplorer

explorer

long OpenExplorer()

GetCurColor

long GetCurColor()

20

GetResolutionCount

long GetResolutionCount()

GetResolutionX

long GetResolutionX(long nIndex)

nIndex

long

GetResolutionY

long GetResolutionY(long nIndex)

nIndex

long

ChangeResolution

long ChangeResolution(long nWidth, long nHeight)

nWidth
nHeight

long
long

GetSessionCount

long GetSessionCount()

GetSessionName

CString GetSessionName(long nIndex)

nIndex
long
GetSessionID

21

ID

long GetSessionID(long nIndex)

nIndex

long

SwitchSession

Session

long SwitchSession(long nID)

nID long

//SessionID

EnableH264

H264

long EnableH264(BOOL bEnable)

bEnable

BOOL

//

SwitchScreen

long SwitchScreen(long nIndex)

nIndex

long

StartStream

long StartStream()

5.1.4

22

You might also like