2 * Modified for use with MPlayer, detailed CVS changelog at
3 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
19 * Internal functions and structures for COM emulation code.
22 #if !defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__)
28 void* CoTaskMemAlloc(unsigned long cb
);
29 void CoTaskMemFree(void* cb
);
42 extern const GUID IID_IUnknown
;
43 extern const GUID IID_IClassFactory
;
45 typedef long (*GETCLASSOBJECT
) (GUID
* clsid
, const GUID
* iid
, void** ppv
);
46 int RegisterComClass(const GUID
* clsid
, GETCLASSOBJECT gcs
);
47 int UnregisterComClass(const GUID
* clsid
, GETCLASSOBJECT gcs
);
50 #define STDCALL __attribute__((__stdcall__))
57 long STDCALL (*QueryInterface
)(struct IUnknown
* _this
, const GUID
* iid
, void** ppv
);
58 long STDCALL (*AddRef
)(struct IUnknown
* _this
) ;
59 long STDCALL (*Release
)(struct IUnknown
* _this
) ;
62 typedef struct IUnknown
64 struct IUnknown_vt
* vt
;
67 struct IClassFactory_vt
69 long STDCALL (*QueryInterface
)(struct IUnknown
* _this
, const GUID
* iid
, void** ppv
);
70 long STDCALL (*AddRef
)(struct IUnknown
* _this
) ;
71 long STDCALL (*Release
)(struct IUnknown
* _this
) ;
72 long STDCALL (*CreateInstance
)(struct IClassFactory
* _this
, struct IUnknown
* pUnkOuter
, const GUID
* riid
, void** ppvObject
);
77 struct IClassFactory_vt
* vt
;
80 long CoCreateInstance(GUID
* rclsid
, struct IUnknown
* pUnkOuter
,
81 long dwClsContext
, const GUID
* riid
, void** ppv
);
85 #endif /* __cplusplus */
89 #endif /* AVIFILE_COM_H */