home *** CD-ROM | disk | FTP | other *** search
- Visual IRC '96/'97's DDE interface (0.65 and above)
- ===================================================
-
- IMPORTANT NOTE!! This has changed EXTENSIVELY in 0.65. Your old DDE stuff
- will not work.
-
- ViRC '97 currently supports two types of DDE requests: IRC_ParseVars and
- IRC_Execute. IRC_ParseVars evaluates an expression, parsing the variables
- and functions out, and IRC_Execute causes ViRC '97 to execute an IRC
- command as if it were typed at the keyboard. Thus "front-end" programs can
- be written to control ViRC '97. This is, of course, a very powerful
- capability.
-
- Usage examples
- --------------
-
- The first lot of examples provided are written in Visual Basic, and, at
- the bottom of this file, you'll also find some routines to show how this
- can be done in Delphi. The technique should be easy to do in C++ too.
-
- IRC_ParseVars
- -------------
-
- Create a label on a VB form and call it txDDE. Then execute the following
- code:
-
- txDDE.LinkTopic = "VIRC96|DDE"
- txDDE.LinkItem = "IRC_ParseVars"
- txDDE.LinkMode = 1
- txDDE.LinkExecute "$rand(100)"
-
- The will parse the text $rand(100), returning a random number between 0 and
- 99, and setting the caption of txDDE to the returned random number.
-
- You can return the value of any text, for example, you could use the
- following code:
-
- txDDE.LinkTopic = "VIRC96|DDE"
- txDDE.LinkItem = "IRC_ParseVars"
- txDDE.LinkMode = 1
- txDDE.LinkExecute "My nickname is $N."
-
- This would return the string "My nickname is <your nickname>".
-
- IRC_Execute
- -----------
-
- Causes ViRC '96 to execute an IRC command, as if it were entered at the
- keyboard. Example:
-
- txDDE.LinkTopic = "VIRC96|IRC_Execute"
- txDDE.LinkMode = 2
- txDDE.LinkExecute "Join #quake"
-
- This will make ViRC '96 join the channel #quake. Any valid IRC command
- may be placed in the LinkExecute field.
-
- Examples for Delphi 1.0/2.0/3.0
- ===============================
-
- // This routine takes a string (which may contain ViRC '97 variables and
- // functions) and uses ViRC '97 to evaluate it using DDE.
- //
- // Example: ShowMessage(ViRC97_ParseString('I''m running ViRC ''97 version $ver.'));
-
- function ViRC97_ParseString(x: string): string;
- var
- ddeC: TDDEClientConv;
- ddeI: TDDEClientItem;
- begin
- ddeC := TDDEClientConv.Create(nil);
- ddeI := TDDEClientItem.Create(nil);
- ddeI.DDEConv := ddeC;
- if (ddeC.SetLink('VIRC97', 'DDE')) then
- begin
- ddeI.DdeItem := 'IRC_ParseVars';
- ddeC.ExecuteMacro(PChar(x), True);
- Result := ddeI.Text;
- end;
- ddeC.Free;
- ddeI.Free;
- end;
-
- // This routine executes a single ViRC '97 command.
- //
- // Example: ViRC97_Execute('MessageBox ViRC ''97 says "Hello" by DDE!!');
-
- procedure ViRC97_Execute(x: string);
- var
- ddeC: TDDEClientConv;
- begin
- ddeC := TDDEClientConv.Create(nil);
- if (ddeC.SetLink('VIRC97', 'IRC_Execute')) then
- ddeC.ExecuteMacro(PChar(x), True);
- ddeC.Free;
- end;
-