{
MSIPACKAGE* package;
INT index;
+ UINT rc = ERROR_SUCCESS;
TRACE(" %s to %i\n",debugstr_w(szFeature), iState);
index = get_loaded_feature(package,szFeature);
if (index < 0)
- return ERROR_UNKNOWN_FEATURE;
+ {
+ rc = ERROR_UNKNOWN_FEATURE;
+ goto end;
+ }
package->features[index].ActionRequest= iState;
ACTION_UpdateComponentStates(package,szFeature);
- return ERROR_SUCCESS;
+end:
+ msiobj_release( &package->hdr );
+ return rc;
}
UINT WINAPI MsiGetFeatureStateA(MSIHANDLE hInstall, LPSTR szFeature,
package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
- if( record )
- {
- r = MSI_FormatRecordW( package, record, szResult, sz );
- msiobj_release( &record->hdr );
- }
+ r = MSI_FormatRecordW( package, record, szResult, sz );
+ msiobj_release( &record->hdr );
if (package)
msiobj_release( &package->hdr );
return r;
package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
- if( record )
- {
- r = MSI_FormatRecordA( package, record, szResult, sz );
- msiobj_release( &record->hdr );
- }
+ r = MSI_FormatRecordA( package, record, szResult, sz );
+ msiobj_release( &record->hdr );
if (package)
msiobj_release( &package->hdr );
return r;
goto end;
package = msihandle2msiinfo(handle, MSIHANDLETYPE_PACKAGE);
+ if (!package)
+ {
+ rc = ERROR_INVALID_HANDLE;
+ goto end;
+ }
sz = strlenW(szInstalled);
msiobj_unlock( &rec->hdr );
out:
- if( query )
- msiobj_release( &query->hdr );
+ msiobj_release( &query->hdr );
if( rec )
msiobj_release( &rec->hdr );
*hRec = alloc_msihandle( &rec->hdr );
out:
- if( query )
- msiobj_release( &query->hdr );
+ msiobj_release( &query->hdr );
if( rec )
msiobj_release( &rec->hdr );
r = view->ops->modify( view, eModifyMode, rec );
out:
- if( query )
- msiobj_release( &query->hdr );
+ msiobj_release( &query->hdr );
if( rec )
msiobj_release( &rec->hdr );
package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE );
if( !package )
- goto out;
+ return ERROR_INVALID_HANDLE;
record = msihandle2msiinfo( hRecord, MSIHANDLETYPE_RECORD );
if( !record )
ret = MSI_ProcessMessage( package, eMessageType, record );
out:
- if( package )
- msiobj_release( &package->hdr );
+ msiobj_release( &package->hdr );
if( record )
msiobj_release( &record->hdr );
msiobj_release( &preview->hdr );
r = ERROR_SUCCESS;
}
+ msiobj_release( &db->hdr );
return r;
}
rec->fields[i].u.iVal = 0;
}
msiobj_unlock( &rec->hdr );
+ msiobj_release( &rec->hdr );
return ERROR_SUCCESS;
}
if( !suminfo )
return ERROR_INVALID_HANDLE;
+ msiobj_release( &suminfo->hdr );
return ERROR_CALL_NOT_IMPLEMENTED;
}
HRESULT r;
PROPSPEC spec;
PROPVARIANT var;
+ UINT rc = ERROR_SUCCESS;
TRACE("%ld %d %p %p %p %p %p\n",
hSummaryInfo, uiProperty, puiDataType, piValue,
r = IPropertyStorage_ReadMultiple( suminfo->propstg, 1, &spec, &var);
if( FAILED(r) )
- return ERROR_FUNCTION_FAILED;
+ {
+ rc = ERROR_FUNCTION_FAILED;
+ goto end;
+ }
if( puiDataType )
*puiDataType = var.vt;
break;
}
- return ERROR_SUCCESS;
+end:
+ msiobj_release( &suminfo->hdr );
+ return rc;
}
UINT WINAPI MsiSummaryInfoGetPropertyW(
HRESULT r;
PROPSPEC spec;
PROPVARIANT var;
+ UINT rc = ERROR_SUCCESS;
TRACE("%ld %d %p %p %p %p %p\n",
hSummaryInfo, uiProperty, puiDataType, piValue,
r = IPropertyStorage_ReadMultiple( suminfo->propstg, 1, &spec, &var);
if( FAILED(r) )
- return ERROR_FUNCTION_FAILED;
+ {
+ rc = ERROR_FUNCTION_FAILED;
+ goto end;
+ }
if( puiDataType )
*puiDataType = var.vt;
break;
}
- return ERROR_SUCCESS;
+end:
+ msiobj_release( &suminfo->hdr );
+ return rc;
}
UINT WINAPI MsiSummaryInfoSetPropertyA( MSIHANDLE hSummaryInfo, UINT uiProperty,