root/trunk/nt/ddeclient.c

Revision 4220, 2.2 kB (checked in by miyoshi, 6 months ago)

Sync up with Emacs22.2.

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