How to Implement IContextMenu and IObjectWithSite
9/8/2008
O seguinte trecho de código C++ demonstra a estrutura do definição de classe componente extensão menu de atalho.
Exemplo de código
O seguinte exemplo de código demonstra como para implementar IContextMenu e IObjectWithSite.
Observação
Para fazer o seguinte exemplo de código mais fácil de ler, verificação de segurança e manipulação de erro não estão incluídos.Esta exemplo de código não deve ser usado em uma configuração versão a menos que ele foi modificado para incluí-las.
class CMyComp : public IContextMenu, IObjectWithSite
{
public:
CMyComp(); // Constructor.
~CMyComp(); // Destructor.
// IUnknown methods.
STDMETHOD (QueryInterface) (REFIID riid, LPVOID *ppv);
STDMETHOD_(ULONG, AddRef) (void);
STDMETHOD_(ULONG Release) (void);
// IContextMenu methods.
STDMETHOD (GetCommandString) (UINT idCmd, UINT uFlags,
UINT *pwReserved,LPSTR pszName, UINT cchMx);
STDMETHOD (InvokeCommand) (LPCMINVOKECOMMANDINFO pici);
STDMETHOD (QueryContextMenu) (hmenu, UINT indexMenu,
UINT idCmdFirs, UINT idCmdLast, UINT uFlags);
// IObjectWithSite methods.
STDMETHOD (GetSite) (REFIID riid, void **ppvSite);
STDMETHOD (SetSite) (IUnknown *pUnkSite);
// CMyComp methods.
// None.
protected:
ULONG m_cRef; // Reference count.
IUnknown m_punkSite; // Site (owner) pointer.
};
See Also
Tasks
Concepts
How to Implement IDataObject
How to Register a File System Shortcut Menu
Menu Overview