Jacek Caban : vbscript: Added Dll[Un]RegisterServer implementation.

Alexandre Julliard julliard at winehq.org
Tue Jun 21 12:25:43 CDT 2011


Module: wine
Branch: master
Commit: bab84c0ebed3221a29d4960e705cd66577337eba
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bab84c0ebed3221a29d4960e705cd66577337eba

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Jun 21 16:14:26 2011 +0200

vbscript: Added Dll[Un]RegisterServer implementation.

---

 dlls/vbscript/Makefile.in          |    4 ++
 dlls/vbscript/vbscript.rc          |   24 +++++++++++++
 dlls/vbscript/vbscript.rgs         |   64 ++++++++++++++++++++++++++++++++++++
 dlls/vbscript/vbscript_classes.idl |   50 ++++++++++++++++++++++++++++
 dlls/vbscript/vbscript_main.c      |   15 ++++++---
 tools/wine.inf.in                  |    1 +
 6 files changed, 153 insertions(+), 5 deletions(-)

diff --git a/dlls/vbscript/Makefile.in b/dlls/vbscript/Makefile.in
index 7b05715..c319b7d 100644
--- a/dlls/vbscript/Makefile.in
+++ b/dlls/vbscript/Makefile.in
@@ -3,4 +3,8 @@ MODULE    = vbscript.dll
 C_SRCS = \
 	vbscript_main.c
 
+RC_SRCS = vbscript.rc
+
+IDL_R_SRCS = vbscript_classes.idl
+
 @MAKE_DLL_RULES@
diff --git a/dlls/vbscript/vbscript.rc b/dlls/vbscript/vbscript.rc
new file mode 100644
index 0000000..311804f
--- /dev/null
+++ b/dlls/vbscript/vbscript.rc
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2011 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <windef.h>
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+/* @makedep: vbscript.rgs */
+2 WINE_REGISTRY vbscript.rgs
diff --git a/dlls/vbscript/vbscript.rgs b/dlls/vbscript/vbscript.rgs
new file mode 100644
index 0000000..7834e3e
--- /dev/null
+++ b/dlls/vbscript/vbscript.rgs
@@ -0,0 +1,64 @@
+HKCR
+{
+    NoRemove CLSID
+    {
+        '{B54F3741-5B07-11CF-A4B0-00AA004A55E8}'
+        {
+            'Implemented Categories'
+            {
+                '{f0b7a1a1-9847-11cf-8f20-00805f2cd064}'
+                '{f0b7a1a2-9847-11cf-8f20-00805f2cd064}'
+            }
+            OLEScript
+        }
+        '{B54F3742-5B07-11CF-A4B0-00AA004A55E8}'
+        {
+            'Implemented Categories'
+            {
+                '{0aee2a92-bcbb-11d0-8c72-00c04fc2b085}'
+            }
+            OLEScript
+        }
+        '{B54F3743-5B07-11CF-A4B0-00AA004A55E8}'
+        {
+            'Implemented Categories'
+            {
+                '{f0b7a1a1-9847-11cf-8f20-00805f2cd064}'
+                '{f0b7a1a2-9847-11cf-8f20-00805f2cd064}'
+                '{f0b7a1a3-9847-11cf-8f20-00805f2cd064}'
+            }
+            OLEScript
+        }
+    }
+    'VBS' = s 'VB Script Language'
+    {
+        CLSID = s '{B54F3741-5B07-11CF-A4B0-00AA004A55E8}'
+        OLEScript
+    }
+    'VBS Author' = s 'VB Script Language Authoring'
+    {
+        CLSID = s '{B54F3742-5B07-11CF-A4B0-00AA004A55E8}'
+        OLEScript
+    }
+    'VBScript'
+    {
+        OLEScript
+    }
+    'VBScript Author'
+    {
+        OLEScript
+    }
+    'VBScript.Encode'
+    {
+        OLEScript
+    }
+    'VBScript.RegExp'
+    {
+        OLEScript
+    }
+    ForceRemove '.vbs' = s 'VBSFile'
+    ForceRemove VBSFile = s 'VBScript Script File'
+    {
+        ScriptEngine = s 'VBScript'
+    }
+}
diff --git a/dlls/vbscript/vbscript_classes.idl b/dlls/vbscript/vbscript_classes.idl
new file mode 100644
index 0000000..c800e1b
--- /dev/null
+++ b/dlls/vbscript/vbscript_classes.idl
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+[
+    helpstring("VBScript Regular Expression"),
+    threading(apartment),
+    progid("VBScript.RegExp"),
+    version(5.5),
+    uuid(3f4daca4-160d-11d2-a8e9-00104b365c9f)
+]
+coclass VBScriptRegExp {}
+
+[
+    helpstring("VB Script Language"),
+    threading(both),
+    progid("VBScript"),
+    uuid(b54f3741-5b07-11cf-a4b0-00aa004a55e8)
+]
+coclass VBScript {}
+
+[
+    helpstring("VB Script Language Authoring"),
+    threading(both),
+    progid("VBScript Author"),
+    uuid(b54f3742-5b07-11cf-a4b0-00aa004a55e8)
+]
+coclass VBScriptAuthor {}
+
+[
+    helpstring("VB Script Language Encoding"),
+    threading(both),
+    progid("VBScript.Encode"),
+    uuid(b54f3743-5b07-11cf-a4b0-00aa004a55e8)
+]
+coclass VBScriptEncode {}
diff --git a/dlls/vbscript/vbscript_main.c b/dlls/vbscript/vbscript_main.c
index f8b760e..fed2317 100644
--- a/dlls/vbscript/vbscript_main.c
+++ b/dlls/vbscript/vbscript_main.c
@@ -24,11 +24,15 @@
 
 #include "windef.h"
 #include "winbase.h"
+#include "ole2.h"
+#include "rpcproxy.h"
 
 #include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(vbscript);
 
+static HINSTANCE vbscript_hinstance;
+
 /******************************************************************
  *              DllMain (vbscript.@)
  */
@@ -41,7 +45,8 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
     case DLL_WINE_PREATTACH:
         return FALSE;  /* prefer native version */
     case DLL_PROCESS_ATTACH:
-         DisableThreadLibraryCalls(hInstDLL);
+        DisableThreadLibraryCalls(hInstDLL);
+        vbscript_hinstance = hInstDLL;
         break;
     }
 
@@ -71,8 +76,8 @@ HRESULT WINAPI DllCanUnloadNow(void)
  */
 HRESULT WINAPI DllRegisterServer(void)
 {
-    FIXME("()\n");
-    return S_OK;
+    TRACE("()\n");
+    return __wine_register_resources(vbscript_hinstance, NULL);
 }
 
 /***********************************************************************
@@ -80,6 +85,6 @@ HRESULT WINAPI DllRegisterServer(void)
  */
 HRESULT WINAPI DllUnregisterServer(void)
 {
-    FIXME("()\n");
-    return S_OK;
+    TRACE("()\n");
+    return __wine_unregister_resources(vbscript_hinstance, NULL);
 }
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index 8e8eba8..5493f60 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -2558,6 +2558,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
 11,,shdocvw.dll,1
 11,,sti.dll,1
 11,,urlmon.dll,1
+11,,vbscript.dll,1
 11,,wbemprox.dll,1
 11,,wiaservc.dll,1
 11,,windowscodecs.dll,1




More information about the wine-cvs mailing list