You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
3.6 KiB
125 lines
3.6 KiB
#ifndef _VIEWSRC_
|
|
#define _VIEWSRC_
|
|
|
|
#include "richedit.h"
|
|
#include "richole.h"
|
|
|
|
interface IMimeMessage;
|
|
|
|
HRESULT ViewSource(HWND hwndParent, IMimeMessage *pMsg);
|
|
|
|
|
|
class CREMenu :
|
|
public IRichEditOleCallback
|
|
{
|
|
public:
|
|
CREMenu();
|
|
~CREMenu();
|
|
|
|
// *** IUnknown methods ***
|
|
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *);
|
|
ULONG STDMETHODCALLTYPE AddRef();
|
|
ULONG STDMETHODCALLTYPE Release();
|
|
|
|
// *** IRichEditOleCallback methods ***
|
|
HRESULT STDMETHODCALLTYPE GetNewStorage (LPSTORAGE FAR *);
|
|
HRESULT STDMETHODCALLTYPE GetInPlaceContext(LPOLEINPLACEFRAME FAR *,LPOLEINPLACEUIWINDOW FAR *,LPOLEINPLACEFRAMEINFO);
|
|
HRESULT STDMETHODCALLTYPE ShowContainerUI(BOOL);
|
|
HRESULT STDMETHODCALLTYPE QueryInsertObject(LPCLSID, LPSTORAGE,LONG);
|
|
HRESULT STDMETHODCALLTYPE DeleteObject(LPOLEOBJECT);
|
|
HRESULT STDMETHODCALLTYPE QueryAcceptData( LPDATAOBJECT,CLIPFORMAT FAR *, DWORD,BOOL, HGLOBAL);
|
|
HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL);
|
|
HRESULT STDMETHODCALLTYPE GetClipboardData(CHARRANGE FAR *, DWORD,LPDATAOBJECT FAR *);
|
|
HRESULT STDMETHODCALLTYPE GetDragDropEffect(BOOL, DWORD,LPDWORD);
|
|
HRESULT STDMETHODCALLTYPE GetContextMenu(WORD, LPOLEOBJECT,CHARRANGE FAR *,HMENU FAR *);
|
|
|
|
HRESULT Init(HWND hwndEdit, int idMenu);
|
|
|
|
private:
|
|
HWND m_hwndEdit;
|
|
ULONG m_cRef;
|
|
int m_idMenu;
|
|
};
|
|
|
|
|
|
class CMsgSource:
|
|
public IOleCommandTarget
|
|
{
|
|
public:
|
|
CMsgSource();
|
|
~CMsgSource();
|
|
|
|
// IUnknown
|
|
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, LPVOID FAR *);
|
|
virtual ULONG STDMETHODCALLTYPE AddRef();
|
|
virtual ULONG STDMETHODCALLTYPE Release();
|
|
|
|
// IOleCommandTarget
|
|
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *, ULONG, OLECMD prgCmds[], OLECMDTEXT *);
|
|
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *, DWORD, DWORD, VARIANTARG *, VARIANTARG *);
|
|
|
|
HRESULT Init(HWND hwndParent, int id, IOleCommandTarget *pCmdTargetParent);
|
|
HRESULT Show(BOOL fOn, BOOL fColor);
|
|
HRESULT OnWMCommand(HWND hwnd, int id, WORD wCmd);
|
|
HRESULT OnWMNotify(WPARAM wParam, NMHDR* pnmhdr, LRESULT *plRet);
|
|
|
|
HRESULT Load(IStream *pstm);
|
|
HRESULT Save(IStream **pstm);
|
|
HRESULT SetRect(RECT *prc);
|
|
HRESULT IsDirty();
|
|
HRESULT SetDirty(BOOL fDirty);
|
|
HRESULT OnTimer(WPARAM idTimer);
|
|
HRESULT TranslateAccelerator(LPMSG lpmsg);
|
|
HRESULT HasFocus();
|
|
HRESULT SetFocus();
|
|
|
|
private:
|
|
ULONG m_cRef;
|
|
HWND m_hwnd;
|
|
BOOL m_fColor,
|
|
m_fDisabled;
|
|
LPSTR m_pszLastText;
|
|
|
|
IOleCommandTarget *m_pCmdTargetParent;
|
|
|
|
void OnChange();
|
|
void HideSelection(BOOL fHide, BOOL fChangeStyle);
|
|
void GetSel(CHARRANGE *pcr);
|
|
void SetSel(int nStart, int nEnd);
|
|
void GetSelectionCharFormat(CHARFORMAT *pcf);
|
|
void SetSelectionCharFormat(CHARFORMAT *pcf);
|
|
HRESULT _GetText(LPSTR *ppsz);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class CViewSource
|
|
{
|
|
public:
|
|
|
|
CViewSource();
|
|
~CViewSource();
|
|
|
|
ULONG STDMETHODCALLTYPE AddRef();
|
|
ULONG STDMETHODCALLTYPE Release();
|
|
|
|
HRESULT Init(HWND hwndParent, IMimeMessage *pMsg);
|
|
HRESULT Show();
|
|
|
|
static INT_PTR CALLBACK _ExtDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
|
|
private:
|
|
HWND m_hwnd,
|
|
m_hwndEdit;
|
|
ULONG m_cRef;
|
|
IMimeMessage *m_pMsg;
|
|
|
|
HRESULT _BoldKids();
|
|
|
|
INT_PTR _DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
|
|
};
|
|
|
|
|
|
#endif //_VIEWSRC_
|