Support unrar64.dll
[xy_vsfilter.git] / include / realmedia / rmaencod.h
blobf03c224c7667423962966813fbc352e1ba458910
1 /****************************************************************************
2 *
3 * $Id: rmaencod.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 Encoder Interfaces.
18 #ifndef _RMAENCOD_H_
19 #define _RMAENCOD_H_
21 typedef _INTERFACE IUnknown IUnknown;
22 typedef _INTERFACE IRMAValues IRMAValues;
23 typedef _INTERFACE IRMAPacket IRMAPacket;
24 typedef _INTERFACE IRMARequest IRMARequest;
25 typedef _INTERFACE IRMAEncoder IRMAEncoder;
26 typedef _INTERFACE IRMAEncoderResponse IRMAEncoderResponse;
27 typedef _INTERFACE IRMAEncoderCompletion IRMAEncoderCompletion;
28 typedef _INTERFACE IRMAEncoderResponseCompletion IRMAEncoderResponseCompletion;
29 typedef _INTERFACE IRMAConnectionlessControl IRMAConnectionlessControl;
30 typedef _INTERFACE IRMATransportControl IRMATransportControl;
32 #ifndef _MACINTOSH
33 STDAPI_(IUnknown*) CreateContext();
34 #else
35 #pragma export on
36 STDAPI_(IUnknown*) CreateContext();
37 #pragma export off
38 #endif
41 DEFINE_GUID(IID_IRMAEncoderResponse, 0x00001600, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
43 #undef INTERFACE
44 #define INTERFACE IRMAEncoderResponse
46 DECLARE_INTERFACE_(IRMAEncoderResponse, IUnknown)
49 * IUnknown methods
51 STDMETHOD(QueryInterface) (THIS_
52 REFIID riid,
53 void** ppvObj) PURE;
55 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
57 STDMETHOD_(ULONG,Release) (THIS) PURE;
60 * IRMAEncoderResponse methods
62 STDMETHOD(InitEncoderResponse) (THIS_
63 const char* pHost,
64 UINT16 unPort,
65 IRMARequest* pRequest,
66 const char* pUsername,
67 const char* pPassword,
68 IRMAEncoder* pEncoder) PURE;
70 STDMETHOD(FileHeaderReady) (THIS_
71 PN_RESULT result,
72 IRMAValues* pHeader) PURE;
74 STDMETHOD(StreamHeaderReady) (THIS_
75 PN_RESULT result,
76 IRMAValues* pHeader) PURE;
78 STDMETHOD(PacketReady) (THIS_
79 PN_RESULT result,
80 IRMAPacket* pPacket) PURE;
82 STDMETHOD(StreamDone) (THIS_
83 UINT16 unStream) PURE;
85 STDMETHOD(Process) (THIS) PURE;
87 STDMETHOD_(UINT32,GetTime) (THIS) PURE;
90 DEFINE_GUID(IID_IRMAEncoder, 0x00001601, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
92 #undef INTERFACE
93 #define INTERFACE IRMAEncoder
95 DECLARE_INTERFACE_(IRMAEncoder, IUnknown)
98 * IUnknown methods
100 STDMETHOD(QueryInterface) (THIS_
101 REFIID riid,
102 void** ppvObj) PURE;
104 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
106 STDMETHOD_(ULONG,Release) (THIS) PURE;
109 * IRMAEncoder methods
111 STDMETHOD(InitEncoderResponseDone) (THIS_
112 PN_RESULT result) PURE;
114 STDMETHOD(GetFileHeader) (THIS) PURE;
116 STDMETHOD(GetStreamHeader) (THIS_
117 UINT16 unStream) PURE;
119 STDMETHOD(StartPackets) (THIS_
120 UINT16 unStream) PURE;
122 STDMETHOD(StopPackets) (THIS_
123 UINT16 unStream) PURE;
126 DEFINE_GUID(IID_IRMAEncoderCompletion, 0x00001602, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
128 #undef INTERFACE
129 #define INTERFACE IRMAEncoderCompletion
131 DECLARE_INTERFACE_(IRMAEncoderCompletion, IUnknown)
134 * IUnknown methods
136 STDMETHOD(QueryInterface) (THIS_
137 REFIID riid,
138 void** ppvObj) PURE;
140 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
142 STDMETHOD_(ULONG,Release) (THIS) PURE;
145 * IRMAEncoderCompletion methods
148 STDMETHOD(EncoderDone) (THIS_
149 PN_RESULT result) PURE;
152 DEFINE_GUID(IID_IRMAConnectionlessControl, 0x00001603, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
154 #undef INTERFACE
155 #define INTERFACE IRMAConnectionlessControl
157 DECLARE_INTERFACE_(IRMAConnectionlessControl, IUnknown)
160 * IUnknown methods
162 STDMETHOD(QueryInterface) (THIS_
163 REFIID riid,
164 void** ppvObj) PURE;
166 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
168 STDMETHOD_(ULONG,Release) (THIS) PURE;
171 * IRMAConnectionlessControl methods
174 STDMETHOD(EnableConnectionlessControl)
175 (THIS) PURE;
177 STDMETHOD(ConnectionCheckFailed) (THIS_
178 PN_RESULT status) PURE;
180 STDMETHOD(SetConnectionTimeout) (THIS_
181 UINT32 uSeconds) PURE;
184 DEFINE_GUID(IID_IRMAEncoderResponseCompletion, 0x00001604, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
186 #undef INTERFACE
187 #define INTERFACE IRMAEncoderResponseCompletion
189 DECLARE_INTERFACE_(IRMAEncoderResponseCompletion, IUnknown)
192 * IUnknown methods
194 STDMETHOD(QueryInterface) (THIS_
195 REFIID riid,
196 void** ppvObj) PURE;
198 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
200 STDMETHOD_(ULONG,Release) (THIS) PURE;
203 * IRMAEncoderResponseCompletion methods
206 STDMETHOD(EncoderResponseDone) (THIS) PURE;
210 * The only 2 encoder transport types supported are:
211 * "x-pn-tng/udp"
212 * "x-pn-tng/tcp"
215 DEFINE_GUID(IID_IRMATransportControl, 0x00001605, 0x901, 0x11d1, 0x8b, 0x6, 0x0, 0xa0, 0x24, 0x40, 0x6d, 0x59);
217 #undef INTERFACE
218 #define INTERFACE IRMATransportControl
220 DECLARE_INTERFACE_(IRMATransportControl, IUnknown)
223 * IUnknown methods
225 STDMETHOD(QueryInterface) (THIS_
226 REFIID riid,
227 void** ppvObj) PURE;
229 STDMETHOD_(ULONG,AddRef) (THIS) PURE;
231 STDMETHOD_(ULONG,Release) (THIS) PURE;
234 * IRMATransportControl methods
237 STDMETHOD(SetTransportType) (const char* pTransportType) PURE;
240 #endif /* _RMAENCOD_H_ */