summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-11-30 18:32:34 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2012-12-06 20:30:31 +0100
commit10f44f01eed244d313bb3588565779b3bf7d8e14 (patch)
treedbf5054eb95c0b1eaa37e0c557060aff3f7d734a
parent6412e07644f467021e89e06c813e6aaa5fb10da2 (diff)
downloadmsitools-10f44f01eed244d313bb3588565779b3bf7d8e14.tar.gz
msitools-10f44f01eed244d313bb3588565779b3bf7d8e14.tar.xz
msitools-10f44f01eed244d313bb3588565779b3bf7d8e14.zip
do not use VT_* constants for property types
-rw-r--r--include/libmsi.h12
-rw-r--r--libmsi/suminfo.c79
-rw-r--r--tests/testdatabase.c44
-rw-r--r--tests/testdatabase.ok28
-rw-r--r--tests/testsuminfo.c76
-rw-r--r--tests/testsuminfo.ok6
6 files changed, 146 insertions, 99 deletions
diff --git a/include/libmsi.h b/include/libmsi.h
index b8dc18e..674c4b5 100644
--- a/include/libmsi.h
+++ b/include/libmsi.h
@@ -58,6 +58,14 @@ typedef enum LibmsiResult
LIBMSI_RESULT_INVALID_DATATYPE = 1804
} LibmsiResult;
+typedef enum LibmsiPropertyType
+{
+ LIBMSI_PROPERTY_TYPE_EMPTY = 0,
+ LIBMSI_PROPERTY_TYPE_INT = 1,
+ LIBMSI_PROPERTY_TYPE_STRING = 2,
+ LIBMSI_PROPERTY_TYPE_FILETIME = 3,
+} LibmsiPropertyType;
+
#define MSI_NULL_INTEGER 0x80000000
typedef enum LibmsiColInfo
@@ -197,9 +205,9 @@ LibmsiResult libmsi_database_apply_transform(LibmsiDatabase *,const char *,int);
LibmsiResult libmsi_query_get_column_info(LibmsiQuery *, LibmsiColInfo, LibmsiRecord **);
-LibmsiResult libmsi_summary_info_get_property(LibmsiSummaryInfo *,unsigned,unsigned *,int *,uint64_t*,char *,unsigned *);
+LibmsiResult libmsi_summary_info_get_property(LibmsiSummaryInfo *, LibmsiPropertyType,unsigned *,int *,uint64_t*,char *,unsigned *);
-LibmsiResult libmsi_summary_info_set_property(LibmsiSummaryInfo *, unsigned, unsigned, int, uint64_t*, const char *);
+LibmsiResult libmsi_summary_info_set_property(LibmsiSummaryInfo *, LibmsiPropertyType, unsigned, int, uint64_t*, const char *);
LibmsiResult libmsi_database_export(LibmsiDatabase *, const char *, int fd);
diff --git a/libmsi/suminfo.c b/libmsi/suminfo.c
index 874f22e..0e56cb2 100644
--- a/libmsi/suminfo.c
+++ b/libmsi/suminfo.c
@@ -20,6 +20,7 @@
#include <stdarg.h>
#include <time.h>
+#include <assert.h>
#define COBJMACROS
#define NONAMELESSUNION
@@ -514,7 +515,7 @@ LibmsiResult libmsi_summary_info_get_property(
if ( uiProperty >= MSI_MAX_PROPS )
{
- if (puiDataType) *puiDataType = VT_EMPTY;
+ if (puiDataType) *puiDataType = LIBMSI_PROPERTY_TYPE_EMPTY;
return LIBMSI_RESULT_UNKNOWN_PROPERTY;
}
@@ -524,20 +525,26 @@ LibmsiResult libmsi_summary_info_get_property(
msiobj_addref( &si->hdr );
prop = &si->property[uiProperty];
- if( puiDataType )
- *puiDataType = prop->vt;
-
switch( prop->vt )
{
case VT_I2:
+ if( puiDataType )
+ *puiDataType = LIBMSI_PROPERTY_TYPE_INT;
+
if( piValue )
*piValue = prop->iVal;
break;
case VT_I4:
+ if( puiDataType )
+ *puiDataType = LIBMSI_PROPERTY_TYPE_INT;
+
if( piValue )
*piValue = prop->lVal;
break;
case VT_LPSTR:
+ if( puiDataType )
+ *puiDataType = LIBMSI_PROPERTY_TYPE_STRING;
+
if( pcchValueBuf )
{
unsigned len = 0;
@@ -551,10 +558,16 @@ LibmsiResult libmsi_summary_info_get_property(
}
break;
case VT_FILETIME:
+ if( puiDataType )
+ *puiDataType = LIBMSI_PROPERTY_TYPE_FILETIME;
+
if( pftValue )
*pftValue = prop->filetime.dwLowDateTime | ((uint64_t)prop->filetime.dwHighDateTime << 32);
break;
case VT_EMPTY:
+ if( puiDataType )
+ *puiDataType = LIBMSI_PROPERTY_TYPE_EMPTY;
+
break;
default:
FIXME("Unknown property variant type\n");
@@ -604,28 +617,17 @@ WCHAR *msi_get_suminfo_product( IStorage *stg )
return prod;
}
-LibmsiResult libmsi_summary_info_set_property( LibmsiSummaryInfo *si, unsigned uiProperty,
- unsigned uiDataType, int iValue, uint64_t* pftValue, const char *szValue )
+static LibmsiResult _libmsi_summary_info_set_property( LibmsiSummaryInfo *si, unsigned uiProperty,
+ unsigned type, int iValue, uint64_t* pftValue, const char *szValue )
{
PROPVARIANT *prop;
unsigned len;
unsigned ret;
- int type;
-
- TRACE("%p %u %u %i %p %p\n", si, uiProperty, type, iValue,
- pftValue, szValue );
- if( !si )
- return LIBMSI_RESULT_INVALID_HANDLE;
-
- type = get_type( uiProperty );
- if( type == VT_EMPTY || type != uiDataType )
- return LIBMSI_RESULT_DATATYPE_MISMATCH;
-
- if( uiDataType == VT_LPSTR && !szValue )
+ if( type == VT_LPSTR && !szValue )
return LIBMSI_RESULT_INVALID_PARAMETER;
- if( uiDataType == VT_FILETIME && !pftValue )
+ if( type == VT_FILETIME && !pftValue )
return LIBMSI_RESULT_INVALID_PARAMETER;
msiobj_addref( &si->hdr);
@@ -673,6 +675,42 @@ end:
return ret;
}
+LibmsiResult libmsi_summary_info_set_property( LibmsiSummaryInfo *si, unsigned uiProperty,
+ unsigned uiDataType, int iValue, uint64_t* pftValue, const char *szValue )
+{
+ int type;
+
+ TRACE("%p %u %u %i %p %p\n", si, uiProperty, type, iValue,
+ pftValue, szValue );
+
+ if( !si )
+ return LIBMSI_RESULT_INVALID_HANDLE;
+
+ type = get_type( uiProperty );
+ switch (type) {
+ case VT_EMPTY:
+ return LIBMSI_RESULT_DATATYPE_MISMATCH;
+ case VT_I2:
+ case VT_I4:
+ if (uiDataType != LIBMSI_PROPERTY_TYPE_INT) {
+ return LIBMSI_RESULT_DATATYPE_MISMATCH;
+ }
+ break;
+ case VT_LPSTR:
+ if (uiDataType != LIBMSI_PROPERTY_TYPE_STRING) {
+ return LIBMSI_RESULT_DATATYPE_MISMATCH;
+ }
+ break;
+ case VT_FILETIME:
+ if (uiDataType != LIBMSI_PROPERTY_TYPE_FILETIME) {
+ return LIBMSI_RESULT_DATATYPE_MISMATCH;
+ }
+ break;
+ }
+
+ return _libmsi_summary_info_set_property( si, uiProperty, type, iValue, pftValue, szValue );
+}
+
static unsigned suminfo_persist( LibmsiSummaryInfo *si )
{
unsigned ret = LIBMSI_RESULT_FUNCTION_FAILED;
@@ -800,7 +838,8 @@ unsigned msi_add_suminfo( LibmsiDatabase *db, WCHAR ***records, int num_records,
if (r != LIBMSI_RESULT_SUCCESS)
goto end;
- r = libmsi_summary_info_set_property( si, pid, get_type(pid), int_value, &ft_value, str_value );
+ assert( get_type(pid) != VT_EMPTY );
+ r = _libmsi_summary_info_set_property( si, pid, get_type(pid), int_value, &ft_value, str_value );
if (r != LIBMSI_RESULT_SUCCESS)
goto end;
diff --git a/tests/testdatabase.c b/tests/testdatabase.c
index 6bb05d3..74822e0 100644
--- a/tests/testdatabase.c
+++ b/tests/testdatabase.c
@@ -1536,7 +1536,7 @@ static void test_streamtable(void)
r = libmsi_database_get_summary_info( hdb, 1, &hsi );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to get summary information handle: %u\n", r );
- r = libmsi_summary_info_set_property( hsi, MSI_PID_SECURITY, VT_I4, 2, NULL, NULL );
+ r = libmsi_summary_info_set_property( hsi, MSI_PID_SECURITY, LIBMSI_PROPERTY_TYPE_INT, 2, NULL, NULL );
ok( r == LIBMSI_RESULT_SUCCESS, "Failed to set property: %u\n", r );
r = libmsi_summary_info_persist( hsi );
@@ -2143,13 +2143,13 @@ static void test_suminfo_import(void)
r = libmsi_summary_info_get_property(hsi, MSI_PID_CODEPAGE, &type, &int_value, NULL, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_I2, "Expected VT_I2, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_INT, "Expected VT_I2, got %u\n", type);
ok(int_value == 1252, "Expected 1252, got %d\n", int_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_TITLE, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(size == 18, "Expected 18, got %u\n", size);
ok(!strcmp(str_value, "Installer Database"),
"Expected \"Installer Database\", got %s\n", str_value);
@@ -2157,72 +2157,72 @@ static void test_suminfo_import(void)
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_SUBJECT, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "Installer description"),
"Expected \"Installer description\", got %s\n", str_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_AUTHOR, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "WineHQ"),
"Expected \"WineHQ\", got %s\n", str_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_KEYWORDS, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "Installer"),
"Expected \"Installer\", got %s\n", str_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_COMMENTS, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "Installer comments"),
"Expected \"Installer comments\", got %s\n", str_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_TEMPLATE, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "Intel;1033,2057"),
"Expected \"Intel;1033,2057\", got %s\n", str_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_REVNUMBER, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "{12345678-1234-1234-1234-123456789012}"),
"Expected \"{12345678-1234-1234-1234-123456789012}\", got %s\n", str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_CREATE_DTM, &type, NULL, &ft_value, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_FILETIME, "Expected VT_FILETIME, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_FILETIME, "Expected VT_FILETIME, got %u\n", type);
r = libmsi_summary_info_get_property(hsi, MSI_PID_LASTSAVE_DTM, &type, NULL, &ft_value, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_FILETIME, "Expected VT_FILETIME, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_FILETIME, "Expected VT_FILETIME, got %u\n", type);
r = libmsi_summary_info_get_property(hsi, MSI_PID_PAGECOUNT, &type, &int_value, NULL, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_I4, "Expected VT_I4, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_INT, "Expected VT_I4, got %u\n", type);
ok(int_value == 200, "Expected 200, got %d\n", int_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_WORDCOUNT, &type, &int_value, NULL, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_I4, "Expected VT_I4, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_INT, "Expected VT_I4, got %u\n", type);
ok(int_value == 2, "Expected 2, got %d\n", int_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_SECURITY, &type, &int_value, NULL, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_I4, "Expected VT_I4, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_INT, "Expected VT_I4, got %u\n", type);
ok(int_value == 2, "Expected 2, got %d\n", int_value);
size = sizeof(str_value);
r = libmsi_summary_info_get_property(hsi, MSI_PID_APPNAME, &type, NULL, NULL, str_value, &size);
ok(r == LIBMSI_RESULT_SUCCESS, "Expected LIBMSI_RESULT_SUCCESS, got %u\n", r);
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %u\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %u\n", type);
ok(!strcmp(str_value, "Vim"), "Expected \"Vim\", got %s\n", str_value);
libmsi_unref(hsi);
@@ -2864,30 +2864,30 @@ static unsigned set_summary_info(LibmsiDatabase *hdb)
res = libmsi_database_get_summary_info(hdb, 7, &suminfo);
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to open summaryinfo\n" );
- res = libmsi_summary_info_set_property(suminfo,2, VT_LPSTR, 0,NULL,
+ res = libmsi_summary_info_set_property(suminfo,2, LIBMSI_PROPERTY_TYPE_STRING, 0,NULL,
"Installation Database");
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo,3, VT_LPSTR, 0,NULL,
+ res = libmsi_summary_info_set_property(suminfo,3, LIBMSI_PROPERTY_TYPE_STRING, 0,NULL,
"Installation Database");
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo,4, VT_LPSTR, 0,NULL,
+ res = libmsi_summary_info_set_property(suminfo,4, LIBMSI_PROPERTY_TYPE_STRING, 0,NULL,
"Wine Hackers");
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo,7, VT_LPSTR, 0,NULL,
+ res = libmsi_summary_info_set_property(suminfo,7, LIBMSI_PROPERTY_TYPE_STRING, 0,NULL,
";1033,2057");
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo,9, VT_LPSTR, 0,NULL,
+ res = libmsi_summary_info_set_property(suminfo,9, LIBMSI_PROPERTY_TYPE_STRING, 0,NULL,
"{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}");
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo, 14, VT_I4, 100, NULL, NULL);
+ res = libmsi_summary_info_set_property(suminfo, 14, LIBMSI_PROPERTY_TYPE_INT, 100, NULL, NULL);
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
- res = libmsi_summary_info_set_property(suminfo, 15, VT_I4, 0, NULL, NULL);
+ res = libmsi_summary_info_set_property(suminfo, 15, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, NULL);
ok( res == LIBMSI_RESULT_SUCCESS , "Failed to set summary info\n" );
res = libmsi_summary_info_persist(suminfo);
diff --git a/tests/testdatabase.ok b/tests/testdatabase.ok
index 37561f8..aaa453b 100644
--- a/tests/testdatabase.ok
+++ b/tests/testdatabase.ok
@@ -2761,45 +2761,45 @@ ok: r == LIBMSI_RESULT_SUCCESS
ok: r == LIBMSI_RESULT_SUCCESS
ok: count == 14
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_I2
+ok: type == LIBMSI_PROPERTY_TYPE_INT
ok: int_value == 1252
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: size == 18
ok: !strcmp(str_value, "Installer Database")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "Installer description")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "WineHQ")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "Installer")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "Installer comments")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "Intel;1033,2057")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "{12345678-1234-1234-1234-123456789012}")
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_FILETIME
+ok: type == LIBMSI_PROPERTY_TYPE_FILETIME
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_FILETIME
+ok: type == LIBMSI_PROPERTY_TYPE_FILETIME
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_I4
+ok: type == LIBMSI_PROPERTY_TYPE_INT
ok: int_value == 200
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_I4
+ok: type == LIBMSI_PROPERTY_TYPE_INT
ok: int_value == 2
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_I4
+ok: type == LIBMSI_PROPERTY_TYPE_INT
ok: int_value == 2
ok: r == LIBMSI_RESULT_SUCCESS
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(str_value, "Vim")
ok: res == LIBMSI_RESULT_SUCCESS
ok: res == LIBMSI_RESULT_SUCCESS
diff --git a/tests/testsuminfo.c b/tests/testsuminfo.c
index a561300..4a7b060 100644
--- a/tests/testsuminfo.c
+++ b/tests/testsuminfo.c
@@ -98,18 +98,18 @@ static void test_suminfo(void)
ok(r == LIBMSI_RESULT_SUCCESS, "getpropcount failed\n");
ok(buf[0]=='x', "cleared buffer\n");
ok(sz == 0x10, "count wasn't zero\n");
- ok(type == VT_EMPTY, "should be empty\n");
+ ok(type == LIBMSI_PROPERTY_TYPE_EMPTY, "should be empty\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 0, NULL, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, "Mike");
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 1, NULL, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 1, NULL, "JungAh");
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 1, &ft, "Mike");
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_I2, 1, &ft, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_INT, 1, &ft, "JungAh");
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error\n");
r = libmsi_unref(hsuminfo);
@@ -119,43 +119,43 @@ static void test_suminfo(void)
r = libmsi_database_get_summary_info(hdb, 1, &hsuminfo);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n");
- r = libmsi_summary_info_set_property(hsuminfo, 0, VT_LPSTR, 1, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, 0, LIBMSI_PROPERTY_TYPE_STRING, 1, NULL, NULL);
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_LPSTR, 1, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_STRING, 1, NULL, NULL);
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_I4, 0, NULL, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, "Mike");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, VT_I4, 0, NULL, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, "JungAh");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_KEYWORDS, VT_I2, 0, NULL, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_KEYWORDS, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, "Mike");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_COMMENTS, VT_FILETIME, 0, NULL, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_COMMENTS, LIBMSI_PROPERTY_TYPE_FILETIME, 0, NULL, "JungAh");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TEMPLATE, VT_I2, 0, NULL, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TEMPLATE, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, "Mike");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_LASTAUTHOR, VT_LPSTR, 0, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_LASTAUTHOR, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, NULL);
ok(r == LIBMSI_RESULT_INVALID_PARAMETER, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_LASTSAVE_DTM, VT_FILETIME, 0, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_LASTSAVE_DTM, LIBMSI_PROPERTY_TYPE_FILETIME, 0, NULL, NULL);
ok(r == LIBMSI_RESULT_INVALID_PARAMETER, "libmsi_summary_info_set_property wrong error\n");
r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_LASTAUTHOR, VT_LPWSTR, 0, NULL, "h\0i\0\0");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_REVNUMBER, VT_I4, 0, NULL, "Jungah");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_REVNUMBER, LIBMSI_PROPERTY_TYPE_INT, 0, NULL, "Jungah");
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_PAGECOUNT, VT_LPSTR, 1, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_PAGECOUNT, LIBMSI_PROPERTY_TYPE_STRING, 1, NULL, NULL);
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 0, NULL, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, "Mike");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property failed\n");
sz = 2;
@@ -163,7 +163,7 @@ static void test_suminfo(void)
r = libmsi_summary_info_get_property(hsuminfo, MSI_PID_TITLE, &type, NULL, NULL, buf, &sz );
ok(r == LIBMSI_RESULT_MORE_DATA, "libmsi_summary_info_set_property failed\n");
ok(sz == 4, "count was wrong\n");
- ok(type == VT_LPSTR, "type was wrong\n");
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "type was wrong\n");
ok(!strcmp(buf,"M"), "buffer was wrong\n");
sz = 4;
@@ -171,13 +171,13 @@ static void test_suminfo(void)
r = libmsi_summary_info_get_property(hsuminfo, MSI_PID_TITLE, &type, NULL, NULL, buf, &sz );
ok(r == LIBMSI_RESULT_MORE_DATA, "libmsi_summary_info_set_property failed\n");
ok(sz == 4, "count was wrong\n");
- ok(type == VT_LPSTR, "type was wrong\n");
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "type was wrong\n");
ok(!strcmp(buf,"Mik"), "buffer was wrong\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 0, NULL, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, "JungAh");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property failed\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_I2, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_INT, 1, &ft, "Mike");
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error\n");
r = libmsi_unref(hsuminfo);
@@ -187,19 +187,19 @@ static void test_suminfo(void)
r = libmsi_database_get_summary_info(hdb, 10, &hsuminfo);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, VT_LPSTR, 0, NULL, "JungAh");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, "JungAh");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property failed\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_LPSTR, 1, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_STRING, 1, NULL, NULL);
ok(r == LIBMSI_RESULT_DATATYPE_MISMATCH, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_I2, 1, NULL, NULL);
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_INT, 1, NULL, NULL);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, VT_I2, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_CODEPAGE, LIBMSI_PROPERTY_TYPE_INT, 1, &ft, "Mike");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property wrong error\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, VT_LPSTR, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, LIBMSI_PROPERTY_TYPE_STRING, 1, &ft, "Mike");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property wrong error\n");
r = libmsi_summary_info_persist(hsuminfo);
@@ -220,7 +220,7 @@ static void test_suminfo(void)
r = libmsi_database_get_summary_info(hdb, 1, &hsuminfo);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed\n");
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, VT_LPSTR, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, LIBMSI_PROPERTY_TYPE_STRING, 1, &ft, "Mike");
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_summary_info_set_property wrong error\n");
r = libmsi_summary_info_persist(hsuminfo);
@@ -239,7 +239,7 @@ static void test_suminfo(void)
r = libmsi_database_get_summary_info(hdb, 0, &hsuminfo);
ok(r == LIBMSI_RESULT_SUCCESS, "libmsi_database_get_summary_info failed %u\n", r);
- r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, VT_LPSTR, 1, &ft, "Mike");
+ r = libmsi_summary_info_set_property(hsuminfo, MSI_PID_AUTHOR, LIBMSI_PROPERTY_TYPE_STRING, 1, &ft, "Mike");
todo_wine ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property wrong error, %u\n", r);
r = libmsi_summary_info_persist(hsuminfo);
@@ -317,43 +317,43 @@ static void test_create_database_binary(void)
propspec[0].ulKind = PRSPEC_PROPID;
propspec[0].propid = MSI_PID_TITLE;
- propvar[0].vt = VT_LPSTR;
+ propvar[0].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[0].pszVal = LOSE_CONST("test title");
propspec[1].ulKind = PRSPEC_PROPID;
propspec[1].propid = MSI_PID_SUBJECT;
- propvar[1].vt = VT_LPSTR;
+ propvar[1].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[1].pszVal = LOSE_CONST("msi suminfo / property storage test");
propspec[2].ulKind = PRSPEC_PROPID;
propspec[2].propid = MSI_PID_AUTHOR;
- propvar[2].vt = VT_LPSTR;
+ propvar[2].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[2].pszVal = LOSE_CONST("mike_m");
propspec[3].ulKind = PRSPEC_PROPID;
propspec[3].propid = MSI_PID_TEMPLATE;
- propvar[3].vt = VT_LPSTR;
+ propvar[3].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[3].pszVal = LOSE_CONST(";1033"); /* actually the string table's codepage */
propspec[4].ulKind = PRSPEC_PROPID;
propspec[4].propid = MSI_PID_REVNUMBER;
- propvar[4].vt = VT_LPSTR;
+ propvar[4].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[4].pszVal = LOSE_CONST("{913B8D18-FBB6-4CAC-A239-C74C11E3FA74}");
propspec[5].ulKind = PRSPEC_PROPID;
propspec[5].propid = MSI_PID_PAGECOUNT;
- propvar[5].vt = VT_I4;
+ propvar[5].vt = LIBMSI_PROPERTY_TYPE_INT;
propvar[5].lVal = 100;
propspec[6].ulKind = PRSPEC_PROPID;
propspec[6].propid = MSI_PID_WORDCOUNT;
- propvar[6].vt = VT_I4;
+ propvar[6].vt = LIBMSI_PROPERTY_TYPE_INT;
propvar[6].lVal = 0;
/* MSDN says that MSI_PID_LASTPRINTED should be a VT_FILETIME... */
propspec[7].ulKind = PRSPEC_PROPID;
propspec[7].propid = MSI_PID_LASTPRINTED;
- propvar[7].vt = VT_LPSTR;
+ propvar[7].vt = LIBMSI_PROPERTY_TYPE_STRING;
propvar[7].pszVal = LOSE_CONST("7/1/1999 5:17");
r = IPropertyStorage_WriteMultiple( ps, 8, propspec, propvar, MSI_PID_FIRST_USABLE );
@@ -404,7 +404,7 @@ static void test_summary_binary(void)
ok(!strcmp(sval, "") || !strcmp(sval, "7"),
"Expected empty string or \"7\", got \"%s\"\n", sval);
todo_wine {
- ok(type == VT_LPSTR, "Expected VT_LPSTR, got %d\n", type);
+ ok(type == LIBMSI_PROPERTY_TYPE_STRING, "Expected VT_LPSTR, got %d\n", type);
ok(sz == 0 || sz == 1, "Expected 0 or 1, got %d\n", sz);
}
@@ -419,7 +419,7 @@ static void test_summary_binary(void)
ok(r == LIBMSI_RESULT_SUCCESS, "getpropcount failed\n");
todo_wine ok(count == 10, "prop count incorrect\n");
- r = libmsi_summary_info_set_property( hsuminfo, MSI_PID_TITLE, VT_LPSTR, 0, NULL, "Mike" );
+ r = libmsi_summary_info_set_property( hsuminfo, MSI_PID_TITLE, LIBMSI_PROPERTY_TYPE_STRING, 0, NULL, "Mike" );
ok(r == LIBMSI_RESULT_FUNCTION_FAILED, "libmsi_summary_info_set_property failed %u\n", r);
r = libmsi_summary_info_persist( hsuminfo );
diff --git a/tests/testsuminfo.ok b/tests/testsuminfo.ok
index 37ef4e8..7ba7199 100644
--- a/tests/testsuminfo.ok
+++ b/tests/testsuminfo.ok
@@ -18,7 +18,7 @@ ok: val == 1234
ok: r == LIBMSI_RESULT_SUCCESS
ok: buf[0]=='x'
ok: sz == 0x10
-ok: type == VT_EMPTY
+ok: type == LIBMSI_PROPERTY_TYPE_EMPTY
ok: r == LIBMSI_RESULT_FUNCTION_FAILED
ok: r == LIBMSI_RESULT_FUNCTION_FAILED
ok: r == LIBMSI_RESULT_FUNCTION_FAILED
@@ -40,11 +40,11 @@ ok: r == LIBMSI_RESULT_DATATYPE_MISMATCH
ok: r == LIBMSI_RESULT_SUCCESS
ok: r == LIBMSI_RESULT_MORE_DATA
ok: sz == 4
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(buf,"M")
ok: r == LIBMSI_RESULT_MORE_DATA
ok: sz == 4
-ok: type == VT_LPSTR
+ok: type == LIBMSI_PROPERTY_TYPE_STRING
ok: !strcmp(buf,"Mik")
ok: r == LIBMSI_RESULT_SUCCESS
ok: r == LIBMSI_RESULT_FUNCTION_FAILED