Document lmin and lmax lavcopts; mpeg vrc_buf_size values
[mplayer/greg.git] / loader / com.h
blobd9911317bc745942c347948124d6117958ff580c
1 #ifndef AVIFILE_COM_H
2 #define AVIFILE_COM_H
4 #include "config.h"
6 #ifdef HAVE_STDINT_H
7 #include <stdint.h>
8 #else
9 #include <inttypes.h>
10 #endif
12 /**
13 * Internal functions and structures for COM emulation code.
16 #if !defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
22 void* CoTaskMemAlloc(unsigned long cb);
23 void CoTaskMemFree(void* cb);
25 #ifndef GUID_TYPE
26 #define GUID_TYPE
27 typedef struct
29 uint32_t f1;
30 uint16_t f2;
31 uint16_t f3;
32 uint8_t f4[8];
33 } GUID;
34 #endif
36 extern const GUID IID_IUnknown;
37 extern const GUID IID_IClassFactory;
39 typedef long (*GETCLASSOBJECT) (GUID* clsid, const GUID* iid, void** ppv);
40 int RegisterComClass(const GUID* clsid, GETCLASSOBJECT gcs);
41 int UnregisterComClass(const GUID* clsid, GETCLASSOBJECT gcs);
43 #ifndef STDCALL
44 #define STDCALL __attribute__((__stdcall__))
45 #endif
47 struct IUnknown;
48 struct IClassFactory;
49 struct IUnknown_vt
51 long STDCALL (*QueryInterface)(struct IUnknown* _this, const GUID* iid, void** ppv);
52 long STDCALL (*AddRef)(struct IUnknown* _this) ;
53 long STDCALL (*Release)(struct IUnknown* _this) ;
54 } ;
56 typedef struct IUnknown
58 struct IUnknown_vt* vt;
59 } IUnknown;
61 struct IClassFactory_vt
63 long STDCALL (*QueryInterface)(struct IUnknown* _this, const GUID* iid, void** ppv);
64 long STDCALL (*AddRef)(struct IUnknown* _this) ;
65 long STDCALL (*Release)(struct IUnknown* _this) ;
66 long STDCALL (*CreateInstance)(struct IClassFactory* _this, struct IUnknown* pUnkOuter, const GUID* riid, void** ppvObject);
69 struct IClassFactory
71 struct IClassFactory_vt* vt;
74 long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
75 long dwClsContext, const GUID* riid, void** ppv);
77 #ifdef __cplusplus
79 #endif /* __cplusplus */
81 #endif /* WIN32 */
83 #endif /* AVIFILE_COM_H */