3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
33 #define EXPENTRY CALLBACK
34 #define CP_WINANSI 1004
35 #define CP_WINUNICODE 1200
36 #define XTYPF_NOBLOCK 2
37 #define XTYPF_NODATA 4
38 #define XTYPF_ACKREQ 8
39 #define XCLASS_MASK 0xFC00
40 #define XCLASS_BOOL 0x1000
41 #define XCLASS_DATA 0x2000
42 #define XCLASS_FLAGS 0x4000
43 #define XCLASS_NOTIFICATION 0x8000
45 #define XST_INCOMPLETE 1
46 #define XST_CONNECTED 2
50 #define XST_DATARCVD 6
51 #define XST_POKESENT 7
52 #define XST_POKEACKRCVD 8
53 #define XST_EXECSENT 9
54 #define XST_EXECACKRCVD 10
55 #define XST_ADVSENT 11
56 #define XST_UNADVSENT 12
57 #define XST_ADVACKRCVD 13
58 #define XST_UNADVACKRCVD 14
59 #define XST_ADVDATASENT 15
60 #define XST_ADVDATAACKRCVD 16
61 #define XTYP_ERROR (XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
62 #define XTYP_ADVDATA (16|XCLASS_FLAGS)
63 #define XTYP_ADVREQ (32|XCLASS_DATA|XTYPF_NOBLOCK)
64 #define XTYP_ADVSTART (0x30|XCLASS_BOOL)
65 #define XTYP_ADVSTOP (0x0040|XCLASS_NOTIFICATION)
66 #define XTYP_EXECUTE (0x0050|XCLASS_FLAGS)
67 #define XTYP_CONNECT (0x0060|XCLASS_BOOL|XTYPF_NOBLOCK)
68 #define XTYP_CONNECT_CONFIRM (0x0070|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
69 #define XTYP_XACT_COMPLETE (0x0080|XCLASS_NOTIFICATION)
70 #define XTYP_POKE (0x0090|XCLASS_FLAGS)
71 #define XTYP_REGISTER (0x00A0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
72 #define XTYP_REQUEST (0x00B0|XCLASS_DATA)
73 #define XTYP_DISCONNECT (0x00C0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
74 #define XTYP_UNREGISTER (0x00D0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK)
75 #define XTYP_WILDCONNECT (0x00E0|XCLASS_DATA|XTYPF_NOBLOCK)
76 #define XTYP_MASK 0xF0
78 #define TIMEOUT_ASYNC 0xFFFFFFFF
79 #define QID_SYNC 0xFFFFFFFF
80 #define ST_CONNECTED 1
85 #define ST_TERMINATED 32
87 #define ST_BLOCKNEXT 128
89 #define CADV_LATEACK 0xFFFF
90 #define DMLERR_NO_ERROR 0
91 #define DMLERR_FIRST 0x4000
92 #define DMLERR_ADVACKTIMEOUT 0x4000
93 #define DMLERR_BUSY 0x4001
94 #define DMLERR_DATAACKTIMEOUT 0x4002
95 #define DMLERR_DLL_NOT_INITIALIZED 0x4003
96 #define DMLERR_DLL_USAGE 0x4004
97 #define DMLERR_EXECACKTIMEOUT 0x4005
98 #define DMLERR_INVALIDPARAMETER 0x4006
99 #define DMLERR_LOW_MEMORY 0x4007
100 #define DMLERR_MEMORY_ERROR 0x4008
101 #define DMLERR_NOTPROCESSED 0x4009
102 #define DMLERR_NO_CONV_ESTABLISHED 0x400a
103 #define DMLERR_POKEACKTIMEOUT 0x400b
104 #define DMLERR_POSTMSG_FAILED 0x400c
105 #define DMLERR_REENTRANCY 0x400d
106 #define DMLERR_SERVER_DIED 0x400e
107 #define DMLERR_SYS_ERROR 0x400f
108 #define DMLERR_UNADVACKTIMEOUT 0x4010
109 #define DMLERR_UNFOUND_QUEUE_ID 0x4011
110 #define DMLERR_LAST 0x4011
111 #define DDE_FACK 0x8000
112 #define DDE_FBUSY 0x4000
113 #define DDE_FDEFERUPD 0x4000
114 #define DDE_FACKREQ 0x8000
115 #define DDE_FRELEASE 0x2000
116 #define DDE_FREQUESTED 0x1000
117 #define DDE_FAPPSTATUS 0x00ff
118 #define DDE_FNOTPROCESSED 0
119 #define DDE_FACKRESERVED (~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS))
120 #define DDE_FADVRESERVED (~(DDE_FACKREQ|DDE_FDEFERUPD))
121 #define DDE_FDATRESERVED (~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED))
122 #define DDE_FPOKRESERVED (~DDE_FRELEASE)
123 #define MSGF_DDEMGR 0x8001
124 #define CBR_BLOCK ((HDDEDATA)0xffffffff)
125 #define CBF_FAIL_SELFCONNECTIONS 0x1000
126 #define CBF_FAIL_CONNECTIONS 0x2000
127 #define CBF_FAIL_ADVISES 0x4000
128 #define CBF_FAIL_EXECUTES 0x8000
129 #define CBF_FAIL_POKES 0x10000
130 #define CBF_FAIL_REQUESTS 0x20000
131 #define CBF_FAIL_ALLSVRXACTIONS 0x3f000
132 #define CBF_SKIP_CONNECT_CONFIRMS 0x40000
133 #define CBF_SKIP_REGISTRATIONS 0x80000
134 #define CBF_SKIP_UNREGISTRATIONS 0x100000
135 #define CBF_SKIP_DISCONNECTS 0x200000
136 #define CBF_SKIP_ALLNOTIFICATIONS 0x3c0000
137 #define APPCMD_CLIENTONLY 0x10L
138 #define APPCMD_FILTERINITS 0x20L
139 #define APPCMD_MASK 0xFF0L
140 #define APPCLASS_STANDARD 0
141 #define APPCLASS_MASK 0xFL
142 #define EC_ENABLEALL 0
143 #define EC_ENABLEONE ST_BLOCKNEXT
144 #define EC_DISABLE ST_BLOCKED
145 #define EC_QUERYWAITING 2
146 #define DNS_REGISTER 1
147 #define DNS_UNREGISTER 2
148 #define DNS_FILTERON 4
149 #define DNS_FILTEROFF 8
150 #define HDATA_APPOWNED 1
151 #define MAX_MONITORS 4
152 #define APPCLASS_MONITOR 1L
153 #define XTYP_MONITOR (XCLASS_NOTIFICATION|XTYPF_NOBLOCK|0xF0)
154 #define MF_HSZ_INFO 0x1000000
155 #define MF_SENDMSGS 0x2000000
156 #define MF_POSTMSGS 0x4000000
157 #define MF_CALLBACKS 0x8000000
158 #define MF_ERRORS 0x10000000
159 #define MF_LINKS 0x20000000
160 #define MF_CONV 0x40000000
161 #define MF_MASK 0xFF000000
167 DECLARE_HANDLE(HCONVLIST);
168 DECLARE_HANDLE(HCONV);
170 DECLARE_HANDLE(HDDEDATA);
171 typedef HDDEDATA CALLBACK FNCALLBACK(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD);
172 typedef HDDEDATA(CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD);
173 typedef struct tagHSZPAIR {
176 } HSZPAIR, *PHSZPAIR;
177 typedef struct tagCONVCONTEXT {
184 SECURITY_QUALITY_OF_SERVICE qos;
185 } CONVCONTEXT,*PCONVCONTEXT;
186 typedef struct tagCONVINFO {
200 CONVCONTEXT ConvCtxt;
203 } CONVINFO,*PCONVINFO;
204 typedef struct tagDDEML_MSG_HOOK_DATA {
209 } DDEML_MSG_HOOK_DATA;
210 typedef struct tagMONHSZSTRUCT {
217 } MONHSZSTRUCT, *PMONHSZSTRUCT;
218 typedef struct tagMONLINKSTRUCT {
231 } MONLINKSTRUCT, *PMONLINKSTRUCT;
232 typedef struct tagMONCONVSTRUCT {
241 } MONCONVSTRUCT, *PMONCONVSTRUCT;
242 typedef struct tagMONCBSTRUCT {
258 } MONCBSTRUCT, *PMONCBSTRUCT;
259 typedef struct tagMONERRSTRUCT {
264 } MONERRSTRUCT, *PMONERRSTRUCT;
265 typedef struct tagMONMSGSTRUCT {
273 DDEML_MSG_HOOK_DATA dmhd;
274 } MONMSGSTRUCT, *PMONMSGSTRUCT;
276 BOOL WINAPI DdeAbandonTransaction(DWORD,HCONV,DWORD);
277 PBYTE WINAPI DdeAccessData(HDDEDATA,PDWORD);
278 HDDEDATA WINAPI DdeAddData(HDDEDATA,PBYTE,DWORD,DWORD);
279 HDDEDATA WINAPI DdeClientTransaction(PBYTE,DWORD,HCONV,HSZ,UINT,UINT,DWORD,PDWORD);
280 int WINAPI DdeCmpStringHandles(HSZ,HSZ);
281 HCONV WINAPI DdeConnect(DWORD,HSZ,HSZ,PCONVCONTEXT);
282 HCONVLIST WINAPI DdeConnectList(DWORD,HSZ,HSZ,HCONVLIST,PCONVCONTEXT);
283 HDDEDATA WINAPI DdeCreateDataHandle(DWORD,PBYTE,DWORD,DWORD,HSZ,UINT,UINT);
284 HSZ WINAPI DdeCreateStringHandleA(DWORD,LPCSTR,int);
285 HSZ WINAPI DdeCreateStringHandleW(DWORD,LPCWSTR,int);
286 BOOL WINAPI DdeDisconnect(HCONV);
287 BOOL WINAPI DdeDisconnectList(HCONVLIST);
288 BOOL WINAPI DdeEnableCallback(DWORD,HCONV,UINT);
289 BOOL WINAPI DdeFreeDataHandle(HDDEDATA);
290 BOOL WINAPI DdeFreeStringHandle(DWORD,HSZ);
291 DWORD WINAPI DdeGetData(HDDEDATA,PBYTE,DWORD,DWORD);
292 UINT WINAPI DdeGetLastError(DWORD);
293 BOOL WINAPI DdeImpersonateClient(HCONV);
294 UINT WINAPI DdeInitializeA(PDWORD,PFNCALLBACK,DWORD,DWORD);
295 UINT WINAPI DdeInitializeW(PDWORD,PFNCALLBACK,DWORD,DWORD);
296 BOOL WINAPI DdeKeepStringHandle(DWORD,HSZ);
297 HDDEDATA WINAPI DdeNameService(DWORD,HSZ,HSZ,UINT);
298 BOOL WINAPI DdePostAdvise(DWORD,HSZ,HSZ);
299 UINT WINAPI DdeQueryConvInfo(HCONV,DWORD,PCONVINFO);
300 HCONV WINAPI DdeQueryNextServer(HCONVLIST,HCONV);
301 DWORD WINAPI DdeQueryStringA(DWORD,HSZ,LPSTR,DWORD,int);
302 DWORD WINAPI DdeQueryStringW(DWORD,HSZ,LPWSTR,DWORD,int);
303 HCONV WINAPI DdeReconnect(HCONV);
304 BOOL WINAPI DdeSetUserHandle(HCONV,DWORD,DWORD);
305 BOOL WINAPI DdeUnaccessData(HDDEDATA);
306 BOOL WINAPI DdeUninitialize(DWORD);
308 #define SZDDESYS_TOPIC __STR("System")
309 #define SZDDESYS_ITEM_TOPICS __STR("Topics")
310 #define SZDDESYS_ITEM_SYSITEMS __STR("SysItems")
311 #define SZDDESYS_ITEM_RTNMSG __STR("ReturnMessage")
312 #define SZDDESYS_ITEM_STATUS __STR("Status")
313 #define SZDDESYS_ITEM_FORMATS __STR("Formats")
314 #define SZDDESYS_ITEM_HELP __STR("Help")
315 #define SZDDE_ITEM_ITEMLIST __STR("TopicItemList")
316 #define DdeCreateStringHandle __AW(DdeCreateStringHandle)
317 #define DdeInitialize __AW(DdeInitialize)
318 #define DdeQueryString __AW(DdeQueryString)
323 #endif /* _DDEML_H */