Misha Koshelev : msi: automation: Implement Record::FieldCount.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon May 14 10:52:47 CDT 2007
Module: wine
Branch: master
Commit: c0c6fe63418b64970ba1393a0129dc699e123a24
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c0c6fe63418b64970ba1393a0129dc699e123a24
Author: Misha Koshelev <mk144210 at bcm.edu>
Date: Fri May 11 14:08:14 2007 -0500
msi: automation: Implement Record::FieldCount.
---
dlls/msi/automation.c | 8 ++++++++
dlls/msi/msiserver.idl | 2 ++
dlls/msi/msiserver_dispids.h | 1 +
dlls/msi/tests/automation.c | 9 +++------
4 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c
index ec0706a..e314be0 100644
--- a/dlls/msi/automation.c
+++ b/dlls/msi/automation.c
@@ -566,6 +566,14 @@ static HRESULT WINAPI RecordImpl_Invoke(
switch (dispIdMember)
{
+ case DISPID_RECORD_FIELDCOUNT:
+ if (wFlags & DISPATCH_PROPERTYGET) {
+ V_VT(pVarResult) = VT_I4;
+ V_I4(pVarResult) = MsiRecordGetFieldCount(This->msiHandle);
+ }
+ else return DISP_E_MEMBERNOTFOUND;
+ break;
+
case DISPID_RECORD_STRINGDATA:
if (wFlags & DISPATCH_PROPERTYGET) {
hr = DispGetParam(pDispParams, 0, VT_I4, &varg0, puArgErr);
diff --git a/dlls/msi/msiserver.idl b/dlls/msi/msiserver.idl
index e02f194..f47b691 100644
--- a/dlls/msi/msiserver.idl
+++ b/dlls/msi/msiserver.idl
@@ -88,6 +88,8 @@ library WindowsInstaller
void StringData(
[in] long Field,
[in] BSTR rhs);
+ [id(DISPID_RECORD_FIELDCOUNT), propget]
+ long FieldCount();
}
[ uuid(000C1095-0000-0000-C000-000000000046) ]
diff --git a/dlls/msi/msiserver_dispids.h b/dlls/msi/msiserver_dispids.h
index b65726e..88d6d53 100644
--- a/dlls/msi/msiserver_dispids.h
+++ b/dlls/msi/msiserver_dispids.h
@@ -22,6 +22,7 @@
#define DISPID_INSTALLER_PRODUCTSTATE 17
#define DISPID_INSTALLER_PRODUCTS 35
+#define DISPID_RECORD_FIELDCOUNT 0
#define DISPID_RECORD_STRINGDATA 1
#define DISPID_STRINGLIST_ITEM 0
diff --git a/dlls/msi/tests/automation.c b/dlls/msi/tests/automation.c
index c197c87..ab2cc12 100644
--- a/dlls/msi/tests/automation.c
+++ b/dlls/msi/tests/automation.c
@@ -1388,12 +1388,9 @@ static void test_Installer(void)
int iFieldCount = 0;
/* Record::FieldCountGet */
- todo_wine
- {
- hr = Record_FieldCountGet(pRecord, &iFieldCount);
- ok(SUCCEEDED(hr), "Record_FiledCountGet failed, hresult 0x%08x\n", hr);
- ok(iFieldCount == 1, "Record_FieldCountGet result was %d but expected 1\n", iFieldCount);
- }
+ hr = Record_FieldCountGet(pRecord, &iFieldCount);
+ ok(SUCCEEDED(hr), "Record_FiledCountGet failed, hresult 0x%08x\n", hr);
+ ok(iFieldCount == 1, "Record_FieldCountGet result was %d but expected 1\n", iFieldCount);
IDispatch_Release(pRecord);
}
More information about the wine-cvs
mailing list