Microsoft Video For Windows API
Jump to navigation
Jump to search
- Company: Microsoft
- Compiled list of VFW codecs
Microsoft's Video for Windows (VfW) API uses a refreshingly simple API. A Windows dynamic link library (DLL) that conforms to the VfW API is expected to export a single function with the following declaration:
LRESULT WINAPI DriverProc( DWORD dwDriverId, HDRVR hDriver, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
All parameters are 32 bits wide. The parameters are defined as follows:
- dwDriverId: A pointer to any private data that the codec needs to maintain between driver calls.
- hDriver: Unknown; may not be especially important.
- uMsg: This message parameter defines what operation DriverProc should perform on this particular call.
- lParam1: Operation-specific data field that varies depending on uMsg.
- lParam2: Operation-specific data field that varies depending on uMsg.
The DriverProc() function returns a 32-bit number indicating status as defined by the VfW API.
Other data structures:
typedef struct { DWORD dwSize; DWORD fccType; DWORD fccHandler; DWORD dwVersion; DWORD dwFlags; LRESULT dwError; LPVOID pV1Reserved; LPVOID pV2Reserved; DWORD dnDevNode; } ICOPEN;
typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiInput; LPVOID lpInput; LPBITMAPINFOHEADER lpbiOutput; LPVOID lpOutput; DWORD ckid; } ICDECOMPRESS;
driver primitives
0x0001 DRV_LOAD 0x0003 DRV_OPEN 0x0004 DRV_CLOSE 0x0006 DRV_FREE
driver return codes
0x0000 DRVCNF_CANCEL 0x0001 DRVCNF_OK 0x0002 DRVCNF_RESTART
driver messages
0x400A ICM_DECOMPRESS_GET_FORMAT 0x400B ICM_DECOMPRESS_QUERY 0x400C ICM_DECOMPRESS_BEGIN 0x400D ICM_DECOMPRESS 0x400E ICM_DECOMPRESS_END 0x401D ICM_DECOMPRESS_SET_PALETTE 0x401E ICM_DECOMPRESS_GET_PALETTE
references:
- Microsoft vfw.h API file
- XviD source code