📄 dxtrans.idl
字号:
BOOL bPremult;
RECT rect;
long lRowPadding;
} DXPACKEDRECTDESC;
typedef struct tagDXOVERSAMPLEDESC
{
POINT p;
DXPMSAMPLE Color;
} DXOVERSAMPLEDESC;
[
object,
uuid(EAAAC2D6-C290-11d1-905D-00C04FD9189D),
helpstring("IDXARGBReadPtr Interface"),
pointer_default(unique),
local
]
interface IDXARGBReadPtr : IUnknown
{
HRESULT GetSurface( [in]REFIID riid, [out, iid_is( riid )]void ** ppSurface);
DXSAMPLEFORMATENUM GetNativeType( [out]DXNATIVETYPEINFO *pInfo );
void Move( [in]long cSamples );
void MoveToRow( [in]ULONG y );
void MoveToXY( [in]ULONG x, [in]ULONG y);
ULONG MoveAndGetRunInfo( [in]ULONG Row, [out] const DXRUNINFO** ppInfo ); // Returns count of runs
DXSAMPLE * Unpack( [in]DXSAMPLE* pSamples, [in]ULONG cSamples, [in]BOOL bMove );
DXPMSAMPLE * UnpackPremult( [in]DXPMSAMPLE* pSamples, [in]ULONG cSamples, [in]BOOL bMove );
void UnpackRect([in] const DXPACKEDRECTDESC * pRectDesc);
};
//+-----------------------------------------------------------------------------
//
// IDXARGBReadWritePtr
//
//------------------------------------------------------------------------------
[
object,
uuid(EAAAC2D7-C290-11d1-905D-00C04FD9189D),
helpstring("IDXARGBReadWritePtr Interface"),
pointer_default(unique),
local
]
interface IDXARGBReadWritePtr : IDXARGBReadPtr
{
void PackAndMove( [in]const DXSAMPLE *pSamples, [in]ULONG cSamples );
void PackPremultAndMove( [in]const DXPMSAMPLE *pSamples, [in]ULONG cSamples );
void PackRect([in]const DXPACKEDRECTDESC *pRectDesc);
void CopyAndMoveBoth( [in]DXBASESAMPLE *pScratchBuffer, [in]IDXARGBReadPtr *pSrc,
[in]ULONG cSamples, [in]BOOL bIsOpaque );
void CopyRect( [in] DXBASESAMPLE *pScratchBuffer,
[in] const RECT *pDestRect, [in]IDXARGBReadPtr *pSrc,
[in] const POINT *pSrcOrigin, [in]BOOL bIsOpaque);
void FillAndMove( [in]DXBASESAMPLE *pScratchBuffer, [in]DXPMSAMPLE SampVal,
[in]ULONG cSamples, [in]BOOL bDoOver );
void FillRect( [in]const RECT *pRect, [in]DXPMSAMPLE SampVal, [in]BOOL bDoOver );
void OverSample( [in]const DXOVERSAMPLEDESC * pOverDesc);
void OverArrayAndMove([in]DXBASESAMPLE *pScratchBuffer,
[in] const DXPMSAMPLE *pSrc,
[in] ULONG cSamples);
};
//+-----------------------------------------------------------------------------
//
// IDXDCLock
//
//------------------------------------------------------------------------------
[
object,
uuid(0F619456-CF39-11d1-905E-00C04FD9189D),
helpstring("IDXDCLock Interface"),
pointer_default(unique),
local
]
interface IDXDCLock : IUnknown
{
HDC GetDC(void);
};
//+-----------------------------------------------------------------------------
//
// IDXTScaleOutput
//
// Overview:
// Generic interface that any transform can support which allows caller to
// specify the desired output bounds.
//------------------------------------------------------------------------------
[
object,
uuid(B2024B50-EE77-11d1-9066-00C04FD9189D),
helpstring("IDXTScaleOutput Interface"),
pointer_default(unique),
local
]
interface IDXTScaleOutput : IUnknown
{
HRESULT SetOutputSize([in] const SIZE OutSize, [in] BOOL bMaintainAspect);
};
//+-----------------------------------------------------------------------------
//
// IDXGradient
//
//------------------------------------------------------------------------------
[
object,
uuid(B2024B51-EE77-11d1-9066-00C04FD9189D),
helpstring("IDXGradient Interface"),
pointer_default(unique),
local
]
interface IDXGradient : IDXTScaleOutput
{
HRESULT SetGradient(DXSAMPLE StartColor, DXSAMPLE EndColor, BOOL bHorizontal);
HRESULT GetOutputSize([out] SIZE *pOutSize);
};
//+-----------------------------------------------------------------------------
//
// IDXTScale
//
// Overview:
// This is the control interface for the simple scale transform.
//
//------------------------------------------------------------------------------
[
object,
uuid(B39FD742-E139-11d1-9065-00C04FD9189D),
helpstring("IDXTScale Interface"),
pointer_default(unique),
local
]
interface IDXTScale : IUnknown
{
HRESULT SetScales( [in]float Scales[2] );
HRESULT GetScales( [out]float Scales[2] );
HRESULT ScaleFitToSize( [in,out]DXBNDS* pClipBounds,
[in]SIZE FitToSize, [in]BOOL bMaintainAspect );
};
//+-----------------------------------------------------------------------------
//
// IDXEffect
//
// Overview:
// This interface is used to generically control transforms that are
// transition effects.
//
//------------------------------------------------------------------------------
typedef enum DISPIDDXEFFECT
{
DISPID_DXECAPABILITIES = 10000, // Start at 10000 to avoid conflicts with inhereted interfaces
DISPID_DXEPROGRESS,
DISPID_DXESTEP,
DISPID_DXEDURATION,
DISPID_DXE_NEXT_ID
} DISPIDDXBOUNDEDEFFECT;
typedef enum DXEFFECTTYPE
{
DXTET_PERIODIC = (1 << 0), // Result at 1 is same as result at 0
DXTET_MORPH = (1 << 1) // Transition between 2 inputs (input 0 to input 1)
} DXEFFECTTYPE;
[
object,
uuid(E31FB81B-1335-11d1-8189-0000F87557DB),
helpstring("IDXEffect Interface"),
pointer_default(unique),
dual
]
interface IDXEffect : IDispatch
{
[propget, id(DISPID_DXECAPABILITIES)]
HRESULT Capabilities([out, retval] long *pVal);
[propget, id(DISPID_DXEPROGRESS)]
HRESULT Progress([out, retval] float *pVal);
[propput, id(DISPID_DXEPROGRESS)]
HRESULT Progress([in] float newVal);
[propget, id(DISPID_DXESTEP)]
HRESULT StepResolution([out, retval] float *pVal);
[propget, id(DISPID_DXEDURATION)]
HRESULT Duration([out, retval] float *pVal);
[propput, id(DISPID_DXEDURATION)]
HRESULT Duration([in] float newVal);
};
//+-----------------------------------------------------------------------------
//
// IDXLookupTable
//
//------------------------------------------------------------------------------
[
object,
uuid(01BAFC7F-9E63-11d1-9053-00C04FD9189D),
helpstring("IDXLookupTable Interface"),
pointer_default(unique),
local
]
interface IDXLookupTable : IDXBaseObject
{
HRESULT GetTables( [out]BYTE RedLUT[256],
[out]BYTE GreenLUT[256],
[out]BYTE BlueLUT[256],
[out]BYTE AlphaLUT[256] );
HRESULT IsChannelIdentity([out] DXBASESAMPLE * pSampleBools);
HRESULT GetIndexValues([in] ULONG Index, [out] DXBASESAMPLE *pSample);
HRESULT ApplyTables([in, out] DXSAMPLE *pSamples, [in] ULONG cSamples);
};
//+-----------------------------------------------------------------------------
//
// IDXRawSurface
//
// Overview:
// User created objects support IDXRawSurface
//
//------------------------------------------------------------------------------
typedef struct DXRAWSURFACEINFO
{
BYTE * pFirstByte;
long lPitch;
ULONG Width;
ULONG Height;
const GUID * pPixelFormat;
HDC hdc;
DWORD dwColorKey; // Note: High byte must == 0xFF for color keyed surface. Low 3 bytes are native data type.
DXBASESAMPLE * pPalette;
} DXRAWSURFACEINFO;
[
object,
uuid(09756C8A-D96A-11d1-9062-00C04FD9189D),
helpstring("IDXRawSurface Interface"),
pointer_default(unique),
local
]
interface IDXRawSurface : IUnknown
{
HRESULT GetSurfaceInfo(DXRAWSURFACEINFO * pSurfaceInfo);
};
//+-----------------------------------------------------------------------------
//
// IHTMLDXTransform
//
//------------------------------------------------------------------------------
[
object,
uuid(30E2AB7D-4FDD-4159-B7EA-DC722BF4ADE5),
helpstring("IHTMLDXTransform Interface"),
pointer_default(unique),
local
]
interface IHTMLDXTransform : IUnknown
{
HRESULT SetHostUrl(BSTR bstrHostUrl);
};
//+-----------------------------------------------------------------------------
//
// ICSSFilterDispatch
//
//------------------------------------------------------------------------------
typedef enum DXTFILTER_STATUS
{
DXTFILTER_STATUS_Stopped = 0,
DXTFILTER_STATUS_Applied,
DXTFILTER_STATUS_Playing,
DXTFILTER_STATUS_MAX
} DXTFILTER_STATUS;
typedef enum DXTFILTER_DISPID
{
DISPID_DXTFilter_Percent = 1,
DISPID_DXTFilter_Duration,
DISPID_DXTFilter_Enabled,
DISPID_DXTFilter_Status,
DISPID_DXTFilter_Apply,
DISPID_DXTFilter_Play,
DISPID_DXTFilter_Stop,
DISPID_DXTFilter_MAX
} DXTFILTER_DISPID;
[
object,
uuid(9519152B-9484-4A6C-B6A7-4F25E92D6C6B),
helpstring("ICSSFilterDispatch Interface"),
pointer_default(unique),
dual
]
interface ICSSFilterDispatch : IDispatch
{
[propget, id(DISPID_DXTFilter_Percent)] HRESULT Percent( [out, retval] float *pVal);
[propput, id(DISPID_DXTFilter_Percent)] HRESULT Percent( [in] float newVal);
[propget, id(DISPID_DXTFilter_Duration)] HRESULT Duration([out, retval] float *pVal);
[propput, id(DISPID_DXTFilter_Duration)] HRESULT Duration([in] float newVal);
[propget, id(DISPID_DXTFilter_Enabled)] HRESULT Enabled( [out, retval] VARIANT_BOOL *pfVal);
[propput, id(DISPID_DXTFilter_Enabled)] HRESULT Enabled( [in] VARIANT_BOOL fVal);
[propget, id(DISPID_DXTFilter_Status)] HRESULT Status( [out, retval] DXTFILTER_STATUS * peVal);
[id(DISPID_DXTFilter_Apply)] HRESULT Apply();
[id(DISPID_DXTFilter_Play)] HRESULT Play([in, optional] VARIANT varDuration);
[id(DISPID_DXTFilter_Stop)] HRESULT Stop();
};
//=== CoClass definitions =================================================
[
uuid(54314D1D-35FE-11d1-81A1-0000F87557DB),
version(1.1),
helpstring("Microsoft DirectX Transforms Core Type Library")
]
library DXTRANSLib
{
importlib("stdole2.tlb");
///////////////////////////////
// DXTransformFactory CoClass
///////////////////////////////
[
uuid(D1FE6762-FC48-11D0-883A-3C8B00C10000),
helpstring("DXTransformFactory Class")
]
coclass DXTransformFactory
{
[default] interface IDXTransformFactory;
interface IDXSurfaceFactory;
};
///////////////////////////////
// DXTaskManager CoClass
///////////////////////////////
[
uuid(4CB26C03-FF93-11d0-817E-0000F87557DB),
helpstring("DXTaskManager Class")
]
coclass DXTaskManager
{
[default] interface IDXTaskManager;
};
///////////////////////////////
// DXTScale CoClass
///////////////////////////////
[
uuid(555278E2-05DB-11D1-883A-3C8B00C10000),
helpstring("DXTScale Class")
]
coclass DXTScale
{
[default] interface IDXTScale;
};
///////////////////////////////
// DXSurface CoClass
///////////////////////////////
[
uuid(0E890F83-5F79-11D1-9043-00C04FD9189D),
helpstring("DXSurface Class")
]
coclass DXSurface
{
[default] interface IDXSurface;
};
///////////////////////////////
// DXSurfaceModifier CoClass
///////////////////////////////
[
uuid(3E669F1D-9C23-11d1-9053-00C04FD9189D),
helpstring("DXSurfaceModifier Class")
]
coclass DXSurfaceModifier
{
[default] interface IDXSurfaceModifier;
};
///////////////////////////////
// DXGradient CoClass
///////////////////////////////
[
uuid(C6365470-F667-11d1-9067-00C04FD9189D),
helpstring("DXGradient Class")
]
coclass DXGradient
{
[default] interface IDXGradient;
};
///////////////////////////////
// DXTFilter CoClass
///////////////////////////////
[
uuid(385A91BC-1E8A-4e4a-A7A6-F4FC1E6CA1BD),
helpstring("DXTFilter Class")
]
coclass DXTFilter
{
[default] interface ICSSFilterDispatch;
};
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -