Alexandre Julliard : urlmon: Convert the coclasses registration to the IRegistrar mechanism.

Alexandre Julliard julliard at winehq.org
Tue Dec 14 10:55:39 CST 2010


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 13 20:33:36 2010 +0100

urlmon: Convert the coclasses registration to the IRegistrar mechanism.

---

 dlls/urlmon/Makefile.in       |    3 +-
 dlls/urlmon/regsvr.c          |   66 --------------------------------
 dlls/urlmon/urlmon.inf        |   12 +-----
 dlls/urlmon/urlmon_urlmon.idl |   84 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 88 insertions(+), 77 deletions(-)

diff --git a/dlls/urlmon/Makefile.in b/dlls/urlmon/Makefile.in
index 65384e8..41368d9 100644
--- a/dlls/urlmon/Makefile.in
+++ b/dlls/urlmon/Makefile.in
@@ -1,7 +1,7 @@
 MODULE    = urlmon.dll
 IMPORTLIB = urlmon
 IMPORTS   = uuid ole32 oleaut32 shell32 rpcrt4 shlwapi wininet user32 advapi32
-EXTRADEFS = -D_URLMON_ -DENTRY_PREFIX=URLMON_ -DPROXY_DELEGATION -DREGISTER_PROXY_DLL \
+EXTRADEFS = -D_URLMON_ -DENTRY_PREFIX=URLMON_ -DPROXY_DELEGATION -DWINE_REGISTER_DLL \
 	    -DPROXY_CLSID_IS="{0x79EAC9F1,0xBAF9,0x11CE,{0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B}}"
 
 C_SRCS = \
@@ -31,6 +31,7 @@ C_SRCS = \
 RC_SRCS = rsrc.rc
 
 IDL_P_SRCS = urlmon_urlmon.idl
+IDL_R_SRCS = urlmon_urlmon.idl
 
 EXTRA_OBJS = dlldata.o
 
diff --git a/dlls/urlmon/regsvr.c b/dlls/urlmon/regsvr.c
index 6e417ac..ec70465 100644
--- a/dlls/urlmon/regsvr.c
+++ b/dlls/urlmon/regsvr.c
@@ -435,72 +435,6 @@ error_close_progid_key:
  *		coclass list
  */
 static struct regsvr_coclass const coclass_list[] = {
-    {   &CLSID_StdURLMoniker,
-	"URL Moniker",
-	NULL,
-	"urlmon.dll",
-	"Apartment"
-    },
-    {   &CLSID_CdlProtocol,
-        "CDL: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_FileProtocol,
-        "file:, local: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_FtpProtocol,
-        "ftp: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_GopherProtocol,
-        "gopher: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_HttpProtocol,
-        "http: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_HttpSProtocol,
-        "https: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_MkProtocol,
-        "mk: Asynchronous Pluggable Protocol Handler",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
-    {   &CLSID_InternetSecurityManager,
-        "Security Manager",
-        NULL,
-        "urlmon.dll",
-        "Both"
-    },
-    {   &CLSID_InternetZoneManager,
-        "URL Zone Manager",
-        NULL,
-        "urlmon.dll",
-        "Both"
-    },
-    {   &CLSID_PSFactoryBuffer,
-        "URLMoniker ProxyStub Factory",
-        NULL,
-        "urlmon.dll",
-        "Apartment"
-    },
     { NULL }			/* list terminator */
 };
 
diff --git a/dlls/urlmon/urlmon.inf b/dlls/urlmon/urlmon.inf
index c9debb4..da5778d 100644
--- a/dlls/urlmon/urlmon.inf
+++ b/dlls/urlmon/urlmon.inf
@@ -3,19 +3,11 @@ Signature="$CHICAGO$"
 
 
 [RegisterDll]
-AddReg=Classes.Reg, Protocols.Reg, ZoneMap.Reg, Zones.Reg, Misc.Reg
+AddReg=Protocols.Reg, ZoneMap.Reg, Zones.Reg, Misc.Reg
 
 
 [UnregisterDll]
-DelReg=Classes.Reg, Protocols.Reg, ZoneMap.Reg, Zones.Reg, Misc.Reg
-
-
-[Classes.Reg]
-
-;; CLSID_DeCompMimeFilter
-HKCR,"CLSID\%CLSID_DeCompMimeFilter%",,,"AP lzdhtml encoding/decoding Filter"
-HKCR,"CLSID\%CLSID_DeCompMimeFilter%\InProcServer32",,,"%MODULE%"
-HKCR,"CLSID\%CLSID_DeCompMimeFilter%\InProcServer32","ThreadingModel",,"Apartment"
+DelReg=Protocols.Reg, ZoneMap.Reg, Zones.Reg, Misc.Reg
 
 
 [Protocols.Reg]
diff --git a/dlls/urlmon/urlmon_urlmon.idl b/dlls/urlmon/urlmon_urlmon.idl
index d45ba07..ad23dee 100644
--- a/dlls/urlmon/urlmon_urlmon.idl
+++ b/dlls/urlmon/urlmon_urlmon.idl
@@ -17,3 +17,87 @@
  */
 
 #include "urlmon.idl"
+
+[
+    helpstring("URL Moniker"),
+    threading(apartment),
+    uuid(79eac9e0-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass StdURLMoniker { interface IMoniker; }
+
+[
+    helpstring("http: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e2-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass HttpProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("ftp: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e3-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass FtpProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("gopher: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e4-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass GopherProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("https: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e5-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass HttpsProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("mk: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e6-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass MkProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("file:, local: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(79eac9e7-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass FileProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("CDL: Asynchronous Pluggable Protocol Handler"),
+    threading(apartment),
+    uuid(3dd53d40-7b8b-11d0-b013-00aa0059ce02)
+]
+coclass CdlProtocol { interface IInternetProtocolEx; interface IInternetPriority; }
+
+[
+    helpstring("Security Manager"),
+    threading(both),
+    uuid(7b8a2d94-0ac9-11d1-896c-00c04fb6bfc4)
+]
+coclass InternetSecurityManager { interface IInternetSecurityManager; }
+
+[
+    helpstring("URL Zone Manager"),
+    threading(both),
+    uuid(7b8a2d95-0ac9-11d1-896c-00c04fb6bfc4)
+]
+coclass InternetZoneManager { interface IInternetZoneManagerEx2; }
+
+[
+    helpstring("URLMoniker ProxyStub Factory"),
+    threading(apartment),
+    uuid(79eac9f1-baf9-11ce-8c82-00aa004ba90b)
+]
+coclass PSFactoryBuffer { interface IPSFactoryBuffer; }
+
+[
+    helpstring("AP lzdhtml encoding/decoding Filter"),
+    threading(apartment),
+    uuid(8f6b0360-b80d-11d0-a9b3-006097942311)
+]
+coclass DeCompMimeFilter { interface IInternetProtocol; interface IInternetProtocolSink; }




More information about the wine-cvs mailing list