2 * Windows API header module
4 * Translated from MinGW Windows headers
6 * Authors: Stewart Gordon
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC core/sys/windows/_ddeml.d)
10 module core
.sys
.windows
.ddeml
;
14 version (ANSI
) {} else version = Unicode
;
15 pragma(lib
, "user32");
17 import core
.sys
.windows
.basetsd
, core
.sys
.windows
.windef
, core
.sys
.windows
.winnt
;
19 mixin DECLARE_HANDLE
!("HCONVLIST");
20 mixin DECLARE_HANDLE
!("HCONV");
21 mixin DECLARE_HANDLE
!("HSZ");
22 mixin DECLARE_HANDLE
!("HDDEDATA");
39 XCLASS_FLAGS
= 0x4000,
40 XCLASS_NOTIFICATION
= 0x8000
60 XST_ADVDATAACKRCVD
// = 16
64 XTYP_ERROR
= XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
65 XTYP_ADVDATA
= 0x0010 | XCLASS_FLAGS
,
66 XTYP_ADVREQ
= 0x0020 | XCLASS_DATA | XTYPF_NOBLOCK
,
67 XTYP_ADVSTART
= 0x0030 | XCLASS_BOOL
,
68 XTYP_ADVSTOP
= 0x0040 | XCLASS_NOTIFICATION
,
69 XTYP_EXECUTE
= 0x0050 | XCLASS_FLAGS
,
70 XTYP_CONNECT
= 0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK
,
71 XTYP_CONNECT_CONFIRM
= 0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
72 XTYP_XACT_COMPLETE
= 0x0080 | XCLASS_NOTIFICATION
,
73 XTYP_POKE
= 0x0090 | XCLASS_FLAGS
,
74 XTYP_REGISTER
= 0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
75 XTYP_REQUEST
= 0x00B0 | XCLASS_DATA
,
76 XTYP_DISCONNECT
= 0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
77 XTYP_UNREGISTER
= 0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
78 XTYP_WILDCONNECT
= 0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK
,
79 XTYP_MONITOR
= 0X00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK
,
85 TIMEOUT_ASYNC
= 0xFFFFFFFF
105 CADV_LATEACK
= 0xFFFF
110 DMLERR_FIRST
= 0x4000,
111 DMLERR_ADVACKTIMEOUT
= DMLERR_FIRST
,
113 DMLERR_DATAACKTIMEOUT
,
114 DMLERR_DLL_NOT_INITIALIZED
,
116 DMLERR_EXECACKTIMEOUT
,
117 DMLERR_INVALIDPARAMETER
,
121 DMLERR_NO_CONV_ESTABLISHED
,
122 DMLERR_POKEACKTIMEOUT
,
123 DMLERR_POSTMSG_FAILED
,
127 DMLERR_UNADVACKTIMEOUT
,
128 DMLERR_UNFOUND_QUEUE_ID
, // = 0x4011
129 DMLERR_LAST
= DMLERR_UNFOUND_QUEUE_ID
135 DDE_FDEFERUPD
= 0x4000,
136 DDE_FACKREQ
= 0x8000,
137 DDE_FRELEASE
= 0x2000,
138 DDE_FREQUESTED
= 0x1000,
139 DDE_FAPPSTATUS
= 0x00ff,
140 DDE_FNOTPROCESSED
= 0,
141 DDE_FACKRESERVED
= (~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS
)),
142 DDE_FADVRESERVED
= (~(DDE_FACKREQ|DDE_FDEFERUPD
)),
143 DDE_FDATRESERVED
= (~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED
)),
144 DDE_FPOKRESERVED
= (~DDE_FRELEASE
)
151 enum CBR_BLOCK
= cast(HDDEDATA
)-1;
154 APPCLASS_STANDARD
= 0,
155 APPCLASS_MONITOR
= 0x00000001,
156 APPCLASS_MASK
= 0x0000000F,
157 APPCMD_CLIENTONLY
= 0x00000010,
158 APPCMD_FILTERINITS
= 0x00000020,
159 APPCMD_MASK
= 0x00000FF0,
160 CBF_FAIL_SELFCONNECTIONS
= 0x00001000,
161 CBF_FAIL_CONNECTIONS
= 0x00002000,
162 CBF_FAIL_ADVISES
= 0x00004000,
163 CBF_FAIL_EXECUTES
= 0x00008000,
164 CBF_FAIL_POKES
= 0x00010000,
165 CBF_FAIL_REQUESTS
= 0x00020000,
166 CBF_FAIL_ALLSVRXACTIONS
= 0x0003f000,
167 CBF_SKIP_CONNECT_CONFIRMS
= 0x00040000,
168 CBF_SKIP_REGISTRATIONS
= 0x00080000,
169 CBF_SKIP_UNREGISTRATIONS
= 0x00100000,
170 CBF_SKIP_DISCONNECTS
= 0x00200000,
171 CBF_SKIP_ALLNOTIFICATIONS
= 0x003c0000,
172 MF_HSZ_INFO
= 0x01000000,
173 MF_SENDMSGS
= 0x02000000,
174 MF_POSTMSGS
= 0x04000000,
175 MF_CALLBACKS
= 0x08000000,
176 MF_ERRORS
= 0x10000000,
177 MF_LINKS
= 0x20000000,
178 MF_CONV
= 0x40000000,
179 MF_MASK
= 0xFF000000;
183 EC_ENABLEONE
= ST_BLOCKNEXT
,
184 EC_DISABLE
= ST_BLOCKED
,
210 extern (Windows
) alias HDDEDATA
211 function(UINT
, UINT
, HCONV
, HSZ
, HSZ
, HDDEDATA
, ULONG_PTR
, ULONG_PTR
) PFNCALLBACK
;
217 alias HSZPAIR
* PHSZPAIR
;
220 UINT cb
= CONVCONTEXT
.sizeof
;
226 SECURITY_QUALITY_OF_SERVICE qos
;
228 alias CONVCONTEXT
* PCONVCONTEXT
;
231 DWORD cb
= CONVINFO
.sizeof
;
244 CONVCONTEXT ConvCtxt
;
248 alias CONVINFO
* PCONVINFO
;
250 struct DDEML_MSG_HOOK_DATA
{
257 struct MONHSZSTRUCT
{
258 UINT cb
= MONHSZSTRUCT
.sizeof
;
265 TCHAR
* str() return { return _str
.ptr
; }
267 alias MONHSZSTRUCT
* PMONHSZSTRUCT
;
269 struct MONLINKSTRUCT
{
270 UINT cb
= MONLINKSTRUCT
.sizeof
;
283 alias MONLINKSTRUCT
* PMONLINKSTRUCT
;
285 struct MONCONVSTRUCT
{
286 UINT cb
= MONCONVSTRUCT
.sizeof
;
295 alias MONCONVSTRUCT
* PMONCONVSTRUCT
;
298 UINT cb
= MONCBSTRUCT
.sizeof
;
314 alias MONCBSTRUCT
* PMONCBSTRUCT
;
316 struct MONERRSTRUCT
{
317 UINT cb
= MONERRSTRUCT
.sizeof
;
322 alias MONERRSTRUCT
* PMONERRSTRUCT
;
324 struct MONMSGSTRUCT
{
325 UINT cb
= MONMSGSTRUCT
.sizeof
;
332 DDEML_MSG_HOOK_DATA dmhd
;
334 alias MONMSGSTRUCT
* PMONMSGSTRUCT
;
337 BOOL
DdeAbandonTransaction(DWORD
, HCONV
, DWORD
);
338 PBYTE
DdeAccessData(HDDEDATA
, PDWORD
);
339 HDDEDATA
DdeAddData(HDDEDATA
, PBYTE
, DWORD
, DWORD
);
340 HDDEDATA
DdeClientTransaction(PBYTE
, DWORD
, HCONV
, HSZ
, UINT
, UINT
,
342 int DdeCmpStringHandles(HSZ
, HSZ
);
343 HCONV
DdeConnect(DWORD
, HSZ
, HSZ
, PCONVCONTEXT
);
344 HCONVLIST
DdeConnectList(DWORD
, HSZ
, HSZ
, HCONVLIST
, PCONVCONTEXT
);
345 HDDEDATA
DdeCreateDataHandle(DWORD
, PBYTE
, DWORD
, DWORD
, HSZ
, UINT
,
347 HSZ
DdeCreateStringHandleA(DWORD
, LPSTR
, int);
348 HSZ
DdeCreateStringHandleW(DWORD
, LPWSTR
, int);
349 BOOL
DdeDisconnect(HCONV
);
350 BOOL
DdeDisconnectList(HCONVLIST
);
351 BOOL
DdeEnableCallback(DWORD
, HCONV
, UINT
);
352 BOOL
DdeFreeDataHandle(HDDEDATA
);
353 BOOL
DdeFreeStringHandle(DWORD
, HSZ
);
354 DWORD
DdeGetData(HDDEDATA
, PBYTE
, DWORD
, DWORD
);
355 UINT
DdeGetLastError(DWORD
);
356 BOOL
DdeImpersonateClient(HCONV
);
357 UINT
DdeInitializeA(PDWORD
, PFNCALLBACK
, DWORD
, DWORD
);
358 UINT
DdeInitializeW(PDWORD
, PFNCALLBACK
, DWORD
, DWORD
);
359 BOOL
DdeKeepStringHandle(DWORD
, HSZ
);
360 HDDEDATA
DdeNameService(DWORD
, HSZ
, HSZ
, UINT
);
361 BOOL
DdePostAdvise(DWORD
, HSZ
, HSZ
);
362 UINT
DdeQueryConvInfo(HCONV
, DWORD
, PCONVINFO
);
363 HCONV
DdeQueryNextServer(HCONVLIST
, HCONV
);
364 DWORD
DdeQueryStringA(DWORD
, HSZ
, LPSTR
, DWORD
, int);
365 DWORD
DdeQueryStringW(DWORD
, HSZ
, LPWSTR
, DWORD
, int);
366 HCONV
DdeReconnect(HCONV
);
367 BOOL
DdeSetUserHandle(HCONV
, DWORD
, DWORD_PTR
);
368 BOOL
DdeUnaccessData(HDDEDATA
);
369 BOOL
DdeUninitialize(DWORD
);
373 SZDDESYS_TOPIC
= "System",
374 SZDDESYS_ITEM_TOPICS
= "Topics",
375 SZDDESYS_ITEM_SYSITEMS
= "SysItems",
376 SZDDESYS_ITEM_RTNMSG
= "ReturnMessage",
377 SZDDESYS_ITEM_STATUS
= "Status",
378 SZDDESYS_ITEM_FORMATS
= "Formats",
379 SZDDESYS_ITEM_HELP
= "Help",
380 SZDDE_ITEM_ITEMLIST
= "TopicItemList";
383 alias DdeCreateStringHandleW DdeCreateStringHandle
;
384 alias DdeInitializeW DdeInitialize
;
385 alias DdeQueryStringW DdeQueryString
;
387 alias DdeCreateStringHandleA DdeCreateStringHandle
;
388 alias DdeInitializeA DdeInitialize
;
389 alias DdeQueryStringA DdeQueryString
;