msi: automation: Implement Record::FieldCount.

oldstable
Misha Koshelev 2007-05-11 14:08:14 -05:00 committed by Alexandre Julliard
parent aa9f4beb65
commit c0c6fe6341
4 changed files with 14 additions and 6 deletions

View File

@ -566,6 +566,14 @@ static HRESULT WINAPI RecordImpl_Invoke(
switch (dispIdMember) 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: case DISPID_RECORD_STRINGDATA:
if (wFlags & DISPATCH_PROPERTYGET) { if (wFlags & DISPATCH_PROPERTYGET) {
hr = DispGetParam(pDispParams, 0, VT_I4, &varg0, puArgErr); hr = DispGetParam(pDispParams, 0, VT_I4, &varg0, puArgErr);

View File

@ -88,6 +88,8 @@ library WindowsInstaller
void StringData( void StringData(
[in] long Field, [in] long Field,
[in] BSTR rhs); [in] BSTR rhs);
[id(DISPID_RECORD_FIELDCOUNT), propget]
long FieldCount();
} }
[ uuid(000C1095-0000-0000-C000-000000000046) ] [ uuid(000C1095-0000-0000-C000-000000000046) ]

View File

@ -22,6 +22,7 @@
#define DISPID_INSTALLER_PRODUCTSTATE 17 #define DISPID_INSTALLER_PRODUCTSTATE 17
#define DISPID_INSTALLER_PRODUCTS 35 #define DISPID_INSTALLER_PRODUCTS 35
#define DISPID_RECORD_FIELDCOUNT 0
#define DISPID_RECORD_STRINGDATA 1 #define DISPID_RECORD_STRINGDATA 1
#define DISPID_STRINGLIST_ITEM 0 #define DISPID_STRINGLIST_ITEM 0

View File

@ -1388,12 +1388,9 @@ static void test_Installer(void)
int iFieldCount = 0; int iFieldCount = 0;
/* Record::FieldCountGet */ /* Record::FieldCountGet */
todo_wine hr = Record_FieldCountGet(pRecord, &iFieldCount);
{ ok(SUCCEEDED(hr), "Record_FiledCountGet failed, hresult 0x%08x\n", hr);
hr = Record_FieldCountGet(pRecord, &iFieldCount); ok(iFieldCount == 1, "Record_FieldCountGet result was %d but expected 1\n", 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); IDispatch_Release(pRecord);
} }