Add pgs color type setting
[xy_vsfilter.git] / include / realmedia / rmaphook.h
blob99722db0148382a4022640eac382326c238996a9
1 /****************************************************************************
2 *
3 * $Id: rmaphook.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
10 * information of Progressive Networks, Inc, and is licensed
11 * subject to restrictions on use and distribution.
14 * RealMedia Architecture Selective Record interface
18 #ifndef _RMAPHOOK_H_
19 #define _RMAPHOOK_H_
22 * Forward declarations of some interfaces defined or used here-in.
24 typedef _INTERFACE IRMAPacket IRMAPacket;
25 typedef _INTERFACE IRMAPacketHook IRMAPacketHook;
26 typedef _INTERFACE IRMAPacketHookManager IRMAPacketHookManager;
27 typedef _INTERFACE IRMAPacketHookHelper IRMAPacketHookHelper;
28 typedef _INTERFACE IRMAPacketHookHelperResponse IRMAPacketHookHelperResponse;
30 /****************************************************************************
32 * Interface:
34 * IRMAPacketHook
36 * Purpose:
38 * Interface implemented by the top level client to support selective
39 * record
41 * IID_IRMAPacketHook:
43 * {00002000-0901-11d1-8B06-00A024406D59}
46 DEFINE_GUID(IID_IRMAPacketHook, 0x00002000, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
47 0xa0, 0x24, 0x40, 0x6d, 0x59);
49 DECLARE_INTERFACE_(IRMAPacketHook, IUnknown)
52 * IUnknown methods
54 STDMETHOD(QueryInterface) (THIS_
55 REFIID riid,
56 void** ppvObj) PURE;
58 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
60 STDMETHOD_(ULONG,Release) (THIS) PURE;
63 * IRMAPacketHook methods
66 /************************************************************************
67 * Method:
68 * IRMAPacketHook::OnStart
69 * Purpose:
70 * Called by the core to notify the start of this packet hook session
72 STDMETHOD(OnStart) (THIS) PURE;
74 /************************************************************************
75 * Method:
76 * IRMAPacketHook::OnEnd
77 * Purpose:
78 * Called by the core to notify the end of this packet hook session
80 STDMETHOD(OnEnd) (THIS) PURE;
82 /************************************************************************
83 * Method:
84 * IRMAPacketHook::OnFileHeader
85 * Purpose:
86 * Called by the core to send file header information
89 STDMETHOD(OnFileHeader) (THIS_
90 IRMAValues* pValues) PURE;
92 /************************************************************************
93 * Method:
94 * IRMAPacketHook::OnStreamHeader
95 * Purpose:
96 * Called by the core to send stream header information
99 STDMETHOD(OnStreamHeader) (THIS_
100 IRMAValues* pValues) PURE;
102 /************************************************************************
103 * Method:
104 * IRMAPacketHook:OnPacket
105 * Purpose:
106 * Called by the core to send packet information.
109 STDMETHOD(OnPacket) (THIS_
110 IRMAPacket* pPacket) PURE;
113 /****************************************************************************
115 * Interface:
117 * IRMAPacketHookManager
119 * Purpose:
121 * Interface to the selective record
123 * IID_IRMAPacketHookManager
125 * {00002001-0901-11d1-8B06-00A024406D59}
127 DEFINE_GUID(IID_IRMAPacketHookManager, 0x00002001, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
128 0xa0, 0x24, 0x40, 0x6d, 0x59);
130 #undef INTERFACE
131 #define INTERFACE IRMAPacketHookManager
133 DECLARE_INTERFACE_(IRMAPacketHookManager, IUnknown)
136 * IUnknown methods
138 STDMETHOD(QueryInterface) (THIS_
139 REFIID riid,
140 void** ppvObj) PURE;
142 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
144 STDMETHOD_(ULONG,Release) (THIS) PURE;
147 * IRMAPacketHookManager methods
150 /************************************************************************
151 * Method:
152 * IRMAPacketHookManager::InitHook
153 * Purpose:
154 * called by the top level client to pass the IRMAPacketHook object
156 STDMETHOD(InitHook) (THIS_
157 IRMAPacketHook* pPacketHook) PURE;
159 /************************************************************************
160 * Method:
161 * IRMAPacketHookManager::CloseHook
162 * Purpose:
163 * called by the top level client to close the hook connection
165 STDMETHOD(CloseHook) (THIS) PURE;
167 /************************************************************************
168 * Method:
169 * IRMAPacketHookManager::StartHook
170 * Purpose:
171 * called by the top level client to start recording
173 STDMETHOD(StartHook) (THIS) PURE;
175 /************************************************************************
176 * Method:
177 * IRMAPacketHookManager::StopHook
178 * Purpose:
179 * called by the top level client to stop recording
181 STDMETHOD(StopHook) (THIS) PURE;
184 /****************************************************************************
186 * Interface:
188 * IRMAPacketHookHelper
190 * Purpose:
192 * provide methods to prepare the packet for recording and send back the core
194 * IID_IRMAPacketHookHelper:
196 * {00002002-0901-11d1-8B06-00A024406D59}
200 DEFINE_GUID(IID_IRMAPacketHookHelper, 0x00002002, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
201 0xa0, 0x24, 0x40, 0x6d, 0x59);
203 #undef INTERFACE
204 #define INTERFACE IRMAPacketHookHelper
206 DECLARE_INTERFACE_(IRMAPacketHookHelper, IUnknown)
209 * IUnknown methods
211 STDMETHOD(QueryInterface) (THIS_
212 REFIID riid,
213 void** ppvObj) PURE;
215 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
217 STDMETHOD_(ULONG,Release) (THIS) PURE;
220 * IRMAPacketHookHelper methods
223 /******************************************************************
224 * Method:
225 * IRMAPacketHookHelper::StartHook
227 * Purpose:
228 * tell the renderer to start sending the record packets
231 STDMETHOD(StartHook) (THIS_
232 ULONG32 ulStreamNumber,
233 ULONG32 ulTimeOffset,
234 IRMAPacketHookHelperResponse* pPacketHookHelperResponse) PURE;
237 /******************************************************************
238 * Method:
239 * IRMAPacketHookHelper::StopHook
241 * Purpose:
242 * tell the renderer to stop sending the record packets
244 STDMETHOD(StopHook) (THIS) PURE;
247 /****************************************************************************
249 * Interface:
251 * IRMAPacketHookHelperResponse
253 * Purpose:
255 * Response interface to the IRMAPacketHookHelper at renderer
257 * IID_IRMAPacketHookHelperResponse
259 * {00002003-0901-11d1-8B06-00A024406D59}
261 DEFINE_GUID(IID_IRMAPacketHookHelperResponse, 0x00002003, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
262 0xa0, 0x24, 0x40, 0x6d, 0x59);
264 #undef INTERFACE
265 #define INTERFACE IRMAPacketHookHelperResponse
267 DECLARE_INTERFACE_(IRMAPacketHookHelperResponse, IUnknown)
270 * IUnknown methods
272 STDMETHOD(QueryInterface) (THIS_
273 REFIID riid,
274 void** ppvObj) PURE;
276 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
278 STDMETHOD_(ULONG,Release) (THIS) PURE;
281 * IRMAPacketHookHelperResponse methods
284 /************************************************************************
285 * Method:
286 * IRMAPacketHookHelperResponse::OnPacket
287 * Purpose:
288 * called by the renderer to pass the packet for recording
290 STDMETHOD(OnPacket) (THIS_
291 IRMAPacket* pPacket) PURE;
293 /************************************************************************
294 * Method:
295 * IRMAPacketHookManager::OnEndOfPackets
296 * Purpose:
297 * called by the renderer to notify the end of this stream
299 STDMETHOD(OnEndOfPackets) (THIS) PURE;
302 #endif /* _RMAPHOOK_H_ */