Support unrar64.dll
[xy_vsfilter.git] / include / realmedia / rmasrc.h
blob27256af94c41b84591cafebaacbd0bd8579de6b7
1 /****************************************************************************
2 *
3 * $Id: rmasrc.h 7 2003-05-30 02:18:02Z gabest $
5 * Copyright (C) 1995-1999 RealNetworks, Inc. All rights reserved.
6 *
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 Packet Source Interfaces.
17 #ifndef _RMASRC_H_
18 #define _RMASRC_H_
21 * Forward declarations of some interfaces defined or used here-in.
23 typedef _INTERFACE IRMARawSourceObject IRMARawSourceObject;
24 typedef _INTERFACE IRMARawSinkObject IRMARawSinkObject;
25 typedef _INTERFACE IRMASourceFinderObject IRMASourceFinderObject;
26 typedef _INTERFACE IRMASourceFinderResponse IRMASourceFinderResponse;
27 typedef _INTERFACE IRMARequest IRMARequest;
29 /****************************************************************************
31 * Interface:
33 * IRMARawSourceObject
35 * Purpose:
37 * Object that serves packets to sinks
39 * IID_IRMARawSourceObject:
41 * {00001000-0901-11d1-8B06-00A024406D59}
44 DEFINE_GUID(IID_IRMARawSourceObject, 0x00001000, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
45 0xa0, 0x24, 0x40, 0x6d, 0x59);
47 #undef INTERFACE
48 #define INTERFACE IRMARawSourceObject
50 DECLARE_INTERFACE_(IRMARawSourceObject, 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 * IRMARawSourceObject methods
67 /************************************************************************
68 * Method:
69 * IRMARawSourceObject::Init
70 * Purpose:
71 * Initializes the connection between the source and the sink
73 STDMETHOD(Init) (THIS_
74 IUnknown* pUnknown) PURE;
76 STDMETHOD(Done) (THIS) PURE;
78 STDMETHOD(GetFileHeader) (THIS) PURE;
80 STDMETHOD(GetStreamHeader) (THIS_
81 UINT16 unStreamNumber) PURE;
83 STDMETHOD(StartPackets) (THIS_
84 UINT16 unStreamNumber) PURE;
86 STDMETHOD(StopPackets) (THIS_
87 UINT16 unStreamNumber) PURE;
90 /****************************************************************************
92 * Interface:
94 * IRMARawSinkObject
96 * Purpose:
98 * Object that receives raw packets from a source
100 * IID_IRMARawSinkObject:
102 * {00001001-0901-11d1-8B06-00A024406D59}
105 DEFINE_GUID(IID_IRMARawSinkObject, 0x00001001, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
106 0xa0, 0x24, 0x40, 0x6d, 0x59);
108 #undef INTERFACE
109 #define INTERFACE IRMARawSinkObject
111 DECLARE_INTERFACE_(IRMARawSinkObject, IUnknown)
114 * IUnknown methods
116 STDMETHOD(QueryInterface) (THIS_
117 REFIID riid,
118 void** ppvObj) PURE;
120 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
122 STDMETHOD_(ULONG,Release) (THIS) PURE;
125 * IRMARawSinkObject methods
128 /************************************************************************
129 * Method:
130 * IRMARawSinkObject::InitDone
131 * Purpose:
132 * Callback after source object has initialized the connection
134 STDMETHOD(InitDone) (THIS_
135 PN_RESULT status) PURE;
137 STDMETHOD(FileHeaderReady) (THIS_
138 PN_RESULT status,
139 IRMAValues* pHeader) PURE;
141 STDMETHOD(StreamHeaderReady) (THIS_
142 PN_RESULT status,
143 IRMAValues* pHeader) PURE;
145 STDMETHOD(PacketReady) (THIS_
146 PN_RESULT status,
147 IRMAPacket* pPacket) PURE;
149 STDMETHOD(StreamDone) (THIS_
150 UINT16 unStreamNumber) PURE;
154 /****************************************************************************
156 * Interface:
158 * IRMASourceFinderObject
160 * Purpose:
162 * Object that allows a sink to search for a raw packet source
164 * IID_IRMASourceFinderObject:
166 * {00001002-0901-11d1-8B06-00A024406D59}
169 DEFINE_GUID(IID_IRMASourceFinderObject, 0x00001002, 0x901, 0x11d1, 0x8b, 0x6, 0x0,
170 0xa0, 0x24, 0x40, 0x6d, 0x59);
172 #define CLSID_IRMASourceFinderObject IID_IRMASourceFinderObject
174 #undef INTERFACE
175 #define INTERFACE IRMASourceFinderObject
177 #define CLSID_IRMASourceFinderObject IID_IRMASourceFinderObject
179 DECLARE_INTERFACE_(IRMASourceFinderObject, IUnknown)
182 * IUnknown methods
184 STDMETHOD(QueryInterface) (THIS_
185 REFIID riid,
186 void** ppvObj) PURE;
188 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
190 STDMETHOD_(ULONG,Release) (THIS) PURE;
193 * IRMASourceFinderObject methods
196 STDMETHOD(Init) (THIS_
197 IUnknown* pUnknown) PURE;
199 STDMETHOD(Find) (THIS_
200 IRMARequest* pRequest) PURE;
202 STDMETHOD(Done) (THIS) PURE;
206 /****************************************************************************
208 * Interface:
210 * IRMASourceFinderResponse
212 * Purpose:
214 * Object that returns a raw packet source to a sink
216 * IID_IRMASourceFinderResponse:
218 * {00001003-0901-11d1-8B06-00A024406D59}
221 DEFINE_GUID(IID_IRMASourceFinderResponse, 0x00001003, 0x901, 0x11d1,
222 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
225 #undef INTERFACE
226 #define INTERFACE IRMASourceFinderResponse
228 DECLARE_INTERFACE_(IRMASourceFinderResponse, IUnknown)
231 * IUnknown methods
233 STDMETHOD(QueryInterface) (THIS_
234 REFIID riid,
235 void** ppvObj) PURE;
237 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
239 STDMETHOD_(ULONG,Release) (THIS) PURE;
242 * IRMASourceFinderResponse methods
245 STDMETHOD(InitDone) (THIS_
246 PN_RESULT status) PURE;
248 STDMETHOD(FindDone) (THIS_
249 PN_RESULT status,
250 IUnknown* pUnknown) PURE;
254 #endif /* _RMASRC_H_ */