Author: akhaldi
Date: Sun Jun 5 19:23:27 2016
New Revision: 71555
URL:
http://svn.reactos.org/svn/reactos?rev=71555&view=rev
Log:
[INETCOMM] Sync with Wine Staging 1.9.11. CORE-11368
Modified:
trunk/reactos/dll/win32/inetcomm/inetcomm.spec
trunk/reactos/dll/win32/inetcomm/mimeole.c
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/inetcomm/inetcomm.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/inetcomm/inetcom…
==============================================================================
--- trunk/reactos/dll/win32/inetcomm/inetcomm.spec [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/inetcomm/inetcomm.spec [iso-8859-1] Sun Jun 5 19:23:27 2016
@@ -42,7 +42,7 @@
@ stub MimeEditGetBackgroundImageUrl
@ stub MimeEditIsSafeToRun
@ stub MimeEditViewSource
-@ stub MimeGetAddressFormatW
+@ stdcall MimeGetAddressFormatW(ptr ptr long long ptr)
@ stub MimeOleAlgNameFromSMimeCap
@ stub MimeOleAlgStrengthFromSMimeCap
@ stub MimeOleClearDirtyTree
@@ -79,7 +79,7 @@
@ stdcall MimeOleGetInternat(ptr)
@ stub MimeOleGetPropA
@ stub MimeOleGetPropW
-@ stub MimeOleGetPropertySchema
+@ stdcall MimeOleGetPropertySchema(ptr)
@ stub MimeOleGetRelatedSection
@ stub MimeOleInetDateToFileTime
@ stub MimeOleObjectFromMoniker
Modified: trunk/reactos/dll/win32/inetcomm/mimeole.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/inetcomm/mimeole…
==============================================================================
--- trunk/reactos/dll/win32/inetcomm/mimeole.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/inetcomm/mimeole.c [iso-8859-1] Sun Jun 5 19:23:27 2016
@@ -97,6 +97,17 @@
return CONTAINING_RECORD(iface, MimeBody, IMimeBody_iface);
}
+typedef struct propschema
+{
+ IMimePropertySchema IMimePropertySchema_iface;
+ LONG ref;
+} propschema;
+
+static inline propschema *impl_from_IMimePropertySchema(IMimePropertySchema *iface)
+{
+ return CONTAINING_RECORD(iface, propschema, IMimePropertySchema_iface);
+}
+
static LPSTR strdupA(LPCSTR str)
{
char *ret;
@@ -185,7 +196,7 @@
for(prop = default_props; prop->name; prop++)
{
- if(!strcasecmp(*ptr, prop->name))
+ if(!lstrcmpiA(*ptr, prop->name))
{
TRACE("%s: found match with default property id %d\n", *ptr,
prop->id);
break;
@@ -197,7 +208,7 @@
property_list_entry_t *prop_entry;
LIST_FOR_EACH_ENTRY(prop_entry, &body->new_props, property_list_entry_t,
entry)
{
- if(!strcasecmp(*ptr, prop_entry->prop.name))
+ if(!lstrcmpiA(*ptr, prop_entry->prop.name))
{
TRACE("%s: found match with already added new property id
%d\n", *ptr, prop_entry->prop.id);
prop = &prop_entry->prop;
@@ -467,7 +478,7 @@
LIST_FOR_EACH_ENTRY(header, &body->headers, header_t, entry)
{
- if(!strcasecmp(name, header->prop->name))
+ if(!lstrcmpiA(name, header->prop->name))
{
*prop = header;
return S_OK;
@@ -541,7 +552,8 @@
IMimeBody* iface,
CLSID* pClassID)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, pClassID);
return E_NOTIMPL;
}
@@ -549,20 +561,22 @@
static HRESULT WINAPI MimeBody_IsDirty(
IMimeBody* iface)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->() stub\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeBody_Load(IMimeBody *iface, IStream *pStm)
{
MimeBody *This = impl_from_IMimeBody(iface);
- TRACE("(%p)->(%p)\n", iface, pStm);
+ TRACE("(%p)->(%p)\n", This, pStm);
return parse_headers(This, pStm);
}
static HRESULT WINAPI MimeBody_Save(IMimeBody *iface, IStream *pStm, BOOL fClearDirty)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p, %d)\n", This, pStm, fClearDirty);
return E_NOTIMPL;
}
@@ -570,14 +584,16 @@
IMimeBody* iface,
ULARGE_INTEGER* pcbSize)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, pcbSize);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeBody_InitNew(
IMimeBody* iface)
{
- TRACE("%p->()\n", iface);
+ MimeBody *This = impl_from_IMimeBody(iface);
+ TRACE("(%p)->()\n", This);
return S_OK;
}
@@ -586,7 +602,8 @@
LPCSTR pszName,
LPMIMEPROPINFO pInfo)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s, %p) stub\n", This, debugstr_a(pszName), pInfo);
return E_NOTIMPL;
}
@@ -595,7 +612,8 @@
LPCSTR pszName,
LPCMIMEPROPINFO pInfo)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s, %p) stub\n", This, debugstr_a(pszName), pInfo);
return E_NOTIMPL;
}
@@ -606,9 +624,15 @@
LPPROPVARIANT pValue)
{
MimeBody *This = impl_from_IMimeBody(iface);
- TRACE("(%p)->(%s, %d, %p)\n", This, pszName, dwFlags, pValue);
-
- if(!strcasecmp(pszName, "att:pri-content-type"))
+ header_t *header;
+ HRESULT hr;
+
+ TRACE("(%p)->(%s, 0x%x, %p)\n", This, debugstr_a(pszName), dwFlags,
pValue);
+
+ if(!pszName || !pValue)
+ return E_INVALIDARG;
+
+ if(!lstrcmpiA(pszName, "att:pri-content-type"))
{
PropVariantClear(pValue);
pValue->vt = VT_LPSTR;
@@ -616,8 +640,13 @@
return S_OK;
}
- FIXME("stub!\n");
- return E_FAIL;
+ hr = find_prop(This, pszName, &header);
+ if(hr == S_OK)
+ {
+ PropVariantCopy(pValue, &header->value);
+ }
+
+ return hr;
}
static HRESULT WINAPI MimeBody_SetProp(
@@ -626,8 +655,61 @@
DWORD dwFlags,
LPCPROPVARIANT pValue)
{
- FIXME("stub\n");
- return E_NOTIMPL;
+ MimeBody *This = impl_from_IMimeBody(iface);
+ header_t *header;
+ HRESULT hr;
+
+ TRACE("(%p)->(%s, 0x%x, %p)\n", This, debugstr_a(pszName), dwFlags,
pValue);
+
+ if(!pszName || !pValue)
+ return E_INVALIDARG;
+
+ hr = find_prop(This, pszName, &header);
+ if(hr != S_OK)
+ {
+ property_list_entry_t *prop_entry;
+ const property_t *prop = NULL;
+
+ LIST_FOR_EACH_ENTRY(prop_entry, &This->new_props, property_list_entry_t,
entry)
+ {
+ if(!lstrcmpiA(pszName, prop_entry->prop.name))
+ {
+ TRACE("Found match with already added new property id %d\n",
prop_entry->prop.id);
+ prop = &prop_entry->prop;
+ break;
+ }
+ }
+
+ header = HeapAlloc(GetProcessHeap(), 0, sizeof(*header));
+ if(!header)
+ return E_OUTOFMEMORY;
+
+ if(!prop)
+ {
+ prop_entry = HeapAlloc(GetProcessHeap(), 0, sizeof(*prop_entry));
+ if(!prop_entry)
+ {
+ HeapFree(GetProcessHeap(), 0, header);
+ return E_OUTOFMEMORY;
+ }
+ prop_entry->prop.name = strdupA(pszName);
+ prop_entry->prop.id = This->next_prop_id++;
+ prop_entry->prop.flags = 0;
+ prop_entry->prop.default_vt = pValue->vt;
+ list_add_tail(&This->new_props, &prop_entry->entry);
+ prop = &prop_entry->prop;
+ TRACE("Allocating new prop id %d\n", prop_entry->prop.id);
+ }
+
+ header->prop = prop;
+ PropVariantInit(&header->value);
+ list_init(&header->params);
+ list_add_tail(&This->headers, &header->entry);
+ }
+
+ PropVariantCopy(&header->value, pValue);
+
+ return S_OK;
}
static HRESULT WINAPI MimeBody_AppendProp(
@@ -636,7 +718,8 @@
DWORD dwFlags,
LPPROPVARIANT pValue)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s, 0x%x, %p) stub\n", This, debugstr_a(pszName), dwFlags,
pValue);
return E_NOTIMPL;
}
@@ -644,7 +727,8 @@
IMimeBody* iface,
LPCSTR pszName)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s) stub\n", This, debugstr_a(pszName));
return E_NOTIMPL;
}
@@ -654,7 +738,8 @@
LPCSTR* prgszName,
IMimePropertySet* pPropertySet)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %p, %p) stub\n", This, cNames, prgszName,
pPropertySet);
return E_NOTIMPL;
}
@@ -664,7 +749,8 @@
LPCSTR* prgszName,
IMimePropertySet* pPropertySet)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %p, %p) stub\n", This, cNames, prgszName,
pPropertySet);
return E_NOTIMPL;
}
@@ -673,7 +759,8 @@
ULONG cNames,
LPCSTR* prgszName)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %p) stub\n", This, cNames, prgszName);
return E_NOTIMPL;
}
@@ -684,7 +771,8 @@
boolean fSubString,
boolean fCaseSensitive)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s, %s, %d, %d) stub\n", This, debugstr_a(pszName),
debugstr_a(pszCriteria), fSubString, fCaseSensitive);
return E_NOTIMPL;
}
@@ -692,7 +780,8 @@
IMimeBody* iface,
LPHCHARSET phCharset)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, phCharset);
*phCharset = NULL;
return S_OK;
}
@@ -702,7 +791,8 @@
HCHARSET hCharset,
CSETAPPLYTYPE applytype)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p, %d) stub\n", This, hCharset, applytype);
return E_NOTIMPL;
}
@@ -763,14 +853,14 @@
{
const char *pri = This->content_pri_type;
if(!pri) pri = "text";
- if(strcasecmp(pri, pszPriType)) return S_FALSE;
+ if(lstrcmpiA(pri, pszPriType)) return S_FALSE;
}
if(pszSubType)
{
const char *sub = This->content_sub_type;
if(!sub) sub = "plain";
- if(strcasecmp(sub, pszSubType)) return S_FALSE;
+ if(lstrcmpiA(sub, pszSubType)) return S_FALSE;
}
return S_OK;
@@ -781,7 +871,8 @@
REFIID riid,
void** ppvObject)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s, %p) stub\n", This, debugstr_guid(riid), ppvObject);
return E_NOTIMPL;
}
@@ -789,7 +880,8 @@
IMimeBody* iface,
IMimePropertySet** ppPropertySet)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, ppPropertySet);
return E_NOTIMPL;
}
@@ -798,8 +890,9 @@
const TYPEDID oid,
LPCPROPVARIANT pValue)
{
+ MimeBody *This = impl_from_IMimeBody(iface);
HRESULT hr = E_NOTIMPL;
- TRACE("(%p)->(%08x, %p)\n", iface, oid, pValue);
+ TRACE("(%p)->(%08x, %p)\n", This, oid, pValue);
if(pValue->vt != TYPEDID_TYPE(oid))
{
@@ -813,6 +906,10 @@
FIXME("OID_SECURITY_HWND_OWNER (value %08x): ignoring\n",
pValue->u.ulVal);
hr = S_OK;
break;
+ case OID_TRANSMIT_BODY_ENCODING:
+ FIXME("OID_TRANSMIT_BODY_ENCODING (value %08x): ignoring\n",
pValue->u.ulVal);
+ hr = S_OK;
+ break;
default:
FIXME("Unhandled oid %08x\n", oid);
}
@@ -825,7 +922,8 @@
const TYPEDID oid,
LPPROPVARIANT pValue)
{
- FIXME("(%p)->(%08x, %p): stub\n", iface, oid, pValue);
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%08x, %p): stub\n", This, oid, pValue);
return E_NOTIMPL;
}
@@ -834,7 +932,8 @@
DWORD dwFlags,
IMimeEnumProperties** ppEnum)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(0x%x, %p) stub\n", This, dwFlags, ppEnum);
return E_NOTIMPL;
}
@@ -844,7 +943,7 @@
{
MimeBody *This = impl_from_IMimeBody(iface);
- TRACE("(%p)->(%d)\n", iface, bodytype);
+ TRACE("(%p)->(%d)\n", This, bodytype);
switch(bodytype)
{
case IBT_EMPTY:
@@ -859,7 +958,8 @@
IMimeBody* iface,
LPCSTR pszDisplay)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%s) stub\n", This, debugstr_a(pszDisplay));
return E_NOTIMPL;
}
@@ -867,7 +967,8 @@
IMimeBody* iface,
LPSTR* ppszDisplay)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, ppszDisplay);
return E_NOTIMPL;
}
@@ -913,7 +1014,8 @@
ENCODINGTYPE ietEncoding,
ULONG* pcbSize)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %p) stub\n", This, ietEncoding, pcbSize);
return E_NOTIMPL;
}
@@ -922,7 +1024,8 @@
ENCODINGTYPE ietEncoding,
IStream* pStream)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %p) stub\n", This, ietEncoding, pStream);
return E_NOTIMPL;
}
@@ -977,7 +1080,8 @@
static HRESULT WINAPI MimeBody_EmptyData(
IMimeBody* iface)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->() stub\n", This);
return E_NOTIMPL;
}
@@ -985,7 +1089,8 @@
IMimeBody* iface,
IMimeBody* pBody)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, pBody);
return E_NOTIMPL;
}
@@ -993,7 +1098,8 @@
IMimeBody* iface,
LPTRANSMITINFO pTransmitInfo)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%p) stub\n", This, pTransmitInfo);
return E_NOTIMPL;
}
@@ -1002,7 +1108,8 @@
ENCODINGTYPE ietEncoding,
LPCSTR pszFilePath)
{
- FIXME("stub\n");
+ MimeBody *This = impl_from_IMimeBody(iface);
+ FIXME("(%p)->(%d, %s) stub\n", This, ietEncoding,
debugstr_a(pszFilePath));
return E_NOTIMPL;
}
@@ -1643,7 +1750,7 @@
for(i = 0; i < count; i++)
{
- if(!strcasecmp(param_info[i].pszName, "boundary"))
+ if(!lstrcmpiA(param_info[i].pszName, "boundary"))
{
struct list offset_list;
offset_entry_t *cur, *cursor2;
@@ -1688,6 +1795,8 @@
return E_FAIL;
}
+ empty_body_list(&This->body_tree);
+
IStream_AddRef(pStm);
This->stream = pStm;
offsets.cbBoundaryStart = offsets.cbHeaderStart = 0;
@@ -2182,27 +2291,38 @@
const TYPEDID oid,
LPCPROPVARIANT pValue)
{
- HRESULT hr = E_NOTIMPL;
+ HRESULT hr = S_OK;
TRACE("(%p)->(%08x, %p)\n", iface, oid, pValue);
+ /* Message ID is checked before type.
+ * OID 0x4D -> 0x56 and 0x58 aren't defined but will filtered out later.
+ */
+ if(TYPEDID_ID(oid) < TYPEDID_ID(OID_ALLOW_8BIT_HEADER) || TYPEDID_ID(oid) >
TYPEDID_ID(OID_SECURITY_2KEY_CERT_BAG_64))
+ {
+ WARN("oid (%08x) out of range\n", oid);
+ return MIME_E_INVALID_OPTION_ID;
+ }
+
if(pValue->vt != TYPEDID_TYPE(oid))
{
WARN("Called with vartype %04x and oid %08x\n", pValue->vt, oid);
- return E_INVALIDARG;
+ return S_OK;
}
switch(oid)
{
case OID_HIDE_TNEF_ATTACHMENTS:
FIXME("OID_HIDE_TNEF_ATTACHMENTS (value %d): ignoring\n",
pValue->u.boolVal);
- hr = S_OK;
break;
case OID_SHOW_MACBINARY:
FIXME("OID_SHOW_MACBINARY (value %d): ignoring\n",
pValue->u.boolVal);
- hr = S_OK;
+ break;
+ case OID_SAVEBODY_KEEPBOUNDARY:
+ FIXME("OID_SAVEBODY_KEEPBOUNDARY (value %d): ignoring\n",
pValue->u.boolVal);
break;
default:
FIXME("Unhandled oid %08x\n", oid);
+ hr = MIME_E_INVALID_OPTION_ID;
}
return hr;
@@ -2526,6 +2646,8 @@
HRESULT MimeMessage_create(IUnknown *outer, void **obj)
{
MimeMessage *This;
+ MimeBody *mime_body;
+ body_t *root_body;
TRACE("(%p, %p)\n", outer, obj);
@@ -2545,6 +2667,10 @@
This->stream = NULL;
list_init(&This->body_tree);
This->next_index = 1;
+
+ mime_body = mimebody_create();
+ root_body = new_body_entry(mime_body, This->next_index++, NULL);
+ list_add_head(&This->body_tree, &root_body->entry);
*obj = &This->IMimeMessage_iface;
return S_OK;
@@ -2976,3 +3102,127 @@
return MimeOleCreateVirtualStream((IStream **)obj);
}
+
+/* IMimePropertySchema Interface */
+static HRESULT WINAPI propschema_QueryInterface(IMimePropertySchema *iface, REFIID riid,
void **out)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), out);
+
+ *out = NULL;
+
+ if (IsEqualIID(riid, &IID_IUnknown) ||
+ IsEqualIID(riid, &IID_IMimePropertySchema))
+ {
+ *out = iface;
+ }
+ else
+ {
+ FIXME("no interface for %s\n", debugstr_guid(riid));
+ return E_NOINTERFACE;
+ }
+
+ IMimePropertySchema_AddRef(iface);
+ return S_OK;
+}
+
+static ULONG WINAPI propschema_AddRef(IMimePropertySchema *iface)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ LONG ref = InterlockedIncrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ return ref;
+}
+
+static ULONG WINAPI propschema_Release(IMimePropertySchema *iface)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ LONG ref = InterlockedDecrement(&This->ref);
+
+ TRACE("(%p) ref=%d\n", This, ref);
+
+ if (!ref)
+ {
+ HeapFree(GetProcessHeap(), 0, This);
+ }
+
+ return ref;
+}
+
+static HRESULT WINAPI propschema_RegisterProperty(IMimePropertySchema *iface, const char
*name, DWORD flags,
+ DWORD rownumber, VARTYPE vtdefault, DWORD *propid)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ FIXME("(%p)->(%s, %x, %d, %d, %p) stub\n", This, debugstr_a(name),
flags, rownumber, vtdefault, propid);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propschema_ModifyProperty(IMimePropertySchema *iface, const char
*name, DWORD flags,
+ DWORD rownumber, VARTYPE vtdefault)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ FIXME("(%p)->(%s, %x, %d, %d) stub\n", This, debugstr_a(name), flags,
rownumber, vtdefault);
+ return S_OK;
+}
+
+static HRESULT WINAPI propschema_GetPropertyId(IMimePropertySchema *iface, const char
*name, DWORD *propid)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ FIXME("(%p)->(%s, %p) stub\n", This, debugstr_a(name), propid);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propschema_GetPropertyName(IMimePropertySchema *iface, DWORD
propid, char **name)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ FIXME("(%p)->(%d, %p) stub\n", This, propid, name);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI propschema_RegisterAddressType(IMimePropertySchema *iface, const
char *name, DWORD *adrtype)
+{
+ propschema *This = impl_from_IMimePropertySchema(iface);
+ FIXME("(%p)->(%s, %p) stub\n", This, debugstr_a(name), adrtype);
+ return E_NOTIMPL;
+}
+
+static IMimePropertySchemaVtbl prop_schema_vtbl =
+{
+ propschema_QueryInterface,
+ propschema_AddRef,
+ propschema_Release,
+ propschema_RegisterProperty,
+ propschema_ModifyProperty,
+ propschema_GetPropertyId,
+ propschema_GetPropertyName,
+ propschema_RegisterAddressType
+};
+
+
+HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema **schema)
+{
+ propschema *This;
+
+ TRACE("(%p) stub\n", schema);
+
+ This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
+ if (!This)
+ return E_OUTOFMEMORY;
+
+ This->IMimePropertySchema_iface.lpVtbl = &prop_schema_vtbl;
+ This->ref = 1;
+
+ *schema = &This->IMimePropertySchema_iface;
+
+ return S_OK;
+}
+
+HRESULT WINAPI MimeGetAddressFormatW(REFIID riid, void *object, DWORD addr_type,
+ ADDRESSFORMAT addr_format, WCHAR **address)
+{
+ FIXME("(%s, %p, %d, %d, %p) stub\n", debugstr_guid(riid), object,
addr_type, addr_format, address);
+
+ return E_NOTIMPL;
+}
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sun Jun 5 19:23:27 2016
@@ -78,7 +78,7 @@
reactos/dll/win32/imaadp32.acm # Synced to WineStaging-1.9.11
reactos/dll/win32/imagehlp # Synced to WineStaging-1.9.4
reactos/dll/win32/imm32 # Synced to Wine-1.7.27
-reactos/dll/win32/inetcomm # Synced to WineStaging-1.9.4
+reactos/dll/win32/inetcomm # Synced to WineStaging-1.9.11
reactos/dll/win32/inetmib1 # Synced to WineStaging-1.9.4
reactos/dll/win32/initpki # Synced to WineStaging-1.9.4
reactos/dll/win32/inseng # Synced to WineStaging-1.9.4