CreateApplication(String) Method
Creates an application that represents the instance of MyReflection running at the specified IPC channel.
Parameters
- channelName
- IPC channel name. The channel name must have the same format as a valid Internet hostname. Names can contain only the ASCII letters 'a' through 'z' (in a case-insensitive manner), the digits '0' through '9', and the hyphen ('-'). No other symbols, punctuation characters, or white space are permitted.
Return Value
An Application object.
This sample starts two Reflection instances and assigns channel names to each instance. Then it gets handles to the instances with those channel names.
using System;
using System.Collections.Generic;
using System.Text;
using Attachmate.Reflection;
using Attachmate.Reflection.Emulation.IbmHosts;
using Attachmate.Reflection.Framework;
using Attachmate.Reflection.UserInterface;
using Attachmate.Reflection.Emulation.OpenSystems;
namespace MultipleWorkSpaces
{
class Program
{
static void Main(string[] args)
{
//Start an visible instance of a workspace and get a handle to the instance running at the given channel name ("Workspace1")
MyReflection.Start("Workspace1");
Application app1 = MyReflection.CreateApplication("WorkSpace1");
//Create a new IBM Session
IIbmTerminal terminal1 = (IIbmTerminal)app1.CreateControl(new Guid("{09E5A1B4-0BA6-4546-A27D-FE4762B7ACE1}"));
terminal1.HostAddress = "demo:ibm3270.sim";
//Create a View and then get a handle to the screen
IFrame frame1 = (IFrame)app1.GetObject("Frame");
frame1.CreateView(terminal1);
IIbmScreen screen1 = terminal1.Screen;
//Start a second visible instance of a workspace and get a handle to the instance running at the given channel name ("Workspace2")
MyReflection.Start("Workspace2");
Application app2 = MyReflection.CreateApplication("WorkSpace2");
//Open a session in the second workspace
string sessionPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\Reflection\demoSession.rdox";
ITerminal terminal2 = (ITerminal)app2.CreateControl(sessionPath);
//Create a View for the session in the second workspace, and then get a handle to the screen
IFrame frame2 = (IFrame)app2.GetObject("Frame");
frame2.CreateView(terminal2);
IScreen screen2 = (IScreen)terminal2.Screen;
//Get some text from each of the terminal screens in the two workspaces
Console.WriteLine("IBM terminal text is" + screen1.GetText(1, 1, 20) + "and UNIX text is" + screen2.GetText(1, 1, screen2.DisplayRows, screen2.DisplayColumns));
//Close the workspaces
app1.Close(ApplicationCloseOption.CloseNoSave);
app2.Close(ApplicationCloseOption.CloseNoSave);
}
}
}