if (installed != INSTALLSTATE_ABSENT || action != INSTALLSTATE_SOURCE)
CheckError(E_FAIL);
return ERROR_SUCCESS;
/*
HRESULT __stdcall ViewGetError(unsigned long hView, ichar* szColumnNameBuffer,unsigned long* pcchBuf, int *pMsidbError);
HRESULT __stdcall ViewModify(unsigned long hView, long eUpdateMode, unsigned long hRecord);
HRESULT __stdcall ViewClose(unsigned long hView);
HRESULT __stdcall OpenDatabase(const ichar* szDatabasePath, const ichar* szPersist,unsigned long *phDatabase);
HRESULT __stdcall DatabaseCommit(unsigned long hDatabase);
HRESULT __stdcall DatabaseGetPrimaryKeys(unsigned long hDatabase, const ichar * szTableName,unsigned long *phRecord);
HRESULT __stdcall RecordIsNull(unsigned long hRecord, unsigned int iField, boolean *pfIsNull);
HRESULT __stdcall RecordDataSize(unsigned long hRecord, unsigned int iField,unsigned int* puiSize);
HRESULT __stdcall RecordSetInteger(unsigned long hRecord, unsigned int iField, int iValue);
HRESULT __stdcall RecordSetString(unsigned long hRecord, unsigned int iField, const ichar* szValue);
HRESULT __stdcall RecordGetInteger(unsigned long hRecord, unsigned int iField, int *piValue);
HRESULT __stdcall RecordGetString(unsigned long hRecord, unsigned int iField, ichar* szValueBuf,unsigned long *pcchValueBuf);
HRESULT __stdcall RecordGetFieldCount(unsigned long hRecord,unsigned int* piCount);
HRESULT __stdcall RecordSetStream(unsigned long hRecord, unsigned int iField, const ichar* szFilePath);
HRESULT __stdcall RecordReadStream(unsigned long hRecord, unsigned int iField, char *szDataBuf,unsigned long *pcbDataBuf);
HRESULT __stdcall RecordClearData(unsigned long hRecord);
HRESULT __stdcall GetSummaryInformation(unsigned long hDatabase, const ichar* szDatabasePath, unsigned int uiUpdateCount, unsigned long *phSummaryInfo);
HRESULT __stdcall SummaryInfoGetPropertyCount(unsigned long hSummaryInfo, unsigned int *puiPropertyCount);
HRESULT __stdcall SummaryInfoSetProperty(unsigned long hSummaryInfo,unsigned intuiProperty, unsigned intuiDataType, int iValue, FILETIME *pftValue, const ichar* szValue);
HRESULT __stdcall SummaryInfoGetProperty(unsigned long hSummaryInfo,unsigned intuiProperty,unsigned int *puiDataType, int *piValue, FILETIME *pftValue, ichar* szValueBuf,unsigned long *pcchValueBuf);
HRESULT __stdcall SummaryInfoPersist(unsigned long hSummaryInfo);