Compartilhar via


How to Implement IContextMenu and IObjectWithSite

Windows Mobile SupportedWindows Embedded CE Not Supported

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

How to Extend Shortcut Menus

Concepts

How to Implement IDataObject
How to Register a File System Shortcut Menu
Menu Overview

Other Resources

Developing Menu Components