/* * 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 #include #ifndef COM_NO_WINDOWS_H #include #include #endif #ifndef __strmif_h__ #define __strmif_h__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #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__ */