Fix RtlIpv4StringToAddressW prototype and its caller in ws2_32.
[reactos.git] / include / psdk / shtypes.idl
1 /*
2 * Type definitions for shell objects
3 *
4 * Copyright (C) 1999 Juergen Schmied
5 * Copyright (C) 2003 Alexandre Julliard
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22 import "wtypes.idl";
23
24
25
26 cpp_quote("#include <pshpack1.h>")
27 typedef struct
28 {
29 WORD cb; /* nr of bytes in this item */
30 BYTE abID[1]; /* first byte in this item */
31 } SHITEMID, *LPSHITEMID;
32 typedef const SHITEMID *LPCSHITEMID;
33
34 typedef struct _ITEMIDLIST
35 {
36 SHITEMID mkid; /* first itemid in list */
37 } ITEMIDLIST;
38
39 cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)")
40 cpp_quote("typedef struct _ITEMIDLIST_RELATIVE : ITEMIDLIST {} ITEMIDLIST_RELATIVE;")
41 cpp_quote("typedef struct _ITEMID_CHILD : ITEMIDLIST_RELATIVE {} ITEMID_CHILD;")
42 cpp_quote("typedef struct _ITEMIDLIST_ABSOLUTE : ITEMIDLIST_RELATIVE {} ITEMIDLIST_ABSOLUTE;")
43 cpp_quote("#else /* !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)) */")
44 typedef ITEMIDLIST ITEMIDLIST_RELATIVE;
45 typedef ITEMIDLIST ITEMID_CHILD;
46 typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE;
47 cpp_quote("#endif /* defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus) */")
48
49 cpp_quote("#include <poppack.h>")
50
51 typedef [unique] BYTE_BLOB * wirePIDL;
52 typedef ITEMIDLIST /*__unaligned*/ * LPITEMIDLIST;
53 typedef const ITEMIDLIST /*__unaligned*/ * LPCITEMIDLIST;
54
55 cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)")
56 typedef ITEMIDLIST_ABSOLUTE * PIDLIST_ABSOLUTE;
57 typedef const ITEMIDLIST_ABSOLUTE * PCIDLIST_ABSOLUTE;
58 typedef const ITEMIDLIST_ABSOLUTE /*__unaligned*/ * PCUIDLIST_ABSOLUTE;
59 typedef ITEMIDLIST_RELATIVE * PIDLIST_RELATIVE;
60 typedef const ITEMIDLIST_RELATIVE * PCIDLIST_RELATIVE;
61 typedef ITEMIDLIST_RELATIVE /*__unaligned*/ * PUIDLIST_RELATIVE;
62 typedef const ITEMIDLIST_RELATIVE /*__unaligned*/ * PCUIDLIST_RELATIVE;
63 typedef ITEMID_CHILD * PITEMID_CHILD;
64 typedef const ITEMID_CHILD * PCITEMID_CHILD;
65 typedef ITEMID_CHILD /*__unaligned*/ * PUITEMID_CHILD;
66 typedef const ITEMID_CHILD /*__unaligned*/ * PCUITEMID_CHILD;
67
68 typedef PCUITEMID_CHILD const *PCUITEMID_CHILD_ARRAY;
69 typedef PCUIDLIST_RELATIVE const *PCUIDLIST_RELATIVE_ARRAY;
70 typedef PCIDLIST_ABSOLUTE const *PCIDLIST_ABSOLUTE_ARRAY;
71 typedef PCUIDLIST_ABSOLUTE const *PCUIDLIST_ABSOLUTE_ARRAY;
72 cpp_quote("#else /* !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)) */")
73 cpp_quote("#define PIDLIST_ABSOLUTE LPITEMIDLIST")
74 cpp_quote("#define PCIDLIST_ABSOLUTE LPCITEMIDLIST")
75 cpp_quote("#define PCUIDLIST_ABSOLUTE LPCITEMIDLIST")
76 cpp_quote("#define PIDLIST_RELATIVE LPITEMIDLIST")
77 cpp_quote("#define PCIDLIST_RELATIVE LPCITEMIDLIST")
78 cpp_quote("#define PUIDLIST_RELATIVE LPITEMIDLIST")
79 cpp_quote("#define PCUIDLIST_RELATIVE LPCITEMIDLIST")
80 cpp_quote("#define PITEMID_CHILD LPITEMIDLIST")
81 cpp_quote("#define PCITEMID_CHILD LPCITEMIDLIST")
82 cpp_quote("#define PUITEMID_CHILD LPITEMIDLIST")
83 cpp_quote("#define PCUITEMID_CHILD LPCITEMIDLIST")
84 cpp_quote("#define PCUITEMID_CHILD_ARRAY LPCITEMIDLIST *")
85 cpp_quote("#define PCUIDLIST_RELATIVE_ARRAY LPCITEMIDLIST *")
86 cpp_quote("#define PCIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *")
87 cpp_quote("#define PCUIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *")
88 cpp_quote("#endif /* defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus) */")
89
90
91 #ifndef MAX_PATH
92 #define MAX_PATH 260
93 #endif
94
95 cpp_quote("#if 0")
96 typedef struct { int dummy; } WIN32_FIND_DATAA, WIN32_FIND_DATAW;
97 cpp_quote("#endif")
98
99 typedef enum tagSTRRET_TYPE
100 {
101 STRRET_WSTR = 0,
102 STRRET_OFFSET = 1,
103 STRRET_CSTR = 2
104 } STRRET_TYPE;
105
106 cpp_quote("#include <pshpack4.h>")
107 typedef struct _STRRET
108 {
109 UINT uType; /* STRRET_xxx */
110 [switch_type(UINT), switch_is(uType)] union
111 {
112 [case(STRRET_WSTR)][string] LPWSTR pOleStr; /* OLESTR that will be freed */
113 [case(STRRET_OFFSET)] UINT uOffset; /* Offset into SHITEMID (ANSI) */
114 [case(STRRET_CSTR)] char cStr[MAX_PATH]; /* ANSI Buffer */
115 } DUMMYUNIONNAME;
116 } STRRET, *LPSTRRET;
117 cpp_quote("#include <poppack.h>")
118
119 cpp_quote("#include <pshpack1.h>")
120 typedef struct
121 {
122 int fmt;
123 int cxChar;
124 STRRET str;
125 } SHELLDETAILS, *LPSHELLDETAILS;
126 cpp_quote("#include <poppack.h>")