1st cut implementation of DdeNameService (omits monitor callback)
[wine] / documentation / status / dde
1 This is the status for DDE (i.e. raw dde messages) and ddeml.
2
3 DDE was implemented by Micheal Veksler some time ago, it has been reported as broken
4 by changes in the server and related parts of wine.  AFAIK no-one has tried to fix these
5 and I have not tried to test them.
6
7 ddeml was untouched until December 1998 when some of the Corel/Macadamian team started
8 writing bits that were needed by Corel for the Wordperfect Suite port. These were mainly
9 around string handling and have been identified in the change history for each routine.
10 They were written to cope with a single instance only. About a week later I started 
11 looking at ddeml as a whole.
12
13 The initialisation was tackled first, then the routines produced by Corel/Macadamian
14 were modified to cope with multiple instances of dde client/server and a first cut at
15 the un-initialise routine. 
16
17 DdeNameService has now been produced as a first-cut routine, but the monitor notification 
18 must be tackled, followed by the main message reception routine and the invoking of the 
19 callback. Serious testing from this point may well depend on Wine thread handling 
20 settling down.
21
22 The strategy so far has been to tackle the Unicode versions first. Once they have been
23 accepted as close to complete then the 32-bit ASCII routines then the 16-bit routines.
24
25 It is recognised that the solutions adopted may well not be suitable for wine-OS2, since
26 that OS has its own DDE rotuines intermediate in integration between raw DDE and ddeml,
27 also O/S 2 users may well want programs running under Wine to talk to native O/S 2 programs.
28 I do not have knowledge of MacOS or the internals of BeOS, but these may suffer from the
29 same problems.
30
31 TO DO
32
33 Complete initialisation, some of the 2nd call validation conditions have not been worked out
34 yet and the code for enabling the message loop needs writing.
35
36 Complete initialize and unitialize, also add the callback handling to DdeNameService.
37
38 Add true Unicode handling to CreateStringHandle, QueryString, CmpStringHandles. Also find
39 out why Initialize needs ASCII and Unicode variants.
40
41 Add DdeGetLAstError and related handling in all other modules. Also find out what to do about
42 storing errors that result in the instance failing to initialise in some way.
43
44
45 Just about all the rest
46
47 More specific items are commented in the code.
48
49
50 Keith Matthews