Support unrar64.dll
[xy_vsfilter.git] / include / realmedia / rmacmenu.h
blob4491282cd61083bd33402d4b05c29c5b5f10bc7d
1 /****************************************************************************
2 *
3 * $Id: rmacmenu.h 7 2003-05-30 02:18:02Z gabest $
4 *
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
7 * http://www.real.com/devzone
9 * This program contains proprietary information of RealNetworks, Inc,
10 * and is licensed subject to restrictions on use and distribution.
13 * RealMedia Architecture Context Menu Interfaces.
17 #ifndef _RMACMENU_H_
18 #define _RMACMENU_H_
21 * Forward declarations of some interfaces defined or used here-in.
23 typedef _INTERFACE IRMAContextMenu IRMAContextMenu;
24 typedef _INTERFACE IRMAContextMenuResponse IRMAContextMenuResponse;
27 /****************************************************************************
29 * Interface:
31 * IRMAContextMenu
33 * Purpose:
35 * Interface implemented by top level clients and provided to renderers.
36 * Allows the renderer to show a context menu and the top level client
37 * to add client specitic commands unknown to the renderer to that menu.
39 * IID_IRMAContextMenu:
41 * {00001f00-0901-11d1-8B06-00A024406D59}
44 DEFINE_GUID(IID_IRMAContextMenu, 0x00001f00, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
45 0xa0, 0x24, 0x40, 0x6d, 0x59);
47 #undef INTERFACE
48 #define INTERFACE IRMAContextMenu
50 DECLARE_INTERFACE_(IRMAContextMenu, IUnknown)
53 * IUnknown methods
55 STDMETHOD(QueryInterface) (THIS_
56 REFIID riid,
57 void** ppvObj) PURE;
59 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
61 STDMETHOD_(ULONG,Release) (THIS) PURE;
64 * IRMAContextMenu methods
67 /************************************************************************
68 * Method:
69 * IRMAContextMenu::InitContextMenu
70 * Purpose:
71 * Initializes the context menu to a blank menu, and sets the name
72 * of the "sub menu" for the renderer if appropriate. This will
73 * clear any previously added menu items and sub menus.
75 STDMETHOD(InitContextMenu) (THIS_
76 const char* pMenuText
77 ) PURE;
79 /************************************************************************
80 * Method:
81 * IRMAContextMenu::AddMenuItem
82 * Purpose:
83 * Returns information vital to the instantiation of rendering
84 * plugins.
86 STDMETHOD(AddMenuItem) (THIS_
87 UINT16 commandID,
88 const char* pMenuItemText,
89 BOOL bChecked,
90 BOOL bRadioOn,
91 BOOL bDisabled
92 ) PURE;
94 /************************************************************************
95 * Method:
96 * IRMAContextMenu::AddMenuItem
97 * Purpose:
98 * Returns information vital to the instantiation of rendering
99 * plugins.
101 STDMETHOD(AddSeparator) (THIS) PURE;
103 /************************************************************************
104 * Method:
105 * IRMAContextMenu::AddChildMenu
106 * Purpose:
107 * Returns information vital to the instantiation of rendering
108 * plugins.
110 STDMETHOD(AddChildMenu) (THIS_
111 const char* pMenuText
112 ) PURE;
114 /************************************************************************
115 * Method:
116 * IRMAContextMenu::EndChildMenu
117 * Purpose:
118 * Returns information vital to the instantiation of rendering
119 * plugins.
121 STDMETHOD(EndChildMenu) (THIS) PURE;
123 /************************************************************************
124 * Method:
125 * IRMAContextMenu::ChangeMenuItem
126 * Purpose:
127 * Returns information vital to the instantiation of rendering
128 * plugins.
130 STDMETHOD(ChangeMenuItem) (THIS_
131 UINT16 commandID,
132 const char* pMenuItemText,
133 BOOL bChecked,
134 BOOL bRadioOn,
135 BOOL bDisabled
136 ) PURE;
138 /************************************************************************
139 * Method:
140 * IRMAContextMenu::ShowMenu
141 * Purpose:
142 * Shows the setup context menu at the specified point.
144 STDMETHOD(ShowMenu) (THIS_
145 IRMAContextMenuResponse* pResonse,
146 PNxPoint ptPopup
147 ) PURE;
151 /****************************************************************************
153 * Interface:
155 * IRMAContextMenuResponse
157 * Purpose:
159 * Interface implemented by renderers that use the context menut.
160 * Is called to inform the renderer that a particular menu item was
161 * chosen.
163 * IRMAContextMenuResponse:
165 * {00001f01-0901-11d1-8B06-00A024406D59}
168 DEFINE_GUID(IID_IRMAContextMenuResponse, 0x00001f01, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
169 0xa0, 0x24, 0x40, 0x6d, 0x59);
172 #undef INTERFACE
173 #define INTERFACE IRMAContextMenuResponse
175 DECLARE_INTERFACE_(IRMAContextMenuResponse, IUnknown)
178 * IUnknown methods
180 STDMETHOD(QueryInterface) (THIS_
181 REFIID riid,
182 void** ppvObj) PURE;
184 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
186 STDMETHOD_(ULONG,Release) (THIS) PURE;
189 * IRMAContextMenuResponse methods
192 /************************************************************************
193 * Method:
194 * IRMAContextMenuResponse::OnCommand
195 * Purpose:
196 * Called to inform the renderer that a command was chosen from
197 * the context menu.
199 STDMETHOD(OnCommand) (THIS_
200 UINT16 commandID
201 ) PURE;
204 /************************************************************************
205 * Method:
206 * IRMAContextMenuResponse::OnCanceled
207 * Purpose:
208 * Called to inform the renderer that the context menu was closed
209 * without a command being chosen from the renders set of commands.
211 STDMETHOD(OnCanceled) (THIS) PURE;
215 #endif /* _RMACMENU_H_ */