@@ -260,8 +260,28 @@ _Out_opt_ PUINT PWriteEnd)
260260 }
261261}
262262
263+ static WCHAR s_szSystem32 [MAX_PATH ];
264+ static WCHAR s_szDriveCSelectSystem32 [MAX_PATH ];
265+ static WCHAR s_szSlashSelectSystem32 [MAX_PATH ];
266+ static WCHAR s_szEqualSlashSelectSystem32 [MAX_PATH ];
267+
263268START_TEST (SHExplorerParseCmdLine )
264269{
270+ // "C:\\Windows\\system32"
271+ GetSystemDirectoryW (s_szSystem32 , _countof (s_szSystem32 ));
272+
273+ // "c:\\=/select=c:\\windows\\system32"
274+ StringCchCopyW (s_szDriveCSelectSystem32 , _countof (s_szDriveCSelectSystem32 ), L"c:\\=/select=" );
275+ StringCchCatW (s_szDriveCSelectSystem32 , _countof (s_szDriveCSelectSystem32 ), s_szSystem32 );
276+
277+ // "/select=c:\\windows\\system32"
278+ StringCchCopyW (s_szSlashSelectSystem32 , _countof (s_szSlashSelectSystem32 ), L"/select=" );
279+ StringCchCatW (s_szSlashSelectSystem32 , _countof (s_szSlashSelectSystem32 ), s_szSystem32 );
280+
281+ // "=/select=c:\\windows\\system32"
282+ StringCchCopyW (s_szEqualSlashSelectSystem32 , _countof (s_szEqualSlashSelectSystem32 ), L"=/select=" );
283+ StringCchCatW (s_szEqualSlashSelectSystem32 , _countof (s_szEqualSlashSelectSystem32 ), s_szSystem32 );
284+
265285 static struct
266286 {
267287 INT TestLine ;
@@ -390,9 +410,9 @@ START_TEST(SHExplorerParseCmdLine)
390410 { __LINE__ , L"/select=c:\\Program files" , TRUE, PIDL_IS_PATH , 0x00000200 , NULL , L"C:\\Program Files" },
391411 { __LINE__ , L"=,/select,c:\\" , TRUE, PIDL_IS_PATH , 0x00000240 , NULL , L"C:\\" },
392412 { __LINE__ , L"/select,c:\\,=" , TRUE, CSIDL_DRIVES , 0x00000240 },
393- { __LINE__ , L"c:\\=/select=c:\\windows\\system32" , TRUE, PIDL_IS_PATH , 0x00000240 , NULL , L"C:\\WINDOWS\\system32" },
394- { __LINE__ , L"/select=c:\\windows\\system32" , TRUE, PIDL_IS_PATH , 0x00000200 , NULL , L"C:\\WINDOWS\\system32" },
395- { __LINE__ , L"=/select=c:\\windows\\system32" , TRUE, PIDL_IS_PATH , 0x00000240 , NULL , L"C:\\WINDOWS\\system32" },
413+ { __LINE__ , s_szDriveCSelectSystem32 , TRUE, PIDL_IS_PATH , 0x00000240 , NULL , s_szSystem32 },
414+ { __LINE__ , s_szSlashSelectSystem32 , TRUE, PIDL_IS_PATH , 0x00000200 , NULL , s_szSystem32 },
415+ { __LINE__ , s_szEqualSlashSelectSystem32 , TRUE, PIDL_IS_PATH , 0x00000240 , NULL , s_szSystem32 },
396416 { __LINE__ , L"/e,=" , TRUE, CSIDL_DRIVES , 0x00000208 },
397417 { __LINE__ , L"/e=" , TRUE, CSIDL_DRIVES , 0x00000200 },
398418 { __LINE__ , L"/e=\"" , TRUE, CSIDL_DRIVES , 0x00000200 },
0 commit comments