1 /****************************************************************************
3 * $Id: rmaphook.h 7 2003-05-30 02:18:02Z gabest $
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
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 /****************************************************************************
38 * Interface implemented by the top level client to support selective
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
)
54 STDMETHOD(QueryInterface
) (THIS_
58 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
60 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
63 * IRMAPacketHook methods
66 /************************************************************************
68 * IRMAPacketHook::OnStart
70 * Called by the core to notify the start of this packet hook session
72 STDMETHOD(OnStart
) (THIS
) PURE
;
74 /************************************************************************
76 * IRMAPacketHook::OnEnd
78 * Called by the core to notify the end of this packet hook session
80 STDMETHOD(OnEnd
) (THIS
) PURE
;
82 /************************************************************************
84 * IRMAPacketHook::OnFileHeader
86 * Called by the core to send file header information
89 STDMETHOD(OnFileHeader
) (THIS_
90 IRMAValues
* pValues
) PURE
;
92 /************************************************************************
94 * IRMAPacketHook::OnStreamHeader
96 * Called by the core to send stream header information
99 STDMETHOD(OnStreamHeader
) (THIS_
100 IRMAValues
* pValues
) PURE
;
102 /************************************************************************
104 * IRMAPacketHook:OnPacket
106 * Called by the core to send packet information.
109 STDMETHOD(OnPacket
) (THIS_
110 IRMAPacket
* pPacket
) PURE
;
113 /****************************************************************************
117 * IRMAPacketHookManager
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);
131 #define INTERFACE IRMAPacketHookManager
133 DECLARE_INTERFACE_(IRMAPacketHookManager
, IUnknown
)
138 STDMETHOD(QueryInterface
) (THIS_
142 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
144 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
147 * IRMAPacketHookManager methods
150 /************************************************************************
152 * IRMAPacketHookManager::InitHook
154 * called by the top level client to pass the IRMAPacketHook object
156 STDMETHOD(InitHook
) (THIS_
157 IRMAPacketHook
* pPacketHook
) PURE
;
159 /************************************************************************
161 * IRMAPacketHookManager::CloseHook
163 * called by the top level client to close the hook connection
165 STDMETHOD(CloseHook
) (THIS
) PURE
;
167 /************************************************************************
169 * IRMAPacketHookManager::StartHook
171 * called by the top level client to start recording
173 STDMETHOD(StartHook
) (THIS
) PURE
;
175 /************************************************************************
177 * IRMAPacketHookManager::StopHook
179 * called by the top level client to stop recording
181 STDMETHOD(StopHook
) (THIS
) PURE
;
184 /****************************************************************************
188 * IRMAPacketHookHelper
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);
204 #define INTERFACE IRMAPacketHookHelper
206 DECLARE_INTERFACE_(IRMAPacketHookHelper
, IUnknown
)
211 STDMETHOD(QueryInterface
) (THIS_
215 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
217 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
220 * IRMAPacketHookHelper methods
223 /******************************************************************
225 * IRMAPacketHookHelper::StartHook
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 /******************************************************************
239 * IRMAPacketHookHelper::StopHook
242 * tell the renderer to stop sending the record packets
244 STDMETHOD(StopHook
) (THIS
) PURE
;
247 /****************************************************************************
251 * IRMAPacketHookHelperResponse
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);
265 #define INTERFACE IRMAPacketHookHelperResponse
267 DECLARE_INTERFACE_(IRMAPacketHookHelperResponse
, IUnknown
)
272 STDMETHOD(QueryInterface
) (THIS_
276 STDMETHOD_(ULONG
,AddRef
) (THIS
) PURE
;
278 STDMETHOD_(ULONG
,Release
) (THIS
) PURE
;
281 * IRMAPacketHookHelperResponse methods
284 /************************************************************************
286 * IRMAPacketHookHelperResponse::OnPacket
288 * called by the renderer to pass the packet for recording
290 STDMETHOD(OnPacket
) (THIS_
291 IRMAPacket
* pPacket
) PURE
;
293 /************************************************************************
295 * IRMAPacketHookManager::OnEndOfPackets
297 * called by the renderer to notify the end of this stream
299 STDMETHOD(OnEndOfPackets
) (THIS
) PURE
;
302 #endif /* _RMAPHOOK_H_ */