Leaked source code of windows server 2003
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

#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_