	methods:
			[id(1)] void JSConnect(BSTR pDevIdentifier, BSTR pNetUser, BSTR pNetPwd, short nPort, short nSrvChn, short nLocalChn,boolean bOpenAudio);
			[id(2)] void JSDivideWindow(short nWindow);
			[id(3)] void JSRecordStart(BSTR pDevIdentifier, short nSrvChn);
			[id(4)] void JSRecordStop(BSTR pDevIdentifier, short nSrvChn);
			[id(5)] void JSRecordAllStart();
			[id(6)] void JSRecordAllStop();
			[id(7)] void JSOpenAudio(BSTR pDevIdentifier, short nSrvChn);
			[id(8)] void JSCloseAudio(BSTR pDevIdentifier, short nSrvChn);
			[id(9)] BSTR JSVideoCapture(BSTR pDevIdentifier, short nSrvChn);
			[id(10)] void JSTvMode();
			[id(11)] void JSLogInfo();
			[id(12)] void JSPlayBack();
			[id(13)] void JSLocalConfig();
			[id(14)] void JSDisconnectAll();
			[id(15)] void JSTalkBackStart(BSTR pDevIdentifier, short nSrvChn);
			[id(16)] void JSTalkBackStop(BSTR pDevIdentifier, short nSrvChn);
			[id(17)] void JSRemoteConfig(BSTR pDevIdentifier, short nSrvChn);
			[id(18)] long JSGetChannelState(BSTR pDevIdentifier, short nSrvChn);
			[id(19)] void JSSetLanguage(BSTR pLang);
			[id(20)] void JSDisconnect(BSTR pDevIdentifier, short nSrvChn);
			[id(21)] void JSCameraCtrl(short nType, boolean bFlags, short nKink,short nSpeed,short nLocalIndex);
			[id(22)] BSTR JSGetVersion();
			[id(23)] void JSAddCustomServer(BSTR pGroup, BSTR pAddr);
	};

	Events
	{
			[id(1)] void OnConnectChanged(BSTR pDevIdentifier, short nSrvChn, short state);
			[id(2)] void OnChnSelected(BSTR pDevIdentifier, short nSrvChn, short nLocalIndex, long state);
			[id(3)] void OnChnStateChanged(BSTR pDevIdentifier, short nSrvChn, long state);
	};
