Commit 157d18bb authored by Hans Leidekker's avatar Hans Leidekker Committed by Alexandre Julliard

inetcomm: Advertise support for a couple more interfaces.

parent de8dd504
...@@ -137,6 +137,8 @@ static const struct IClassFactoryVtbl cf_vtbl = ...@@ -137,6 +137,8 @@ static const struct IClassFactoryVtbl cf_vtbl =
static cf mime_body_cf = { &cf_vtbl, MimeBody_create }; static cf mime_body_cf = { &cf_vtbl, MimeBody_create };
static cf mime_allocator_cf = { &cf_vtbl, MimeAllocator_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 };
/*********************************************************************** /***********************************************************************
* DllGetClassObject (INETCOMM.@) * DllGetClassObject (INETCOMM.@)
...@@ -147,10 +149,27 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv) ...@@ -147,10 +149,27 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
TRACE("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv ); TRACE("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(iid), ppv );
if (IsEqualCLSID(rclsid, &CLSID_ISMTPTransport))
return SMTPTransportCF_Create(iid, ppv);
if (IsEqualCLSID(rclsid, &CLSID_ISMTPTransport2))
return SMTPTransportCF_Create(iid, ppv);
if (IsEqualCLSID(rclsid, &CLSID_IIMAPTransport)) if (IsEqualCLSID(rclsid, &CLSID_IIMAPTransport))
return IMAPTransportCF_Create(iid, ppv); return IMAPTransportCF_Create(iid, ppv);
if( IsEqualCLSID( rclsid, &CLSID_IMimeBody )) if (IsEqualCLSID(rclsid, &CLSID_IPOP3Transport))
return POP3TransportCF_Create(iid, ppv);
if ( IsEqualCLSID( rclsid, &CLSID_IMimeSecurity ))
{
cf = (IClassFactory*) &mime_security_cf.lpVtbl;
}
else if( IsEqualCLSID( rclsid, &CLSID_IMimeMessage ))
{
cf = (IClassFactory*) &mime_message_cf.lpVtbl;
}
else if( IsEqualCLSID( rclsid, &CLSID_IMimeBody ))
{ {
cf = (IClassFactory*) &mime_body_cf.lpVtbl; cf = (IClassFactory*) &mime_body_cf.lpVtbl;
} }
......
...@@ -75,7 +75,11 @@ void InternetTransport_UnregisterClass(HINSTANCE hInstance); ...@@ -75,7 +75,11 @@ void InternetTransport_UnregisterClass(HINSTANCE hInstance);
HRESULT MimeBody_create(IUnknown *outer, void **obj); HRESULT MimeBody_create(IUnknown *outer, void **obj);
HRESULT MimeAllocator_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 MimeInternational_Construct(IMimeInternational **internat); HRESULT MimeInternational_Construct(IMimeInternational **internat);
HRESULT SMTPTransportCF_Create(REFIID riid, LPVOID *ppv);
HRESULT IMAPTransportCF_Create(REFIID riid, LPVOID *ppv); HRESULT IMAPTransportCF_Create(REFIID riid, LPVOID *ppv);
HRESULT POP3TransportCF_Create(REFIID riid, LPVOID *ppv);
...@@ -2540,22 +2540,19 @@ static const IMimeMessageVtbl MimeMessageVtbl = ...@@ -2540,22 +2540,19 @@ static const IMimeMessageVtbl MimeMessageVtbl =
MimeMessage_GetRootMoniker, MimeMessage_GetRootMoniker,
}; };
/*********************************************************************** HRESULT MimeMessage_create(IUnknown *outer, void **obj)
* MimeOleCreateMessage (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessage)
{ {
MimeMessage *This; MimeMessage *This;
TRACE("(%p, %p)\n", pUnkOuter, ppMessage); TRACE("(%p, %p)\n", outer, obj);
if (pUnkOuter) if (outer)
{ {
FIXME("outer unknown not supported yet\n"); FIXME("outer unknown not supported yet\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
*ppMessage = NULL; *obj = NULL;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
if (!This) return E_OUTOFMEMORY; if (!This) return E_OUTOFMEMORY;
...@@ -2566,11 +2563,20 @@ HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessag ...@@ -2566,11 +2563,20 @@ HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessag
list_init(&This->body_tree); list_init(&This->body_tree);
This->next_hbody = (HBODY)1; This->next_hbody = (HBODY)1;
*ppMessage = (IMimeMessage *)&This->lpVtbl; *obj = (IMimeMessage *)&This->lpVtbl;
return S_OK; return S_OK;
} }
/*********************************************************************** /***********************************************************************
* MimeOleCreateMessage (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessage)
{
TRACE("(%p, %p)\n", pUnkOuter, ppMessage);
return MimeMessage_create(NULL, (void **)ppMessage);
}
/***********************************************************************
* MimeOleSetCompatMode (INETCOMM.@) * MimeOleSetCompatMode (INETCOMM.@)
*/ */
HRESULT WINAPI MimeOleSetCompatMode(DWORD dwMode) HRESULT WINAPI MimeOleSetCompatMode(DWORD dwMode)
...@@ -2754,16 +2760,13 @@ static const IMimeSecurityVtbl MimeSecurityVtbl = ...@@ -2754,16 +2760,13 @@ static const IMimeSecurityVtbl MimeSecurityVtbl =
MimeSecurity_GetCertData MimeSecurity_GetCertData
}; };
/*********************************************************************** HRESULT MimeSecurity_create(IUnknown *outer, void **obj)
* MimeOleCreateSecurity (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity **ppSecurity)
{ {
MimeSecurity *This; MimeSecurity *This;
TRACE("(%p)\n", ppSecurity); *obj = NULL;
*ppSecurity = NULL; if (outer) return CLASS_E_NOAGGREGATION;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
if (!This) return E_OUTOFMEMORY; if (!This) return E_OUTOFMEMORY;
...@@ -2771,10 +2774,17 @@ HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity **ppSecurity) ...@@ -2771,10 +2774,17 @@ HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity **ppSecurity)
This->lpVtbl = &MimeSecurityVtbl; This->lpVtbl = &MimeSecurityVtbl;
This->refs = 1; This->refs = 1;
*ppSecurity = (IMimeSecurity *)&This->lpVtbl; *obj = (IMimeSecurity *)&This->lpVtbl;
return S_OK; return S_OK;
} }
/***********************************************************************
* MimeOleCreateSecurity (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity **ppSecurity)
{
return MimeSecurity_create(NULL, (void **)ppSecurity);
}
typedef struct typedef struct
{ {
......
...@@ -404,6 +404,12 @@ static struct regsvr_coclass const coclass_list[] = { ...@@ -404,6 +404,12 @@ static struct regsvr_coclass const coclass_list[] = {
"inetcomm.dll", "inetcomm.dll",
"Both" "Both"
}, },
{ &CLSID_ISMTPTransport2,
"CLSID_ISMTPTransport2",
NULL,
"inetcomm.dll",
"Both"
},
{ &CLSID_IPOP3Transport, { &CLSID_IPOP3Transport,
"CLSID_IPOP3Transport", "CLSID_IPOP3Transport",
NULL, NULL,
...@@ -452,6 +458,12 @@ static struct regsvr_coclass const coclass_list[] = { ...@@ -452,6 +458,12 @@ static struct regsvr_coclass const coclass_list[] = {
"inetcomm.dll", "inetcomm.dll",
"Both" "Both"
}, },
{ &CLSID_IMimeSecurity,
"CLSID_IMimeSecurity",
NULL,
"inetcomm.dll",
"Both"
},
{ NULL } /* list terminator */ { NULL } /* list terminator */
}; };
......
...@@ -27,6 +27,7 @@ interface IIMAPTransport; ...@@ -27,6 +27,7 @@ interface IIMAPTransport;
cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IInternetMessageUrl, 0xca30cc91, 0xb1b3, 0x11d0, 0x85, 0xd0, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport, 0xfd853ce6, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_ISMTPTransport2, 0xdf2c7eC, 0x3435, 0x11d0, 0x81, 0xd0, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IPOP3Transport, 0xfd853ce7, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_INNTPTransport, 0xfd853ce8, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IRASTransport, 0xfd853ce9, 0x7f86, 0x11d0, 0x82, 0x52, 0x00, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
......
...@@ -32,6 +32,8 @@ interface IMimeEnumProperties; ...@@ -32,6 +32,8 @@ interface IMimeEnumProperties;
cpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IMimeBody, 0xfd853cdb, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IMimeAllocator, 0xfd853cdd, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);") cpp_quote("DEFINE_GUID(CLSID_IMimeMessage, 0xfd853ce3, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IMimeSecurity, 0xfd853cde, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("DEFINE_GUID(CLSID_IVirtualStream, 0xfd853cdf, 0x7f86, 0x11d0, 0x82, 0x52, 0x0, 0xc0, 0x4f, 0xd8, 0x5a, 0xb4);")
cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01") cpp_quote("#define MIME_E_REG_CREATE_KEY 0x800cce01")
cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02") cpp_quote("#define MIME_E_REG_QUERY_INFO 0x800cce02")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment