2025-04-27 07:49:33 -04:00

439 lines
9.8 KiB
HTML

<HTML>
<HEAD>
<!--
Copyright (c) 2000 Microsoft Corporation
-->
<TITLE>Remote Assistance</TITLE>
<meta http-equiv="MSThemeCompatible" content="Yes">
<OBJECT ID="pchealth" classid="CLSID:FC7D9E02-3F9E-11d3-93C0-00C04F72DAF7"></OBJECT>
<script LANGUAGE="Javascript" SRC="Common/Constants.js"> </script>
<script LANGUAGE="Javascript" SRC="Common/Common.js"> </script>
<script Language=JavaScript>
var oChannel = null;
var oRCSession = null;
var sEamil = null;
var sSalemID = "";
var oDeskMgr = null;
var oSmapi = null;
var gHelper = null;
var gHelperName = null;
var gIsIM = false;
var gIsFile = false;
var gTimerId = -1;
// Incident information
var sTo = null;
var sFrom = null;
var sMsg = null;
var iSelect = null;
var iSelect2 = null;
var sPass1 = null;
var sPass2 = null;
var bHasScreen1 = true;
// Channel information
var sVendorID = "CN=Microsoft Corporation,L=Redmond,S=Washington,C=US";
var sProductID = "Microsoft Remote Assistance";
//
// Desktop Control Permissions
//
var DESKTOPSHARING_DEFAULT = 0x0000;
var NO_DESKTOP_SHARING = 0x0001;
var VIEWDESKTOP_PERMISSION_REQUIRE = 0x0002;
var VIEWDESKTOP_PERMISSION_NOT_REQUIRE = 0x0004;
var CONTROLDESKTOP_PERMISSION_REQUIRE = 0x0008;
var CONTROLDESKTOP_PERMISSION_NOT_REQUIRE = 0x00010;
//
// Display properties and Perf Optimization stuff
//
var g_oDisplay = null;
var g_iColorDepth = 0;
var g_bOptimizedPerf = true;
/*
Function: DoChangeColorDepth
Description:
*/
function DoChangeColorDepth()
{
try
{
if( null == g_oDisplay )
{
g_oDisplay = new ActiveXObject("RcBdyCtl.Display");
}
if( g_iColorDepth == 0 )
{
g_iColorDepth = g_oDisplay.PixBits;
}
g_oDisplay.PixBits = 8;
g_oDisplay.WallPaper = false;
}
catch(error)
{
FatalError( error.description, error );
}
}
/*
Function: RevertColorDepth
Description:
*/
function RevertColorDepth()
{
try
{
if ( ( true == g_bOptimizedPerf) && (g_oDisplay.PixBits != 0 ))
{
g_bOptimizedPerf = false;
g_oDisplay.PixBits = g_iColorDepth;
g_oDisplay.WallPaper = true;
}
}
catch(error)
{
FatalError( error.description, error );
}
}
/*
Function :OnLoad1()
Description :
*/
function OnLoad1()
{
TraceFunctEnter("OnLoad1");
var i = document.URL.indexOf("?", 1);
var s = document.URL.slice(i+1);
var obj = null;
try
{
oSmapi = new ActiveXObject("RcBdyCtl.SMapi");
}
catch (error)
{
FatalError( L_NOMAPI_MSG, error );
}
// check whether we need screen1 or not
try
{
obj = new ActiveXObject("RcBdyCtl.Setting");
var sTmp = obj.GetProfileString("Screen1");
if (sTmp == "1")
{
bHasScreen1 = false;
}
}
catch (error)
{
FatalError(L_NOSETTING_MSG,error);
}
if (s.indexOf("RcRequest=1") != -1)
{
try
{
// Brought up by rcRequest
oDeskMgr = pchealth.CreateObject_RemoteDesktopManager();
sSalemID = oDeskMgr.RCTicket;
gHelperName = oDeskMgr.expertHelpBlob;
if (gHelperName != null && gHelperName != "")
gHelperName = obj.GetPropertyInBlob(gHelperName, "NAME");
else
gHelperName = null;
// Get Vendor and ProductID
var iVid = s.indexOf("&VID=");
var iPid = s.indexOf("&PID=");
var iEnd = s.indexOf("&ENDID=1");
if (iVid != -1 && iPid != -1 && iEnd != -1) {
sVendorID = s.slice(iVid+5, iPid);
sProductID = s.slice(iPid+5, iEnd);
}
}
catch (error)
{
FatalError(L_REMOTEDSKMGR_FAIL ,error);
DoCancel();
return;
}
// Check who is the helper.
try
{
var chan = pchealth.CreateObject_Channel(sVendorID,sProductID );
for(var e = new Enumerator(chan.Incidents(2)); !e.atEnd(); e.moveNext())
{
var inc = e.item();
if (inc.URL == sSalemID)
{
var XMLFile = inc.XMLDataFile;
if (XMLFile == "")
{
alert("L_File_NotFound");
return;
}
try
{
var oInc = pchealth.CreateObject_Incident();
oInc.LoadFromXMLFile(XMLFile);
gIsIM = (oInc.Misc("NoPrompt") == "1");
//
// Delete item if IM incident
//
if(true == gIsIM)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile( XMLFile );
inc.DeleteIncidentItem();
}
}
catch(error)
{
FatalError("",error);
}
gIsFile = (oInc.Misc("Method") == "File");
gHelper = inc.DisplayString;
break;
}
}
}
catch (error)
{
FatalError(L_NOCHANNEL_MSG ,error);
}
if (gIsIM)
{
// No need to ask.
Accepted();
}
else
{
// Go asking accept or not.
idSrc.window.navigate("HelpeeAccept.htm");
}
return;
}
else if (s.indexOf("CheckStatus=1") != -1)
{
idSrc.window.navigate("rcStatus.htm");
return;
}
else if (s.indexOf("IM=1") != -1)
{
idSrc.window.navigate("Escalation/IM/rcIm.htm?" + s);
return;
}
else if (s.indexOf("Unsolicited=1") != -1)
{
try
{
// Brought up by rcRequest
oDeskMgr = pchealth.CreateObject_RemoteDesktopManager();
gHelperName = oDeskMgr.userHelpBlob;
if (gHelperName != null && gHelperName != "")
gHelperName = obj.GetPropertyInBlob(gHelperName, "ID");
else
gHelperName = null;
sSalemID = oDeskMgr.RCTicket;
}
catch (error)
{
FatalError(L_REMOTEDSKMGR_FAIL ,error);
DoCancel();
return;
}
// Go asking accept or not.
idSrc.window.navigate("HelpeeAccept.htm?Unsolicited=1");
return;
}
// From Regular Support link.
if (bHasScreen1)
{
s = "Escalation/Common/rcScreen2.htm";
}
else
{
s = "Escalation/Common/rcScreen3.htm";
}
idSrc.window.navigate(s);
TraceFunctLeave();
}
/*
Function :Init()
Description : This function accepts the expiry time and based upon that
creates and opens a RemoteDesktopSession for that particular time interval.
It gets called when you send an Invitation to the recipient.
*/
function Init( iDuration, sPass )
{
TraceFunctEnter("Init");
if (iDuration == null)
{
iDuration = 0;
}
// open channel object
if (oChannel == null)
{
try
{
oChannel = pchealth.CreateObject_Channel(sVendorID, sProductID);
}
catch (error)
{
alert(L_NOCHANNEL_MSG);
return false;
}
}
// open RDSession
if (oRCSession == null )
{
try
{
oRCSession = pchealth.CreateObject_RemoteDesktopSession(VIEWDESKTOP_PERMISSION_NOT_REQUIRE, iDuration, sSalemID, sPass);
oRCSession.OnConnected = function( salemID, userSID, sessionID)
{ onCallBackConnect( salemID, userSID, sessionID ); }
}
catch (error)
{
alert(L_NORCSESSION_MSG);
return false;
}
}
TraceFunctLeave();
return true;
}
/*
Function : onCallBackConnect()
Description: call back function from buddy
*/
function onCallBackConnect( salemID, userSID, sessionID )
{
// Is this a valid salemID ?
//idSrc.window.navigate("HelpeeAccept.htm"); No need for this
}
/*
Function : DoWait()
Description:
*/
function DoWait()
{
idSrc.window.navigate("hcp://system/HomePage.htm");
}
/*
Function : DoCancel()
Description:
*/
function DoCancel()
{
idSrc.window.navigate("hcp://system/HomePage.htm");
}
function document.onkeydown()
{
if (window.event.keyCode==8)
{
window.event.returnValue=false;
}
}
/*
Function : Accepted()
Description:
*/
function Accepted()
{
TraceFunctEnter("Accepted");
try
{
if (oRCSession == null)
{
oRCSession = pchealth.CreateObject_RemoteDesktopSession(
VIEWDESKTOP_PERMISSION_NOT_REQUIRE,
0,
sSalemID,
"");
}
oDeskMgr.Accepted();
oRCSession.onConnected = function( salemID, userSID, sessionID)
{ clearTimeout( gTimerId ); idSrc.window.navigate("Interaction/Server/RAServer.htm"); }
}
catch (error)
{
FatalError(L_ACCEPT_MSG,error);
}
TraceFunctLeave();
}
/*
Function : Rejected()
Description:
*/
function Rejected()
{
TraceFunctEnter("Rejected");
try
{
oDeskMgr.Rejected();
clearTimeout( gTimerId );
}
catch (error)
{
FatalError(L_REJECT_MSG,error);
}
TraceFunctLeave();
}
/*
Function : DoUnload()
Description:
*/
function DoUnload()
{
TraceFunctEnter("DoUnload");
try
{
if (oSmapi != null)
{
oSmapi.Logoff();
}
}
catch(error)
{
FatalError("",error);
}
TraceFunctLeave();
}
</script>
</HEAD>
<frameset COLS="100%" onload="OnLoad1()" onunload="DoUnload()">
<frame name="idSrc">
</frameset>
</HTML>