DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Implementation

Untracked file

Line Code
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.