Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
960c725e
Commit
960c725e
authored
Mar 13, 1999
by
Marcus Meissner
Committed by
Alexandre Julliard
Mar 13, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated AVI* class interface to new ICOM_ methods.
parent
bb3bdbf0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
46 deletions
+85
-46
vfw.h
include/vfw.h
+85
-46
No files found.
include/vfw.h
View file @
960c725e
...
...
@@ -5,6 +5,7 @@
#include "mmsystem.h"
#include "wingdi.h"
#include "wine/obj_base.h"
#include "unknwn.h"
#define VFWAPI WINAPI
#define VFWAPIV WINAPIV
...
...
@@ -26,15 +27,15 @@ DWORD VFWAPI VideoForWindowsVersion(void);
/* Installable Compressor M? */
/* HIC
32
struct (same layout as Win95 one) */
/* HIC struct (same layout as Win95 one) */
typedef
struct
tagWINE_HIC
{
DWORD
magic
;
/* 00: 'Smag' */
HANDLE
curthread
;
/* 04: */
DWORD
type
;
/* 08: */
DWORD
handler
;
/* 0C: */
HDRVR
hdrv
;
/* 10: */
DWORD
private
;
/* 14:(handled by SendDriverMessage
32
)*/
FARPROC
driverproc
;
/* 18:(handled by SendDriverMessage
32
)*/
DWORD
private
;
/* 14:(handled by SendDriverMessage)*/
FARPROC
driverproc
;
/* 18:(handled by SendDriverMessage)*/
DWORD
x1
;
/* 1c: name? */
WORD
x2
;
/* 20: */
DWORD
x3
;
/* 22: */
...
...
@@ -367,6 +368,8 @@ DWORD VFWAPIV ICDecompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiFormat,L
BOOL
VFWAPI
ICInfo
(
DWORD
fccType
,
DWORD
fccHandler
,
ICINFO
*
lpicinfo
);
LRESULT
VFWAPI
ICGetInfo
(
HIC
hic
,
ICINFO
*
picinfo
,
DWORD
cb
);
HIC
VFWAPI
ICOpen
(
DWORD
fccType
,
DWORD
fccHandler
,
UINT
wMode
);
HIC
VFWAPI
ICOpenFunction
(
DWORD
fccType
,
DWORD
fccHandler
,
UINT
wMode
,
FARPROC
lpfnHandler
);
LRESULT
VFWAPI
ICClose
(
HIC
hic
);
LRESULT
VFWAPI
ICSendMessage
(
HIC
hic
,
UINT
msg
,
DWORD
dw1
,
DWORD
dw2
);
HIC
VFWAPI
ICLocate
(
DWORD
fccType
,
DWORD
fccHandler
,
LPBITMAPINFOHEADER
lpbiIn
,
LPBITMAPINFOHEADER
lpbiOut
,
WORD
wFlags
);
...
...
@@ -390,6 +393,41 @@ DWORD VFWAPIV ICDrawBegin(
DWORD
dwScale
);
/* as passed to ICM_DRAW_BEGIN (FIXME: correct only for Win32?) */
typedef
struct
{
DWORD
dwFlags
;
HPALETTE
hpal
;
HWND
hwnd
;
HDC
hdc
;
INT
xDst
;
INT
yDst
;
INT
dxDst
;
INT
dyDst
;
LPBITMAPINFOHEADER
lpbi
;
INT
xSrc
;
INT
ySrc
;
INT
dxSrc
;
INT
dySrc
;
DWORD
dwRate
;
DWORD
dwScale
;
}
ICDRAWBEGIN
;
#define ICDRAW_HURRYUP 0x80000000L // don't draw just buffer (hurry up!)
#define ICDRAW_UPDATE 0x40000000L // don't draw just update screen
#define ICDRAW_PREROLL 0x20000000L // this frame is before real start
#define ICDRAW_NULLFRAME 0x10000000L // repeat last frame
#define ICDRAW_NOTKEYFRAME 0x08000000L // this frame is not a key frame
typedef
struct
{
DWORD
dwFlags
;
LPVOID
lpFormat
;
LPVOID
lpData
;
DWORD
cbData
;
LONG
lTime
;
}
ICDRAW
;
DWORD
VFWAPIV
ICDraw
(
HIC
hic
,
DWORD
dwFlags
,
LPVOID
lpFormat
,
LPVOID
lpData
,
DWORD
cbData
,
LONG
lTime
);
/********************* AVIFILE function declarations *************************/
#define streamtypeVIDEO mmioFOURCC('v', 'i', 'd', 's')
...
...
@@ -603,53 +641,59 @@ DEFINE_AVIGUID(IID_IAVIEditStream, 0x00020024, 0, 0);
DEFINE_AVIGUID
(
CLSID_AVIFile
,
0x00020000
,
0
,
0
);
/* IAVIStream32 interface. */
/* IAVIStream interface. */
typedef
struct
IAVIStream
IAVIStream
,
*
LPAVISTREAM
,
*
PAVISTREAM
;
#define ICOM_INTERFACE IAVIStream
typedef
struct
IAVIStream
IAVIStream
,
*
PAVISTREAM
;
ICOM_BEGIN
(
IAVIStream
,
IUnknown
)
ICOM_METHOD2
(
HRESULT
,
Create
,
LPARAM
,,
LPARAM
,);
ICOM_METHOD2
(
HRESULT
,
Info
,
AVISTREAMINFOW
*
,,
LONG
,);
ICOM_METHOD2
(
LONG
,
FindSample
,
LONG
,,
LONG
,);
ICOM_METHOD3
(
HRESULT
,
ReadFormat
,
LONG
,,
LPVOID
,,
LONG
*
,);
ICOM_METHOD3
(
HRESULT
,
SetFormat
,
LONG
,,
LPVOID
,,
LONG
,);
ICOM_METHOD6
(
HRESULT
,
Read
,
LONG
,,
LONG
,,
LPVOID
,,
LONG
,,
LONG
*
,,
LONG
*
,);
ICOM_METHOD7
(
HRESULT
,
Write
,
LONG
,,
LONG
,,
LPVOID
,,
LONG
,,
DWORD
,,
LONG
*
,,
LONG
*
,);
ICOM_METHOD2
(
HRESULT
,
Delete
,
LONG
,,
LONG
,);
ICOM_METHOD3
(
HRESULT
,
ReadData
,
DWORD
,,
LPVOID
,,
LONG
*
,);
ICOM_METHOD3
(
HRESULT
,
WriteData
,
DWORD
,,
LPVOID
,,
LONG
,);
ICOM_METHOD2
(
HRESULT
,
SetInfo
,
AVISTREAMINFOW
*
,,
LONG
,);
ICOM_END
(
IAVIStream
)
#define IAVIStream_METHODS \
ICOM_METHOD2(HRESULT,Create,LPARAM,,LPARAM,) \
ICOM_METHOD2(HRESULT,Info,AVISTREAMINFOW*,,LONG,) \
ICOM_METHOD2(LONG,FindSample,LONG,,LONG,) \
ICOM_METHOD3(HRESULT,ReadFormat,LONG,,LPVOID,,LONG*,) \
ICOM_METHOD3(HRESULT,SetFormat,LONG,,LPVOID,,LONG,) \
ICOM_METHOD6(HRESULT,Read,LONG,,LONG,,LPVOID,,LONG,,LONG*,,LONG*,) \
ICOM_METHOD7(HRESULT,Write,LONG,,LONG,,LPVOID,,LONG,,DWORD,,LONG*,,LONG*,)\
ICOM_METHOD2(HRESULT,Delete,LONG,,LONG,) \
ICOM_METHOD3(HRESULT,ReadData,DWORD,,LPVOID,,LONG*,) \
ICOM_METHOD3(HRESULT,WriteData,DWORD,,LPVOID,,LONG,) \
ICOM_METHOD2(HRESULT,SetInfo,AVISTREAMINFOW*,,LONG,)
#define IAVIStream_IMETHODS \
IUnknown_IMETHODS \
IAVIStream_METHODS
ICOM_DEFINE
(
IAVIStream
,
IUnknown
)
#undef ICOM_INTERFACE
/* IAVIFile32 interface. In Win32 this interface uses UNICODE only */
/* IAVIFile interface. In Win32 this interface uses UNICODE only */
typedef
struct
IAVIFile
IAVIFile
,
*
LPAVIFile
,
*
PAVIFILE
;
#define ICOM_INTERFACE IAVIFile
typedef
struct
IAVIFile
IAVIFile
,
*
PAVIFILE
;
ICOM_BEGIN
(
IAVIFile
,
IUnknown
)
ICOM_METHOD2
(
HRESULT
,
Info
,
AVIFILEINFOW
*
,,
LONG
,);
ICOM_METHOD3
(
HRESULT
,
GetStream
,
PAVISTREAM
*
,,
DWORD
,,
LONG
,);
ICOM_METHOD2
(
HRESULT
,
CreateStream
,
PAVISTREAM
*
,,
AVISTREAMINFOW
*
,);
ICOM_METHOD3
(
HRESULT
,
WriteData
,
DWORD
,,
LPVOID
,,
LONG
,);
ICOM_METHOD3
(
HRESULT
,
ReadData
,
DWORD
,,
LPVOID
,,
LONG
*
,);
ICOM_METHOD
(
HRESULT
,
EndRecord
);
ICOM_METHOD2
(
HRESULT
,
DeleteStream
,
DWORD
,,
LONG
,);
ICOM_END
(
IAVIFile
)
#define IAVIFile_METHODS \
ICOM_METHOD2(HRESULT,Info,AVIFILEINFOW*,,LONG,) \
ICOM_METHOD3(HRESULT,GetStream,PAVISTREAM*,,DWORD,,LONG,) \
ICOM_METHOD2(HRESULT,CreateStream,PAVISTREAM*,,AVISTREAMINFOW*,) \
ICOM_METHOD3(HRESULT,WriteData,DWORD,,LPVOID,,LONG,) \
ICOM_METHOD3(HRESULT,ReadData,DWORD,,LPVOID,,LONG*,) \
ICOM_METHOD (HRESULT,EndRecord) \
ICOM_METHOD2(HRESULT,DeleteStream,DWORD,,LONG,)
#define IAVIFile_IMETHODS \
IUnknown_IMETHODS \
IAVIFile_METHODS
ICOM_DEFINE
(
IAVIFile
,
IUnknown
)
#undef ICOM_INTERFACE
/* IGetFrame32 interface */
/* IGetFrame interface */
#define ICOM_INTERFACE IGetFrame
typedef
struct
IGetFrame
IGetFrame
,
*
PGETFRAME
;
ICOM_BEGIN
(
IGetFrame
,
IUnknown
)
ICOM_METHOD1
(
LPVOID
,
GetFrame
,
LONG
,);
ICOM_METHOD3
(
HRESULT
,
Begin
,
LONG
,,
LONG
,,
LONG
,);
ICOM_METHOD
(
HRESULT
,
End
);
ICOM_METHOD6
(
HRESULT
,
SetFormat
,
LPBITMAPINFOHEADER
,,
LPVOID
,,
INT
,,
INT
,,
INT
,,
INT
,);
ICOM_END
(
IGetFrame
)
typedef
struct
IGetFrame
IGetFrame
,
*
PGETFRAME
,
*
LPGETFRAME
;
#define ICOM_INTERFACE IGetFrame
#define IGetFrame_METHODS \
ICOM_METHOD1(LPVOID,GetFrame,LONG,) \
ICOM_METHOD3(HRESULT,Begin,LONG,,LONG,,LONG,) \
ICOM_METHOD (HRESULT,End) \
ICOM_METHOD6(HRESULT,SetFormat,LPBITMAPINFOHEADER,,LPVOID,,INT,,INT,,INT,,INT,)
#define IGetFrame_IMETHODS \
IUnknown_IMETHODS \
IGetFrame_METHODS
ICOM_DEFINE
(
IGetFrame
,
IUnknown
)
#undef ICOM_INTERFACE
#define AVIERR_OK 0
#define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+error)
...
...
@@ -674,7 +718,6 @@ ICOM_END(IGetFrame)
#define AVIERR_ERROR MAKE_AVIERR(199)
HRESULT
WINAPI
AVIMakeCompressedStream
(
PAVISTREAM
*
ppsCompressed
,
PAVISTREAM
ppsSource
,
AVICOMPRESSOPTIONS
*
lpOptions
,
CLSID
*
pclsidHandler
);
#define AVIMakeCompressedStream WINELIB_NAME_AW(AVIMakeCompressedStream)
HRESULT
WINAPI
AVIStreamSetFormat
(
PAVISTREAM
iface
,
LONG
pos
,
LPVOID
format
,
LONG
formatsize
);
HRESULT
WINAPI
AVIStreamWrite
(
PAVISTREAM
iface
,
LONG
start
,
LONG
samples
,
LPVOID
buffer
,
LONG
buffersize
,
DWORD
flags
,
LONG
*
sampwritten
,
LONG
*
byteswritten
);
ULONG
WINAPI
AVIStreamRelease
(
PAVISTREAM
iface
);
...
...
@@ -687,7 +730,6 @@ HRESULT WINAPI AVIStreamWriteData(PAVISTREAM iface,DWORD fcc,LPVOID lp,LONG size
HRESULT
WINAPI
AVIStreamReadData
(
PAVISTREAM
iface
,
DWORD
fcc
,
LPVOID
lp
,
LONG
*
lpread
);
HRESULT
WINAPI
AVIStreamInfoA
(
PAVISTREAM
iface
,
AVISTREAMINFOA
*
asi
,
LONG
size
);
HRESULT
WINAPI
AVIStreamInfoW
(
PAVISTREAM
iface
,
AVISTREAMINFOW
*
asi
,
LONG
size
);
#define AVIStreamInfo WINELIB_NAME_AW(AVIStreamInfo)
PGETFRAME
WINAPI
AVIStreamGetFrameOpen
(
PAVISTREAM
pavi
,
LPBITMAPINFOHEADER
lpbiWanted
);
HRESULT
WINAPI
AVIStreamGetFrameClose
(
PGETFRAME
pg
);
PGETFRAME
WINAPI
AVIStreamGetFrameOpen
(
PAVISTREAM
pavi
,
LPBITMAPINFOHEADER
lpbiWanted
);
...
...
@@ -695,14 +737,11 @@ LPVOID WINAPI AVIStreamGetFrame(PGETFRAME pg,LONG pos);
void
WINAPI
AVIFileInit
(
void
);
HRESULT
WINAPI
AVIFileOpenA
(
PAVIFILE
*
ppfile
,
LPCSTR
szFile
,
UINT
uMode
,
LPCLSID
lpHandler
);
#define AVIFileOpen WINELIB_NAME_AW(AVIFileOpen)
HRESULT
WINAPI
AVIFileCreateStreamA
(
PAVIFILE
pfile
,
PAVISTREAM
*
ppavi
,
AVISTREAMINFOA
*
psi
);
HRESULT
WINAPI
AVIFileCreateStreamW
(
PAVIFILE
pfile
,
PAVISTREAM
*
ppavi
,
AVISTREAMINFOW
*
psi
);
#define AVIFileCreateStream WINELIB_NAME_AW(AVIFileCreateStream)
ULONG
WINAPI
AVIFileRelease
(
PAVIFILE
iface
);
HRESULT
WINAPI
AVIFileInfoA
(
PAVIFILE
pfile
,
PAVIFILEINFOA
,
LONG
);
HRESULT
WINAPI
AVIFileInfoW
(
PAVIFILE
pfile
,
PAVIFILEINFOW
,
LONG
);
#define AVIFileInfo WINELIB_NAME_AW(AVIFileInfo)
HRESULT
WINAPI
AVIFileGetStream
(
PAVIFILE
pfile
,
PAVISTREAM
*
avis
,
DWORD
fccType
,
LONG
lParam
);
void
WINAPI
AVIFileExit
(
void
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment