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
18cab64b
Commit
18cab64b
authored
May 14, 2007
by
Misha Koshelev
Committed by
Alexandre Julliard
May 15, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: automation: Implement Record::IntegerData.
parent
757192eb
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
26 deletions
+50
-26
automation.c
dlls/msi/automation.c
+20
-0
msiserver.idl
dlls/msi/msiserver.idl
+6
-0
msiserver_dispids.h
dlls/msi/msiserver_dispids.h
+1
-0
automation.c
dlls/msi/tests/automation.c
+23
-26
No files found.
dlls/msi/automation.c
View file @
18cab64b
...
...
@@ -608,6 +608,26 @@ static HRESULT WINAPI RecordImpl_Invoke(
else
return
DISP_E_MEMBERNOTFOUND
;
break
;
case
DISPID_RECORD_INTEGERDATA
:
if
(
wFlags
&
DISPATCH_PROPERTYGET
)
{
hr
=
DispGetParam
(
pDispParams
,
0
,
VT_I4
,
&
varg0
,
puArgErr
);
if
(
FAILED
(
hr
))
return
hr
;
V_VT
(
pVarResult
)
=
VT_I4
;
V_I4
(
pVarResult
)
=
MsiRecordGetInteger
(
This
->
msiHandle
,
V_I4
(
&
varg0
));
}
else
if
(
wFlags
&
DISPATCH_PROPERTYPUT
)
{
hr
=
DispGetParam
(
pDispParams
,
0
,
VT_I4
,
&
varg0
,
puArgErr
);
if
(
FAILED
(
hr
))
return
hr
;
hr
=
DispGetParam
(
pDispParams
,
DISPID_PROPERTYPUT
,
VT_I4
,
&
varg1
,
puArgErr
);
if
(
FAILED
(
hr
))
return
hr
;
if
((
ret
=
MsiRecordSetInteger
(
This
->
msiHandle
,
V_I4
(
&
varg0
),
V_I4
(
&
varg1
)))
!=
ERROR_SUCCESS
)
{
ERR
(
"MsiRecordSetInteger returned %d
\n
"
,
ret
);
return
DISP_E_EXCEPTION
;
}
}
else
return
DISP_E_MEMBERNOTFOUND
;
break
;
default
:
return
DISP_E_MEMBERNOTFOUND
;
}
...
...
dlls/msi/msiserver.idl
View file @
18cab64b
...
...
@@ -88,6 +88,12 @@ library WindowsInstaller
void
StringData
(
[
in
]
long
Field
,
[
in
]
BSTR
rhs
)
;
[
id
(
DISPID_RECORD_INTEGERDATA
),
propget
]
long
IntegerData
(
[
in
]
long
Field
)
;
[
id
(
DISPID_RECORD_INTEGERDATA
),
propput
]
void
IntegerData
(
[
in
]
long
Field
,
[
in
]
long
rhs
)
;
[
id
(
DISPID_RECORD_FIELDCOUNT
),
propget
]
long
FieldCount
()
;
}
...
...
dlls/msi/msiserver_dispids.h
View file @
18cab64b
...
...
@@ -24,6 +24,7 @@
#define DISPID_RECORD_FIELDCOUNT 0
#define DISPID_RECORD_STRINGDATA 1
#define DISPID_RECORD_INTEGERDATA 2
#define DISPID_STRINGLIST_ITEM 0
#define DISPID_STRINGLIST_COUNT 1
...
...
dlls/msi/tests/automation.c
View file @
18cab64b
...
...
@@ -1478,32 +1478,29 @@ static void test_Installer(void)
ok
(
SUCCEEDED
(
hr
),
"Record_FiledCountGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
1
,
"Record_FieldCountGet result was %d but expected 1
\n
"
,
iValue
);
todo_wine
{
/* Record::IntegerDataGet */
hr
=
Record_IntegerDataGet
(
pRecord
,
1
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
MSI_NULL_INTEGER
,
"Record_IntegerDataGet result was %d but expected %d
\n
"
,
iValue
,
MSI_NULL_INTEGER
);
/* Record::IntegerDataGet, bad index */
hr
=
Record_IntegerDataGet
(
pRecord
,
10
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
MSI_NULL_INTEGER
,
"Record_IntegerDataGet result was %d but expected %d
\n
"
,
iValue
,
MSI_NULL_INTEGER
);
/* Record::IntegerDataPut */
hr
=
Record_IntegerDataPut
(
pRecord
,
1
,
100
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataPut failed, hresult 0x%08x
\n
"
,
hr
);
/* Record::IntegerDataPut, bad index */
hr
=
Record_IntegerDataPut
(
pRecord
,
10
,
100
);
ok
(
hr
==
DISP_E_EXCEPTION
,
"Record_IntegerDataPut failed, hresult 0x%08x
\n
"
,
hr
);
ok_exception
(
hr
,
szIntegerDataException
);
/* Record::IntegerDataGet */
hr
=
Record_IntegerDataGet
(
pRecord
,
1
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
100
,
"Record_IntegerDataGet result was %d but expected 100
\n
"
,
iValue
);
}
/* Record::IntegerDataGet */
hr
=
Record_IntegerDataGet
(
pRecord
,
1
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
MSI_NULL_INTEGER
,
"Record_IntegerDataGet result was %d but expected %d
\n
"
,
iValue
,
MSI_NULL_INTEGER
);
/* Record::IntegerDataGet, bad index */
hr
=
Record_IntegerDataGet
(
pRecord
,
10
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
MSI_NULL_INTEGER
,
"Record_IntegerDataGet result was %d but expected %d
\n
"
,
iValue
,
MSI_NULL_INTEGER
);
/* Record::IntegerDataPut */
hr
=
Record_IntegerDataPut
(
pRecord
,
1
,
100
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataPut failed, hresult 0x%08x
\n
"
,
hr
);
/* Record::IntegerDataPut, bad index */
hr
=
Record_IntegerDataPut
(
pRecord
,
10
,
100
);
ok
(
hr
==
DISP_E_EXCEPTION
,
"Record_IntegerDataPut failed, hresult 0x%08x
\n
"
,
hr
);
ok_exception
(
hr
,
szIntegerDataException
);
/* Record::IntegerDataGet */
hr
=
Record_IntegerDataGet
(
pRecord
,
1
,
&
iValue
);
ok
(
SUCCEEDED
(
hr
),
"Record_IntegerDataGet failed, hresult 0x%08x
\n
"
,
hr
);
ok
(
iValue
==
100
,
"Record_IntegerDataGet result was %d but expected 100
\n
"
,
iValue
);
IDispatch_Release
(
pRecord
);
}
...
...
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