annotate loader/com.h @ 29130:33956c5f5005

Reemit the ID_AID_x_LANG for the track. This allows the identification of the audio track by language code (en or es) rather than by ID (128 or 129). patch by Kevin DeKorte, kdekorte gmail com
author diego
date Sat, 11 Apr 2009 13:51:02 +0000
parents 5e3c7164f943
children 0f1b5b68af32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15166
f5537cc95b02 Mark modified imported files as such to comply with GPL ¡ø2a.
diego
parents: 9978
diff changeset
1 /*
18783
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 15166
diff changeset
2 * Modified for use with MPlayer, detailed changelog at
0783dd397f74 CVS --> Subversion in copyright notices
diego
parents: 15166
diff changeset
3 * http://svn.mplayerhq.hu/mplayer/trunk/
15166
f5537cc95b02 Mark modified imported files as such to comply with GPL ¡ø2a.
diego
parents: 9978
diff changeset
4 */
f5537cc95b02 Mark modified imported files as such to comply with GPL ¡ø2a.
diego
parents: 9978
diff changeset
5
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25849
diff changeset
6 #ifndef MPLAYER_COM_H
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25849
diff changeset
7 #define MPLAYER_COM_H
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
8
9967
b0d1b415320c cygwin support patch by Sascha Sommer and some fixes by me
alex
parents: 7386
diff changeset
9 #include "config.h"
b0d1b415320c cygwin support patch by Sascha Sommer and some fixes by me
alex
parents: 7386
diff changeset
10
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
11 #ifdef HAVE_STDINT_H
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
12 #include <stdint.h>
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
13 #else
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
14 #include <inttypes.h>
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
15 #endif
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
16
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 /**
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 * Internal functions and structures for COM emulation code.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 #ifdef __cplusplus
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 extern "C" {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
25 #ifndef GUID_TYPE
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
26 #define GUID_TYPE
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 typedef struct
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 {
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
29 uint32_t f1;
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
30 uint16_t f2;
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
31 uint16_t f3;
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
32 uint8_t f4[8];
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 } GUID;
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
34 #endif
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
36 extern const GUID IID_IUnknown;
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
37 extern const GUID IID_IClassFactory;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
39 typedef long (*GETCLASSOBJECT) (GUID* clsid, const GUID* iid, void** ppv);
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
40 int RegisterComClass(const GUID* clsid, GETCLASSOBJECT gcs);
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
41 int UnregisterComClass(const GUID* clsid, GETCLASSOBJECT gcs);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43 #ifndef STDCALL
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
44 #define STDCALL __attribute__((__stdcall__))
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 struct IUnknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48 struct IClassFactory;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 struct IUnknown_vt
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 {
25794
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
51 long STDCALL (*QueryInterface)(struct IUnknown* this, const GUID* iid, void** ppv);
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
52 long STDCALL (*AddRef)(struct IUnknown* this) ;
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
53 long STDCALL (*Release)(struct IUnknown* this) ;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 } ;
3128
392316004607 avifile sync... maybe broken, tell me if so.
arpi
parents: 1544
diff changeset
55
392316004607 avifile sync... maybe broken, tell me if so.
arpi
parents: 1544
diff changeset
56 typedef struct IUnknown
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 struct IUnknown_vt* vt;
3128
392316004607 avifile sync... maybe broken, tell me if so.
arpi
parents: 1544
diff changeset
59 } IUnknown;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 struct IClassFactory_vt
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62 {
25794
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
63 long STDCALL (*QueryInterface)(struct IUnknown* this, const GUID* iid, void** ppv);
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
64 long STDCALL (*AddRef)(struct IUnknown* this) ;
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
65 long STDCALL (*Release)(struct IUnknown* this) ;
2c8cdb9123b8 Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents: 22325
diff changeset
66 long STDCALL (*CreateInstance)(struct IClassFactory* this, struct IUnknown* pUnkOuter, const GUID* riid, void** ppvObject);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 struct IClassFactory
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 struct IClassFactory_vt* vt;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73
22325
12afc06c044e Replace __MINGW32__ by more consistent WIN32_LOADER. This should fix compilation under
voroshil
parents: 22305
diff changeset
74 #ifdef WIN32_LOADER
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75 long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
22305
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
76 long dwClsContext, const GUID* riid, void** ppv);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
77 void* CoTaskMemAlloc(unsigned long cb);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
78 void CoTaskMemFree(void* cb);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
79 #else
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
80 long STDCALL CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
7386
174e2a58b4cd avifile sync - 95% cosmetics 5% bug
arpi
parents: 3128
diff changeset
81 long dwClsContext, const GUID* riid, void** ppv);
22305
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
82 void* STDCALL CoTaskMemAlloc(unsigned long);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
83 void STDCALL CoTaskMemFree(void*);
3d1b23cf3d08 Moving duplicated (and sometimes wrong) AM_MEDIA_TYPE related code into separate file
voroshil
parents: 18783
diff changeset
84 #endif
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
85
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86 #ifdef __cplusplus
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 };
1544
558c1b03b8d0 updated
arpi
parents: 302
diff changeset
88 #endif /* __cplusplus */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89
26045
a8ea87c71d18 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25849
diff changeset
90 #endif /* MPLAYER_COM_H */