Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
06df9f79
Commit
06df9f79
authored
Apr 15, 2007
by
James Hawkins
Committed by
Alexandre Julliard
Apr 16, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Generalize the msi_custom_action_info struct so other custom actions can use it.
parent
4cc48b77
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
13 deletions
+13
-13
custom.c
dlls/msi/custom.c
+13
-13
No files found.
dlls/msi/custom.c
View file @
06df9f79
...
...
@@ -412,8 +412,8 @@ static UINT wait_process_handle(MSIPACKAGE* package, UINT type,
typedef
struct
_msi_custom_action_info
{
struct
list
entry
;
MSIPACKAGE
*
package
;
LPWSTR
dllnam
e
;
LPWSTR
function
;
LPWSTR
sourc
e
;
LPWSTR
target
;
HANDLE
handle
;
LPWSTR
action
;
INT
type
;
...
...
@@ -428,8 +428,8 @@ static void free_custom_action_data( msi_custom_action_info *info )
if
(
info
->
handle
)
CloseHandle
(
info
->
handle
);
msi_free
(
info
->
action
);
msi_free
(
info
->
dllnam
e
);
msi_free
(
info
->
function
);
msi_free
(
info
->
sourc
e
);
msi_free
(
info
->
target
);
msiobj_release
(
&
info
->
package
->
hdr
);
msi_free
(
info
);
}
...
...
@@ -497,16 +497,16 @@ static DWORD WINAPI ACTION_CallDllFunction( const GUID *guid )
return
r
;
}
TRACE
(
"%s %s
\n
"
,
debugstr_w
(
info
->
dllname
),
debugstr_w
(
info
->
function
)
);
TRACE
(
"%s %s
\n
"
,
debugstr_w
(
info
->
source
),
debugstr_w
(
info
->
target
)
);
hModule
=
LoadLibraryW
(
info
->
dllnam
e
);
hModule
=
LoadLibraryW
(
info
->
sourc
e
);
if
(
!
hModule
)
{
ERR
(
"failed to load dll %s
\n
"
,
debugstr_w
(
info
->
dllnam
e
)
);
ERR
(
"failed to load dll %s
\n
"
,
debugstr_w
(
info
->
sourc
e
)
);
return
r
;
}
proc
=
strdupWtoA
(
info
->
function
);
proc
=
strdupWtoA
(
info
->
target
);
fn
=
(
MsiCustomActionEntryPoint
)
GetProcAddress
(
hModule
,
proc
);
msi_free
(
proc
);
if
(
fn
)
...
...
@@ -514,7 +514,7 @@ static DWORD WINAPI ACTION_CallDllFunction( const GUID *guid )
hPackage
=
alloc_msihandle
(
&
info
->
package
->
hdr
);
if
(
hPackage
)
{
TRACE
(
"calling %s
\n
"
,
debugstr_w
(
info
->
function
)
);
TRACE
(
"calling %s
\n
"
,
debugstr_w
(
info
->
target
)
);
r
=
fn
(
hPackage
);
MsiCloseHandle
(
hPackage
);
}
...
...
@@ -522,7 +522,7 @@ static DWORD WINAPI ACTION_CallDllFunction( const GUID *guid )
ERR
(
"failed to create handle for %p
\n
"
,
info
->
package
);
}
else
ERR
(
"GetProcAddress(%s) failed
\n
"
,
debugstr_w
(
info
->
function
)
);
ERR
(
"GetProcAddress(%s) failed
\n
"
,
debugstr_w
(
info
->
target
)
);
FreeLibrary
(
hModule
);
...
...
@@ -549,7 +549,7 @@ static DWORD WINAPI DllThread( LPVOID arg )
}
static
msi_custom_action_info
*
do_msidbCustomActionTypeDll
(
MSIPACKAGE
*
package
,
INT
type
,
LPCWSTR
dllname
,
LPCWSTR
function
,
LPCWSTR
action
)
MSIPACKAGE
*
package
,
INT
type
,
LPCWSTR
source
,
LPCWSTR
target
,
LPCWSTR
action
)
{
msi_custom_action_info
*
info
;
...
...
@@ -560,8 +560,8 @@ static msi_custom_action_info *do_msidbCustomActionTypeDll(
msiobj_addref
(
&
package
->
hdr
);
info
->
package
=
package
;
info
->
type
=
type
;
info
->
function
=
strdupW
(
function
);
info
->
dllname
=
strdupW
(
dllnam
e
);
info
->
target
=
strdupW
(
target
);
info
->
source
=
strdupW
(
sourc
e
);
info
->
action
=
strdupW
(
action
);
CoCreateGuid
(
&
info
->
guid
);
...
...
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