///////////////////////////////////////////////////////////////////////////////////////////////////
// Interface IDreamSolver
[
object,
uuid(BD3A86B4-805E-48D7-8366-A96191D9A0E6),
local,
helpstring("IDreamSolver - interface to DREAM Solver"),
pointer_default(unique)
]
interface IDreamSolver : IUnknown
{
[helpstring("Load plugin module")]
HRESULT LoadPlugin([in] BSTR strPluginPath);
[helpstring("Return pointer to evaluator")]
HRESULT GetEvaluator([out] IDreamEvaluator** pIEvaluator);
[helpstring("Initialize evaluator and set input data from external source")]
HRESULT InitEvaluatorExt([in] IDreamPluginInfo* pIPluginInfo,
[in] IDreamCalcSettings* pISettings,
[in] IDreamDataSource* pIDataSource);
[helpstring("Initialize evaluator and set default input data from the evaluator")]
HRESULT InitEvaluatorDef([in] IDreamPluginInfo* pIPluginInfo,
[in] IDreamCalcSettings* pISettings);
[helpstring("Attach calculation observer")]
HRESULT AttachObserver([in] IDreamObserver* pICalcObserver);
[helpstring("Start DREAM calculation")]
HRESULT StartCalculation();
[helpstring("Interrupt DREAM calculation")]
HRESULT BreakCalculation();
[helpstring("Return path of given type")]
BSTR GetPath([in] eDreamPath pathType);
[helpstring("Set path of given type")]
HRESULT SetPath([in] eDreamPath pathType, [in] BSTR strPath);
[helpstring("Return the last error")]
HRESULT GetLastError([in] IDreamErrorInfo* pErrorInfo);
};