Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
f408fa83
Commit
f408fa83
authored
May 21, 2012
by
Hans Leidekker
Committed by
Alexandre Julliard
May 21, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fusion: Add support for ASM_CACHE_ROOT_EX in GetCachePath.
parent
08cbe5d2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
27 additions
and
27 deletions
+27
-27
fusion.c
dlls/fusion/fusion.c
+25
-26
fusion.idl
include/fusion.idl
+2
-1
No files found.
dlls/fusion/fusion.c
View file @
f408fa83
...
@@ -90,32 +90,26 @@ static HRESULT get_corversion(LPWSTR version, DWORD size)
...
@@ -90,32 +90,26 @@ static HRESULT get_corversion(LPWSTR version, DWORD size)
HRESULT
WINAPI
GetCachePath
(
ASM_CACHE_FLAGS
dwCacheFlags
,
LPWSTR
pwzCachePath
,
HRESULT
WINAPI
GetCachePath
(
ASM_CACHE_FLAGS
dwCacheFlags
,
LPWSTR
pwzCachePath
,
PDWORD
pcchPath
)
PDWORD
pcchPath
)
{
{
WCHAR
path
[
MAX_PATH
];
static
const
WCHAR
assembly
[]
=
{
'\\'
,
'a'
,
's'
,
's'
,
'e'
,
'm'
,
'b'
,
'l'
,
'y'
,
0
};
WCHAR
windir
[
MAX_PATH
];
static
const
WCHAR
gac
[]
=
{
'\\'
,
'G'
,
'A'
,
'C'
,
0
};
WCHAR
version
[
MAX_PATH
];
static
const
WCHAR
nativeimg
[]
=
{
'N'
,
'a'
,
't'
,
'i'
,
'v'
,
'e'
,
'I'
,
'm'
,
'a'
,
'g'
,
'e'
,
's'
,
'_'
,
0
};
DWORD
len
;
static
const
WCHAR
dotnet
[]
=
{
'\\'
,
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
'.'
,
'N'
,
'E'
,
'T'
,
0
};
HRESULT
hr
=
S_OK
;
static
const
WCHAR
backslash
[]
=
{
'\\'
,
0
};
static
const
WCHAR
assembly
[]
=
{
'a'
,
's'
,
's'
,
'e'
,
'm'
,
'b'
,
'l'
,
'y'
,
0
};
static
const
WCHAR
gac
[]
=
{
'G'
,
'A'
,
'C'
,
0
};
static
const
WCHAR
nativeimg
[]
=
{
'N'
,
'a'
,
't'
,
'i'
,
'v'
,
'e'
,
'I'
,
'm'
,
'a'
,
'g'
,
'e'
,
's'
,
'_'
,
0
};
#ifdef _WIN64
#ifdef _WIN64
static
const
WCHAR
zapfmt
[]
=
{
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'%'
,
's'
,
'_'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
zapfmt
[]
=
{
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'%'
,
's'
,
'_'
,
'6'
,
'4'
,
0
};
#else
#else
static
const
WCHAR
zapfmt
[]
=
{
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'%'
,
's'
,
'_'
,
'3'
,
'2'
,
0
};
static
const
WCHAR
zapfmt
[]
=
{
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
's'
,
'%'
,
's'
,
'_'
,
'3'
,
'2'
,
0
};
#endif
#endif
WCHAR
path
[
MAX_PATH
],
windir
[
MAX_PATH
],
version
[
MAX_PATH
];
DWORD
len
;
HRESULT
hr
=
S_OK
;
TRACE
(
"(%08x, %p, %p)
\n
"
,
dwCacheFlags
,
pwzCachePath
,
pcchPath
);
TRACE
(
"(%08x, %p, %p)
\n
"
,
dwCacheFlags
,
pwzCachePath
,
pcchPath
);
if
(
!
pcchPath
)
if
(
!
pcchPath
)
return
E_INVALIDARG
;
return
E_INVALIDARG
;
GetWindowsDirectoryW
(
windir
,
MAX_PATH
);
len
=
GetWindowsDirectoryW
(
windir
,
MAX_PATH
);
lstrcpyW
(
path
,
windir
);
strcpyW
(
path
,
windir
);
lstrcatW
(
path
,
backslash
);
lstrcatW
(
path
,
assembly
);
switch
(
dwCacheFlags
)
switch
(
dwCacheFlags
)
{
{
...
@@ -125,37 +119,42 @@ HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath,
...
@@ -125,37 +119,42 @@ HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath,
if
(
FAILED
(
hr
))
if
(
FAILED
(
hr
))
return
hr
;
return
hr
;
sprintfW
(
path
,
zapfmt
,
windir
,
assembly
,
nativeimg
,
version
);
len
=
sprintfW
(
path
,
zapfmt
,
windir
,
assembly
+
1
,
nativeimg
,
version
);
break
;
break
;
}
}
case
ASM_CACHE_GAC
:
case
ASM_CACHE_GAC
:
{
{
lstrcatW
(
path
,
backslash
);
strcpyW
(
path
+
len
,
assembly
);
lstrcatW
(
path
,
gac
);
len
+=
sizeof
(
assembly
)
/
sizeof
(
WCHAR
)
-
1
;
strcpyW
(
path
+
len
,
gac
);
len
+=
sizeof
(
gac
)
/
sizeof
(
WCHAR
)
-
1
;
break
;
break
;
}
}
case
ASM_CACHE_DOWNLOAD
:
case
ASM_CACHE_DOWNLOAD
:
{
{
FIXME
(
"Download cache not implemented
\n
"
);
FIXME
(
"Download cache not implemented
\n
"
);
return
E_FAIL
;
return
E_FAIL
;
}
}
case
ASM_CACHE_ROOT
:
case
ASM_CACHE_ROOT
:
break
;
/* already set */
strcpyW
(
path
+
len
,
assembly
);
len
+=
sizeof
(
assembly
)
/
sizeof
(
WCHAR
)
-
1
;
break
;
case
ASM_CACHE_ROOT_EX
:
strcpyW
(
path
+
len
,
dotnet
);
len
+=
sizeof
(
dotnet
)
/
sizeof
(
WCHAR
)
-
1
;
strcpyW
(
path
+
len
,
assembly
);
len
+=
sizeof
(
assembly
)
/
sizeof
(
WCHAR
)
-
1
;
break
;
default:
default:
return
E_INVALIDARG
;
return
E_INVALIDARG
;
}
}
len
=
lstrlenW
(
path
)
+
1
;
len
++
;
if
(
*
pcchPath
<=
len
||
!
pwzCachePath
)
if
(
*
pcchPath
<=
len
||
!
pwzCachePath
)
hr
=
HRESULT_FROM_WIN32
(
ERROR_INSUFFICIENT_BUFFER
);
hr
=
HRESULT_FROM_WIN32
(
ERROR_INSUFFICIENT_BUFFER
);
else
if
(
pwzCachePath
)
else
if
(
pwzCachePath
)
l
strcpyW
(
pwzCachePath
,
path
);
strcpyW
(
pwzCachePath
,
path
);
*
pcchPath
=
len
;
*
pcchPath
=
len
;
return
hr
;
return
hr
;
}
}
include/fusion.idl
View file @
f408fa83
...
@@ -28,7 +28,8 @@ typedef enum
...
@@ -28,7 +28,8 @@ typedef enum
ASM_CACHE_ZAP
=
0
x1
,
ASM_CACHE_ZAP
=
0
x1
,
ASM_CACHE_GAC
=
0
x2
,
ASM_CACHE_GAC
=
0
x2
,
ASM_CACHE_DOWNLOAD
=
0
x4
,
ASM_CACHE_DOWNLOAD
=
0
x4
,
ASM_CACHE_ROOT
=
0
x8
ASM_CACHE_ROOT
=
0
x8
,
ASM_CACHE_ROOT_EX
=
0
x80
}
ASM_CACHE_FLAGS
;
}
ASM_CACHE_FLAGS
;
typedef
enum
typedef
enum
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment