Module: wine Branch: master Commit: c0c6fe63418b64970ba1393a0129dc699e123a24 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c0c6fe63418b64970ba1393a01...
Author: Misha Koshelev mk144210@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); }