home *** CD-ROM | disk | FTP | other *** search
- // File : MTRIF.H
-
- #ifndef __MTRIF__
- #define __MTRIF__
-
- #include <windows.h>
- #include <windowsx.h>
- #include <commctrl.h> // TreeView declarations live here
- #include <olectl.h>
-
- #include "def.h"
- #include "mtrerr.h"
- #include "avdef.h"
-
- //===============================================
- #ifndef __IMtrCapture_FWD_DEFINED__
- #define __IMtrCapture_FWD_DEFINED__
- typedef interface IMtrCapture IMtrCapture;
- #endif /* __IMtrCapture_FWD_DEFINED__ */
-
- #ifndef __IMtrCapture2_FWD_DEFINED__
- #define __IMtrCapture2_FWD_DEFINED__
- typedef interface IMtrCapture2 IMtrCapture2;
- #endif /* __IMtrCapture2_FWD_DEFINED__ */
-
- #ifndef __IMtrStreamCapture_FWD_DEFINED__
- #define __IMtrStreamCapture_FWD_DEFINED__
- typedef interface IMtrStreamCapture IMtrStreamCapture;
- #endif /* __IMtrStreamCapture_FWD_DEFINED__ */
-
- #ifndef __IFrameCapture_FWD_DEFINED__
- #define __IFrameCapture_FWD_DEFINED__
- typedef interface IFrameCapture IFrameCapture;
- #endif /* __IFrameCapture_FWD_DEFINED__ */
-
- #ifndef __IMtrAccel_FWD_DEFINED__
- #define __IMtrAccel_FWD_DEFINED__
- typedef interface IMtrAccel IMtrAccel;
- #endif /* __IMtrAccel_FWD_DEFINED__ */
-
- #ifndef __IMuxerSetup_FWD_DEFINED__
- #define __IMuxerSetup_FWD_DEFINED__
- typedef interface IMuxerSetup IMuxerSetup;
- #endif /* __IMuxerSetup_FWD_DEFINED__ */
-
- #ifndef __IVMpegSetup_FWD_DEFINED__
- #define __IVMpegSetup_FWD_DEFINED__
- typedef interface IVMpegSetup IVMpegSetup;
- #endif /* __IVMpegSetup_FWD_DEFINED__ */
-
- #ifndef __IAMpegSetup_FWD_DEFINED__
- #define __IAMpegSetup_FWD_DEFINED__
- typedef interface IAMpegSetup IAMpegSetup;
- #endif /* __IAMpegSetup_FWD_DEFINED__ */
-
- #ifndef __IVideoSetup_FWD_DEFINED__
- #define __IVideoSetup_FWD_DEFINED__
- typedef interface IVideoSetup IVideoSetup;
- #endif /* __IVideoSetup_FWD_DEFINED__ */
-
- #ifndef __IAudioSetup_FWD_DEFINED__
- #define __IAudioSetup_FWD_DEFINED__
- typedef interface IAudioSetup IAudioSetup;
- #endif /* __IAudioSetup_FWD_DEFINED__ */
-
- #ifndef __IFilterSetup_FWD_DEFINED__
- #define __IFilterSetup_FWD_DEFINED__
- typedef interface IFilterSetup IFilterSetup;
- #endif /* __IAMpegSetup_FWD_DEFINED__ */
-
- #ifndef __IVideoPreview_FWD_DEFINED__
- #define __IVideoPreview_FWD_DEFINED__
- typedef interface IVideoPreview IVideoPreview;
- #endif /* __IVideoPreview_FWD_DEFINED__ */
-
- #ifndef __ITemplate_FWD_DEFINED__
- #define __ITemplate_FWD_DEFINED__
- typedef interface ITemplate ITemplate;
- #endif /* __ITemplate_FWD_DEFINED__ */
-
- #ifndef __IEnumSetup_FWD_DEFINED__
- #define __IEnumSetup_FWD_DEFINED__
- typedef interface IEnumSetup IEnumSetup;
- #endif /* __IEnumSetup_FWD_DEFINED__ */
-
- #define MTR_FALSE 0
- #define MTR_OK 1
-
- //===============================================
- typedef LPVOID MTRH;
- typedef LPVOID MTRCAPH;
- typedef LPVOID MTRPLAYH;
- typedef LPVOID MTRACCH;
-
- //===============================================
- typedef long (CALLBACK *MTRIO)(LPVOID inst, LPSTR buffer, long len);
-
- #define MTRSTAT_IDLE 0
- #define MTRSTAT_PROCESS 1
- #define MTRSTAT_ERROR 2
- #define MTRSTAT_STOP 3
- #define MTRSTAT_PLAY 4
- #define MTRSTAT_PAUSE 5
-
- typedef struct {
- int state;
-
- int framesProcessed;
- int framesSkipped;
- int numClockTics;
-
- LONGLONG numBytesSaved;
- } MTRCAPINFO, *PMTRCAPINFO;
-
- typedef struct {
- BOOL isUsed;
- long actualSize;
- long bufferSize;
- PSTR bufferPtr;
- } MTRSTREAMPTR;
-
- typedef long (CALLBACK *MTRSTATUSPROC)(LPVOID pParam, int status, LPVOID info);
-
- //==============================
- EXTERN_C const IID IID_IBaseSetup;
-
- //
- DECLARE_INTERFACE_(IBaseSetup, IUnknown) {
- STDMETHOD(Default)(THIS_ ) PURE;
- STDMETHOD(RegSave)(THIS_ HKEY hKey) PURE;
- STDMETHOD(RegLoad)(THIS_ HKEY hKey) PURE;
-
- STDMETHOD(Copy)(THIS_ IUnknown * pSetup) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IDuplicator;
-
- //
- DECLARE_INTERFACE_(IDuplicator, IUnknown) {
- STDMETHOD(Duplicate)(THIS_ IUnknown **) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IEnumSetup;
-
- //
- DECLARE_INTERFACE_(IEnumSetup, IUnknown) {
- STDMETHOD(Next)(THIS_ IBaseSetup **, LPIID) PURE;
- STDMETHOD(Skip)(THIS_ int cSetup) PURE;
- STDMETHOD(Reset)(THIS_ ) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IMuxerSetup;
-
- //
- DECLARE_INTERFACE_(IMuxerSetup, IBaseSetup) {
- STDMETHOD_(mpeg_stream_type, get_StreamType)(THIS_ ) PURE;
- STDMETHOD(set_StreamType)(THIS_ mpeg_stream_type type) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IVMpegSetup;
-
- typedef struct {
- int cbSize;
- int minQ;
- int maxQ;
- int initQ;
- int qGain;
- int qDelta;
- } MTRQUANT;
-
- DECLARE_INTERFACE_(IVMpegSetup, IBaseSetup) {
- // main
- STDMETHOD_(VSystem, get_VideoSystem)(THIS_ ) PURE;
- STDMETHOD(set_VideoSystem)(THIS_ VSystem vsys) PURE;
-
- STDMETHOD_(DWORD, get_Bitrate)(THIS_ ) PURE;
- STDMETHOD(set_Bitrate)(THIS_ DWORD bitrate) PURE;
-
- STDMETHOD_(mpeg_size, get_PictureSize)(THIS_ ) PURE;
- STDMETHOD(set_PictureSize)(THIS_ mpeg_size size) PURE;
-
- STDMETHOD(get_PictureSize)(THIS_ SIZE * ) PURE;
- STDMETHOD(set_PictureSize)(THIS_ SIZE * ) PURE;
-
- STDMETHOD_(WORD, get_N)(THIS_ ) PURE;
- STDMETHOD_(WORD, get_M)(THIS_ ) PURE;
- STDMETHOD(set_NM)(THIS_ WORD N, WORD M) PURE;
-
- STDMETHOD_(DWORD, get_PictureInterval)(THIS_ ) PURE;
- STDMETHOD(set_PictureInterval)(DWORD interval) PURE;
-
- STDMETHOD_(DWORD, get_VBVSize)(THIS_ ) PURE;
- STDMETHOD(set_VBVSize)(THIS_ DWORD size) PURE;
-
- STDMETHOD_(DWORD, get_VBVSizeKb)(THIS_ ) PURE;
- STDMETHOD(set_VBVSizeKb)(THIS_ DWORD size) PURE;
-
- // bitrate control
- STDMETHOD_(WORD, get_IPercent)(THIS_ ) PURE;
- STDMETHOD(set_IPercent)(THIS_ WORD persent) PURE;
-
- STDMETHOD_(WORD, get_PPercent)(THIS_ ) PURE;
- STDMETHOD(set_PPercent)(THIS_ WORD persent) PURE;
-
- STDMETHOD_(WORD, get_BPercent)(THIS_ ) PURE;
- STDMETHOD(set_BPercent)(THIS_ WORD persent) PURE;
-
- // motion estimation
- STDMETHOD_(BOOL, get_MotionDecision)(THIS_ ) PURE;
- STDMETHOD(set_MotionDecision)(THIS_ BOOL isDecision) PURE;
-
- STDMETHOD_(WORD, get_MotionWidth)(THIS_ ) PURE;
- STDMETHOD(set_MotionWidth)(THIS_ WORD width) PURE;
-
- STDMETHOD_(WORD, get_MotionHeight)(THIS_ ) PURE;
- STDMETHOD(set_MotionHeight)(THIS_ WORD height) PURE;
-
- STDMETHOD_(BOOL, get_MotionPel)(THIS_ ) PURE;
- STDMETHOD(set_MotionPel)(THIS_ BOOL isHalfPel) PURE;
-
- // quality control
- STDMETHOD_(int, get_PThreshold)(THIS_ ) PURE;
- STDMETHOD(set_PThreshold)(THIS_ int val) PURE;
-
- STDMETHOD_(int, get_BThreshold)(THIS_ ) PURE;
- STDMETHOD(set_BThreshold)(THIS_ int val) PURE;
-
- STDMETHOD_(WORD, get_QuantAlgorithm)(THIS_ ) PURE;
- STDMETHOD(set_QuantAlgorithm)(THIS_ WORD qalg) PURE;
-
- // realtime control
- STDMETHOD(get_IQuant)(THIS_ MTRQUANT * q) PURE;
- STDMETHOD(set_IQuant)(THIS_ MTRQUANT * q) PURE;
-
- STDMETHOD(get_PQuant)(THIS_ MTRQUANT * q) PURE;
- STDMETHOD(set_PQuant)(THIS_ MTRQUANT * q) PURE;
-
- STDMETHOD(get_BQuant)(THIS_ MTRQUANT * q) PURE;
- STDMETHOD(set_BQuant)(THIS_ MTRQUANT * q) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IAMpegSetup;
-
- typedef struct {
- ampeg_type bitrate;
- ampeg_layer layer;
- audio_freq freq;
- ampeg_mode mode;
- } MTRAMPEGFORMAT;
-
- DECLARE_INTERFACE_(IAMpegSetup, IBaseSetup) {
- STDMETHOD_(ampeg_type, get_BitrateType)(THIS_ ) PURE;
- STDMETHOD(set_BitrateType)(THIS_ ampeg_type type) PURE;
-
- STDMETHOD_(DWORD, get_Bitrate)(THIS_ ) PURE;
- STDMETHOD(set_Bitrate)(THIS_ DWORD bitrate) PURE;
-
- STDMETHOD_(ampeg_layer, get_Layer)(THIS_ ) PURE;
- STDMETHOD(set_Layer)(THIS_ ampeg_layer layer) PURE;
-
- STDMETHOD_(audio_freq, get_SampleFrequency)(THIS_ ) PURE;
- STDMETHOD(set_SampleFrequency)(THIS_ audio_freq freq) PURE;
-
- STDMETHOD_(ampeg_mode, get_Mode)(THIS_ ) PURE;
- STDMETHOD(set_Mode)(THIS_ ampeg_mode mode) PURE;
-
- STDMETHOD_(long, EnumFormats)(MTRAMPEGFORMAT * pFormats, long cbFormats) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IVideoSetup;
-
- DECLARE_INTERFACE_(IVideoSetup, IBaseSetup) {
- STDMETHOD_(int, get_HUE)(THIS_ ) PURE;
- STDMETHOD(set_HUE)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_SAT)(THIS_ ) PURE;
- STDMETHOD(set_SAT)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_CONT)(THIS_ ) PURE;
- STDMETHOD(set_CONT)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_BRIG)(THIS_ ) PURE;
- STDMETHOD(set_BRIG)(THIS_ int v) PURE;
-
- STDMETHOD_(VSystem, get_System)(THIS_ ) PURE;
- STDMETHOD(set_System)(THIS_ VSystem v) PURE;
-
- STDMETHOD_(int, get_Source)(THIS_ ) PURE;
- STDMETHOD(set_Source)(THIS_ int v) PURE;
-
- STDMETHOD(get_Offset)(THIS_ POINT * v) PURE;
- STDMETHOD(set_Offset)(THIS_ POINT * v) PURE;
-
- STDMETHOD(get_Size)(THIS_ SIZE * v) PURE;
- STDMETHOD(set_Size)(THIS_ SIZE * v) PURE;
-
- STDMETHOD(get_Scale)(THIS_ POINT * v) PURE;
- STDMETHOD(set_Scale)(THIS_ POINT * v) PURE;
-
- STDMETHOD_(int, get_HDelayShift)(THIS_ ) PURE;
- STDMETHOD(set_HDelayShift)(THIS_ int shift) PURE;
-
- STDMETHOD_(int, get_Peaking)(THIS_ ) PURE;
- STDMETHOD(set_Peaking)(THIS_ int val) PURE;
-
- STDMETHOD_(int, get_Delay)(THIS_ ) PURE;
- STDMETHOD(set_Delay)(THIS_ int val) PURE;
-
- STDMETHOD_(int, get_Pre)(THIS_ ) PURE;
- STDMETHOD(set_Pre)(THIS_ int val) PURE;
-
- STDMETHOD(Update)(THIS_ ) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IAudioSetup;
-
- typedef struct {
- audio_freq freq;
- audio_mode mode;
- } MTRAUDIOFORMAT;
-
- DECLARE_INTERFACE_(IAudioSetup, IBaseSetup) {
- STDMETHOD_(DWORD, get_SamplePerSecond)(THIS_ ) PURE;
- STDMETHOD(set_SamplePerSecond)(THIS_ DWORD) PURE;
-
- STDMETHOD_(DWORD, get_NumberOfChannel)(THIS_ ) PURE;
- STDMETHOD(set_NumberOfChannel)(THIS_ DWORD) PURE;
-
- STDMETHOD_(audio_freq, get_SampleFrequency)(THIS_ ) PURE;
- STDMETHOD(set_SampleFrequency)(THIS_ audio_freq freq) PURE;
-
- STDMETHOD_(audio_mode, get_Mode)(THIS_ ) PURE;
- STDMETHOD(set_Mode)(THIS_ audio_mode mode) PURE;
-
- STDMETHOD_(int, get_LineInVolume)(THIS_ ) PURE;
- STDMETHOD(set_LineInVolume)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_LineInBalance)(THIS_ ) PURE;
- STDMETHOD(set_LineInBalance)(THIS_ int v) PURE;
-
- STDMETHOD_(BOOL, get_LineInMute)(THIS_ ) PURE;
- STDMETHOD(set_LineInMute)(THIS_ BOOL v) PURE;
-
- STDMETHOD_(int, get_AuxInVolume)(THIS_ ) PURE;
- STDMETHOD(set_AuxInVolume)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_AuxInBalance)(THIS_ ) PURE;
- STDMETHOD(set_AuxInBalance)(THIS_ int v) PURE;
-
- STDMETHOD_(BOOL, get_AuxInMute)(THIS_ ) PURE;
- STDMETHOD(set_AuxInMute)(THIS_ BOOL v) PURE;
-
- STDMETHOD_(int, get_LoopVolume)(THIS_ ) PURE;
- STDMETHOD(set_LoopVolume)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_LoopBalance)(THIS_ ) PURE;
- STDMETHOD(set_LoopBalance)(THIS_ int v) PURE;
-
- STDMETHOD_(BOOL, get_LoopMute)(THIS_ ) PURE;
- STDMETHOD(set_LoopMute)(THIS_ BOOL v) PURE;
-
- STDMETHOD_(int, get_OutVolume)(THIS_ ) PURE;
- STDMETHOD(set_OutVolume)(THIS_ int v) PURE;
-
- STDMETHOD_(int, get_OutBalance)(THIS_ ) PURE;
- STDMETHOD(set_OutBalance)(THIS_ int v) PURE;
-
- STDMETHOD_(BOOL, get_OutMute)(THIS_ ) PURE;
- STDMETHOD(set_OutMute)(THIS_ BOOL v) PURE;
-
- STDMETHOD_(long, EnumFormats)(MTRAUDIOFORMAT * pFormats, long cbFormats) PURE;
-
- STDMETHOD(Update)(THIS_ ) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IFilterSetup;
-
- //
- DECLARE_INTERFACE_(IFilterSetup, IBaseSetup) {
- STDMETHOD_(int, get_Smooth)(THIS_ ) PURE;
- STDMETHOD(set_Smooth)(THIS_ int val) PURE;
-
- STDMETHOD(Update)(THIS_ ) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_ITemplate;
-
- DECLARE_INTERFACE_(ITemplate, IUnknown) {
- STDMETHOD(QueryTemplate)(THIS_ ) PURE;
- STDMETHOD(NextTemplate)(THIS_ PSTR pName, long cbName) PURE;
-
- STDMETHOD(OpenTemplate)(THIS_ PSTR pName, HKEY * phKey) PURE;
- STDMETHOD(CreateTemplate)(THIS_ PSTR pName, HKEY * phKey) PURE;
- STDMETHOD(RemoveTemplate)(THIS_ PSTR pName) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IVideoPreview;
-
- #define MTRP_555 0x0001
- #define MTRP_565 0x0002
- #define MTRP_SIZE 0x0004
- #define MTRP_MOVE 0x0008
- #define MTRP_YUV2 0x0010
- #define MTRP_DIRECTX 0x0020
-
- typedef struct {
- long cbSize;
- DWORD dwCaps;
- SIZE minSize;
- SIZE maxSize;
- SIZE defaultSize;
- } MTRPREVIEW_CAPS;
-
- DECLARE_INTERFACE_(IVideoPreview, IUnknown) {
- STDMETHOD(Open)(THIS_ HWND hWndParent) PURE;
- STDMETHOD(Close)(THIS_) PURE;
- STDMETHOD(Enable)(THIS_ BOOL flag) PURE;
- STDMETHOD(GetCaps)(THIS_ MTRPREVIEW_CAPS * caps) PURE;
- STDMETHOD_(DWORD, GetCapsD)(THIS_ ) PURE;
- STDMETHOD_(BOOL, GetStatus)(THIS_ ) PURE;
-
- STDMETHOD(GetWnd)(THIS_ HWND * hWnd) PURE;
- STDMETHOD(Update)(THIS_ ) PURE;
-
- STDMETHOD(GetSize)(THIS_ SIZE * rc) PURE;
- STDMETHOD(SetSize)(THIS_ SIZE * rc) PURE;
-
- STDMETHOD(GetVideoSize)(THIS_ SIZE * rc) PURE;
- STDMETHOD(SetVideoSize)(THIS_ SIZE * rc) PURE;
- };
-
- //=================================================================
- // IPropertyView
- EXTERN_C const IID IID_IPropertyView;
-
- DECLARE_INTERFACE_(IPropertyView, IUnknown) {
- STDMETHOD(OnDataChange)(THIS_ ) PURE;
- };
-
- //=================================================================
- // IRegPropertyPage
- EXTERN_C const IID IID_IPropertyViewSite;
-
- DECLARE_INTERFACE_(IPropertyViewSite, IUnknown) {
- STDMETHOD(RegView)(THIS_ IUnknown* pView) PURE;
- STDMETHOD(UnregView)(THIS_ IUnknown* pView) PURE;
- STDMETHOD(SetDataChange)(THIS_ ) PURE;
- };
-
- //==============================
- EXTERN_C const IID IID_IHardwareInfo;
-
- //
- DECLARE_INTERFACE_(IHardwareInfo, IUnknown) {
- STDMETHOD_(int, get_ICC_version)(THIS_ ) PURE;
- STDMETHOD_(int, get_MEC_version)(THIS_ ) PURE;
- STDMETHOD_(int, get_HW_version)(THIS_ ) PURE;
-
- STDMETHOD_(int, get_version)(THIS_ ) PURE;
- };
-
- //=================================================================
- // IMtrStreamCapture
- EXTERN_C const IID IID_IMtrStreamCapture;
-
- DECLARE_INTERFACE_(IMtrStreamCapture, IUnknown) {
- STDMETHOD(Open)(THIS_ ) PURE;
- STDMETHOD(Close)(THIS_ ) PURE;
-
- STDMETHOD(Start)(THIS_ ) PURE;
- STDMETHOD(Stop)(THIS_ ) PURE;
- STDMETHOD(Pause)(THIS_ ) PURE;
-
- STDMETHOD(OpenStreamEx)(THIS_ ) PURE;
- STDMETHOD(CloseStreamEx)(THIS_ ) PURE;
- STDMETHOD(StreamGetPtr)(THIS_ MTRSTREAMPTR * meBuf, BOOL wait) PURE;
- STDMETHOD(StreamReleasePtr)(THIS_ MTRSTREAMPTR * meBuf) PURE;
- STDMETHOD_(DWORD, StreamGetLength)(THIS_ ) PURE;
- STDMETHOD_(HANDLE, GetWaitHandle)(THIS_ ) PURE;
-
- STDMETHOD_(DWORD, StreamGetPageSize)(THIS_ ) PURE;
- STDMETHOD_(DWORD, StreamGetPageCount)(THIS_ ) PURE;
- STDMETHOD(StreamSetPageBuffer)(THIS_ DWORD cbPageSize, DWORD nPageCount) PURE;
-
- STDMETHOD(GetVMpegSetup)(THIS_ IVMpegSetup ** ppVMpeg) PURE;
- STDMETHOD(GetAMpegSetup)(THIS_ IAMpegSetup ** ppAMpeg) PURE;
- STDMETHOD(GetVideoSetup)(THIS_ IVideoSetup ** ppVideo) PURE;
- STDMETHOD(GetAudioSetup)(THIS_ IAudioSetup ** ppAudio) PURE;
- STDMETHOD(GetVideoPreview)(THIS_ IVideoPreview ** ppPreview) PURE;
- STDMETHOD(GetMuxerSetup)(THIS_ IMuxerSetup ** ppMuxer) PURE;
-
- STDMETHOD(DefaultParam)(THIS_ ) PURE;
- STDMETHOD(SaveParam)(THIS_ ) PURE;
- STDMETHOD(LoadParam)(THIS_ ) PURE;
-
- STDMETHOD(DlgParam)(THIS_ HWND hwndParent) PURE;
- STDMETHOD(GetCapInfo)(THIS_ MTRCAPINFO * capinfo) PURE;
- STDMETHOD(GetLastError)(THIS_ PSTR str, int len) PURE;
- };
-
- //=================================================================
- // IMtrCapture2
- EXTERN_C const IID IID_IMtrCapture2;
-
- DECLARE_INTERFACE_(IMtrCapture2, IUnknown) {
- STDMETHOD(Open)(THIS_ ) PURE;
- STDMETHOD(Close)(THIS_ ) PURE;
- STDMETHOD(DefaultParam)(THIS_ ) PURE;
- STDMETHOD(SaveParam)(THIS_ ) PURE;
- STDMETHOD(LoadParam)(THIS_ ) PURE;
-
- STDMETHOD(DlgParam)(THIS_ HWND hwndParent) PURE;
- STDMETHOD(GetFileName)(THIS_ PSTR fileName, int fileNameLen) PURE;
- STDMETHOD(SetFileName)(THIS_ PSTR fileName) PURE;
- STDMETHOD(SetOutput)(THIS_ MTRIO ioproc, LPVOID ioinst) PURE;
-
- // WM_MTRSTATUS
- STDMETHOD(SetCallbackWnd)(THIS_ HWND hWnd, int statmsg) PURE;
- STDMETHOD(GetCapInfo)(THIS_ MTRCAPINFO * capinfo) PURE;
-
- STDMETHOD(OpenStream)(THIS_ ) PURE;
- STDMETHOD(CloseStream)(THIS_ ) PURE;
-
- STDMETHOD(OpenStreamEx)(THIS_ ) PURE;
- STDMETHOD(CloseStreamEx)(THIS_ ) PURE;
- STDMETHOD(StreamGetPtr)(THIS_ MTRSTREAMPTR * meBuf, BOOL wait) PURE;
- STDMETHOD(StreamReleasePtr)(THIS_ MTRSTREAMPTR * meBuf) PURE;
- STDMETHOD_(HANDLE, GetWaitHandle)(THIS_ ) PURE;
-
- STDMETHOD(Start)(THIS_ ) PURE;
- STDMETHOD(Stop)(THIS_ ) PURE;
- STDMETHOD(Pause)(THIS_ ) PURE;
-
- STDMETHOD(GetLastError)(THIS_ PSTR str, int len) PURE;
-
- STDMETHOD(GetVMpegSetup)(THIS_ IVMpegSetup ** ppVMpeg) PURE;
- STDMETHOD(GetAMpegSetup)(THIS_ IAMpegSetup ** ppAMpeg) PURE;
- STDMETHOD(GetVideoSetup)(THIS_ IVideoSetup ** ppVideo) PURE;
- STDMETHOD(GetAudioSetup)(THIS_ IAudioSetup ** ppAudio) PURE;
- STDMETHOD(GetVideoPreview)(THIS_ IVideoPreview ** ppPreview) PURE;
- STDMETHOD(GetMuxerSetup)(THIS_ IMuxerSetup ** ppMuxer) PURE;
- };
-
- //=================================================================
- // IMtrCapture
- EXTERN_C const IID IID_IMtrCapture;
-
- DECLARE_INTERFACE_(IMtrCapture, IMtrCapture2) {
- STDMETHOD(SaveParamTemplate)(THIS_ PSTR name) PURE;
- STDMETHOD(LoadParamTemplate)(THIS_ PSTR name) PURE;
- STDMETHOD(SaveParamEx)(THIS_ PVOID root, PSTR keyname) PURE;
- STDMETHOD(LoadParamEx)(THIS_ PVOID root, PSTR keyname) PURE;
-
- STDMETHOD_(int, GetFileType)(THIS_ ) PURE;
-
- STDMETHOD(OpenPreview)(THIS_ HWND hwndParent) PURE;
- STDMETHOD(OpenPreviewEx)(THIS_ HWND hwnd, BOOL isChild) PURE;
- STDMETHOD_(HWND, GetPreviewWnd)(THIS_ ) PURE;
- STDMETHOD(UpdatePreviewWnd)(THIS_ ) PURE;
-
- STDMETHOD_(DWORD, GetPreviewWndCaps)(THIS_ ) PURE;
- STDMETHOD(Preview)(THIS_ BOOL flag) PURE;
- STDMETHOD_(BOOL, GetPreviewStatus)(THIS_ ) PURE;
- STDMETHOD(ClosePreview)(THIS_ ) PURE;
- };
-
- //=================================================================
- // IMtrCapture
- EXTERN_C const IID IID_IMtrFrameCapture;
-
- #define MTRDATAHDR_DEFINED
- typedef struct MTRDATAHDR_TAG {
- BOOL isUsed;
- PVOID pBuffer;
- long cbTotal;
- long cbUsed;
- long cbOffset;
- LONGLONG timeRef;
- MTRDATAHDR_TAG * pNext;
- char Extended[32];
- } MTRDATAHDR;
-
- DECLARE_INTERFACE_(IMtrFrameCapture, IUnknown) {
- STDMETHOD(Open)(THIS_ ) PURE;
- STDMETHOD(Close)(THIS_ ) PURE;
- STDMETHOD(DefaultParam)(THIS_ ) PURE;
- STDMETHOD(SaveParam)(THIS_ ) PURE;
- STDMETHOD(LoadParam)(THIS_ ) PURE;
- STDMETHOD(DlgParam)(THIS_ HWND hwndParent) PURE;
-
- STDMETHOD(OpenStreamEx)(THIS_ ) PURE;
- STDMETHOD(CloseStreamEx)(THIS_ ) PURE;
-
- STDMETHOD_(HANDLE, GetWaitHandle)(THIS_ ) PURE;
-
- STDMETHOD(Start)(THIS_ ) PURE;
- STDMETHOD(Stop)(THIS_ ) PURE;
- STDMETHOD(Pause)(THIS_ ) PURE;
-
- STDMETHOD(GetLastError)(THIS_ PSTR str, int len) PURE;
-
- STDMETHOD(GetVMpegSetup)(THIS_ IVMpegSetup ** ppVMpeg) PURE;
- STDMETHOD(GetMuxerSetup)(THIS_ IMuxerSetup ** ppMuxer) PURE;
- STDMETHOD(GetVideoSetup)(THIS_ IVideoSetup ** ppVideo) PURE;
- STDMETHOD(GetAudioSetup)(THIS_ IAudioSetup ** ppAudio) PURE;
- STDMETHOD(GetVideoPreview)(THIS_ IVideoPreview ** ppPreview) PURE;
-
- STDMETHOD(GetVideoBuffer)(THIS_ MTRDATAHDR ** ppBuf) PURE;
- STDMETHOD(ReleaseVideoBuffer)(THIS_ MTRDATAHDR * pBuf) PURE;
- STDMETHOD(SetVideoBufferCount)(THIS_ long Count) PURE;
- STDMETHOD_(long, GetVideoBufferCount)(THIS_ ) PURE;
- STDMETHOD(SetVideoBufferOffset)(THIS_ long offset) PURE;
- STDMETHOD_(long, GetVideoBufferOffset)(THIS_ ) PURE;
-
- STDMETHOD(GetAudioBuffer)(THIS_ MTRDATAHDR ** ppBuf) PURE;
- STDMETHOD(ReleaseAudioBuffer)(THIS_ MTRDATAHDR * pBuf) PURE;
- STDMETHOD(SetAudioBufferCount)(THIS_ long Count) PURE;
- STDMETHOD_(long, GetAudioBufferCount)(THIS_ ) PURE;
- STDMETHOD(SetAudioBufferLength)(THIS_ long cbSize) PURE;
- STDMETHOD_(long, GetAudioBufferLength)(THIS_ ) PURE;
- STDMETHOD(SetAudioBufferOffset)(THIS_ long offset) PURE;
- STDMETHOD_(long, GetAudioBufferOffset)(THIS_ ) PURE;
- };
-
- //=================================================================
- // IMtrAccel
-
- EXTERN_C const IID IID_IMtrAccel;
-
- DECLARE_INTERFACE_(IMtrAccel, IUnknown) {
- STDMETHOD(Open)(THIS_ ) PURE;
- STDMETHOD(Close)(THIS_ ) PURE;
-
- STDMETHOD(DefaultParam)(THIS_ ) PURE;
- STDMETHOD(SaveParam)(THIS_ ) PURE;
- STDMETHOD(LoadParam)(THIS_ ) PURE;
- STDMETHOD(SaveParamTemplate)(THIS_ PSTR name) PURE;
- STDMETHOD(LoadParamTemplate)(THIS_ PSTR name) PURE;
- STDMETHOD(SaveParamEx)(THIS_ HKEY root, PSTR keyname) PURE;
- STDMETHOD(LoadParamEx)(THIS_ HKEY root, PSTR keyname) PURE;
-
- STDMETHOD(SetSize)(THIS_ ULONG width, ULONG height) PURE;
- STDMETHOD(SetBitrate)(THIS_ ULONG bitrate) PURE;
- STDMETHOD_(int, GetFileType)(THIS_ ) PURE;
-
- STDMETHOD(DlgParam)(THIS_ HWND hwndParent) PURE;
-
- STDMETHOD(OpenStreamEx)(THIS_ ) PURE;
- STDMETHOD(CloseStreamEx)(THIS_ ) PURE;
- STDMETHOD(BeginCompression)(THIS_ ) PURE;
- STDMETHOD(EndCompression)(THIS_ ) PURE;
-
- STDMETHOD(StreamGetPtr)(THIS_ MTRSTREAMPTR * meBuf, BOOL wait) PURE;
- STDMETHOD(StreamReleasePtr)(THIS_ MTRSTREAMPTR * meBuf) PURE;
- STDMETHOD_(HANDLE, GetWaitHandle)(THIS_ ) PURE;
-
- STDMETHOD(AddFrame)(THIS_ BITMAPINFOHEADER * biHdr, PSTR biSrc) PURE;
-
- STDMETHOD(AudioOpen)(THIS_ PVOID audioInHeader) PURE;
- STDMETHOD(AudioClose)(THIS_ ) PURE;
- STDMETHOD(AddAudio)(THIS_ PSTR pData, int length) PURE;
-
- STDMETHOD(GetLastError)(THIS_ PSTR str, int len) PURE;
-
- STDMETHOD(GetVMpegSetup)(THIS_ IVMpegSetup ** ppVMpeg) PURE;
- STDMETHOD(GetAMpegSetup)(THIS_ IAMpegSetup ** ppAMpeg) PURE;
- STDMETHOD(GetMuxerSetup)(THIS_ IMuxerSetup ** ppMuxer) PURE;
- };
-
- #endif //__MTRIF__
-