309{
310 static const WCHAR dot[] = {
'.',0};
311 static const WCHAR dotdot[] = {
'.',
'.',0};
312 static const WCHAR dblunder[] = {
'_',
'_',0};
313 static const WCHAR path_fmt[] = {
'%',
's',
'\\',
'%',
's',
'\\',
'%',
's',
'.',
'd',
'l',
'l',0};
314 static const WCHAR name_fmt[] = {
'%',
's',
',',
' ',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'=',
'%',
's',
',',
' ',
315 'C','u','l','t','u','r','e','=','n','e','u','t','r','a','l',',',' ',
316 'P','u','b','l','i','c','K','e','y','T','o','k','e','n','=','%','s',0};
317 static const WCHAR ss_fmt[] = {
'%',
's',
'\\',
'%',
's',0};
324
329
330 do
331 {
333 continue;
334
336 {
339 else
341
343 }
345 {
347
352
353 if (prefix)
354 {
355 unsigned int prefix_len =
lstrlenW(prefix);
356 if (
lstrlenW(ffd.cFileName) >= prefix_len &&
357 !
_wcsnicmp(ffd.cFileName, prefix, prefix_len))
359 }
361
362 if (!(asmname =
heap_alloc(
sizeof(*asmname))))
363 {
365 break;
366 }
367
371 {
373 break;
374 }
375
378 {
379 IAssemblyName_Release(asmname->
name);
381 break;
382 }
383
385 continue;
386 }
387
391 break;
393
396}
#define INVALID_HANDLE_VALUE
HRESULT IAssemblyName_SetPath(IAssemblyName *iface, LPCWSTR path)
HRESULT WINAPI CreateAssemblyNameObject(IAssemblyName **ppAssemblyNameObj, LPCWSTR szAssemblyName, DWORD dwFlags, LPVOID pvReserved)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
@ CANOF_PARSE_DISPLAY_NAME