Hans Leidekker : inetcomm: Add an implementation of IVirtualStream.

Alexandre Julliard julliard at winehq.org
Tue Nov 11 08:35:41 CST 2008


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Nov 11 10:17:38 2008 +0100

inetcomm: Add an implementation of IVirtualStream.

---

 dlls/inetcomm/inetcomm_main.c    |    5 +++++
 dlls/inetcomm/inetcomm_private.h |    1 +
 dlls/inetcomm/mimeole.c          |   10 ++++++++++
 dlls/inetcomm/regsvr.c           |    6 ++++++
 4 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/dlls/inetcomm/inetcomm_main.c b/dlls/inetcomm/inetcomm_main.c
index 1d71877..22f1919 100644
--- a/dlls/inetcomm/inetcomm_main.c
+++ b/dlls/inetcomm/inetcomm_main.c
@@ -139,6 +139,7 @@ static cf mime_body_cf      = { &cf_vtbl, MimeBody_create };
 static cf mime_allocator_cf = { &cf_vtbl, MimeAllocator_create };
 static cf mime_message_cf   = { &cf_vtbl, MimeMessage_create };
 static cf mime_security_cf  = { &cf_vtbl, MimeSecurity_create };
+static cf virtual_stream_cf = { &cf_vtbl, VirtualStream_create };
 
 /***********************************************************************
  *              DllGetClassObject (INETCOMM.@)
@@ -177,6 +178,10 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
     {
         cf = (IClassFactory*) &mime_allocator_cf.lpVtbl;
     }
+    else if( IsEqualCLSID( rclsid, &CLSID_IVirtualStream ))
+    {
+        cf = (IClassFactory*) &virtual_stream_cf.lpVtbl;
+    }
 
     if ( !cf )
     {
diff --git a/dlls/inetcomm/inetcomm_private.h b/dlls/inetcomm/inetcomm_private.h
index 589f92c..1d752c0 100644
--- a/dlls/inetcomm/inetcomm_private.h
+++ b/dlls/inetcomm/inetcomm_private.h
@@ -77,6 +77,7 @@ HRESULT MimeBody_create(IUnknown *outer, void **obj);
 HRESULT MimeAllocator_create(IUnknown *outer, void **obj);
 HRESULT MimeMessage_create(IUnknown *outer, void **obj);
 HRESULT MimeSecurity_create(IUnknown *outer, void **obj);
+HRESULT VirtualStream_create(IUnknown *outer, void **obj);
 
 HRESULT MimeInternational_Construct(IMimeInternational **internat);
 
diff --git a/dlls/inetcomm/mimeole.c b/dlls/inetcomm/mimeole.c
index 07aa6bd..bcc08dc 100644
--- a/dlls/inetcomm/mimeole.c
+++ b/dlls/inetcomm/mimeole.c
@@ -2989,3 +2989,13 @@ HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator **alloc)
 {
     return MimeAllocator_create(NULL, (void**)alloc);
 }
+
+HRESULT VirtualStream_create(IUnknown *outer, void **obj)
+{
+    FIXME("(%p, %p)\n", outer, obj);
+
+    *obj = NULL;
+    if (outer) return CLASS_E_NOAGGREGATION;
+
+    return MimeOleCreateVirtualStream((IStream **)obj);
+}
diff --git a/dlls/inetcomm/regsvr.c b/dlls/inetcomm/regsvr.c
index 4c7310c..8ac982e 100644
--- a/dlls/inetcomm/regsvr.c
+++ b/dlls/inetcomm/regsvr.c
@@ -464,6 +464,12 @@ static struct regsvr_coclass const coclass_list[] = {
         "inetcomm.dll",
         "Both"
     },
+    {   &CLSID_IVirtualStream,
+        "CLSID_IVirtualStream",
+        NULL,
+        "inetcomm.dll",
+        "Both"
+    },
     { NULL }			/* list terminator */
 };
 




More information about the wine-cvs mailing list