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
9d234fcb
Commit
9d234fcb
authored
May 11, 2007
by
Misha Koshelev
Committed by
Alexandre Julliard
May 14, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: automation: Implement View::Modify.
parent
854ca51a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
7 deletions
+41
-7
automation.c
dlls/msi/automation.c
+18
-0
msiserver.idl
dlls/msi/msiserver.idl
+20
-0
msiserver_dispids.h
dlls/msi/msiserver_dispids.h
+1
-0
automation.c
dlls/msi/tests/automation.c
+2
-7
No files found.
dlls/msi/automation.c
View file @
9d234fcb
...
...
@@ -735,6 +735,24 @@ static HRESULT WINAPI ViewImpl_Invoke(
else
return
DISP_E_MEMBERNOTFOUND
;
break
;
case
DISPID_VIEW_MODIFY
:
if
(
wFlags
&
DISPATCH_METHOD
)
{
hr
=
DispGetParam
(
pDispParams
,
0
,
VT_I4
,
&
varg0
,
puArgErr
);
if
(
FAILED
(
hr
))
return
hr
;
hr
=
DispGetParam
(
pDispParams
,
1
,
VT_DISPATCH
,
&
varg1
,
puArgErr
);
if
(
FAILED
(
hr
))
return
hr
;
if
(
!
V_DISPATCH
(
&
varg1
))
return
DISP_E_EXCEPTION
;
if
((
ret
=
MsiViewModify
(
This
->
msiHandle
,
V_I4
(
&
varg0
),
((
AutomationObject
*
)
V_DISPATCH
(
&
varg1
))
->
msiHandle
))
!=
ERROR_SUCCESS
)
{
VariantClear
(
&
varg1
);
ERR
(
"MsiViewModify returned %d
\n
"
,
ret
);
return
DISP_E_EXCEPTION
;
}
}
else
return
DISP_E_MEMBERNOTFOUND
;
break
;
case
DISPID_VIEW_CLOSE
:
if
(
wFlags
&
DISPATCH_METHOD
)
{
...
...
dlls/msi/msiserver.idl
View file @
9d234fcb
...
...
@@ -124,6 +124,22 @@ library WindowsInstaller
methods
:
}
typedef
enum
{
msiViewModifySeek
=
-
1
,
msiViewModifyRefresh
=
0
,
msiViewModifyInsert
=
1
,
msiViewModifyUpdate
=
2
,
msiViewModifyAssign
=
3
,
msiViewModifyReplace
=
4
,
msiViewModifyMerge
=
5
,
msiViewModifyDelete
=
6
,
msiViewModifyInsertTemporary
=
7
,
msiViewModifyValidate
=
8
,
msiViewModifyValidateNew
=
9
,
msiViewModifyValidateField
=
10
,
msiViewModifyValidateDelete
=
11
,
}
_MsiViewModify
; /* Added underscore to avoid conflict with function name */
[
uuid
(
000
C109C
-
0000
-
0000
-
C000
-
000000000046
)
]
dispinterface
View
{
...
...
@@ -133,6 +149,10 @@ library WindowsInstaller
void
Execute
(
[
in
,
optional
,
defaultvalue
(
0
)
]
Record
*
Params
)
;
[
id
(
DISPID_VIEW_FETCH
)
]
Record
*
Fetch
()
;
[
id
(
DISPID_VIEW_MODIFY
)
]
void
Modify
(
[
in
]
_MsiViewModify
Mode
,
Record
*
Record
)
;
[
id
(
DISPID_VIEW_CLOSE
)
]
void
Close
()
;
}
...
...
dlls/msi/msiserver_dispids.h
View file @
9d234fcb
...
...
@@ -30,6 +30,7 @@
#define DISPID_VIEW_EXECUTE 1
#define DISPID_VIEW_FETCH 2
#define DISPID_VIEW_MODIFY 3
#define DISPID_VIEW_CLOSE 4
#define DISPID_DATABASE_OPENVIEW 3
...
...
dlls/msi/tests/automation.c
View file @
9d234fcb
...
...
@@ -1071,8 +1071,6 @@ static void test_Database(IDispatch *pDatabase)
ok_exception
(
hr
,
szStringDataField
);
/* View::Modify with incorrect parameters */
todo_wine
{
hr
=
View_Modify
(
pView
,
-
5
,
NULL
);
ok
(
hr
==
DISP_E_EXCEPTION
,
"View_Modify failed, hresult 0x%08x
\n
"
,
hr
);
ok_exception
(
hr
,
szModifyModeRecord
);
...
...
@@ -1084,14 +1082,11 @@ static void test_Database(IDispatch *pDatabase)
hr
=
View_Modify
(
pView
,
MSIMODIFY_REFRESH
,
NULL
);
ok
(
hr
==
DISP_E_EXCEPTION
,
"View_Modify failed, hresult 0x%08x
\n
"
,
hr
);
ok_exception
(
hr
,
szModifyModeRecord
);
}
/* View::Modify with MSIMODIFY_REFRESH should undo our changes */
todo_wine
{
hr
=
View_Modify
(
pView
,
MSIMODIFY_REFRESH
,
pRecord
);
ok
(
SUCCEEDED
(
hr
),
"View_Modify failed, hresult 0x%08x
\n
"
,
hr
);
}
/* Wine's MsiViewModify currently does not support MSIMODIFY_REFRESH */
todo_wine
ok
(
SUCCEEDED
(
hr
),
"View_Modify failed, hresult 0x%08x
\n
"
,
hr
);
/* Record::StringDataGet, confirm that the record is back to its unmodified value */
memset
(
szString
,
0
,
sizeof
(
szString
));
...
...
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