import "oaidl.idl";

[ object,
  uuid(0117eac4-29e0-4f81-8a19-80900ccfffe5),
  oleautomation,
  dual ]
interface IUpdateInf : IDispatch
{
   [id(3)] HRESULT InsertFile( [in] BSTR bstrFileName );
   [id(4)] HRESULT WriteSectionData( [in] BSTR bstrSection, [in] BSTR bstrValue );
   [id(5)] HRESULT SetConfigurationField( [in] BSTR bstrFieldName, [in] BSTR bstrValue );
   [id(6)] HRESULT SetVersionField( [in] BSTR bstrFieldName, [in] BSTR bstrValue );
   [id(7)] HRESULT AddSourceDisksFilesEntry( [in] BSTR bstrFile, [in] BSTR bstrTag );
   [id(8)] HRESULT AddEquality( [in] BSTR bstrSection, [in] BSTR bstrLVal, [in] BSTR bstrRVal );
   [id(9)] HRESULT SetDB( [in] BSTR bstrServer,
                          [in] BSTR bstrDB,
                          [in, defaultvalue(NULL)] BSTR bstrUser,
                          [in, defaultvalue(NULL)] BSTR bstrPassword );
   [id(10)] HRESULT InitGen( [in] BSTR bstrInxFile, [in] BSTR bstrInfFile );
   [id(11)] HRESULT CloseGen( [in] BOOL bTrimInf );
   [id(12), propget] HRESULT InfGenError( [out, retval] BSTR *bstrError );
};

[ uuid(7c1b689f-3b9f-4c65-aa65-9951a5048e47),
  helpstring("Update INF Generator"),
  version(1.0) ]
library InfGeneratorLib
{
   importlib("stdole32.tlb");
   interface IUpdateInf;

   [ uuid(9cd916b9-2004-42b1-b639-572fbf647204) ]
   coclass InfGenerator
   {
      interface IUpdateInf;
   };
};