[INETCOMM] Sync with Wine Staging 1.9.11. CORE-11368

svn path=/trunk/; revision=71555
This commit is contained in:
Amine Khaldi 2016-06-05 19:23:27 +00:00
parent 253dbd04f8
commit ab5f18229a
3 changed files with 299 additions and 49 deletions

View file

@ -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

View file

@ -97,6 +97,17 @@ static inline MimeBody *impl_from_IMimeBody(IMimeBody *iface)
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 @@ static header_t *read_prop(MimeBody *body, char **ptr)
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 @@ static header_t *read_prop(MimeBody *body, char **ptr)
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 @@ static HRESULT find_prop(MimeBody *body, const char *name, header_t **prop)
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 @@ static HRESULT WINAPI MimeBody_GetClassID(
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_GetClassID(
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 @@ static HRESULT WINAPI MimeBody_GetSizeMax(
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 @@ static HRESULT WINAPI MimeBody_GetPropInfo(
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 @@ static HRESULT WINAPI MimeBody_SetPropInfo(
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 @@ static HRESULT WINAPI MimeBody_GetProp(
LPPROPVARIANT pValue)
{
MimeBody *This = impl_from_IMimeBody(iface);
TRACE("(%p)->(%s, %d, %p)\n", This, pszName, dwFlags, pValue);
header_t *header;
HRESULT hr;
if(!strcasecmp(pszName, "att:pri-content-type"))
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 @@ static HRESULT WINAPI MimeBody_GetProp(
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 @@ static HRESULT WINAPI MimeBody_SetProp(
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 @@ static HRESULT WINAPI MimeBody_AppendProp(
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 @@ static HRESULT WINAPI MimeBody_DeleteProp(
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 @@ static HRESULT WINAPI MimeBody_CopyProps(
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 @@ static HRESULT WINAPI MimeBody_MoveProps(
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 @@ static HRESULT WINAPI MimeBody_DeleteExcept(
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 @@ static HRESULT WINAPI MimeBody_QueryProp(
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 @@ static HRESULT WINAPI MimeBody_GetCharset(
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 @@ static HRESULT WINAPI MimeBody_SetCharset(
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 @@ static HRESULT WINAPI MimeBody_IsContentType(
{
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 @@ static HRESULT WINAPI MimeBody_BindToObject(
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 @@ static HRESULT WINAPI MimeBody_Clone(
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 @@ static HRESULT WINAPI MimeBody_SetOption(
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 @@ static HRESULT WINAPI MimeBody_SetOption(
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 @@ static HRESULT WINAPI MimeBody_GetOption(
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 @@ static HRESULT WINAPI MimeBody_EnumProps(
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 @@ static HRESULT WINAPI MimeBody_IsType(
{
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 @@ static HRESULT WINAPI MimeBody_SetDisplayName(
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 @@ static HRESULT WINAPI MimeBody_GetDisplayName(
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 @@ static HRESULT WINAPI MimeBody_GetEstimatedSize(
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 @@ static HRESULT WINAPI MimeBody_GetDataHere(
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_SetData(
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 @@ static HRESULT WINAPI MimeBody_CopyTo(
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 @@ static HRESULT WINAPI MimeBody_GetTransmitInfo(
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 @@ static HRESULT WINAPI MimeBody_SaveToFile(
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 @@ static body_t *create_sub_body(MimeMessage *msg, IStream *pStm, BODYOFFSETS *off
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 @@ static HRESULT WINAPI MimeMessage_Load(IMimeMessage *iface, IStream *pStm)
return E_FAIL;
}
empty_body_list(&This->body_tree);
IStream_AddRef(pStm);
This->stream = pStm;
offsets.cbBoundaryStart = offsets.cbHeaderStart = 0;
@ -2182,27 +2291,38 @@ static HRESULT WINAPI MimeMessage_SetOption(
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 @@ static const IMimeMessageVtbl MimeMessageVtbl =
HRESULT MimeMessage_create(IUnknown *outer, void **obj)
{
MimeMessage *This;
MimeBody *mime_body;
body_t *root_body;
TRACE("(%p, %p)\n", outer, obj);
@ -2546,6 +2668,10 @@ HRESULT MimeMessage_create(IUnknown *outer, void **obj)
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 @@ HRESULT VirtualStream_create(IUnknown *outer, void **obj)
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;
}

View file

@ -78,7 +78,7 @@ reactos/dll/win32/ieframe # Synced to WineStaging-1.9.11
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