rmacmenu.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:6k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /****************************************************************************
  2.  * 
  3.  *  $Id: rmacmenu.h,v 1.1 2003/05/30 02:17:36 gabest Exp $
  4.  *  
  5.  *  Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
  6.  *
  7.  *  http://www.real.com/devzone
  8.  *
  9.  *  This program contains proprietary information of RealNetworks, Inc, 
  10.  *  and is licensed subject to restrictions on use and distribution.
  11.  *
  12.  *
  13.  *  RealMedia Architecture Context Menu Interfaces.
  14.  *
  15.  */
  16. #ifndef _RMACMENU_H_
  17. #define _RMACMENU_H_
  18. /*
  19.  * Forward declarations of some interfaces defined or used here-in.
  20.  */
  21. typedef _INTERFACE IRMAContextMenu     IRMAContextMenu;
  22. typedef _INTERFACE IRMAContextMenuResponse     IRMAContextMenuResponse;
  23. /****************************************************************************
  24.  * 
  25.  *  Interface:
  26.  *
  27.  * IRMAContextMenu
  28.  *
  29.  *  Purpose:
  30.  *
  31.  * Interface implemented by top level clients and provided to renderers.
  32.  * Allows the renderer to show a context menu and the top level client
  33.  * to add client specitic commands unknown to the renderer to that menu.
  34.  *
  35.  *  IID_IRMAContextMenu:
  36.  *
  37.  * {00001f00-0901-11d1-8B06-00A024406D59}
  38.  *
  39.  */
  40. DEFINE_GUID(IID_IRMAContextMenu, 0x00001f00, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  41. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  42. #undef  INTERFACE
  43. #define INTERFACE   IRMAContextMenu
  44. DECLARE_INTERFACE_(IRMAContextMenu, IUnknown)
  45. {
  46.     /*
  47.      * IUnknown methods
  48.      */
  49.     STDMETHOD(QueryInterface) (THIS_
  50. REFIID riid,
  51. void** ppvObj) PURE;
  52.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  53.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  54.     /*
  55.      * IRMAContextMenu methods
  56.      */
  57.     /************************************************************************
  58.      * Method:
  59.      *     IRMAContextMenu::InitContextMenu
  60.      * Purpose:
  61.      *     Initializes the context menu to a blank menu, and sets the name
  62.      *     of the "sub menu" for the renderer if appropriate. This will 
  63.      *     clear any previously added menu items and sub menus.
  64.      */
  65.     STDMETHOD(InitContextMenu) (THIS_
  66. const char* pMenuText
  67. ) PURE;
  68.     /************************************************************************
  69.      * Method:
  70.      *     IRMAContextMenu::AddMenuItem
  71.      * Purpose:
  72.      *     Returns information vital to the instantiation of rendering 
  73.      *     plugins.
  74.      */
  75.     STDMETHOD(AddMenuItem) (THIS_
  76. UINT16 commandID, 
  77. const char* pMenuItemText, 
  78. BOOL bChecked,
  79. BOOL bRadioOn, 
  80. BOOL bDisabled
  81. ) PURE;
  82.     /************************************************************************
  83.      * Method:
  84.      *     IRMAContextMenu::AddMenuItem
  85.      * Purpose:
  86.      *     Returns information vital to the instantiation of rendering 
  87.      *     plugins.
  88.      */
  89.     STDMETHOD(AddSeparator) (THIS) PURE;
  90.     /************************************************************************
  91.      * Method:
  92.      *     IRMAContextMenu::AddChildMenu
  93.      * Purpose:
  94.      *     Returns information vital to the instantiation of rendering 
  95.      *     plugins.
  96.      */
  97.     STDMETHOD(AddChildMenu) (THIS_
  98. const char* pMenuText
  99. ) PURE;
  100.     /************************************************************************
  101.      * Method:
  102.      *     IRMAContextMenu::EndChildMenu
  103.      * Purpose:
  104.      *     Returns information vital to the instantiation of rendering 
  105.      *     plugins.
  106.      */
  107.     STDMETHOD(EndChildMenu) (THIS) PURE;
  108.     /************************************************************************
  109.      * Method:
  110.      *     IRMAContextMenu::ChangeMenuItem
  111.      * Purpose:
  112.      *     Returns information vital to the instantiation of rendering 
  113.      *     plugins.
  114.      */
  115.     STDMETHOD(ChangeMenuItem) (THIS_
  116. UINT16 commandID, 
  117. const char* pMenuItemText, 
  118. BOOL bChecked,
  119. BOOL bRadioOn, 
  120. BOOL bDisabled
  121. ) PURE;
  122.     /************************************************************************
  123.      * Method:
  124.      *     IRMAContextMenu::ShowMenu
  125.      * Purpose:
  126.      *     Shows the setup context menu at the specified point.
  127.      */
  128.     STDMETHOD(ShowMenu) (THIS_
  129. IRMAContextMenuResponse* pResonse,
  130. PNxPoint ptPopup
  131. ) PURE;
  132. };
  133. /****************************************************************************
  134.  * 
  135.  *  Interface:
  136.  *
  137.  * IRMAContextMenuResponse
  138.  *
  139.  *  Purpose:
  140.  *
  141.  * Interface implemented by renderers that use the context menut.
  142.  * Is called to inform the renderer that a particular menu item was
  143.  * chosen.
  144.  *
  145.  *  IRMAContextMenuResponse:
  146.  *
  147.  * {00001f01-0901-11d1-8B06-00A024406D59}
  148.  *
  149.  */
  150. DEFINE_GUID(IID_IRMAContextMenuResponse, 0x00001f01, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 
  151. 0xa0, 0x24, 0x40, 0x6d, 0x59);
  152. #undef  INTERFACE
  153. #define INTERFACE   IRMAContextMenuResponse
  154. DECLARE_INTERFACE_(IRMAContextMenuResponse, IUnknown)
  155. {
  156.     /*
  157.      * IUnknown methods
  158.      */
  159.     STDMETHOD(QueryInterface) (THIS_
  160. REFIID riid,
  161. void** ppvObj) PURE;
  162.     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  163.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  164.     /*
  165.      * IRMAContextMenuResponse methods
  166.      */
  167.     /************************************************************************
  168.      * Method:
  169.      *     IRMAContextMenuResponse::OnCommand
  170.      * Purpose:
  171.      *     Called to inform the renderer that a command was chosen from
  172.      *     the context menu.
  173.      */
  174.     STDMETHOD(OnCommand) (THIS_
  175. UINT16 commandID
  176. ) PURE;
  177.     /************************************************************************
  178.      * Method:
  179.      *     IRMAContextMenuResponse::OnCanceled
  180.      * Purpose:
  181.      *     Called to inform the renderer that the context menu was closed
  182.      *     without a command being chosen from the renders set of commands.
  183.      */
  184.     STDMETHOD(OnCanceled) (THIS) PURE;
  185. };
  186. #endif /* _RMACMENU_H_ */