1 /* 2 * Copyright 2002 Michael Günnewig 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19 #ifndef __AVIFILE_PRIVATE_H 20 #define __AVIFILE_PRIVATE_H 21 22 #include <assert.h> 23 #include <stdarg.h> 24 25 #define WIN32_NO_STATUS 26 #define _INC_WINDOWS 27 #define COM_NO_WINDOWS_H 28 29 #define COBJMACROS 30 31 #include <windef.h> 32 #include <winbase.h> 33 #include <wingdi.h> 34 #include <vfw.h> 35 36 #include <wine/debug.h> 37 #include <wine/unicode.h> 38 39 #include "extrachunk.h" 40 #include "resource.h" 41 42 WINE_DEFAULT_DEBUG_CHANNEL(avifile); 43 44 #ifndef MAX_AVISTREAMS 45 #define MAX_AVISTREAMS 8 46 #endif 47 48 #ifndef DIBWIDTHBYTES 49 #define WIDTHBYTES(i) (((i+31)&(~31))/8) 50 #define DIBWIDTHBYTES(bi) WIDTHBYTES((bi).biWidth * (bi).biBitCount) 51 #endif 52 53 #ifndef DIBPTR 54 #define DIBPTR(lp) ((LPBYTE)(lp) + (lp)->biSize + \ 55 (lp)->biClrUsed * sizeof(RGBQUAD)) 56 #endif 57 58 DEFINE_AVIGUID(CLSID_ICMStream, 0x00020001, 0, 0); 59 DEFINE_AVIGUID(CLSID_WAVFile, 0x00020003, 0, 0); 60 DEFINE_AVIGUID(CLSID_ACMStream, 0x0002000F, 0, 0); 61 62 extern HMODULE AVIFILE_hModule DECLSPEC_HIDDEN; 63 64 extern HRESULT AVIFILE_CreateAVIFile(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; 65 extern HRESULT AVIFILE_CreateWAVFile(IUnknown *outer_unk, REFIID riid, void **ret_iface) DECLSPEC_HIDDEN; 66 extern HRESULT AVIFILE_CreateACMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; 67 extern HRESULT AVIFILE_CreateICMStream(REFIID riid, LPVOID *ppobj) DECLSPEC_HIDDEN; 68 extern PGETFRAME AVIFILE_CreateGetFrame(PAVISTREAM pstream) DECLSPEC_HIDDEN; 69 extern PAVIFILE AVIFILE_CreateAVITempFile(int nStreams, const PAVISTREAM *ppStreams) DECLSPEC_HIDDEN; 70 71 extern LPCWSTR AVIFILE_BasenameW(LPCWSTR szFileName) DECLSPEC_HIDDEN; 72 extern HRESULT WINAPI avifil32_DllGetClassObject(REFCLSID pclsid, REFIID piid, LPVOID *ppv) DECLSPEC_HIDDEN; 73 74 #endif /* __AVIFILE_PRIVATE_H */ 75