forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 2
/
nsNativeAppSupportOS2.h
352 lines (330 loc) · 11.2 KB
/
nsNativeAppSupportOS2.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Bill Law law@netscape.com
* IBM Corp.
* Achim Hasenmueller <achimha@innotek.de>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
// Splash screen dialog ID.
#define IDD_SPLASH 100
// Splash screen bitmap ID.
#define IDB_SPLASH 101
// DDE application name
#define ID_DDE_APPLICATION_NAME 102
/*
* OS/2 DDEML library headers
* For more information, please refer to the Windows documentation
*/
#ifndef _H_DDEML
#define _H_DDEML
/* all structures must be byte aligned */
#pragma pack(1)
/* custom type definitions */
typedef LHANDLE HCONV;
typedef LHANDLE HCONVLIST;
typedef LHANDLE HDATA;
typedef LHANDLE HDDEINST;
typedef LHANDLE HSZ;
typedef HCONV *PHCONV;
typedef HCONVLIST *PHCONVLIST;
typedef HDATA *PHDATA;
typedef HDDEINST *PHDDEINST;
typedef HSZ *PHSZ;
typedef HDATA (APIENTRY FNDDECB)(ULONG, USHORT, USHORT, HCONV, HSZ, HSZ, HDATA, ULONG, ULONG);
typedef FNDDECB *PFNDDECB;
/* constant definitions */
#define XCLASS_BOOL 0x1000
#define XCLASS_DATA 0x2000
#define XCLASS_FLAGS 0x4000
#define XCLASS_NOTIFICATION 0x8000
#define XTYPF_NOBLOCK 0x0002
#define XTYPF_NODATA 0x0004
#define XTYPF_ACKREQ 0x0008
#define XTYP_ERROR (0x0000 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define XTYP_ADVDATA (0x0010 | XCLASS_FLAGS)
#define XTYP_ADVREQ (0x0020 | XCLASS_DATA | XTYPF_NOBLOCK)
#define XTYP_ADVSTART (0x0030 | XCLASS_BOOL)
#define XTYP_ADVSTOP (0x0040 | XCLASS_NOTIFICATION)
#define XTYP_EXECUTE (0x0050 | XCLASS_FLAGS)
#define XTYP_CONNECT (0x0060 | XCLASS_BOOL | XTYPF_NOBLOCK)
#define XTYP_CONNECT_CONFIRM (0x0070 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define XTYP_XACT_COMPLETE (0x0080 | XCLASS_NOTIFICATION)
#define XTYP_POKE (0x0090 | XCLASS_FLAGS)
#define XTYP_REGISTER (0x00A0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define XTYP_REQUEST (0x00B0 | XCLASS_DATA)
#define XTYP_DISCONNECT (0x00C0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define XTYP_UNREGISTER (0x00D0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define XTYP_WILDCONNECT (0x00E0 | XCLASS_DATA | XTYPF_NOBLOCK)
#define XTYP_MONITOR (0x00F0 | XCLASS_NOTIFICATION | XTYPF_NOBLOCK)
#define ST_CONNECTED ((USHORT)0x0001)
#define ST_ADVISE ((USHORT)0x0002)
#define ST_ISLOCAL ((USHORT)0x0004)
#define ST_BLOCKED ((USHORT)0x0008)
#define ST_CLIENT ((USHORT)0x0010)
#define ST_TERMINATED ((USHORT)0x0020)
#define ST_INLIST ((USHORT)0x0040)
#define ST_BLOCKNEXT ((USHORT)0x0080)
#define ST_ISSELF ((USHORT)0x0100)
#define XST_NULL 0
#define XST_INCOMPLETE 1
#define XST_CONNECTED 2
#define XST_INITSENT 3
#define XST_INITACKRCVD 4
#define XST_REQSENT 5
#define XST_DATARCVD 6
#define XST_POKESENT 7
#define XST_POKEACKRCVD 8
#define XST_EXECSENT 9
#define XST_EXECACKRCVD 10
#define XST_ADVSENT 11
#define XST_UNADVSENT 12
#define XST_ADVACKRCVD 13
#define XST_UNADVACKRCVD 14
#define XST_ADVDATASENT 15
#define XST_ADVDATAACKRCVD 16
#define MF_HSZ ((ULONG)0x01000000L)
#define MF_SENDMSGS ((ULONG)0x02000000L)
#define MF_POSTMSGS ((ULONG)0x04000000L)
#define MF_CALLBACKS ((ULONG)0x08000000L)
#define MF_ERRORS ((ULONG)0x10000000L)
#define MF_LINKS ((ULONG)0x20000000L)
#define MF_CONV ((ULONG)0x40000000L)
#define CBF_FAIL_SELFCONNECTIONS ((ULONG)0x00001000L)
#define CBF_FAIL_CONNECTIONS ((ULONG)0x00002000L)
#define CBF_FAIL_ADVISES ((ULONG)0x00004000L)
#define CBF_FAIL_EXECUTES ((ULONG)0x00008000L)
#define CBF_FAIL_POKES ((ULONG)0x00010000L)
#define CBF_FAIL_REQUESTS ((ULONG)0x00020000L)
#define CBF_FAIL_ALLSVRXACTIONS ((ULONG)0x0003f000L)
#define CBF_SKIP_CONNECT_CONFIRMS ((ULONG)0x00040000L)
#define CBF_SKIP_REGISTRATIONS ((ULONG)0x00080000L)
#define CBF_SKIP_UNREGISTRATIONS ((ULONG)0x00100000L)
#define CBF_SKIP_DISCONNECTS ((ULONG)0x00200000L)
#define CBF_SKIP_ALLNOTIFICATIONS ((ULONG)0x003c0000L)
#define CBF_MASK ((ULONG)0x00FFF000L)
#define APPF_CLIENTONLY ((ULONG)0x00000010L)
#define APPF_FILTERINITS ((ULONG)0x00000020L)
#define APPF_MASK ((ULONG)0x00000FF0L)
#define APPCLASS_STANDARD ((ULONG)0x00000000L)
#define APPCLASS_MONITOR ((ULONG)0x00000001L)
#define APPCLASS_MASK ((ULONG)0x0000000FL)
#define CBR_BLOCK ((ULONG)-1L)
#define QID_SYNC ((ULONG)-1L)
#define TIMEOUT_ASYNC ((ULONG)-1L)
#define CADV_LATEACK 0xFFFF
#define MH_CREATE ((USHORT)0x0001)
#define MH_KEEP ((USHORT)0x0002)
#define MH_DELETE ((USHORT)0x0003)
#define MH_CLEANUP ((USHORT)0x0004)
#define MH_SYS_CREATE ((USHORT)0x0005)
#define MH_SYS_KEEP ((USHORT)0x0006)
#define MH_SYS_DELETE ((USHORT)0x0007)
#define DDEERR_NO_ERROR 0
#define DDEERR_FIRST 0x7000
#define DDEERR_BUSY 0x7001
#define DDEERR_INVALID_USAGE 0x7002
#define DDEERR_INVALID_PARAMETER 0x7003
#define DDEERR_MEMORY_ERROR 0x7004
#define DDEERR_NO_CONV_ESTABLISHED 0x7005
#define DDEERR_NO_MEMORY 0x7006
#define DDEERR_NO_MSG_QUEUE 0x7007
#define DDEERR_NOT_INITIALIZED 0x7008
#define DDEERR_NOT_PROCESSED 0x7009
#define DDEERR_POSTMSG_FAILED 0x700a
#define DDEERR_REENTRANCY 0x700b
#define DDEERR_SERVER_DIED 0x700c
#define DDEERR_SYSTEM_ERROR 0x700d
#define DDEERR_TIMEOUT_ADVACK 0x700e
#define DDEERR_TIMEOUT_EXECACK 0x700f
#define DDEERR_TIMEOUT_POKEACK 0x7010
#define DDEERR_TIMEOUT_DATAACK 0x7011
#define DDEERR_TIMEOUT_UNADVACK 0x7012
#define DDEERR_UNKNOWN_QUEUE_ID 0x7013
#define DDEERR_LAST 0x70FF
#define CSH_CASESENSITIVE ((ULONG)0x00000001L)
#define CSH_ERROR 0L
#define CSH_EQ 1L
#define CSH_LT 2L
#define CSH_GT 3L
#define HDATA_APPOWNED ((ULONG)DDEPM_NOFREE)
#define EC_ENABLEALL ((USHORT) 0x0000)
#define EC_ENABLEONE ST_BLOCKNEXT
#define EC_DISABLE ST_BLOCKED
#define EC_QUERYWAITING ((USHORT)0x0002)
#define DNS_REGISTER ((ULONG)0x00000001L)
#define DNS_UNREGISTER ((ULONG)0x00000002L)
#define DNS_FILTERON ((ULONG)0x00000004L)
#define DNS_FILTEROFF ((ULONG)0x00000008L)
/* structure definitions */
typedef struct
{
ULONG cb;
ULONG hUser;
HCONV hConvPartner;
HSZ hszServicePartner;
HSZ hszServiceRequest;
HSZ hszTopic;
HSZ hszItem;
USHORT usFormat;
USHORT fsType;
USHORT fsStatus;
USHORT usState;
ULONG ulLastError;
HCONVLIST hConvList;
CONVCONTEXT ConvCtxt;
HWND hwnd;
HWND hwndPartner;
} CONVINFO, *PCONVINFO;
typedef struct
{
HSZ hszService;
HSZ hszTopic;
} HSZPAIR, *PHSZPAIR;
typedef struct
{
ULONG cb;
ULONG ulTime;
ULONG hTask;
ULONG ulRet;
USHORT fsType;
USHORT usFormat;
HCONV hConv;
HSZ hsz1;
HSZ hsz2;
HDATA hData;
ULONG ulData1;
ULONG ulData2;
CONVCONTEXT ConvCtxt;
ULONG cbData;
BYTE abData[32];
} MONCBSTRUCT, *PMONCBSTRUCT;
typedef struct
{
ULONG cb;
BOOL fConnect;
ULONG ulTime;
ULONG hTaskPartner;
HSZ hszService;
HSZ hszTopic;
HCONV hConvClient;
HCONV hConvServer;
} MONCONVSTRUCT, *PMONCONVSTRUCT;
typedef struct
{
ULONG cb;
ULONG ulLastError;
ULONG ulTime;
ULONG hTask;
} MONERRSTRUCT, *PMONERRSTRUCT;
typedef struct
{
ULONG cb;
USHORT fsAction;
ULONG ulTime;
HSZ hsz;
ULONG hTask;
ULONG ulReserved;
CHAR szString[1];
} MONHSZSTRUCT, *PMONHSZSTRUCT;
typedef struct
{
ULONG cb;
ULONG ulTime;
ULONG hTask;
HSZ hszService;
HSZ hszTopic;
HSZ hszItem;
HCONV hConvServer;
HCONV hConvClient;
BOOL fServer;
BOOL fEstablished;
USHORT fsStatus;
USHORT usFormat;
} MONLINKSTRUCT, *PMONLINKSTRUCT;
typedef struct
{
ULONG cb;
HWND hwndTo;
ULONG ulTime;
ULONG hTask;
ULONG idMsg;
MPARAM mp1;
MPARAM mp2;
USHORT fsStatus;
USHORT usFormat;
USHORT offszString1;
USHORT offszString2;
ULONG cbData;
BYTE abData[32];
} MONMSGSTRUCT, *PMONMSGSTRUCT;
/* API definitions */
BOOL (* APIENTRY WinDdeAbandonTransaction)(HDDEINST, HCONV, ULONG);
PVOID (* APIENTRY WinDdeAccessData)(HDATA, PULONG);
HDATA (* APIENTRY WinDdeAddData)(HDATA, PVOID, ULONG, ULONG);
ULONG (* APIENTRY WinDdeCompareStringHandles)(HSZ, HSZ, ULONG);
HCONV (* APIENTRY WinDdeConnect)(HDDEINST, HSZ, HSZ, PCONVCONTEXT);
HCONVLIST (* APIENTRY WinDdeConnectList)(HDDEINST, HSZ, HSZ, HCONVLIST, PCONVCONTEXT);
HDATA (* APIENTRY WinDdeCreateDataHandle)(PVOID, ULONG, ULONG, HSZ, USHORT, ULONG);
HSZ (* APIENTRY WinDdeCreateStringHandle)(PSZ, ULONG);
BOOL (* APIENTRY WinDdeDisconnect)(HCONV);
BOOL (* APIENTRY WinDdeDisconnectList)(HCONVLIST);
BOOL (* APIENTRY WinDdeEnableCallback)(HDDEINST, HCONV, ULONG);
BOOL (* APIENTRY WinDdeFreeDataHandle)(HDATA);
BOOL (* APIENTRY WinDdeFreeStringHandle)(HSZ);
ULONG (* APIENTRY WinDdeGetData)(HDATA, PVOID, ULONG, ULONG);
ULONG (* APIENTRY WinDdeInitialize)(PHDDEINST, PFNDDECB, ULONG, ULONG);
BOOL (* APIENTRY WinDdeKeepStringHandle)(HSZ);
HDATA (* APIENTRY WinDdeNameService)(HDDEINST, HSZ, HSZ, ULONG);
BOOL (* APIENTRY WinDdePostAdvise)(HDDEINST, HSZ, HSZ);
ULONG (* APIENTRY WinDdeQueryConvInfo)(HCONV, ULONG, PCONVINFO);
HCONV (* APIENTRY WinDdeQueryNextServer)(HCONVLIST, HCONV);
ULONG (* APIENTRY WinDdeQueryString)(HSZ, PSZ, ULONG, ULONG);
HCONV (* APIENTRY WinDdeReconnect)(HCONV);
BOOL (* APIENTRY WinDdeSetUserHandle)(HCONV, ULONG, ULONG);
HDATA (* APIENTRY WinDdeSubmitTransaction)(PVOID, ULONG, HCONV, HSZ, USHORT, USHORT, ULONG, PULONG);
BOOL (* APIENTRY WinDdeUninitialize)(HDDEINST);
/* restore structure packing */
#pragma pack()
#endif /* _H_DDEML */
typedef ULONG DWORD;
typedef PBYTE LPBYTE;
typedef HDATA HDDEDATA;
#define CP_WINANSI 0 // When 0 is specified for codepage on these
// dde functions, it will use the codepage
// that is associated with the current thread.
// CP_WINANSI in win32 means that the non
// unicode version of DdeCreateStringHandle
// was used.