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