vbscript: Added IActiveScript::SetScriptSite implementation.
diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c
index f0da4ed..74cc745 100644
--- a/dlls/vbscript/vbscript.c
+++ b/dlls/vbscript/vbscript.c
@@ -89,8 +89,11 @@
 
     TRACE("(%p) ref=%d\n", iface, ref);
 
-    if(!ref)
+    if(!ref) {
+        if(This->site)
+            IActiveScriptSite_Release(This->site);
         heap_free(This);
+    }
 
     return ref;
 }
@@ -98,7 +101,27 @@
 static HRESULT WINAPI VBScript_SetScriptSite(IActiveScript *iface, IActiveScriptSite *pass)
 {
     VBScript *This = impl_from_IActiveScript(iface);
-    FIXME("(%p)->(%p)\n", This, pass);
+    LCID lcid;
+    HRESULT hres;
+
+    TRACE("(%p)->(%p)\n", This, pass);
+
+    if(!pass)
+        return E_POINTER;
+
+    if(This->site)
+        return E_UNEXPECTED;
+
+    if(InterlockedCompareExchange(&This->thread_id, GetCurrentThreadId(), 0))
+        return E_UNEXPECTED;
+
+    This->site = pass;
+    IActiveScriptSite_AddRef(This->site);
+
+    hres = IActiveScriptSite_GetLCID(This->site, &lcid);
+    if(hres == S_OK)
+        This->lcid = lcid;
+
     return S_OK;
 }
 
diff --git a/dlls/vbscript/vbscript.h b/dlls/vbscript/vbscript.h
index cd97e09..cec9a04 100644
--- a/dlls/vbscript/vbscript.h
+++ b/dlls/vbscript/vbscript.h
@@ -24,6 +24,10 @@
     IActiveScriptParse IActiveScriptParse_iface;
 
     LONG ref;
+
+    IActiveScriptSite *site;
+    LONG thread_id;
+    LCID lcid;
 };
 
 HRESULT WINAPI VBScriptFactory_CreateInstance(IClassFactory*,IUnknown*,REFIID,void**);