annotate nt/ddeclient.c @ 70206:d099dc7dc981

Fix last change: (produce_stretch_glyph): Assume that face box height and width is already included in stretch glyph size so caller doesn't have to consider the extra space otherwise added (fixes problem in ses.el).
author Kim F. Storm <storm@cua.dk>
date Mon, 24 Apr 2006 00:22:26 +0000
parents 067115a6e738
children 4ad431d8e164 c5406394f567
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21731
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
1 /* Simple client interface to DDE servers.
68648
067115a6e738 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64890
diff changeset
2 Copyright (C) 1998, 2002, 2003, 2004, 2005,
067115a6e738 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64890
diff changeset
3 2006 Free Software Foundation, Inc.
21731
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
4
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
5 This file is part of GNU Emacs.
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
6
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
10 any later version.
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
11
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
15 GNU General Public License for more details.
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
16
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64083
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
23a17af379b1 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
20 Boston, MA 02110-1301, USA. */
21731
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
21
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
22 #include <windows.h>
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
23 #include <ddeml.h>
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
24 #include <stdlib.h>
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
25 #include <stdio.h>
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
26
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 21731
diff changeset
27 HDDEDATA CALLBACK
21731
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
28 DdeCallback (UINT uType, UINT uFmt, HCONV hconv,
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
29 HSZ hsz1, HSZ hsz2, HDDEDATA hdata,
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
30 DWORD dwData1, DWORD dwData2)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
31 {
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
32 return ((HDDEDATA) NULL);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
33 }
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
34
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
35 #define DdeCommand(str) \
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
36 DdeClientTransaction (str, strlen (str)+1, HConversation, (HSZ)NULL, \
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
37 CF_TEXT, XTYP_EXECUTE, 30000, NULL)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
38
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
39 int
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
40 main (argc, argv)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
41 int argc;
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
42 char *argv[];
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
43 {
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
44 DWORD idDde = 0;
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
45 HCONV HConversation;
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
46 HSZ Server;
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
47 HSZ Topic = 0;
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
48 char command[1024];
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
49
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
50 if (argc < 2)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
51 {
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
52 fprintf (stderr, "usage: ddeclient server [topic]\n");
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
53 exit (1);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
54 }
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
55
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
56 DdeInitialize (&idDde, (PFNCALLBACK)DdeCallback, APPCMD_CLIENTONLY, 0);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
57
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
58 Server = DdeCreateStringHandle (idDde, argv[1], CP_WINANSI);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
59 if (argc > 2)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
60 Topic = DdeCreateStringHandle (idDde, argv[2], CP_WINANSI);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
61
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
62 HConversation = DdeConnect (idDde, Server, Topic, NULL);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
63 if (HConversation != 0)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
64 {
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
65 while (fgets (command, sizeof(command), stdin) != NULL)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
66 DdeCommand (command);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
67
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
68 DdeDisconnect (HConversation);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
69 }
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
70
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
71 DdeFreeStringHandle (idDde, Server);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
72 if (Topic)
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
73 DdeFreeStringHandle (idDde, Topic);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
74 DdeUninitialize (idDde);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
75
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
76 return (0);
4a0a3ae173d0 Initial revision
Geoff Voelker <voelker@cs.washington.edu>
parents:
diff changeset
77 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
78
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
79 /* arch-tag: 360d7a99-2cae-447e-8d06-41ca41987e30
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
80 (do not change this comment) */