This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/strmif.h

6920 lines
284 KiB
C

/*
* strmif.h ActiveMovie interfaces
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#include <rpc.h>
#include <rpcndr.h>
#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif
#ifndef __strmif_h__
#define __strmif_h__
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <ddraw.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Forward declarations */
typedef interface IBaseFilter IBaseFilter;
typedef interface IEnumMediaTypes IEnumMediaTypes;
typedef interface IEnumFilters IEnumFilters;
typedef interface IReferenceClock IReferenceClock;
typedef interface IFilterGraph IFilterGraph;
typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
typedef interface IAMTunerNotification IAMTunerNotification;
typedef interface IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
typedef interface IGraphConfigCallback IGraphConfigCallback;
typedef interface IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
typedef interface IVMRImageCompositor IVMRImageCompositor;
/* Reference time data types */
typedef LONGLONG REFERENCE_TIME;
typedef double REFTIME;
/* Handle data types */
typedef DWORD_PTR HSEMAPHORE;
typedef DWORD_PTR HEVENT;
/* DVD register data types */
typedef WORD DVD_REGISTER;
typedef DVD_REGISTER GPRMARRAY[16];
typedef DVD_REGISTER SPRMARRAY[24];
/* Valid UOP data type */
typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
/* ICreateDevEnum::CreateClassEnumerator() flags */
#define CDEF_CLASS_DEFAULT 0x00000001L
#define CDEF_BYPASS_CLASS_MANAGER 0x00000002L
#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x00000008L
#define CDEF_DEVMON_CMGR_DEVICE 0x00000010L
#define CDEF_DEVMON_DMO 0x00000020L
#define CDEF_DEVMON_PNP_DEVICE 0x00000040L
#define CDEF_DEVMON_FILTER 0x00000080L
#define CDEF_DEVMON_SELECTIVE_MASK 0x000000F0L
/* String lengths */
#define CHARS_IN_GUID 39
#define MAX_PIN_NAME 128
#define MAX_FILTER_NAME 128
/* IMemAllocator::GetBuffer() flags */
#define AM_GBF_PREVFRAMESKIPPED 1L
#define AM_GBF_NOTASYNCPOINT 2L
#define AM_GBF_NOWAIT 4L
#define AM_GBF_NODDSURFACELOCK 8L
/* IKsPropertySet::QuerySupported() return values */
#define KSPROPERTY_SUPPORT_GET 1
#define KSPROPERTY_SUPPORT_SET 2
/* Media sample content values */
#define MPEG2_PROGRAM_STREAM_MAP 0x00000000L
#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001L
#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002L
#define MPEG2_PROGRAM_PACK_HEADER 0x00000003L
#define MPEG2_PROGRAM_PES_STREAM 0x00000004L
#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005L
/* Substream filter flags */
#define SUBSTREAM_FILTER_VAL_NONE 0x10000000L
/* Decoder capability indices */
#define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001L
#define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001L
#define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002L
#define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003L
#define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004L
#define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005L
#define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006L
#define AM_GETDECODERCAP_QUERY_EVR_SUPPORT 0x00000007L
/* VMR support flags */
#define VMR_NOTSUPPORTED 0x00000000L
#define VMR_SUPPORTED 0x00000001L
/* Decoder capability flags */
#define DECODER_CAP_NOTSUPPORTED 0x00000000L
#define DECODER_CAP_SUPPORTED 0x00000001L
/* DVD flags */
#define DVD_TITLE_MENU 0x0000
#define DVD_STREAM_DATA_CURRENT 0x0800
#define DVD_STREAM_DATA_VMGM 0x0400
#define DVD_STREAM_DATA_VTSM 0x0401
#define DVD_DEFAULT_AUDIO_STREAM 0x000F
/* DVD audio capabilities */
#define DVD_AUDIO_CAPS_AC3 0x00000001L
#define DVD_AUDIO_CAPS_MPEG2 0x00000002L
#define DVD_AUDIO_CAPS_LPCM 0x00000004L
#define DVD_AUDIO_CAPS_DTS 0x00000008L
#define DVD_AUDIO_CAPS_SDDS 0x00000010L
/* VMR string lengths */
#define VMRDEVICENAMELEN 32
#define VMRDEVICEDESCRIPTIONLEN 256
/* VMR bitmap flags */
#define VMRBITMAP_DISABLE 0x00000001L
#define VMRBITMAP_HDC 0x00000002L
#define VMRBITMAP_ENTIREDDS 0x00000004L
#define VMRBITMAP_SRCCOLORKEY 0x00000008L
#define VMRBITMAP_SRCRECT 0x00000010L
/* ActiveMovie media type */
typedef struct _AMMediaType {
GUID majortype;
GUID subtype;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
ULONG lSampleSize;
GUID formattype;
IUnknown *pUnk;
ULONG cbFormat;
BYTE *pbFormat;
} AM_MEDIA_TYPE;
/* Pin directions */
typedef enum _PinDirection {
PINDIR_INPUT = 0,
PINDIR_OUTPUT = 1
} PIN_DIRECTION;
/* Allocator properties */
typedef struct _AllocatorProperties {
long cBuffers;
long cbBuffer;
long cbAlign;
long cbPrefix;
} ALLOCATOR_PROPERTIES;
/* Pin information */
typedef struct _PinInfo {
IBaseFilter *pFilter;
PIN_DIRECTION dir;
WCHAR achName[MAX_PIN_NAME];
} PIN_INFO;
/* Filter states */
typedef enum _FilterState {
State_Stopped = 0,
State_Paused = 1,
State_Running = 2
} FILTER_STATE;
/* Filter information */
typedef struct _FilterInfo {
WCHAR achName[MAX_FILTER_NAME];
IFilterGraph *pGraph;
} FILTER_INFO;
/* ActiveMovie sample property flags */
enum tagAM_SAMPLE_PROPERTY_FLAGS {
AM_SAMPLE_SPLICEPOINT = 0x00000001,
AM_SAMPLE_PREROLL = 0x00000002,
AM_SAMPLE_DATADISCONTINUITY = 0x00000004,
AM_SAMPLE_TYPECHANGED = 0x00000008,
AM_SAMPLE_TIMEVALID = 0x00000010,
AM_SAMPLE_TIMEDISCONTINUITY = 0x00000040,
AM_SAMPLE_FLUSH_ON_PAUSE = 0x00000080,
AM_SAMPLE_STOPVALID = 0x00000100,
AM_SAMPLE_ENDOFSTREAM = 0x00000200,
AM_STREAM_MEDIA = 0,
AM_STREAM_CONTROL = 1
};
/* ActiveMovie sample properties */
typedef struct tagAM_SAMPLE2_PROPERTIES {
DWORD cbData;
DWORD dwTypeSpecificFlags;
DWORD dwSampleFlags;
LONG lActual;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStreamId;
AM_MEDIA_TYPE *pMediaType;
BYTE *pbBuffer;
LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;
/* ActiveMovie seeking flags */
typedef enum AM_SEEKING_SeekingFlags {
AM_SEEKING_NoPositioning = 0x00000000,
AM_SEEKING_AbsolutePositioning = 0x00000001,
AM_SEEKING_RelativePositioning = 0x00000002,
AM_SEEKING_IncrementalPositioning = 0x00000003,
AM_SEEKING_PositioningBitsMask = 0x00000003,
AM_SEEKING_SeekToKeyFrame = 0x00000004,
AM_SEEKING_ReturnTime = 0x00000008,
AM_SEEKING_Segment = 0x00000010,
AM_SEEKING_NoFlush = 0x00000020
} AM_SEEKING_SEEKING_FLAGS;
/* ActiveMovie seeking capabilities */
typedef enum AM_SEEKING_SeekingCapabilities {
AM_SEEKING_CanSeekAbsolute = 0x00000001,
AM_SEEKING_CanSeekForwards = 0x00000002,
AM_SEEKING_CanSeekBackwards = 0x00000004,
AM_SEEKING_CanGetCurrentPos = 0x00000008,
AM_SEEKING_CanGetStopPos = 0x00000010,
AM_SEEKING_CanGetDuration = 0x00000020,
AM_SEEKING_CanPlayBackwards = 0x00000040,
AM_SEEKING_CanDoSegments = 0x00000080,
AM_SEEKING_Source = 0x00000100
} AM_SEEKING_SEEKING_CAPABILITIES;
/* ActiveMovie media event flags */
enum tagAM_MEDIAEVENT_FLAGS {
AM_MEDIAEVENT_NONOTIFY = 0x00000001
};
/* Registered filter */
typedef struct REGFILTER {
CLSID Clsid;
LPWSTR Name;
} REGFILTER;
/* Merit values */
enum {
MERIT_PREFERRED = 0x00800000,
MERIT_NORMAL = 0x00600000,
MERIT_UNLIKELY = 0x00400000,
MERIT_DO_NOT_USE = 0x00200000,
MERIT_SW_COMPRESSOR = 0x00100000,
MERIT_HW_COMPRESSOR = 0x00100050
};
/* Registered pin types */
typedef struct REGPINTYPES {
const CLSID *clsMajorType;
const CLSID *clsMinorType;
} REGPINTYPES;
/* Registered filter pins */
typedef struct REGFILTERPINS {
LPWSTR strName;
BOOL bRendered;
BOOL bOutput;
BOOL bZero;
BOOL bMany;
const CLSID *clsConnectsToFilter;
const WCHAR *strConnectsToPin;
UINT nMediaTypes;
const REGPINTYPES *lpMediaType;
} REGFILTERPINS;
/* Registered pin medium */
typedef struct REGPINMEDIUM {
CLSID clsMedium;
DWORD dw1;
DWORD dw2;
} REGPINMEDIUM;
/* Registered filter pin flags */
enum {
REG_PINFLAG_B_ZERO = 0x00000001,
REG_PINFLAG_B_RENDERER = 0x00000002,
REG_PINFLAG_B_MANY = 0x00000004,
REG_PINFLAG_B_OUTPUT = 0x00000008
};
/* Registered filter pins (version 2) */
typedef struct REGFILTERPINS2 {
DWORD dwFlags;
UINT cInstances;
UINT nMediaTypes;
const REGPINTYPES *lpMediaType;
UINT nMediums;
const REGPINMEDIUM *lpMedium;
const CLSID *clsPinCategory;
} REGFILTERPINS2;
/* Registered filter (version 2) */
typedef struct REGFILTER2 {
DWORD dwVersion;
DWORD dwMerit;
union {
struct {
ULONG cPins;
const REGFILTERPINS *rgPins;
};
struct {
ULONG cPins2;
const REGFILTERPINS2 *rgPins2;
};
};
} REGFILTER2;
/* Quality message types */
typedef enum tagQualityMessageType {
Famine = 0,
Flood = 1
} QualityMessageType;
/* Quality */
typedef struct tagQuality {
QualityMessageType Type;
long Proportion;
REFERENCE_TIME Late;
REFERENCE_TIME TimeStamp;
} Quality;
/* Color key types */
enum {
CK_NOCOLORKEY = 0x00000000,
CK_INDEX = 0x00000001,
CK_RGB = 0x00000002
};
/* Color key */
typedef struct tagCOLORKEY {
DWORD KeyType;
DWORD PaletteIndex;
COLORREF LowColorValue;
COLORREF HighColorValue;
} COLORKEY;
/* Advise flags */
enum {
ADVISE_NONE = 0x00000000,
ADVISE_CLIPPING = 0x00000001,
ADVISE_PALETTE = 0x00000002,
ADVISE_COLORKEY = 0x00000004,
ADVISE_POSITION = 0x00000008,
ADVISE_DISPLAY_CHANGE = 0x00000010
};
#define ADVISE_ALL \
(ADVISE_CLIPPING | ADVISE_PALETTE | ADVISE_COLORREY | ADVISE_POSITION)
#define ADVISE_ALL2 \
(ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
/* ActiveMovie file sink flags */
typedef enum AM_FILESINK_FLAGS {
AM_FILE_OVERWRITE = 0x00000001
} AM_FILESINK_FLAGS;
/* ActiveMovie extended render flags */
enum _AM_RENDEREXFLAGS {
AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x00000001
};
/* ActiveMovie stream information flags */
typedef enum AM_STREAM_INFO_FLAGS {
AM_STREAM_INFO_START_DEFINED = 0x00000001,
AM_STREAM_INFO_STOP_DEFINED = 0x00000002,
AM_STREAM_INFO_DISCARDING = 0x00000004,
AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010
} AM_STREAM_INFO_FLAGS;
/* ActiveMovie stream information */
typedef struct AM_STREAM_INFO {
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
DWORD dwStartCookie;
DWORD dwStopCookie;
DWORD dwFlags;
} AM_STREAM_INFO;
/* Video stream configuration capabilities */
typedef struct _VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} VIDEO_STREAM_CONFIG_CAPS;
/* Audio stream configuration capabilities */
typedef struct _AUDIO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG MinimumChannels;
ULONG MaximumChannels;
ULONG ChannelsGranularity;
ULONG MinimumBitsPerSample;
ULONG MaximumBitsPerSample;
ULONG BitsPerSampleGranularity;
ULONG MinimumSampleFrequency;
ULONG MaximumSampleFrequency;
ULONG SampleFrequencyGranularity;
} AUDIO_STREAM_CONFIG_CAPS;
/* Interleaving modes */
typedef enum InterleavingMode {
INTERLEAVE_NONE = 0,
INTERLEAVE_CAPTURE = 1,
INTERLEAVE_FULL = 2,
INTERLEAVE_NONE_BUFFERED = 3
} InterleavingMode;
/* Compression capabilities */
typedef enum CompressionCaps {
CompressionCaps_CanQuality = 0x00000001,
CompressionCaps_CanCrunch = 0x00000002,
CompressionCaps_CanKeyFrame = 0x00000004,
CompressionCaps_CanBFrame = 0x00000008,
CompressionCaps_CanWindow = 0x00000010
} CompressionCaps;
/* Video for Windows capture dialogs */
typedef enum VfwCaptureDialogs {
VfwCaptureDialog_Source = 0x00000001,
VfwCaptureDialog_Format = 0x00000002,
VfwCaptureDialog_Display = 0x00000004
} VfwCaptureDialogs;
/* Video for Windows compression dialogs */
typedef enum VfwCompressDialogs {
VfwCompressDialog_Config = 0x00000001,
VfwCompressDialog_About = 0x00000002,
VfwCompressDialog_QueryConfig = 0x00000004,
VfwCompressDialog_QueryAbout = 0x00000008
} VfwCompressDialog;
/* Analog video standards */
typedef enum tagAnalogVideoStandard {
AnalogVideo_None = 0x00000000,
AnalogVideo_NTSC_M = 0x00000001,
AnalogVideo_NTSC_M_J = 0x00000002,
AnalogVideo_NTSC_433 = 0x00000004,
AnalogVideo_PAL_B = 0x00000010,
AnalogVideo_PAL_D = 0x00000020,
AnalogVideo_PAL_G = 0x00000040,
AnalogVideo_PAL_H = 0x00000080,
AnalogVideo_PAL_I = 0x00000100,
AnalogVideo_PAL_M = 0x00000200,
AnalogVideo_PAL_N = 0x00000400,
AnalogVideo_PAL_60 = 0x00000800,
AnalogVideo_SECAM_B = 0x00001000,
AnalogVideo_SECAM_D = 0x00002000,
AnalogVideo_SECAM_G = 0x00004000,
AnalogVideo_SECAM_H = 0x00008000,
AnalogVideo_SECAM_K = 0x00010000,
AnalogVideo_SECAM_K1 = 0x00020000,
AnalogVideo_SECAM_L = 0x00040000,
AnalogVideo_SECAM_L1 = 0x00080000,
AnalogVideo_PAL_N_COMBO = 0x00100000,
AnalogVideoMask_MCE_NTSC = AnalogVideo_NTSC_M | AnalogVideo_NTSC_M_J |
AnalogVideo_PAL_M | AnalogVideo_PAL_N | AnalogVideo_PAL_60 |
AnalogVideo_PAL_N_COMBO,
AnalogVideoMask_MCE_PAL = AnalogVideo_PAL_B | AnalogVideo_PAL_D |
AnalogVideo_PAL_G | AnalogVideo_PAL_H | AnalogVideo_PAL_I,
AnalogVideoMask_MCE_SECAM = AnalogVideo_SECAM_B | AnalogVideo_SECAM_D |
AnalogVideo_SECAM_G | AnalogVideo_SECAM_H | AnalogVideo_SECAM_K |
AnalogVideo_SECAM_K1 | AnalogVideo_SECAM_L | AnalogVideo_SECAM_L1
} AnalogVideoStandard;
#define AnalogVideo_NTSC_Mask 0x00000007
#define AnalogVideo_PAL_Mask 0x00100FF0
#define AnalogVideo_SECAM_Mask 0x000FF000
/* Tuner input types */
typedef enum tagTunerInputType {
TunerInputCable = 0,
TunerInputAntenna = 1
} TunerInputType;
/* Video copy protection types */
typedef enum VideoCopyProtectionType {
VideoCopyProtectionMacrovisionBasic = 0,
VideoCopyProtectionMacrovisionCBI = 1
} VideoCopyProtectionType;
/* Physical connector types */
typedef enum tagPhysicalConnectorType {
PhysConn_Video_Tuner = 0x0001,
PhysConn_Video_Composite = 0x0002,
PhysConn_Video_SVideo = 0x0003,
PhysConn_Video_RGB = 0x0004,
PhysConn_Video_YRYBY = 0x0005,
PhysConn_Video_SerialDigital = 0x0006,
PhysConn_Video_ParallelDigital = 0x0007,
PhysConn_Video_SCSI = 0x0008,
PhysConn_Video_AUX = 0x0009,
PhysConn_Video_1394 = 0x000A,
PhysConn_Video_USB = 0x000B,
PhysConn_Video_VideoDecoder = 0x000C,
PhysConn_Video_VideoEncoder = 0x000D,
PhysConn_Video_SCART = 0x000E,
PhysConn_Video_Black = 0x000F,
PhysConn_Audio_Tuner = 0x1000,
PhysConn_Audio_Line = 0x1001,
PhysConn_Audio_Mic = 0x1002,
PhysConn_Audio_AESDigital = 0x1003,
PhysConn_Audio_SPDIFDigital = 0x1004,
PhysConn_Audio_SCSI = 0x1005,
PhysConn_Audio_AUX = 0x1006,
PhysConn_Audio_1394 = 0x1007,
PhysConn_Audio_USB = 0x1008,
PhysConn_Audio_AudioDecoder = 0x1009
} PhysicalConnectorType;
/* Video procedure amplification properties */
typedef enum tagVideoProcAmpProperty {
VideoProcAmp_Brightness = 0,
VideoProcAmp_Contrast = 1,
VideoProcAmp_Hue = 2,
VideoProcAmp_Saturation = 3,
VideoProcAmp_Sharpness = 4,
VideoProcAmp_Gamma = 5,
VideoProcAmp_ColorEnable = 6,
VideoProcAmp_WhiteBalance = 7,
VideoProcAmp_BacklightCompensation = 8,
VideoProcAmp_Gain = 9
} VideoProcAmpProperty;
/* Video procedure amplification flags */
typedef enum tagVideoProcAmpFlags {
VideoProcAmp_Flags_Auto = 0x00000001,
VideoProcAmp_Flags_Manual = 0x00000002
} VideoProcAmpFlags;
/* Camera control properties */
typedef enum tagCameraControlProperty {
CameraControl_Pan = 0,
CameraControl_Tilt = 1,
CameraControl_Roll = 2,
CameraControl_Zoom = 3,
CameraControl_Exposure = 4,
CameraControl_Iris = 5,
CameraControl_Focus = 6
} CameraControlProperty;
/* Camera control flags */
typedef enum tagCameraControlFlags {
CameraControl_Flags_Auto = 0x00000001,
CameraControl_Flags_Manual = 0x00000002
} CameraControlFlags;
/* Video control flags */
typedef enum tagVideoControlFlags {
VideoControlFlags_FlipHorizontal = 0x00000001,
VideoControlFlags_FlipVertical = 0x00000002,
VideoControlFlags_ExternalTriggerEnable = 0x00000004,
VideoControlFlags_Trigger = 0x00000008
} VideoControlFlags;
/* ActiveMovie tuner subchannels */
typedef enum tagAMTunerSubchannel {
AMTUNER_SUBCHAN_NO_TUNE = -2,
AMTUNER_SUBCHAN_DEFAULT = -1
} AMTunerSubchannel;
/* ActiveMovie tuner signal strengths */
typedef enum tagAMTunerSignalStrength {
AMTUNER_HASNOSIGNALSTRENGTH = -1,
AMTUNER_NOSIGNAL = 0,
AMTUNER_SIGNALPRESENT = 1
} AMTunerSignalStrength;
/* ActiveMovie tuner mode types */
typedef enum tagAMTunerModeType {
AMTUNER_MODE_DEFAULT = 0x00000000,
AMTUNER_MODE_TV = 0x00000001,
AMTUNER_MODE_FM_RADIO = 0x00000002,
AMTUNER_MODE_AM_RADIO = 0x00000004,
AMTUNER_MODE_DSS = 0x00000008
} AMTunerModeType;
/* ActiveMovie tuner event types */
typedef enum tagAMTunerEventType {
AMTUNER_EVENT_CHANGED = 0x00000001
} AMTunerEventType;
/* TV audio modes */
typedef enum tagTVAudioMode {
AMTVAUDIO_MODE_MONO = 0x00000001,
AMTVAUDIO_MODE_STEREO = 0x00000002,
AMTVAUDIO_MODE_LANG_A = 0x00000010,
AMTVAUDIO_MODE_LANG_B = 0x00000020,
AMTVAUDIO_MODE_LANG_C = 0x00000040,
AMTVAUDIO_PRESET_STEREO = 0x00000200,
AMTVAUDIO_PRESET_LANG_A = 0x00001000,
AMTVAUDIO_PRESET_LANG_B = 0x00002000,
AMTVAUDIO_PRESET_LANG_C = 0x00004000
} TVAudioMode;
/* ActiveMovie TV audio event types */
typedef enum tagAMTVAudioEventType {
AMTVAUDIO_EVENT_CHANGED = 0x00000001
} AMTVAudioEventType;
/* ActiveMovie property pins */
typedef enum AMPROPERTY_PIN {
AMPROPERTY_PIN_CATEGORY = 0,
AMPROPERTY_PIN_MEDIUM = 1
} AMPROPERTY_PIN;
#ifndef TIMECODE_DEFINED
#define TIMECODE_DEFINED
/* Time code */
typedef union _timecode {
struct {
WORD wFrameRate;
WORD wFrameFract;
DWORD dwFrames;
};
DWORDLONG qw;
} TIMECODE;
typedef TIMECODE *PTIMECODE;
/* Time code sample */
typedef struct tagTIMECODE_SAMPLE {
LONGLONG qwTick;
TIMECODE timecode;
DWORD dwUser;
DWORD dwFlags;
} TIMECODE_SAMPLE;
typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
#endif /* TIMECODE_DEFINED */
/* IAMStreamSelection::Info() flags */
enum _AMSTREAMSELECTINFOFLAGS {
AMSTREAMSELECTINFO_ENABLED = 0x00000001,
AMSTREAMSELECTINFO_EXCLUSIVE = 0x00000002
};
/* IAMStreamSelection::Enable() flags */
enum _AMSTREAMSELECTENABLEFLAGS {
AMSTREAMSELECTENABLE_ENABLE = 0x00000001,
AMSTREAMSELECTENABLE_ENABLEALL = 0x00000002
};
/* ActiveMovie resource control reserve flags */
enum _ASRESCTL_RESERVEFLAGS {
AMRESCTL_RESERVEFLAGS_RESERVE = 0x00000000,
AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x00000001
};
/* ActiveMovie filter miscellaneous flags */
enum _AM_FILTER_MISC_FLAGS {
AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x00000001,
AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x00000002
} AM_FILTER_MISC_FLAGS;
/* Decimation usages */
typedef enum _DECIMATION_USAGE {
DECIMATION_LEGACY = 0,
DECIMATION_USE_DECODER_ONLY = 1,
DECIMATION_USE_VIDEOPORT_ONLY = 2,
DECIMATION_USE_OVERLAY_ONLY = 3,
DECIMATION_DEFAULT = 4
} DECIMATION_USAGE;
/* ActiveMovie push source flags */
enum _AM_PUSHSOURCE_FLAGS {
AM_PUSHSOURCECAPS_INTERNAL_RM = 0x00000001,
AM_PUSHSOURCECAPS_NOT_LIVE = 0x00000002,
AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x00000004,
AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x00010000,
AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x00020000
};
/* Digital video information */
typedef struct DVINFO {
DWORD dwDVAAuxSrc;
DWORD dwDVAAuxCtl;
DWORD dwDVAAuxSrc1;
DWORD dwDVAAuxCtl1;
DWORD dwDVVAuxSrc;
DWORD dwDVVAuxCtl;
DWORD dwDVReserved[2];
} DVINFO;
typedef DVINFO *PDVINFO;
/* Digital video encoder resolutions */
enum _DVENCODERRESOLUTION {
DVENCODERRESOLUTION_720x480 = 2012,
DVENCODERRESOLUTION_360x240 = 2013,
DVENCODERRESOLUTION_180x120 = 2014,
DVENCODERRESOLUTION_88x60 = 2015
};
/* Digital video encoder video formats */
enum _DVENCODERVIDEOFORMAT {
DVENCODERVIDEOFORMAT_NTSC = 2000,
DVENCODERVIDEOFORMAT_PAL = 2001
};
/* Digital video encoder formats */
enum _DVENCODERFORMAT {
DVENCODERFORMAT_DVSD = 2007,
DVENCODERFORMAT_DVHD = 2008,
DVENCODERFORMAT_DVSL = 2009
};
/* Digital video decoder resolutions */
enum _DVDECODERRESOLUTION {
DVDECODERRESOLUTION_720x480 = 1000,
DVDECODERRESOLUTION_360x420 = 1001,
DVDECODERRESOLUTION_180x120 = 1002,
DVDECODERRESOLUTION_88x60 = 1003
};
/* Digital video resolution */
enum _DVRESOLUTION {
DVRESOLUTION_FULL = 1000,
DVRESOLUTION_HALF = 1001,
DVRESOLUTION_QUARTER = 1002,
DVRESOLUTION_DC = 1003
};
/* ActiveMovie audio renderer statistics parameters */
enum _AM_AUDIO_RENDERER_STAT_PARAM {
AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
AM_AUDREND_STAT_PARAM_SLAVE_MODE = 2,
AM_AUDREND_STAT_PARAM_SILENCE_DUR = 3,
AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR = 4,
AM_AUDREND_STAT_PARAM_DISCONTINUITIES = 5,
AM_AUDREND_STAT_PARAM_SLAVE_RATE = 6,
AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR = 7,
AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR = 8,
AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR = 9,
AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR = 10,
AM_AUDREND_STAT_PARAM_BUFFERFULLNESS = 11,
AM_AUDREND_STAT_PARAM_JITTER = 12
};
/* ActiveMovie interface search flags */
enum _AM_INTF_SEARCH_FLAGS {
AM_INTF_SEARCH_INPUT_PIN = 0x00000001,
AM_INTF_SEARCH_OUTPUT_PIN = 0x00000002,
AM_INTF_SEARCH_FILTER = 0x00000004
};
/* ActiveMovie overlay effects */
enum AMOVERLAYFX {
AMOVERFX_NOFX = 0x00000000,
AMOVERFX_MIRRORLEFTRIGHT = 0x00000002,
AMOVERFX_MIRRORUPDOWN = 0x00000004,
AMOVERFX_DEINTERLACE = 0x00000008
};
/* Stream identifier map */
typedef struct STREAM_ID_MAP {
ULONG stream_id;
DWORD dwMediaSampleContent;
ULONG ulSubstreamFilterValue;
int iDataOffset;
} STREAM_ID_MAP;
/* Codec API event data */
struct CodecAPIEventData {
GUID guid;
DWORD dataLength;
DWORD reserved[3];
};
/* Video encoder bit rate modes */
typedef enum VIDEOENCODER_BITRATE_MODE {
ConstantBitRate = 0,
VariableBitRateAverage = 1,
VariableBitRatePeak = 2
} VIDEOENCODER_BITRATE_MODE;
/* ActiveMovie COPP signature */
typedef struct _AMCOPPSignature {
BYTE Signature[256];
} AMCOPPSignature;
/* ActiveMovie COPP command */
typedef struct _AMCOPPCommand {
GUID macKDI;
GUID guidCommandID;
DWORD dwSequence;
DWORD cbSizeData;
BYTE CommandData[4056];
} AMCOPPCommand;
typedef AMCOPPCommand *LPAMCOPPCommand;
/* ActiveMovie COPP status input */
typedef struct _AMCOPPStatusInput {
GUID rApp;
GUID guidStatusRequestID;
DWORD dwSequence;
DWORD cbSizeData;
BYTE StatusData[4056];
} AMCOPPStatusInput;
typedef AMCOPPStatusInput *LPAMCOPPStatusInput;
/* ActiveMovie COPP status output */
typedef struct _AMCOPPStatusOutput {
GUID macKDI;
DWORD cbSizeData;
BYTE COPPStatus[4076];
} AMCOPPStatusOutput;
typedef AMCOPPStatusOutput *LPAMCOPPStatusOutput;
/* DVD domains */
typedef enum tagDVD_DOMAIN {
DVD_DOMAIN_FirstPlay = 1,
DVD_DOMAIN_VideoManagerMenu = 2,
DVD_DOMAIN_VideoTitleSetMenu = 3,
DVD_DOMAIN_Title = 4,
DVD_DOMAIN_Stop = 5
} DVD_DOMAIN;
/* DVD menu identifiers */
typedef enum tagDVD_MENU_ID {
DVD_MENU_Title = 2,
DVD_MENU_Root = 3,
DVD_MENU_Subpicture = 4,
DVD_MENU_Audio = 5,
DVD_MENU_Angle = 6,
DVD_MENU_Chapter = 7
} DVD_MENU_ID;
/* DVD disc sides */
typedef enum tagDVD_DISC_SIDE {
DVD_SIDE_A = 1,
DVD_SIDE_B = 2
} DVD_DISC_SIDE;
/* DVD preferred display modes */
typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
DISPLAY_CONTENT_DEFAULT = 0,
DISPLAY_16x9 = 1,
DISPLAY_4x3_PANSCAN_PREFERRED = 2,
DISPLAY_4x3_LETTERBOX_PREFERRED = 3
} DVD_PREFERRED_DISPLAY_MODE;
/* DVD attribute */
typedef struct tagDVD_ATR {
ULONG ulCAT;
BYTE pbATRI[768];
} DVD_ATR;
typedef BYTE DVD_VideoATR[2];
typedef BYTE DVD_AudioATR[8];
typedef BYTE DVD_SubpictureATR[6];
/* DVD frame rates */
typedef enum tagDVD_FRAMERATE {
DVD_FPS_25 = 1,
DVD_FPS_30NonDrop = 3
} DVD_FRAMERATE;
/* DVD time code */
typedef struct tagDVD_TIMECODE {
ULONG Hours1 : 4;
ULONG Hours10 : 4;
ULONG Minutes1 : 4;
ULONG Minutes10 : 4;
ULONG Seconds1 : 4;
ULONG Seconds10 : 4;
ULONG Frames1 : 4;
ULONG Frames10 : 2;
ULONG FrameRateCode : 2;
} DVD_TIMECODE;
/* DVD navigation command types */
typedef enum tagDVD_NavCmdType {
DVD_NavCmdType_Pre = 1,
DVD_NavCmdType_Post = 2,
DVD_NavCmdType_Cell = 3,
DVD_NavCmdType_Button = 4
} DVD_NavCmdType;
/* DVD time code flags */
typedef enum tagDVD_TIMECODE_FLAGS {
DVD_TC_FLAG_25fps = 0x00000001,
DVD_TC_FLAG_30fps = 0x00000002,
DVD_TC_FLAG_DropFrame = 0x00000004,
DVD_TC_FLAG_Interpolated = 0x00000008
} DVD_TIMECODE_FLAGS;
/* DVD HMSF time code */
typedef struct tagDVD_HMSF_TIMECODE {
BYTE bHours;
BYTE bMinutes;
BYTE bSeconds;
BYTE bFrames;
} DVD_HMSF_TIMECODE;
/* DVD playback location (version 2) */
typedef struct tagDVD_PLAYBACK_LOCATION2 {
ULONG TitleNum;
ULONG ChapterNum;
DVD_HMSF_TIMECODE TimeCode;
ULONG TimeCodeFlags;
} DVD_PLAYBACK_LOCATION2;
/* DVD playback location */
typedef struct tagDVD_PLAYBACK_LOCATION {
ULONG TitleNum;
ULONG ChapterNum;
ULONG TimeCode;
} DVD_PLAYBACK_LOCATION;
/* Valid UOP flags */
typedef enum {
UOP_FLAG_Play_Title_Or_AtTime = 0x00000001,
UOP_FLAG_Play_Chapter = 0x00000002,
UOP_FLAG_Play_Title = 0x00000004,
UOP_FLAG_Stop = 0x00000008,
UOP_FLAG_ReturnFromSubMenu = 0x00000010,
UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020,
UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040,
UOP_FLAG_PlayNext_Chapter = 0x00000080,
UOP_FLAG_Play_Forwards = 0x00000100,
UOP_FLAG_Play_Backwards = 0x00000200,
UOP_FLAG_ShowMenu_Title = 0x00000400,
UOP_FLAG_ShowMenu_Root = 0x00000800,
UOP_FLAG_ShowMenu_SubPic = 0x00001000,
UOP_FLAG_ShowMenu_Audio = 0x00002000,
UOP_FLAG_ShowMenu_Angle = 0x00004000,
UOP_FLAG_ShowMenu_Chapter = 0x00008000,
UOP_FLAG_Resume = 0x00010000,
UOP_FLAG_Select_Or_Activate_Button = 0x00020000,
UOP_FLAG_Still_Off = 0x00040000,
UOP_FLAG_Pause_On = 0x00080000,
UOP_FLAG_Select_Audio_Stream = 0x00100000,
UOP_FLAG_Select_SubPic_Stream = 0x00200000,
UOP_FLAG_Select_Angle = 0x00400000,
UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000,
UOP_FLAG_Select_Video_Mode_Preference = 0x01000000
} VALID_UOP_FLAG;
/* DVD command flags */
typedef enum {
DVD_CMD_FLAG_None = 0x00000000,
DVD_CMD_FLAG_Flush = 0x00000001,
DVD_CMD_FLAG_SendEvents = 0x00000002,
DVD_CMD_FLAG_Block = 0x00000004,
DVD_CMD_FLAG_StartWhenRendered = 0x00000008,
DVD_CMD_FLAG_EndAfterRendered = 0x00000010
} DVD_CMD_FLAGS;
/* IDVDControl2::SetOption() flags */
typedef enum {
DVD_ResetOnStop = 1,
DVD_NotifyParentalLevelChange = 2,
DVD_HMSF_TimeCodeEvents = 3,
DVD_AudioDuringFFwdRew = 4,
DVD_EnableNonblockingAPIs = 5,
DVD_CacheSizeInMB = 6,
DVD_EnablePortableBookmarks = 7,
DVD_EnableExtendedCopyProtectErrors = 8,
DVD_NotifyPositionChange = 9,
DVD_IncreaseOutputControl = 10,
DVD_EnableStreaming = 11,
DVD_EnableESOutput = 12,
DVD_EnableTitleLength = 13,
DVD_DisableStillThrottle = 14,
DVD_EnableLoggingEvents = 15,
DVD_MaxReadBurstInKB = 16,
DVD_ReadBurstPeriodInMS = 17
} DVD_OPTION_FLAG;
/* DVD relative button */
typedef enum {
DVD_Relative_Upper = 1,
DVD_Relative_Lower = 2,
DVD_Relative_Left = 3,
DVD_Relative_Right = 4
} DVD_RELATIVE_BUTTON;
/* DVD parental level */
typedef enum tagDVD_PARENTAL_LEVEL {
DVD_PARENTAL_LEVEL_8 = 0x8000,
DVD_PARENTAL_LEVEL_7 = 0x4000,
DVD_PARENTAL_LEVEL_6 = 0x2000,
DVD_PARENTAL_LEVEL_5 = 0x1000,
DVD_PARENTAL_LEVEL_4 = 0x0800,
DVD_PARENTAL_LEVEL_3 = 0x0400,
DVD_PARENTAL_LEVEL_2 = 0x0200,
DVD_PARENTAL_LEVEL_1 = 0x0100
} DVD_PARENTAL_LEVEL;
/* DVD audio language extensions */
typedef enum tagDVD_AUDIO_LANG_EXT {
DVD_AUD_EXT_NotSpecified = 0,
DVD_AUD_EXT_Captions = 1,
DVD_AUD_EXT_VisuallyImpaired = 2,
DVD_AUD_EXT_DirectorComments1 = 3,
DVD_AUD_EXT_DirectorComments2 = 4
} DVD_AUDIO_LANG_EXT;
/* DVD subpicture language extensions */
typedef enum tagDVD_SUBPICTURE_LANG_EXT {
DVD_SP_EXT_NotSpecified = 0,
DVD_SP_EXT_Caption_Normal = 1,
DVD_SP_EXT_Caption_Big = 2,
DVD_SP_EXT_Caption_Children = 3,
DVD_SP_EXT_CC_Normal = 5,
DVD_SP_EXT_CC_Big = 6,
DVD_SP_EXT_CC_Children = 7,
DVD_SP_EXT_Forced = 9,
DVD_SP_EXT_DirectorComments_Normal = 13,
DVD_SP_EXT_DirectorComments_Big = 14,
DVD_SP_EXT_DirectorComments_Children = 15
} DVD_SUBPICTURE_LANG_EXT;
/* DVD audio application modes */
typedef enum tagDVD_AUDIO_APPMODE {
DVD_AudioMode_None = 0,
DVD_AudioMode_Karaoke = 1,
DVD_AudioMode_Surround = 2,
DVD_AudioMode_Other = 3
} DVD_AUDIO_APPMODE;
/* DVD audio format */
typedef enum tagDVD_AUDIO_FORMAT {
DVD_AudioFormat_AC3 = 0,
DVD_AudioFormat_MPEG1 = 1,
DVD_AudioFormat_MPEG1_DRC = 2,
DVD_AudioFormat_MPEG2 = 3,
DVD_AudioFormat_MPEG2_DRC = 4,
DVD_AudioFormat_LPCM = 5,
DVD_AudioFormat_DTS = 6,
DVD_AudioFormat_SDDS = 7,
DVD_AudioFormat_Other = 8
} DVD_AUDIO_FORMAT;
/* SelectKaraokeAudioPresentationMode() flags */
typedef enum tagDVD_KARAOKE_DOWNMIX {
DVD_Mix_0to0 = 0x0001,
DVD_Mix_1to0 = 0x0002,
DVD_Mix_2to0 = 0x0004,
DVD_Mix_3to0 = 0x0008,
DVD_Mix_4to0 = 0x0010,
DVD_Mix_Lto0 = 0x0020,
DVD_Mix_Rto0 = 0x0040,
DVD_Mix_0to1 = 0x0100,
DVD_Mix_1to1 = 0x0200,
DVD_Mix_2to1 = 0x0400,
DVD_Mix_3to1 = 0x0800,
DVD_Mix_4to1 = 0x1000,
DVD_Mix_Lto1 = 0x2000,
DVD_Mix_Rto1 = 0x4000
} DVD_KARAOKE_DOWNMIX;
/* DVD audio attributes */
typedef struct tagDVD_AudioAttributes {
DVD_AUDIO_APPMODE AppMode;
BYTE AppModeData;
DVD_AUDIO_FORMAT AudioFormat;
LCID Language;
DVD_AUDIO_LANG_EXT LanguageExtension;
BOOL fHasMultichannelInfo;
DWORD dwFrequency;
BYTE bQuantization;
BYTE bNumberOfChannels;
DWORD dwReserved[2];
} DVD_AudioAttributes;
/* DVD MUA mixing information */
typedef struct tagDVD_MUA_MixingInfo {
BOOL fMixTo0;
BOOL fMixTo1;
BOOL fMix0InPhase;
BOOL fMix1InPhase;
DWORD dwSpeakerPosition;
} DVD_MUA_MixingInfo;
/* DVD MUA coefficient */
typedef struct tagDVD_MUA_Coeff {
double log2_alpha;
double log2_beta;
} DVD_MUA_Coeff;
/* DVD multichannel audio attributes */
typedef struct tagDVD_MultichannelAudioAttributes {
DVD_MUA_MixingInfo Info[8];
DVD_MUA_Coeff Coeff[8];
} DVD_MultichannelAudioAttributes;
/* DVD karaoke contents */
typedef enum tagDVD_KARAOKE_CONTENTS {
DVD_Karaoke_GuideVocal1 = 0x0001,
DVD_Karaoke_GuideVocal2 = 0x0002,
DVD_Karaoke_GuideMelody1 = 0x0004,
DVD_Karaoke_GuideMelody2 = 0x0008,
DVD_Karaoke_GuideMelodyA = 0x0010,
DVD_Karaoke_GuideMelodyB = 0x0020,
DVD_Karaoke_SoundEffectA = 0x0040,
DVD_Karaoke_SoundEffectB = 0x0080
} DVD_KARAOKE_CONTENTS;
/* DVD karaoke assignments */
typedef enum tagDVD_KARAOKE_ASSIGNMENT {
DVD_Assignment_reserved0 = 0,
DVD_Assignment_reserved1 = 1,
DVD_Assignment_LR = 2,
DVD_Assignment_LRM = 3,
DVD_Assignment_LR1 = 4,
DVD_Assignment_LRM1 = 5,
DVD_Assignment_LR12 = 6,
DVD_Assignment_LRM12 = 7
} DVD_KARAOKE_ASSIGNMENT;
/* DVD karaoke attributes */
typedef struct tagDVD_KaraokeAttributes {
BYTE bVersion;
BOOL fMasterOfCeremoniesInGuideVocal1;
BOOL fDuet;
DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
WORD wChannelContents[8];
} DVD_KaraokeAttributes;
/* DVD video compression */
typedef enum tagDVD_VIDEO_COMPRESSION {
DVD_VideoCompression_Other = 0,
DVD_VideoCompression_MPEG1 = 1,
DVD_VideoCompression_MPEG2 = 2
} DVD_VIDEO_COMPRESSION;
/* DVD video attributes */
typedef struct tagDVD_VideoAttributes {
BOOL fPanscanPermitted;
BOOL fLetterboxPermitted;
ULONG ulAspectX;
ULONG ulAspectY;
ULONG ulFrameRate;
ULONG ulFrameHeight;
DVD_VIDEO_COMPRESSION Compression;
BOOL fLine21Field1InGOP;
BOOL fLine21Field2InGOP;
ULONG ulSourceResolutionX;
ULONG ulSourceResolutionY;
BOOL fIsSourceLetterboxed;
BOOL fIsFilmMode;
} DVD_VideoAttributes;
/* DVD subpicture types */
typedef enum tagDVD_SUBPICTURE_TYPE {
DVD_SPType_NotSpecified = 0,
DVD_SPType_Language = 1,
DVD_SPType_Other = 2
} DVD_SUBPICTURE_TYPE;
/* DVD subpicture codings */
typedef enum tagDVD_SUBPICTURE_CODING {
DVD_SPCoding_RunLength = 0,
DVD_SPCoding_Extended = 1,
DVD_SPCoding_Other = 2
} DVD_SUBPICTURE_CODING;
/* DVD subpicture attributes */
typedef struct tagDVD_SubpictureAttributes {
DVD_SUBPICTURE_TYPE Type;
DVD_SUBPICTURE_CODING CodingMode;
LCID Language;
DVD_SUBPICTURE_LANG_EXT LanguageExtension;
} DVD_SubpictureAttributes;
/* DVD title application modes */
typedef enum tagDVD_TITLE_APPMODE {
DVD_AppMode_Not_Specified = 0,
DVD_AppMode_Karaoke = 1,
DVD_AppMode_Other = 3
} DVD_TITLE_APPMODE;
/* DVD title main attributes */
typedef struct tagDVD_TitleMainAttributes {
union {
DVD_TITLE_APPMODE AppMode;
DVD_HMSF_TIMECODE TitleLength;
};
DVD_VideoAttributes VideoAttributes;
ULONG ulNumberOfAudioStreams;
DVD_AudioAttributes AudioAttributes[8];
DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
ULONG ulNumberOfSubpictureStreams;
DVD_SubpictureAttributes SubpictureAttributes[32];
} DVD_TitleAttributes;
/* DVD menu attributes */
typedef struct tagDVD_MenuAttributes {
BOOL fCompatibleRegion[8];
DVD_VideoAttributes VideoAttributes;
BOOL fAudioPresent;
DVD_AudioAttributes AudioAttributes;
BOOL fSubpicturePresent;
DVD_SubpictureAttributes SubpictureAttributes;
} DVD_MenuAttributes;
/* DVD text string types */
enum DVD_TextStringType {
DVD_Struct_Volume = 0x01,
DVD_Struct_Title = 0x02,
DVD_Struct_ParentalID = 0x03,
DVD_Struct_PartOfTitle = 0x04,
DVD_Struct_Cell = 0x05,
DVD_Stream_Audio = 0x10,
DVD_Stream_Subpicture = 0x11,
DVD_Stream_Angle = 0x12,
DVD_Channel_Audio = 0x20,
DVD_General_Name = 0x30,
DVD_General_Comments = 0x31,
DVD_Title_Series = 0x38,
DVD_Title_Movie = 0x39,
DVD_Title_Video = 0x3A,
DVD_Title_Album = 0x3B,
DVD_Title_Song = 0x3C,
DVD_Title_Other = 0x3F,
DVD_Title_Sub_Series = 0x40,
DVD_Title_Sub_Movie = 0x41,
DVD_Title_Sub_Video = 0x42,
DVD_Title_Sub_Album = 0x43,
DVD_Title_Sub_Song = 0x44,
DVD_Title_Sub_Other = 0x47,
DVD_Title_Orig_Series = 0x48,
DVD_Title_Orig_Movie = 0x49,
DVD_Title_Orig_Video = 0x4A,
DVD_Title_Orig_Album = 0x4B,
DVD_Title_Orig_Song = 0x4C,
DVD_Title_Orig_Other = 0x4F,
DVD_Other_Scene = 0x50,
DVD_Other_Cut = 0x51,
DVD_Other_Take = 0x52
};
/* DVD text character sets */
enum DVD_TextCharSet {
DVD_CharSet_Unicode = 0,
DVD_CharSet_ISO646 = 1,
DVD_CharSet_JIS_Roman_Kanji = 2,
DVD_CharSet_ISO8859_1 = 3,
DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
};
/* DVD decoder capabilities */
typedef struct tagDVD_DECODER_CAPS {
DWORD dwSize;
DWORD dwAudioCaps;
double dFwdMaxRateVideo;
double dFwdMaxRateAudio;
double dFwdMaxRateSP;
double dBwdMaxRateVideo;
double dBwdMaxRateAudio;
double dBwdMaxRateSP;
DWORD dwRes1;
DWORD dwRes2;
DWORD dwRes3;
DWORD dwRes4;
} DVD_DECODER_CAPS;
/* ActiveMovie DVD graph flags */
typedef enum _AM_DVD_GRAPH_FLAGS {
AM_DVD_HWDEC_PREFER = 0x00000001,
AM_DVD_HWDEC_ONLY = 0x00000002,
AM_DVD_SWDEC_PREFER = 0x00000004,
AM_DVD_SWDEC_ONLY = 0x00000008,
AM_DVD_NOVPE = 0x00000100,
AM_DVD_DO_NOT_CLEAR = 0x00000200,
AM_DVD_VMR9_ONLY = 0x00000800,
AM_DVD_EVR_ONLY = 0x00001000,
AM_DVD_EVR_QOS = 0x00002000,
AM_DVD_ADAPT_GRAPH = 0x00004000,
AM_DVD_MASK = 0x0000FFFF
} AM_DVD_GRAPH_FLAGS;
/* ActiveMovie DVD stream flags */
typedef enum _AM_DVD_STREAM_FLAGS {
AM_DVD_STREAM_VIDEO = 0x00000001,
AM_DVD_STREAM_AUDIO = 0x00000002,
AM_DVD_STREAM_SUBPIC = 0x00000004
} AM_DVD_STREAM_FLAGS;
/* ActiveMovie DVD render status */
typedef struct {
HRESULT hrVPEStatus;
BOOL bDvdVolInvalid;
BOOL bDvdVolUnknown;
BOOL bNoLine21In;
BOOL bNoLine21Out;
int iNumStreams;
int iNumStreamsFailed;
DWORD dwFailedStreamsFlag;
} AM_DVD_RENDERSTATUS;
/* ActiveMovie overlay notification flags */
enum _AM_OVERLAY_NOTIFY_FLAGS {
AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x00000001,
AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x00000002,
AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x00000004
};
/* IPinFlowControl::Block() flags */
enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001
};
/* ActiveMovie graph configuration reconnect flags */
typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
/* Remove filter flags */
enum _REM_FILTER_FLAGS {
REMFILTERF_LEAVECONNECTED = 0x00000001
};
/* ActiveMovie filter flags */
typedef enum _AM_FILTER_FLAGS {
AM_FILTER_FLAGS_REMOVABLE = 0x00000001
} AM_FILTER_FLAGS;
/* VMR presentation flags */
typedef enum VMRPresentationFlags {
VMRSample_SyncPoint = 0x00000001,
VMRSample_Preroll = 0x00000002,
VMRSample_Discontinuity = 0x00000004,
VMRSample_TimeValid = 0x00000008,
VMRSample_SrcDstRectsValid = 0x00000010
} VMRPresentationFlags;
/* VMR presentation information */
typedef struct tagVMRPRESENTATIONINFO {
DWORD dwFlags;
LPDIRECTDRAWSURFACE7 lpSurf;
REFERENCE_TIME rtStart;
REFERENCE_TIME rtEnd;
SIZE szAspectRatio;
RECT rcSrc;
RECT rcDst;
DWORD dwTypeSpecificFlags;
DWORD dwInterlaceFlags;
} VMRPRESENTATIONINFO;
/* VMR surface allocation flags */
typedef enum VMRSurfaceAllocationFlags {
AMAP_PIXELFORMAT_VALID = 0x00000001,
AMAP_3D_TARGET = 0x00000002,
AMAP_ALLOW_SYSMEM = 0x00000004,
AMAP_FORCE_SYSMEM = 0x00000008,
AMAP_DIRECTED_FLIP = 0x00000010,
AMAP_DXVA_TARGET = 0x00000020
} VMRSurfaceAllocationFlags;
/* VMR allocation information */
typedef struct tagVMRALLOCATIONINFO {
DWORD dwFlags;
LPBITMAPINFOHEADER lpHdr;
LPDDPIXELFORMAT lpPixFmt;
SIZE szAspectRatio;
DWORD dwMinBuffers;
DWORD dwMaxBuffers;
DWORD dwInterlaceFlags;
SIZE szNativeSize;
} VMRALLOCATIONINFO;
/* VMR aspect ratio modes */
typedef enum VMR_ASPECT_RATIO_MODE {
VMR_ARMODE_NONE = 0,
VMR_ARMODE_LETTERBOX = 1
} VMR_ASPECT_RATIO_MODE;
/* VMR mixer preferences */
typedef enum VMRMixerPrefs {
MixerPref_NoDecimation = 0x00000001,
MixerPref_DecimateOutput = 0x00000002,
MixerPref_ARAdjustXorY = 0x00000004,
MixerPref_DecimateMask = 0x0000000F,
MixerPref_BiLinearFiltering = 0x00000010,
MixerPref_PointFiltering = 0x00000020,
MixerPref_FilteringMask = 0x000000F0,
MixerPref_RenderTargetRGB = 0x00000100,
MixerPref_RenderTargetYUV = 0x00001000,
MixerPref_RenderTargetYUV420 = 0x00000200,
MixerPref_RenderTargetYUV422 = 0x00000400,
MixerPref_RenderTargetYUV444 = 0x00000800,
MixerPref_RenderTargetMask = 0x0000FF00,
MixerPref_DynamicSwitchToBOB = 0x00010000,
MixerPref_DynamicDecimateBy2 = 0x00020000,
MixerPref_DynamicMask = 0x000F0000
} VMRMixerPrefs;
/* Normalized rectangle */
typedef struct _NORMALIZEDRECT {
float left;
float top;
float right;
float bottom;
} NORMALIZEDRECT;
typedef NORMALIZEDRECT *PNORMALIZEDRECT;
/* VMR GUID */
typedef struct tagVMRGUID {
GUID *pGUID;
GUID GUID;
} VMRGUID;
/* VMR monitor information */
typedef struct tagVMRMONITORINFO {
VMRGUID guid;
RECT rcMonitor;
HMONITOR hMon;
DWORD dwFlags;
wchar_t szDevice[VMRDEVICENAMELEN];
wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN];
LARGE_INTEGER liDriverVersion;
DWORD dwVendorId;
DWORD dwDeviceId;
DWORD dwSubSysId;
DWORD dwRevision;
} VMRMONITORINFO;
/* VMR render preferences */
typedef enum VMRRenderPrefs {
RenderPrefs_RestrictToInitialMonitor = 0x00000000,
RenderPrefs_ForceOffScreen = 0x00000001,
RenderPrefs_ForceOverlays = 0x00000002,
RenderPrefs_AllowOverlays = 0x00000000,
RenderPrefs_AllowOffscreen = 0x00000000,
RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008,
RenderPrefs_PreferAGPMemWhenMixing = 0x00000020,
RenderPrefs_Mask = 0x0000003F
} VMRRenderPrefs;
/* VMR modes */
typedef enum VMRMode {
VMRMode_Windowed = 0x00000001,
VMRMode_Windowless = 0x00000002,
VMRMode_Renderless = 0x00000004,
VMRMode_Mask = 0x00000007
} VMRMode;
/* Maximum number of streams */
enum {
MAX_NUMBER_OF_STREAMS = 16
};
/* VMR deinterlace preferences */
typedef enum VMRDeinterlacePrefs {
DeinterlacePref_NextBest = 0x00000001,
DeinterlacePref_BOB = 0x00000002,
DeinterlacePref_Weave = 0x00000004,
DeinterlacePref_Mask = 0x00000007
} VMRDeinterlacePrefs;
/* VMR deinterlace technologies */
typedef enum VMRDeinterlaceTech {
DeinterlaceTech_Unknown = 0x00000000,
DeinterlaceTech_BOBLineReplicate = 0x00000001,
DeinterlaceTech_BOBVerticalStretch = 0x00000002,
DeinterlaceTech_MedianFiltering = 0x00000004,
DeinterlaceTech_EdgeFiltering = 0x00000010,
DeinterlaceTech_FieldAdaptive = 0x00000020,
DeinterlaceTech_PixelAdaptive = 0x00000040,
DeinterlaceTech_MotionVectorSteered = 0x00000080
} VMRDeinterlaceTech;
/* VMR frequency */
typedef struct _VMRFrequency {
DWORD dwNumerator;
DWORD dwDenominator;
} VMRFrequency;
/* VMR video description */
typedef struct _VMRVideoDesc {
DWORD dwSize;
DWORD dwSampleWidth;
DWORD dwSampleHeight;
BOOL SingleFieldPerSample;
DWORD dwFourCC;
VMRFrequency InputSampleFreq;
VMRFrequency OutputFrameFreq;
} VMRVideoDesc;
/* VMR deinterlace capabilities */
typedef struct _VMRDeinterlaceCaps {
DWORD dwSize;
DWORD dwNumPreviousOutputFrames;
DWORD dwNumForwardRefSamples;
DWORD dwNumBackwardRefSamples;
VMRDeinterlaceTech DeinterlaceTechnology;
} VMRDeinterlaceCaps;
/* VMR alpha bitmap */
typedef struct _VMRALPHABITMAP {
DWORD dwFlags;
HDC hdc;
LPDIRECTDRAWSURFACE7 pDDS;
RECT rSrc;
NORMALIZEDRECT rDest;
FLOAT fAlpha;
COLORREF clrSrcKey;
} VMRALPHABITMAP;
typedef VMRALPHABITMAP *PVMRALPHABITMAP;
/* VMR video stream information */
typedef struct _VMRVIDEOSTREAMINFO {
LPDIRECTDRAWSURFACE7 pddsVideoSurface;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwStrmID;
FLOAT fAlpha;
DDCOLORKEY ddClrKey;
NORMALIZEDRECT rNormal;
} VMRVIDEOSTREAMINFO;
/* GUIDs */
EXTERN_C const IID IID_ICreateDevEnum;
EXTERN_C const IID IID_IPin;
EXTERN_C const IID IID_IEnumPins;
EXTERN_C const IID IID_IEnumMediaTypes;
EXTERN_C const IID IID_IFilterGraph;
EXTERN_C const IID IID_IEnumFilters;
EXTERN_C const IID IID_IMediaFilter;
EXTERN_C const IID IID_IBaseFilter;
EXTERN_C const IID IID_IReferenceClock;
EXTERN_C const IID IID_IReferenceClockTimerControl;
EXTERN_C const IID IID_IReferenceClock2;
EXTERN_C const IID IID_IMediaSample;
EXTERN_C const IID IID_IMediaSample2;
EXTERN_C const IID IID_IMediaSample2Config;
EXTERN_C const IID IID_IMemAllocator;
EXTERN_C const IID IID_IMemAllocatorCallbackTemp;
EXTERN_C const IID IID_IMemAllocatorNotifyCallbackTemp;
EXTERN_C const IID IID_IMemInputPin;
EXTERN_C const IID IID_IAMovieSetup;
EXTERN_C const IID IID_IMediaSeeking;
EXTERN_C const IID IID_IEnumRegFilters;
EXTERN_C const IID IID_IFilterMapper;
EXTERN_C const IID IID_IFilterMapper2;
EXTERN_C const IID IID_IFilterMapper3;
EXTERN_C const IID IID_IQualityControl;
EXTERN_C const IID IID_IOverlayNotify;
EXTERN_C const IID IID_IOverlayNotify2;
EXTERN_C const IID IID_IOverlay;
EXTERN_C const IID IID_IMediaEventSink;
EXTERN_C const IID IID_IFileSourceFilter;
EXTERN_C const IID IID_IFileSinkFilter;
EXTERN_C const IID IID_IFileSinkFilter2;
EXTERN_C const IID IID_IGraphBuilder;
EXTERN_C const IID IID_ICaptureGraphBuilder;
EXTERN_C const IID IID_IAMCopyCaptureFileProgress;
EXTERN_C const IID IID_ICaptureGraphBuilder2;
EXTERN_C const IID IID_IFilterGraph2;
EXTERN_C const IID IID_IFilterGraph3;
EXTERN_C const IID IID_IStreamBuilder;
EXTERN_C const IID IID_IAsyncReader;
EXTERN_C const IID IID_IGraphVersion;
EXTERN_C const IID IID_IResourceConsumer;
EXTERN_C const IID IID_IResourceManager;
EXTERN_C const IID IID_IDistributorNotify;
EXTERN_C const IID IID_IAMStreamControl;
EXTERN_C const IID IID_ISeekingPassThru;
EXTERN_C const IID IID_IAMStreamConfig;
EXTERN_C const IID IID_IConfigInterleaving;
EXTERN_C const IID IID_IConfigAviMux;
EXTERN_C const IID IID_IAMVideoCompression;
EXTERN_C const IID IID_IAMVfwCaptureDialogs;
EXTERN_C const IID IID_IAMVfwCompressDialogs;
EXTERN_C const IID IID_IAMDroppedFrames;
EXTERN_C const IID IID_IAMAudioInputMixer;
EXTERN_C const IID IID_IAMBufferNegotiation;
EXTERN_C const IID IID_IAMAnalogVideoDecoder;
EXTERN_C const IID IID_IAMVideoProcAmp;
EXTERN_C const IID IID_IAMCameraControl;
EXTERN_C const IID IID_IAMVideoControl;
EXTERN_C const IID IID_IAMCrossbar;
EXTERN_C const IID IID_IAMTuner;
EXTERN_C const IID IID_IAMTunerNotification;
EXTERN_C const IID IID_IAMTVTuner;
EXTERN_C const IID IID_IBPCSatelliteTuner;
EXTERN_C const IID IID_IAMTVAudio;
EXTERN_C const IID IID_IAMTVAudioNotification;
EXTERN_C const IID IID_IAMAnalogVideoEncoder;
EXTERN_C const IID IID_IKsPropertySet;
EXTERN_C const IID IID_IMediaPropertyBag;
EXTERN_C const IID IID_IPersistMediaPropertyBag;
EXTERN_C const IID IID_IAMPhysicalPinInfo;
EXTERN_C const IID IID_IAMExtDevice;
EXTERN_C const IID IID_IAMExtTransport;
EXTERN_C const IID IID_IAMTimecodeReader;
EXTERN_C const IID IID_IAMTimecodeGenerator;
EXTERN_C const IID IID_IAMTimecodeDisplay;
EXTERN_C const IID IID_IAMDevMemoryAllocator;
EXTERN_C const IID IID_IAMDevMemoryControl;
EXTERN_C const IID IID_IAMStreamSelect;
EXTERN_C const IID IID_IAMResourceControl;
EXTERN_C const IID IID_IAMClockAdjust;
EXTERN_C const IID IID_IAMFilterMiscFlags;
EXTERN_C const IID IID_IDrawVideoImage;
EXTERN_C const IID IID_IDecimateVideoImage;
EXTERN_C const IID IID_IAMVideoDecimationProperties;
EXTERN_C const IID IID_IVideoFrameStep;
EXTERN_C const IID IID_IAMLatency;
EXTERN_C const IID IID_IAMPushSource;
EXTERN_C const IID IID_IAMDeviceRemoval;
EXTERN_C const IID IID_IDVEnc;
EXTERN_C const IID IID_IIPDVDec;
EXTERN_C const IID IID_IDVRGB219;
EXTERN_C const IID IID_IDVSplitter;
EXTERN_C const IID IID_IAMAudioRendererStats;
EXTERN_C const IID IID_IAMGraphStreams;
EXTERN_C const IID IID_IAMOverlayFX;
EXTERN_C const IID IID_IAMOpenProgress;
EXTERN_C const IID IID_IMpeg2Demultiplexer;
EXTERN_C const IID IID_IEnumStreamIdMap;
EXTERN_C const IID IID_IMPEG2StreamIdMap;
EXTERN_C const IID IID_IRegisterServiceProvider;
EXTERN_C const IID IID_IAMClockSlave;
EXTERN_C const IID IID_IAMGraphBuilderCallback;
EXTERN_C const IID IID_ICodecAPI;
EXTERN_C const IID IID_IGetCapabilitiesKey;
EXTERN_C const IID IID_IEncoderAPI;
EXTERN_C const IID IID_IVideoEncoder;
EXTERN_C const IID IID_IAMDecoderCaps;
EXTERN_C const IID IID_IAMCertifiedOutputProtection;
EXTERN_C const IID IID_IAMAsyncReaderTimestampScaling;
EXTERN_C const IID IID_IAMPluginControl;
EXTERN_C const IID IID_IDvdControl;
EXTERN_C const IID IID_IDvdInfo;
EXTERN_C const IID IID_IDvdCmd;
EXTERN_C const IID IID_IDvdState;
EXTERN_C const IID IID_IDvdControl2;
EXTERN_C const IID IID_IDvdInfo2;
EXTERN_C const IID IID_IDvdGraphBuilder;
EXTERN_C const IID IID_IDDrawExclModeVideo;
EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
EXTERN_C const IID IID_IPinConnection;
EXTERN_C const IID IID_IPinFlowControl;
EXTERN_C const IID IID_IGraphConfig;
EXTERN_C const IID IID_IGraphConfigCallback;
EXTERN_C const IID IID_IFilterChain;
EXTERN_C const IID IID_IVMRImagePresenter;
EXTERN_C const IID IID_IVMRSurfaceAllocator;
EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
EXTERN_C const IID IID_IVMRWindowlessControl;
EXTERN_C const IID IID_IVMRMixerControl;
EXTERN_C const IID IID_IVMRMonitorConfig;
EXTERN_C const IID IID_IVMRFilterConfig;
EXTERN_C const IID IID_IVMRAspectRatioControl;
EXTERN_C const IID IID_IVMRDeinterlaceControl;
EXTERN_C const IID IID_IVMRMixerBitmap;
EXTERN_C const IID IID_IVMRImageCompositor;
EXTERN_C const IID IID_IVMRVideoStreamControl;
EXTERN_C const IID IID_IVMRSurface;
EXTERN_C const IID IID_IVMRImagePresenterConfig;
EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
EXTERN_C const IID IID_IVPManager;
/* ICreateDevEnum interface */
#undef INTERFACE
#define INTERFACE ICreateDevEnum
DECLARE_INTERFACE_( ICreateDevEnum, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ICreateDevEnum methods */
STDMETHOD( CreateClassEnumerator )( THIS_ REFCLSID, IEnumMoniker **, DWORD ) PURE;
};
/* IPin interface */
#undef INTERFACE
#define INTERFACE IPin
DECLARE_INTERFACE_( IPin, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPin methods */
STDMETHOD( Connect )( THIS_ IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( ReceiveConnection )( THIS_ IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( Disconnect )( THIS ) PURE;
STDMETHOD( ConnectedTo )( THIS_ IPin ** ) PURE;
STDMETHOD( ConnectionMediaType )( THIS_ AM_MEDIA_TYPE * ) PURE;
STDMETHOD( QueryPinInfo )( THIS_ PIN_INFO * ) PURE;
STDMETHOD( QueryDirection )( THIS_ PIN_DIRECTION * ) PURE;
STDMETHOD( QueryId )( THIS_ LPWSTR * ) PURE;
STDMETHOD( QueryAccept )( THIS_ const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( EnumMediaTypes )( THIS_ IEnumMediaTypes ** ) PURE;
STDMETHOD( QueryInternalConnections )( THIS_ IPin **, ULONG * ) PURE;
STDMETHOD( EndOfStream )( THIS ) PURE;
STDMETHOD( BeginFlush )( THIS ) PURE;
STDMETHOD( EndFlush )( THIS ) PURE;
STDMETHOD( NewSegment )( THIS_ REFERENCE_TIME, REFERENCE_TIME, double ) PURE;
};
typedef IPin *PPIN;
/* IEnumPins interface */
#undef INTERFACE
#define INTERFACE IEnumPins
DECLARE_INTERFACE_( IEnumPins, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumPins methods */
STDMETHOD( Next )( THIS_ ULONG, IPin **, ULONG * ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Clone )( THIS_ IEnumPins ** ) PURE;
};
typedef IEnumPins *PENUMPINS;
/* IEnumMediaTypes interface */
#undef INTERFACE
#define INTERFACE IEnumMediaTypes
DECLARE_INTERFACE_( IEnumMediaTypes, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumMediaTypes methods */
STDMETHOD( Next )( THIS_ ULONG, AM_MEDIA_TYPE **, ULONG * ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Clone )( THIS_ IEnumMediaTypes ** ) PURE;
};
typedef IEnumMediaTypes *PENUMMEDIATYPES;
/* IFilterGraph interface */
#undef INTERFACE
#define INTERFACE IFilterGraph
DECLARE_INTERFACE_( IFilterGraph, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterGraph methods */
STDMETHOD( AddFilter )( THIS_ IBaseFilter *, LPCWSTR ) PURE;
STDMETHOD( RemoveFilter )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( EnumFilters )( THIS_ IEnumFilters ** ) PURE;
STDMETHOD( FindFilterByName )( THIS_ LPCWSTR, IBaseFilter ** v) PURE;
STDMETHOD( ConnectDirect )( THIS_ IPin *, IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( Reconnect )( THIS_ IPin * ) PURE;
STDMETHOD( Disconnect )( THIS_ IPin * ) PURE;
STDMETHOD( SetDefaultSyncSource )( THIS ) PURE;
};
typedef IFilterGraph *PFILTERGRAPH;
/* IEnumFilters interface */
#undef INTERFACE
#define INTERFACE IEnumFilters
DECLARE_INTERFACE_( IEnumFilters, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumFilters methods */
STDMETHOD( Next )( THIS_ ULONG, IBaseFilter **, ULONG * ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
STDMETHOD( Reset )( THIS_ ULONG ) PURE;
STDMETHOD( Clone )( THIS_ IEnumFilters ** ) PURE;
};
typedef IEnumFilters *PENUMFILTERS;
/* IMediaFilter interface */
#undef INTERFACE
#define INTERFACE IMediaFilter
DECLARE_INTERFACE_( IMediaFilter, IPersist ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPersist methods */
STDMETHOD( GetClassID )( THIS_ CLSID * ) PURE;
/* IMediaFilter methods */
STDMETHOD( Stop )( THIS ) PURE;
STDMETHOD( Pause )( THIS ) PURE;
STDMETHOD( Run )( THIS_ REFERENCE_TIME ) PURE;
STDMETHOD( GetState )( THIS_ DWORD, FILTER_STATE * ) PURE;
STDMETHOD( SetSyncSource )( THIS_ IReferenceClock * ) PURE;
STDMETHOD( GetSyncSource )( THIS_ IReferenceClock ** ) PURE;
};
typedef IMediaFilter *PMEDIAFILTER;
/* IBaseFilter interface */
#undef INTERFACE
#define INTERFACE IBaseFilter
DECLARE_INTERFACE_( IBaseFilter, IMediaFilter ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPersist methods */
STDMETHOD( GetClassID )( THIS_ CLSID * ) PURE;
/* IMediaFilter methods */
STDMETHOD( Stop )( THIS ) PURE;
STDMETHOD( Pause )( THIS ) PURE;
STDMETHOD( Run )( THIS_ REFERENCE_TIME ) PURE;
STDMETHOD( GetState )( THIS_ DWORD, FILTER_STATE * ) PURE;
STDMETHOD( SetSyncSource )( THIS_ IReferenceClock * ) PURE;
STDMETHOD( GetSyncSource )( THIS_ IReferenceClock ** ) PURE;
/* IBaseFilter methods */
STDMETHOD( EnumPins )( THIS_ IEnumPins ** ) PURE;
STDMETHOD( FindPin )( THIS_ LPCWSTR, IPin ** ) PURE;
STDMETHOD( QueryFilterInfo )( THIS_ FILTER_INFO * ) PURE;
STDMETHOD( JoinFilterGraph )( THIS_ IFilterGraph *, LPCWSTR ) PURE;
STDMETHOD( QueryVendorInfo )( THIS_ LPWSTR * ) PURE;
};
typedef IBaseFilter *PFILTER;
/* IReferenceClock interface */
#undef INTERFACE
#define INTERFACE IReferenceClock
DECLARE_INTERFACE_( IReferenceClock, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IReferenceClock methods */
STDMETHOD( GetTime )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( AdviseTime )( THIS_ REFERENCE_TIME, REFERENCE_TIME, HEVENT, DWORD_PTR * ) PURE;
STDMETHOD( AdvisePeriodic )( THIS_ REFERENCE_TIME, REFERENCE_TIME, HSEMAPHORE, DWORD_PTR * ) PURE;
STDMETHOD( Unadvise )( THIS_ DWORD_PTR ) PURE;
};
typedef IReferenceClock *PREFERENCECLOCK;
/* IReferenceClockTimerControl interface */
#undef INTERFACE
#define INTERFACE IReferenceClockTimerControl
DECLARE_INTERFACE_( IReferenceClockTimerControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IReferenceClockTimerControl methods */
STDMETHOD( SetDefaultTimerResolution )( THIS_ REFERENCE_TIME ) PURE;
STDMETHOD( GetDefaultTimerResolution )( THIS_ REFERENCE_TIME * ) PURE;
};
/* IReferenceClock2 interface */
#undef INTERFACE
#define INTERFACE IReferenceClock2
DECLARE_INTERFACE_( IReferenceClock2, IReferenceClock ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IReferenceClock methods */
STDMETHOD( GetTime )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( AdviseTime )( THIS_ REFERENCE_TIME, REFERENCE_TIME, HEVENT, DWORD_PTR * ) PURE;
STDMETHOD( AdvisePeriodic )( THIS_ REFERENCE_TIME, REFERENCE_TIME, HSEMAPHORE, DWORD_PTR * ) PURE;
STDMETHOD( Unadvise )( THIS_ DWORD_PTR ) PURE;
};
typedef IReferenceClock2 *PREFERENCECLOCK2;
/* IMediaSample interface */
#undef INTERFACE
#define INTERFACE IMediaSample
DECLARE_INTERFACE_( IMediaSample, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaSample methods */
STDMETHOD( GetPointer )( THIS_ BYTE ** ) PURE;
STDMETHOD_( long, GetSize )( THIS ) PURE;
STDMETHOD( GetTime )( THIS_ REFERENCE_TIME *, REFERENCE_TIME * ) PURE;
STDMETHOD( SetTime )( THIS_ REFERENCE_TIME *, REFERENCE_TIME * ) PURE;
STDMETHOD( IsSyncPoint )( THIS ) PURE;
STDMETHOD( SetSyncPoint )( THIS_ BOOL ) PURE;
STDMETHOD( IsPreroll )( THIS ) PURE;
STDMETHOD( SetPreroll )( THIS_ BOOL ) PURE;
STDMETHOD_( long, GetActualDataLength )( THIS ) PURE;
STDMETHOD( SetActualDataLength )( THIS_ long ) PURE;
STDMETHOD( GetMediaType )( THIS_ AM_MEDIA_TYPE ** ) PURE;
STDMETHOD( SetMediaType )( THIS_ AM_MEDIA_TYPE * ) PURE;
STDMETHOD( IsDiscontinuity )( THIS ) PURE;
STDMETHOD( SetDiscontinuity )( THIS_ BOOL ) PURE;
STDMETHOD( GetMediaTime )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( SetMediaTime )( THIS_ LONGLONG *, LONGLONG * ) PURE;
};
typedef IMediaSample *PMEDIASAMPLE;
/* IMediaSample2 interface */
#undef INTERFACE
#define INTERFACE IMediaSample2
DECLARE_INTERFACE_( IMediaSample2, IMediaSample ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaSample methods */
STDMETHOD( GetPointer )( THIS_ BYTE ** ) PURE;
STDMETHOD_( long, GetSize )( THIS ) PURE;
STDMETHOD( GetTime )( THIS_ REFERENCE_TIME *, REFERENCE_TIME * ) PURE;
STDMETHOD( SetTime )( THIS_ REFERENCE_TIME *, REFERENCE_TIME * ) PURE;
STDMETHOD( IsSyncPoint )( THIS ) PURE;
STDMETHOD( SetSyncPoint )( THIS_ BOOL ) PURE;
STDMETHOD( IsPreroll )( THIS ) PURE;
STDMETHOD( SetPreroll )( THIS_ BOOL ) PURE;
STDMETHOD_( long, GetActualDataLength )( THIS ) PURE;
STDMETHOD( SetActualDataLength )( THIS_ long ) PURE;
STDMETHOD( GetMediaType )( THIS_ AM_MEDIA_TYPE ** ) PURE;
STDMETHOD( SetMediaType )( THIS_ AM_MEDIA_TYPE * ) PURE;
STDMETHOD( IsDiscontinuity )( THIS ) PURE;
STDMETHOD( SetDiscontinuity )( THIS_ BOOL ) PURE;
STDMETHOD( GetMediaTime )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( SetMediaTime )( THIS_ LONGLONG *, LONGLONG * ) PURE;
/* IMediaSample2 methods */
STDMETHOD( GetProperties )( THIS_ DWORD, BYTE * ) PURE;
STDMETHOD( SetProperties )( THIS_ DWORD, const BYTE * ) PURE;
};
typedef IMediaSample2 *PMEDIASAMPLE2;
/* IMediaSample2Config interface */
#undef INTERFACE
#define INTERFACE IMediaSample2Config
DECLARE_INTERFACE_( IMediaSample2Config, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaSample2Config methods */
STDMETHOD( GetSurface )( THIS_ IUnknown ** ) PURE;
};
/* IMemAllocator interface */
#undef INTERFACE
#define INTERFACE IMemAllocator
DECLARE_INTERFACE_( IMemAllocator, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMemAllocator methods */
STDMETHOD( SetProperties )( THIS_ ALLOCATOR_PROPERTIES *, ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( GetProperties )( THIS_ ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( Commit )( THIS ) PURE;
STDMETHOD( Decommit )( THIS ) PURE;
STDMETHOD( GetBuffer )( THIS_ IMediaSample **, REFERENCE_TIME *, REFERENCE_TIME *, DWORD ) PURE;
STDMETHOD( ReleaseBuffer )( THIS_ IMediaSample * ) PURE;
};
typedef IMemAllocator *PMEMALLOCATOR;
/* IMemAllocatorCallbackTemp interface */
#undef INTERFACE
#define INTERFACE IMemAllocatorCallbackTemp
DECLARE_INTERFACE_( IMemAllocatorCallbackTemp, IMemAllocator ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMemAllocator methods */
STDMETHOD( SetProperties )( THIS_ ALLOCATOR_PROPERTIES *, ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( GetProperties )( THIS_ ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( Commit )( THIS ) PURE;
STDMETHOD( Decommit )( THIS ) PURE;
STDMETHOD( GetBuffer )( THIS_ IMediaSample **, REFERENCE_TIME *, REFERENCE_TIME *, DWORD ) PURE;
STDMETHOD( ReleaseBuffer )( THIS_ IMediaSample * ) PURE;
/* IMemAllocatorCallbackTemp methods */
STDMETHOD( SetNotify )( THIS_ IMemAllocatorNotifyCallbackTemp * ) PURE;
STDMETHOD( GetFreeCount )( THIS_ LONG * ) PURE;
};
/* IMemAllocatorNotifyCallbackTemp interface */
#undef INTERFACE
#define INTERFACE IMemAllocatorNotifyCallbackTemp
DECLARE_INTERFACE_( IMemAllocatorNotifyCallbackTemp, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMemAllocatorNotifyCallbackTemp methods */
STDMETHOD( NotifyRelease )( THIS ) PURE;
};
/* IMemInputPin interface */
#undef INTERFACE
#define INTERFACE IMemInputPin
DECLARE_INTERFACE_( IMemInputPin, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMemInputPin methods */
STDMETHOD( GetAllocator )( THIS_ IMemAllocator ** ) PURE;
STDMETHOD( NotifyAllocator )( THIS_ IMemAllocator *, BOOL ) PURE;
STDMETHOD( GetAllocatorRequirements )( THIS_ ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( Receive )( THIS_ IMediaSample * ) PURE;
STDMETHOD( ReceiveMultiple )( THIS_ IMediaSample **, long, long * ) PURE;
STDMETHOD( ReceiveCanBlock )( THIS ) PURE;
};
typedef IMemInputPin *PMEMINPUTPIN;
/* IAMovieSetup interface */
#undef INTERFACE
#define INTERFACE IAMovieSetup
DECLARE_INTERFACE_( IAMovieSetup, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMovieSetup methods */
STDMETHOD( Register )( THIS ) PURE;
STDMETHOD( Unregister )( THIS ) PURE;
};
typedef IAMovieSetup *PAMOVIESETUP;
/* IMediaSeeking interface */
#undef INTERFACE
#define INTERFACE IMediaSeeking
DECLARE_INTERFACE_( IMediaSeeking, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaSeeking methods */
STDMETHOD( GetCapabilities )( THIS_ DWORD * ) PURE;
STDMETHOD( CheckCapabilities )( THIS_ DWORD * ) PURE;
STDMETHOD( IsFormatSupported )( THIS_ const GUID * ) PURE;
STDMETHOD( QueryPreferredFormat )( THIS_ GUID * ) PURE;
STDMETHOD( GetTimeFormat )( THIS_ GUID * ) PURE;
STDMETHOD( IsUsingTimeFormat )( THIS_ const GUID * ) PURE;
STDMETHOD( SetTimeFormat )( THIS_ const GUID * ) PURE;
STDMETHOD( GetDuration )( THIS_ LONGLONG * ) PURE;
STDMETHOD( GetStopPosition )( THIS_ LONGLONG * ) PURE;
STDMETHOD( GetCurrentPosition )( THIS_ LONGLONG * ) PURE;
STDMETHOD( ConvertTimeFormat )( THIS_ LONGLONG *, const GUID *, LONGLONG, const GUID * ) PURE;
STDMETHOD( SetPositions )( THIS_ LONGLONG *, DWORD, LONGLONG *, DWORD ) PURE;
STDMETHOD( GetPositions )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( GetAvailable )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( SetRate )( THIS_ double ) PURE;
STDMETHOD( GetRate )( THIS_ double * ) PURE;
STDMETHOD( GetPreroll )( THIS_ LONGLONG * ) PURE;
};
typedef IMediaSeeking *PMEDIASEEKING;
/* IEnumRegFilters interface */
#undef INTERFACE
#define INTERFACE IEnumRegFilters
DECLARE_INTERFACE_( IEnumRegFilters, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumRegFilters methods */
STDMETHOD( Next )( THIS_ ULONG, REGFILTER **, ULONG * ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Clone )( THIS_ IEnumRegFilters ** ) PURE;
};
typedef IEnumRegFilters *PENUMREGFILTERS;
/* IFilterMapper interface */
#undef INTERFACE
#define INTERFACE IFilterMapper
DECLARE_INTERFACE_( IFilterMapper, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterMapper methods */
STDMETHOD( RegisterFilter )( THIS_ CLSID, LPCWSTR, DWORD ) PURE;
STDMETHOD( RegisterFilterInstance )( THIS_ CLSID, LPCWSTR, CLSID * ) PURE;
STDMETHOD( RegisterPin )( THIS_ CLSID, LPCWSTR, BOOL, BOOL, BOOL, BOOL, CLSID, LPCWSTR ) PURE;
STDMETHOD( RegisterPinType )( THIS_ CLSID, LPCWSTR, CLSID, CLSID ) PURE;
STDMETHOD( UnregisterFilter )( THIS_ CLSID ) PURE;
STDMETHOD( UnregisterFilterInstance )( THIS_ CLSID ) PURE;
STDMETHOD( UnregisterPin )( THIS_ CLSID, LPCWSTR ) PURE;
STDMETHOD( EnumMatchingFilters )( THIS_ IEnumRegFilters **, DWORD, BOOL, CLSID, CLSID, BOOL, BOOL, CLSID, CLSID ) PURE;
};
/* IFilterMapper2 interface */
#undef INTERFACE
#define INTERFACE IFilterMapper2
DECLARE_INTERFACE_( IFilterMapper2, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterMapper2 methods */
STDMETHOD( CreateCategory )( THIS_ REFCLSID, DWORD, LPCWSTR ) PURE;
STDMETHOD( UnregisterFilter )( THIS_ const CLSID *, LPCOLESTR, REFCLSID ) PURE;
STDMETHOD( RegisterFilter )( THIS_ REFCLSID, LPCWSTR, IMoniker **, const CLSID *, LPCOLESTR, const REGFILTER2 * ) PURE;
STDMETHOD( EnumMatchingFilters )( THIS_ IEnumMoniker **, DWORD, BOOL, DWORD, BOOL, DWORD, const GUID *, const REGPINMEDIUM *, const CLSID *, BOOL, BOOL, DWORD, const GUID *, const REGPINMEDIUM *, const CLSID * ) PURE;
};
/* IFilterMapper3 interface */
#undef INTERFACE
#define INTERFACE IFilterMapper3
DECLARE_INTERFACE_( IFilterMapper3, IFilterMapper2 ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterMapper2 methods */
STDMETHOD( CreateCategory )( THIS_ REFCLSID, DWORD, LPCWSTR ) PURE;
STDMETHOD( UnregisterFilter )( THIS_ const CLSID *, LPCOLESTR, REFCLSID ) PURE;
STDMETHOD( RegisterFilter )( THIS_ REFCLSID, LPCWSTR, IMoniker **, const CLSID *, LPCOLESTR, const REGFILTER2 * ) PURE;
STDMETHOD( EnumMatchingFilters )( THIS_ IEnumMoniker **, DWORD, BOOL, DWORD, BOOL, DWORD, const GUID *, const REGPINMEDIUM *, const CLSID *, BOOL, BOOL, DWORD, const GUID *, const REGPINMEDIUM *, const CLSID * ) PURE;
/* IFilterMapper3 methods */
STDMETHOD( GetICreateDevEnum )( THIS_ ICreateDevEnum ** ) PURE;
};
/* IQualityControl interface */
#undef INTERFACE
#define INTERFACE IQualityControl
DECLARE_INTERFACE_( IQualityControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IQualityControl methods */
STDMETHOD( Notify )( THIS_ IBaseFilter *, Quality ) PURE;
STDMETHOD( SetSink )( THIS_ IQualityControl * ) PURE;
};
/* IOverlayNotify interface */
#undef INTERFACE
#define INTERFACE IOverlayNotify
DECLARE_INTERFACE_( IOverlayNotify, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IOverlayNotify methods */
STDMETHOD( OnPaletteChange )( THIS_ DWORD, const PALETTEENTRY * ) PURE;
STDMETHOD( OnClipChange )( THIS_ const RECT *, const RECT *, const RGNDATA * ) PURE;
STDMETHOD( OnColorKeyChange )( THIS_ const COLORKEY * ) PURE;
STDMETHOD( OnPositionChange )( THIS_ const RECT *, const RECT * ) PURE;
};
typedef IOverlayNotify *LPOVERLAYNOTIFY;
/* IOverlayNotify2 interface */
#undef INTERFACE
#define INTERFACE IOverlayNotify2
DECLARE_INTERFACE_( IOverlayNotify2, IOverlayNotify ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IOverlayNotify methods */
STDMETHOD( OnPaletteChange )( THIS_ DWORD, const PALETTEENTRY * ) PURE;
STDMETHOD( OnClipChange )( THIS_ const RECT *, const RECT *, const RGNDATA * ) PURE;
STDMETHOD( OnColorKeyChange )( THIS_ const COLORKEY * ) PURE;
STDMETHOD( OnPositionChange )( THIS_ const RECT *, const RECT * ) PURE;
/* IOverlayNotify2 methods */
STDMETHOD( OnDisplayChange )( THIS_ HMONITOR ) PURE;
};
typedef IOverlayNotify2 *POVERLAYNOTIFY2;
/* IOverlay interface */
#undef INTERFACE
#define INTERFACE IOverlay
DECLARE_INTERFACE_( IOverlay, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IOverlay methods */
STDMETHOD( GetPalette )( THIS_ DWORD *, PALETTEENTRY ** ) PURE;
STDMETHOD( SetPalette )( THIS_ DWORD, PALETTEENTRY * ) PURE;
STDMETHOD( GetDefaultColorKey )( THIS_ COLORREF * ) PURE;
STDMETHOD( GetColorKey )( THIS_ COLORREF * ) PURE;
STDMETHOD( SetColorKey )( THIS_ COLORREF * ) PURE;
STDMETHOD( GetWindowHandle )( THIS_ HWND * ) PURE;
STDMETHOD( GetClipList )( THIS_ RECT *, RECT *, RGNDATA ** ) PURE;
STDMETHOD( GetVideoPosition )( THIS_ RECT *, RECT * ) PURE;
STDMETHOD( Advise )( THIS_ IOverlayNotify *, DWORD ) PURE;
STDMETHOD( Unadvise )( THIS ) PURE;
};
typedef IOverlay *POVERLAY;
/* IMediaEventSink interface */
#undef INTERFACE
#define INTERFACE IMediaEventSink
DECLARE_INTERFACE_( IMediaEventSink, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMediaEventSink methods */
STDMETHOD( Notify )( THIS_ long, LONG_PTR, LONG_PTR ) PURE;
};
typedef IMediaEventSink *PMEDIAEVENTSINK;
/* IFileSourceFilter interface */
#undef INTERFACE
#define INTERFACE IFileSourceFilter
DECLARE_INTERFACE_( IFileSourceFilter, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFileSourceFilter methods */
STDMETHOD( Load )( THIS_ LPCOLESTR, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( GetCurFile )( THIS_ LPOLESTR *, AM_MEDIA_TYPE * ) PURE;
};
typedef IFileSourceFilter *PFILESOURCEFILTER;
/* IFileSinkFilter interface */
#undef INTERFACE
#define INTERFACE IFileSinkFilter
DECLARE_INTERFACE_( IFileSinkFilter, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFileSinkFilter methods */
STDMETHOD( SetFileName )( THIS_ LPCOLESTR, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( GetCurFile )( THIS_ LPOLESTR *, AM_MEDIA_TYPE * ) PURE;
};
typedef IFileSinkFilter *PFILESINKFILTER;
/* IFileSinkFilter2 interface */
#undef INTERFACE
#define INTERFACE IFileSinkFilter2
DECLARE_INTERFACE_( IFileSinkFilter2, IFileSinkFilter ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFileSinkFilter methods */
STDMETHOD( SetFileName )( THIS_ LPCOLESTR, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( GetCurFile )( THIS_ LPOLESTR *, AM_MEDIA_TYPE * ) PURE;
/* IFileSinkFilter2 methods */
STDMETHOD( SetMode )( THIS_ DWORD ) PURE;
STDMETHOD( GetMode )( THIS_ DWORD * ) PURE;
};
typedef IFileSinkFilter2 *PFILESINKFILTER2;
/* IGraphBuilder interface */
#undef INTERFACE
#define INTERFACE IGraphBuilder
DECLARE_INTERFACE_( IGraphBuilder, IFilterGraph ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterGraph methods */
STDMETHOD( AddFilter )( THIS_ IBaseFilter *, LPCWSTR ) PURE;
STDMETHOD( RemoveFilter )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( EnumFilters )( THIS_ IEnumFilters ** ) PURE;
STDMETHOD( FindFilterByName )( THIS_ LPCWSTR, IBaseFilter ** v) PURE;
STDMETHOD( ConnectDirect )( THIS_ IPin *, IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( Reconnect )( THIS_ IPin * ) PURE;
STDMETHOD( Disconnect )( THIS_ IPin * ) PURE;
STDMETHOD( SetDefaultSyncSource )( THIS ) PURE;
/* IGraphBuilder methods */
STDMETHOD( Connect )( THIS_ IPin *, IPin * ) PURE;
STDMETHOD( Render )( THIS_ IPin * ) PURE;
STDMETHOD( RenderFile )( THIS_ LPCWSTR, LPCWSTR ) PURE;
STDMETHOD( AddSourceFilter )( THIS_ LPCWSTR, LPCWSTR, IBaseFilter ** ) PURE;
STDMETHOD( SetLogFile )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( Abort )( THIS ) PURE;
STDMETHOD( ShouldOperationContinue )( THIS ) PURE;
};
/* ICaptureGraphBuilder interface */
#undef INTERFACE
#define INTERFACE ICaptureGraphBuilder
DECLARE_INTERFACE_( ICaptureGraphBuilder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ICaptureGraphBuilder methods */
STDMETHOD( SetFitlergraph )( THIS_ IGraphBuilder * ) PURE;
STDMETHOD( GetFiltergraph )( THIS_ IGraphBuilder ** ) PURE;
STDMETHOD( SetOutputFileName )( THIS_ const GUID *, LPCOLESTR, IBaseFilter **, IFileSinkFilter ** ) PURE;
STDMETHOD( FindInterface )( THIS_ const GUID *, IBaseFilter *, REFIID, void ** ) PURE;
STDMETHOD( RenderStream )( THIS_ const GUID *, IUnknown *, IBaseFilter *, IBaseFilter * ) PURE;
STDMETHOD( ControlStream )( THIS_ const GUID *, IBaseFilter *, REFERENCE_TIME *, REFERENCE_TIME *, WORD, WORD ) PURE;
STDMETHOD( AllocCapFile )( THIS_ LPCOLESTR, DWORDLONG ) PURE;
STDMETHOD( CopyCaptureFile )( THIS_ LPOLESTR, LPOLESTR, int, IAMCopyCaptureFileProgress * ) PURE;
};
/* IAMCopyCaptureFileProgress interface */
#undef INTERFACE
#define INTERFACE IAMCopyCaptureFileProgress
DECLARE_INTERFACE_( IAMCopyCaptureFileProgress, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMCopyCaptureFileProgress methods */
STDMETHOD( Progress )( THIS_ int ) PURE;
};
/* ICaptureGraphBuilder2 interface */
#undef INTERFACE
#define INTERFACE ICaptureGraphBuilder2
DECLARE_INTERFACE_( ICaptureGraphBuilder2, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ICaptureGraphBuilder2 methods */
STDMETHOD( SetFiltergraph )( THIS_ IGraphBuilder * ) PURE;
STDMETHOD( GetFiltergraph )( THIS_ IGraphBuilder ** ) PURE;
STDMETHOD( SetOutputFileName )( THIS_ const GUID *, LPCOLESTR, IBaseFilter **, IFileSinkFilter ** ) PURE;
STDMETHOD( FindInterface )( THIS_ const GUID *, const GUID *, IBaseFilter *, REFIID, void ** ) PURE;
STDMETHOD( RenderStream )( THIS_ const GUID *, const GUID *, IUnknown *, IBaseFilter *, IBaseFilter * ) PURE;
STDMETHOD( ControlStream )( THIS_ const GUID *, const GUID *, IBaseFilter *, REFERENCE_TIME *, REFERENCE_TIME *, WORD, WORD ) PURE;
STDMETHOD( AllocCapFile )( THIS_ LPCOLESTR, DWORDLONG ) PURE;
STDMETHOD( CopyCaptureFile )( THIS_ LPOLESTR, LPOLESTR, int, IAMCopyCaptureFileProgress * ) PURE;
STDMETHOD( FindPin )( THIS_ IUnknown *, PIN_DIRECTION, const GUID *, const GUID *, BOOL, int, IPin ** ) PURE;
};
/* IFilterGraph2 interface */
#undef INTERFACE
#define INTERFACE IFilterGraph2
DECLARE_INTERFACE_( IFilterGraph2, IGraphBuilder ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterGraph methods */
STDMETHOD( AddFilter )( THIS_ IBaseFilter *, LPCWSTR ) PURE;
STDMETHOD( RemoveFilter )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( EnumFilters )( THIS_ IEnumFilters ** ) PURE;
STDMETHOD( FindFilterByName )( THIS_ LPCWSTR, IBaseFilter ** v) PURE;
STDMETHOD( ConnectDirect )( THIS_ IPin *, IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( Reconnect )( THIS_ IPin * ) PURE;
STDMETHOD( Disconnect )( THIS_ IPin * ) PURE;
STDMETHOD( SetDefaultSyncSource )( THIS ) PURE;
/* IGraphBuilder methods */
STDMETHOD( Connect )( THIS_ IPin *, IPin * ) PURE;
STDMETHOD( Render )( THIS_ IPin * ) PURE;
STDMETHOD( RenderFile )( THIS_ LPCWSTR, LPCWSTR ) PURE;
STDMETHOD( AddSourceFilter )( THIS_ LPCWSTR, LPCWSTR, IBaseFilter ** ) PURE;
STDMETHOD( SetLogFile )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( Abort )( THIS ) PURE;
STDMETHOD( ShouldOperationContinue )( THIS ) PURE;
/* IFilterGraph2 methods */
STDMETHOD( AddSourceFilterForMoniker )( THIS_ IMoniker *, IBindCtx *, LPCWSTR, IBaseFilter ** ) PURE;
STDMETHOD( ReconnectEx )( THIS_ IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( RenderEx )( THIS_ IPin *, DWORD, DWORD * ) PURE;
};
/* IFilterGraph3 interface */
#undef INTERFACE
#define INTERFACE IFilterGraph3
DECLARE_INTERFACE_( IFilterGraph3, IFilterGraph2 ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterGraph methods */
STDMETHOD( AddFilter )( THIS_ IBaseFilter *, LPCWSTR ) PURE;
STDMETHOD( RemoveFilter )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( EnumFilters )( THIS_ IEnumFilters ** ) PURE;
STDMETHOD( FindFilterByName )( THIS_ LPCWSTR, IBaseFilter ** v) PURE;
STDMETHOD( ConnectDirect )( THIS_ IPin *, IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( Reconnect )( THIS_ IPin * ) PURE;
STDMETHOD( Disconnect )( THIS_ IPin * ) PURE;
STDMETHOD( SetDefaultSyncSource )( THIS ) PURE;
/* IGraphBuilder methods */
STDMETHOD( Connect )( THIS_ IPin *, IPin * ) PURE;
STDMETHOD( Render )( THIS_ IPin * ) PURE;
STDMETHOD( RenderFile )( THIS_ LPCWSTR, LPCWSTR ) PURE;
STDMETHOD( AddSourceFilter )( THIS_ LPCWSTR, LPCWSTR, IBaseFilter ** ) PURE;
STDMETHOD( SetLogFile )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( Abort )( THIS ) PURE;
STDMETHOD( ShouldOperationContinue )( THIS ) PURE;
/* IFilterGraph2 methods */
STDMETHOD( AddSourceFilterForMoniker )( THIS_ IMoniker *, IBindCtx *, LPCWSTR, IBaseFilter ** ) PURE;
STDMETHOD( ReconnectEx )( THIS_ IPin *, const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( RenderEx )( THIS_ IPin *, DWORD, DWORD * ) PURE;
/* IFilterGraph3 methods */
STDMETHOD( SetSyncSourceEx )( THIS_ IReferenceClock *, IReferenceClock *, IBaseFilter * ) PURE;
};
/* IStreamBuilder interface */
#undef INTERFACE
#define INTERFACE IStreamBuilder
DECLARE_INTERFACE_( IStreamBuilder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IStreamBuilder methods */
STDMETHOD( Render )( THIS_ IPin *, IGraphBuilder * ) PURE;
STDMETHOD( Backout )( THIS_ IPin *, IGraphBuilder * ) PURE;
};
/* IAsyncReader interface */
#undef INTERFACE
#define INTERFACE IAsyncReader
DECLARE_INTERFACE_( IAsyncReader, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAsyncReader methods */
STDMETHOD( RequestAllocator )( THIS_ IMemAllocator *, ALLOCATOR_PROPERTIES *, IMemAllocator ** ) PURE;
STDMETHOD( Request )( THIS_ IMediaSample *, DWORD_PTR ) PURE;
STDMETHOD( WaitForNext )( THIS_ DWORD, IMediaSample **, DWORD_PTR * ) PURE;
STDMETHOD( SyncReadAligned )( THIS_ IMediaSample * ) PURE;
STDMETHOD( SyncRead )( THIS_ LONGLONG, LONG, BYTE * ) PURE;
STDMETHOD( Length )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( BeginFlush )( THIS ) PURE;
STDMETHOD( EndFlush )( THIS ) PURE;
};
/* IGraphVersion interface */
#undef INTERFACE
#define INTERFACE IGraphVersion
DECLARE_INTERFACE_( IGraphVersion, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IGraphVersion methods */
STDMETHOD( QueryVersion )( THIS_ LONG * ) PURE;
};
/* IResourceConsumer interface */
#undef INTERFACE
#define INTERFACE IResourceConsumer
DECLARE_INTERFACE_( IResourceConsumer, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IResourceConsumer methods */
STDMETHOD( AcquireResource )( THIS_ LONG ) PURE;
STDMETHOD( ReleaseResource )( THIS_ LONG ) PURE;
};
/* IResourceManager interface */
#undef INTERFACE
#define INTERFACE IResourceManager
DECLARE_INTERFACE_( IResourceManager, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IResourceManager methods */
STDMETHOD( Register )( THIS_ LPCWSTR, LONG, LONG * ) PURE;
STDMETHOD( RegisterGroup )( THIS_ LPCWSTR, LONG, LONG *, LONG * ) PURE;
STDMETHOD( RequestResource )( THIS_ LONG, IUnknown *, IResourceConsumer * ) PURE;
STDMETHOD( NotifyAcquire )( THIS_ LONG, IResourceConsumer *, HRESULT ) PURE;
STDMETHOD( NotifyRelease )( THIS_ LONG, IResourceConsumer *, BOOL ) PURE;
STDMETHOD( CancelRequest )( THIS_ LONG, IResourceConsumer * ) PURE;
STDMETHOD( SetFocus )( THIS_ IUnknown * ) PURE;
STDMETHOD( ReleaseFocus )( THIS_ IUnknown * ) PURE;
};
/* IDistributorNotify interface */
#undef INTERFACE
#define INTERFACE IDistributorNotify
DECLARE_INTERFACE_( IDistributorNotify, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDistributorNotify methods */
STDMETHOD( Stop )( THIS ) PURE;
STDMETHOD( Pause )( THIS ) PURE;
STDMETHOD( Run )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( SetSyncSource )( THIS_ IReferenceClock * ) PURE;
STDMETHOD( NotifyGraphChange )( THIS ) PURE;
};
/* IAMStreamControl interface */
#undef INTERFACE
#define INTERFACE IAMStreamControl
DECLARE_INTERFACE_( IAMStreamControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMStreamControl methods */
STDMETHOD( StartAt )( THIS_ const REFERENCE_TIME *, DWORD ) PURE;
STDMETHOD( StopAt )( THIS_ const REFERENCE_TIME *, BOOL, DWORD ) PURE;
STDMETHOD( GetInfo )( THIS_ AM_STREAM_INFO * ) PURE;
};
/* ISeekingPassThru interface */
#undef INTERFACE
#define INTERFACE ISeekingPassThru
DECLARE_INTERFACE_( ISeekingPassThru, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ISeekingPassThru methods */
STDMETHOD( Init )( THIS_ BOOL, IPin * ) PURE;
};
/* IAMStreamConfig interface */
#undef INTERFACE
#define INTERFACE IAMStreamConfig
DECLARE_INTERFACE_( IAMStreamConfig, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMStreamConfig methods */
STDMETHOD( SetFormat )( THIS_ AM_MEDIA_TYPE * ) PURE;
STDMETHOD( GetFormat )( THIS_ AM_MEDIA_TYPE ** ) PURE;
STDMETHOD( GetNumberOfCapabilities )( THIS_ int *, int * ) PURE;
STDMETHOD( GetStreamCaps )( THIS_ int, AM_MEDIA_TYPE **, BYTE * ) PURE;
};
/* IConfigInterleaving interface */
#undef INTERFACE
#define INTERFACE IConfigInterleaving
DECLARE_INTERFACE_( IConfigInterleaving, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IConfigInterleaving methods */
STDMETHOD( put_Mode )( THIS_ InterleavingMode ) PURE;
STDMETHOD( get_Mode )( THIS_ InterleavingMode * ) PURE;
STDMETHOD( put_Interleaving )( THIS_ const REFERENCE_TIME *, const REFERENCE_TIME * ) PURE;
STDMETHOD( get_Interleaving )( THIS_ REFERENCE_TIME *, REFERENCE_TIME * ) PURE;
};
/* IConfigAviMux interface */
#undef INTERFACE
#define INTERFACE IConfigAviMux
DECLARE_INTERFACE_( IConfigAviMux, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IConfigAviMux methods */
STDMETHOD( SetMasterStream )( THIS_ LONG ) PURE;
STDMETHOD( GetMasterStream )( THIS_ LONG * ) PURE;
STDMETHOD( SetOutputCompatibilityIndex )( THIS_ BOOL ) PURE;
STDMETHOD( GetOutputCompatibilityIndex )( THIS_ BOOL * ) PURE;
};
/* IAMVideoCompression interface */
#undef INTERFACE
#define INTERFACE IAMVideoCompression
DECLARE_INTERFACE_( IAMVideoCompression, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVideoCompression methods */
STDMETHOD( put_KeyFrameRate )( THIS_ long ) PURE;
STDMETHOD( get_KeyFrameRate )( THIS_ long * ) PURE;
STDMETHOD( put_PFramesPerKeyFrame )( THIS_ long ) PURE;
STDMETHOD( get_PFramesPerKeyFrame )( THIS_ long * ) PURE;
STDMETHOD( put_Quality )( THIS_ double ) PURE;
STDMETHOD( get_Quality )( THIS_ double * ) PURE;
STDMETHOD( put_WindowSize )( THIS_ DWORDLONG ) PURE;
STDMETHOD( get_WindowSize )( THIS_ DWORDLONG * ) PURE;
STDMETHOD( GetInfo )( THIS_ LPWSTR, int *, LPWSTR, int *, long *, long *, double *, long * ) PURE;
STDMETHOD( OverrideKeyFrame )( THIS_ long ) PURE;
STDMETHOD( OverrideFrameSize )( THIS_ long, long ) PURE;
};
/* IAMVfwCaptureDialogs interface */
#undef INTERFACE
#define INTERFACE IAMVfwCaptureDialogs
DECLARE_INTERFACE_( IAMVfwCaptureDialogs, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVfwCaptureDialogs methods */
STDMETHOD( HasDialog )( THIS_ int ) PURE;
STDMETHOD( ShowDialog )( THIS_ int, HWND ) PURE;
STDMETHOD( SendDriverMessage )( THIS_ int, int, long, long ) PURE;
};
/* IAMVfwCompressDialogs interface */
#undef INTERFACE
#define INTERFACE IAMVfwCompressDialogs
DECLARE_INTERFACE_( IAMVfwCompressDialogs, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVfwCompressDialogs methods */
STDMETHOD( ShowDialog )( THIS_ int, HWND ) PURE;
STDMETHOD( GetState )( THIS_ LPVOID, int * ) PURE;
STDMETHOD( SetState )( THIS_ LPVOID, int ) PURE;
STDMETHOD( SendDriverMessage )( THIS_ int, long, long ) PURE;
};
/* IAMDroppedFrames interface */
#undef INTERFACE
#define INTERFACE IAMDroppedFrames
DECLARE_INTERFACE_( IAMDroppedFrames, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMDroppedFrames methods */
STDMETHOD( GetNumDropped )( THIS_ long * ) PURE;
STDMETHOD( GetNumNotDropped )( THIS_ long * ) PURE;
STDMETHOD( GetDroppedInfo )( THIS_ long, long *, long * ) PURE;
STDMETHOD( GetAverageFrameSize )( THIS_ long * ) PURE;
};
/* IAMAudioInputMixer interface */
#undef INTERFACE
#define INTERFACE IAMAudioInputMixer
DECLARE_INTERFACE_( IAMAudioInputMixer, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMAudioInputMixer methods */
STDMETHOD( put_Enable )( THIS_ BOOL ) PURE;
STDMETHOD( get_Enable )( THIS_ BOOL * ) PURE;
STDMETHOD( put_Mono )( THIS_ BOOL ) PURE;
STDMETHOD( get_Mono )( THIS_ BOOL * ) PURE;
STDMETHOD( put_MixLevel )( THIS_ double ) PURE;
STDMETHOD( get_MixLevel )( THIS_ double * ) PURE;
STDMETHOD( put_Pan )( THIS_ double ) PURE;
STDMETHOD( get_Pan )( THIS_ double * ) PURE;
STDMETHOD( put_Loudness )( THIS_ BOOL ) PURE;
STDMETHOD( get_Loudness )( THIS_ BOOL * ) PURE;
STDMETHOD( put_Treble )( THIS_ double ) PURE;
STDMETHOD( get_Treble )( THIS_ double * ) PURE;
STDMETHOD( get_TrebleRange )( THIS_ double * ) PURE;
STDMETHOD( put_Bass )( THIS_ double ) PURE;
STDMETHOD( get_Bass )( THIS_ double * ) PURE;
STDMETHOD( get_BassRange )( THIS_ double * ) PURE;
};
/* IAMBufferNegotiation interface */
#undef INTERFACE
#define INTERFACE IAMBufferNegotiation
DECLARE_INTERFACE_( IAMBufferNegotiation, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMBufferNegotiation methods */
STDMETHOD( SuggestAllocatorProperties )( THIS_ const ALLOCATOR_PROPERTIES * ) PURE;
STDMETHOD( GetAllocatorProperties )( THIS_ ALLOCATOR_PROPERTIES * ) PURE;
};
/* IAMAnalogVideoDecoder interface */
#undef INTERFACE
#define INTERFACE IAMAnalogVideoDecoder
DECLARE_INTERFACE_( IAMAnalogVideoDecoder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMAnalogVideoDecoder methods */
STDMETHOD( get_AvailableTVFormats )( THIS_ long * ) PURE;
STDMETHOD( put_TVFormat )( THIS_ long ) PURE;
STDMETHOD( get_TVFormat )( THIS_ long * ) PURE;
STDMETHOD( get_HorizontalLocked )( THIS_ long * ) PURE;
STDMETHOD( put_VCRHorizontalLocking )( THIS_ long ) PURE;
STDMETHOD( get_VCRHorizontalLocking )( THIS_ long * ) PURE;
STDMETHOD( get_NumberOfLines )( THIS_ long * ) PURE;
STDMETHOD( put_EnableOutput )( THIS_ long ) PURE;
STDMETHOD( get_EnableOutput )( THIS_ long * ) PURE;
};
/* IAMVideoProcAmp interface */
#undef INTERFACE
#define INTERFACE IAMVideoProcAmp
DECLARE_INTERFACE_( IAMVideoProcAmp, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVideoProcAmp methods */
STDMETHOD( GetRange )( THIS_ long, long *, long *, long *, long *, long * ) PURE;
STDMETHOD( Set )( THIS_ long, long, long ) PURE;
STDMETHOD( Get )( THIS_ long, long *, long * ) PURE;
};
/* IAMCameraControl interface */
#undef INTERFACE
#define INTERFACE IAMCameraControl
DECLARE_INTERFACE_( IAMCameraControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMCameraControl methods */
STDMETHOD( GetRange )( THIS_ long, long *, long *, long *, long *, long * ) PURE;
STDMETHOD( Set )( THIS_ long, long, long ) PURE;
STDMETHOD( Get )( THIS_ long, long *, long * ) PURE;
};
/* IAMVideoControl interface */
#undef INTERFACE
#define INTERFACE IAMVideoControl
DECLARE_INTERFACE_( IAMVideoControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVideoControl methods */
STDMETHOD( GetCaps )( THIS_ IPin *, long * ) PURE;
STDMETHOD( SetMode )( THIS_ IPin *, long ) PURE;
STDMETHOD( GetMode )( THIS_ IPin *, long * ) PURE;
STDMETHOD( GetCurrentActualFrameRate )( THIS_ IPin *, LONGLONG * ) PURE;
STDMETHOD( GetMaxAvailableFrameRate )( THIS_ IPin *, long, SIZE, LONGLONG * ) PURE;
STDMETHOD( GetFrameRateList )( THIS_ IPin *, long, SIZE, long *, LONGLONG ** ) PURE;
};
/* IAMCrossbar interface */
#undef INTERFACE
#define INTERFACE IAMCrossbar
DECLARE_INTERFACE_( IAMCrossbar, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMCrossbar methods */
STDMETHOD( get_PinCounts )( THIS_ long *, long * ) PURE;
STDMETHOD( CanRoute )( THIS_ long, long ) PURE;
STDMETHOD( Route )( THIS_ long, long ) PURE;
STDMETHOD( get_IsRoutedTo )( THIS_ long, long * ) PURE;
STDMETHOD( get_CrossbarPinInfo )( THIS_ BOOL, long, long *, long * ) PURE;
};
/* IAMTuner interface */
#undef INTERFACE
#define INTERFACE IAMTuner
DECLARE_INTERFACE_( IAMTuner, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTuner methods */
STDMETHOD( put_Channel )( THIS_ long, long, long ) PURE;
STDMETHOD( get_Channel )( THIS_ long *, long *, long * ) PURE;
STDMETHOD( ChannelMinMax )( THIS_ long *, long * ) PURE;
STDMETHOD( put_CountryCode )( THIS_ long ) PURE;
STDMETHOD( get_CountryCode )( THIS_ long * ) PURE;
STDMETHOD( put_TuningSpace )( THIS_ long ) PURE;
STDMETHOD( get_TuningSpace )( THIS_ long * ) PURE;
STDMETHOD( Logon )( THIS_ HANDLE ) PURE;
STDMETHOD( Logout )( THIS ) PURE;
STDMETHOD( SignalPresent )( THIS_ long * ) PURE;
STDMETHOD( put_Mode )( THIS_ AMTunerModeType ) PURE;
STDMETHOD( get_Mode )( THIS_ AMTunerModeType * ) PURE;
STDMETHOD( GetAvailableModes )( THIS_ long * ) PURE;
STDMETHOD( RegisterNotificationCallBack )( THIS_ IAMTunerNotification *, long ) PURE;
STDMETHOD( UnRegisterNotificationCallBack )( THIS_ IAMTunerNotification * ) PURE;
};
/* IAMTunerNotification interface */
#undef INTERFACE
#define INTERFACE IAMTunerNotification
DECLARE_INTERFACE_( IAMTunerNotification, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTunerNotification methods */
STDMETHOD( OnEvent )( THIS_ AMTunerEventType ) PURE;
};
/* IAMTVTuner interface */
#undef INTERFACE
#define INTERFACE IAMTVTuner
DECLARE_INTERFACE_( IAMTVTuner, IAMTuner ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTuner methods */
STDMETHOD( put_Channel )( THIS_ long, long, long ) PURE;
STDMETHOD( get_Channel )( THIS_ long *, long *, long * ) PURE;
STDMETHOD( ChannelMinMax )( THIS_ long *, long * ) PURE;
STDMETHOD( put_CountryCode )( THIS_ long ) PURE;
STDMETHOD( get_CountryCode )( THIS_ long * ) PURE;
STDMETHOD( put_TuningSpace )( THIS_ long ) PURE;
STDMETHOD( get_TuningSpace )( THIS_ long * ) PURE;
STDMETHOD( Logon )( THIS_ HANDLE ) PURE;
STDMETHOD( Logout )( THIS ) PURE;
STDMETHOD( SignalPresent )( THIS_ long * ) PURE;
STDMETHOD( put_Mode )( THIS_ AMTunerModeType ) PURE;
STDMETHOD( get_Mode )( THIS_ AMTunerModeType * ) PURE;
STDMETHOD( GetAvailableModes )( THIS_ long * ) PURE;
STDMETHOD( RegisterNotificationCallBack )( THIS_ IAMTunerNotification *, long ) PURE;
STDMETHOD( UnRegisterNotificationCallBack )( THIS_ IAMTunerNotification * ) PURE;
/* IAMTVTuner methods */
STDMETHOD( get_AvailableTVFormats )( THIS_ long * ) PURE;
STDMETHOD( get_TVFormat )( THIS_ long * ) PURE;
STDMETHOD( AutoTone )( THIS_ long, long * ) PURE;
STDMETHOD( StoreAutoTone )( THIS ) PURE;
STDMETHOD( get_NumInputConnections )( THIS_ long * ) PURE;
STDMETHOD( put_InputType )( THIS_ long, TunerInputType ) PURE;
STDMETHOD( get_InputType )( THIS_ long, TunerInputType * ) PURE;
STDMETHOD( put_ConnectInput )( THIS_ long ) PURE;
STDMETHOD( get_ConnectInput )( THIS_ long * ) PURE;
STDMETHOD( get_VideoFrequency )( THIS_ long * ) PURE;
STDMETHOD( get_AudioFrequency )( THIS_ long * ) PURE;
};
/* IBPCSatelliteTuner interface */
#undef INTERFACE
#define INTERFACE IBPCSatelliteTuner
DECLARE_INTERFACE_( IBPCSatelliteTuner, IAMTuner ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTuner methods */
STDMETHOD( put_Channel )( THIS_ long, long, long ) PURE;
STDMETHOD( get_Channel )( THIS_ long *, long *, long * ) PURE;
STDMETHOD( ChannelMinMax )( THIS_ long *, long * ) PURE;
STDMETHOD( put_CountryCode )( THIS_ long ) PURE;
STDMETHOD( get_CountryCode )( THIS_ long * ) PURE;
STDMETHOD( put_TuningSpace )( THIS_ long ) PURE;
STDMETHOD( get_TuningSpace )( THIS_ long * ) PURE;
STDMETHOD( Logon )( THIS_ HANDLE ) PURE;
STDMETHOD( Logout )( THIS ) PURE;
STDMETHOD( SignalPresent )( THIS_ long * ) PURE;
STDMETHOD( put_Mode )( THIS_ AMTunerModeType ) PURE;
STDMETHOD( get_Mode )( THIS_ AMTunerModeType * ) PURE;
STDMETHOD( GetAvailableModes )( THIS_ long * ) PURE;
STDMETHOD( RegisterNotificationCallBack )( THIS_ IAMTunerNotification *, long ) PURE;
STDMETHOD( UnRegisterNotificationCallBack )( THIS_ IAMTunerNotification * ) PURE;
/* IBPCSatelliteTuner methods */
STDMETHOD( get_DefaultSubChannelTypes )( THIS_ long *, long * ) PURE;
STDMETHOD( put_DefaultSubChannelTypes )( THIS_ long, long ) PURE;
STDMETHOD( IsTapingPermitted )( THIS ) PURE;
};
/* IAMTVAudio interface */
#undef INTERFACE
#define INTERFACE IAMTVAudio
DECLARE_INTERFACE_( IAMTVAudio, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTVAudio methods */
STDMETHOD( GetHardwareSupportedTVAudioModes )( THIS_ long * ) PURE;
STDMETHOD( GetAvailableTVAudioModes )( THIS_ long * ) PURE;
STDMETHOD( get_TVAudioMode )( THIS_ long * ) PURE;
STDMETHOD( put_TVAudioMode )( THIS_ long ) PURE;
STDMETHOD( RegisterNotificationCallBack )( THIS_ IAMTunerNotification *, long ) PURE;
STDMETHOD( UnRegisterNotificationCallBack )( THIS_ IAMTunerNotification * ) PURE;
};
/* IAMTVAudioNotification interface */
#undef INTERFACE
#define INTERFACE IAMTVAudioNotification
DECLARE_INTERFACE_( IAMTVAudioNotification, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTVAudioNotification methods */
STDMETHOD( OnEvent )( THIS_ AMTVAudioEventType ) PURE;
};
/* IAMAnalogVideoEncoder interface */
#undef INTERFACE
#define INTERFACE IAMAnalogVideoEncoder
DECLARE_INTERFACE_( IAMAnalogVideoEncoder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMAnalogVideoEncoder methods */
STDMETHOD( get_AvailableTVFormats )( THIS_ long * ) PURE;
STDMETHOD( put_TVFormat )( THIS_ long ) PURE;
STDMETHOD( get_TVFormat )( THIS_ long * ) PURE;
STDMETHOD( put_CopyProtection )( THIS_ long ) PURE;
STDMETHOD( get_CopyProtection )( THIS_ long * ) PURE;
STDMETHOD( put_CCEnable )( THIS_ long ) PURE;
STDMETHOD( get_CCEnable )( THIS_ long * ) PURE;
};
/* IKsPropertySet interface */
#undef INTERFACE
#define INTERFACE IKsPropertySet
DECLARE_INTERFACE_( IKsPropertySet, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IKsPropertySet methods */
STDMETHOD( Set )( THIS_ REFGUID, DWORD, LPVOID, DWORD, LPVOID, DWORD ) PURE;
STDMETHOD( Get )( THIS_ REFGUID, DWORD, LPVOID, DWORD, LPVOID, DWORD, DWORD * ) PURE;
STDMETHOD( QuerySupported )( THIS_ REFGUID, DWORD, DWORD * ) PURE;
};
/* IMediaPropertyBag interface */
#undef INTERFACE
#define INTERFACE IMediaPropertyBag
DECLARE_INTERFACE_( IMediaPropertyBag, IPropertyBag ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPropertyBag methods */
STDMETHOD( Read )( THIS_ LPCOLESTR, VARIANT *, IErrorLog * ) PURE;
STDMETHOD( Write )( THIS_ LPCOLESTR, VARIANT * ) PURE;
/* IMediaPropertyBag methods */
STDMETHOD( EnumProperty )( THIS_ ULONG, VARIANT *, VARIANT * ) PURE;
};
typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
/* IPersistMediaPropertyBag interface */
#undef INTERFACE
#define INTERFACE IPersistMediaPropertyBag
DECLARE_INTERFACE_( IPersistMediaPropertyBag, IPersist ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPersist methods */
STDMETHOD( GetClassID )( THIS_ CLSID * ) PURE;
/* IPersistMediaPropertyBag methods */
STDMETHOD( InitNew )( THIS ) PURE;
STDMETHOD( Load )( THIS_ IMediaPropertyBag *, IErrorLog * ) PURE;
STDMETHOD( Save )( THIS_ IMediaPropertyBag *, BOOL, BOOL ) PURE;
};
typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
/* IAMPhysicalPinInfo interface */
#undef INTERFACE
#define INTERFACE IAMPhysicalPinInfo
DECLARE_INTERFACE_( IAMPhysicalPinInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMPhysicalPinInfo methods */
STDMETHOD( GetPhysicalType )( THIS_ long *, LPOLESTR * ) PURE;
};
typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
/* IAMExtDevice interface */
#undef INTERFACE
#define INTERFACE IAMExtDevice
DECLARE_INTERFACE_( IAMExtDevice, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMExtDevice methods */
STDMETHOD( GetCapability )( THIS_ long, long *, double * ) PURE;
STDMETHOD( get_ExternalDeviceID )( THIS_ LPOLESTR * ) PURE;
STDMETHOD( get_ExternalDeviceVersion )( THIS_ LPOLESTR * ) PURE;
STDMETHOD( put_DevicePower )( THIS_ long ) PURE;
STDMETHOD( get_DevicePower )( THIS_ long * ) PURE;
STDMETHOD( Calibrate )( THIS_ HEVENT, long, long * ) PURE;
STDMETHOD( put_DevicePort )( THIS_ long ) PURE;
STDMETHOD( get_DevicePort )( THIS_ long * ) PURE;
};
typedef IAMExtDevice *PEXTDEVICE;
/* IAMExtTransport interface */
#undef INTERFACE
#define INTERFACE IAMExtTransport
DECLARE_INTERFACE_( IAMExtTransport, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMExtTransport methods */
STDMETHOD( GetCapability )( THIS_ long, long *, double * ) PURE;
STDMETHOD( put_MediaState )( THIS_ long ) PURE;
STDMETHOD( get_MediaState )( THIS_ long * ) PURE;
STDMETHOD( put_LocalControl )( THIS_ long ) PURE;
STDMETHOD( get_LocalControl )( THIS_ long * ) PURE;
STDMETHOD( GetStatus )( THIS_ long, long * ) PURE;
STDMETHOD( GetTransportBasicParameters )( THIS_ long, long *, LPOLESTR * ) PURE;
STDMETHOD( SetTransportBasicParameters )( THIS_ long, long, LPCOLESTR ) PURE;
STDMETHOD( GetTransportVideoParameters )( THIS_ long, long * ) PURE;
STDMETHOD( SetTransportVideoParameters )( THIS_ long, long ) PURE;
STDMETHOD( GetTransportAudioParameters )( THIS_ long, long * ) PURE;
STDMETHOD( SetTransportAudioParameters )( THIS_ long, long ) PURE;
STDMETHOD( put_Mode )( THIS_ long ) PURE;
STDMETHOD( get_Mode )( THIS_ long * ) PURE;
STDMETHOD( put_Rate )( THIS_ double ) PURE;
STDMETHOD( get_Rate )( THIS_ double * ) PURE;
STDMETHOD( GetChase )( THIS_ long *, long *, HEVENT * ) PURE;
STDMETHOD( SetChase )( THIS_ long, long, HEVENT ) PURE;
STDMETHOD( GetBump )( THIS_ long *, long * ) PURE;
STDMETHOD( SetBump )( THIS_ long, long ) PURE;
STDMETHOD( get_AntiClogControl )( THIS_ long * ) PURE;
STDMETHOD( put_AntiClogControl )( THIS_ long ) PURE;
STDMETHOD( GetEditPropertySet )( THIS_ long, long * ) PURE;
STDMETHOD( SetEditPropertySet )( THIS_ long *, long ) PURE;
STDMETHOD( GetEditProperty )( THIS_ long, long, long * ) PURE;
STDMETHOD( SetEditProperty )( THIS_ long, long, long ) PURE;
STDMETHOD( get_EditStart )( THIS_ long * ) PURE;
STDMETHOD( put_EditStart )( THIS_ long ) PURE;
};
typedef IAMExtTransport *PIAMEXTTRANSPORT;
/* IAMTimecodeReader interface */
#undef INTERFACE
#define INTERFACE IAMTimecodeReader
DECLARE_INTERFACE_( IAMTimecodeReader, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTimecodeReader methods */
STDMETHOD( GetTCRMode )( THIS_ long, long * ) PURE;
STDMETHOD( SetTCRMode )( THIS_ long, long ) PURE;
STDMETHOD( put_VITCLine )( THIS_ long ) PURE;
STDMETHOD( get_VITCLine )( THIS_ long * ) PURE;
STDMETHOD( GetTimecode )( THIS_ PTIMECODE_SAMPLE ) PURE;
};
typedef IAMTimecodeReader *PIAMTIMECODEREADER;
/* IAMTimecodeGenerator interface */
#undef INTERFACE
#define INTERFACE IAMTimecodeGenerator
DECLARE_INTERFACE_( IAMTimecodeGenerator, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTimecodeGenerator methods */
STDMETHOD( GetTCGMode )( THIS_ long, long * ) PURE;
STDMETHOD( SetTCGMode )( THIS_ long, long ) PURE;
STDMETHOD( put_VITCLine )( THIS_ long ) PURE;
STDMETHOD( get_VITCLine )( THIS_ long * ) PURE;
STDMETHOD( SetTimecode )( THIS_ PTIMECODE_SAMPLE ) PURE;
STDMETHOD( GetTimecode )( THIS_ PTIMECODE_SAMPLE ) PURE;
};
typedef IAMTimecodeGenerator *LPIAMTIMECODEGENERATOR;
/* IAMTimecodeDisplay interface */
#undef INTERFACE
#define INTERFACE IAMTimecodeDisplay
DECLARE_INTERFACE_( IAMTimecodeDisplay, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMTimecodeDisplay methods */
STDMETHOD( GetTCDisplayEnable )( THIS_ long * ) PURE;
STDMETHOD( SetTCDisplayEnable )( THIS_ long ) PURE;
STDMETHOD( GetTCDisplay )( THIS_ long, long * ) PURE;
STDMETHOD( SetTCDisplay )( THIS_ long, long ) PURE;
};
typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
/* IAMDevMemoryAllocator interface */
#undef INTERFACE
#define INTERFACE IAMDevMemoryAllocator
DECLARE_INTERFACE_( IAMDevMemoryAllocator, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMDevMemoryAllocator methods */
STDMETHOD( GetInfo )( THIS_ DWORD *, DWORD *, DWORD *, DWORD * ) PURE;
STDMETHOD( CheckMemory )( THIS_ const BYTE * ) PURE;
STDMETHOD( Alloc )( THIS_ BYTE **, DWORD * ) PURE;
STDMETHOD( Free )( THIS_ BYTE * ) PURE;
STDMETHOD( GetDevMemoryObject )( THIS_ IUnknown **, IUnknown * ) PURE;
};
typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
/* IAMDevMemoryControl interface */
#undef INTERFACE
#define INTERFACE IAMDevMemoryControl
DECLARE_INTERFACE_( IAMDevMemoryControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMDevMemoryControl methods */
STDMETHOD( QueryWriteSync )( THIS ) PURE;
STDMETHOD( WriteSync )( THIS ) PURE;
STDMETHOD( GetDevId )( THIS_ DWORD * ) PURE;
};
typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
/* IAMStreamSelect interface */
#undef INTERFACE
#define INTERFACE IAMStreamSelect
DECLARE_INTERFACE_( IAMStreamSelect, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMStreamSelect methods */
STDMETHOD( Count )( THIS_ DWORD * ) PURE;
STDMETHOD( Info )( THIS_ long, AM_MEDIA_TYPE **, DWORD *, LCID *, DWORD *, LPWSTR *, IUnknown **, IUnknown ** ) PURE;
STDMETHOD( Enable )( THIS_ long, DWORD ) PURE;
};
typedef IAMStreamSelect *PAMSTREAMSELECT;
/* IAMResourceControl interface */
#undef INTERFACE
#define INTERFACE IAMResourceControl
DECLARE_INTERFACE_( IAMResourceControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMResourceControl methods */
STDMETHOD( Reserve )( THIS_ DWORD, PVOID ) PURE;
};
/* IAMClockAdjust interface */
#undef INTERFACE
#define INTERFACE IAMClockAdjust
DECLARE_INTERFACE_( IAMClockAdjust, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMClockAdjust methods */
STDMETHOD( SetClockDelta )( THIS_ REFERENCE_TIME ) PURE;
};
/* IAMFilterMiscFlags interface */
#undef INTERFACE
#define INTERFACE IAMFilterMiscFlags
DECLARE_INTERFACE_( IAMFilterMiscFlags, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMFilterMiscFlags methods */
STDMETHOD_( ULONG, GetMiscFlags )( THIS ) PURE;
};
/* IDrawVideoImage interface */
#undef INTERFACE
#define INTERFACE IDrawVideoImage
DECLARE_INTERFACE_( IDrawVideoImage, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDrawVideoImage methods */
STDMETHOD( DrawVideoImageBegin )( THIS ) PURE;
STDMETHOD( DrawVideoImageEnd )( THIS ) PURE;
STDMETHOD( DrawVideoImageDraw )( THIS_ HDC, LPRECT, LPRECT ) PURE;
};
/* IDecimateVideoImage interface */
#undef INTERFACE
#define INTERFACE IDecimateVideoImage
DECLARE_INTERFACE_( IDecimateVideoImage, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDecimateVideoImage methods */
STDMETHOD( SetDecimationImageSize )( THIS_ long, long ) PURE;
STDMETHOD( ResetDecimationImageSize )( THIS ) PURE;
};
/* IAMVideoDecimationProperties interface */
#undef INTERFACE
#define INTERFACE IAMVideoDecimationProperties
DECLARE_INTERFACE_( IAMVideoDecimationProperties, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMVideoDecimationProperties methods */
STDMETHOD( QueryDecimationUsage )( THIS_ DECIMATION_USAGE * ) PURE;
STDMETHOD( SetDecimationUsage )( THIS_ DECIMATION_USAGE ) PURE;
};
/* IVideoFrameStep interface */
#undef INTERFACE
#define INTERFACE IVideoFrameStep
DECLARE_INTERFACE_( IVideoFrameStep, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVideoFrameStep methods */
STDMETHOD( Step )( THIS_ DWORD, IUnknown * ) PURE;
STDMETHOD( CanStep )( THIS_ long, IUnknown * ) PURE;
STDMETHOD( CancelStep )( THIS ) PURE;
};
/* IAMLatency interface */
#undef INTERFACE
#define INTERFACE IAMLatency
DECLARE_INTERFACE_( IAMLatency, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMLatency methods */
STDMETHOD( GetLatency )( THIS_ REFERENCE_TIME * ) PURE;
};
/* IAMPushSource interface */
#undef INTERFACE
#define INTERFACE IAMPushSource
DECLARE_INTERFACE_( IAMPushSource, IAMLatency ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMLatency methods */
STDMETHOD( GetLatency )( THIS_ REFERENCE_TIME * ) PURE;
/* IAMPushSource methods */
STDMETHOD( GetPushSourceFlags )( THIS_ ULONG * ) PURE;
STDMETHOD( SetPushSourceFlags )( THIS_ ULONG ) PURE;
STDMETHOD( SetStreamOffset )( THIS_ REFERENCE_TIME ) PURE;
STDMETHOD( GetStreamOffset )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( GetMaxStreamOffset )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( SetMaxStreamOffset )( THIS_ REFERENCE_TIME ) PURE;
};
/* IAMDeviceRemoval interface */
#undef INTERFACE
#define INTERFACE IAMDeviceRemoval
DECLARE_INTERFACE_( IAMDeviceRemoval, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMDeviceRemoval methods */
STDMETHOD( DeviceInfo )( THIS_ CLSID *, LPWSTR * ) PURE;
STDMETHOD( Reassociate )( THIS ) PURE;
STDMETHOD( Disassociate )( THIS ) PURE;
};
/* IDVEnc interface */
#undef INTERFACE
#define INTERFACE IDVEnc
DECLARE_INTERFACE_( IDVEnc, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDVEnc methods */
STDMETHOD( get_IFormatResolution )( THIS_ int *, int *, int *, BYTE, DVINFO * ) PURE;
STDMETHOD( put_IFormatResolution )( THIS_ int, int, int, BYTE, DVINFO * ) PURE;
};
/* IIPDVDec interface */
#undef INTERFACE
#define INTERFACE IIPDVDec
DECLARE_INTERFACE_( IIPDVDec, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IIPDVDec methods */
STDMETHOD( get_IPDisplay )( THIS_ int * ) PURE;
STDMETHOD( put_IPDisplay )( THIS_ int ) PURE;
};
/* IDVRGB219 interface */
#undef INTERFACE
#define INTERFACE IDVRGB219
DECLARE_INTERFACE_( IDVRGB219, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDVRGB219 methods */
STDMETHOD( SetRGB219 )( THIS_ BOOL ) PURE;
};
/* IDVSplitter interface */
#undef INTERFACE
#define INTERFACE IDVSplitter
DECLARE_INTERFACE_( IDVSplitter, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDVSplitter methods */
STDMETHOD( DiscardAlternateVideoFrames )( THIS_ int ) PURE;
};
/* IAMAudioRendererStats interface */
#undef INTERFACE
#define INTERFACE IAMAudioRendererStats
DECLARE_INTERFACE_( IAMAudioRendererStats, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMAudioRendererStats methods */
STDMETHOD( GetStatParam )( THIS_ DWORD, DWORD *, DWORD * ) PURE;
};
/* IAMGraphStreams interface */
#undef INTERFACE
#define INTERFACE IAMGraphStreams
DECLARE_INTERFACE_( IAMGraphStreams, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMGraphStreams methods */
STDMETHOD( FindUpstreamInterface )( THIS_ IPin *, REFIID, void **, DWORD ) PURE;
STDMETHOD( SyncUsingStreamOffset )( THIS_ BOOL ) PURE;
STDMETHOD( SetMaxGraphLatency )( THIS_ REFERENCE_TIME ) PURE;
};
/* IAMOverlayFX interface */
#undef INTERFACE
#define INTERFACE IAMOverlayFX
DECLARE_INTERFACE_( IAMOverlayFX, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMOverlayFX methods */
STDMETHOD( QueryOverlayFXCaps )( THIS_ DWORD * ) PURE;
STDMETHOD( SetOverlayFX )( THIS_ DWORD ) PURE;
STDMETHOD( GetOverlayFX )( THIS_ DWORD * ) PURE;
};
/* IAMOpenProgress interface */
#undef INTERFACE
#define INTERFACE IAMOpenProgress
DECLARE_INTERFACE_( IAMOpenProgress, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMOpenProgress methods */
STDMETHOD( QueryProgress )( THIS_ LONGLONG *, LONGLONG * ) PURE;
STDMETHOD( AbortOperation )( THIS ) PURE;
};
/* IMpeg2Demultiplexer interface */
#undef INTERFACE
#define INTERFACE IMpeg2Demultiplexer
DECLARE_INTERFACE_( IMpeg2Demultiplexer, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMpeg2Demultiplexer methods */
STDMETHOD( CreateOutputPin )( THIS_ AM_MEDIA_TYPE *, LPWSTR, IPin ** ) PURE;
STDMETHOD( SetOutputPinMediaType )( THIS_ LPWSTR, AM_MEDIA_TYPE * ) PURE;
STDMETHOD( DeleteOutputPin )( THIS_ LPWSTR ) PURE;
};
/* IEnumStreamIdMap interface */
#undef INTERFACE
#define INTERFACE IEnumStreamIdMap
DECLARE_INTERFACE_( IEnumStreamIdMap, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEnumStreamIdMap methods */
STDMETHOD( Next )( THIS_ ULONG, STREAM_ID_MAP *, ULONG * ) PURE;
STDMETHOD( Skip )( THIS_ ULONG ) PURE;
STDMETHOD( Reset )( THIS ) PURE;
STDMETHOD( Clone )( THIS_ IEnumStreamIdMap ** ) PURE;
};
/* IMPEG2StreamIdMap interface */
#undef INTERFACE
#define INTERFACE IMPEG2StreamIdMap
DECLARE_INTERFACE_( IMPEG2StreamIdMap, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IMPEG2StreamIdMap methods */
STDMETHOD( MapStreamId )( THIS_ ULONG, DWORD, ULONG, int ) PURE;
STDMETHOD( UnmapStreamId )( THIS_ ULONG, ULONG * ) PURE;
STDMETHOD( EnumStreamIdMap )( THIS_ IEnumStreamIdMap ** ) PURE;
};
/* IRegisterServiceProvider interface */
#undef INTERFACE
#define INTERFACE IRegisterServiceProvider
DECLARE_INTERFACE_( IRegisterServiceProvider, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IRegisterServiceProvider methods */
STDMETHOD( RegisterService )( THIS_ REFGUID, IUnknown * ) PURE;
};
/* IAMClockSlave interface */
#undef INTERFACE
#define INTERFACE IAMClockSlave
DECLARE_INTERFACE_( IAMClockSlave, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMClockSlave methods */
STDMETHOD( SetErrorTolerance )( THIS_ DWORD ) PURE;
STDMETHOD( GetErrorTolerance )( THIS_ DWORD * ) PURE;
};
/* IAMGraphBuilderCallback interface */
#undef INTERFACE
#define INTERFACE IAMGraphBuilderCallback
DECLARE_INTERFACE_( IAMGraphBuilderCallback, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMGraphBuilderCallback methods */
STDMETHOD( SelectedFilter )( THIS_ IMoniker * ) PURE;
STDMETHOD( CreatedFilter )( THIS_ IBaseFilter * ) PURE;
};
/* ICodecAPI interface */
#undef INTERFACE
#define INTERFACE ICodecAPI
DECLARE_INTERFACE_( ICodecAPI, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* ICodecAPI methods */
STDMETHOD( IsSupported )( THIS_ const GUID * ) PURE;
STDMETHOD( IsModifiable )( THIS_ const GUID * ) PURE;
STDMETHOD( GetParameterRange )( THIS_ const GUID *, VARIANT *, VARIANT *, VARIANT * ) PURE;
STDMETHOD( GetParameterValues )( THIS_ const GUID *, VARIANT **, ULONG * ) PURE;
STDMETHOD( GetDefaultValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( GetValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( SetValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( RegisterForEvent )( THIS_ const GUID *, LONG_PTR ) PURE;
STDMETHOD( UnregisterForEvent )( THIS_ const GUID * ) PURE;
STDMETHOD( SetAllDefaults )( THIS ) PURE;
STDMETHOD( SetValueWithNotify )( THIS_ const GUID *, VARIANT *, GUID **, ULONG * ) PURE;
STDMETHOD( SetAllDefaultsWithNotify )( THIS_ GUID **, ULONG * ) PURE;
STDMETHOD( GetAllSettings )( THIS_ IStream * ) PURE;
STDMETHOD( SetAllSettings )( THIS_ IStream * ) PURE;
STDMETHOD( SetAllSettingsWithNotify )( THIS_ IStream *, GUID **, ULONG * ) PURE;
};
/* IGetCapabilitiesKey interface */
#undef INTERFACE
#define INTERFACE IGetCapabilitiesKey
DECLARE_INTERFACE_( IGetCapabilitiesKey, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IGetCapabilitiesKey methods */
STDMETHOD( GetCapabilitiesKey )( THIS_ HKEY * ) PURE;
};
/* IEncoderAPI interface */
#undef INTERFACE
#define INTERFACE IEncoderAPI
DECLARE_INTERFACE_( IEncoderAPI, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEncoderAPI methods */
STDMETHOD( IsSupported )( THIS_ const GUID * ) PURE;
STDMETHOD( IsAvailable )( THIS_ const GUID * ) PURE;
STDMETHOD( GetParameterRange )( THIS_ const GUID *, VARIANT *, VARIANT *, VARIANT * ) PURE;
STDMETHOD( GetParameterValues )( THIS_ const GUID *, VARIANT **, ULONG * ) PURE;
STDMETHOD( GetDefaultValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( GetValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( SetValue )( THIS_ const GUID *, VARIANT * ) PURE;
};
/* IVideoEncoder interface */
#undef INTERFACE
#define INTERFACE IVideoEncoder
DECLARE_INTERFACE_( IVideoEncoder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IEncoderAPI methods */
STDMETHOD( IsSupported )( THIS_ const GUID * ) PURE;
STDMETHOD( IsAvailable )( THIS_ const GUID * ) PURE;
STDMETHOD( GetParameterRange )( THIS_ const GUID *, VARIANT *, VARIANT *, VARIANT * ) PURE;
STDMETHOD( GetParameterValues )( THIS_ const GUID *, VARIANT **, ULONG * ) PURE;
STDMETHOD( GetDefaultValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( GetValue )( THIS_ const GUID *, VARIANT * ) PURE;
STDMETHOD( SetValue )( THIS_ const GUID *, VARIANT * ) PURE;
};
/* IAMDecoderCaps interface */
#undef INTERFACE
#define INTERFACE IAMDecoderCaps
DECLARE_INTERFACE_( IAMDecoderCaps, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMDecoderCaps methods */
STDMETHOD( GetDecoderCaps )( THIS_ DWORD, DWORD * ) PURE;
};
/* IAMCertifiedOutputProtection interface */
#undef INTERFACE
#define INTERFACE IAMCertifiedOutputProtection
DECLARE_INTERFACE_( IAMCertifiedOutputProtection, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMCertifiedOutputProtection methods */
STDMETHOD( KeyExchange )( THIS_ GUID *, BYTE **, DWORD * ) PURE;
STDMETHOD( SessionSequenceStart )( THIS_ AMCOPPSignature * ) PURE;
STDMETHOD( ProtectionCommandCommand )( THIS_ const AMCOPPCommand * ) PURE;
STDMETHOD( ProtectionStatus )( THIS_ const AMCOPPStatusInput *, AMCOPPStatusOutput * ) PURE;
};
/* IAMAsyncReaderTimestampScaling interface */
#undef INTERFACE
#define INTERFACE IAMAsyncReaderTimestampScaling
DECLARE_INTERFACE_( IAMAsyncReaderTimestampScaling, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMAsyncReaderTimestampScaling methods */
STDMETHOD( GetTimestampMode )( THIS_ BOOL * ) PURE;
STDMETHOD( SetTimestampMode )( THIS_ BOOL ) PURE;
};
/* IAMPluginControl interface */
#undef INTERFACE
#define INTERFACE IAMPluginControl
DECLARE_INTERFACE_( IAMPluginControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IAMPluginControl methods */
STDMETHOD( GetPreferredClsid )( THIS_ REFGUID, CLSID * ) PURE;
STDMETHOD( GetPreferredClsidByIndex )( THIS_ DWORD, GUID *, CLSID * ) PURE;
STDMETHOD( SetPreferredClsid )( THIS_ REFGUID, const CLSID * ) PURE;
STDMETHOD( IsDisabled )( THIS_ REFCLSID ) PURE;
STDMETHOD( GetDisabledByIndex )( THIS_ DWORD, CLSID * ) PURE;
STDMETHOD( SetDisabled )( THIS_ REFCLSID, BOOL ) PURE;
STDMETHOD( IsLegacyDisabled )( THIS_ LPCWSTR ) PURE;
};
/* IDvdControl interface */
#undef INTERFACE
#define INTERFACE IDvdControl
DECLARE_INTERFACE_( IDvdControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdControl methods */
STDMETHOD( TitlePlay )( THIS_ ULONG ) PURE;
STDMETHOD( ChapterPlay )( THIS_ ULONG, ULONG ) PURE;
STDMETHOD( TimePlay )( THIS_ ULONG, ULONG ) PURE;
STDMETHOD( StopForResume )( THIS ) PURE;
STDMETHOD( GoUp )( THIS ) PURE;
STDMETHOD( TimeSearch )( THIS_ ULONG ) PURE;
STDMETHOD( ChapterSearch )( THIS_ ULONG ) PURE;
STDMETHOD( PrevPGSearch )( THIS ) PURE;
STDMETHOD( TopPGSearch )( THIS ) PURE;
STDMETHOD( NextPGSearch )( THIS ) PURE;
STDMETHOD( ForwardScan )( THIS_ double ) PURE;
STDMETHOD( BackwardScan )( THIS_ double ) PURE;
STDMETHOD( MenuCall )( THIS_ DVD_MENU_ID ) PURE;
STDMETHOD( Resume )( THIS ) PURE;
STDMETHOD( UpperButtonSelect )( THIS ) PURE;
STDMETHOD( LowerButtonSelect )( THIS ) PURE;
STDMETHOD( LeftButtonSelect )( THIS ) PURE;
STDMETHOD( RightButtonSelect )( THIS ) PURE;
STDMETHOD( ButtonActivate )( THIS ) PURE;
STDMETHOD( ButtonSelectAndActivate )( THIS_ ULONG ) PURE;
STDMETHOD( StillOff )( THIS ) PURE;
STDMETHOD( PauseOn )( THIS ) PURE;
STDMETHOD( PauseOff )( THIS ) PURE;
STDMETHOD( MenuLanguageSelect )( THIS_ LCID ) PURE;
STDMETHOD( AudioStreamChange )( THIS_ ULONG ) PURE;
STDMETHOD( SubpictureStreamChange )( THIS_ ULONG, BOOL ) PURE;
STDMETHOD( AngleChange )( THIS_ ULONG ) PURE;
STDMETHOD( ParentalLevelSelect )( THIS_ ULONG ) PURE;
STDMETHOD( ParentalCountrySelect )( THIS_ WORD ) PURE;
STDMETHOD( KaraokeAudioPresentationModeChange )( THIS_ ULONG ) PURE;
STDMETHOD( VideoModePreferrence )( THIS_ ULONG ) PURE;
STDMETHOD( SetRoot )( THIS_ LPCWSTR ) PURE;
STDMETHOD( MouseActivate )( THIS_ POINT ) PURE;
STDMETHOD( MouseSelect )( THIS_ POINT ) PURE;
STDMETHOD( ChapterPlayAutoStop )( THIS_ ULONG, ULONG, ULONG ) PURE;
};
/* IDvdInfo interface */
#undef INTERFACE
#define INTERFACE IDvdInfo
DECLARE_INTERFACE_( IDvdInfo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdInfo methods */
STDMETHOD( GetCurrentDomain )( THIS_ DVD_DOMAIN * ) PURE;
STDMETHOD( GetCurrentLocation )( THIS_ DVD_PLAYBACK_LOCATION * ) PURE;
STDMETHOD( GetTotalTitleTime )( THIS_ ULONG * ) PURE;
STDMETHOD( GetCurrentButton )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentAngle )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentAudio )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentSubpicture )( THIS_ ULONG *, ULONG *, BOOL * ) PURE;
STDMETHOD( GetCurrentUOPS )( THIS_ VALID_UOP_SOMTHING_OR_OTHER * ) PURE;
STDMETHOD( GetAllSPRMs )( THIS_ SPRMARRAY * ) PURE;
STDMETHOD( GetAllGPRMs )( THIS_ GPRMARRAY * ) PURE;
STDMETHOD( GetAudioLanguage )( THIS_ ULONG, LCID * ) PURE;
STDMETHOD( GetSubpictureLanguage )( THIS_ ULONG, LCID * ) PURE;
STDMETHOD( GetTitleLanguage )( THIS_ ULONG, DVD_ATR * ) PURE;
STDMETHOD( GetVMGAttributes )( THIS_ DVD_ATR * ) PURE;
STDMETHOD( GetCurrentVideoAttributes )( THIS_ DVD_VideoATR * ) PURE;
STDMETHOD( GetCurrentAudioAttributes )( THIS_ DVD_AudioATR * ) PURE;
STDMETHOD( GetCurrentSubpictureAttributes )( THIS_ DVD_SubpictureATR * ) PURE;
STDMETHOD( GetCurrentVolumeInfo )( THIS_ ULONG *, ULONG *, DVD_DISC_SIDE *, ULONG * ) PURE;
STDMETHOD( GetDVDTextInfo )( THIS_ BYTE *, ULONG, ULONG * ) PURE;
STDMETHOD( GetPlayerParentalLevel )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetNumberOfChapters )( THIS_ ULONG, ULONG * ) PURE;
STDMETHOD( GetTitleParentalLevels )( THIS_ ULONG, ULONG * ) PURE;
STDMETHOD( GetRoot )( THIS_ LPSTR, ULONG, ULONG * ) PURE;
};
/* IDvdCmd interface */
#undef INTERFACE
#define INTERFACE IDvdCmd
DECLARE_INTERFACE_( IDvdCmd, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdCmd methods */
STDMETHOD( WaitForStart )( THIS ) PURE;
STDMETHOD( WaitForEnd )( THIS ) PURE;
};
/* IDvdState interface */
#undef INTERFACE
#define INTERFACE IDvdState
DECLARE_INTERFACE_( IDvdState, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdState methods */
STDMETHOD( GetDiscID )( THIS_ ULONGLONG * ) PURE;
STDMETHOD( GetParentalLevel )( THIS_ ULONG * ) PURE;
};
/* IDvdControl2 interface */
#undef INTERFACE
#define INTERFACE IDvdControl2
DECLARE_INTERFACE_( IDvdControl2, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdControl2 methods */
STDMETHOD( PlayTitle )( THIS_ ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayChapterInTitle )( THIS_ ULONG, ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayAtTimeInTitle )( THIS_ ULONG, DVD_HMSF_TIMECODE *, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( Stop )( THIS ) PURE;
STDMETHOD( ReturnFromSubmenu )( THIS_ DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayAtTime )( THIS_ DVD_HMSF_TIMECODE *, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayChapter )( THIS_ ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayPrevChapter )( THIS_ DWORD, IDvdCmd ** ) PURE;
STDMETHOD( ReplayChapter )( THIS_ DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayNextChapter )( THIS_ DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayForwards )( THIS_ double, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayBackwards )( THIS_ double, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( ShowMenu )( THIS_ DVD_MENU_ID, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( Resume )( THIS_ DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SelectRelativeButton )( THIS_ DVD_RELATIVE_BUTTON ) PURE;
STDMETHOD( ActivateButton )( THIS ) PURE;
STDMETHOD( SelectButton )( THIS_ ULONG ) PURE;
STDMETHOD( SelectAndActivateButton )( THIS_ ULONG ) PURE;
STDMETHOD( StillOff )( THIS ) PURE;
STDMETHOD( Pause )( THIS_ BOOL ) PURE;
STDMETHOD( SelectAudioStream )( THIS_ ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SelectSubpictureStream )( THIS_ ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SetSubpictureState )( THIS_ BOOL, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SelectAngle )( THIS_ ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SelectParentalLevel )( THIS_ ULONG ) PURE;
STDMETHOD( SelectParentalCountry )( THIS_ BYTE [2] ) PURE;
STDMETHOD( SelectKarokeAudioPresentationMode )( THIS_ ULONG ) PURE;
STDMETHOD( SelectVideoModePreference )( THIS_ ULONG ) PURE;
STDMETHOD( SetDVDDirectory )( THIS_ LPCWSTR ) PURE;
STDMETHOD( ActivateAtPosition )( THIS_ POINT ) PURE;
STDMETHOD( SelectAtPosition )( THIS_ POINT ) PURE;
STDMETHOD( PlayChaptersAutoStop )( THIS_ ULONG, ULONG, ULONG, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( AcceptParentalLevelChange )( THIS_ BOOL ) PURE;
STDMETHOD( SetOption )( THIS_ DVD_OPTION_FLAG, BOOL ) PURE;
STDMETHOD( SetState )( THIS_ IDvdState *, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( PlayPeriodInTitleAutoStop )( THIS_ ULONG, DVD_HMSF_TIMECODE *, DVD_HMSF_TIMECODE *, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SetGPRM )( THIS_ ULONG, WORD, DWORD, IDvdCmd ** ) PURE;
STDMETHOD( SelectDefaultMenuLanguage )( THIS_ LCID ) PURE;
STDMETHOD( SelectDefaultAudioLanguage )( THIS_ LCID, DVD_AUDIO_LANG_EXT ) PURE;
STDMETHOD( SelectDefaultSubpictureLanguage )( THIS_ LCID, DVD_SUBPICTURE_LANG_EXT ) PURE;
};
/* IDvdInfo2 interface */
#undef INTERFACE
#define INTERFACE IDvdInfo2
DECLARE_INTERFACE_( IDvdInfo2, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdInfo2 methods */
STDMETHOD( GetCurrentDomain )( THIS_ DVD_DOMAIN * ) PURE;
STDMETHOD( GetCurrentLocation )( THIS_ DVD_PLAYBACK_LOCATION2 * ) PURE;
STDMETHOD( GetTotalTitleTime )( THIS_ DVD_HMSF_TIMECODE *, ULONG * ) PURE;
STDMETHOD( GetCurrentButton )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentAngle )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentAudio )( THIS_ ULONG *, ULONG * ) PURE;
STDMETHOD( GetCurrentSubpicture )( THIS_ ULONG *, ULONG *, BOOL * ) PURE;
STDMETHOD( GetCurrentUOPS )( THIS_ ULONG * ) PURE;
STDMETHOD( GetAllSPRMs )( THIS_ SPRMARRAY * ) PURE;
STDMETHOD( GetAllGPRMs )( THIS_ GPRMARRAY * ) PURE;
STDMETHOD( GetAudioLanguage )( THIS_ ULONG, LCID * ) PURE;
STDMETHOD( GetSubpictureLanguage )( THIS_ ULONG, LCID * ) PURE;
STDMETHOD( GetTitleAttributes )( THIS_ ULONG, DVD_MenuAttributes *, DVD_TitleAttributes * ) PURE;
STDMETHOD( GetVMGAttributes )( THIS_ DVD_MenuAttributes * ) PURE;
STDMETHOD( GetCurrentVideoAttributes )( THIS_ DVD_VideoAttributes * ) PURE;
STDMETHOD( GetAudioAttributes )( THIS_ ULONG, DVD_AudioAttributes * ) PURE;
STDMETHOD( GetKaraokeAttributes )( THIS_ ULONG, DVD_KaraokeAttributes * ) PURE;
STDMETHOD( GetSubpictureAttributes )( THIS_ ULONG, DVD_SubpictureAttributes * ) PURE;
STDMETHOD( GetDVDVolumeInfo )( THIS_ ULONG *, ULONG *, DVD_DISC_SIDE *, ULONG * ) PURE;
STDMETHOD( GetDVDTextNumberOfLanguages )( THIS_ ULONG * ) PURE;
STDMETHOD( GetDVDTextLanguageInfo )( THIS_ ULONG, ULONG *, LCID *, enum DVD_TextCharSet * ) PURE;
STDMETHOD( GetDVDTextStringAsNative )( THIS_ ULONG, ULONG, BYTE *, ULONG, ULONG *, enum DVD_TextStringType * ) PURE;
STDMETHOD( GetDVDTextStringAsUnicode )( THIS_ ULONG, ULONG, WCHAR *, ULONG, ULONG *, enum DVD_TextStringType * ) PURE;
STDMETHOD( GetPlayerParentalLevel )( THIS_ ULONG *, BYTE [2] ) PURE;
STDMETHOD( GetNumberOfChapters )( THIS_ ULONG, ULONG * ) PURE;
STDMETHOD( GetTitleParentalLevels )( THIS_ ULONG, ULONG * ) PURE;
STDMETHOD( GetDVDDirectory )( THIS_ LPWSTR, ULONG, ULONG * ) PURE;
STDMETHOD( IsAudioStreamEnabled )( THIS_ ULONG, BOOL * ) PURE;
STDMETHOD( GetDiscID )( THIS_ LPCWSTR, ULONGLONG * ) PURE;
STDMETHOD( GetState )( THIS_ IDvdState ** ) PURE;
STDMETHOD( GetMenuLanguages )( THIS_ LCID *, ULONG, ULONG * ) PURE;
STDMETHOD( GetButtonAtPosition )( THIS_ POINT, ULONG * ) PURE;
STDMETHOD( GetCmdFromIndex )( THIS_ LONG_PTR, IDvdCmd ** ) PURE;
STDMETHOD( GetDefaultMenuLanguage )( THIS_ LCID * ) PURE;
STDMETHOD( GetDefaultAudioLanguage )( THIS_ LCID *, DVD_AUDIO_LANG_EXT * ) PURE;
STDMETHOD( GetDefaultSubpictureLanguage )( THIS_ LCID *, DVD_SUBPICTURE_LANG_EXT * ) PURE;
STDMETHOD( GetDecoderCaps )( THIS_ DVD_DECODER_CAPS * ) PURE;
STDMETHOD( GetButtonRect )( THIS_ ULONG, RECT * ) PURE;
STDMETHOD( IsSubpictureStreamEnabled )( THIS_ ULONG, BOOL * ) PURE;
};
/* IDvdGraphBuilder interface */
#undef INTERFACE
#define INTERFACE IDvdGraphBuilder
DECLARE_INTERFACE_( IDvdGraphBuilder, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDvdGraphBuilder methods */
STDMETHOD( GetFiltergraph )( THIS_ IGraphBuilder ** ) PURE;
STDMETHOD( GetDvdInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD( RenderDvdVideoVolume )( THIS_ LPCWSTR, DWORD, AM_DVD_RENDERSTATUS * ) PURE;
};
/* IDDrawExclModeVideo interface */
#undef INTERFACE
#define INTERFACE IDDrawExclModeVideo
DECLARE_INTERFACE_( IDDrawExclModeVideo, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDDrawExclModeVideo methods */
STDMETHOD( SetDDrawObject )( THIS_ IDirectDraw * ) PURE;
STDMETHOD( GetDDrawObject )( THIS_ IDirectDraw **, BOOL * ) PURE;
STDMETHOD( SetDDrawSurface )( THIS_ IDirectDrawSurface * ) PURE;
STDMETHOD( GetDDrawSurface )( THIS_ IDirectDrawSurface **, BOOL * ) PURE;
STDMETHOD( SetDrawParameters )( THIS_ const RECT *, const RECT * ) PURE;
STDMETHOD( GetNativeVideoProps )( THIS_ DWORD *, DWORD *, DWORD *, DWORD * ) PURE;
STDMETHOD( SetCallbackInterface )( THIS_ IDDrawExclModeVideoCallback *, DWORD ) PURE;
};
/* IDDrawExclModeVideoCallback interface */
#undef INTERFACE
#define INTERFACE IDDrawExclModeVideoCallback
DECLARE_INTERFACE_( IDDrawExclModeVideoCallback, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IDDrawExclModeVideoCallback methods */
STDMETHOD( OnUpdateOverlay )( THIS_ BOOL, DWORD, BOOL, const RECT *, const RECT *, BOOL, const RECT *, const RECT * ) PURE;
STDMETHOD( OnUpdateColorKey )( THIS_ const COLORREF *, DWORD ) PURE;
STDMETHOD( OnUpdateSize )( THIS_ DWORD, DWORD, DWORD, DWORD ) PURE;
};
/* IPinConnection interface */
#undef INTERFACE
#define INTERFACE IPinConnection
DECLARE_INTERFACE_( IPinConnection, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPinConnection methods */
STDMETHOD( DynamicQueryAccept )( THIS_ const AM_MEDIA_TYPE * ) PURE;
STDMETHOD( NotifyEndOfStream )( THIS_ HANDLE ) PURE;
STDMETHOD( IsEndPin )( THIS ) PURE;
STDMETHOD( DynamicDisconnect )( THIS ) PURE;
};
/* IPinFlowControl interface */
#undef INTERFACE
#define INTERFACE IPinFlowControl
DECLARE_INTERFACE_( IPinFlowControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IPinFlowControl methods */
STDMETHOD( Block )( THIS_ DWORD, HANDLE ) PURE;
};
/* IGraphConfig interface */
#undef INTERFACE
#define INTERFACE IGraphConfig
DECLARE_INTERFACE_( IGraphConfig, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IGraphConfig methods */
STDMETHOD( Reconnect )( THIS_ IPin *, IPin *, const AM_MEDIA_TYPE *, IBaseFilter *, HANDLE, DWORD ) PURE;
STDMETHOD( Reconfigure )( THIS_ IGraphConfigCallback *, PVOID, DWORD, HANDLE ) PURE;
STDMETHOD( AddFilterToCache )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( EnumCacheFilter )( THIS_ IEnumFilters ** ) PURE;
STDMETHOD( RemoveFilterFromCache )( THIS_ IBaseFilter * ) PURE;
STDMETHOD( GetStartTime )( THIS_ REFERENCE_TIME * ) PURE;
STDMETHOD( PushThroughData )( THIS_ IPin *, IPinConnection *, HANDLE ) PURE;
STDMETHOD( SetFilterFlags )( THIS_ IBaseFilter *, DWORD ) PURE;
STDMETHOD( GetFilterFlags )( THIS_ IBaseFilter *, DWORD * ) PURE;
STDMETHOD( RemoveFilterEx )( THIS_ IBaseFilter *, DWORD ) PURE;
};
/* IGraphConfigCallback interface */
#undef INTERFACE
#define INTERFACE IGraphConfigCallback
DECLARE_INTERFACE_( IGraphConfigCallback, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IGraphConfigCallback methods */
STDMETHOD( Reconfigure )( THIS_ PVOID, DWORD ) PURE;
};
/* IFilterChain interface */
#undef INTERFACE
#define INTERFACE IFilterChain
DECLARE_INTERFACE_( IFilterChain, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IFilterChain methods */
STDMETHOD( StartChain )( THIS_ IBaseFilter *, IBaseFilter * ) PURE;
STDMETHOD( PauseChain )( THIS_ IBaseFilter *, IBaseFilter * ) PURE;
STDMETHOD( StopChain )( THIS_ IBaseFilter *, IBaseFilter * ) PURE;
STDMETHOD( RemoveChain )( THIS_ IBaseFilter *, IBaseFilter * ) PURE;
};
/* IVMRImagePresenter interface */
#undef INTERFACE
#define INTERFACE IVMRImagePresenter
DECLARE_INTERFACE_( IVMRImagePresenter, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRImagePresenter methods */
STDMETHOD( StartPresenting )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( StopPresenting )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( PresentImage )( THIS_ DWORD_PTR, VMRPRESENTATIONINFO * ) PURE;
};
/* IVMRSurfaceAllocator interface */
#undef INTERFACE
#define INTERFACE IVMRSurfaceAllocator
DECLARE_INTERFACE_( IVMRSurfaceAllocator, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRSurfaceAllocator methods */
STDMETHOD( AllocateSurface )( THIS_ DWORD_PTR, VMRALLOCATIONINFO *, DWORD *, LPDIRECTDRAWSURFACE7 * ) PURE;
STDMETHOD( FreeSurface )( THIS_ DWORD_PTR ) PURE;
STDMETHOD( PrepareSurface )( THIS_ DWORD_PTR, LPDIRECTDRAWSURFACE7, DWORD ) PURE;
STDMETHOD( AdviseNotify )( THIS_ IVMRSurfaceAllocatorNotify * ) PURE;
};
/* IVMRSurfaceAllocatorNotify interface */
#undef INTERFACE
#define INTERFACE IVMRSurfaceAllocatorNotify
DECLARE_INTERFACE_( IVMRSurfaceAllocatorNotify, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRSurfaceAllocatorNotify methods */
STDMETHOD( AdviseSurfaceAllocator )( THIS_ DWORD_PTR, IVMRSurfaceAllocator * ) PURE;
STDMETHOD( SetDDrawDevice )( THIS_ LPDIRECTDRAW7, HMONITOR ) PURE;
STDMETHOD( ChangeDDrawDevice )( THIS_ LPDIRECTDRAW7, HMONITOR ) PURE;
STDMETHOD( RestoreDDrawSurfaces )( THIS ) PURE;
STDMETHOD( NotifyEvent )( THIS_ LONG, LONG_PTR, LONG_PTR ) PURE;
STDMETHOD( SetBorderColor )( THIS_ COLORREF ) PURE;
};
/* IVMRWindowlessControl interface */
#undef INTERFACE
#define INTERFACE IVMRWindowlessControl
DECLARE_INTERFACE_( IVMRWindowlessControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRWindowlessControl methods */
STDMETHOD( GetNativeVideoSize )( THIS_ LONG *, LONG *, LONG *, LONG * ) PURE;
STDMETHOD( GetMinIdealVideoSize )( THIS_ LONG *, LONG * ) PURE;
STDMETHOD( GetMaxIdealVideoSize )( THIS_ LONG *, LONG * ) PURE;
STDMETHOD( SetVideoPosition )( THIS_ const LPRECT, const LPRECT ) PURE;
STDMETHOD( GetVideoPosition )( THIS_ LPRECT, LPRECT ) PURE;
STDMETHOD( GetAspectRatioMode )( THIS_ DWORD * ) PURE;
STDMETHOD( SetAspectRatioMode )( THIS_ DWORD ) PURE;
STDMETHOD( SetVideoClippingWindow )( THIS_ HWND ) PURE;
STDMETHOD( RepaintVideo )( THIS_ HWND, HDC ) PURE;
STDMETHOD( DisplayModeChanged )( THIS ) PURE;
STDMETHOD( GetCurrentImage )( THIS_ BYTE ** ) PURE;
STDMETHOD( SetBorderColor )( THIS_ COLORREF ) PURE;
STDMETHOD( GetBorderColor )( THIS_ COLORREF * ) PURE;
STDMETHOD( SetColorKey )( THIS_ COLORREF ) PURE;
STDMETHOD( GetColorKey )( THIS_ COLORREF * ) PURE;
};
/* IVMRMixerControl interface */
#undef INTERFACE
#define INTERFACE IVMRMixerControl
DECLARE_INTERFACE_( IVMRMixerControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRMixerControl methods */
STDMETHOD( SetAlpha )( THIS_ DWORD, float ) PURE;
STDMETHOD( GetAlpha )( THIS_ DWORD, float * ) PURE;
STDMETHOD( SetZOrder )( THIS_ DWORD, DWORD ) PURE;
STDMETHOD( GetZOrder )( THIS_ DWORD, DWORD * ) PURE;
STDMETHOD( SetOutputRect )( THIS_ DWORD, const NORMALIZEDRECT * ) PURE;
STDMETHOD( GetOutputRect )( THIS_ DWORD, NORMALIZEDRECT * ) PURE;
STDMETHOD( SetBackgroundClr )( THIS_ COLORREF ) PURE;
STDMETHOD( GetBackgroundClr )( THIS_ COLORREF * ) PURE;
STDMETHOD( SetMixingPrefs )( THIS_ DWORD ) PURE;
STDMETHOD( GetMixingPrefs )( THIS_ DWORD * ) PURE;
};
/* IVMRMonitorConfig interface */
#undef INTERFACE
#define INTERFACE IVMRMonitorConfig
DECLARE_INTERFACE_( IVMRMonitorConfig, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRMonitorConfig methods */
STDMETHOD( SetMonitor )( THIS_ const VMRGUID * ) PURE;
STDMETHOD( GetMonitor )( THIS_ VMRGUID * ) PURE;
STDMETHOD( SetDefaultMonitor )( THIS_ const VMRGUID * ) PURE;
STDMETHOD( GetDefaultMonitor )( THIS_ VMRGUID * ) PURE;
STDMETHOD( GetAvailableMonitors )( THIS_ VMRMONITORINFO *, DWORD, DWORD * ) PURE;
};
/* IVMRFilterConfig interface */
#undef INTERFACE
#define INTERFACE IVMRFilterConfig
DECLARE_INTERFACE_( IVMRFilterConfig, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRFilterConfig methods */
STDMETHOD( SetImageCompositor )( THIS_ IVMRImageCompositor * ) PURE;
STDMETHOD( SetNumberOfStreams )( THIS_ DWORD ) PURE;
STDMETHOD( GetNumberOfStreams )( THIS_ DWORD * ) PURE;
STDMETHOD( SetRenderingPrefs )( THIS_ DWORD ) PURE;
STDMETHOD( GetRenderingPrefs )( THIS_ DWORD * ) PURE;
STDMETHOD( SetRenderingMode )( THIS_ DWORD ) PURE;
STDMETHOD( GetRenderingMode )( THIS_ DWORD * ) PURE;
};
/* IVMRAspectRatioControl interface */
#undef INTERFACE
#define INTERFACE IVMRAspectRatioControl
DECLARE_INTERFACE_( IVMRAspectRatioControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRAspectRatioControl methods */
STDMETHOD( GetAspectRatioControl )( THIS_ LPDWORD ) PURE;
STDMETHOD( SetAspectRatioControl )( THIS_ DWORD ) PURE;
};
/* IVMRDeinterlaceControl interface */
#undef INTERFACE
#define INTERFACE IVMRDeinterlaceControl
DECLARE_INTERFACE_( IVMRDeinterlaceControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRDeinterlaceControl methods */
STDMETHOD( GetNumberOfDeinterlaceModes )( THIS_ VMRVideoDesc *, LPDWORD, LPGUID ) PURE;
STDMETHOD( GetDeinterlaceModeCaps )( THIS_ LPGUID, VMRVideoDesc *, VMRDeinterlaceCaps * ) PURE;
STDMETHOD( GetDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE;
STDMETHOD( SetDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE;
STDMETHOD( GetDeinterlacePrefs )( THIS_ LPDWORD ) PURE;
STDMETHOD( SetDeinterlacePrefs )( THIS_ DWORD ) PURE;
STDMETHOD( GetActualDeinterlaceMode )( THIS_ DWORD, LPGUID ) PURE;
};
/* IVMRMixerBitmap interface */
#undef INTERFACE
#define INTERFACE IVMRMixerBitmap
DECLARE_INTERFACE_( IVMRMixerBitmap, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRMixerBitmap methods */
STDMETHOD( SetAlphaBitmap )( THIS_ const VMRALPHABITMAP * ) PURE;
STDMETHOD( UpdateAlphaBitmapParameters )( THIS_ PVMRALPHABITMAP ) PURE;
STDMETHOD( GetAlphaBitmapParameters )( THIS_ PVMRALPHABITMAP ) PURE;
};
/* IVMRImageCompositor interface */
#undef INTERFACE
#define INTERFACE IVMRImageCompositor
DECLARE_INTERFACE_( IVMRImageCompositor, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRImageCompositor methods */
STDMETHOD( InitCompositionTarget )( THIS_ IUnknown *, LPDIRECTDRAWSURFACE7 ) PURE;
STDMETHOD( TermCompositionTarget )( THIS_ IUnknown *, LPDIRECTDRAWSURFACE7 ) PURE;
STDMETHOD( SetStreamMediaType )( THIS_ DWORD, AM_MEDIA_TYPE *, BOOL ) PURE;
STDMETHOD( CompositeImage )( THIS_ IUnknown *, LPDIRECTDRAWSURFACE7, AM_MEDIA_TYPE *, REFERENCE_TIME, REFERENCE_TIME, DWORD, VMRVIDEOSTREAMINFO *, UINT ) PURE;
};
/* IVMRVideoStreamControl interface */
#undef INTERFACE
#define INTERFACE IVMRVideoStreamControl
DECLARE_INTERFACE_( IVMRVideoStreamControl, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRVideoStreamControl methods */
STDMETHOD( SetColorKey )( THIS_ LPDDCOLORKEY ) PURE;
STDMETHOD( GetColorKey )( THIS_ LPDDCOLORKEY ) PURE;
STDMETHOD( SetStreamActiveState )( THIS_ BOOL ) PURE;
STDMETHOD( GetStreamActiveState )( THIS_ BOOL * ) PURE;
};
/* IVMRSurface interface */
#undef INTERFACE
#define INTERFACE IVMRSurface
DECLARE_INTERFACE_( IVMRSurface, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRSurface methods */
STDMETHOD( IsSurfaceLocked )( THIS ) PURE;
STDMETHOD( LockSurface )( THIS_ BYTE ** ) PURE;
STDMETHOD( UnlockSurface )( THIS ) PURE;
STDMETHOD( GetSurface )( THIS_ LPDIRECTDRAWSURFACE7 * ) PURE;
};
/* IVMRImagePresenterConfig interface */
#undef INTERFACE
#define INTERFACE IVMRImagePresenterConfig
DECLARE_INTERFACE_( IVMRImagePresenterConfig, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRImagePresenterConfig methods */
STDMETHOD( SetRenderingPrefs )( THIS_ DWORD ) PURE;
STDMETHOD( GetRenderingPrefs )( THIS_ DWORD * ) PURE;
};
/* IVMRImagePresenterExclModeConfig interface */
#undef INTERFACE
#define INTERFACE IVMRImagePresenterExclModeConfig
DECLARE_INTERFACE_( IVMRImagePresenterExclModeConfig, IVMRImagePresenterConfig ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVMRImagePresenterConfig methods */
STDMETHOD( SetRenderingPrefs )( THIS_ DWORD ) PURE;
STDMETHOD( GetRenderingPrefs )( THIS_ DWORD * ) PURE;
/* IVMRImagePresenterExclModeConfig methods */
STDMETHOD( SetXlcModeDDObjAndPrimarySurface )( THIS_ LPDIRECTDRAW7, LPDIRECTDRAWSURFACE7 ) PURE;
STDMETHOD( GetXlcModeDDObjAndPrimarySurface )( THIS_ LPDIRECTDRAW7 *, LPDIRECTDRAWSURFACE7 * ) PURE;
};
/* IVPManager interface */
#undef INTERFACE
#define INTERFACE IVPManager
DECLARE_INTERFACE_( IVPManager, IUnknown ) {
/* IUnknown methods */
STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE;
STDMETHOD_( ULONG, AddRef )( THIS ) PURE;
STDMETHOD_( ULONG, Release )( THIS ) PURE;
/* IVPManager methods */
STDMETHOD( SetVideoPortIndex )( THIS_ DWORD ) PURE;
STDMETHOD( GetVideoPortIndex )( THIS_ DWORD * ) PURE;
};
/* C object macros */
#if (!defined( __cplusplus ) || defined( CINTERFACE )) && defined( COBJMACROS )
#define ICreateDevEnum_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ICreateDevEnum_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ICreateDevEnum_Release( x ) \
(x)->lpVtbl->Release( x )
#define ICreateDevEnum_CreateClassEnumerator( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateClassEnumerator( x, p1, p2, p3 )
#define IPin_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IPin_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IPin_Release( x ) \
(x)->lpVtbl->Release( x )
#define IPin_Connect( x, p1, p2 ) \
(x)->lpVtbl->Connect( x, p1, p2 )
#define IPin_ReceiveConnection( x, p1, p2 ) \
(x)->lpVtbl->ReceiveConnection( x, p1, p2 )
#define IPin_Disconnect( x ) \
(x)->lpVtbl->Disconnect( x )
#define IPin_ConnectedTo( x, p ) \
(x)->lpVtbl->ConnectedTo( x, p )
#define IPin_ConnectionMediaType( x, p ) \
(x)->lpVtbl->ConnectionMediaType( x, p )
#define IPin_QueryPinInfo( x, p ) \
(x)->lpVtbl->QueryPinInfo( x, p )
#define IPin_QueryDirection( x, p ) \
(x)->lpVtbl->QueryDirection( x, p )
#define IPin_QueryId( x, p ) \
(x)->lpVtbl->QueryId( x, p )
#define IPin_QueryAccept( x, p ) \
(x)->lpVtbl->QueryAccept( x, p )
#define IPin_EnumMediaTypes( x, p ) \
(x)->lpVtbl->EnumMediaTypes( x, p )
#define IPin_EnumInternalConnections( x, p1, p2 ) \
(x)->lpVtbl->EnumInternalConnections( x, p1, p2 )
#define IPin_EndOfStream( x ) \
(x)->lpVtbl->EndOfStream( x )
#define IPin_BeginFlush( x ) \
(x)->lpVtbl->BeginFlush( x )
#define IPin_EndFlush( x ) \
(x)->lpVtbl->EndFlush( x )
#define IPin_NewSegment( x, p1, p2, p3 ) \
(x)->lpVtbl->NewSegment( x, p1, p2, p3 )
#define IEnumPins_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumPins_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumPins_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumPins_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumPins_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumPins_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumPins_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IEnumMediaTypes_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumMediaTypes_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumMediaTypes_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumMediaTypes_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumMediaTypes_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumMediaTypes_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumMediaTypes_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IFilterGraph_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterGraph_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterGraph_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterGraph_AddFilter( x, p1, p2 ) \
(x)->lpVtbl->AddFilter( x, p1, p2 )
#define IFilterGraph_RemoveFilter( x, p ) \
(x)->lpVtbl->RemoveFilter( x, p )
#define IFilterGraph_EnumFilters( x, p ) \
(x)->lpVtbl->EnumFilters( x, p )
#define IFilterGraph_FindFilterByName( x, p1, p2 ) \
(x)->lpVtbl->FindFilterByName( x, p1, p2 )
#define IFilterGraph_ConnectDirect( x, p1, p2, p3 ) \
(x)->lpVtbl->ConnectDirect( x, p1, p2, p3 )
#define IFilterGraph_Reconnect( x, p ) \
(x)->lpVtbl->Reconnect( x, p )
#define IFilterGraph_Disconnect( x, p ) \
(x)->lpVtbl->Disconnect( x, p )
#define IFilterGraph_SetDefaultSyncSource( x ) \
(x)->lpVtbl->SetDefaultSyncSource( x )
#define IEnumFilters_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumFilters_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumFilters_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumFilters_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumFilters_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumFilters_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumFilters_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IMediaFilter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaFilter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaFilter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaFilter_GetClassID( x, p ) \
(x)->lpVtbl->GetClassID( x, p )
#define IMediaFilter_Stop( x ) \
(x)->lpVtbl->Stop( x )
#define IMediaFilter_Pause( x ) \
(x)->lpVtbl->Pause( x )
#define IMediaFilter_Run( x, p ) \
(x)->lpVtbl->Run( x, p )
#define IMediaFilter_GetState( x, p1, p2 ) \
(x)->lpVtbl->GetState( x, p1, p2 )
#define IMediaFilter_SetSyncSource( x, p ) \
(x)->lpVtbl->SetSyncSource( x, p )
#define IMediaFilter_GetSyncSource( x, p ) \
(x)->lpVtbl->GetSyncSource( x, p )
#define IBaseFilter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBaseFilter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBaseFilter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBaseFilter_GetClassID( x, p ) \
(x)->lpVtbl->GetClassID( x, p )
#define IBaseFilter_Stop( x ) \
(x)->lpVtbl->Stop( x )
#define IBaseFilter_Pause( x ) \
(x)->lpVtbl->Pause( x )
#define IBaseFilter_Run( x, p ) \
(x)->lpVtbl->Run( x, p )
#define IBaseFilter_GetState( x, p1, p2 ) \
(x)->lpVtbl->GetState( x, p1, p2 )
#define IBaseFilter_SetSyncSource( x, p ) \
(x)->lpVtbl->SetSyncSource( x, p )
#define IBaseFilter_GetSyncSource( x, p ) \
(x)->lpVtbl->GetSyncSource( x, p )
#define IBaseFilter_EnumPins( x, p ) \
(x)->lpVtbl->EnumPins( x, p )
#define IBaseFilter_FindPin( x, p1, p2 ) \
(x)->lpVtbl->FindPin( x, p1, p2 )
#define IBaseFilter_QueryFilterInfo( x, p ) \
(x)->lpVtbl->QueryFilterInfo( x, p )
#define IBaseFilter_JoinFilterGraph( x, p1, p2 ) \
(x)->lpVtbl->JoinFilterGraph( x, p1, p2 )
#define IBaseFilter_QueryVendorInfo( x, p ) \
(x)->lpVtbl->QueryVendorInfo( x, p )
#define IReferenceClock_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IReferenceClock_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IReferenceClock_Release( x ) \
(x)->lpVtbl->Release( x )
#define IReferenceClock_GetTime( x, p ) \
(x)->lpVtbl->GetTime( x, p )
#define IReferenceClock_AdviseTime( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AdviseTime( x, p1, p2, p3, p4 )
#define IReferenceClock_AdvisePeriodic( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AdvisePeriodic( x, p1, p2, p3, p4 )
#define IReferenceClock_Unadvise( x, p ) \
(x)->lpVtbl->Unadvise( x, p )
#define IReferenceClockTimerControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IReferenceClockTimerControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IReferenceClockTimerControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IReferenceClockTimerControl_SetDefaultTimerResolution( x, p ) \
(x)->lpVtbl->SetDefaultTimerResolution( x, p )
#define IReferenceClockTimerControl_GetDefaultTimerResolution( x, p ) \
(x)->lpVtbl->GetDefaultTimerResolution( x, p )
#define IReferenceClock2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IReferenceClock2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IReferenceClock2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IReferenceClock2_GetTime( x, p ) \
(x)->lpVtbl->GetTime( x, p )
#define IReferenceClock2_AdviseTime( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AdviseTime( x, p1, p2, p3, p4 )
#define IReferenceClock2_AdvisePeriodic( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AdvisePeriodic( x, p1, p2, p3, p4 )
#define IReferenceClock2_Unadvise( x, p ) \
(x)->lpVtbl->Unadvise( x, p )
#define IMediaSample_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaSample_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaSample_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaSample_GetPointer( x, p ) \
(x)->lpVtbl->GetPointer( x, p )
#define IMediaSample_GetSize( x ) \
(x)->lpVtbl->GetSize( x )
#define IMediaSample_GetTime( x, p1, p2 ) \
(x)->lpVtbl->GetTime( x, p1, p2 )
#define IMediaSample_SetTime( x, p1, p2 ) \
(x)->lpVtbl->SetTime( x, p1, p2 )
#define IMediaSample_IsSyncPoint( x ) \
(x)->lpVtbl->IsSyncPoint( x )
#define IMediaSample_SetSyncPoint( x, p ) \
(x)->lpVtbl->SetSyncPoint( x, p )
#define IMediaSample_IsPreroll( x ) \
(x)->lpVtbl->IsPreroll( x )
#define IMediaSample_SetPreroll( x, p ) \
(x)->lpVtbl->SetPreroll( x, p )
#define IMediaSample_GetActualDataLength( x ) \
(x)->lpVtbl->GetActualDataLength( x )
#define IMediaSample_SetActualDataLength( x, p ) \
(x)->lpVtbl->SetActualDataLength( x, p )
#define IMediaSample_GetMediaType( x, p ) \
(x)->lpVtbl->GetMediaType( x, p )
#define IMediaSample_SetMediaType( x, p ) \
(x)->lpVtbl->SetMediaType( x, p )
#define IMediaSample_IsDiscontinuity( x ) \
(x)->lpVtbl->IsDiscontinuity( x )
#define IMediaSample_SetDiscontinuity( x, p ) \
(x)->lpVtbl->SetDiscontinuity( x, p )
#define IMediaSample_GetMediaTime( x, p1, p2 ) \
(x)->lpVtbl->GetMediaTime( x, p1, p2 )
#define IMediaSample_SetMediaTime( x, p1, p2 ) \
(x)->lpVtbl->SetMediaTime( x, p1, p2 )
#define IMediaSample2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaSample2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaSample2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaSample2_GetPointer( x, p ) \
(x)->lpVtbl->GetPointer( x, p )
#define IMediaSample2_GetSize( x ) \
(x)->lpVtbl->GetSize( x )
#define IMediaSample2_GetTime( x, p1, p2 ) \
(x)->lpVtbl->GetTime( x, p1, p2 )
#define IMediaSample2_SetTime( x, p1, p2 ) \
(x)->lpVtbl->SetTime( x, p1, p2 )
#define IMediaSample2_IsSyncPoint( x ) \
(x)->lpVtbl->IsSyncPoint( x )
#define IMediaSample2_SetSyncPoint( x, p ) \
(x)->lpVtbl->SetSyncPoint( x, p )
#define IMediaSample2_IsPreroll( x ) \
(x)->lpVtbl->IsPreroll( x )
#define IMediaSample2_SetPreroll( x, p ) \
(x)->lpVtbl->SetPreroll( x, p )
#define IMediaSample2_GetActualDataLength( x ) \
(x)->lpVtbl->GetActualDataLength( x )
#define IMediaSample2_SetActualDataLength( x, p ) \
(x)->lpVtbl->SetActualDataLength( x, p )
#define IMediaSample2_GetMediaType( x, p ) \
(x)->lpVtbl->GetMediaType( x, p )
#define IMediaSample2_SetMediaType( x, p ) \
(x)->lpVtbl->SetMediaType( x, p )
#define IMediaSample2_IsDiscontinuity( x ) \
(x)->lpVtbl->IsDiscontinuity( x )
#define IMediaSample2_SetDiscontinuity( x, p ) \
(x)->lpVtbl->SetDiscontinuity( x, p )
#define IMediaSample2_GetMediaTime( x, p1, p2 ) \
(x)->lpVtbl->GetMediaTime( x, p1, p2 )
#define IMediaSample2_SetMediaTime( x, p1, p2 ) \
(x)->lpVtbl->SetMediaTime( x, p1, p2 )
#define IMediaSample2_GetProperties( x, p1, p2 ) \
(x)->lpVtbl->GetProperties( x, p1, p2 )
#define IMediaSample2_SetProperties( x, p1, p2 ) \
(x)->lpVtbl->SetProperties( x, p1, p2 )
#define IMediaSample2Config_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaSample2Config_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaSample2Config_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaSample2Config_GetSurface( x, p ) \
(x)->lpVtbl->GetSurface( x, p )
#define IMemAllocator_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMemAllocator_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMemAllocator_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMemAllocator_SetProperties( x, p1, p2 ) \
(x)->lpVtbl->SetProperties( x, p1, p2 )
#define IMemAllocator_GetProperties( x, p ) \
(x)->lpVtbl->GetProperties( x, p )
#define IMemAllocator_Commit( x ) \
(x)->lpVtbl->Commit( x )
#define IMemAllocator_Decommit( x ) \
(x)->lpVtbl->Decommit( x )
#define IMemAllocator_GetBuffer( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBuffer( x, p1, p2, p3, p4 )
#define IMemAllocator_ReleaseBuffer( x, p ) \
(x)->lpVtbl->ReleaseBuffer( x, p )
#define IMemAllocatorCallbackTemp_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMemAllocatorCallbackTemp_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMemAllocatorCallbackTemp_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMemAllocatorCallbackTemp_SetProperties( x, p1, p2 ) \
(x)->lpVtbl->SetProperties( x, p1, p2 )
#define IMemAllocatorCallbackTemp_GetProperties( x, p ) \
(x)->lpVtbl->GetProperties( x, p )
#define IMemAllocatorCallbackTemp_Commit( x ) \
(x)->lpVtbl->Commit( x )
#define IMemAllocatorCallbackTemp_Decommit( x ) \
(x)->lpVtbl->Decommit( x )
#define IMemAllocatorCallbackTemp_GetBuffer( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetBuffer( x, p1, p2, p3, p4 )
#define IMemAllocatorCallbackTemp_ReleaseBuffer( x, p ) \
(x)->lpVtbl->ReleaseBuffer( x, p )
#define IMemAllocatorCallbackTemp_SetNotify( x, p ) \
(x)->lpVtbl->SetNotify( x, p )
#define IMemAllocatorCallbackTemp_GetFreeCount( x, p ) \
(x)->lpVtbl->GetFreeCount( x, p )
#define IMemAllocatorNotifyCallbackTemp_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMemAllocatorNotifyCallbackTemp_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMemAllocatorNotifyCallbackTemp_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMemAllocatorNotifyCallbackTemp_NotifyRelease( x ) \
(x)->lpVtbl->NotifyRelease( x )
#define IMemInputPin_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMemInputPin_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMemInputPin_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMemInputPin_GetAllocator( x, p ) \
(x)->lpVtbl->GetAllocator( x, p )
#define IMemInputPin_NotifyAllocator( x, p1, p2 ) \
(x)->lpVtbl->NotifyAllocator( x, p1, p2 )
#define IMemInputPin_GetAllocatorRequirements( x, p ) \
(x)->lpVtbl->GetAllocatorRequirements( x, p )
#define IMemInputPin_Receive( x, p ) \
(x)->lpVtbl->Receive( x, p )
#define IMemInputPin_ReceiveMultiple( x, p1, p2, p3 ) \
(x)->lpVtbl->ReceiveMultiple( x, p1, p2, p3 )
#define IMemInputPin_ReceiveCanBlock( x ) \
(x)->lpVtbl->ReceiveCanBlock( x )
#define IAMovieSetup_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMovieSetup_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMovieSetup_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMovieSetup_Register( x ) \
(x)->lpVtbl->Register( x )
#define IAMovieSetup_Unregister( x ) \
(x)->lpVtbl->Unregister( x )
#define IMediaSeeking_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaSeeking_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaSeeking_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaSeeking_GetCapabilities( x, p ) \
(x)->lpVtbl->GetCapabilities( x, p )
#define IMediaSeeking_CheckCapabilities( x, p ) \
(x)->lpVtbl->CheckCapabilities( x, p )
#define IMediaSeeking_IsFormatSupported( x, p ) \
(x)->lpVtbl->IsFormatSupported( x, p )
#define IMediaSeeking_QueryPreferredFormat( x, p ) \
(x)->lpVtbl->QueryPreferredFormat( x, p )
#define IMediaSeeking_GetTimeFormat( x, p ) \
(x)->lpVtbl->GetTimeFormat( x, p )
#define IMediaSeeking_IsUsingTimeFormat( x, p ) \
(x)->lpVtbl->IsUsingTimeFormat( x, p )
#define IMediaSeeking_SetTimeFormat( x, p ) \
(x)->lpVtbl->SetTimeFormat( x, p )
#define IMediaSeeking_GetDuration( x, p ) \
(x)->lpVtbl->GetDuration( x, p )
#define IMediaSeeking_GetStopPosition( x, p ) \
(x)->lpVtbl->GetStopPosition( x, p )
#define IMediaSeeking_GetCurrentPosition( x, p ) \
(x)->lpVtbl->GetCurrentPosition( x, p )
#define IMediaSeeking_ConvertTimeFormat( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->ConvertTimeFormat( x, p1, p2, p3, p4 )
#define IMediaSeeking_SetPositions( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetPositions( x, p1, p2, p3, p4 )
#define IMediaSeeking_GetPositions( x, p1, p2 ) \
(x)->lpVtbl->GetPositions( x, p1, p2 )
#define IMediaSeeking_GetAvailable( x, p1, p2 ) \
(x)->lpVtbl->GetAvailable( x, p1, p2 )
#define IMediaSeeking_SetRate( x, p ) \
(x)->lpVtbl->SetRate( x, p )
#define IMediaSeeking_GetRate( x, p ) \
(x)->lpVtbl->GetRate( x, p )
#define IMediaSeeking_GetPreroll( x, p ) \
(x)->lpVtbl->GetPreroll( x, p )
#define IEnumRegFilters_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumRegFilters_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumRegFilters_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumRegFilters_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumRegFilters_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumRegFilters_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumRegFilters_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IFilterMapper_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterMapper_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterMapper_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterMapper_RegisterFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->RegisterFilter( x, p1, p2, p3 )
#define IFilterMapper_RegisterFilterInstance( x, p1, p2, p3 ) \
(x)->lpVtbl->RegisterFilterInstance( x, p1, p2, p3 )
#define IFilterMapper_RegisterPin( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->RegisterPin( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IFilterMapper_RegisterPinType( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->RegisterPinType( x, p1, p2, p3, p4 )
#define IFilterMapper_UnregisterFilter( x, p ) \
(x)->lpVtbl->UnregisterFilter( x, p )
#define IFilterMapper_UnregisterFilterInstance( x, p ) \
(x)->lpVtbl->UnregisterFilterInstance( x, p )
#define IFilterMapper_UnregisterPin( x, p1, p2 ) \
(x)->lpVtbl->UnregisterPin( x, p1, p2 )
#define IFilterMapper_EnumMatchingFilters( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 ) \
(x)->lpVtbl->EnumMatchingFilter( x, p1, p2, p3, p4, p5, p6, p7, p8, p9 )
#define IFilterMapper2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterMapper2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterMapper2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterMapper2_CreateCategory( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateCategory( x, p1, p2, p3 )
#define IFilterMapper2_UnregisterFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->UnregisterFilter( x, p1, p2, p3 )
#define IFilterMapper2_RegisterFilter( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->RegisterFilter( x, p1, p2, p3, p4, p5, p6 )
#define IFilterMapper2_EnumMatchingFilters( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) \
(x)->lpVtbl->EnumMatchingFilters( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 )
#define IFilterMapper3_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterMapper3_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterMapper3_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterMapper3_CreateCategory( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateCategory( x, p1, p2, p3 )
#define IFilterMapper3_UnregisterFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->UnregisterFilter( x, p1, p2, p3 )
#define IFilterMapper3_RegisterFilter( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->RegisterFilter( x, p1, p2, p3, p4, p5, p6 )
#define IFilterMapper3_EnumMatchingFilters( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 ) \
(x)->lpVtbl->EnumMatchingFilters( x, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 )
#define IFilterMapper3_GetICreateDevEnum( x, p ) \
(x)->lpVtbl->GetICreateDevEnum( x, p )
#define IQualityControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IQualityControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IQualityControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IQualityControl_Notify( x, p1, p2 ) \
(x)->lpVtbl->Notify( x, p1, p2 )
#define IQualityControl_SetSink( x, p ) \
(x)->lpVtbl->SetSink( x, p )
#define IOverlayNotify_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IOverlayNotify_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IOverlayNotify_Release( x ) \
(x)->lpVtbl->Release( x )
#define IOverlayNotify_OnPaletteChange( x, p1, p2 ) \
(x)->lpVtbl->OnPaletteChange( x, p1, p2 )
#define IOverlayNotify_OnClipChange( x, p1, p2, p3 ) \
(x)->lpVtbl->OnClipChange( x, p1, p2, p3 )
#define IOverlayNotify_OnColorKeyChange( x, p ) \
(x)->lpVtbl->OnColorKeyChange( x, p )
#define IOverlayNotify_OnPositionChange( x, p1, p2 ) \
(x)->lpVtbl->OnPositionChange( x, p1, p2 )
#define IOverlayNotify2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IOverlayNotify2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IOverlayNotify2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IOverlayNotify2_OnPaletteChange( x, p1, p2 ) \
(x)->lpVtbl->OnPaletteChange( x, p1, p2 )
#define IOverlayNotify2_OnClipChange( x, p1, p2, p3 ) \
(x)->lpVtbl->OnClipChange( x, p1, p2, p3 )
#define IOverlayNotify2_OnColorKeyChange( x, p ) \
(x)->lpVtbl->OnColorKeyChange( x, p )
#define IOverlayNotify2_OnPositionChange( x, p1, p2 ) \
(x)->lpVtbl->OnPositionChange( x, p1, p2 )
#define IOverlayNotify2_OnDisplayChange( x, p ) \
(x)->lpVtbl->OnDisplayChange( x, p )
#define IOverlay_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IOverlay_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IOverlay_Release( x ) \
(x)->lpVtbl->Release( x )
#define IOverlay_GetPalette( x, p1, p2 ) \
(x)->lpVtbl->GetPalette( x, p1, p2 )
#define IOverlay_SetPalette( x, p1, p2 ) \
(x)->lpVtbl->SetPalette( x, p1, p2 )
#define IOverlay_GetDefaultColorKey( x, p ) \
(x)->lpVtbl->GetDefaultColorKey( x, p )
#define IOverlay_GetColorKey( x, p ) \
(x)->lpVtbl->GetColorKey( x, p )
#define IOverlay_SetColorKey( x, p ) \
(x)->lpVtbl->SetColorKey( x, p )
#define IOverlay_GetWindowHandle( x, p ) \
(x)->lpVtbl->GetWindowHandle( x, p )
#define IOverlay_GetClipList( x, p1, p2, p3 ) \
(x)->lpVtbl->GetClipList( x, p1, p2, p3 )
#define IOverlay_GetVideoPosition( x, p1, p2 ) \
(x)->lpVtbl->GetVideoPosition( x, p1, p2 )
#define IOverlay_Advise( x, p1, p2 ) \
(x)->lpVtbl->Advise( x, p1, p2 )
#define IOverlay_Unadvise( x ) \
(x)->lpVtbl->Unadvise( x )
#define IMediaEventSink_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaEventSink_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaEventSink_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaEventSink_Notify( x, p1, p2, p3 ) \
(x)->lpVtbl->Notify( x, p1, p2, p3 )
#define IFileSourceFilter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFileSourceFilter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFileSourceFilter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFileSourceFilter_Load( x, p1, p2 ) \
(x)->lpVtbl->Load( x, p1, p2 )
#define IFileSourceFilter_GetCurFile( x, p1, p2 ) \
(x)->lpVtbl->GetCurFile( x, p1, p2 )
#define IFileSinkFilter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFileSinkFilter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFileSinkFilter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFileSinkFilter_SetFileName( x, p1, p2 ) \
(x)->lpVtbl->SetFileName( x, p1, p2 )
#define IFileSinkFilter_GetCurFile( x, p1, p2 ) \
(x)->lpVtbl->GetCurFile( x, p1, p2 )
#define IFileSinkFilter2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFileSinkFilter2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFileSinkFilter2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFileSinkFilter2_SetFileName( x, p1, p2 ) \
(x)->lpVtbl->SetFileName( x, p1, p2 )
#define IFileSinkFilter2_GetCurFile( x, p1, p2 ) \
(x)->lpVtbl->GetCurFile( x, p1, p2 )
#define IFileSinkFilter2_SetMode( x, p ) \
(x)->lpVtbl->SetMode( x, p )
#define IFileSinkFilter2_GetMode( x, p ) \
(x)->lpVtbl->GetMode( x, p )
#define IGraphBuilder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IGraphBuilder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IGraphBuilder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IGraphBuilder_AddFilter( x, p1, p2 ) \
(x)->lpVtbl->AddFilter( x, p1, p2 )
#define IGraphBuilder_RemoveFilter( x, p ) \
(x)->lpVtbl->RemoveFilter( x, p )
#define IGraphBuilder_EnumFilters( x, p ) \
(x)->lpVtbl->EnumFilters( x, p )
#define IGraphBuilder_FindFilterByName( x, p1, p2 ) \
(x)->lpVtbl->FindFilterByName( x, p1, p2 )
#define IGraphBuilder_ConnectDirect( x, p1, p2, p3 ) \
(x)->lpVtbl->ConnectDirect( x, p1, p2, p3 )
#define IGraphBuilder_Reconnect( x, p ) \
(x)->lpVtbl->Reconnect( x, p )
#define IGraphBuilder_Disconnect( x, p ) \
(x)->lpVtbl->Disconnect( x, p )
#define IGraphBuilder_SetDefaultSyncSource( x ) \
(x)->lpVtbl->SetDefaultSyncSource( x )
#define IGraphBuilder_Connect( x, p1, p2 ) \
(x)->lpVtbl->Connect( x, p1, p2 )
#define IGraphBuilder_Render( x, p ) \
(x)->lpVtbl->Render( x, p )
#define IGraphBuilder_RenderFile( x, p1, p2 ) \
(x)->lpVtbl->RenderFile( x, p1, p2 )
#define IGraphBuilder_AddSourceFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->AddSourceFilter( x, p1, p2, p3 )
#define IGraphBuilder_SetLogFile( x, p ) \
(x)->lpVtbl->SetLogFile( x, p )
#define IGraphBuilder_Abort( x ) \
(x)->lpVtbl->Abort( x )
#define IGraphBuilder_ShouldOperationContinue( x ) \
(x)->lpVtbl->ShouldOperationContinue( x )
#define ICaptureGraphBuilder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ICaptureGraphBuilder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ICaptureGraphBuilder_Release( x ) \
(x)->lpVtbl->Release( x )
#define ICaptureGraphBuilder_SetFiltergraph( x, p ) \
(x)->lpVtbl->SetFiltergraph( x, p )
#define ICaptureGraphBuilder_GetFiltergraph( x, p ) \
(x)->lpVtbl->GetFiltergraph( x, p )
#define ICaptureGraphBuilder_SetOutputFileName( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetOutputFileName( x, p1, p2, p3, p4 )
#define ICaptureGraphBuilder_FindInterface( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->FindInterface( x, p1, p2, p3, p4 )
#define ICaptureGraphBuilder_RenderStream( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->RenderStream( x, p1, p2, p3, p4 )
#define ICaptureGraphBuilder_ControlStream( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->ControlStream( x, p1, p2, p3, p4, p5, p6 )
#define ICaptureGraphBuilder_AllocCapFile( x, p1, p2 ) \
(x)->lpVtbl->AllocCapFile( x, p1, p2 )
#define ICaptureGraphBuilder_CopyCaptureFile( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CopyCaptureFile( x, p1, p2, p3, p4 )
#define IAMCopyCaptureFileProgress_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMCopyCaptureFileProgress_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMCopyCaptureFileProgress_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMCopyCaptureFileProgress_Progress( x, p ) \
(x)->lpVtbl->Progress( x, p )
#define ICaptureGraphBuilder2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ICaptureGraphBuilder2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ICaptureGraphBuilder2_Release( x ) \
(x)->lpVtbl->Release( x )
#define ICaptureGraphBuilder2_SetFiltergraph( x, p ) \
(x)->lpVtbl->SetFiltergraph( x, p )
#define ICaptureGraphBuilder2_GetFiltergraph( x, p ) \
(x)->lpVtbl->GetFiltergraph( x, p )
#define ICaptureGraphBuilder2_SetOutputFileName( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetOutputFileName( x, p1, p2, p3, p4 )
#define ICatpureGraphBuilder2_FindInterface( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->FindInterface( x, p1, p2, p3, p4, p5 )
#define ICaptureGraphBuilder2_RenderStream( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->RenderStream( x, p1, p2, p3, p4, p5 )
#define ICaptureGraphBuilder2_ControlStream( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->ControlStream( x, p1, p2, p3, p4, p5, p6, p7 )
#define ICaptureGraphBuilder2_AllocCapFile( x, p1, p2 ) \
(x)->lpVtbl->AllocCapFile( x, p1, p2 )
#define ICaptureGraphBuilder2_CopyCaptureFile( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->CopyCaptureFile( x, p1, p2, p3, p4 )
#define ICaptureGraphBuilder2_FindPin( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->FindPin( x, p1, p2, p3, p4, p5, p6, p7 )
#define IFilterGraph2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterGraph2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterGraph2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterGraph2_AddFilter( x, p1, p2 ) \
(x)->lpVtbl->AddFilter( x, p1, p2 )
#define IFilterGraph2_RemoveFilter( x, p ) \
(x)->lpVtbl->RemoveFilter( x, p )
#define IFilterGraph2_EnumFilters( x, p ) \
(x)->lpVtbl->EnumFilters( x, p )
#define IFilterGraph2_FindFilterByName( x, p1, p2 ) \
(x)->lpVtbl->FindFilterByName( x, p1, p2 )
#define IFilterGraph2_ConnectDirect( x, p1, p2, p3 ) \
(x)->lpVtbl->ConnectDirect( x, p1, p2, p3 )
#define IFilterGraph2_Reconnect( x, p ) \
(x)->lpVtbl->Reconnect( x, p )
#define IFilterGraph2_Disconnect( x, p ) \
(x)->lpVtbl->Disconnect( x, p )
#define IFilterGraph2_SetDefaultSyncSource( x ) \
(x)->lpVtbl->SetDefaultSyncSource( x )
#define IFilterGraph2_Connect( x, p1, p2 ) \
(x)->lpVtbl->Connect( x, p1, p2 )
#define IFilterGraph2_Render( x, p ) \
(x)->lpVtbl->Render( x, p )
#define IFilterGraph2_RenderFile( x, p1, p2 ) \
(x)->lpVtbl->RenderFile( x, p1, p2 )
#define IFilterGraph2_AddSourceFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->AddSourceFilter( x, p1, p2, p3 )
#define IFilterGraph2_SetLogFile( x, p ) \
(x)->lpVtbl->SetLogFile( x, p )
#define IFilterGraph2_Abort( x ) \
(x)->lpVtbl->Abort( x )
#define IFilterGraph2_ShouldOperationContinue( x ) \
(x)->lpVtbl->ShouldOperationContinue( x )
#define IFilterGraph2_AddSourceFilterForMoniker( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AddSourceFilterForMoniker( x, p1, p2, p3, p4 )
#define IFilterGraph2_ReconnectEx( x, p1, p2 ) \
(x)->lpVtbl->ReconnectEx( x, p1, p2 )
#define IFilterGraph2_RenderEx( x, p1, p2, p3 ) \
(x)->lpVtbl->RenderEx( x, p1, p2, p3 )
#define IFilterGraph3_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterGraph3_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterGraph3_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterGraph3_AddFilter( x, p1, p2 ) \
(x)->lpVtbl->AddFilter( x, p1, p2 )
#define IFilterGraph3_RemoveFilter( x, p ) \
(x)->lpVtbl->RemoveFilter( x, p )
#define IFilterGraph3_EnumFilters( x, p ) \
(x)->lpVtbl->EnumFilters( x, p )
#define IFilterGraph3_FindFilterByName( x, p1, p2 ) \
(x)->lpVtbl->FindFilterByName( x, p1, p2 )
#define IFilterGraph3_ConnectDirect( x, p1, p2, p3 ) \
(x)->lpVtbl->ConnectDirect( x, p1, p2, p3 )
#define IFilterGraph3_Reconnect( x, p ) \
(x)->lpVtbl->Reconnect( x, p )
#define IFilterGraph3_Disconnect( x, p ) \
(x)->lpVtbl->Disconnect( x, p )
#define IFilterGraph3_SetDefaultSyncSource( x ) \
(x)->lpVtbl->SetDefaultSyncSource( x )
#define IFilterGraph3_Connect( x, p1, p2 ) \
(x)->lpVtbl->Connect( x, p1, p2 )
#define IFilterGraph3_Render( x, p ) \
(x)->lpVtbl->Render( x, p )
#define IFilterGraph3_RenderFile( x, p1, p2 ) \
(x)->lpVtbl->RenderFile( x, p1, p2 )
#define IFilterGraph3_AddSourceFilter( x, p1, p2, p3 ) \
(x)->lpVtbl->AddSourceFilter( x, p1, p2, p3 )
#define IFilterGraph3_SetLogFile( x, p ) \
(x)->lpVtbl->SetLogFile( x, p )
#define IFilterGraph3_Abort( x ) \
(x)->lpVtbl->Abort( x )
#define IFilterGraph3_ShouldOperationContinue( x ) \
(x)->lpVtbl->ShouldOperationContinue( x )
#define IFilterGraph3_AddSourceFilterForMoniker( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AddSourceFilterForMoniker( x, p1, p2, p3, p4 )
#define IFilterGraph3_ReconnectEx( x, p1, p2 ) \
(x)->lpVtbl->ReconnectEx( x, p1, p2 )
#define IFilterGraph3_RenderEx( x, p1, p2, p3 ) \
(x)->lpVtbl->RenderEx( x, p1, p2, p3 )
#define IFilterGraph3_SetSyncSourceEx( x, p1, p2, p3 ) \
(x)->lpVtbl->SetSyncSourceEx( x, p1, p2, p3 )
#define IStreamBuilder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IStreamBuilder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IStreamBuilder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IStreamBuilder_Render( x, p1, p2 ) \
(x)->lpVtbl->Render( x, p1, p2 )
#define IStreamBuilder_Backout( x, p1, p2 ) \
(x)->lpVtbl->Backout( x, p1, p2 )
#define IAsyncReader_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAsyncReader_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAsyncReader_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAsyncReader_RequestAllocator( x, p1, p2, p3 ) \
(x)->lpVtbl->RequestAllocator( x, p1, p2, p3 )
#define IAsyncReader_Request( x, p1, p2 ) \
(x)->lpVtbl->Request( x, p1, p2 )
#define IAsyncReader_WaitForNext( x, p1, p2, p3 ) \
(x)->lpVtbl->WaitForNext( x, p1, p2, p3 )
#define IAsyncReader_SyncReadAligned( x, p ) \
(x)->lpVtbl->SyncReadAligned( x, p )
#define IAsyncReader_SyncRead( x, p1, p2, p3 ) \
(x)->lpVtbl->SyncRead( x, p1, p2, p3 )
#define IAsyncReader_Length( x, p1, p2 ) \
(x)->lpVtbl->Length( x, p1, p2 )
#define IAsyncReader_BeginFlush( x, p ) \
(x)->lpVtbl->BeginFlush( x, p )
#define IAsyncReader_EndFlush( x, p ) \
(x)->lpVtbl->EndFlush( x, p )
#define IGraphVersion_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IGraphVersion_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IGraphVersion_Release( x ) \
(x)->lpVtbl->Release( x )
#define IGraphVersion_QueryVersion( x, p ) \
(x)->lpVtbl->QueryVersion( x, p )
#define IResourceConsumer_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IResourceConsumer_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IResourceConsumer_Release( x ) \
(x)->lpVtbl->Release( x )
#define IResourceConsumer_AcquireResource( x, p ) \
(x)->lpVtbl->AcquireResource( x, p )
#define IResourceConsumer_ReleaseResource( x, p ) \
(x)->lpVtbl->ReleaseResource( x, p )
#define IResourceManager_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IResourceManager_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IResourceManager_Release( x ) \
(x)->lpVtbl->Release( x )
#define IResourceManager_Register( x, p1, p2, p3 ) \
(x)->lpVtbl->Register( x, p1, p2, p3 )
#define IResourceManager_RegisterGroup( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->RegisterGroup( x, p1, p2, p3, p4 )
#define IResourceManager_RequestResource( x, p1, p2, p3 ) \
(x)->lpVtbl->RequestResource( x, p1, p2, p3 )
#define IResourceManager_NotifyAcquire( x, p1, p2, p3 ) \
(x)->lpVtbl->NotifyAcquire( x, p1, p2, p3 )
#define IResourceManager_NotifyRelease( x, p1, p2, p3 ) \
(x)->lpVtbl->NotifyRelease( x, p1, p2, p3 )
#define IResourceManager_CancelRequest( x, p1, p2 ) \
(x)->lpVtbl->CancelRequest( x, p1, p2 )
#define IResourceManager_SetFocus( x, p ) \
(x)->lpVtbl->SetFocus( x, p )
#define IResourceManager_ReleaseFocus( x, p ) \
(x)->lpVtbl->ReleaseFocus( x, p )
#define IDistributorNotify_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDistributorNotify_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDistributorNotify_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDistributorNotify_Stop( x ) \
(x)->lpVtbl->Stop( x )
#define IDistributorNotify_Pause( x ) \
(x)->lpVtbl->Pause( x )
#define IDistributorNotify_Run( x, p ) \
(x)->lpVtbl->Run( x, p )
#define IDistributorNotify_SetSyncSource( x, p ) \
(x)->lpVtbl->SetSyncSource( x, p )
#define IDistributorNotify_NotifyGraphChange( x ) \
(x)->lpVtbl->NotifyGraphChange( x )
#define IAMStreamControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMStreamControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMStreamControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMStreamControl_StartAt( x, p1, p2 ) \
(x)->lpVtbl->StartAt( x, p1, p2 )
#define IAMStreamControl_StopAt( x, p1, p2, p3 ) \
(x)->lpVtbl->StopAt( x, p1, p2, p3 )
#define IAMStreamControl_GetInfo( x, p ) \
(x)->lpVtbl->GetInfo( x, p )
#define ISeekingPassThru_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ISeekingPassThru_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ISeekingPassThru_Release( x ) \
(x)->lpVtbl->Release( x )
#define ISeekingPassThru_Init( x, p1, p2 ) \
(x)->lpVtbl->Init( x, p1, p2 )
#define IAMStreamConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMStreamConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMStreamConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMStreamConfig_SetFormat( x, p ) \
(x)->lpVtbl->SetFormat( x, p )
#define IAMStreamConfig_GetFormat( x, p ) \
(x)->lpVtbl->GetFormat( x, p )
#define IAMStreamConfig_GetNumberOfCapabilities( x, p1, p2 ) \
(x)->lpVtbl->GetNumberOfCapabilities( x, p1, p2 )
#define IAMStreamConfig_GetStreamCaps( x, p1, p2, p3 ) \
(x)->lpVtbl->GetStreamCaps( x, p1, p2, p3 )
#define IConfigInterleaving_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IConfigInterleaving_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IConfigInterleaving_Release( x ) \
(x)->lpVtbl->Release( x )
#define IConfigInterleaving_put_Mode( x, p ) \
(x)->lpVtbl->put_Mode( x, p )
#define IConfigInterleaving_get_Mode( x, p ) \
(x)->lpVtbl->get_Mode( x, p )
#define IConfigInterleaving_put_Interleaving( x, p ) \
(x)->lpVtbl->put_Interleaving( x, p )
#define IConfigInterleaving_get_Interleaving( x, p ) \
(x)->lpVtbl->get_Interleaving( x, p )
#define IConfigAviMux_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IConfigAviMux_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IConfigAviMux_Release( x ) \
(x)->lpVtbl->Release( x )
#define IConfigAviMux_SetMasterStream( x, p ) \
(x)->lpVtbl->SetMasterStream( x, p )
#define IConfigAviMux_GetMasterStream( x, p ) \
(x)->lpVtbl->GetMasterStream( x, p )
#define IConfigAviMux_SetOutputCompatibilityIndex( x, p ) \
(x)->lpVtbl->SetOutputCompatibilityIndex( x, p )
#define IConfigAviMux_GetOutputCompatibilityIndex( x, p ) \
(x)->lpVtbl->GetOutputCompatibilityIndex( x, p )
#define IAMVideoCompression_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVideoCompression_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVideoCompression_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVideoCompression_put_KeyFrameRate( x, p ) \
(x)->lpVtbl->put_KeyFrameRate( x, p )
#define IAMVideoCompression_get_KeyFrameRate( x, p ) \
(x)->lpVtbl->get_KeyFrameRate( x, p )
#define IAMVideoCompression_put_PFramesPerKeyFrame( x, p ) \
(x)->lpVtbl->put_PFramesPerKeyFrame( x, p )
#define IAMVideoCompression_get_PFramesPerKeyFrame( x, p ) \
(x)->lpVtbl->get_PFramesPerKeyFrame( x, p )
#define IAMVideoCompression_put_Quality( x, p ) \
(x)->lpVtbl->put_Quality( x, p )
#define IAMVideoCompression_get_Quality( x, p ) \
(x)->lpVtbl->get_Quality( x, p )
#define IAMVideoCompression_put_WindowSize( x, p ) \
(x)->lpVtbl->put_WindowSize( x, p )
#define IAMVideoCompression_get_WindowSize( x, p ) \
(x)->lpVtbl->get_WindowSize( x, p )
#define IAMVideoCompression_GetInfo( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->GetInfo( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IAMVideoCompression_OverrideKeyFrame( x, p ) \
(x)->lpVtbl->OverrideKeyFrame( x, p )
#define IAMVideoCompression_OverrideFrameSize( x, p1, p2 ) \
(x)->lpVtbl->OverrideFrameSize( x, p1, p2 )
#define IAMVfwCaptureDialogs_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVfwCaptureDialogs_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVfwCaptureDialogs_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVfwCaptureDialogs_HasDialog( x, p ) \
(x)->lpVtbl->HasDialog( x, p )
#define IAMVfwCaptureDialogs_ShowDialog( x, p1, p2 ) \
(x)->lpVtbl->ShowDialog( x, p1, p2 )
#define IAMVfwCaptureDialogs_SendDriverMessage( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SendDriverMessage( x, p1, p2, p3, p4 )
#define IAMVfwCompressDialogs_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVfwCompressDialogs_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVfwCompressDialogs_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVfwCompressDialogs_ShowDialog( x, p1, p2 ) \
(x)->lpVtbl->ShowDialog( x, p1, p2 )
#define IAMVfwCompressDialogs_GetState( x, p1, p2 ) \
(x)->lpVtbl->GetState( x, p1, p2 )
#define IAMVfwCompressDialogs_SetState( x, p1, p2 ) \
(x)->lpVtbl->SetState( x, p1, p2 )
#define IAMVfwCompressDialogs_SendDriverMessage( x, p1, p2, p3 ) \
(x)->lpVtbl->SendDriverMessage( x, p1, p2, p3 )
#define IAMDroppedFrames_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMDroppedFrames_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMDroppedFrames_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMDroppedFrames_GetNumDropped( x, p ) \
(x)->lpVtbl->GetNumDropped( x, p )
#define IAMDroppedFrames_GetNumNotDropped( x, p ) \
(x)->lpVtbl->GetNumNotDropped( x, p )
#define IAMDroppedFrames_GetDroppedInfo( x, p1, p2, p3 ) \
(x)->lpVtbl->GetDroppedInfo( x, p1, p2, p3 )
#define IAMDroppedFrames_GetAverageFrameSize( x, p ) \
(x)->lpVtbl->GetAverageFrameSize( x, p )
#define IAMAudioInputMixer_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMAudioInputMixer_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMAudioInputMixer_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMAudioInputMixer_put_Enable( x, p ) \
(x)->lpVtbl->put_Enable( x, p )
#define IAMAudioInputMixer_get_Enable( x, p ) \
(x)->lpVtbl->get_Enable( x, p )
#define IAMAudioInputMixer_put_Mono( x, p ) \
(x)->lpVtbl->put_Mono( x, p )
#define IAMAudioInputMixer_get_Mono( x, p ) \
(x)->lpVtbl->get_Mono( x, p )
#define IAMAudioInputMixer_put_MixLevel( x, p ) \
(x)->lpVtbl->put_MixLevel( x, p )
#define IAMAudioInputMixer_get_MixLevel( x, p ) \
(x)->lpVtbl->get_MixLevel( x, p )
#define IAMAudioInputMixer_put_Pan( x, p ) \
(x)->lpVtbl->put_Pan( x, p )
#define IAMAudioInputMixer_get_Pan( x, p ) \
(x)->lpVtbl->get_Pan( x, p )
#define IAMAudioInputMixer_put_Loudness( x, p ) \
(x)->lpVtbl->put_Loudness( x, p )
#define IAMAudioInputMixer_get_Loudness( x, p ) \
(x)->lpVtbl->get_Loudness( x, p )
#define IAMAudioInputMixer_put_Treble( x, p ) \
(x)->lpVtbl->put_Treble( x, p )
#define IAMAudioInputMixer_get_Treble( x, p ) \
(x)->lpVtbl->get_Treble( x, p )
#define IAMAudioInputMixer_get_TrebleRange( x, p ) \
(x)->lpVtbl->get_TrebleRange( x, p )
#define IAMAudioInputMixer_put_Bass( x, p ) \
(x)->lpVtbl->put_Bass( x, p )
#define IAMAudioInputMixer_get_Bass( x, p ) \
(x)->lpVtbl->get_Bass( x, p )
#define IAMBufferNegotiation_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMBufferNegotiation_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMBufferNegotiation_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMBufferNegotiation_SuggestAllocatorProperties( x, p ) \
(x)->lpVtbl->SuggestAllocatorProperties( x, p )
#define IAMBufferNegotiation_GetAllocatorProperties( x, p ) \
(x)->lpVtbl->GetAllocatorProperties( x, p )
#define IAMAnalogVideoDecoder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMAnalogVideoDecoder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMAnalogVideoDecoder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMAnalogVideoDecoder_get_AvailableTVFormats( x, p ) \
(x)->lpVtbl->get_AvailableTVFormats( x, p )
#define IAMAnalogVideoDecoder_put_TVFormat( x, p ) \
(x)->lpVtbl->put_TVFormat( x, p )
#define IAMAnalogVideoDecoder_get_TVFormat( x, p ) \
(x)->lpVtbl->get_TVFormat( x, p )
#define IAMAnalogVideoDecoder_get_HorizontalLocked( x, p ) \
(x)->lpVtbl->get_HorizontalLocked( x, p )
#define IAMAnalogVideoDecoder_put_VCRHorizontalLocking( x, p ) \
(x)->lpVtbl->put_VCRHorizontalLocking( x, p )
#define IAMAnalogVideoDecoder_get_VCRHorizontalLocking( x, p ) \
(x)->lpVtbl->get_VCRHorizontalLocking( x, p )
#define IAMAnalogVideoDecoder_get_NumberOfLines( x, p ) \
(x)->lpVtbl->get_NumberOfLines( x, p )
#define IAMAnalogVideoDecoder_put_OutputEnable( x, p ) \
(x)->lpVtbl->put_OutputEnable( x, p )
#define IAMAnalogVideoDecoder_get_OutputEnable( x, p ) \
(x)->lpVtbl->get_OutputEnable( x, p )
#define IAMVideoProcAmp_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVideoProcAmp_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVideoProcAmp_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVideoProcAmp_GetRange( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetRange( x, p1, p2, p3, p4, p5, p6 )
#define IAMVideoProcAmp_Set( x, p1, p2, p3 ) \
(x)->lpVtbl->Set( x, p1, p2, p3 )
#define IAMVideoProcAmp_Get( x, p1, p2, p3 ) \
(x)->lpVtbl->Get( x, p1, p2, p3 )
#define IAMCameraControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMCameraControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMCameraControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMCameraControl_GetRange( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetRange( x, p1, p2, p3, p4, p5, p6 )
#define IAMCameraControl_Set( x, p1, p2, p3 ) \
(x)->lpVtbl->Set( x, p1, p2, p3 )
#define IAMCameraControl_Get( x, p1, p2, p3 ) \
(x)->lpVtbl->Get( x, p1, p2, p3 )
#define IAMVideoControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVideoControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVideoControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVideoControl_GetCaps( x, p1, p2 ) \
(x)->lpVtbl->GetCaps( x, p1, p2 )
#define IAMVideoControl_SetMode( x, p1, p2 ) \
(x)->lpVtbl->SetMode( x, p1, p2 )
#define IAMVideoControl_GetMode( x, p1, p2 ) \
(x)->lpVtbl->GetMode( x, p1, p2 )
#define IAMVideoControl_GetCurrentActualFrameRate( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentActualFrameRate( x, p1, p2 )
#define IAMVideoControl_GetMaxAvailableFrameRate( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetMaxAvailableFrameRate( x, p1, p2, p3, p4 )
#define IAMVideoControl_GetFrameRateList( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->GetFrameRateList( x, p1, p2, p3, p4, p5 )
#define IAMCrossbar_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMCrossbar_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMCrossbar_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMCrossbar_get_PinCounts( x, p1, p2 ) \
(x)->lpVtbl->get_PinCounts( x, p1, p2 )
#define IAMCrossbar_CanRoute( x, p1, p2 ) \
(x)->lpVtbl->CanRoute( x, p1, p2 )
#define IAMCrossbar_Route( x, p1, p2 ) \
(x)->lpVtbl->Route( x, p1, p2 )
#define IAMCrossbar_get_IsRoutedTo( x, p1, p2 ) \
(x)->lpVtbl->get_IsRoutedTo( x, p1, p2 )
#define IAMCrossbar_get_CrossbarPinInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->get_CrossbarPinInfo( x, p1, p2, p3, p4 )
#define IAMTuner_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTuner_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTuner_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTuner_put_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->put_Channel( x, p1, p2, p3 )
#define IAMTuner_get_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->get_Channel( x, p1, p2, p3 )
#define IAMTuner_ChannelMinMax( x, p1, p2 ) \
(x)->lpVtbl->ChannelMinMax( x, p1, p2 )
#define IAMTuner_put_CountryCode( x, p ) \
(x)->lpVtbl->put_CountryCode( x, p )
#define IAMTuner_get_CountryCode( x, p ) \
(x)->lpVtbl->get_CountryCode( x, p )
#define IAMTuner_put_TuningSpace( x, p ) \
(x)->lpVtbl->put_TuningSpace( x, p )
#define IAMTuner_get_TuningSpace( x, p ) \
(x)->lpVtbl->get_TuningSpace( x, p )
#define IAMTuner_Logon( x, p ) \
(x)->lpVtbl->Logon( x, p )
#define IAMTuner_Logoff( x ) \
(x)->lpVtbl->Logoff( x )
#define IAMTuner_SignalPresent( x, p ) \
(x)->lpVtbl->SignalPresent( x, p )
#define IAMTuner_put_Mode( x, p ) \
(x)->lpVtbl->put_Mode( x, p )
#define IAMTuner_get_Mode( x, p ) \
(x)->lpVtbl->get_Mode( x, p )
#define IAMTuner_GetAvailableModes( x, p ) \
(x)->lpVtbl->GetAvailableModes( x, p )
#define IAMTuner_RegisterNotificationCallBack( x, p1, p2 ) \
(x)->lpVtbl->RegisterNotificationCallBack( x, p1, p2 )
#define IAMTuner_UnRegisterNotificationCallBack( x, p ) \
(x)->lpVtbl->UnRegisterNotificationCallBack( x, p )
#define IAMTunerNotification_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTunerNotification_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTunerNotification_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTunerNotification_OnEvent( x, p ) \
(x)->lpVtbl->OnEvent( x, p )
#define IAMTVTuner_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTVTuner_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTVTuner_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTVTuner_put_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->put_Channel( x, p1, p2, p3 )
#define IAMTVTuner_get_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->get_Channel( x, p1, p2, p3 )
#define IAMTVTuner_ChannelMinMax( x, p1, p2 ) \
(x)->lpVtbl->ChannelMinMax( x, p1, p2 )
#define IAMTVTuner_put_CountryCode( x, p ) \
(x)->lpVtbl->put_CountryCode( x, p )
#define IAMTVTuner_get_CountryCode( x, p ) \
(x)->lpVtbl->get_CountryCode( x, p )
#define IAMTVTuner_put_TuningSpace( x, p ) \
(x)->lpVtbl->put_TuningSpace( x, p )
#define IAMTVTuner_get_TuningSpace( x, p ) \
(x)->lpVtbl->get_TuningSpace( x, p )
#define IAMTVTuner_Logon( x, p ) \
(x)->lpVtbl->Logon( x, p )
#define IAMTVTuner_Logoff( x ) \
(x)->lpVtbl->Logoff( x )
#define IAMTVTuner_SignalPresent( x, p ) \
(x)->lpVtbl->SignalPresent( x, p )
#define IAMTVTuner_put_Mode( x, p ) \
(x)->lpVtbl->put_Mode( x, p )
#define IAMTVTuner_get_Mode( x, p ) \
(x)->lpVtbl->get_Mode( x, p )
#define IAMTVTuner_GetAvailableModes( x, p ) \
(x)->lpVtbl->GetAvailableModes( x, p )
#define IAMTVTuner_RegisterNotificationCallBack( x, p1, p2 ) \
(x)->lpVtbl->RegisterNotificationCallBack( x, p1, p2 )
#define IAMTVTuner_UnRegisterNotificationCallBack( x, p ) \
(x)->lpVtbl->UnRegisterNotificationCallBack( x, p )
#define IAMTVTuner_get_AvailableTVFormats( x, p ) \
(x)->lpVtbl->get_AvailableTVFormats( x, p )
#define IAMTVTuner_get_TVFormat( x, p ) \
(x)->lpVtbl->get_TVFormat( x, p )
#define IAMTVTuner_AutoTune( x, p1, p2 ) \
(x)->lpVtbl->AutoTune( x, p1, p2 )
#define IAMTVTuner_StoreAutoTune( x ) \
(x)->lpVtbl->StoreAutoTune( x )
#define IAMTVTuner_get_NumInputConnections( x, p ) \
(x)->lpVtbl->get_NumInputConnections( x, p )
#define IAMTVTuner_put_InputType( x, p1, p2 ) \
(x)->lpVtbl->put_InputType( x, p1, p2 )
#define IAMTVTuner_get_InputType( x, p1, p2 ) \
(x)->lpVtbl->get_InputType( x, p1, p2 )
#define IAMTVTuner_put_ConnectInput( x, p ) \
(x)->lpVtbl->put_ConnectInput( x, p )
#define IAMTVTuner_get_ConnectInput( x, p ) \
(x)->lpVtbl->get_ConnectInput( x, p )
#define IAMTVTuner_get_VideoFrequency( x, p ) \
(x)->lpVtbl->get_VideoFrequency( x, p )
#define IAMTVTuner_get_AudioFrequency( x, p ) \
(x)->lpVtbl->get_AudioFrequency( x, p )
#define IBPCSatelliteTuner_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IBPCSatelliteTuner_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IBPCSatelliteTuner_Release( x ) \
(x)->lpVtbl->Release( x )
#define IBPCSatelliteTuner_put_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->put_Channel( x, p1, p2, p3 )
#define IBPCSatelliteTuner_get_Channel( x, p1, p2, p3 ) \
(x)->lpVtbl->get_Channel( x, p1, p2, p3 )
#define IBPCSatelliteTuner_ChannelMinMax( x, p1, p2 ) \
(x)->lpVtbl->ChannelMinMax( x, p1, p2 )
#define IBPCSatelliteTuner_put_CountryCode( x, p ) \
(x)->lpVtbl->put_CountryCode( x, p )
#define IBPCSatelliteTuner_get_CountryCode( x, p ) \
(x)->lpVtbl->get_CountryCode( x, p )
#define IBPCSatelliteTuner_put_TuningSpace( x, p ) \
(x)->lpVtbl->put_TuningSpace( x, p )
#define IBPCSatelliteTuner_get_TuningSpace( x, p ) \
(x)->lpVtbl->get_TuningSpace( x, p )
#define IBPCSatelliteTuner_Logon( x, p ) \
(x)->lpVtbl->Logon( x, p )
#define IBPCSatelliteTuner_Logoff( x ) \
(x)->lpVtbl->Logoff( x )
#define IBPCSatelliteTuner_SignalPresent( x, p ) \
(x)->lpVtbl->SignalPresent( x, p )
#define IBPCSatelliteTuner_put_Mode( x, p ) \
(x)->lpVtbl->put_Mode( x, p )
#define IBPCSatelliteTuner_get_Mode( x, p ) \
(x)->lpVtbl->get_Mode( x, p )
#define IBPCSatelliteTuner_GetAvailableModes( x, p ) \
(x)->lpVtbl->GetAvailableModes( x, p )
#define IBPCSatelliteTuner_RegisterNotificationCallBack( x, p1, p2 ) \
(x)->lpVtbl->RegisterNotificationCallBack( x, p1, p2 )
#define IBPCSatelliteTuner_UnRegisterNotificationCallBack( x, p ) \
(x)->lpVtbl->UnRegisterNotificationCallBack( x, p )
#define IBPCSatelliteTuner_get_DefaultSubChannelTypes( x, p1, p2 ) \
(x)->lpVtbl->get_DefaultSubChannelTypes( x, p1, p2 )
#define IBPCSatelliteTuner_put_DefaultSubChannelTypes( x, p1, p2 ) \
(x)->lpVtbl->put_DefaultSubChannelTypes( x, p1, p2 )
#define IBPCSatelliteTuner_IsTapingPermitted( x ) \
(x)->lpVtbl->IsTapingPermitted( x )
#define IAMTVAudio_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTVAudio_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTVAudio_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTVAudio_GetHardwareSupportedTVAudioModes( x, p ) \
(x)->lpVtbl->GetHardwareSupportedTVAudioModes( x, p )
#define IAMTVAudio_GetAvailableTVAudioModes( x, p ) \
(x)->lpVtbl->GetAvailableTVAudioModes( x, p )
#define IAMTVAudio_get_TVAudioMode( x, p ) \
(x)->lpVtbl->get_TVAudioMode( x, p )
#define IAMTVAudio_put_TVAudioMode( x, p ) \
(x)->lpVtbl->put_TVAudioMode( x, p )
#define IAMTVAudio_RegisterNotificationCallBack( x, p1, p2 ) \
(x)->lpVtbl->RegisterNotificationCallBack( x, p1, p2 )
#define IAMTVAudio_UnRegisterNotificationCallBack( x, p ) \
(x)->lpVtbl->UnRegisterNotificationCallBack( x, p )
#define IAMTVAudioNotification_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTVAudioNotification_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTVAudioNotification_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTVAudioNotification_OnEvent( x, p ) \
(x)->lpVtbl->OnEvent( x, p )
#define IAMAnalogVideoEncoder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMAnalogVideoEncoder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMAnalogVideoEncoder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMAnalogVideoEncoder_get_AvailableTVFormats( x, p ) \
(x)->lpVtbl->get_AvailableTVFormats( x, p )
#define IAMAnalogVideoEncoder_put_TVFormat( x, p ) \
(x)->lpVtbl->put_TVFormat( x, p )
#define IAMAnalogVideoEncoder_get_TVFormat( x, p ) \
(x)->lpVtbl->get_TVFormat( x, p )
#define IAMAnalogVideoEncoder_put_CopyProtection( x, p ) \
(x)->lpVtbl->put_CopyProtection( x, p )
#define IAMAnalogVideoEncoder_get_CopyProtection( x, p ) \
(x)->lpVtbl->get_CopyProtection( x, p )
#define IAMAnalogVideoEncoder_put_CCEnable( x, p ) \
(x)->lpVtbl->put_CCEnable( x, p )
#define IAMAnalogVideoEncoder_get_CCEnable( x, p ) \
(x)->lpVtbl->get_CCEnable( x, p )
#define IKsPropertySet_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IKsPropertySet_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IKsPropertySet_Release( x ) \
(x)->lpVtbl->Release( x )
#define IKsPropertySet_Set( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->Set( x, p1, p2, p3, p4, p5, p6 )
#define IKsPropertySet_Get( x, p1, p2, p3, p4, p5, p6, p7 ) \
(x)->lpVtbl->Get( x, p1, p2, p3, p4, p5, p6, p7 )
#define IKsPropertySet_QuerySupported( x, p1, p2, p3 ) \
(x)->lpVtbl->QuerySupported( x, p1, p2, p3 )
#define IMediaPropertyBag_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMediaPropertyBag_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMediaPropertyBag_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMediaPropertyBag_Read( x, p1, p2, p3 ) \
(x)->lpVtbl->Read( x, p1, p2, p3 )
#define IMediaPropertyBag_Write( x, p1, p2 ) \
(x)->lpVtbl->Write( x, p1, p2 )
#define IMediaPropertyBag_EnumProperty( x, p1, p2, p3 ) \
(x)->lpVtbl->EnumProperty( x, p1, p2, p3 )
#define IPersistMediaPropertyBag_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IPersistMediaPropertyBag_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IPersistMediaPropertyBag_Release( x ) \
(x)->lpVtbl->Release( x )
#define IPersistMediaPropertyBag_GetClassID( x, p ) \
(x)->lpVtbl->GetClassID( x, p )
#define IPersistMediaPropertyBag_InitNew( x ) \
(x)->lpVtbl->InitNew( x )
#define IPersistMediaPropertyBag_Load( x, p1, p2 ) \
(x)->lpVtbl->Load( x, p1, p2 )
#define IPersistMediaPropertyBag_Save( x, p1, p2, p3 ) \
(x)->lpVtbl->Save( x, p1, p2, p3 )
#define IAMPhysicalPinInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMPhysicalPinInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMPhysicalPinInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMPhysicalPinInfo_GetPhysicalType( x, p1, p2 ) \
(x)->lpVtbl->GetPhysicalType( x, p1, p2 )
#define IAMExtDevice_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMExtDevice_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMExtDevice_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMExtDevice_GetCapability( x, p1, p2, p3 ) \
(x)->lpVtbl->GetCapability( x, p1, p2, p3 )
#define IAMExtDevice_get_ExternalDeviceID( x, p ) \
(x)->lpVtbl->get_ExternalDeviceID( x, p )
#define IAMExtDevice_get_ExternalDeviceVersion( x, p ) \
(x)->lpVtbl->get_ExternalDeviceVersion( x, p )
#define IAMExtDevice_put_DevicePower( x, p ) \
(x)->lpVtbl->put_DevicePower( x, p )
#define IAMExtDevice_get_DevicePower( x, p ) \
(x)->lpVtbl->get_DevicePower( x, p )
#define IAMExtDevice_Calibrate( x, p1, p2, p3 ) \
(x)->lpVtbl->Calibrate( x, p1, p2, p3 )
#define IAMExtDevice_put_DevicePort( x, p ) \
(x)->lpVtbl->put_DevicePort( x, p )
#define IAMExtDevice_get_DevicePort( x, p ) \
(x)->lpVtbl->get_DevicePort( x, p )
#define IAMExtTransport_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMExtTransport_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMExtTransport_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMExtTransport_GetCapability( x, p1, p2, p3 ) \
(x)->lpVtbl->GetCapability( x, p1, p2, p3 )
#define IAMExtTransport_put_MediaState( x, p ) \
(x)->lpVtbl->put_MediaState( x, p )
#define IAMExtTransport_get_MediaState( x, p ) \
(x)->lpVtbl->get_MediaState( x, p )
#define IAMExtTransport_put_LocalControl( x, p ) \
(x)->lpVtbl->put_LocalControl( x, p )
#define IAMExtTransport_get_LocalControl( x, p ) \
(x)->lpVtbl->get_LocalControl( x, p )
#define IAMExtTransport_GetStatus( x, p1, p2 ) \
(x)->lpVtbl->GetStatus( x, p1, p2 )
#define IAMExtTransport_GetTransportBasicParameters( x, p1, p2, p3 ) \
(x)->lpVtbl->GetTransportBasicParameters( x, p1, p2, p3 )
#define IAMExtTransport_SetTransportBasicParameters( x, p1, p2, p3 ) \
(x)->lpVtbl->SetTransportBasicParameters( x, p1, p2, p3 )
#define IAMExtTransport_GetTransportVideoParameters( x, p1, p2 ) \
(x)->lpVtbl->GetTransportVideoParameters( x, p1, p2 )
#define IAMExtTransport_SetTransportVideoParameters( x, p1, p2 ) \
(x)->lpVtbl->SetTransportVideoParameters( x, p1, p2 )
#define IAMExtTransport_GetTransportAudioParameters( x, p1, p2 ) \
(x)->lpVtbl->GetTransportAudioParameters( x, p1, p2 )
#define IAMExtTransport_SetTransportAudioParameters( x, p1, p2 ) \
(x)->lpVtbl->SetTransportAudioParameters( x, p1, p2 )
#define IAMExtTransport_put_Mode( x, p ) \
(x)->lpVtbl->put_Mode( x, p )
#define IAMExtTransport_get_Mode( x, p ) \
(x)->lpVtbl->get_Mode( x, p )
#define IAMExtTransport_put_Rate( x, p ) \
(x)->lpVtbl->put_Rate( x, p )
#define IAMExtTransport_get_Rate( x, p ) \
(x)->lpVtbl->get_Rate( x, p )
#define IAMExtTransport_GetChase( x, p1, p2, p3 ) \
(x)->lpVtbl->GetChase( x, p1, p2, p3 )
#define IAMExtTransport_SetChase( x, p1, p2, p3 ) \
(x)->lpVtbl->SetChase( x, p1, p2, p3 )
#define IAMExtTransport_GetBump( x, p1, p2 ) \
(x)->lpVtbl->GetBump( x, p1, p2 )
#define IAMExtTransport_SetBump( x, p1, p2 ) \
(x)->lpVtbl->SetBump( x, p1, p2 )
#define IAMExtTransport_get_AntiClogControl( x, p ) \
(x)->lpVtbl->get_AntiClogControl( x, p )
#define IAMExtTransport_put_AntiClogControl( x, p ) \
(x)->lpVtbl->put_AntiClogControl( x, p )
#define IAMExtTransport_GetEditPropertySet( x, p1, p2 ) \
(x)->lpVtbl->GetEditPropertySet( x, p1, p2 )
#define IAMExtTransport_SetEditPropertySet( x, p1, p2 ) \
(x)->lpVtbl->SetEditPropertySet( x, p1, p2 )
#define IAMExtTransport_GetEditProperty( x, p1, p2, p3 ) \
(x)->lpVtbl->GetEditProperty( x, p1, p2, p3 )
#define IAMExtTransport_SetEditProperty( x, p1, p2, p3 ) \
(x)->lpVtbl->SetEditProperty( x, p1, p2, p3 )
#define IAMExtTransport_get_EditStart( x, p ) \
(x)->lpVtbl->get_EditStart( x, p )
#define IAMExtTransport_put_EditStart( x, p ) \
(x)->lpVtbl->put_EditStart( x, p )
#define IAMTimecodeReader_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTimecodeReader_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTimecodeReader_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTimecodeReader_GetTCRMode( x, p1, p2 ) \
(x)->lpVtbl->GetTCRMode( x, p1, p2 )
#define IAMTimecodeReader_SetTCRMode( x, p1, p2 ) \
(x)->lpVtbl->SetTCRMode( x, p1, p2 )
#define IAMTimecodeReader_put_VITCLine( x, p ) \
(x)->lpVtbl->put_VITCLine( x, p )
#define IAMTimecodeReader_get_VITCLine( x, p ) \
(x)->lpVtbl->get_VITCLine( x, p )
#define IAMTimecodeReader_GetTimecode( x, p ) \
(x)->lpVtbl->GetTimecode( x, p )
#define IAMTimecodeGenerator_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTimecodeGenerator_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTimecodeGenerator_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTimecodeGenerator_GetTCGMode( x, p1, p2 ) \
(x)->lpVtbl->GetTCGMode( x, p1, p2 )
#define IAMTimecodeGenerator_SetTCGMode( x, p1, p2 ) \
(x)->lpVtbl->SetTCGMode( x, p1, p2 )
#define IAMTimecodeGenerator_put_VITCLine( x, p ) \
(x)->lpVtbl->put_VITCLine( x, p )
#define IAMTimecodeGenerator_get_VITCLine( x, p ) \
(x)->lpVtbl->get_VITCLine( x, p )
#define IAMTimecodeGenerator_SetTimecode( x, p ) \
(x)->lpVtbl->SetTimecode( x, p )
#define IAMTimecodeGenerator_GetTimecode( x, p ) \
(x)->lpVtbl->GetTimecode( x, p )
#define IAMTimecodeDisplay_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMTimecodeDisplay_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMTimecodeDisplay_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMTimecodeDisplay_GetTCDisplayEnable( x, p ) \
(x)->lpVtbl->GetTCDisplayEnable( x, p )
#define IAMTimecodeDisplay_SetTCDisplayEnable( x, p ) \
(x)->lpVtbl->SetTCDisplayEnable( x, p )
#define IAMTimecodeDisplay_GetTCDisplay( x, p1, p2 ) \
(x)->lpVtbl->GetTCDisplay( x, p1, p2 )
#define IAMTimecodeDisplay_SetTCDisplay( x, p1, p2 ) \
(x)->lpVtbl->SetTCDisplay( x, p1, p2 )
#define IAMDevMemoryAllocator_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMDevMemoryAllocator_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMDevMemoryAllocator_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMDevMemoryAllocator_GetInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetInfo( x, p1, p2, p3, p4 )
#define IAMDevMemoryAllocator_CheckMemory( x, p ) \
(x)->lpVtbl->CheckMemory( x, p )
#define IAMDevMemoryAllocator_Alloc( x, p1, p2 ) \
(x)->lpVtbl->Alloc( x, p1, p2 )
#define IAMDevMemoryAllocator_Free( x, p ) \
(x)->lpVtbl->Free( x, p )
#define IAMDevMemoryAllocator_GetDevMemoryObject( x, p1, p2 ) \
(x)->lpVtbl->GetDevMemoryObject( x, p1, p2 )
#define IAMDevMemoryControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMDevMemoryControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMDevMemoryControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMDevMemoryControl_QueryWriteSync( x ) \
(x)->lpVtbl->QueryWriteSync( x )
#define IAMDevMemoryControl_WriteSync( x ) \
(x)->lpVtbl->WriteSync( x )
#define IAMDevMemoryControl_GetDevId( x, p ) \
(x)->lpVtbl->GetDevId( x, p )
#define IAMStreamSelect_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMStreamSelect_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMStreamSelect_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMStreamSelect_Count( x, p ) \
(x)->lpVtbl->Count( x, p )
#define IAMStreamSelect_Info( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->Info( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IAMStreamSelect_Enable( x, p1, p2 ) \
(x)->lpVtbl->Enable( x, p1, p2 )
#define IAMResourceControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMResourceControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMResourceControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMResourceControl_Reserve( x, p1, p2 ) \
(x)->lpVtbl->Reserve( x, p1, p2 )
#define IAMClockAdjust_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMClockAdjust_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMClockAdjust_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMClockAdjust_SetClockDelta( x, p ) \
(x)->lpVtbl->SetClockDelta( x, p )
#define IAMFilterMiscFlags_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMFilterMiscFlags_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMFilterMiscFlags_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMFilterMiscFlags_GetMiscFlags( x ) \
(x)->lpVtbl->GetMiscFlags( x )
#define IDrawVideoImage_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDrawVideoImage_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDrawVideoImage_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDrawVideoImage_DrawVideoImageBegin( x ) \
(x)->lpVtbl->DrawVideoImageBegin( x )
#define IDrawVideoImage_DrawVideoImageEnd( x ) \
(x)->lpVtbl->DrawVideoImageEnd( x )
#define IDrawVideoImage_DrawVideoImageDraw( x, p1, p2, p3 ) \
(x)->lpVtbl->DrawVideoImageDraw( x, p1, p2, p3 )
#define IDecimateVideoImage_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDecimateVideoImage_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDecimateVideoImage_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDecimateVideoImage_SetDecimationImageSize( x, p1, p2 ) \
(x)->lpVtbl->SetDecimationImageSize( x, p1, p2 )
#define IDecimateVideoImage_ResetDecimationImageSize( x ) \
(x)->lpVtbl->ResetDecimationImageSize( x )
#define IAMVideoDecimationProperties_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMVideoDecimationProperties_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMVideoDecimationProperties_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMVideoDecimationProperties_QueryDecimationUsage( x, p ) \
(x)->lpVtbl->QueryDecimationUsage( x, p )
#define IAMVideoDecimationProperties_SetDecimationUsage( x, p ) \
(x)->lpVtbl->SetDecimationUsage( x, p )
#define IVideoFrameStep_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVideoFrameStep_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVideoFrameStep_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVideoFrameStep_Step( x, p1, p2 ) \
(x)->lpVtbl->Step( x, p1, p2 )
#define IVideoFrameStep_CanStep( x, p1, p2 ) \
(x)->lpVtbl->CanStep( x, p1, p2 )
#define IVideoFrameStep_CancelStep( x ) \
(x)->lpVtbl->CancelStep( x )
#define IAMLatency_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMLatency_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMLatency_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMLatency_GetLatency( x, p ) \
(x)->lpVtbl->GetLatency( x, p )
#define IAMPushSource_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMPushSource_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMPushSource_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMPushSource_GetLatency( x, p ) \
(x)->lpVtbl->GetLatency( x, p )
#define IAMPushSource_GetPushSourceFlags( x, p ) \
(x)->lpVtbl->GetPushSourceFlags( x, p )
#define IAMPushSource_SetPushSourceFlags( x, p ) \
(x)->lpVtbl->SetPushSourceFlags( x, p )
#define IAMPushSource_SetStreamOffset( x, p ) \
(x)->lpVtbl->SetStreamOffset( x, p )
#define IAMPushSource_GetStreamOffset( x, p ) \
(x)->lpVtbl->GetStreamOffset( x, p )
#define IAMPushSource_GetMaxStreamOffset( x, p ) \
(x)->lpVtbl->GetMaxStreamOffset( x, p )
#define IAMPushSource_SetMaxStreamOffset( x, p ) \
(x)->lpVtbl->SetMaxStreamOffset( x, p )
#define IAMDeviceRemoval_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMDeviceRemoval_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMDeviceRemoval_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMDeviceRemoval_DeviceInfo( x, p1, p2 ) \
(x)->lpVtbl->DeviceInfo( x, p1, p2 )
#define IAMDeviceRemoval_Reassociate( x ) \
(x)->lpVtbl->Reassociate( x )
#define IAMDeviceRemoval_Disassociate( x ) \
(x)->lpVtbl->Disassociate( x )
#define IDVEnc_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDVEnc_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDVEnc_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDVEnc_get_IFormatResolution( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->get_IFormatResolution( x, p1, p2, p3, p4, p5 )
#define IDVEnc_put_IFormatResolution( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->put_IFormatResolution( x, p1, p2, p3, p4, p5 )
#define IIPDVDec_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IIPDVDec_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IIPDVDec_Release( x ) \
(x)->lpVtbl->Release( x )
#define IIPDVDec_get_IPDisplay( x, p ) \
(x)->lpVtbl->get_IPDisplay( x, p )
#define IIPDVDec_put_IPDisplay( x, p ) \
(x)->lpVtbl->put_IPDisplay( x, p )
#define IDVRGB219_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDVRGB219_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDVRGB219_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDVRGB219_SetRGB219( x, p ) \
(x)->lpVtbl->SetRGB219( x, p )
#define IDVSplitter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDVSplitter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDVSplitter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDVSplitter_DiscardAlternateVideoFrames( x, p ) \
(x)->lpVtbl->DiscardAlternateVideoFrames( x, p )
#define IAMAudioRendererStats_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMAudioRendererStats_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMAudioRendererStats_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMAudioRendererStats_GetStatParam( x, p1, p2 ) \
(x)->lpVtbl->GetStatParam( x, p1, p2 )
#define IAMGraphStreams_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMGraphStreams_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMGraphStreams_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMGraphStreams_FindUpstreamInterface( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->FindUpstreamInterface( x, p1, p2, p3, p4 )
#define IAMGraphStreams_SyncUsingStreamOffset( x, p ) \
(x)->lpVtbl->SyncUsingStreamOffset( x, p )
#define IAMGraphStreams_SetMaxGraphLatency( x, p ) \
(x)->lpVtbl->SetMaxGraphLatency( x, p )
#define IAMOverlayFX_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMOverlayFX_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMOverlayFX_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMOverlayFX_QueryOverlayFXCaps( x, p ) \
(x)->lpVtbl->QueryOverlayFXCaps( x, p )
#define IAMOverlayFX_SetOverlayFX( x, p ) \
(x)->lpVtbl->SetOverlayFX( x, p )
#define IAMOverlayFX_GetOverlayFX( x, p ) \
(x)->lpVtbl->GetOverlayFX( x, p )
#define IAMOpenProgress_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMOpenProgress_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMOpenProgress_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMOpenProgress_QueryProgress( x, p1, p2 ) \
(x)->lpVtbl->OpenProgress( x, p1, p2 )
#define IAMOpenProgress_AbortOperation( x ) \
(x)->lpVtbl->AbortOperation( x )
#define IMpeg2Demultiplexer_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMpeg2Demultiplexer_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMpeg2Demultiplexer_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMpeg2Demultiplexer_CreateOutputPin( x, p1, p2, p3 ) \
(x)->lpVtbl->CreateOutputPin( x, p1, p2, p3 )
#define IMpeg2Demultiplexer_SetOutputPinMediaType( x, p1, p2 ) \
(x)->lpVtbl->SetOutputPinMediaType( x, p1, p2 )
#define IMpeg2Demultiplexer_DeleteOutputPin( x, p ) \
(x)->lpVtbl->DeleteOutputPin( x, p )
#define IEnumStreamIdMap_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEnumStreamIdMap_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEnumStreamIdMap_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEnumStreamIdMap_Next( x, p1, p2, p3 ) \
(x)->lpVtbl->Next( x, p1, p2, p3 )
#define IEnumStreamIdMap_Skip( x, p ) \
(x)->lpVtbl->Skip( x, p )
#define IEnumStreamIdMap_Reset( x ) \
(x)->lpVtbl->Reset( x )
#define IEnumStreamIdMap_Clone( x, p ) \
(x)->lpVtbl->Clone( x, p )
#define IMPEG2StreamIdMap_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IMPEG2StreamIdMap_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IMPEG2StreamIdMap_Release( x ) \
(x)->lpVtbl->Release( x )
#define IMPEG2StreamIdMap_MapStreamId( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->MapStreamId( x, p1, p2, p3, p4 )
#define IMPEG2StreamIdMap_UnmapStreamId( x, p1, p2 ) \
(x)->lpVtbl->UnmapStreamId( x, p1, p2 )
#define IMPEG2StreamIdMap_EnumStreamIdMap( x, p ) \
(x)->lpVtbl->EnumStreamIdMap( x, p )
#define IRegisterServiceProvider_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IRegisterServiceProvider_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IRegisterServiceProvider_Release( x ) \
(x)->lpVtbl->Release( x )
#define IRegisterServiceProvider_RegisterService( x, p1, p2 ) \
(x)->lpVtbl->RegisterService( x, p1, p2 )
#define IAMClockSlave_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMClockSlave_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMClockSlave_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMClockSlave_SetErrorTolerance( x, p ) \
(x)->lpVtbl->SetErrorTolerance( x, p )
#define IAMClockSlave_GetErrorTolerance( x, p ) \
(x)->lpVtbl->GetErrorTolerance( x, p )
#define IAMGraphBuilderCallback_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMGraphBuilderCallback_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMGraphBuilderCallback_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMGraphBuilderCallback_SelectedFilter( x, p ) \
(x)->lpVtbl->SelectedFilter( x, p )
#define IAMGraphBuilderCallback_CreatedFilter( x, p ) \
(x)->lpVtbl->CreatedFilter( x, p )
#define ICodecAPI_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define ICodecAPI_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define ICodecAPI_Release( x ) \
(x)->lpVtbl->Release( x )
#define ICodecAPI_IsSupported( x, p ) \
(x)->lpVtbl->IsSupported( x, p )
#define ICodecAPI_IsModifiable( x, p ) \
(x)->lpVtbl->IsModifiable( x, p )
#define ICodecAPI_GetParameterRange( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetParameterRange( x, p1, p2, p3, p4 )
#define ICodecAPI_GetParameterValues( x, p1, p2, p3 ) \
(x)->lpVtbl->GetParameterValues( x, p1, p2, p3 )
#define ICodecAPI_GetDefaultValue( x, p1, p2 ) \
(x)->lpVtbl->GetDefaultValue( x, p1, p2 )
#define ICodecAPI_GetValue( x, p1, p2 ) \
(x)->lpVtbl->GetValue( x, p1, p2 )
#define ICodecAPI_SetValue( x, p1, p2 ) \
(x)->lpVtbl->SetValue( x, p1, p2 )
#define ICodecAPI_RegisterForEvent( x, p1, p2 ) \
(x)->lpVtbl->RegisterForEvent( x, p1, p2 )
#define ICodecAPI_UnregisterForEvent( x, p ) \
(x)->lpVtbl->UnregisterForEvent( x, p )
#define ICodecAPI_SetAllDefaults( x ) \
(x)->lpVtbl->SetAllDefaults( x )
#define ICodecAPI_SetValueWithNotify( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetValueWithNotify( x, p1, p2, p3, p4 )
#define ICodecAPI_SetAllDefaultsWithNotify( x, p1, p2 ) \
(x)->lpVtbl->SetAllDefaultsWithNotify( x, p1, p2 )
#define ICodecAPI_GetAllSettings( x, p ) \
(x)->lpVtbl->GetAllSettings( x, p )
#define ICodecAPI_SetAllSettings( x, p ) \
(x)->lpVtbl->SetAllSettings( x, p )
#define ICodecAPI_SetAllSettingsWithNotify( x, p1, p2 ) \
(x)->lpVtbl->SetAllSettingsWithNotify( x, p1, p2 )
#define IGetCapabilitiesKey_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IGetCapabilitiesKey_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IGetCapabilitiesKey_Release( x ) \
(x)->lpVtbl->Release( x )
#define IGetCapabilitiesKey_GetCapabilitiesKey( x, p ) \
(x)->lpVtbl->GetCapabilitiesKey( x, p )
#define IEncoderAPI_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IEncoderAPI_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IEncoderAPI_Release( x ) \
(x)->lpVtbl->Release( x )
#define IEncoderAPI_IsSupported( x, p ) \
(x)->lpVtbl->IsSupported( x, p )
#define IEncoderAPI_IsAvailable( x, p ) \
(x)->lpVtbl->IsAvailable( x, p )
#define IEncoderAPI_GetParameterRange( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetParameterRange( x, p1, p2, p3, p4 )
#define IEncoderAPI_GetParameterValues( x, p1, p2, p3 ) \
(x)->lpVtbl->GetParameterValues( x, p1, p2, p3 )
#define IEncoderAPI_GetDefaultValue( x, p1, p2 ) \
(x)->lpVtbl->GetDefaultValue( x, p1, p2 )
#define IEncoderAPI_GetValue( x, p1, p2 ) \
(x)->lpVtbl->GetValue( x, p1, p2 )
#define IEncoderAPI_SetValue( x, p1, p2 ) \
(x)->lpVtbl->SetValue( x, p1, p2 )
#define IVideoEncoder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVideoEncoder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVideoEncoder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVideoEncoder_IsSupported( x, p ) \
(x)->lpVtbl->IsSupported( x, p )
#define IVideoEncoder_IsAvailable( x, p ) \
(x)->lpVtbl->IsAvailable( x, p )
#define IVideoEncoder_GetParameterRange( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetParameterRange( x, p1, p2, p3, p4 )
#define IVideoEncoder_GetParameterValues( x, p1, p2, p3 ) \
(x)->lpVtbl->GetParameterValues( x, p1, p2, p3 )
#define IVideoEncoder_GetDefaultValue( x, p1, p2 ) \
(x)->lpVtbl->GetDefaultValue( x, p1, p2 )
#define IVideoEncoder_GetValue( x, p1, p2 ) \
(x)->lpVtbl->GetValue( x, p1, p2 )
#define IVideoEncoder_SetValue( x, p1, p2 ) \
(x)->lpVtbl->SetValue( x, p1, p2 )
#define IAMDecoderCaps_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMDecoderCaps_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMDecoderCaps_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMDecoderCaps_GetDecoderCaps( x, p1, p2 ) \
(x)->lpVtbl->GetDecoderCaps( x, p1, p2 )
#define IAMCertifiedOutputProtection_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMCertifiedOutputProtection_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMCertifiedOutputProtection_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMCertifiedOutputProtection_KeyExchange( x, p1, p2, p3 ) \
(x)->lpVtbl->KeyExchange( x, p1, p2, p3 )
#define IAMCertifiedOutputProtection_SessionSequenceStart( x, p ) \
(x)->lpVtbl->SessionSequenceStart( x, p )
#define IAMCertifiedOutputProtection_ProtectionCommand( x, p ) \
(x)->lpVtbl->ProtectionCommand( x, p )
#define IAMCertifiedOutputProtection_ProtectionStatus( x, p1, p2 ) \
(x)->lpVtbl->ProtectionStatus( x, p1, p2 )
#define IAMAsyncReaderTimestampScaling_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMAsyncReaderTimestampScaling_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMAsyncReaderTimestampScaling_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMAsyncReaderTimestampScaling_GetTimestampMode( x, p ) \
(x)->lpVtbl->GetTimestampMode( x, p )
#define IAMAsyncReaderTimestampScaling_SetTimestampMode( x, p ) \
(x)->lpVtbl->SetTimestampMode( x, p )
#define IAMPluginControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IAMPluginControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IAMPluginControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IAMPluginControl_GetPreferredClsid( x, p1, p2 ) \
(x)->lpVtbl->GetPreferredClsid( x, p1, p2 )
#define IAMPluginControl_GetPreferredClsidByIndex( x, p1, p2, p3 ) \
(x)->lpVtbl->GetPreferredClsidByIndex( x, p1, p2, p3 )
#define IAMPluginControl_SetPreferredClsid( x, p1, p2 ) \
(x)->lpVtbl->SetPreferredClsid( x, p1, p2 )
#define IAMPluginControl_IsDisabled( x, p ) \
(x)->lpVtbl->IsDisabled( x, p )
#define IAMPluginControl_GetDisabledByIndex( x, p1, p2 ) \
(x)->lpVtbl->GetDisabledByIndex( x, p1, p2 )
#define IAMPluginControl_SetDisabled( x, p1, p2 ) \
(x)->lpVtbl->SetDisabled( x, p1, p2 )
#define IAMPluginControl_IsLegacyDisabled( x, p ) \
(x)->lpVtbl->IsLegacyDisabled( x, p )
#define IDvdControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdControl_TitlePlay( x, p ) \
(x)->lpVtbl->TitlePlay( x, p )
#define IDvdControl_ChapterPlay( x, p1, p2 ) \
(x)->lpVtbl->ChapterPlay( x, p1, p2 )
#define IDvdControl_TimePlay( x, p1, p2 ) \
(x)->lpVtbl->TimePlay( x, p1, p2 )
#define IDvdControl_StopForResume( x ) \
(x)->lpVtbl->StopForResume( x )
#define IDvdControl_GoUp( x ) \
(x)->lpVtbl->GoUp( x )
#define IDvdControl_TimeSearch( x, p ) \
(x)->lpVtbl->TimeSearch( x, p )
#define IDvdControl_ChapterSearch( x, p ) \
(x)->lpVtbl->ChapterSearch( x, p )
#define IDvdControl_PrevPGSearch( x ) \
(x)->lpVtbl->PrevPGSearch( x )
#define IDvdControl_TopPGSearch( x ) \
(x)->lpVtbl->TopPGSearch( x )
#define IDvdControl_ForwardScan( x, p ) \
(x)->lpVtbl->ForwardScan( x, p )
#define IDvdControl_BackwardScan( x, p ) \
(x)->lpVtbl->BackwardScan( x, p )
#define IDvdControl_MenuCall( x, p ) \
(x)->lpVtbl->MenuCall( x, p )
#define IDvdControl_Resume( x ) \
(x)->lpVtbl->Resume( x )
#define IDvdControl_UpperButtonSelect( x ) \
(x)->lpVtbl->UpperButtonSelect( x )
#define IDvdControl_LowerButtonSelect( x ) \
(x)->lpVtbl->LowerButtonSelect( x )
#define IDvdControl_LeftButtonSelect( x ) \
(x)->lpVtbl->LeftButtonSelect( x )
#define IDvdControl_RightButtonSelect( x ) \
(x)->lpVtbl->RightButtonSelect( x )
#define IDvdControl_ButtonActivate( x ) \
(x)->lpVtbl->ButtonActivate( x )
#define IDvdControl_ButtonSelectAndActivate( x, p ) \
(x)->lpVtbl->ButtonSelectAndActivate( x, p )
#define IDvdControl_StillOff( x ) \
(x)->lpVtbl->StillOff( x )
#define IDvdControl_PauseOn( x ) \
(x)->lpVtbl->PauseOn( x )
#define IDvdControl_PauseOff( x ) \
(x)->lpVtbl->PauseOff( x )
#define IDvdControl_MenuLanguageSelect( x, p ) \
(x)->lpVtbl->MenuLanguageSelect( x, p )
#define IDvdControl_AudioStreamChange( x, p ) \
(x)->lpVtbl->AudioStreamChange( x, p )
#define IDvdControl_SubpictureStreamChange( x, p1, p2 ) \
(x)->lpVtbl->SubpictureStreamChange( x, p1, p2 )
#define IDvdControl_AngleChange( x, p ) \
(x)->lpVtbl->AngleChange( x, p )
#define IDvdControl_ParentalLevelSelect( x, p ) \
(x)->lpVtbl->ParentalLevelSelect( x, p )
#define IDvdControl_ParentalCountrySelect( x, p ) \
(x)->lpVtbl->ParentalCountrySelect( x, p )
#define IDvdControl_KaraokeAudioPresentationModeChange( x, p ) \
(x)->lpVtbl->KaraokeAudioPresentationModeChange( x, p )
#define IDvdControl_VideoModePreference( x, p ) \
(x)->lpVtbl->VideoModePreference( x, p )
#define IDvdControl_SetRoot( x, p ) \
(x)->lpVtbl->SetRoot( x, p )
#define IDvdControl_MouseActivate( x, p ) \
(x)->lpVtbl->MouseActivate( x, p )
#define IDvdControl_MouseSelect( x, p ) \
(x)->lpVtbl->MouseSelect( x, p )
#define IDvdControl_ChapterPlayAutoStop( x, p1, p2, p3 ) \
(x)->lpVtbl->ChapterPlayAutoStop( x, p1, p2, p3 )
#define IDvdInfo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdInfo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdInfo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdInfo_GetCurrentDomain( x, p ) \
(x)->lpVtbl->GetCurrentDomain( x, p )
#define IDvdInfo_GetCurrentLocation( x, p ) \
(x)->lpVtbl->GetCurrentLocation( x, p )
#define IDvdInfo_GetTotalTitleTime( x, p ) \
(x)->lpVtbl->GetTotalTitleTime( x, p )
#define IDvdInfo_GetCurrentButton( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentButton( x, p1, p2 )
#define IDvdInfo_GetCurrentAngle( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentAngle( x, p1, p2 )
#define IDvdInfo_GetCurrentAudio( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentAudio( x, p1, p2 )
#define IDvdInfo_GetCurrentSubpicture( x, p1, p2, p3 ) \
(x)->lpVtbl->GetCurrentSubpicture( x, p1, p2, p3 )
#define IDvdInfo_GetCurrentUOPS( x, p ) \
(x)->lpVtbl->GetCurrentUOPS( x, p )
#define IDvdInfo_GetAllSPRMs( x, p ) \
(x)->lpVtbl->GetAllSPRMs( x, p )
#define IDvdInfo_GetAllGPRMs( x, p ) \
(x)->lpVtbl->GetAllGPRMs( x, p )
#define IDvdInfo_GetAudioLanguage( x, p ) \
(x)->lpVtbl->GetAudioLanguage( x, p )
#define IDvdInfo_GetSubpictureLanguage( x, p ) \
(x)->lpVtbl->GetSubpictureLanguage( x, p )
#define IDvdInfo_GetTitleAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetTitleAttributes( x, p1, p2 )
#define IDvdInfo_GetVMGAttributes( x, p ) \
(x)->lpVtbl->GetVMGAttributes( x, p )
#define IDvdInfo_GetCurrentVideoAttributes( x, p ) \
(x)->lpVtbl->GetCurrentVideoAttributes( x, p )
#define IDvdInfo_GetCurrentAudioAttributes( x, p ) \
(x)->lpVtbl->GetCurrentAudioAttributes( x, p )
#define IDvdInfo_GetCurrentSubpictureAttributes( x, p ) \
(x)->lpVtbl->GetCurrentSubpictureAttributes( x, p )
#define IDvdInfo_GetCurrentVolumeInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetCurrentVolumeInfo( x, p1, p2, p3, p4 )
#define IDvdInfo_GetDVDTextInfo( x, p1, p2, p3 ) \
(x)->lpVtbl->GetDVDTextInfo( x, p1, p2, p3 )
#define IDvdInfo_GetPlayerParentalLevel( x, p1, p2 ) \
(x)->lpVtbl->GetPlayerParentalLevel( x, p1, p2 )
#define IDvdInfo_GetNumberOfChapters( x, p1, p2 ) \
(x)->lpVtbl->GetNumberOfChapters( x, p1, p2 )
#define IDvdInfo_GetTitleParentalLevel( x, p1, p2 ) \
(x)->lpVtbl->GetTitleParentalLevel( x, p1, p2 )
#define IDvdInfo_GetRoot( x, p1, p2, p3 ) \
(x)->lpVtbl->GetRoot( x, p1, p2, p3 )
#define IDvdCmd_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdCmd_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdCmd_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdCmd_WaitForStart( x ) \
(x)->lpVtbl->WaitForStart( x )
#define IDvdCmd_WaitForEnd( x ) \
(x)->lpVtbl->WaitForEnd( x )
#define IDvdState_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdState_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdState_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdState_GetDiscID( x, p ) \
(x)->lpVtbl->GetDiscID( x, p )
#define IDvdState_GetParentalLevel( x, p ) \
(x)->lpVtbl->GetParentalLevel( x, p )
#define IDvdControl2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdControl2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdControl2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdControl2_PlayTitle( x, p1, p2, p3 ) \
(x)->lpVtbl->PlayTitle( x, p1, p2, p3 )
#define IDvdControl2_PlayChapterInTitle( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->PlayChapterInTitle( x, p1, p2, p3, p4 )
#define IDvdControl2_PlayAtTimeInTitle( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->PlayAtTimeInTitle( x, p1, p2, p3, p4 )
#define IDvdControl2_Stop( x ) \
(x)->lpVtbl->Stop( x )
#define IDvdControl2_ReturnFromSubmenu( x, p1, p2 ) \
(x)->lpVtbl->ReturnFromSubmenu( x, p1, p2 )
#define IDvdControl2_PlayAtTime( x, p1, p2, p3 ) \
(x)->lpVtbl->PlayAtTime( x, p1, p2, p3 )
#define IDvdControl2_PlayChapter( x, p1, p2, p3 ) \
(x)->lpVtbl->PlayChapter( x, p1, p2, p3 )
#define IDvdControl2_PlayPrevChapter( x, p1, p2 ) \
(x)->lpVtbl->PlayPrevChapter( x, p1, p2 )
#define IDvdControl2_ReplayChapter( x, p1, p2 ) \
(x)->lpVtbl->ReplayChapter( x, p1, p2 )
#define IDvdControl2_PlayNextChapter( x, p1, p2 ) \
(x)->lpVtbl->PlayNextChapter( x, p1, p2 )
#define IDvdControl2_PlayForwards( x, p1, p2, p3 ) \
(x)->lpVtbl->PlayForwards( x, p1, p2, p3 )
#define IDvdControl2_PlayBackwards( x, p1, p2, p3 ) \
(x)->lpVtbl->PlayBackwards( x, p1, p2, p3 )
#define IDvdControl2_ShowMenu( x, p1, p2, p3 ) \
(x)->lpVtbl->ShowMenu( x, p1, p2, p3 )
#define IDvdControl2_Resume( x, p1, p2 ) \
(x)->lpVtbl->Resume( x, p1, p2 )
#define IDvdControl2_SelectRelativeButton( x, p ) \
(x)->lpVtbl->SelectRelativeButton( x, p )
#define IDvdControl2_ActivateButton( x ) \
(x)->lpVtbl->ActivateButton( x )
#define IDvdControl2_SelectButton( x, p ) \
(x)->lpVtbl->SelectButton( x, p )
#define IDvdControl2_SelectAndActivateButton( x, p ) \
(x)->lpVtbl->SelectAndActivateButton( x, p )
#define IDvdControl2_StillOff( x ) \
(x)->lpVtbl->StillOff( x )
#define IDvdControl2_Pause( x, p ) \
(x)->lpVtbl->Pause( x, p )
#define IDvdControl2_SelectAudioStream( x, p1, p2, p3 ) \
(x)->lpVtbl->SelectAudioStream( x, p1, p2, p3 )
#define IDvdControl2_SelectSubpictureStream( x, p1, p2, p3 ) \
(x)->lpVtbl->SelectSubpictureStream( x, p1, p2, p3 )
#define IDvdControl2_SetSubpictureState( x, p1, p2, p3 ) \
(x)->lpVtbl->SetSubpictureState( x, p1, p2, p3 )
#define IDvdControl2_SelectAngle( x, p1, p2, p3 ) \
(x)->lpVtbl->SelectAngle( x, p1, p2, p3 )
#define IDvdControl2_SelectParentalLevel( x, p ) \
(x)->lpVtbl->SelectParentalLevel( x, p )
#define IDvdControl2_SelectParentalCountry( x, p ) \
(x)->lpVtbl->SelectParentalCountry( x, p )
#define IDvdControl2_SelectKaraokeAudioPresentationMode( x, p ) \
(x)->lpVtbl->SelectKaraokeAudioPresentationMode( x, p )
#define IDvdControl2_SelectVideoModePreference( x, p ) \
(x)->lpVtbl->SelectVideoModePreference( x, p )
#define IDvdControl2_SetDVDDirectory( x, p ) \
(x)->lpVtbl->SetDVDDirectory( x, p )
#define IDvdControl2_ActivateAtPosition( x, p ) \
(x)->lpVtbl->ActivateAtPosition( x, p )
#define IDvdControl2_SelectAtPosition( x, p ) \
(x)->lpVtbl->SelectAtPosition( x, p )
#define IDvdControl2_PlayChaptersAutoStop( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->PlayChaptersAutoStop( x, p1, p2, p3, p4, p5 )
#define IDvdControl2_AcceptParentalLevelChange( x, p ) \
(x)->lpVtbl->AcceptParentalLevelChange( x, p )
#define IDvdControl2_SetOption( x, p1, p2 ) \
(x)->lpVtbl->SetOption( x, p1, p2 )
#define IDvdControl2_SetState( x, p1, p2, p3 ) \
(x)->lpVtbl->SetState( x, p1, p2, p3 )
#define IDvdControl2_PlayPeriodInTitleAutoStop( x, p1, p2, p3, p4, p5 ) \
(x)->lpVtbl->PlayPeriodInTitleAutoStop( x, p1, p2, p3, p4, p5 )
#define IDvdControl2_SetGPRM( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->SetGPRM( x, p1, p2, p3, p4 )
#define IDvdControl2_SelectDefaultMenuLanguage( x, p ) \
(x)->lpVtbl->SelectDefaultMenuLanguage( x, p )
#define IDvdControl2_SelectDefaultAudioLanguage( x, p1, p2 ) \
(x)->lpVtbl->SelectDefaultAudioLanguage( x, p1, p2 )
#define IDvdControl2_SelectDefaultSubpictureLanguage( x, p1, p2 ) \
(x)->lpVtbl->SelectDefaultSubpictureLanguage( x, p1, p2 )
#define IDvdInfo2_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdInfo2_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdInfo2_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdInfo2_GetCurrentDomain( x, p ) \
(x)->lpVtbl->GetCurrentDomain( x, p )
#define IDvdInfo2_GetCurrentLocation( x, p ) \
(x)->lpVtbl->GetCurrentLocation( x, p )
#define IDvdInfo2_GetTotalTitleTime( x, p1, p2 ) \
(x)->lpVtbl->GetTotalTitleTime( x, p1, p2 )
#define IDvdInfo2_GetCurrentButton( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentButton( x, p1, p2 )
#define IDvdInfo2_GetCurrentAngle( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentAngle( x, p1, p2 )
#define IDvdInfo2_GetCurrentAudio( x, p1, p2 ) \
(x)->lpVtbl->GetCurrentAudio( x, p1, p2 )
#define IDvdInfo2_GetCurrentSubpicture( x, p1, p2, p3 ) \
(x)->lpVtbl->GetCurrentSubpicture( x, p1, p2, p3 )
#define IDvdInfo2_GetCurrentUOPS( x, p ) \
(x)->lpVtbl->GetCurrentUOPS( x, p )
#define IDvdInfo2_GetAllSPRMs( x, p ) \
(x)->lpVtbl->GetAllSPRMs( x, p )
#define IDvdInfo2_GetAllGPRMs( x, p ) \
(x)->lpVtbl->GetAllGPRMs( x, p )
#define IDvdInfo2_GetAudioLanguage( x, p1, p2 ) \
(x)->lpVtbl->GetAudioLanguage( x, p1, p2 )
#define IDvdInfo2_GetSubpictureLanguage( x, p1, p2 ) \
(x)->lpVtbl->GetSubpictureLangauge( x, p1, p2 )
#define IDvdInfo2_GetTitleAttributes( x, p1, p2, p3 ) \
(x)->lpVtbl->GetTitleAttributes( x, p1, p2, p3 )
#define IDvdInfo2_GetVMGAttributes( x, p ) \
(x)->lpVtbl->GetVMGAttributes( x, p )
#define IDvdInfo2_GetCurrentVideoAttributes( x, p ) \
(x)->lpVtbl->GetCurrentVideoAttributes( x, p )
#define IDvdInfo2_GetAudioAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetAudioAttributes( x, p1, p2 )
#define IDvdInfo2_GetKaraokeAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetKaraokeAttributes( x, p1, p2 )
#define IDvdInfo2_GetSubpictureAttributes( x, p1, p2 ) \
(x)->lpVtbl->GetSubpictureAttributes( x, p1, p2 )
#define IDvdInfo2_GetDVDVolumeInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetDVDVolumeInfo( x, p1, p2, p3, p4 )
#define IDvdInfo2_GetDVDTextNumberOfLanguages( x, p ) \
(x)->lpVtbl->GetDVDTextNumberOfLanguages( x, p )
#define IDvdInfo2_GetDVDTextLanguageInfo( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetDVDTextLanguageInfo( x, p1, p2, p3, p4 )
#define IDvdInfo2_GetDVDTextStringAsNative( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetDVDTextStringAsNative( x, p1, p2, p3, p4, p5, p6 )
#define IDvdInfo2_GetDVDTextStringAsUnicode( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->GetDVDTextStringAsUnicode( x, p1, p2, p3, p4, p5, p6 )
#define IDvdInfo2_GetPlayerParentalLevel( x, p1, p2 ) \
(x)->lpVtbl->GetPlayerParentalLevel( x, p1, p2 )
#define IDvdInfo2_GetNumberOfChapters( x, p1, p2 ) \
(x)->lpVtbl->GetNumberOfChapters( x, p1, p2 )
#define IDvdInfo2_GetTitleParentalLevels( x, p1, p2 ) \
(x)->lpVtbl->GetTitleParentalLevels( x, p1, p2 )
#define IDvdInfo2_GetDVDDirectory( x, p1, p2, p3 ) \
(x)->lpVtbl->GetDVDDirectory( x, p1, p2, p3 )
#define IDvdInfo2_IsAudioStreamEnabled( x, p1, p2 ) \
(x)->lpVtbl->IsAudioStreamEnabled( x, p1, p2 )
#define IDvdInfo2_GetDiscID( x, p1, p2 ) \
(x)->lpVtbl->GetDiscID( x, p1, p2 )
#define IDvdInfo2_GetState( x, p ) \
(x)->lpVtbl->GetState( x, p )
#define IDvdInfo2_GetMenuLanguages( x, p1, p2, p3 ) \
(x)->lpVtbl->GetMenuLanguages( x, p1, p2, p3 )
#define IDvdInfo2_GetButtonAtPosition( x, p1, p2 ) \
(x)->lpVtbl->GetButtonAtPosition( x, p1, p2 )
#define IDvdInfo2_GetCmdFromEvent( x, p1, p2 ) \
(x)->lpVtbl->GetCmdFromEvent( x, p1, p2 )
#define IDvdInfo2_GetDefaultMenuLanguage( x, p ) \
(x)->lpVtbl->GetDefaultMenuLanguage( x, p )
#define IDvdInfo2_GetDefaultAudioLanguage( x, p1, p2 ) \
(x)->lpVtbl->GetDefaultAudioLanguage( x, p1, p2 )
#define IDvdInfo2_GetDefaultSubpictureLanguage( x, p1, p2 ) \
(x)->lpVtbl->GetDefaultSubpictureLanguage( x, p1, p2 )
#define IDvdInfo2_GetDecoderCaps( x, p ) \
(x)->lpVtbl->GetDecoderCaps( x, p )
#define IDvdInfo2_GetButtonRect( x, p1, p2 ) \
(x)->lpVtbl->GetButtonRect( x, p1, p2 )
#define IDvdInfo2_IsSubpictureStreamEnabled( x, p1, p2 ) \
(x)->lpVtbl->IsSubpictureStreamEnabled( x, p1, p2 )
#define IDvdGraphBuilder_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDvdGraphBuilder_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDvdGraphBuilder_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDvdGraphBuilder_GetFiltergraph( x, p ) \
(x)->lpVtbl->GetFiltergraph( x, p )
#define IDvdGraphBuilder_GetDvdInterface( x, p1, p2 ) \
(x)->lpVtbl->GetDvdInterface( x, p1, p2 )
#define IDvdGraphBuilder_RenderDvdVideoVolume( x, p1, p2, p3 ) \
(x)->lpVtbl->RenderDvdVideoVolume( x, p1, p2, p3 )
#define IDDrawExclModeVideo_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDDrawExclModeVideo_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDDrawExclModeVideo_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDDrawExclModeVideo_SetDDrawObject( x, p ) \
(x)->lpVtbl->SetDDrawObject( x, p )
#define IDDrawExclModeVideo_GetDDrawObject( x, p1, p2 ) \
(x)->lpVtbl->GetDDrawObject( x, p1, p2 )
#define IDDrawExclModeVideo_SetDDrawSurface( x, p ) \
(x)->lpVtbl->SetDDrawSurface( x, p )
#define IDDrawExclModeVideo_GetDDrawSurface( x, p1, p2 ) \
(x)->lpVtbl->GetDDrawSurface( x, p1, p2 )
#define IDDrawExclModeVideo_SetDrawParameters( x, p1, p2 ) \
(x)->lpVtbl->SetDrawParameters( x, p1, p2 )
#define IDDrawExclModeVideo_GetNativeVideoProps( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetNativeVideoProps( x, p1, p2, p3, p4 )
#define IDDrawExclModeVideo_SetCallbackInterface( x, p1, p2 ) \
(x)->lpVtbl->SetCallbackInterface( x, p1, p2 )
#define IDDrawExclModeVideoCallback_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IDDrawExclModeVideoCallback_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IDDrawExclModeVideoCallback_Release( x ) \
(x)->lpVtbl->Release( x )
#define IDDrawExclModeVideoCallback_OnUpdateOverlay( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->OnUpdateOverlay( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IDDrawExclModeVideoCallback_OnUpdateColorKey( x, p1, p2 ) \
(x)->lpVtbl->OnUpdateColorKey( x, p1, p2 )
#define IDDrawExclModeVideoCallback_OnUpdateSize( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->OnUpdateSize( x, p1, p2, p3, p4 )
#define IPinConnection_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IPinConnection_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IPinConnection_Release( x ) \
(x)->lpVtbl->Release( x )
#define IPinConnection_DynamicQueryAccept( x, p ) \
(x)->lpVtbl->DynamicQueryAccept( x, p )
#define IPinConnection_NotifyEndOfStream( x, p ) \
(x)->lpVtbl->NotifyEndOfStream( x, p )
#define IPinConnection_IsEndPin( x ) \
(x)->lpVtbl->IsEndPin( x )
#define IPinConnection_DynamicDisconnect( x ) \
(x)->lpVtbl->DynamicDisconnect( x )
#define IPinFlowControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IPinFlowControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IPinFlowControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IPinFlowControl_Block( x, p1, p2 ) \
(x)->lpVtbl->Block( x, p1, p2 )
#define IGraphConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IGraphConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IGraphConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IGraphConfig_Reconnect( x, p1, p2, p3, p4, p5, p6 ) \
(x)->lpVtbl->Reconnect( x, p1, p2, p3, p4, p5, p6 )
#define IGraphConfig_Reconfigure( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->Reconfigure( x, p1, p2, p3, p4 )
#define IGraphConfig_AddFilterToCache( x, p ) \
(x)->lpVtbl->AddFilterToCache( x, p )
#define IGraphConfig_EnumCacheFilter( x, p ) \
(x)->lpVtbl->EnumCacheFilter( x, p )
#define IGraphConfig_RemoveFilterFromCache( x, p ) \
(x)->lpVtbl->RemoveFilterFromCache( x, p )
#define IGraphConfig_GetStartTime( x, p ) \
(x)->lpVtbl->GetStartTime( x, p )
#define IGraphConfig_PushThroughData( x, p1, p2, p3 ) \
(x)->lpVtbl->PushThroughData( x, p1, p2, p3 )
#define IGraphConfig_SetFilterFlags( x, p1, p2 ) \
(x)->lpVtbl->SetFilterFlags( x, p1, p2 )
#define IGraphConfig_GetFilterFlags( x, p1, p2 ) \
(x)->lpVtbl->GetFilterFlags( x, p1, p2 )
#define IGraphConfig_RemoveFilterEx( x, p1, p2 ) \
(x)->lpVtbl->RemoveFilterEx( x, p1, p2 )
#define IGraphConfigCallback_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IGraphConfigCallback_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IGraphConfigCallback_Release( x ) \
(x)->lpVtbl->Release( x )
#define IGraphConfigCallback_Reconfigure( x, p1, p2 ) \
(x)->lpVtbl->Reconfigure( x, p1, p2 )
#define IFilterChain_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IFilterChain_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IFilterChain_Release( x ) \
(x)->lpVtbl->Release( x )
#define IFilterChain_StartChain( x, p1, p2 ) \
(x)->lpVtbl->StartChain( x, p1, p2 )
#define IFilterChain_PauseChain( x, p1, p2 ) \
(x)->lpVtbl->PauseChain( x, p1, p2 )
#define IFilterChain_StopChain( x, p1, p2 ) \
(x)->lpVtbl->StopChain( x, p1, p2 )
#define IFilterChain_RemoveChain( x, p1, p2 ) \
(x)->lpVtbl->RemoveChain( x, p1, p2 )
#define IVMRImagePresenter_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRImagePresenter_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRImagePresenter_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRImagePresenter_StartPresenting( x, p ) \
(x)->lpVtbl->StartPresenting( x, p )
#define IVMRImagePresenter_StopPresenting( x, p ) \
(x)->lpVtbl->StopPresenting( x, p )
#define IVMRImagePresenter_PresentImage( x, p1, p2 ) \
(x)->lpVtbl->PresentImage( x, p1, p2 )
#define IVMRSurfaceAllocator_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRSurfaceAllocator_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRSurfaceAllocator_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRSurfaceAllocator_AllocateSurface( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->AllocateSurface( x, p1, p2, p3, p4 )
#define IVMRSurfaceAllocator_FreeSurface( x, p ) \
(x)->lpVtbl->FreeSurface( x, p )
#define IVMRSurfaceAllocator_PrepareSurface( x, p1, p2, p3 ) \
(x)->lpVtbl->PrepareSurface( x, p1, p2, p3 )
#define IVMRSurfaceAllocator_AdviseNotify( x, p ) \
(x)->lpVtbl->AdviseNotify( x, p )
#define IVMRSurfaceAllocatorNotify_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRSurfaceAllocatorNotify_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRSurfaceAllocatorNotify_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator( x, p1, p2 ) \
(x)->lpVtbl->AdviseSurfaceAllocator( x, p1, p2 )
#define IVMRSurfaceAllocatorNotify_SetDDrawDevice( x, p1, p2 ) \
(x)->lpVtbl->SetDDrawDevice( x, p1, p2 )
#define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice( x, p1, p2 ) \
(x)->lpVtbl->ChangeDDrawDevice( x, p1, p2 )
#define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces( x ) \
(x)->lpVtbl->RestoreDDrawSurfaces( x )
#define IVMRSurfaceAllocatorNotify_NotifyEvent( x, p1, p2, p3 ) \
(x)->lpVtbl->NotifyEvent( x, p1, p2, p3 )
#define IVMRSurfaceAllocatorNotify_SetBorderColor( x, p ) \
(x)->lpVtbl->SetBorderColor( x, p )
#define IVMRWindowlessControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRWindowlessControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRWindowlessControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRWindowlessControl_GetNativeVideoSize( x, p1, p2, p3, p4 ) \
(x)->lpVtbl->GetNativeVideoSize( x, p1, p2, p3, p4 )
#define IVMRWindowlessControl_GetMinIdealVideoSize( x, p1, p2 ) \
(x)->lpVtbl->GetMinIdealVideoSize( x, p1, p2 )
#define IVMRWindowlessControl_GetMaxIdealVideoSize( x, p1, p2 ) \
(x)->lpVtbl->GetMaxIdealVideoSize( x, p1, p2 )
#define IVMRWindowlessControl_SetVideoPosition( x, p1, p2 ) \
(x)->lpVtbl->SetVideoPosition( x, p1, p2 )
#define IVMRWindowlessControl_GetVideoPosition( x, p1, p2 ) \
(x)->lpVtbl->GetVideoPosition( x, p1, p2 )
#define IVMRWindowlessControl_GetAspectRatioMode( x, p ) \
(x)->lpVtbl->GetAspectRatioMode( x, p )
#define IVMRWindowlessControl_SetAspectRatioMode( x, p ) \
(x)->lpVtbl->SetAspectRatioMode( x, p )
#define IVMRWindowlessControl_SetVideoClippingWindow( x, p ) \
(x)->lpVtbl->SetVideoClippingWindow( x, p )
#define IVMRWindowlessControl_RepaintVideo( x, p1, p2 ) \
(x)->lpVtbl->RepaintVideo( x, p1, p2 )
#define IVMRWindowlessControl_DisplayModeChanged( x ) \
(x)->lpVtbl->DisplayModeChanged( x )
#define IVMRWindowlessControl_GetCurrentImage( x, p ) \
(x)->lpVtbl->GetCurrentImage( x, p )
#define IVMRWindowlessControl_SetBorderColor( x, p ) \
(x)->lpVtbl->SetBorderColor( x, p )
#define IVMRWindowlessControl_GetBorderColor( x, p ) \
(x)->lpVtbl->GetBorderColor( x, p )
#define IVMRWindowlessControl_SetColorKey( x, p ) \
(x)->lpVtbl->SetColorKey( x, p )
#define IVMRWindowlessControl_GetColorKey( x, p ) \
(x)->lpVtbl->GetColorKey( x, p )
#define IVMRMixerControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRMixerControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRMixerControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRMixerControl_SetAlpha( x, p1, p2 ) \
(x)->lpVtbl->SetAlpha( x, p1, p2 )
#define IVMRMixerControl_GetAlpha( x, p1, p2 ) \
(x)->lpVtbl->GetAlpha( x, p1, p2 )
#define IVMRMixerControl_SetZOrder( x, p1, p2 ) \
(x)->lpVtbl->SetZOrder( x, p1, p2 )
#define IVMRMixerControl_GetZOrder( x, p1, p2 ) \
(x)->lpVtbl->GetZOrder( x, p1, p2 )
#define IVMRMixerControl_SetOutputRect( x, p1, p2 ) \
(x)->lpVtbl->SetOutputRect( x, p1, p2 )
#define IVMRMixerControl_GetOutputRect( x, p1, p2 ) \
(x)->lpVtbl->GetOutputRect( x, p1, p2 )
#define IVMRMixerControl_SetBackgroundClr( x, p ) \
(x)->lpVtbl->SetBackgroundClr( x, p )
#define IVMRMixerControl_GetBackgroundClr( x, p ) \
(x)->lpVtbl->GetBackgroundClr( x, p )
#define IVMRMixerControl_SetMixingPrefs( x, p ) \
(x)->lpVtbl->SetMixingPrefs( x, p )
#define IVMRMixerControl_GetMixingPrefs( x, p ) \
(x)->lpVtbl->GetMixingPrefs( x, p )
#define IVMRMonitorConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRMonitorConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRMonitorConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRMonitorConfig_SetMonitor( x, p ) \
(x)->lpVtbl->SetMonitor( x, p )
#define IVMRMonitorConfig_GetMonitor( x, p ) \
(x)->lpVtbl->GetMonitor( x, p )
#define IVMRMonitorConfig_SetDefaultMonitor( x, p ) \
(x)->lpVtbl->SetDefaultMonitor( x, p )
#define IVMRMonitorConfig_GetDefaultMonitor( x, p ) \
(x)->lpVtbl->GetDefaultMonitor( x, p )
#define IVMRMonitorConfig_GetAvailableMonitors( x, p1, p2, p3 ) \
(x)->lpVtbl->GetAvailableMonitors( x, p1, p2, p3 )
#define IVMRFilterConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRFilterConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRFilterConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRFilterConfig_SetImageCompositor( x, p ) \
(x)->lpVtbl->SetImageCompositor( x, p )
#define IVMRFilterConfig_SetNumberOfStreams( x, p ) \
(x)->lpVtbl->SetNumberOfStreams( x, p )
#define IVMRFilterConfig_GetNumberOfStreams( x, p ) \
(x)->lpVtbl->GetNumberOfStreams( x, p )
#define IVMRFilterConfig_SetRenderingPrefs( x, p ) \
(x)->lpVtbl->SetRenderingPrefs( x, p )
#define IVMRFilterConfig_GetRenderingPrefs( x, p ) \
(x)->lpVtbl->GetRenderingPrefs( x, p )
#define IVMRFilterConfig_SetRenderingMode( x, p ) \
(x)->lpVtbl->SetRenderingMode( x, p )
#define IVMRFilterConfig_GetRenderingMode( x, p ) \
(x)->lpVtbl->GetRenderingMode( x, p )
#define IVMRAspectRatioControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRAspectRatioControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRAspectRatioControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRAspectRatioControl_GetAspectRatioControl( x, p ) \
(x)->lpVtbl->GetAspectRatioControl( x, p )
#define IVMRAspectRatioControl_SetAspectRatioControl( x, p ) \
(x)->lpVtbl->SetAspectRatioControl( x, p )
#define IVMRDeinterlaceControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRDeinterlaceControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRDeinterlaceControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes( x, p1, p2, p3 ) \
(x)->lpVtbl->GetNumberOfDeinterlaceModes( x, p1, p2, p3 )
#define IVMRDeinterlaceControl_GetDeinterlaceModeCaps( x, p1, p2, p3 ) \
(x)->lpVtbl->GetDeinterlaceModeCaps( x, p1, p2, p3 )
#define IVMRDeinterlaceControl_GetDeinterlaceMode( x, p1, p2 ) \
(x)->lpVtbl->GetDeinterlaceMode( x, p1, p2 )
#define IVMRDeinterlaceControl_SetDeinterlaceMode( x, p1, p2 ) \
(x)->lpVtbl->SetDeinterlaceMode( x, p1, p2 )
#define IVMRDeinterlaceControl_GetDeinterlacePrefs( x, p1, p2 ) \
(x)->lpVtbl->GetDeinterlacePrefs( x, p1, p2 )
#define IVMRDeinterlaceControl_SetDeinterlacePrefs( x, p1, p2 ) \
(x)->lpVtbl->SetDeinterlacePrefs( x, p1, p2 )
#define IVMRDeinterlaceControl_GetActualDeinterlaceMode( x, p1, p2 ) \
(x)->lpVtbl->GetActualDeinterlaceMode( x, p1, p2 )
#define IVMRMixerControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRMixerControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRMixerControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRMixerControl_SetAlphaBitmap( x, p ) \
(x)->lpVtbl->SetAlphaBitmap( x, p )
#define IVMRMixerControl_UpdateAlphaBitmapParameters( x, p ) \
(x)->lpVtbl->UpdateAlphaBitmapParameters( x, p )
#define IVMRMixerControl_GetAlphaBitmapParameters( x, p ) \
(x)->lpVtbl->GetAlphaBitmapParameters( x, p )
#define IVMRImageCompositor_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRImageCompositor_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRImageCompositor_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRImageCompositor_InitCompositionTarget( x, p1, p2 ) \
(x)->lpVtbl->InitCompositionTarget( x, p1, p2 )
#define IVMRImageCompositor_TermCompositionTarget( x, p1, p2 ) \
(x)->lpVtbl->TermCompositionTarget( x, p1, p2 )
#define IVMRImageCompositor_SetStreamMediaType( x, p1, p2, p3 ) \
(x)->lpVtbl->SetStreamMediaType( x, p1, p2, p3 )
#define IVMRImageCompositor_CompositeImage( x, p1, p2, p3, p4, p5, p6, p7, p8 ) \
(x)->lpVtbl->CompositeImage( x, p1, p2, p3, p4, p5, p6, p7, p8 )
#define IVMRVideoStreamControl_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRVideoStreamControl_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRVideoStreamControl_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRVideoStreamControl_SetColorKey( x, p ) \
(x)->lpVtbl->SetColorKey( x, p )
#define IVMRVideoStreamControl_GetColorKey( x, p ) \
(x)->lpVtbl->GetColorKey( x, p )
#define IVMRVideoStreamControl_SetStreamActiveState( x, p ) \
(x)->lpVtbl->SetStreamActiveState( x, p )
#define IVMRVideoStreamControl_GetStreamActiveState( x, p ) \
(x)->lpVtbl->GetStreamActiveState( x, p )
#define IVMRSurface_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRSurface_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRSurface_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRSurface_IsSurfaceLocked( x ) \
(x)->lpVtbl->IsSurfaceLocked( x )
#define IVMRSurface_LockSurface( x, p ) \
(x)->lpVtbl->LockSurface( x, p )
#define IVMRSurface_UnlockSurface( x ) \
(x)->lpVtbl->UnlockSurface( x )
#define IVMRSurface_GetSurface( x, p ) \
(x)->lpVtbl->GetSurface( x, p )
#define IVMRImagePresenterConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRImagePresenterConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRImagePresenterConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRImagePresenterConfig_SetRenderingFlags( x, p ) \
(x)->lpVtbl->SetRenderingFlags( x, p )
#define IVMRImagePresenterConfig_GetRenderingFlags( x, p ) \
(x)->lpVtbl->GetRenderingFlags( x, p )
#define IVMRImagePresenterExclModeConfig_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVMRImagePresenterExclModeConfig_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVMRImagePresenterExclModeConfig_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVMRImagePresenterExclModeConfig_SetRenderingFlags( x, p ) \
(x)->lpVtbl->SetRenderingFlags( x, p )
#define IVMRImagePresenterExclModeConfig_GetRenderingFlags( x, p ) \
(x)->lpVtbl->GetRenderingFlags( x, p )
#define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface( x, p1, p2 ) \
(x)->lpVtbl->SetXlcModeDDObjAndPrimarySurface( x, p1, p2 )
#define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface( x, p1, p2 ) \
(x)->lpVtbl->GetXlcModeDDObjAndPrimarySurface( x, p1, p2 )
#define IVPManager_QueryInterface( x, p1, p2 ) \
(x)->lpVtbl->QueryInterface( x, p1, p2 )
#define IVPManager_AddRef( x ) \
(x)->lpVtbl->AddRef( x )
#define IVPManager_Release( x ) \
(x)->lpVtbl->Release( x )
#define IVPManager_SetVideoPortIndex( x, p ) \
(x)->lpVtbl->SetVideoPortIndex( x, p )
#define IVPManager_GetVideoPortIndex( x, p ) \
(x)->lpVtbl->GetVideoPortIndex( x, p )
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __strmif_h__ */