2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Tests for PathResolve
5 * PROGRAMMER: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
12 * NOTE: "App Paths" registry key and PATHEXT environment variable
13 * have no effect for PathResolve.
17 typedef int (WINAPI
*PATHRESOLVE
)(LPWSTR
, LPWSTR
*, UINT
);
19 static HINSTANCE s_hShell32
= NULL
;
20 static PATHRESOLVE s_pPathResolve
= NULL
;
21 static WCHAR s_TestDataPath
[MAX_PATH
];
22 static WCHAR s_LinkFilePath
[MAX_PATH
];
23 static WCHAR s_LinkTargetPath
[MAX_PATH
];
24 static LPWSTR s_Dirs
[2];
26 /* PathResolve flags */
27 #ifndef PRF_VERIFYEXISTS
28 #define PRF_VERIFYEXISTS 0x01
29 #define PRF_EXECUTABLE 0x02
30 #define PRF_TRYPROGRAMEXTENSIONS (PRF_EXECUTABLE | PRF_VERIFYEXISTS)
31 #define PRF_FIRSTDIRDEF 0x04
32 #define PRF_DONTFINDLNK 0x08
34 #ifndef PRF_REQUIREABSOLUTE
35 #define PRF_REQUIREABSOLUTE 0x10
39 #define FLAGS1 PRF_VERIFYEXISTS
40 #define FLAGS2 PRF_EXECUTABLE
41 #define FLAGS3 PRF_TRYPROGRAMEXTENSIONS
42 #define FLAGS4 (PRF_FIRSTDIRDEF | PRF_VERIFYEXISTS)
43 #define FLAGS5 (PRF_FIRSTDIRDEF | PRF_EXECUTABLE)
44 #define FLAGS6 (PRF_FIRSTDIRDEF | PRF_TRYPROGRAMEXTENSIONS)
45 #define FLAGS7 (PRF_REQUIREABSOLUTE | PRF_VERIFYEXISTS)
46 #define FLAGS8 (PRF_REQUIREABSOLUTE | PRF_EXECUTABLE)
47 #define FLAGS9 (PRF_REQUIREABSOLUTE | PRF_TRYPROGRAMEXTENSIONS)
48 #define FLAGS10 (PRF_REQUIREABSOLUTE | PRF_FIRSTDIRDEF | PRF_VERIFYEXISTS)
49 #define FLAGS11 (PRF_REQUIREABSOLUTE | PRF_FIRSTDIRDEF | PRF_EXECUTABLE)
50 #define FLAGS12 (PRF_REQUIREABSOLUTE | PRF_FIRSTDIRDEF | PRF_TRYPROGRAMEXTENSIONS)
51 #define FLAGS13 0xFFFFFFFF
55 #define EF_WINDOWS_DIR 4
56 #define EF_SYSTEM_DIR 8
57 #define EF_TYPE_MASK 0xF
59 #define EF_NAME_ONLY 16
60 #define EF_APP_PATH 32
64 INT EntryNumber
; /* # */
74 #define BEEF 0xBEEF /* Error Code 48879 */
75 #define DEAD 0xDEAD /* Error Code 57005 */
76 #define IGNORE_ERR 0x7F7F7F7F /* Ignore Error Code */
77 #define RAISED 9999 /* exception raised */
79 static const ENTRY s_Entries
[] =
82 { 0, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS0
},
83 { 1, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS1
},
84 { 2, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS2
},
85 { 3, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS3
},
86 { 4, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS4
},
87 { 5, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS5
},
88 { 6, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS6
},
89 { 7, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS7
},
90 { 8, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS8
},
91 { 9, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS9
},
92 { 10, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS10
},
93 { 11, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS11
},
94 { 12, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS12
},
95 { 13, RAISED
, DEAD
, EF_FULLPATH
, NULL
, NULL
, FLAGS13
},
97 { 14, 1, BEEF
, EF_FULLPATH
, L
"", NULL
, FLAGS0
},
98 { 15, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS1
},
99 { 16, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS2
},
100 { 17, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS3
},
101 { 18, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS4
},
102 { 19, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS5
},
103 { 20, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS6
},
104 { 21, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS7
},
105 { 22, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS8
},
106 { 23, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS9
},
107 { 24, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS10
},
108 { 25, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS11
},
109 { 26, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS12
},
110 { 27, 1, ERROR_NO_MORE_FILES
, EF_FULLPATH
, L
"", NULL
, FLAGS13
},
111 /* Fonts folder (path) */
112 { 28, 1, IGNORE_ERR
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS0
},
113 { 29, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS1
},
114 { 30, 1, BEEF
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS2
},
115 { 31, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS3
},
116 { 32, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS4
},
117 { 33, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS5
},
118 { 34, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS6
},
119 { 35, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS7
},
120 { 36, 1, BEEF
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS8
},
121 { 37, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS9
},
122 { 38, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS10
},
123 { 39, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS11
},
124 { 40, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS12
},
125 { 41, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"Fonts", L
"Fonts", FLAGS13
},
126 /* Fonts folder (name only) */
127 { 42, 1, ERROR_FILE_NOT_FOUND
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS0
},
128 { 43, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS1
},
129 { 44, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS2
},
130 { 45, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS3
},
131 { 46, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS4
},
132 { 47, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS5
},
133 { 48, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS6
},
134 { 49, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS7
},
135 { 50, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS8
},
136 { 51, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS9
},
137 { 52, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS10
},
138 { 53, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS11
},
139 { 54, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS12
},
140 { 55, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS13
},
141 /* Fonts folder with dirs (name only) */
142 { 56, 1, ERROR_FILE_NOT_FOUND
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS0
, s_Dirs
},
143 { 57, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS1
, s_Dirs
},
144 { 58, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS2
, s_Dirs
},
145 { 59, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS3
, s_Dirs
},
146 { 60, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS4
, s_Dirs
},
147 { 61, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS5
, s_Dirs
},
148 { 62, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS6
, s_Dirs
},
149 { 63, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS7
, s_Dirs
},
150 { 64, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS8
, s_Dirs
},
151 { 65, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS9
, s_Dirs
},
152 { 66, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS10
, s_Dirs
},
153 { 67, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS11
, s_Dirs
},
154 { 68, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS12
, s_Dirs
},
155 { 69, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"Fonts", L
"Fonts", FLAGS13
, s_Dirs
},
156 /* system32 folder (path) */
157 { 70, 1, BEEF
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS0
},
158 { 71, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS1
},
159 { 72, 1, BEEF
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS2
},
160 { 73, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS3
},
161 { 74, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS4
},
162 { 75, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS5
},
163 { 76, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS6
},
164 { 77, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS7
},
165 { 78, 1, BEEF
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS8
},
166 { 79, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS9
},
167 { 80, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS10
},
168 { 81, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS11
},
169 { 82, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS12
},
170 { 83, RAISED
, DEAD
, EF_WINDOWS_DIR
, L
"system32", L
"system32", FLAGS13
},
171 /* system32 folder (name only) */
172 { 84, 1, ERROR_FILE_NOT_FOUND
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS0
},
173 { 85, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS1
},
174 { 86, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS2
},
175 { 87, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS3
},
176 { 88, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS4
},
177 { 89, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS5
},
178 { 90, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS6
},
179 { 91, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS7
},
180 { 92, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS8
},
181 { 93, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS9
},
182 { 94, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS10
},
183 { 95, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS11
},
184 { 96, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS12
},
185 { 97, 1, ERROR_NO_MORE_FILES
, EF_WINDOWS_DIR
| EF_NAME_ONLY
, L
"system32", L
"system32", FLAGS13
},
187 { 98, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS0
},
188 { 99, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad.exe", FLAGS1
},
189 { 100, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS2
},
190 { 101, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad.exe", FLAGS3
},
191 { 102, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS4
},
192 { 103, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS5
},
193 { 104, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS6
},
194 { 105, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad.exe", FLAGS7
},
195 { 106, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS8
},
196 { 107, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad.exe", FLAGS9
},
197 { 108, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS10
},
198 { 109, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS11
},
199 { 110, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS12
},
200 { 111, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad", L
"notepad", FLAGS13
},
201 /* notepad (name only) */
202 { 112, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS0
},
203 { 113, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS1
},
204 { 114, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS2
},
205 { 115, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS3
},
206 { 116, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS4
},
207 { 117, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS5
},
208 { 118, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS6
},
209 { 119, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS7
},
210 { 120, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS8
},
211 { 121, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS9
},
212 { 122, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS10
},
213 { 123, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS11
},
214 { 124, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS12
},
215 { 125, 1, ERROR_NO_MORE_FILES
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad", NULL
, FLAGS13
},
216 /* notepad.exe (path) */
217 { 126, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS0
},
218 { 127, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS1
},
219 { 128, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS2
},
220 { 129, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS3
},
221 { 130, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS4
},
222 { 131, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS5
},
223 { 132, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS6
},
224 { 133, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS7
},
225 { 134, 1, BEEF
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS8
},
226 { 135, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS9
},
227 { 136, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS10
},
228 { 137, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS11
},
229 { 138, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS12
},
230 { 139, RAISED
, DEAD
, EF_SYSTEM_DIR
, L
"notepad.exe", L
"notepad.exe", FLAGS13
},
231 /* notepad.exe (name only) */
232 { 140, 1, BEEF
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS0
},
233 { 141, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS1
},
234 { 142, 1, BEEF
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS2
},
235 { 143, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS3
},
236 { 144, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS4
},
237 { 145, 1, BEEF
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS5
},
238 { 146, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS6
},
239 { 147, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS7
},
240 { 148, 1, BEEF
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS8
},
241 { 149, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS9
},
242 { 150, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS10
},
243 { 151, 1, BEEF
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS11
},
244 { 152, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS12
},
245 { 153, 1, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.exe", L
"notepad.exe", FLAGS13
},
246 /* notepad.com (name only) */
247 { 154, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS0
},
248 { 155, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS1
},
249 { 156, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS2
},
250 { 157, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS3
},
251 { 158, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS4
},
252 { 159, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS5
},
253 { 160, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS6
},
254 { 161, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS7
},
255 { 162, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS8
},
256 { 163, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS9
},
257 { 164, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS10
},
258 { 165, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS11
},
259 { 166, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS12
},
260 { 167, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
, L
"notepad.com", NULL
, FLAGS13
},
261 /* GhostProgram.exe -> notepad.exe (name only, app path) */
262 { 168, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS0
},
263 { 169, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS1
},
264 { 170, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS2
},
265 { 171, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS3
},
266 { 172, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS4
},
267 { 173, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS5
},
268 { 174, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS6
},
269 { 175, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS7
},
270 { 176, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS8
},
271 { 177, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS9
},
272 { 178, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS10
},
273 { 179, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS11
},
274 { 180, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS12
},
275 { 181, 0, ERROR_FILE_NOT_FOUND
, EF_SYSTEM_DIR
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"notepad.exe", FLAGS13
},
277 { 182, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS0
},
278 { 183, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS1
},
279 { 184, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS2
},
280 { 185, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS3
},
281 { 186, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS4
},
282 { 187, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS5
},
283 { 188, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS6
},
284 { 189, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS7
},
285 { 190, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS8
},
286 { 191, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS9
},
287 { 192, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS10
},
288 { 193, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS11
},
289 { 194, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS12
},
290 { 195, 0, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"invalid name", L
"invalid name", FLAGS13
},
291 /* testdata/2PRONG (path) */
292 { 196, 1, BEEF
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS0
},
293 { 197, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS1
},
294 { 198, 1, BEEF
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS2
},
295 { 199, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS3
},
296 { 200, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS4
},
297 { 201, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS5
},
298 { 202, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS6
},
299 { 203, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS7
},
300 { 204, 1, BEEF
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS8
},
301 { 205, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS9
},
302 { 206, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS10
},
303 { 207, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS11
},
304 { 208, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS12
},
305 { 209, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG", L
"2PRONG", FLAGS13
},
306 /* testdata/2PRONG (name only) */
307 { 210, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS0
},
308 { 211, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS1
},
309 { 212, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS2
},
310 { 213, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS3
},
311 { 214, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS4
},
312 { 215, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS5
},
313 { 216, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS6
},
314 { 217, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS7
},
315 { 218, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS8
},
316 { 219, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS9
},
317 { 220, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS10
},
318 { 221, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS11
},
319 { 222, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS12
},
320 { 223, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS13
},
321 /* testdata/2PRONG with dirs (name only) */
322 { 224, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS0
, s_Dirs
},
323 { 225, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS1
, s_Dirs
},
324 { 226, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS2
, s_Dirs
},
325 { 227, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS3
, s_Dirs
},
326 { 228, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS4
, s_Dirs
},
327 { 229, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS5
, s_Dirs
},
328 { 230, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS6
, s_Dirs
},
329 { 231, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS7
, s_Dirs
},
330 { 232, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS8
, s_Dirs
},
331 { 233, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS9
, s_Dirs
},
332 { 234, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS10
, s_Dirs
},
333 { 235, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS11
, s_Dirs
},
334 { 236, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS12
, s_Dirs
},
335 { 237, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG", NULL
, FLAGS13
, s_Dirs
},
336 /* testdata/2PRONG (name only, app path) */
337 { 238, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS0
},
338 { 239, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS1
},
339 { 240, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS2
},
340 { 241, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS3
},
341 { 242, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS4
},
342 { 243, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS5
},
343 { 244, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS6
},
344 { 245, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS7
},
345 { 246, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS8
},
346 { 247, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS9
},
347 { 248, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS10
},
348 { 249, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS11
},
349 { 250, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS12
},
350 { 251, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"2PRONG", L
"2PRONG", FLAGS13
},
351 /* testdata/2PRONG.txt (path) */
352 { 252, 1, BEEF
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS0
},
353 { 253, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS1
},
354 { 254, 1, BEEF
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS2
},
355 { 255, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS3
},
356 { 256, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS4
},
357 { 257, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS5
},
358 { 258, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS6
},
359 { 259, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS7
},
360 { 260, 1, BEEF
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS8
},
361 { 261, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS9
},
362 { 262, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS10
},
363 { 263, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS11
},
364 { 264, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS12
},
365 { 265, RAISED
, DEAD
, EF_TESTDATA
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS13
},
366 /* 2PRONG.txt (name only) */
367 { 266, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS0
},
368 { 267, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS1
},
369 { 268, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS2
},
370 { 269, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS3
},
371 { 270, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS4
},
372 { 271, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS5
},
373 { 272, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS6
},
374 { 273, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS7
},
375 { 274, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS8
},
376 { 275, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS9
},
377 { 276, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS10
},
378 { 277, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS11
},
379 { 278, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS12
},
380 { 279, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", NULL
, FLAGS13
},
381 /* 2PRONG.txt with dirs (name only) */
382 { 280, 1, BEEF
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS0
, s_Dirs
},
383 { 281, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS1
, s_Dirs
},
384 { 282, 1, BEEF
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS2
, s_Dirs
},
385 { 283, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS3
, s_Dirs
},
386 { 284, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS4
, s_Dirs
},
387 { 285, 1, BEEF
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS5
, s_Dirs
},
388 { 286, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS6
, s_Dirs
},
389 { 287, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS7
, s_Dirs
},
390 { 288, 1, BEEF
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS8
, s_Dirs
},
391 { 289, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS9
, s_Dirs
},
392 { 290, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS10
, s_Dirs
},
393 { 291, 1, BEEF
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS11
, s_Dirs
},
394 { 292, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS12
, s_Dirs
},
395 { 293, 1, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"2PRONG.txt", L
"2PRONG.txt", FLAGS13
, s_Dirs
},
396 /* testdata/CmdLineUtils (path) */
397 { 294, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS0
},
398 { 295, 1, ERROR_NO_MORE_FILES
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils.lnk", FLAGS1
},
399 { 296, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS2
},
400 { 297, 1, ERROR_NO_MORE_FILES
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils.lnk", FLAGS3
},
401 { 298, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS4
},
402 { 299, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS5
},
403 { 300, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS6
},
404 { 301, 1, ERROR_NO_MORE_FILES
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils.lnk", FLAGS7
},
405 { 302, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS8
},
406 { 303, 1, ERROR_NO_MORE_FILES
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils.lnk", FLAGS9
},
407 { 304, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS10
},
408 { 305, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS11
},
409 { 306, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS12
},
410 { 307, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS13
},
411 /* testdata/CmdLineUtils with PRF_DONTFINDLNK (path) */
412 { 308, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS0
| PRF_DONTFINDLNK
},
413 { 309, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS1
| PRF_DONTFINDLNK
},
414 { 310, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS2
| PRF_DONTFINDLNK
},
415 { 311, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS3
| PRF_DONTFINDLNK
},
416 { 312, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS4
| PRF_DONTFINDLNK
},
417 { 313, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS5
| PRF_DONTFINDLNK
},
418 { 314, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS6
| PRF_DONTFINDLNK
},
419 { 315, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS7
| PRF_DONTFINDLNK
},
420 { 316, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS8
| PRF_DONTFINDLNK
},
421 { 317, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS9
| PRF_DONTFINDLNK
},
422 { 318, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS10
| PRF_DONTFINDLNK
},
423 { 319, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS11
| PRF_DONTFINDLNK
},
424 { 320, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS12
| PRF_DONTFINDLNK
},
425 { 321, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils", L
"CmdLineUtils", FLAGS13
| PRF_DONTFINDLNK
},
426 /* testdata/CmdLineUtils (name only) */
427 { 222, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS0
},
428 { 323, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS1
},
429 { 324, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS2
},
430 { 325, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS3
},
431 { 326, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS4
},
432 { 327, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS5
},
433 { 328, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS6
},
434 { 329, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS7
},
435 { 330, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS8
},
436 { 331, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS9
},
437 { 332, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS10
},
438 { 333, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS11
},
439 { 334, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS12
},
440 { 335, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils", NULL
, FLAGS13
},
441 /* testdata/CmdLineUtils.exe (path) */
442 { 336, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS0
},
443 { 337, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS1
},
444 { 338, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS2
},
445 { 339, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS3
},
446 { 340, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS4
},
447 { 341, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS5
},
448 { 342, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS6
},
449 { 343, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS7
},
450 { 344, 1, BEEF
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS8
},
451 { 345, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS9
},
452 { 346, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS10
},
453 { 347, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS11
},
454 { 348, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS12
},
455 { 349, RAISED
, DEAD
, EF_TESTDATA
, L
"CmdLineUtils.exe", L
"CmdLineUtils.exe", FLAGS13
},
456 /* testdata/CmdLineUtils.exe (name only) */
457 { 350, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS0
},
458 { 351, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS1
},
459 { 352, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS2
},
460 { 353, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS3
},
461 { 354, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS4
},
462 { 355, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS5
},
463 { 356, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS6
},
464 { 357, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS7
},
465 { 358, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS8
},
466 { 359, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS9
},
467 { 360, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS10
},
468 { 361, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS11
},
469 { 362, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS12
},
470 { 363, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS13
},
471 /* testdata/CmdLineUtils.exe with dirs (name only) */
472 { 364, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS0
, s_Dirs
},
473 { 365, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS1
, s_Dirs
},
474 { 366, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS2
, s_Dirs
},
475 { 367, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS3
, s_Dirs
},
476 { 368, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS4
, s_Dirs
},
477 { 369, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS5
, s_Dirs
},
478 { 370, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS6
, s_Dirs
},
479 { 371, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS7
, s_Dirs
},
480 { 372, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS8
, s_Dirs
},
481 { 373, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS9
, s_Dirs
},
482 { 374, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS10
, s_Dirs
},
483 { 375, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS11
, s_Dirs
},
484 { 376, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS12
, s_Dirs
},
485 { 377, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS13
, s_Dirs
},
486 /* testdata/CmdLineUtils.exe with dirs (name only) */
487 { 378, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS0
, s_Dirs
},
488 { 379, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS1
, s_Dirs
},
489 { 380, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS2
, s_Dirs
},
490 { 381, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS3
, s_Dirs
},
491 { 382, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS4
, s_Dirs
},
492 { 383, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS5
, s_Dirs
},
493 { 384, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS6
, s_Dirs
},
494 { 385, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS7
, s_Dirs
},
495 { 386, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS8
, s_Dirs
},
496 { 387, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS9
, s_Dirs
},
497 { 388, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS10
, s_Dirs
},
498 { 389, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS11
, s_Dirs
},
499 { 390, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS12
, s_Dirs
},
500 { 391, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
, L
"CmdLineUtils.exe", NULL
, FLAGS13
, s_Dirs
},
501 /* GhostProgram.exe -> testdata/CmdLineUtils.exe (name only, app path) */
502 { 392, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS0
},
503 { 393, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS1
},
504 { 394, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS2
},
505 { 395, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS3
},
506 { 396, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS4
},
507 { 397, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS5
},
508 { 398, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS6
},
509 { 399, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS7
},
510 { 400, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS8
},
511 { 401, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS9
},
512 { 402, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS10
},
513 { 403, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS11
},
514 { 404, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS12
},
515 { 405, 0, ERROR_FILE_NOT_FOUND
, EF_TESTDATA
| EF_NAME_ONLY
| EF_APP_PATH
, L
"GhostProgram.exe", L
"CmdLineUtils.exe", FLAGS13
},
517 { 406, 1, BEEF
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS0
},
518 { 407, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS1
},
519 { 408, 1, BEEF
, EF_FULLPATH
, L
"C:\\", NULL
, FLAGS2
},
520 { 409, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS3
},
521 { 410, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS4
},
522 { 411, 1, BEEF
, EF_FULLPATH
, L
"C:\\", NULL
, FLAGS5
},
523 { 412, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS6
},
524 { 413, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS7
},
525 { 414, 1, BEEF
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS8
},
526 { 415, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS9
},
527 { 416, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS10
},
528 { 417, 1, BEEF
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS11
},
529 { 418, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS12
},
530 { 419, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, L
"C:\\", L
"C:\\", FLAGS13
},
531 /* CmdLineUtils.lnk */
532 { 420, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS0
},
533 { 421, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS1
},
534 { 422, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, NULL
, FLAGS2
},
535 { 423, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS3
},
536 { 424, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS4
},
537 { 425, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS5
},
538 { 426, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS6
},
539 { 427, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS7
},
540 { 428, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS8
},
541 { 429, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS9
},
542 { 430, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS10
},
543 { 431, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS11
},
544 { 432, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS12
},
545 { 433, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS13
},
546 /* CmdLineUtils.lnk (with PRF_DONTFINDLNK) */
547 { 434, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS0
| PRF_DONTFINDLNK
},
548 { 435, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS1
| PRF_DONTFINDLNK
},
549 { 436, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, NULL
, FLAGS2
| PRF_DONTFINDLNK
},
550 { 437, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS3
| PRF_DONTFINDLNK
},
551 { 438, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS4
| PRF_DONTFINDLNK
},
552 { 439, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS5
| PRF_DONTFINDLNK
},
553 { 440, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS6
| PRF_DONTFINDLNK
},
554 { 441, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS7
| PRF_DONTFINDLNK
},
555 { 442, 1, BEEF
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS8
| PRF_DONTFINDLNK
},
556 { 443, 1, ERROR_FILE_NOT_FOUND
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS9
| PRF_DONTFINDLNK
},
557 { 444, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS10
| PRF_DONTFINDLNK
},
558 { 445, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS11
| PRF_DONTFINDLNK
},
559 { 446, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS12
| PRF_DONTFINDLNK
},
560 { 447, RAISED
, DEAD
, EF_FULLPATH
, s_LinkFilePath
, s_LinkFilePath
, FLAGS13
| PRF_DONTFINDLNK
},
564 CreateShortcut(LPCWSTR pszLnkFileName
,
565 LPCWSTR pszTargetPathName
)
571 hres
= CoInitialize(NULL
);
574 hres
= CoCreateInstance(CLSID_ShellLink
, NULL
,
575 CLSCTX_INPROC_SERVER
, IID_IShellLinkW
, (LPVOID
*)&psl
);
578 psl
->SetPath(pszTargetPathName
);
579 hres
= psl
->QueryInterface(IID_IPersistFile
, (LPVOID
*)&ppf
);
582 hres
= ppf
->Save(pszLnkFileName
, TRUE
);
591 return SUCCEEDED(hres
);
595 CreateRegAppPath(INT EntryNumber
, const WCHAR
* Name
, const WCHAR
* Value
)
602 wcscpy(Buffer
, L
"Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\");
603 wcscat(Buffer
, Name
);
604 Result
= RegCreateKeyExW(HKEY_LOCAL_MACHINE
, Buffer
, 0, NULL
,
605 0, KEY_WRITE
, NULL
, &RegistryKey
, &Disposition
);
606 if (Result
!= ERROR_SUCCESS
)
608 trace("#%d: Could not create test key. Status: %lu\n", EntryNumber
, Result
);
611 Result
= RegSetValueW(RegistryKey
, NULL
, REG_SZ
, Value
, 0);
612 if (Result
!= ERROR_SUCCESS
)
614 trace("#%d: Could not set value of the test key. Status: %lu\n", EntryNumber
, Result
);
615 RegCloseKey(RegistryKey
);
618 RegCloseKey(RegistryKey
);
623 DeleteRegAppPath(INT EntryNumber
, const WCHAR
* Name
)
627 wcscpy(Buffer
, L
"Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\");
628 wcscat(Buffer
, Name
);
629 Result
= RegDeleteKeyW(HKEY_LOCAL_MACHINE
, Buffer
);
630 if (Result
!= ERROR_SUCCESS
)
632 trace("#%d: Could not remove the test key. Status: %lu\n", EntryNumber
, Result
);
638 static void DoEntry(INT EntryNumber
, const ENTRY
*pEntry
)
640 WCHAR Path
[MAX_PATH
], PathExpected
[MAX_PATH
];
644 if (pEntry
->NameBefore
== NULL
)
646 assert(pEntry
->NameExpected
== NULL
);
649 switch (pEntry
->EF_
& EF_TYPE_MASK
)
652 if (pEntry
->NameBefore
)
654 lstrcpyW(Path
, pEntry
->NameBefore
);
656 if (pEntry
->NameExpected
)
658 lstrcpyW(PathExpected
, pEntry
->NameExpected
);
663 if (pEntry
->EF_
& EF_NAME_ONLY
)
665 lstrcpyW(Path
, pEntry
->NameBefore
);
669 lstrcpyW(Path
, s_TestDataPath
);
670 lstrcatW(Path
, L
"\\");
671 lstrcatW(Path
, pEntry
->NameBefore
);
674 if (pEntry
->NameExpected
)
676 lstrcpyW(PathExpected
, s_TestDataPath
);
677 lstrcatW(PathExpected
, L
"\\");
678 lstrcatW(PathExpected
, pEntry
->NameExpected
);
683 if (pEntry
->EF_
& EF_NAME_ONLY
)
685 lstrcpyW(Path
, pEntry
->NameBefore
);
689 GetWindowsDirectoryW(Path
, _countof(Path
));
690 lstrcatW(Path
, L
"\\");
691 lstrcatW(Path
, pEntry
->NameBefore
);
694 if (pEntry
->NameExpected
)
696 GetWindowsDirectoryW(PathExpected
, _countof(PathExpected
));
697 lstrcatW(PathExpected
, L
"\\");
698 lstrcatW(PathExpected
, pEntry
->NameExpected
);
703 if (pEntry
->EF_
& EF_NAME_ONLY
)
705 lstrcpyW(Path
, pEntry
->NameBefore
);
709 GetSystemDirectoryW(Path
, _countof(Path
));
710 lstrcatW(Path
, L
"\\");
711 lstrcatW(Path
, pEntry
->NameBefore
);
714 if (pEntry
->NameExpected
)
716 GetSystemDirectoryW(PathExpected
, _countof(PathExpected
));
717 lstrcatW(PathExpected
, L
"\\");
718 lstrcatW(PathExpected
, pEntry
->NameExpected
);
723 if (pEntry
->EF_
& EF_APP_PATH
)
725 if (!CreateRegAppPath(EntryNumber
, pEntry
->NameBefore
, PathExpected
))
727 skip("#%d: CreateRegAppPath failure\n", EntryNumber
);
735 if (pEntry
->NameBefore
)
737 Ret
= (*s_pPathResolve
)(Path
, pEntry
->Dirs
, pEntry
->Flags
);
741 Ret
= (*s_pPathResolve
)(NULL
, pEntry
->Dirs
, pEntry
->Flags
);
743 Error
= GetLastError();
745 _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER
)
752 if (pEntry
->EF_
& EF_APP_PATH
)
754 ok(DeleteRegAppPath(EntryNumber
, pEntry
->NameBefore
),
755 "#%d: DeleteRegAppPath failed\n", EntryNumber
);
758 ok(Ret
== pEntry
->Ret
, "#%d: Ret expected %d, was %d.\n",
759 EntryNumber
, pEntry
->Ret
, Ret
);
760 if (pEntry
->Error
!= IGNORE_ERR
)
762 ok(Error
== pEntry
->Error
, "#%d: last error expected %ld, was %ld.\n",
763 EntryNumber
, pEntry
->Error
, Error
);
766 if (pEntry
->NameExpected
&& !(pEntry
->EF_
& EF_APP_PATH
))
768 ok(lstrcmpW(Path
, PathExpected
) == 0, "#%d: Path expected %s, was %s.\n",
769 EntryNumber
, wine_dbgstr_w(PathExpected
), wine_dbgstr_w(Path
));
773 static void TestMain_PathResolve(void)
776 WCHAR Saved
[128], *pPathExtSaved
;
779 if (GetEnvironmentVariableW(L
"PATHEXT", Saved
, _countof(Saved
)))
781 pPathExtSaved
= Saved
;
785 pPathExtSaved
= NULL
;
789 for (i
= 0; i
< _countof(s_Entries
); ++i
)
791 DoEntry(s_Entries
[i
].EntryNumber
, &s_Entries
[i
]);
794 /* +#1000: reset PATHEXT */
795 if (SetEnvironmentVariableW(L
"PATHEXT", NULL
))
797 for (i
= 0; i
< _countof(s_Entries
); ++i
)
799 DoEntry(s_Entries
[i
].EntryNumber
+ 1000, &s_Entries
[i
]);
804 skip("SetEnvironmentVariableW failed\n");
807 /* +#2000: set PATHEXT to ".COM;.EXE;.BAT" */
808 if (SetEnvironmentVariableW(L
"PATHEXT", L
".COM;.EXE;.BAT"))
810 for (i
= 0; i
< _countof(s_Entries
); ++i
)
812 DoEntry(s_Entries
[i
].EntryNumber
+ 2000, &s_Entries
[i
]);
817 skip("SetEnvironmentVariableW failed\n");
820 /* +#3000: set PATHEXT to ".TXT" */
821 if (SetEnvironmentVariableW(L
"PATHEXT", L
".TXT"))
823 for (i
= 0; i
< _countof(s_Entries
); ++i
)
825 DoEntry(s_Entries
[i
].EntryNumber
+ 3000, &s_Entries
[i
]);
830 skip("SetEnvironmentVariableW failed\n");
833 /* restore PATHEXT */
834 SetEnvironmentVariableW(L
"PATHEXT", pPathExtSaved
);
837 START_TEST(PathResolve
)
841 GetModuleFileNameW(NULL
, s_TestDataPath
, _countof(s_TestDataPath
));
842 pch
= wcsrchr(s_TestDataPath
, L
'\\');
844 pch
= wcsrchr(s_TestDataPath
, L
'/');
847 skip("GetModuleFileName and/or wcsrchr are insane.\n");
850 lstrcpyW(pch
, L
"\\testdata");
851 if (GetFileAttributesW(s_TestDataPath
) == INVALID_FILE_ATTRIBUTES
)
853 skip("testdata is not found.\n");
857 s_Dirs
[0] = s_TestDataPath
;
860 lstrcpyW(s_LinkFilePath
, s_TestDataPath
);
861 lstrcatW(s_LinkFilePath
, L
"\\");
862 lstrcatW(s_LinkFilePath
, L
"CmdLineUtils.lnk");
864 lstrcpyW(s_LinkTargetPath
, s_TestDataPath
);
865 lstrcatW(s_LinkTargetPath
, L
"\\");
866 lstrcatW(s_LinkTargetPath
, L
"2PRONG.txt");
868 ok(CreateShortcut(s_LinkFilePath
, s_LinkTargetPath
),
869 "CreateShortcut(%s, %s) failed.\n",
870 wine_dbgstr_w(s_LinkFilePath
), wine_dbgstr_w(s_LinkTargetPath
));
872 s_hShell32
= LoadLibraryA("shell32");
873 if (s_hShell32
== NULL
)
875 skip("Unable to load shell32.\n");
879 s_pPathResolve
= (PATHRESOLVE
)GetProcAddress(s_hShell32
, "PathResolve");
880 if (s_pPathResolve
== NULL
)
882 skip("Unable to get PathResolve address.\n");
886 TestMain_PathResolve();
888 ok(DeleteFileW(s_LinkFilePath
), "DeleteFileW(%s) failed\n",
889 wine_dbgstr_w(s_LinkFilePath
));
891 FreeLibrary(s_hShell32
);
893 s_pPathResolve
= NULL
;