⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gwcommand.h

📁 PGP8.0源码 请认真阅读您的文件包然后写出其具体功能
💻 H
字号:
////////////////////////////////////////////////////////////////////////////////
//
//  File : GwCommand.h
//
//  Copyright (C) 2002 PGP Corporation
//
//  ABSTRACT
//		This object defines an instance of a command object
// 
//  Author: Satya S. Das
//
////////////////////////////////////////////////////////////////////////////////

const DWORD CUIO_IS_TOOLBAR_ITEM=		0x00000001;
const DWORD CUIO_IS_MENUBAR_ITEM=		0x00000002;
const DWORD CUIO_MAINWND_CONTEXT=		0x00000004;
const DWORD CUIO_DISCUSSION_CONTEXT=	0x00000008;
const DWORD CUIO_MAIL_CONTEXT   =		0x00000010;
const DWORD CUIO_NEWMAIL_CONTEXT=		0x00000020;
const DWORD CUIO_OLDMAIL_CONTEXT=		0x00000040;
const DWORD CUIO_ATTVIEW_CONTEXT=		0x00000080;
const DWORD CUIO_IS_AN_OPERATION=		0x00000100;
const DWORD CUIO_IS_AN_OPTION=			0x00000200;
const DWORD CUIO_PREPEND_MENU_SEPARATOR=0x00000400;

typedef struct _stSubClassInfo
{
	WNDPROC wpOrigProc;//the original window proc
	HWND	hWndOther; //other window handle(a related window)
	ULONG	ulWndItemsState;
	ULONG	ulFlags;
} SUBCLASSINFO, *LPSUBCLASSINFO;

#define WM_ENABLECOMMANDS				(WM_USER+100)
const DWORD ECO_UNSUPPORTED=			0x00000001;
const DWORD SCF_IGNOREENABLE=			0x00000001;

LRESULT CALLBACK SubClassedMsgBodyWndProc(HWND hWnd, UINT uiMessageId, 
			WPARAM wParam, LPARAM lParam);

LRESULT CALLBACK DecryptVerifyWndProc(HWND hWnd, UINT uiMessageId, 
			WPARAM wParam, LPARAM lParam);

LRESULT CALLBACK SubClassedToolBarWndProc(HWND hWnd, UINT uiMessageId, 
			WPARAM wParam, LPARAM lParam);

BOOL IsStdGwCmd(UINT uiTBarItemId);

class CGWCommand : public IGWCommand
{
public:
    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj);
    STDMETHOD_(ULONG,AddRef) ();
    STDMETHOD_(ULONG,Release) ();

    /* IGWCommand methods */
    STDMETHOD(get_BaseCmd)(THIS_ IDispatch * FAR* ppIDispBaseCmd);
    STDMETHOD(get_LongPrompt)(THIS_ BSTR FAR* pbstrLongPrompt);
    STDMETHOD(get_Parameters)(THIS_ IDispatch * FAR* ppIDispBaseCmd);
    STDMETHOD(get_PersistentID)(THIS_ BSTR FAR* pbstrPersistentID);
    STDMETHOD(get_ToolTip)(THIS_ BSTR FAR* pbstrToolTip);
    STDMETHOD(Execute)(THIS);
    STDMETHOD(Help)(THIS);
    STDMETHOD(Undo)(THIS);
    STDMETHOD(Validate)(THIS_ long FAR* plValidate);

	void Set_BaseCommand(IGWCommand *pigwBaseCmd);
	BOOL EnableCommands(HMENU hMenuBar, BOOL bEnable, DWORD dwFlags);
	BOOL GetPlainTxtMsgWnd(HWND& hPlainTxtMsgWnd);
	BOOL GetHtmlMsgWnd(HWND& hHtmlMsgWnd);

	CGWCommand(int nID, DWORD dwCmdUiInfo);
	~CGWCommand();
	BSTR m_bstrLongPrompt;
	BSTR m_bstrToolTip;

private:
	int	m_nID;
	ULONG m_cRef;
	DWORD m_dwCmdUiInfo;
	IUnknown *m_pIUnkDisp;
	IGWCommand *m_pigwBaseCmd;
	IDispatch *m_pIDispOfCmd;
	HWND m_hCtxtWindow;
	HWND m_hOverlappingWnd;
	STDMETHOD(SetTextOfReadOnlyMail)(THIS_ char *pszMailTextToWrite, 
				HWND &hOrigMsgTxtWnd, HWND &hHtmlTxtMsgWnd, 
				HWND &hOverlappingWnd, HWND &hTrackedMsgWnd);
	STDMETHOD(GetSelectedMessageId)(BSTR &bstrMessageId);
	STDMETHOD(LearnCommandContext)();
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -