inetcomm: Add a stub implementation of the IMimeMessage object returned from MimeOleCreateMessage.

oldstable
Rob Shearman 2007-11-02 11:53:26 +00:00 committed by Alexandre Julliard
parent 78c90082a5
commit 54ab69c4f5
2 changed files with 619 additions and 11 deletions

View File

@ -36,6 +36,624 @@
WINE_DEFAULT_DEBUG_CHANNEL(inetcomm);
typedef struct MimeMessage
{
const IMimeMessageVtbl *lpVtbl;
LONG refs;
} MimeMessage;
static HRESULT WINAPI MimeMessage_QueryInterface(IMimeMessage *iface, REFIID riid, void **ppv)
{
TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ppv);
if (IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid, &IID_IPersist) ||
IsEqualIID(riid, &IID_IPersistStreamInit) ||
IsEqualIID(riid, &IID_IMimeMessageTree) ||
IsEqualIID(riid, &IID_IMimeMessage))
{
*ppv = iface;
IUnknown_AddRef(iface);
return S_OK;
}
FIXME("no interface for %s\n", debugstr_guid(riid));
*ppv = NULL;
return E_NOINTERFACE;
}
static ULONG WINAPI MimeMessage_AddRef(IMimeMessage *iface)
{
MimeMessage *This = (MimeMessage *)iface;
TRACE("(%p)->()\n", iface);
return InterlockedIncrement(&This->refs);
}
static ULONG WINAPI MimeMessage_Release(IMimeMessage *iface)
{
MimeMessage *This = (MimeMessage *)iface;
ULONG refs;
TRACE("(%p)->()\n", iface);
refs = InterlockedDecrement(&This->refs);
if (!refs)
{
HeapFree(GetProcessHeap(), 0, This);
}
return refs;
}
/*** IPersist methods ***/
static HRESULT WINAPI MimeMessage_GetClassID(
IMimeMessage *iface,
CLSID *pClassID)
{
FIXME("(%p)->(%p)\n", iface, pClassID);
return E_NOTIMPL;
}
/*** IPersistStreamInit methods ***/
static HRESULT WINAPI MimeMessage_IsDirty(
IMimeMessage *iface)
{
FIXME("(%p)->()\n", iface);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_Load(
IMimeMessage *iface,
LPSTREAM pStm){
FIXME("(%p)->(%p)\n", iface, pStm);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_Save(
IMimeMessage *iface,
LPSTREAM pStm,
BOOL fClearDirty)
{
FIXME("(%p)->(%p, %s)\n", iface, pStm, fClearDirty ? "TRUE" : "FALSE");
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetSizeMax(
IMimeMessage *iface,
ULARGE_INTEGER *pcbSize)
{
FIXME("(%p)->(%p)\n", iface, pcbSize);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_InitNew(
IMimeMessage *iface)
{
FIXME("(%p)->()\n", iface);
return E_NOTIMPL;
}
/*** IMimeMessageTree methods ***/
static HRESULT WINAPI MimeMessage_GetMessageSource(
IMimeMessage *iface,
IStream **ppStream,
DWORD dwFlags)
{
FIXME("(%p)->(%p, 0x%x)\n", iface, ppStream, dwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetMessageSize(
IMimeMessage *iface,
ULONG *pcbSize,
DWORD dwFlags)
{
FIXME("(%p)->(%p, 0x%x)\n", iface, pcbSize, dwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_LoadOffsetTable(
IMimeMessage *iface,
IStream *pStream)
{
FIXME("(%p)->(%p)\n", iface, pStream);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SaveOffsetTable(
IMimeMessage *iface,
IStream *pStream,
DWORD dwFlags)
{
FIXME("(%p)->(%p, 0x%x)\n", iface, pStream, dwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetFlags(
IMimeMessage *iface,
DWORD *pdwFlags)
{
FIXME("(%p)->(%p)\n", iface, pdwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_Commit(
IMimeMessage *iface,
DWORD dwFlags)
{
FIXME("(%p)->(0x%x)\n", iface, dwFlags);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_HandsOffStorage(
IMimeMessage *iface)
{
FIXME("(%p)->()\n", iface);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_BindToObject(
IMimeMessage *iface,
const HBODY hBody,
REFIID riid,
void **ppvObject)
{
FIXME("(%p)->(%p, %s, %p)\n", iface, hBody, debugstr_guid(riid), ppvObject);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SaveBody(
IMimeMessage *iface,
HBODY hBody,
DWORD dwFlags,
IStream *pStream)
{
FIXME("(%p)->(%p, 0x%x, %p)\n", iface, hBody, dwFlags, pStream);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_InsertBody(
IMimeMessage *iface,
BODYLOCATION location,
HBODY hPivot,
LPHBODY phBody)
{
FIXME("(%p)->(%d, %p, %p)\n", iface, location, hPivot, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetBody(
IMimeMessage *iface,
BODYLOCATION location,
HBODY hPivot,
LPHBODY phBody)
{
FIXME("(%p)->(%d, %p, %p)\n", iface, location, hPivot, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_MoveBody(
IMimeMessage *iface,
HBODY hBody,
BODYLOCATION location)
{
FIXME("(%p)->(%d)\n", iface, location);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_CountBodies(
IMimeMessage *iface,
HBODY hParent,
boolean fRecurse,
ULONG *pcBodies)
{
FIXME("(%p)->(%p, %s, %p)\n", iface, hParent, fRecurse ? "TRUE" : "FALSE", pcBodies);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_FindFirst(
IMimeMessage *iface,
LPFINDBODY pFindBody,
LPHBODY phBody)
{
FIXME("(%p)->(%p, %p)\n", iface, pFindBody, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_FindNext(
IMimeMessage *iface,
LPFINDBODY pFindBody,
LPHBODY phBody)
{
FIXME("(%p)->(%p, %p)\n", iface, pFindBody, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_ResolveURL(
IMimeMessage *iface,
HBODY hRelated,
LPCSTR pszBase,
LPCSTR pszURL,
DWORD dwFlags,
LPHBODY phBody)
{
FIXME("(%p)->(%p, %s, %s, 0x%x, %p)\n", iface, hRelated, pszBase, pszURL, dwFlags, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_ToMultipart(
IMimeMessage *iface,
HBODY hBody,
LPCSTR pszSubType,
LPHBODY phMultipart)
{
FIXME("(%p)->(%p, %s, %p)\n", iface, hBody, pszSubType, phMultipart);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetBodyOffsets(
IMimeMessage *iface,
HBODY hBody,
LPBODYOFFSETS pOffsets)
{
FIXME("(%p)->(%p, %p)\n", iface, hBody, pOffsets);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetCharset(
IMimeMessage *iface,
LPHCHARSET phCharset)
{
FIXME("(%p)->(%p)\n", iface, phCharset);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SetCharset(
IMimeMessage *iface,
HCHARSET hCharset,
CSETAPPLYTYPE applytype)
{
FIXME("(%p)->(%p, %d)\n", iface, hCharset, applytype);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_IsBodyType(
IMimeMessage *iface,
HBODY hBody,
IMSGBODYTYPE bodytype)
{
FIXME("(%p)->(%p, %d)\n", iface, hBody, bodytype);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_IsContentType(
IMimeMessage *iface,
HBODY hBody,
LPCSTR pszPriType,
LPCSTR pszSubType)
{
FIXME("(%p)->(%p, %s, %s)\n", iface, hBody, pszPriType, pszSubType);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_QueryBodyProp(
IMimeMessage *iface,
HBODY hBody,
LPCSTR pszName,
LPCSTR pszCriteria,
boolean fSubString,
boolean fCaseSensitive)
{
FIXME("(%p)->(%p, %s, %s, %s, %s)\n", iface, hBody, pszName, pszCriteria, fSubString ? "TRUE" : "FALSE", fCaseSensitive ? "TRUE" : "FALSE");
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetBodyProp(
IMimeMessage *iface,
HBODY hBody,
LPCSTR pszName,
DWORD dwFlags,
LPPROPVARIANT pValue)
{
FIXME("(%p)->(%p, %s, 0x%x, %p)\n", iface, hBody, pszName, dwFlags, pValue);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_DeleteBodyProp(
IMimeMessage *iface,
HBODY hBody,
LPCSTR pszName)
{
FIXME("(%p)->(%p, %s)\n", iface, hBody, pszName);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SetOption(
IMimeMessage *iface,
const TYPEDID oid,
LPCPROPVARIANT pValue)
{
FIXME("(%p)->(%d, %p)\n", iface, oid, pValue);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetOption(
IMimeMessage *iface,
const TYPEDID oid,
LPPROPVARIANT pValue)
{
FIXME("(%p)->(%d, %p)\n", iface, oid, pValue);
return E_NOTIMPL;
}
/*** IMimeMessage methods ***/
static HRESULT WINAPI MimeMessage_CreateWebPage(
IMimeMessage *iface,
IStream *pRootStm,
LPWEBPAGEOPTIONS pOptions,
IMimeMessageCallback *pCallback,
IMoniker **ppMoniker)
{
FIXME("(%p)->(%p, %p, %p, %p)\n", iface, pRootStm, pOptions, pCallback, ppMoniker);
*ppMoniker = NULL;
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetProp(
IMimeMessage *iface,
LPCSTR pszName,
DWORD dwFlags,
LPPROPVARIANT pValue)
{
FIXME("(%p)->(%s, 0x%x, %p)\n", iface, pszName, dwFlags, pValue);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SetProp(
IMimeMessage *iface,
LPCSTR pszName,
DWORD dwFlags,
LPCPROPVARIANT pValue)
{
FIXME("(%p)->(%s, 0x%x, %p)\n", iface, pszName, dwFlags, pValue);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_DeleteProp(
IMimeMessage *iface,
LPCSTR pszName)
{
FIXME("(%p)->(%s)\n", iface, pszName);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_QueryProp(
IMimeMessage *iface,
LPCSTR pszName,
LPCSTR pszCriteria,
boolean fSubString,
boolean fCaseSensitive)
{
FIXME("(%p)->(%s, %s, %s, %s)\n", iface, pszName, pszCriteria, fSubString ? "TRUE" : "FALSE", fCaseSensitive ? "TRUE" : "FALSE");
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetTextBody(
IMimeMessage *iface,
DWORD dwTxtType,
ENCODINGTYPE ietEncoding,
IStream **pStream,
LPHBODY phBody)
{
FIXME("(%p)->(%d, %d, %p, %p)\n", iface, dwTxtType, ietEncoding, pStream, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SetTextBody(
IMimeMessage *iface,
DWORD dwTxtType,
ENCODINGTYPE ietEncoding,
HBODY hAlternative,
IStream *pStream,
LPHBODY phBody)
{
FIXME("(%p)->(%d, %d, %p, %p, %p)\n", iface, dwTxtType, ietEncoding, hAlternative, pStream, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_AttachObject(
IMimeMessage *iface,
REFIID riid,
void *pvObject,
LPHBODY phBody)
{
FIXME("(%p)->(%s, %p, %p)\n", iface, debugstr_guid(riid), pvObject, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_AttachFile(
IMimeMessage *iface,
LPCSTR pszFilePath,
IStream *pstmFile,
LPHBODY phBody)
{
FIXME("(%p)->(%s, %p, %p)\n", iface, pszFilePath, pstmFile, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_AttachURL(
IMimeMessage *iface,
LPCSTR pszBase,
LPCSTR pszURL,
DWORD dwFlags,
IStream *pstmURL,
LPSTR *ppszCIDURL,
LPHBODY phBody)
{
FIXME("(%p)->(%s, %s, 0x%x, %p, %p, %p)\n", iface, pszBase, pszURL, dwFlags, pstmURL, ppszCIDURL, phBody);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetAttachments(
IMimeMessage *iface,
ULONG *pcAttach,
LPHBODY *pprghAttach)
{
FIXME("(%p)->(%p, %p)\n", iface, pcAttach, pprghAttach);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetAddressTable(
IMimeMessage *iface,
IMimeAddressTable **ppTable)
{
FIXME("(%p)->(%p)\n", iface, ppTable);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetSender(
IMimeMessage *iface,
LPADDRESSPROPS pAddress)
{
FIXME("(%p)->(%p)\n", iface, pAddress);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetAddressTypes(
IMimeMessage *iface,
DWORD dwAdrTypes,
DWORD dwProps,
LPADDRESSLIST pList)
{
FIXME("(%p)->(%d, %d, %p)\n", iface, dwAdrTypes, dwProps, pList);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetAddressFormat(
IMimeMessage *iface,
DWORD dwAdrTypes,
ADDRESSFORMAT format,
LPSTR *ppszFormat)
{
FIXME("(%p)->(%d, %d, %p)\n", iface, dwAdrTypes, format, ppszFormat);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_EnumAddressTypes(
IMimeMessage *iface,
DWORD dwAdrTypes,
DWORD dwProps,
IMimeEnumAddressTypes **ppEnum)
{
FIXME("(%p)->(%d, %d, %p)\n", iface, dwAdrTypes, dwProps, ppEnum);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_SplitMessage(
IMimeMessage *iface,
ULONG cbMaxPart,
IMimeMessageParts **ppParts)
{
FIXME("(%p)->(%d, %p)\n", iface, cbMaxPart, ppParts);
return E_NOTIMPL;
}
static HRESULT WINAPI MimeMessage_GetRootMoniker(
IMimeMessage *iface,
IMoniker **ppMoniker)
{
FIXME("(%p)->(%p)\n", iface, ppMoniker);
return E_NOTIMPL;
}
static const IMimeMessageVtbl MimeMessageVtbl =
{
MimeMessage_QueryInterface,
MimeMessage_AddRef,
MimeMessage_Release,
MimeMessage_GetClassID,
MimeMessage_IsDirty,
MimeMessage_Load,
MimeMessage_Save,
MimeMessage_GetSizeMax,
MimeMessage_InitNew,
MimeMessage_GetMessageSource,
MimeMessage_GetMessageSize,
MimeMessage_LoadOffsetTable,
MimeMessage_SaveOffsetTable,
MimeMessage_GetFlags,
MimeMessage_Commit,
MimeMessage_HandsOffStorage,
MimeMessage_BindToObject,
MimeMessage_SaveBody,
MimeMessage_InsertBody,
MimeMessage_GetBody,
MimeMessage_MoveBody,
MimeMessage_CountBodies,
MimeMessage_FindFirst,
MimeMessage_FindNext,
MimeMessage_ResolveURL,
MimeMessage_ToMultipart,
MimeMessage_GetBodyOffsets,
MimeMessage_GetCharset,
MimeMessage_SetCharset,
MimeMessage_IsBodyType,
MimeMessage_IsContentType,
MimeMessage_QueryBodyProp,
MimeMessage_GetBodyProp,
MimeMessage_DeleteBodyProp,
MimeMessage_SetOption,
MimeMessage_GetOption,
MimeMessage_CreateWebPage,
MimeMessage_GetProp,
MimeMessage_SetProp,
MimeMessage_DeleteProp,
MimeMessage_QueryProp,
MimeMessage_GetTextBody,
MimeMessage_SetTextBody,
MimeMessage_AttachObject,
MimeMessage_AttachFile,
MimeMessage_AttachURL,
MimeMessage_GetAttachments,
MimeMessage_GetAddressTable,
MimeMessage_GetSender,
MimeMessage_GetAddressTypes,
MimeMessage_GetAddressFormat,
MimeMessage_EnumAddressTypes,
MimeMessage_SplitMessage,
MimeMessage_GetRootMoniker,
};
/***********************************************************************
* MimeOleCreateMessage (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessage)
{
MimeMessage *This;
TRACE("(%p, %p)\n", pUnkOuter, ppMessage);
if (pUnkOuter)
{
FIXME("outer unknown not supported yet\n");
return E_NOTIMPL;
}
*ppMessage = NULL;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
if (!This) return E_OUTOFMEMORY;
This->lpVtbl = &MimeMessageVtbl;
This->refs = 1;
*ppMessage = (IMimeMessage *)&This->lpVtbl;
return S_OK;
}
/***********************************************************************
* MimeOleSetCompatMode (INETCOMM.@)
*/
@ -45,17 +663,6 @@ HRESULT WINAPI MimeOleSetCompatMode(DWORD dwMode)
return S_OK;
}
/***********************************************************************
* MimeOleCreateMessage (INETCOMM.@)
*/
HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessage)
{
FIXME("(%p, %p)\n", pUnkOuter, ppMessage);
*ppMessage = NULL;
return E_NOTIMPL;
}
/***********************************************************************
* MimeOleCreateVirtualStream (INETCOMM.@)
*/

View File

@ -30,6 +30,7 @@
#include "winerror.h"
#include "inetcomm_private.h"
#include "mimeole.h"
#include "wine/debug.h"