Differences From Artifact [cc5f44d13c1d8af5]:
- File
src/win32/ddeml.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [80302d7833fbc86f]:
- File
src/win32/ddeml.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
> 1 /***********************************************************************\
> 2 * ddeml.d *
> 3 * *
> 4 * Windows API header module *
> 5 * *
> 6 * Translated from MinGW Windows headers *
> 7 * by Stewart Gordon *
> 8 * *
> 9 * Placed into public domain *
> 10 \***********************************************************************/
1 module win32.ddeml; 11 module win32.ddeml;
> 12 pragma(lib, "user32.lib");
2 | 13
3 // Translated from Microsoft Platform SDK August 2001 Edition <
4 // by Y.Tomino | 14 private import win32.basetsd, win32.windef, win32.winnt;
5 | 15
6 import win32.windef; | 16 enum : int {
> 17 CP_WINANSI = 1004,
> 18 CP_WINUNICODE = 1200
7 | 19 }
8 // #ifndef _INC_DDEMLH <
> 20
> 21 enum : UINT {
> 22 XTYPF_NOBLOCK = 2,
> 23 XTYPF_NODATA = 4,
> 24 XTYPF_ACKREQ = 8
> 25 }
> 26
> 27 enum : UINT {
> 28 XCLASS_MASK = 0xFC00,
> 29 XCLASS_BOOL = 0x1000,
> 30 XCLASS_DATA = 0x2000,
> 31 XCLASS_FLAGS = 0x4000,
> 32 XCLASS_NOTIFICATION = 0x8000
> 33 }
> 34
> 35 enum : UINT {
> 36 XST_NULL,
> 37 XST_INCOMPLETE,
> 38 XST_CONNECTED,
> 39 XST_INIT1,
> 40 XST_INIT2,
> 41 XST_REQSENT,
> 42 XST_DATARCVD,
> 43 XST_POKESENT,
> 44 XST_POKEACKRCVD,
> 45 XST_EXECSENT,
> 46 XST_EXECACKRCVD,
> 47 XST_ADVSENT,
> 48 XST_UNADVSENT,
> 49 XST_ADVACKRCVD,
> 50 XST_UNADVACKRCVD,
> 51 XST_ADVDATASENT,
> 52 XST_ADVDATAACKRCVD // = 16
> 53 }
> 54
> 55 enum : UINT {
> 56 XTYP_ERROR = XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 57 XTYP_ADVDATA = 0x0010 | XCLASS_FLAGS,
> 58 XTYP_ADVREQ = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK,
> 59 XTYP_ADVSTART = 0x0030 | XCLASS_BOOL,
> 60 XTYP_ADVSTOP = 0x0040 | XCLASS_NOTIFICATION,
> 61 XTYP_EXECUTE = 0x0050 | XCLASS_FLAGS,
> 62 XTYP_CONNECT = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK,
> 63 XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 64 XTYP_XACT_COMPLETE = 0x0080 | XCLASS_NOTIFICATION,
> 65 XTYP_POKE = 0x0090 | XCLASS_FLAGS,
> 66 XTYP_REGISTER = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 67 XTYP_REQUEST = 0x00B0 | XCLASS_DATA,
> 68 XTYP_DISCONNECT = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 69 XTYP_UNREGISTER = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 70 XTYP_WILDCONNECT = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK,
> 71 XTYP_MONITOR = 0X00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK,
> 72 XTYP_MASK = 0x00F0,
> 73 XTYP_SHIFT = 4
> 74 }
> 75
> 76 /+
> 77 #define TIMEOUT_ASYNC 0xFFFFFFFF
> 78 #define QID_SYNC 0xFFFFFFFF
> 79 +/
> 80
> 81 enum : UINT {
> 82 ST_CONNECTED = 1,
> 83 ST_ADVISE = 2,
> 84 ST_ISLOCAL = 4,
> 85 ST_BLOCKED = 8,
> 86 ST_CLIENT = 16,
> 87 ST_TERMINATED = 32,
> 88 ST_INLIST = 64,
> 89 ST_BLOCKNEXT = 128,
> 90 ST_ISSELF = 256
> 91 }
> 92
> 93 /+
> 94 #define CADV_LATEACK 0xFFFF
> 95 +/
> 96
> 97 enum : UINT {
> 98 DMLERR_NO_ERROR = 0,
> 99 DMLERR_FIRST = 0x4000,
> 100 DMLERR_ADVACKTIMEOUT = DMLERR_FIRST,
> 101 DMLERR_BUSY,
> 102 DMLERR_DATAACKTIMEOUT,
> 103 DMLERR_DLL_NOT_INITIALIZED,
> 104 DMLERR_DLL_USAGE,
> 105 DMLERR_EXECACKTIMEOUT,
> 106 DMLERR_INVALIDPARAMETER,
> 107 DMLERR_LOW_MEMORY,
> 108 DMLERR_MEMORY_ERROR,
> 109 DMLERR_NOTPROCESSED,
> 110 DMLERR_NO_CONV_ESTABLISHED,
> 111 DMLERR_POKEACKTIMEOUT,
> 112 DMLERR_POSTMSG_FAILED,
> 113 DMLERR_REENTRANCY,
> 114 DMLERR_SERVER_DIED,
> 115 DMLERR_SYS_ERROR,
> 116 DMLERR_UNADVACKTIMEOUT,
> 117 DMLERR_UNFOUND_QUEUE_ID, // = 0x4011
> 118 DMLERR_LAST = DMLERR_UNFOUND_QUEUE_ID
> 119 }
> 120
> 121 /+
9 // #define _INC_DDEMLH | 122 #define DDE_FACK 0x8000
> 123 #define DDE_FBUSY 0x4000
> 124 #define DDE_FDEFERUPD 0x4000
> 125 #define DDE_FACKREQ 0x8000
> 126 #define DDE_FRELEASE 0x2000
> 127 #define DDE_FREQUESTED 0x1000
> 128 #define DDE_FAPPSTATUS 0x00ff
> 129 #define DDE_FNOTPROCESSED 0
> 130 #define DDE_FACKRESERVED (~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS))
> 131 #define DDE_FADVRESERVED (~(DDE_FACKREQ|DDE_FDEFERUPD))
> 132 #define DDE_FDATRESERVED (~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED))
> 133 #define DDE_FPOKRESERVED (~DDE_FRELEASE)
> 134 #define MSGF_DDEMGR 0x8001
> 135 #define CBR_BLOCK ((HDDEDATA)0xffffffff)
> 136 +/
10 | 137
11 // #ifdef __cplusplus <
12 // extern "C" { <
13 // #endif /* __cplusplus */ <
> 138 const DWORD
> 139 APPCLASS_STANDARD = 0,
> 140 APPCLASS_MONITOR = 0x00000001,
> 141 APPCLASS_MASK = 0x0000000F,
> 142 APPCMD_CLIENTONLY = 0x00000010,
> 143 APPCMD_FILTERINITS = 0x00000020,
> 144 APPCMD_MASK = 0x00000FF0,
> 145 CBF_FAIL_SELFCONNECTIONS = 0x00001000,
> 146 CBF_FAIL_CONNECTIONS = 0x00002000,
> 147 CBF_FAIL_ADVISES = 0x00004000,
> 148 CBF_FAIL_EXECUTES = 0x00008000,
> 149 CBF_FAIL_POKES = 0x00010000,
> 150 CBF_FAIL_REQUESTS = 0x00020000,
> 151 CBF_FAIL_ALLSVRXACTIONS = 0x0003f000,
> 152 CBF_SKIP_CONNECT_CONFIRMS = 0x00040000,
> 153 CBF_SKIP_REGISTRATIONS = 0x00080000,
> 154 CBF_SKIP_UNREGISTRATIONS = 0x00100000,
> 155 CBF_SKIP_DISCONNECTS = 0x00200000,
> 156 CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000,
> 157 MF_HSZ_INFO = 0x01000000,
> 158 MF_SENDMSGS = 0x02000000,
> 159 MF_POSTMSGS = 0x04000000,
> 160 MF_CALLBACKS = 0x08000000,
> 161 MF_ERRORS = 0x10000000,
> 162 MF_LINKS = 0x20000000,
> 163 MF_CONV = 0x40000000,
> 164 MF_MASK = 0xFF000000;
14 | 165
15 alias void* HCONVLIST; <
16 alias void* HCONV; <
17 alias void* HSZ; <
> 166 enum : UINT {
> 167 EC_ENABLEALL = 0,
> 168 EC_ENABLEONE = ST_BLOCKNEXT,
> 169 EC_DISABLE = ST_BLOCKED,
> 170 EC_QUERYWAITING = 2
> 171 }
> 172
> 173 enum : UINT {
> 174 DNS_REGISTER = 1,
> 175 DNS_UNREGISTER = 2,
> 176 DNS_FILTERON = 4,
> 177 DNS_FILTEROFF = 8
> 178 }
> 179
> 180 /+
> 181 #define HDATA_APPOWNED 1
> 182 #define MAX_MONITORS 4
> 183 +/
> 184
> 185 enum : int {
> 186 MH_CREATE = 1,
> 187 MH_KEEP = 2,
> 188 MH_DELETE = 3,
> 189 MH_CLEANUP = 4
> 190 }
> 191
> 192 alias HANDLE HCONVLIST, HCONV, HSZ, HDDEDATA;
> 193
18 alias void* HDDEDATA; | 194 extern (Windows) alias HDDEDATA
19 // #define EXPENTRY CALLBACK <
> 195 function(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, DWORD, DWORD) PFNCALLBACK;
20 | 196
21 struct tagHSZPAIR { | 197 struct HSZPAIR {
22 HSZ hszSvc; | 198 HSZ hszSvc;
23 HSZ hszTopic; | 199 HSZ hszTopic;
24 } | 200 }
25 alias tagHSZPAIR HSZPAIR; <
26 <
27 alias HSZPAIR* PHSZPAIR; 201 alias HSZPAIR* PHSZPAIR;
28 202
29 struct tagCONVCONTEXT { | 203 struct CONVCONTEXT {
30 UINT cb; | 204 UINT cb = CONVCONTEXT.sizeof;
31 UINT wFlags; | 205 UINT wFlags;
32 UINT wCountryID; | 206 UINT wCountryID;
33 int iCodePage; | 207 int iCodePage;
34 DWORD dwLangID; | 208 DWORD dwLangID;
35 DWORD dwSecurity; | 209 DWORD dwSecurity;
36 SECURITY_QUALITY_OF_SERVICE qos; | 210 SECURITY_QUALITY_OF_SERVICE qos;
37 } 211 }
38 alias tagCONVCONTEXT CONVCONTEXT; <
39 <
40 alias CONVCONTEXT* PCONVCONTEXT; 212 alias CONVCONTEXT* PCONVCONTEXT;
41 213
42 struct tagCONVINFO { | 214 struct CONVINFO {
43 DWORD cb; | 215 DWORD cb = CONVINFO.sizeof;
44 DWORD_PTR hUser; | 216 DWORD hUser;
45 HCONV hConvPartner; | 217 HCONV hConvPartner;
46 HSZ hszSvcPartner; | 218 HSZ hszSvcPartner;
47 HSZ hszServiceReq; | 219 HSZ hszServiceReq;
48 HSZ hszTopic; | 220 HSZ hszTopic;
49 HSZ hszItem; | 221 HSZ hszItem;
50 UINT wFmt; | 222 UINT wFmt;
51 UINT wType; | 223 UINT wType;
52 UINT wStatus; | 224 UINT wStatus;
53 UINT wConvst; | 225 UINT wConvst;
54 UINT wLastError; | 226 UINT wLastError;
55 HCONVLIST hConvList; | 227 HCONVLIST hConvList;
56 CONVCONTEXT ConvCtxt; | 228 CONVCONTEXT ConvCtxt;
57 HWND hwnd; | 229 HWND hwnd;
58 HWND hwndPartner; | 230 HWND hwndPartner;
59 } 231 }
60 alias tagCONVINFO CONVINFO; <
61 <
62 alias CONVINFO* PCONVINFO; 232 alias CONVINFO* PCONVINFO;
63 233
64 enum : uint { XST_NULL = 0 } | 234 struct DDEML_MSG_HOOK_DATA {
65 enum : uint { XST_INCOMPLETE = 1 } | 235 UINT uiLo;
66 enum : uint { XST_CONNECTED = 2 } | 236 UINT uiHi;
67 enum : uint { XST_INIT1 = 3 } | 237 DWORD cbData;
68 enum : uint { XST_INIT2 = 4 } | 238 DWORD[8] Data;
69 enum : uint { XST_REQSENT = 5 } <
70 enum : uint { XST_DATARCVD = 6 } <
> 239 }
> 240
71 enum : uint { XST_POKESENT = 7 } | 241 struct MONHSZSTRUCT {
72 enum : uint { XST_POKEACKRCVD = 8 } | 242 UINT cb = MONHSZSTRUCT.sizeof;
73 enum : uint { XST_EXECSENT = 9 } | 243 int fsAction;
74 enum : uint { XST_EXECACKRCVD = 10 } | 244 DWORD dwTime;
75 enum : uint { XST_ADVSENT = 11 } | 245 HSZ hsz;
76 enum : uint { XST_UNADVSENT = 12 } | 246 HANDLE hTask;
77 enum : uint { XST_ADVACKRCVD = 13 } | 247 TCHAR[1] _str;
78 enum : uint { XST_UNADVACKRCVD = 14 } <
> 248
79 enum : uint { XST_ADVDATASENT = 15 } | 249 TCHAR* str() { return _str.ptr; }
80 enum : uint { XST_ADVDATAACKRCVD = 16 } <
> 250 }
> 251 alias MONHSZSTRUCT* PMONHSZSTRUCT;
81 252
82 enum : uint { CADV_LATEACK = 0xFFFF } | 253 struct MONLINKSTRUCT {
> 254 UINT cb = MONLINKSTRUCT.sizeof;
> 255 DWORD dwTime;
> 256 HANDLE hTask;
> 257 BOOL fEstablished;
> 258 BOOL fNoData;
> 259 HSZ hszSvc;
> 260 HSZ hszTopic;
> 261 HSZ hszItem;
> 262 UINT wFmt;
> 263 BOOL fServer;
> 264 HCONV hConvServer;
> 265 HCONV hConvClient;
> 266 }
> 267 alias MONLINKSTRUCT* PMONLINKSTRUCT;
83 268
84 enum : uint { ST_CONNECTED = 0x0001 } | 269 struct MONCONVSTRUCT {
85 enum : uint { ST_ADVISE = 0x0002 } | 270 UINT cb = MONCONVSTRUCT.sizeof;
86 enum : uint { ST_ISLOCAL = 0x0004 } | 271 BOOL fConnect;
87 enum : uint { ST_BLOCKED = 0x0008 } | 272 DWORD dwTime;
88 enum : uint { ST_CLIENT = 0x0010 } | 273 HANDLE hTask;
89 enum : uint { ST_TERMINATED = 0x0020 } | 274 HSZ hszSvc;
90 enum : uint { ST_INLIST = 0x0040 } | 275 HSZ hszTopic;
91 enum : uint { ST_BLOCKNEXT = 0x0080 } | 276 HCONV hConvClient;
92 enum : uint { ST_ISSELF = 0x0100 } | 277 HCONV hConvServer;
93 | 278 }
94 enum : uint { DDE_FACK = 0x8000 } | 279 alias MONCONVSTRUCT* PMONCONVSTRUCT;
95 enum : uint { DDE_FBUSY = 0x4000 } <
96 enum : uint { DDE_FDEFERUPD = 0x4000 } <
97 enum : uint { DDE_FACKREQ = 0x8000 } <
98 enum : uint { DDE_FRELEASE = 0x2000 } <
99 enum : uint { DDE_FREQUESTED = 0x1000 } <
100 enum : uint { DDE_FAPPSTATUS = 0x00ff } <
101 enum : uint { DDE_FNOTPROCESSED = 0x0000 } <
102 280
103 const uint DDE_FACKRESERVED = ~(DDE_FACK | DDE_FBUSY | DDE_FAPPSTATUS); | 281 struct MONCBSTRUCT {
104 const uint DDE_FADVRESERVED = ~(DDE_FACKREQ | DDE_FDEFERUPD); | 282 UINT cb = MONCBSTRUCT.sizeof;
105 const uint DDE_FDATRESERVED = ~(DDE_FACKREQ | DDE_FRELEASE | DDE_FREQUESTED); | 283 DWORD dwTime;
106 const uint DDE_FPOKRESERVED = ~(DDE_FRELEASE); | 284 HANDLE hTask;
107 <
> 285 DWORD dwRet;
108 enum : uint { MSGF_DDEMGR = 0x8001 } | 286 UINT wType;
109 <
> 287 UINT wFmt;
110 enum : uint { CP_WINANSI = 1004 } | 288 HCONV hConv;
111 enum : uint { CP_WINUNICODE = 1200 } | 289 HSZ hsz1;
112 // #ifdef UNICODE | 290 HSZ hsz2;
113 alias CP_WINUNICODE CP_WINNEUTRAL; | 291 HDDEDATA hData;
114 // #else // !UNICODE | 292 ULONG_PTR dwData1;
115 // #... | 293 ULONG_PTR dwData2;
116 // #endif // !UNICODE | 294 CONVCONTEXT cc;
117 <
> 295 DWORD cbData;
118 enum : uint { XTYPF_NOBLOCK = 0x0002 } | 296 DWORD[8] Data;
119 enum : uint { XTYPF_NODATA = 0x0004 } <
120 enum : uint { XTYPF_ACKREQ = 0x0008 } <
121 | 297 }
122 enum : uint { XCLASS_MASK = 0xFC00 } <
123 enum : uint { XCLASS_BOOL = 0x1000 } <
124 enum : uint { XCLASS_DATA = 0x2000 } <
125 enum : uint { XCLASS_FLAGS = 0x4000 } <
126 enum : uint { XCLASS_NOTIFICATION = 0x8000 } <
> 298 alias MONCBSTRUCT* PMONCBSTRUCT;
127 299
128 const uint XTYP_ERROR = 0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK ; | 300 struct MONERRSTRUCT {
129 const uint XTYP_ADVDATA = 0x0010 | XCLASS_FLAGS ; | 301 UINT cb = MONERRSTRUCT.sizeof;
130 const uint XTYP_ADVREQ = 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK ; | 302 UINT wLastError;
131 const uint XTYP_ADVSTART = 0x0030 | XCLASS_BOOL ; | 303 DWORD dwTime;
132 const uint XTYP_ADVSTOP = 0x0040 | XCLASS_NOTIFICATION; | 304 HANDLE hTask;
133 const uint XTYP_EXECUTE = 0x0050 | XCLASS_FLAGS ; <
134 const uint XTYP_CONNECT = 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK; <
135 const uint XTYP_CONNECT_CONFIRM = 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; <
136 const uint XTYP_XACT_COMPLETE = 0x0080 | XCLASS_NOTIFICATION ; <
137 const uint XTYP_POKE = 0x0090 | XCLASS_FLAGS ; <
138 const uint XTYP_REGISTER = 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; <
139 const uint XTYP_REQUEST = 0x00B0 | XCLASS_DATA ; <
140 const uint XTYP_DISCONNECT = 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; <
141 const uint XTYP_UNREGISTER = 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; <
142 const uint XTYP_WILDCONNECT = 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK; <
143 | 305 }
144 enum : uint { XTYP_MASK = 0x00F0 } <
145 enum : uint { XTYP_SHIFT = 4 } <
146 <
147 enum : uint { TIMEOUT_ASYNC = 0xFFFFFFFF } <
148 <
149 enum : uint { QID_SYNC = 0xFFFFFFFF } <
150 <
151 // #ifdef UNICODE <
152 const wchar[] SZDDESYS_TOPIC = "System"; <
153 const wchar[] SZDDESYS_ITEM_TOPICS = "Topics"; <
154 const wchar[] SZDDESYS_ITEM_SYSITEMS = "SysItems"; <
155 const wchar[] SZDDESYS_ITEM_RTNMSG = "ReturnMessage"; <
156 const wchar[] SZDDESYS_ITEM_STATUS = "Status"; <
157 const wchar[] SZDDESYS_ITEM_FORMATS = "Formats"; <
158 const wchar[] SZDDESYS_ITEM_HELP = "Help"; <
159 const wchar[] SZDDE_ITEM_ITEMLIST = "TopicItemList"; <
160 // #else <
161 // #... <
162 // #... <
163 // #... <
164 // #... <
165 // #... <
166 // #... <
167 // #... <
168 // #... <
169 // #endif <
170 <
171 // typedef HDDEDATA CALLBACK FNCALLBACK(UINT wType, UINT wFmt, HCONV hConv, HSZ <
172 extern(Windows) alias HDDEDATA function(UINT wType, UINT wFmt, HCONV hConv, HSZ <
173 <
174 const HDDEDATA CBR_BLOCK = cast(HDDEDATA)-1; <
175 <
176 extern(Windows) export UINT DdeInitializeA( LPDWORD pidInst, PFNCALLBACK pfnC <
177 DWORD afCmd, DWORD ulRes); <
178 extern(Windows) export UINT DdeInitializeW( LPDWORD pidInst, PFNCALLBACK pfnC <
179 DWORD afCmd, DWORD ulRes); <
180 // #ifdef UNICODE <
181 alias DdeInitializeW DdeInitialize; <
182 // #else <
183 // #... <
184 // #endif // !UNICODE <
185 <
186 enum : uint { CBF_FAIL_SELFCONNECTIONS = 0x00001000 } <
187 enum : uint { CBF_FAIL_CONNECTIONS = 0x00002000 } <
188 enum : uint { CBF_FAIL_ADVISES = 0x00004000 } <
189 enum : uint { CBF_FAIL_EXECUTES = 0x00008000 } <
190 enum : uint { CBF_FAIL_POKES = 0x00010000 } <
191 enum : uint { CBF_FAIL_REQUESTS = 0x00020000 } <
192 enum : uint { CBF_FAIL_ALLSVRXACTIONS = 0x0003f000 } <
193 <
194 enum : uint { CBF_SKIP_CONNECT_CONFIRMS = 0x00040000 } <
195 enum : uint { CBF_SKIP_REGISTRATIONS = 0x00080000 } <
196 enum : uint { CBF_SKIP_UNREGISTRATIONS = 0x00100000 } <
197 enum : uint { CBF_SKIP_DISCONNECTS = 0x00200000 } <
198 enum : uint { CBF_SKIP_ALLNOTIFICATIONS = 0x003c0000 } <
199 <
200 enum : uint { APPCMD_CLIENTONLY = 0x00000010 } <
201 enum : uint { APPCMD_FILTERINITS = 0x00000020 } <
202 enum : uint { APPCMD_MASK = 0x00000FF0 } <
203 <
204 enum : uint { APPCLASS_STANDARD = 0x00000000 } <
205 enum : uint { APPCLASS_MASK = 0x0000000F } <
> 306 alias MONERRSTRUCT* PMONERRSTRUCT;
206 307
207 extern(Windows) export BOOL DdeUninitialize( DWORD idInst); | 308 struct MONMSGSTRUCT {
208 <
> 309 UINT cb = MONMSGSTRUCT.sizeof;
209 extern(Windows) export HCONVLIST DdeConnectList( DWORD idInst, HSZ hszService, | 310 HWND hwndTo;
210 HCONVLIST hConvList, PCONVCONTEXT pCC); | 311 DWORD dwTime;
211 extern(Windows) export HCONV DdeQueryNextServer( HCONVLIST hConvList, HCONV hC | 312 HANDLE hTask;
212 extern(Windows) export BOOL DdeDisconnectList( HCONVLIST hConvList); | 313 UINT wMsg;
213 <
> 314 WPARAM wParam;
214 extern(Windows) export HCONV DdeConnect( DWORD idInst, HSZ hszService, HSZ hs | 315 LPARAM lParam;
215 PCONVCONTEXT pCC); | 316 DDEML_MSG_HOOK_DATA dmhd;
216 extern(Windows) export BOOL DdeDisconnect( HCONV hConv); <
217 extern(Windows) export HCONV DdeReconnect( HCONV hConv); <
218 extern(Windows) export UINT DdeQueryConvInfo( HCONV hConv, DWORD idTransaction <
219 extern(Windows) export BOOL DdeSetUserHandle( HCONV hConv, DWORD id, DWORD_PT <
220 extern(Windows) export BOOL DdeAbandonTransaction( DWORD idInst, HCONV hConv, <
221 | 317 }
222 extern(Windows) export BOOL DdePostAdvise( DWORD idInst, HSZ hszTopic, HSZ hs <
223 extern(Windows) export BOOL DdeEnableCallback( DWORD idInst, HCONV hConv, UIN <
224 extern(Windows) export BOOL DdeImpersonateClient( HCONV hConv); <
225 <
226 enum : uint { EC_ENABLEALL = 0 } <
227 alias ST_BLOCKNEXT EC_ENABLEONE; <
228 alias ST_BLOCKED EC_DISABLE; <
229 enum : uint { EC_QUERYWAITING = 2 } <
230 <
231 extern(Windows) export HDDEDATA DdeNameService( DWORD idInst, HSZ hsz1, HSZ h <
232 <
233 enum : uint { DNS_REGISTER = 0x0001 } <
234 enum : uint { DNS_UNREGISTER = 0x0002 } <
235 enum : uint { DNS_FILTERON = 0x0004 } <
236 enum : uint { DNS_FILTEROFF = 0x0008 } <
237 <
238 extern(Windows) export HDDEDATA DdeClientTransaction( LPBYTE pData, DWORD cbDa <
239 HCONV hConv, HSZ hszItem, UINT wFmt, UINT wType, <
240 DWORD dwTimeout, LPDWORD pdwResult); <
241 <
242 extern(Windows) export HDDEDATA DdeCreateDataHandle( DWORD idInst, LPBYTE pSrc <
243 DWORD cbOff, HSZ hszItem, UINT wFmt, UINT afCmd); <
244 extern(Windows) export HDDEDATA DdeAddData( HDDEDATA hData, LPBYTE pSrc, DWOR <
245 extern(Windows) export DWORD DdeGetData( HDDEDATA hData, LPBYTE pDst, DWORD c <
246 extern(Windows) export LPBYTE DdeAccessData( HDDEDATA hData, LPDWORD pcbDataSi <
247 extern(Windows) export BOOL DdeUnaccessData( HDDEDATA hData); <
248 extern(Windows) export BOOL DdeFreeDataHandle( HDDEDATA hData); <
249 <
250 enum : uint { HDATA_APPOWNED = 0x0001 } <
251 <
252 extern(Windows) export UINT DdeGetLastError( DWORD idInst); <
253 <
254 enum : uint { DMLERR_NO_ERROR = 0 } <
255 <
256 enum : uint { DMLERR_FIRST = 0x4000 } <
257 <
258 enum : uint { DMLERR_ADVACKTIMEOUT = 0x4000 } <
259 enum : uint { DMLERR_BUSY = 0x4001 } <
260 enum : uint { DMLERR_DATAACKTIMEOUT = 0x4002 } <
261 enum : uint { DMLERR_DLL_NOT_INITIALIZED = 0x4003 } <
262 enum : uint { DMLERR_DLL_USAGE = 0x4004 } <
263 enum : uint { DMLERR_EXECACKTIMEOUT = 0x4005 } <
264 enum : uint { DMLERR_INVALIDPARAMETER = 0x4006 } <
265 enum : uint { DMLERR_LOW_MEMORY = 0x4007 } <
266 enum : uint { DMLERR_MEMORY_ERROR = 0x4008 } <
267 enum : uint { DMLERR_NOTPROCESSED = 0x4009 } <
268 enum : uint { DMLERR_NO_CONV_ESTABLISHED = 0x400a } <
269 enum : uint { DMLERR_POKEACKTIMEOUT = 0x400b } <
270 enum : uint { DMLERR_POSTMSG_FAILED = 0x400c } <
271 enum : uint { DMLERR_REENTRANCY = 0x400d } <
272 enum : uint { DMLERR_SERVER_DIED = 0x400e } <
273 enum : uint { DMLERR_SYS_ERROR = 0x400f } <
274 enum : uint { DMLERR_UNADVACKTIMEOUT = 0x4010 } <
275 enum : uint { DMLERR_UNFOUND_QUEUE_ID = 0x4011 } <
276 <
277 enum : uint { DMLERR_LAST = 0x4011 } <
> 318 alias MONMSGSTRUCT* PMONMSGSTRUCT;
278 319
279 extern(Windows) export HSZ DdeCreateStringHandleA( DWORD idInst, LPCSTR psz, | 320 extern (Windows) {
> 321 BOOL DdeAbandonTransaction(DWORD, HCONV, DWORD);
> 322 PBYTE DdeAccessData(HDDEDATA, PDWORD);
> 323 HDDEDATA DdeAddData(HDDEDATA, PBYTE, DWORD, DWORD);
> 324 HDDEDATA DdeClientTransaction(PBYTE, DWORD, HCONV, HSZ, UINT, UINT,
> 325 DWORD, PDWORD);
> 326 int DdeCmpStringHandles(HSZ, HSZ);
> 327 HCONV DdeConnect(DWORD, HSZ, HSZ, PCONVCONTEXT);
> 328 HCONVLIST DdeConnectList(DWORD, HSZ, HSZ, HCONVLIST, PCONVCONTEXT);
> 329 HDDEDATA DdeCreateDataHandle(DWORD, PBYTE, DWORD, DWORD, HSZ, UINT,
> 330 UINT);
280 extern(Windows) export HSZ DdeCreateStringHandleW( DWORD idInst, LPCWSTR psz, | 331 HSZ DdeCreateStringHandleA(DWORD, LPSTR, int);
281 // #ifdef UNICODE <
282 alias DdeCreateStringHandleW DdeCreateStringHandle; | 332 HSZ DdeCreateStringHandleW(DWORD, LPWSTR, int);
283 // #else <
284 // #... <
285 // #endif // !UNICODE <
286 extern(Windows) export DWORD DdeQueryStringA( DWORD idInst, HSZ hsz, LPSTR p <
287 extern(Windows) export DWORD DdeQueryStringW( DWORD idInst, HSZ hsz, LPWSTR <
288 // #ifdef UNICODE <
289 alias DdeQueryStringW DdeQueryString; <
290 // #else <
291 // #... <
292 // #endif // !UNICODE | 333 BOOL DdeDisconnect(HCONV);
> 334 BOOL DdeDisconnectList(HCONVLIST);
> 335 BOOL DdeEnableCallback(DWORD, HCONV, UINT);
> 336 BOOL DdeFreeDataHandle(HDDEDATA);
293 extern(Windows) export BOOL DdeFreeStringHandle( DWORD idInst, HSZ hsz); | 337 BOOL DdeFreeStringHandle(DWORD, HSZ);
294 extern(Windows) export BOOL DdeKeepStringHandle( DWORD idInst, HSZ hsz); <
295 extern(Windows) export int DdeCmpStringHandles( HSZ hsz1, HSZ hsz2); <
296 <
297 // #ifndef NODDEMLSPY | 338 DWORD DdeGetData(HDDEDATA, PBYTE, DWORD, DWORD);
298 <
> 339 UINT DdeGetLastError(DWORD);
299 struct tagDDEML_MSG_HOOK_DATA { | 340 BOOL DdeImpersonateClient(HCONV);
300 UINT_PTR uiLo; | 341 UINT DdeInitializeA(PDWORD, PFNCALLBACK, DWORD, DWORD);
301 UINT_PTR uiHi; | 342 UINT DdeInitializeW(PDWORD, PFNCALLBACK, DWORD, DWORD);
302 DWORD cbData; | 343 BOOL DdeKeepStringHandle(DWORD, HSZ);
303 DWORD Data[8]; | 344 HDDEDATA DdeNameService(DWORD, HSZ, HSZ, UINT);
> 345 BOOL DdePostAdvise(DWORD, HSZ, HSZ);
> 346 UINT DdeQueryConvInfo(HCONV, DWORD, PCONVINFO);
> 347 HCONV DdeQueryNextServer(HCONVLIST, HCONV);
> 348 DWORD DdeQueryStringA(DWORD, HSZ, LPSTR, DWORD, int);
> 349 DWORD DdeQueryStringW(DWORD, HSZ, LPWSTR, DWORD, int);
> 350 HCONV DdeReconnect(HCONV);
> 351 BOOL DdeSetUserHandle(HCONV, DWORD, DWORD);
> 352 BOOL DdeUnaccessData(HDDEDATA);
> 353 BOOL DdeUninitialize(DWORD);
304 } 354 }
305 alias tagDDEML_MSG_HOOK_DATA DDEML_MSG_HOOK_DATA; <
306 alias tagDDEML_MSG_HOOK_DATA* PDDEML_MSG_HOOK_DATA; <
307 355
308 struct tagMONMSGSTRUCT { | 356 const TCHAR[]
309 UINT cb; | 357 SZDDESYS_TOPIC = "System",
310 HWND hwndTo; | 358 SZDDESYS_ITEM_TOPICS = "Topics",
311 DWORD dwTime; | 359 SZDDESYS_ITEM_SYSITEMS = "SysItems",
312 HANDLE hTask; | 360 SZDDESYS_ITEM_RTNMSG = "ReturnMessage",
313 UINT wMsg; | 361 SZDDESYS_ITEM_STATUS = "Status",
314 WPARAM wParam; | 362 SZDDESYS_ITEM_FORMATS = "Formats",
315 LPARAM lParam; | 363 SZDDESYS_ITEM_HELP = "Help",
316 DDEML_MSG_HOOK_DATA dmhd; | 364 SZDDE_ITEM_ITEMLIST = "TopicItemList";
317 } <
318 alias tagMONMSGSTRUCT MONMSGSTRUCT; <
319 alias tagMONMSGSTRUCT* PMONMSGSTRUCT; <
320 365
321 struct tagMONCBSTRUCT { | 366 version (Unicode) {
322 UINT cb; | 367 alias DdeCreateStringHandleW DdeCreateStringHandle;
323 DWORD dwTime; | 368 alias DdeInitializeW DdeInitialize;
324 HANDLE hTask; | 369 alias DdeQueryStringW DdeQueryString;
325 DWORD dwRet; <
326 UINT wType; <
327 UINT wFmt; <
328 HCONV hConv; <
329 HSZ hsz1; <
330 HSZ hsz2; <
331 HDDEDATA hData; <
332 ULONG_PTR dwData1; <
333 ULONG_PTR dwData2; <
334 CONVCONTEXT cc; <
335 DWORD cbData; <
336 DWORD Data[8]; <
337 } <
338 alias tagMONCBSTRUCT MONCBSTRUCT; <
339 alias tagMONCBSTRUCT* PMONCBSTRUCT; <
340 <
341 struct tagMONHSZSTRUCTA { <
342 UINT cb; <
343 BOOL fsAction; <
344 DWORD dwTime; <
345 HSZ hsz; <
346 HANDLE hTask; <
347 CHAR str[1]; <
348 } <
349 alias tagMONHSZSTRUCTA MONHSZSTRUCTA; <
350 alias tagMONHSZSTRUCTA* PMONHSZSTRUCTA; <
351 <
352 struct tagMONHSZSTRUCTW { <
353 UINT cb; <
354 BOOL fsAction; <
355 DWORD dwTime; <
356 HSZ hsz; <
357 HANDLE hTask; <
358 WCHAR str[1]; <
359 } <
360 alias tagMONHSZSTRUCTW MONHSZSTRUCTW; <
361 alias tagMONHSZSTRUCTW* PMONHSZSTRUCTW; <
362 <
363 // #ifdef UNICODE <
364 alias MONHSZSTRUCTW MONHSZSTRUCT; <
365 alias PMONHSZSTRUCTW PMONHSZSTRUCT; <
366 // #else | 370 } else {
367 // ... <
368 // #endif // UNICODE <
> 371 alias DdeCreateStringHandleA DdeCreateStringHandle;
> 372 alias DdeInitializeA DdeInitialize;
> 373 alias DdeQueryStringA DdeQueryString;
369 | 374 }
370 enum : uint { MH_CREATE = 1 } <
371 enum : uint { MH_KEEP = 2 } <
372 enum : uint { MH_DELETE = 3 } <
373 enum : uint { MH_CLEANUP = 4 } <
374 <
375 struct tagMONERRSTRUCT { <
376 UINT cb; <
377 UINT wLastError; <
378 DWORD dwTime; <
379 HANDLE hTask; <
380 } <
381 alias tagMONERRSTRUCT MONERRSTRUCT; <
382 alias tagMONERRSTRUCT* PMONERRSTRUCT; <
383 <
384 struct tagMONLINKSTRUCT { <
385 UINT cb; <
386 DWORD dwTime; <
387 HANDLE hTask; <
388 BOOL fEstablished; <
389 BOOL fNoData; <
390 HSZ hszSvc; <
391 HSZ hszTopic; <
392 HSZ hszItem; <
393 UINT wFmt; <
394 BOOL fServer; <
395 HCONV hConvServer; <
396 HCONV hConvClient; <
397 } <
398 alias tagMONLINKSTRUCT MONLINKSTRUCT; <
399 alias tagMONLINKSTRUCT* PMONLINKSTRUCT; <
400 <
401 struct tagMONCONVSTRUCT { <
402 UINT cb; <
403 BOOL fConnect; <
404 DWORD dwTime; <
405 HANDLE hTask; <
406 HSZ hszSvc; <
407 HSZ hszTopic; <
408 HCONV hConvClient; <
409 HCONV hConvServer; <
410 } <
411 alias tagMONCONVSTRUCT MONCONVSTRUCT; <
412 alias tagMONCONVSTRUCT* PMONCONVSTRUCT; <
413 <
414 enum : uint { MAX_MONITORS = 4 } <
415 enum : uint { APPCLASS_MONITOR = 0x00000001 } <
416 const uint XTYP_MONITOR = 0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK; <
417 <
418 enum : uint { MF_HSZ_INFO = 0x01000000 } <
419 enum : uint { MF_SENDMSGS = 0x02000000 } <
420 enum : uint { MF_POSTMSGS = 0x04000000 } <
421 enum : uint { MF_CALLBACKS = 0x08000000 } <
422 enum : uint { MF_ERRORS = 0x10000000 } <
423 enum : uint { MF_LINKS = 0x20000000 } <
424 enum : uint { MF_CONV = 0x40000000 } <
425 <
426 enum : uint { MF_MASK = 0xFF000000 } <
427 // #endif /* NODDEMLSPY */ <
428 <
429 // #ifdef __cplusplus <
430 // } <
431 // #endif /* __cplusplus */ <
432 <
433 // #endif /* _INC_DDEMLH */ <
434 <