[debug] trace=1
#define VERMAJOR 1 #define VERMINOR 138 #define STRINGVER "1, 0, 0, 138\0"There is one new file to add to sourcesafe, res\talker.rc2. I am also building now with MFC/VC 4.2. This has some fixes in MFC and some changes to at least one of the OCX calls. Please build with this version too, it will save us all some time. NOTE, MFC 4.2 ships with new DLL's, if you are redistributing MFC then these will need to be refreshed.
Talker may be embedded in either Netscape or Microsoft Internet Explorer 3.0. The UI in both appearance and function is identical. The way the Talker is embedded is very different due to the two browsers using competing technologies. The ActiveX talker may also be embedded in any OLE container application.
To embed the Talker inside of Microsoft IE you should use the OBJECT tag.
To embed the Talker inside of Netscape you should use the EMBED tag.
The Talker requires a suite of parameters in order to function correctly. When contained within a browser each has a machanism to pass these parameters. If you do not specify them, or you contain the Talker in a OLE application that does not support the paramater passing (currently any non-browser) the Talker will prompt the user for the details it needs. For a list and description of the parameters that are required see the PARAM tag.
A web page may have both EMBED and OBJECT tags and will therefore work for both IE30 and Netscape.
The Talker plugin is activated and displayed when a web page has the following embed syntax and has the plugin installed. The plugin installation requires that the file nptalker.dll is present in the plugins directory.
The name of the file is important, it must start with np and be a dll with the 8.3 file name format. The way that Netscape works out how to use this DLL when it sees a web page will be described shortly. Once this file is present the following syntax will invoke Talker.
<EMBED WIDTH=200 HEIGHT=300 BORDER=0 SRC="http://talker.onlive.com/invoke.tlk" param1 param2 ...etc >
One striking difference between the IE30 and Netscape syntax is that the parameters go inside the EMBED tag in Netscape and outside in IE30. The params are the same set and type as used in the IE30 syntax. There are no special tags for Netscape, and no IE30 tags that are not will work work identically in Netscape.
The important point to make at this stage ties together the NPTALKER.DLL described above and the SRC component of the EMBED tag. Between these two lies the heart of Netscapes plugin mechanism. The URI http://talker.onlive.com/invoke.tlk can be anything so long as it has the extension ".tlk" - this is very important. You can make the URI be a local file reference by creating an empty file called noop.tlk and refernece that in your HTML. The file can contain zero or more bytes, none of its contents is ever examined, it is simply a way for Netscape to associate the NPTALKER.DLL with the EMBED tag. On startup, Netscape looks at all the DLL's in its plugin directory that begin with "NP" (Netscape Plugin?), it reads the version information in these files and looks for the "FileExtents" field. This is setup to return ".tlk". Netscape now knows that any file that is fetched from a web server with the extension ".tlk" should be passed to an invocation of that DLL. There is also a MIME TYPE field in the version block that allows files with extensions other than tlk to be 'associated' with the Talker. This would require the server admin to set up a mime type for the file with application/x-tlk as its type. For simplicity, create an (empty) file called talker.tlk and reference this from the web page.
Let us return to the parameters. As mentioned above, the parameters are the same as for IE30, where they are placed, however, is not. An example will probably make things clear.
<EMBED WIDTH=200 HEIGHT=300 BORDER=0 SRC="http://talker.onlive.com/invoke.tlk" Category="http://www.mtv.com/ToriAmos.htm" FriendlyName="Tori Amos on MTV" ServerName="server256.mtv.com" ServerPort=3061 ConferenceDownloadSite="http://talker.onlive.com/talker/download.htm" HelpSite="http://talker.onlive.com/talker/help.htm" HomeSite="http://www.onlive.com" JoinText="Join: Tori Amos" LeaveText="Leave: Tori Amos" ParticipantCount="42" AutoClone="TRUE" >
The talker control is activated when a web page has the following OBJECT syntax.
<OBJECT WIDTH=200 HEIGHT=300 BORDER=0 CLASSID="clsid:F05A3DA4-6479-11CF-8F4E-444553540000">
To have the control downloaded automatically you will need
to add CODEBASE= The CODEBASE tag can accept as possible sources of the control
a direct URL to the OCX, a URL to a CAB(inet) file (create these
with the DIANTZ.exe in the INetSdk bin directry) or a network INF
file. For more details of this see Article Safe Web Surfing
with the Internet Download Service by Mary Kirkland, MSJ July 1996.
The specifications for the OBJECT tag can be found at
"http://www.w3.org/pub/WWW/TR/WD-object.html"
To enable the Talker to talk to a server some options need to
be configured. An example PARAM tag looks like this:
The example below is what a typical web page might use to
support the Talker control. Note: for example purposes only
I have shown the defaulted tags despite not changing their
value away from the defaults listed above.
The PARAM tags
<PARAM NAME = "FriendlyName" VALUE = "MTV OnLine">
PARAM Tag
Definition
"Category"
(Mandatory) This is unique name by which the
conference will be known to the name service. This will in the
future be the URL of the hosting page.
"FriendlyName"
(Defaults to "Conference") This is the name of the conference
that is used in displays. The text on the button uses this if the
join or leave text are set to empty string.
"ServerName"
(Mandatory) This is the host name/ip of the server running the
VDMS services.
"ServerPort"
(Defaults to numeric 3060) This is the port number of the server running the
VDMS services.
"ConferenceDownloadSite"
(Defaults to "http://talker.onlive.com/talker/download.htm") This is web site from
which the Conference Manager can be downloaded.
"HelpSite"
(Defaults to "http://talker.onlive.com/talker/help.htm") This is web site that
the Talker goes to when the user requests help.
"HomeSite"
(Defaults to "http://www.onlive.com") This is not used
for anything except in the help screen there is a button that
takes the user to the OnLive home page.
"JoinText"
(Defaults to "Join Conference") Whatever you put in here will be
used on the button that is used to join and leave a conference.
The button toggles between join and leave depending on the current
state, this text works in conjunction
with the "LeaveText" tag.
"LeaveText"
(Defaults to "Leave Conference") Whatever you put in here will be
used on the button that is used to join
and leave a conference. The button toggles between join and leave
depending on the current state, this text works in conjunction
with the "JoinText" tag.
"ParticipantCount"
(Defaults to "10") This is the maximum number of people in a
single char group.
"AutoClone"
(Defaults to "TRUE") Use either TRUE or FALSE (case unimportant)
to direct the conference manager to create a new clone of the conference
when the current one has reached the "ParticipantCount" number of people.
An Example
<OBJECT
WIDTH=200
HEIGHT=300
CLASSID="clsid:F05A3DA4-6479-11CF-8F4E-444553540000">
<param name="Category" value="http://www.mtv.com/ToriAmos.htm">
<param name="FriendlyName" value="Tori Amos on MTV">
<param name="ServerName" value="server256.mtv.com">
<param name="ServerPort" value=3061>
<param name="ConferenceDownloadSite" value="http://talker.onlive.com/talker/download.htm">
<param name="HelpSite" value="http://talker.onlive.com/talker/help.htm">
<param name="HomeSite" value="http://www.onlive.com">
<param name="JoinText" value="Join: Tori Amos">
<param name="LeaveText" value="Leave: Tori Amos">
<param name="ParticipantCount" value="42">
<param name="AutoClone" value="TRUE">
</OBJECT>