mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
239 lines
5.2 KiB
239 lines
5.2 KiB
// ap.idl : IDL source for VMRAllocPresenter.dll
|
|
//
|
|
|
|
// This file will be processed by the MIDL tool to
|
|
// produce the type library (ap.tlb) and marshalling code.
|
|
|
|
//=====================================================================
|
|
|
|
|
|
import "unknwn.idl";
|
|
|
|
cpp_quote("#ifdef DSHOW_INDEPENDENT")
|
|
typedef struct _AMMediaType {
|
|
GUID majortype;
|
|
GUID subtype;
|
|
BOOL bFixedSizeSamples;
|
|
BOOL bTemporalCompression;
|
|
ULONG lSampleSize;
|
|
GUID formattype;
|
|
IUnknown *pUnk;
|
|
ULONG cbFormat;
|
|
[size_is(cbFormat)] BYTE * pbFormat;
|
|
} AM_MEDIA_TYPE;
|
|
cpp_quote ("#endif")
|
|
|
|
cpp_quote("#if 0")
|
|
// This is temporary hack to get around the fact thatI don't know how to persuade
|
|
// MIDL to allow forward declarations.
|
|
typedef DWORD* LPDIRECTDRAW7;
|
|
typedef DWORD* LPDIRECTDRAWSURFACE7;
|
|
cpp_quote ("#endif")
|
|
|
|
cpp_quote("#include <ddraw.h>")
|
|
|
|
|
|
interface IVMRSurface;
|
|
interface IVMRSurfaceAllocator;
|
|
interface IVMRSurfaceAllocatorInternal;
|
|
interface IVMRSurfaceAllocatorNotify;
|
|
interface IVMRWindowlessControl;
|
|
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0),
|
|
helpstring("IVMRSurfaceAllocator Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVMRSurface : IUnknown
|
|
{
|
|
HRESULT IsSurfaceLocked();
|
|
|
|
HRESULT LockSurface(
|
|
[out] BYTE** lpSurface
|
|
);
|
|
|
|
HRESULT UnlockSurface();
|
|
|
|
HRESULT GetSurface(
|
|
[out] LPDIRECTDRAWSURFACE7 *lplpSurface
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
|
|
helpstring("IVMRSurfaceAllocator Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVMRSurfaceAllocator : IUnknown
|
|
{
|
|
HRESULT AllocateSurfaces(
|
|
[in] const AM_MEDIA_TYPE* pmt,
|
|
[in] [out] DWORD* lpdwBackBuffers,
|
|
[out] AM_MEDIA_TYPE **ppmt
|
|
);
|
|
|
|
HRESULT FreeSurfaces(
|
|
);
|
|
|
|
HRESULT GetNextSurface(
|
|
[out] LPDIRECTDRAWSURFACE7 *lplpSurface,
|
|
[in] DWORD dwSurfaceFlags
|
|
);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(26716b2e-9b79-4a48-8ddf-a8131183803b),
|
|
|
|
helpstring("IVMRSurfaceAllocatorInternal Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVMRSurfaceAllocatorInternal : IVMRSurfaceAllocator
|
|
{
|
|
HRESULT AdviseNotify(
|
|
[in] IVMRSurfaceAllocatorNotify* lpIVMRSurfaceAllocatorNotify
|
|
);
|
|
};
|
|
|
|
[
|
|
object,
|
|
uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
|
|
|
|
helpstring("IVMRSurfaceAllocatorNotify Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVMRSurfaceAllocatorNotify : IUnknown
|
|
{
|
|
HRESULT AdviseSurfaceAllocator(
|
|
[in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator
|
|
);
|
|
|
|
HRESULT SetDDrawDevice(
|
|
[in] LPDIRECTDRAW7 lpDDrawDevice
|
|
);
|
|
|
|
HRESULT ChangeDDrawDevice(
|
|
[in] LPDIRECTDRAW7 lpDDrawDevice
|
|
);
|
|
|
|
HRESULT RestoreDDrawSurfaces(
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
|
|
|
|
helpstring("IVMRWindowlessControl Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVMRWindowlessControl : IUnknown
|
|
{
|
|
//
|
|
//////////////////////////////////////////////////////////
|
|
// Video size and position information
|
|
//////////////////////////////////////////////////////////
|
|
//
|
|
HRESULT GetNativeVideoSize(
|
|
[in] LONG* lpWidth,
|
|
[in] LONG* lpHeight,
|
|
[in] LONG* lpARWidth,
|
|
[in] LONG* lpARHeight
|
|
);
|
|
|
|
HRESULT GetMinIdealVideoSize(
|
|
[in] LONG* lpWidth,
|
|
[in] LONG* lpHeight
|
|
);
|
|
|
|
HRESULT GetMaxIdealVideoSize(
|
|
[in] LONG* lpWidth,
|
|
[in] LONG* lpHeight
|
|
);
|
|
|
|
HRESULT SetVideoPosition(
|
|
[in] const LPRECT lpSRCRect,
|
|
[in] const LPRECT lpDSTRect
|
|
);
|
|
|
|
HRESULT GetVideoPosition(
|
|
[out] LPRECT lpSRCRect,
|
|
[out] LPRECT lpDSTRect
|
|
);
|
|
|
|
HRESULT GetAspectRatioMode(
|
|
[out] DWORD* lpAspectRatioMode
|
|
);
|
|
|
|
HRESULT SetAspectRatioMode(
|
|
[in] DWORD AspectRatioMode
|
|
);
|
|
|
|
//
|
|
//////////////////////////////////////////////////////////
|
|
// Display and clipping management
|
|
//////////////////////////////////////////////////////////
|
|
//
|
|
HRESULT SetVideoClippingWindow(
|
|
[in] HWND hwnd
|
|
);
|
|
|
|
HRESULT RepaintVideo(
|
|
[in] HWND hwnd,
|
|
[in] HDC hdc
|
|
);
|
|
|
|
HRESULT DisplayModeChanged();
|
|
|
|
|
|
//
|
|
//////////////////////////////////////////////////////////
|
|
// Color control
|
|
//////////////////////////////////////////////////////////
|
|
//
|
|
HRESULT SetBorderColor(
|
|
[in] COLORREF Clr
|
|
);
|
|
|
|
HRESULT GetBorderColor(
|
|
[out] COLORREF* lpClr
|
|
);
|
|
|
|
HRESULT SetColorKey(
|
|
[in] COLORREF Clr
|
|
);
|
|
|
|
HRESULT GetColorKey(
|
|
[out] COLORREF* lpClr
|
|
);
|
|
};
|
|
|
|
|
|
[
|
|
uuid(529b581a-2f2c-4a77-be9b-d8866d48dd4c),
|
|
version(1.0),
|
|
helpstring("Allocator/Presenter 1.0 Type Library")
|
|
]
|
|
library ALLOCATORPRESENTERLib
|
|
{
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
uuid(33eb53cc-58c1-403e-92b3-732ebcf98017),
|
|
helpstring("AllocatorPresenter Class")
|
|
]
|
|
coclass AllocPresenter
|
|
{
|
|
[default] interface IVMRSurfaceAllocatorInternal;
|
|
};
|
|
};
|
|
|