String ScriptServer::Compile_(const String &sLanguage, const String &sFilename) { String sContents = FileUtilities::ReadCompleteTextFile(sFilename); if (sContents.IsEmpty()) return ""; // Create an instance of the script engine and execute the script. CComObject<CScriptSiteBasic>* pBasic; CComObject<CScriptSiteBasic>::CreateInstance(&pBasic); CComQIPtr<IActiveScriptSite> spUnk; if (!pBasic) return "ScriptServer:: Failed to create instance of script site."; spUnk = pBasic; // let CComQIPtr tidy up for us pBasic->Initiate(sLanguage, NULL); // pBasic->SetObjectContainer(pObjects); pBasic->AddScript(sContents); pBasic->Run(); pBasic->Terminate(); String sErrorMessage = pBasic->GetLastError(); if (!sErrorMessage.IsEmpty()) sErrorMessage = "File: " + sFilename + "\r\n" + sErrorMessage; return sErrorMessage; }