📄 vmrender.cs
字号:
[PreserveSig]
int RestoreDDrawSurfaces();
[PreserveSig]
int NotifyEvent(
[In] int EventCode,
[In] IntPtr Param1,
[In] IntPtr Param2
);
[PreserveSig]
int SetBorderColor([In] int clrBorder);
}
[ComImport,
Guid("a9849bbe-9ec8-4263-b764-62730f0d15d0"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRSurface
{
[PreserveSig]
int IsSurfaceLocked();
[PreserveSig]
int LockSurface([Out] out IntPtr lpSurface); // BYTE**
[PreserveSig]
int UnlockSurface();
[PreserveSig]
int GetSurface([Out, MarshalAs(UnmanagedType.Interface)] out object lplpSurface);
}
[ComImport,
Guid("e6f7ce40-4673-44f1-8f77-5499d68cb4ea"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
{
#region IVMRImagePresenterConfig Methods
[PreserveSig]
new int SetRenderingPrefs([In] VMRRenderPrefs dwRenderFlags);
[PreserveSig]
new int GetRenderingPrefs([Out] out VMRRenderPrefs dwRenderFlags);
#endregion
[PreserveSig]
int SetXlcModeDDObjAndPrimarySurface(
[In] IntPtr lpDDObj,
[In] IntPtr lpPrimarySurf
);
[PreserveSig]
int GetXlcModeDDObjAndPrimarySurface(
[Out] out IntPtr lpDDObj,
[Out] out IntPtr lpPrimarySurf
);
}
#endif
[ComImport,
Guid("9e5530c5-7034-48b4-bb46-0b8a6efc8e36"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRFilterConfig
{
[PreserveSig]
int SetImageCompositor([In] IVMRImageCompositor lpVMRImgCompositor);
[PreserveSig]
int SetNumberOfStreams([In] int dwMaxStreams);
[PreserveSig]
int GetNumberOfStreams([Out] out int pdwMaxStreams);
[PreserveSig]
int SetRenderingPrefs([In] VMRRenderPrefs dwRenderFlags);
[PreserveSig]
int GetRenderingPrefs([Out] out VMRRenderPrefs pdwRenderFlags);
[PreserveSig]
int SetRenderingMode([In] VMRMode Mode);
[PreserveSig]
int GetRenderingMode([Out] out VMRMode Mode);
}
[ComImport,
Guid("0eb1088c-4dcd-46f0-878f-39dae86a51b7"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRWindowlessControl
{
[PreserveSig]
int GetNativeVideoSize(
[Out] out int lpWidth,
[Out] out int lpHeight,
[Out] out int lpARWidth,
[Out] out int lpARHeight
);
[PreserveSig]
int GetMinIdealVideoSize(
[Out] out int lpWidth,
[Out] out int lpHeight
);
[PreserveSig]
int GetMaxIdealVideoSize(
[Out] out int lpWidth,
[Out] out int lpHeight
);
[PreserveSig]
int SetVideoPosition(
[In] DsRect lpSRCRect,
[In] DsRect lpDSTRect
);
[PreserveSig]
int GetVideoPosition(
[Out] DsRect lpSRCRect,
[Out] DsRect lpDSTRect
);
[PreserveSig]
int GetAspectRatioMode([Out] out VMRAspectRatioMode lpAspectRatioMode);
[PreserveSig]
int SetAspectRatioMode([In] VMRAspectRatioMode AspectRatioMode);
[PreserveSig]
int SetVideoClippingWindow([In] IntPtr hwnd); // HWND
[PreserveSig]
int RepaintVideo(
[In] IntPtr hwnd, // HWND
[In] IntPtr hdc // HDC
);
[PreserveSig]
int DisplayModeChanged();
/// <summary>
/// the caller is responsible for free the returned memory by calling CoTaskMemFree.
/// </summary>
[PreserveSig]
int GetCurrentImage([Out] out IntPtr lpDib); // BYTE**
[PreserveSig]
int SetBorderColor([In] int Clr);
[PreserveSig]
int GetBorderColor([Out] out int lpClr);
[PreserveSig]
int SetColorKey([In] int Clr);
[PreserveSig]
int GetColorKey([Out] out int lpClr);
}
[ComImport,
Guid("ede80b5c-bad6-4623-b537-65586c9f8dfd"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRAspectRatioControl
{
[PreserveSig]
int GetAspectRatioMode([Out] out VMRAspectRatioMode lpdwARMode);
[PreserveSig]
int SetAspectRatioMode([In] VMRAspectRatioMode lpdwARMode);
}
[ComImport,
Guid("bb057577-0db8-4e6a-87a7-1a8c9a505a0f"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRDeinterlaceControl
{
[PreserveSig]
int GetNumberOfDeinterlaceModes(
[In] ref VMRVideoDesc lpVideoDescription,
[In, Out] ref int lpdwNumDeinterlaceModes,
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.Struct)] Guid[] lpDeinterlaceModes
);
[PreserveSig]
int GetDeinterlaceModeCaps(
[In, MarshalAs(UnmanagedType.LPStruct)] Guid lpDeinterlaceMode,
[In] ref VMRVideoDesc lpVideoDescription,
[In, Out] ref VMRDeinterlaceCaps lpDeinterlaceCaps
);
[PreserveSig]
int GetDeinterlaceMode(
[In] int dwStreamID,
[Out] out Guid lpDeinterlaceMode
);
[PreserveSig]
int SetDeinterlaceMode(
[In] int dwStreamID,
[In, MarshalAs(UnmanagedType.LPStruct)] Guid lpDeinterlaceMode
);
[PreserveSig]
int GetDeinterlacePrefs([Out] out VMRDeinterlacePrefs lpdwDeinterlacePrefs);
[PreserveSig]
int SetDeinterlacePrefs([In] VMRDeinterlacePrefs lpdwDeinterlacePrefs);
[PreserveSig]
int GetActualDeinterlaceMode(
[In] int dwStreamID,
[Out] out Guid lpDeinterlaceMode
);
}
[ComImport,
Guid("7a4fb5af-479f-4074-bb40-ce6722e43c82"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRImageCompositor
{
[PreserveSig]
int InitCompositionTarget(
[In] IntPtr pD3DDevice,
[In] IntPtr pddsRenderTarget
);
[PreserveSig]
int TermCompositionTarget(
[In] IntPtr pD3DDevice,
[In] IntPtr pddsRenderTarget
);
[PreserveSig]
int SetStreamMediaType(
[In] int dwStrmID,
[In] AMMediaType pmt,
[In, MarshalAs(UnmanagedType.Bool)] bool fTexture
);
[PreserveSig]
int CompositeImage(
[In] IntPtr pD3DDevice,
[In] IntPtr pddsRenderTarget,
[In] AMMediaType pmtRenderTarget,
[In] long rtStart,
[In] long rtEnd,
[In] int dwClrBkGnd,
[In, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.Struct, SizeParamIndex=7)] VMRVideoStreamInfo[] pVideoStreamInfo,
[In] int cStreams
);
}
[ComImport,
Guid("9f3a1c85-8555-49ba-935f-be5b5b29d178"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRImagePresenterConfig
{
[PreserveSig]
int SetRenderingPrefs([In] VMRRenderPrefs dwRenderFlags);
[PreserveSig]
int GetRenderingPrefs([Out] out VMRRenderPrefs dwRenderFlags);
}
[ComImport,
Guid("1E673275-0257-40aa-AF20-7C608D4A0428"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRMixerBitmap
{
[PreserveSig]
int SetAlphaBitmap([In] ref VMRAlphaBitmap pBmpParms);
[PreserveSig]
int UpdateAlphaBitmapParameters([In] ref VMRAlphaBitmap pBmpParms);
[PreserveSig]
int GetAlphaBitmapParameters([Out] out VMRAlphaBitmap pBmpParms);
}
[ComImport,
Guid("9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRMonitorConfig
{
[PreserveSig]
int SetMonitor([In] ref VMRGuid pGUID);
[PreserveSig]
int GetMonitor([Out] out VMRGuid pGUID);
[PreserveSig]
int SetDefaultMonitor([In] ref VMRGuid pGUID);
[PreserveSig]
int GetDefaultMonitor([Out] out VMRGuid pGUID);
[PreserveSig]
int GetAvailableMonitors(
[Out, MarshalAs(UnmanagedType.LPArray, ArraySubType=UnmanagedType.Struct)] VMRMonitorInfo[] pInfo,
[In] int dwMaxInfoArraySize,
[Out] out int pdwNumDevices
);
}
[ComImport,
Guid("058d1f11-2a54-4bef-bd54-df706626b727"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRVideoStreamControl
{
[PreserveSig]
int SetColorKey([In] ref DDColorKey lpClrKey);
[PreserveSig]
int GetColorKey([Out] out DDColorKey lpClrKey);
[PreserveSig]
int SetStreamActiveState([In, MarshalAs(UnmanagedType.Bool)] bool fActive);
[PreserveSig]
int GetStreamActiveState([Out, MarshalAs(UnmanagedType.Bool)] out bool fActive);
}
[ComImport,
Guid("1c1a17b0-bed0-415d-974b-dc6696131599"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVMRMixerControl
{
[PreserveSig]
int SetAlpha(
[In] int dwStreamID,
[In] float Alpha
);
[PreserveSig]
int GetAlpha(
[In] int dwStreamID,
[Out] out float Alpha
);
[PreserveSig]
int SetZOrder(
[In] int dwStreamID,
[In] int dwZ
);
[PreserveSig]
int GetZOrder(
[In] int dwStreamID,
[Out] out int dwZ
);
[PreserveSig]
int SetOutputRect(
[In] int dwStreamID,
[In] ref NormalizedRect pRect
);
[PreserveSig]
int GetOutputRect(
[In] int dwStreamID,
[Out] out NormalizedRect pRect
);
[PreserveSig]
int SetBackgroundClr([In] int ClrBkg);
[PreserveSig]
int GetBackgroundClr([Out] out int ClrBkg);
[PreserveSig]
int SetMixingPrefs([In] VMRMixerPrefs dwMixerPrefs);
[PreserveSig]
int GetMixingPrefs([Out] out VMRMixerPrefs dwMixerPrefs);
}
[ComImport,
Guid("aac18c18-e186-46d2-825d-a1f8dc8e395a"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVPManager
{
[PreserveSig]
int SetVideoPortIndex([In] int dwVideoPortIndex);
[PreserveSig]
int GetVideoPortIndex([Out] out int dwVideoPortIndex);
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -