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
b73dca23
Commit
b73dca23
authored
Aug 02, 2006
by
Mike McCormack
Committed by
Alexandre Julliard
Aug 02, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Only ever write the long path for InProcServers.
parent
244405af
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
55 deletions
+19
-55
classes.c
dlls/msi/classes.c
+19
-55
No files found.
dlls/msi/classes.c
View file @
b73dca23
...
...
@@ -797,7 +797,6 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
static
const
WCHAR
szVIProgID
[]
=
{
'V'
,
'e'
,
'r'
,
's'
,
'i'
,
'o'
,
'n'
,
'I'
,
'n'
,
'd'
,
'e'
,
'p'
,
'e'
,
'n'
,
'd'
,
'e'
,
'n'
,
't'
,
'P'
,
'r'
,
'o'
,
'g'
,
'I'
,
'D'
,
0
};
static
const
WCHAR
szAppID
[]
=
{
'A'
,
'p'
,
'p'
,
'I'
,
'D'
,
0
};
static
const
WCHAR
szSpace
[]
=
{
' '
,
0
};
static
const
WCHAR
szInprocServer32
[]
=
{
'I'
,
'n'
,
'p'
,
'r'
,
'o'
,
'c'
,
'S'
,
'e'
,
'r'
,
'v'
,
'e'
,
'r'
,
'3'
,
'2'
,
0
};
static
const
WCHAR
szFileType_fmt
[]
=
{
'F'
,
'i'
,
'l'
,
'e'
,
'T'
,
'y'
,
'p'
,
'e'
,
'\\'
,
'%'
,
's'
,
'\\'
,
'%'
,
'i'
,
0
};
HKEY
hkey
,
hkey2
,
hkey3
;
MSICLASS
*
cls
;
...
...
@@ -811,7 +810,7 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
{
MSICOMPONENT
*
comp
;
MSIFILE
*
file
;
DWORD
size
,
sz
;
DWORD
size
;
LPWSTR
argument
;
MSIFEATURE
*
feature
;
...
...
@@ -846,64 +845,29 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
RegCreateKeyW
(
hkey2
,
cls
->
Context
,
&
hkey3
);
file
=
get_loaded_file
(
package
,
comp
->
KeyPath
);
/* the context server is a short path name
* except for if it is InprocServer32...
/*
* FIXME: Implement install on demand (advertised components).
*
* ole32.dll should call msi.MsiProvideComponentFromDescriptor()
* when it needs an InProcServer that doesn't exist.
* The component advertise string should be in the "InProcServer" value.
*/
if
(
strcmpiW
(
cls
->
Context
,
szInprocServer32
)
!=
0
)
{
sz
=
GetShortPathNameW
(
file
->
TargetPath
,
NULL
,
0
);
if
(
sz
==
0
)
{
ERR
(
"Unable to find short path for CLSID COM Server
\n
"
);
argument
=
NULL
;
}
else
{
size
=
sz
*
sizeof
(
WCHAR
);
if
(
cls
->
Argument
)
{
size
+=
strlenW
(
cls
->
Argument
)
*
sizeof
(
WCHAR
);
size
+=
sizeof
(
WCHAR
);
}
argument
=
msi_alloc
(
size
+
sizeof
(
WCHAR
));
GetShortPathNameW
(
file
->
TargetPath
,
argument
,
sz
);
if
(
cls
->
Argument
)
{
strcatW
(
argument
,
szSpace
);
strcatW
(
argument
,
cls
->
Argument
);
}
}
}
else
{
size
=
lstrlenW
(
file
->
TargetPath
)
*
sizeof
(
WCHAR
);
if
(
cls
->
Argument
)
{
size
+=
strlenW
(
cls
->
Argument
)
*
sizeof
(
WCHAR
);
size
+=
sizeof
(
WCHAR
);
}
argument
=
msi_alloc
(
size
+
sizeof
(
WCHAR
));
strcpyW
(
argument
,
file
->
TargetPath
);
size
=
lstrlenW
(
file
->
TargetPath
)
+
1
;
if
(
cls
->
Argument
)
size
+=
lstrlenW
(
cls
->
Argument
)
+
1
;
if
(
cls
->
Argument
)
{
strcatW
(
argument
,
szSpace
);
strcatW
(
argument
,
cls
->
Argument
);
}
}
argument
=
msi_alloc
(
size
*
sizeof
(
WCHAR
)
);
lstrcpyW
(
argument
,
file
->
TargetPath
);
if
(
a
rgument
)
if
(
cls
->
A
rgument
)
{
msi_reg_set_val_str
(
hkey3
,
NULL
,
argument
);
msi_free
(
argument
);
lstrcatW
(
argument
,
szSpace
);
lstrcatW
(
argument
,
cls
->
Argument
);
}
msi_reg_set_val_str
(
hkey3
,
NULL
,
argument
);
msi_free
(
argument
);
RegCloseKey
(
hkey3
);
if
(
cls
->
ProgID
||
cls
->
ProgIDText
)
...
...
@@ -925,7 +889,7 @@ UINT ACTION_RegisterClassInfo(MSIPACKAGE *package)
}
if
(
cls
->
AppID
)
{
{
MSIAPPID
*
appid
=
cls
->
AppID
;
msi_reg_set_val_str
(
hkey2
,
szAppID
,
appid
->
AppID
);
...
...
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