root/branches/2.1/nt/ddeclient.c

Revision 3104, 2.0 kB (checked in by himi, 6 years ago)

set svn:eol-style

  • Property svn:eol-style set to native
Line 
1 /* Simple client interface to DDE servers.
2    Copyright (C) 1998 Free Software Foundation, Inc.
3
4 This file is part of GNU Emacs.
5
6 GNU Emacs is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU Emacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Emacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 #include <windows.h>
22 #include <ddeml.h>
23 #include <stdlib.h>
24 #include <stdio.h>
25
26 HDDEDATA CALLBACK
27 DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
28              HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
29              DWORD dwData1, DWORD dwData2)
30 {
31   return ((HDDEDATA) NULL);
32 }
33
34 #define DdeCommand(str)         \
35         DdeClientTransaction (str, strlen (str)+1, HConversation, (HSZ)NULL, \
36                               CF_TEXT, XTYP_EXECUTE, 30000, NULL)
37
38 int
39 main (argc, argv)
40      int argc;
41      char *argv[];
42 {
43   DWORD idDde = 0;
44   HCONV HConversation;
45   HSZ   Server;
46   HSZ   Topic = 0;
47   char  command[1024];
48
49   if (argc < 2)
50     {
51       fprintf (stderr, "usage: ddeclient server [topic]\n");
52       exit (1);
53     }
54
55   DdeInitialize (&idDde, (PFNCALLBACK)DdeCallback, APPCMD_CLIENTONLY, 0);
56
57   Server = DdeCreateStringHandle (idDde, argv[1], CP_WINANSI);
58   if (argc > 2)
59     Topic = DdeCreateStringHandle (idDde, argv[2], CP_WINANSI);
60
61   HConversation = DdeConnect (idDde, Server, Topic, NULL);
62   if (HConversation != 0)
63     {
64       while (fgets (command, sizeof(command), stdin) != NULL)
65         DdeCommand (command);
66
67       DdeDisconnect (HConversation);
68     }
69
70   DdeFreeStringHandle (idDde, Server);
71   if (Topic)
72     DdeFreeStringHandle (idDde, Topic);
73   DdeUninitialize (idDde);
74
75   return (0);
76 }
Note: See TracBrowser for help on using the browser.