702 lines
21 KiB
Plaintext
702 lines
21 KiB
Plaintext
|
//***************************************************************************
|
||
|
//
|
||
|
// Copyright (C) Microsoft Corporation, 1998
|
||
|
//
|
||
|
// FileName: DXTransP.idl
|
||
|
//
|
||
|
// Created: 11/11/98
|
||
|
//
|
||
|
// Author: PaulNash
|
||
|
//
|
||
|
// Description: Holds all PRIVATE (MSINTERNAL) DXTrans IDL code. Used
|
||
|
// by all internal DXTrans components and MSINTERNAL
|
||
|
// software components if necessary. This is a SUPERSET
|
||
|
// of DXTrans.idl.
|
||
|
//
|
||
|
// 1998/11/11 PaulNash Created.
|
||
|
// 2000/09/18 mcalkins Separated out dispatch portion of IDXTFilter and
|
||
|
// moved it to dxtrans.idl.
|
||
|
// 2000/10/08 mcalkins Redefined IDXTFilterCollection.
|
||
|
//
|
||
|
//***************************************************************************
|
||
|
|
||
|
import "dxtrans.idl";
|
||
|
|
||
|
//=== Forward References ====================================================
|
||
|
interface IDXRasterizer;
|
||
|
interface IDXTLabel;
|
||
|
interface IDX2D;
|
||
|
interface IDX2DDebug;
|
||
|
interface IDXTFilter;
|
||
|
interface IDXTFilterController;
|
||
|
interface IDXTFilterCollection;
|
||
|
|
||
|
//=== Interface definitions =================================================
|
||
|
|
||
|
//--- IDXRasterizer ---------------------------------------------
|
||
|
typedef enum DXRASTERFILL
|
||
|
{
|
||
|
DXRASTER_PEN = 0,
|
||
|
DXRASTER_BRUSH = 1,
|
||
|
DXRASTER_BACKGROUND = 2
|
||
|
} DXRASTERFILL;
|
||
|
|
||
|
//
|
||
|
// IDXRasterizer
|
||
|
//
|
||
|
typedef struct DXRASTERSCANINFO
|
||
|
{
|
||
|
ULONG ulIndex;
|
||
|
ULONG Row;
|
||
|
const BYTE * pWeights;
|
||
|
const DXRUNINFO *pRunInfo;
|
||
|
ULONG cRunInfo;
|
||
|
} DXRASTERSCANINFO;
|
||
|
|
||
|
typedef struct DXRASTERPOINTINFO
|
||
|
{
|
||
|
DXOVERSAMPLEDESC Pixel;
|
||
|
ULONG ulIndex;
|
||
|
BYTE Weight;
|
||
|
} DXRASTERPOINTINFO;
|
||
|
|
||
|
typedef struct DXRASTERRECTINFO
|
||
|
{
|
||
|
ULONG ulIndex;
|
||
|
RECT Rect;
|
||
|
BYTE Weight;
|
||
|
} DXRASTERRECTINFO;
|
||
|
|
||
|
[
|
||
|
local,
|
||
|
uuid(9EA3B635-C37D-11d1-905E-00C04FD9189D),
|
||
|
pointer_default(unique),
|
||
|
hidden
|
||
|
]
|
||
|
interface IDXRasterizer : IUnknown
|
||
|
{
|
||
|
HRESULT SetSurface([in] IDXSurface *pDXSurface);
|
||
|
HRESULT GetSurface([out] IDXSurface ** ppDXSurface);
|
||
|
HRESULT SetFill([in] ULONG ulIndex, [in] IDXSurface *pSurface, [in] const POINT *ppt, [in] DXSAMPLE FillColor);
|
||
|
HRESULT GetFill([in] ULONG ulIndex, [out] IDXSurface **ppSurface, [out] POINT *ppt, [out] DXSAMPLE *pFillColor);
|
||
|
HRESULT BeginRendering( [in]ULONG ulTimeOut );
|
||
|
HRESULT EndRendering( void );
|
||
|
HRESULT RenderScan([in] const DXRASTERSCANINFO *pScanInfo);
|
||
|
HRESULT SetPixel([in] DXRASTERPOINTINFO *pPointInfo);
|
||
|
HRESULT FillRect([in] const DXRASTERRECTINFO *pRectInfo);
|
||
|
HRESULT GetBounds([out] DXBNDS *pBounds);
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
//
|
||
|
//--- XFORM structure redefined because it is not in the window .idl
|
||
|
typedef enum DX2DXFORMOPS
|
||
|
{
|
||
|
DX2DXO_IDENTITY,
|
||
|
DX2DXO_TRANSLATE,
|
||
|
DX2DXO_SCALE,
|
||
|
DX2DXO_SCALE_AND_TRANS,
|
||
|
DX2DXO_GENERAL,
|
||
|
DX2DXO_GENERAL_AND_TRANS,
|
||
|
} DX2DXFORMOPS;
|
||
|
|
||
|
typedef struct DX2DXFORM
|
||
|
{
|
||
|
FLOAT eM11;
|
||
|
FLOAT eM12;
|
||
|
FLOAT eM21;
|
||
|
FLOAT eM22;
|
||
|
FLOAT eDx;
|
||
|
FLOAT eDy;
|
||
|
DX2DXFORMOPS eOp;
|
||
|
} DX2DXFORM, * PDX2DXFORM;
|
||
|
|
||
|
typedef enum DX2DPOLYDRAW
|
||
|
{
|
||
|
DX2D_WINDING_FILL = ( 1L << 0 ), // alternate if not set
|
||
|
DX2D_NO_FLATTEN = ( 1L << 1 ), // does flatten if not set
|
||
|
DX2D_DO_GRID_FIT = ( 1L << 2 ), // no grid fitting performed if not set
|
||
|
DX2D_IS_RECT = ( 1L << 3 ), // treated as generalized shape if not set
|
||
|
DX2D_STROKE = ( 1L << 4 ), // The shape will be stroked
|
||
|
DX2D_FILL = ( 1L << 5 ), // The shape will be filled
|
||
|
DX2D_UNUSED = 0xFFFFFFC0
|
||
|
} DX2DPOLYDRAW;
|
||
|
|
||
|
typedef struct DXFPOINT
|
||
|
{
|
||
|
FLOAT x;
|
||
|
FLOAT y;
|
||
|
} DXFPOINT;
|
||
|
|
||
|
typedef enum DX2DPEN
|
||
|
{
|
||
|
DX2D_PEN_DEFAULT = ( 0 ),
|
||
|
DX2D_PEN_WIDTH_IN_DISPLAY_COORDS = ( 1L << 0 ), // by default; the world-transform
|
||
|
// applies to the pen-width for
|
||
|
// geometric lines
|
||
|
DX2D_PEN_UNUSED = 0xFFFFFFFE
|
||
|
} DX2DPEN;
|
||
|
|
||
|
typedef struct DXPEN
|
||
|
{
|
||
|
DXSAMPLE Color;
|
||
|
float Width; // 0 = cosmetic
|
||
|
DWORD Style; // PS_XXX
|
||
|
IDXSurface* pTexture;
|
||
|
DXFPOINT TexturePos;
|
||
|
DWORD dwFlags; // See DX2D_PEN_xxx
|
||
|
} DXPEN;
|
||
|
|
||
|
typedef struct DXBRUSH
|
||
|
{
|
||
|
DXSAMPLE Color;
|
||
|
IDXSurface* pTexture;
|
||
|
DXFPOINT TexturePos;
|
||
|
} DXBRUSH;
|
||
|
|
||
|
typedef enum DX2DGRADIENT
|
||
|
{
|
||
|
DX2DGRAD_DEFAULT = 0,
|
||
|
DX2DGRAD_CLIPGRADIENT = 1, // Don't render outside offsets for gradient
|
||
|
DX2DGRAD_UNUSED = 0xFFFFFFFE
|
||
|
} DX2DGRADIENT;
|
||
|
|
||
|
//--- LOGFONT identifiers
|
||
|
typedef enum DXLOGFONTENUM
|
||
|
{
|
||
|
DXLF_HEIGHT = 1,
|
||
|
DXLF_WIDTH = 2,
|
||
|
DXLF_ESC = 4,
|
||
|
DXLF_ORIENTATION = 8,
|
||
|
DXLF_WEIGHT = 16,
|
||
|
DXLF_ITALIC = 32,
|
||
|
DXLF_UNDERLINE = 64,
|
||
|
DXLF_STRIKEOUT = 128,
|
||
|
DXLF_CHARSET = 256,
|
||
|
DXLF_OUTPREC = 512,
|
||
|
DXLF_CLIPPREC = 1024,
|
||
|
DXLF_QUALITY = 2048,
|
||
|
DXLF_PITCHANDFAM = 4096,
|
||
|
DXLF_FACENAME = 8192,
|
||
|
DXLF_ALL = 0x00003fff
|
||
|
} DXLOGFONTENUM;
|
||
|
|
||
|
/* Logical Font */
|
||
|
#define LF_FACESIZE 32
|
||
|
|
||
|
cpp_quote( "#ifndef _WINGDI_")
|
||
|
typedef struct tagLOGFONTA
|
||
|
{
|
||
|
LONG lfHeight;
|
||
|
LONG lfWidth;
|
||
|
LONG lfEscapement;
|
||
|
LONG lfOrientation;
|
||
|
LONG lfWeight;
|
||
|
BYTE lfItalic;
|
||
|
BYTE lfUnderline;
|
||
|
BYTE lfStrikeOut;
|
||
|
BYTE lfCharSet;
|
||
|
BYTE lfOutPrecision;
|
||
|
BYTE lfClipPrecision;
|
||
|
BYTE lfQuality;
|
||
|
BYTE lfPitchAndFamily;
|
||
|
CHAR lfFaceName[LF_FACESIZE];
|
||
|
} LOGFONTA;
|
||
|
typedef struct tagLOGFONTW
|
||
|
{
|
||
|
LONG lfHeight;
|
||
|
LONG lfWidth;
|
||
|
LONG lfEscapement;
|
||
|
LONG lfOrientation;
|
||
|
LONG lfWeight;
|
||
|
BYTE lfItalic;
|
||
|
BYTE lfUnderline;
|
||
|
BYTE lfStrikeOut;
|
||
|
BYTE lfCharSet;
|
||
|
BYTE lfOutPrecision;
|
||
|
BYTE lfClipPrecision;
|
||
|
BYTE lfQuality;
|
||
|
BYTE lfPitchAndFamily;
|
||
|
WCHAR lfFaceName[LF_FACESIZE];
|
||
|
} LOGFONTW;
|
||
|
#ifdef UNICODE
|
||
|
typedef LOGFONTW LOGFONT;
|
||
|
#else
|
||
|
typedef LOGFONTA LOGFONT;
|
||
|
#endif // UNICODE
|
||
|
cpp_quote( "#endif")
|
||
|
|
||
|
//--- IDXTLabel -------------------------------------------------
|
||
|
//
|
||
|
// This is the v-table only label transform interface
|
||
|
[
|
||
|
uuid(C0C17F0E-AE41-11d1-9A3B-0000F8756A10),
|
||
|
pointer_default(unique),
|
||
|
hidden
|
||
|
]
|
||
|
interface IDXTLabel : IUnknown
|
||
|
{
|
||
|
HRESULT SetFontHandle([in] HFONT hFont);
|
||
|
HRESULT GetFontHandle([out] HFONT *phFont);
|
||
|
HRESULT SetTextString([in] LPCWSTR pString);
|
||
|
HRESULT GetTextString([out] LPWSTR *ppString);
|
||
|
HRESULT GetFillColor([out] DXSAMPLE *pVal);
|
||
|
HRESULT SetFillColor([in] DXSAMPLE newVal);
|
||
|
HRESULT GetBackgroundColor([out] DXSAMPLE *pVal);
|
||
|
HRESULT SetBackgroundColor([in] DXSAMPLE newVal);
|
||
|
HRESULT GetTexturePosition( [out]long *px, [out]long *py);
|
||
|
HRESULT SetTexturePosition( [in]long x, [in]long y);
|
||
|
HRESULT GetMatrix([out] PDX2DXFORM pXform);
|
||
|
HRESULT SetMatrix([in] const PDX2DXFORM pXform);
|
||
|
HRESULT SetLogfont([in] const LOGFONT *plf, [in]DWORD dwFlags);
|
||
|
HRESULT GetLogfont([out] LOGFONT *plf, [in]DWORD dwFlags);
|
||
|
HRESULT ExecuteWithRasterizer([in] IDXRasterizer *pRasterizer, [in]const DXBNDS *pClipBnds,
|
||
|
[in] const DXVEC *pPlacement);
|
||
|
HRESULT GetBaselineOffset([out] long *px, [out] long *py, [out] long *pdx, [out] long *pdy);
|
||
|
};
|
||
|
|
||
|
//--- IDX2D -----------------------------------
|
||
|
|
||
|
[
|
||
|
local,
|
||
|
uuid(03BB2457-A279-11d1-81C6-0000F87557DB),
|
||
|
pointer_default(unique),
|
||
|
hidden
|
||
|
]
|
||
|
interface IDX2DDebug : IUnknown
|
||
|
{
|
||
|
HRESULT SetDC( HDC hDC );
|
||
|
HRESULT GetDC( HDC* phDC );
|
||
|
};
|
||
|
|
||
|
[
|
||
|
local,
|
||
|
uuid(9EFD02A9-A996-11d1-81C9-0000F87557DB),
|
||
|
pointer_default(unique),
|
||
|
hidden
|
||
|
]
|
||
|
interface IDX2D : IUnknown
|
||
|
{
|
||
|
//--- Setup
|
||
|
HRESULT SetTransformFactory( IDXTransformFactory * pTransFact );
|
||
|
HRESULT GetTransformFactory( IDXTransformFactory** ppTransFact );
|
||
|
HRESULT SetSurface( IUnknown* pSurface );
|
||
|
HRESULT GetSurface( REFIID riid, void** ppSurface );
|
||
|
|
||
|
//--- Attributes
|
||
|
HRESULT SetClipRect( RECT* pClipRect );
|
||
|
HRESULT GetClipRect( RECT* pClipRect );
|
||
|
HRESULT SetWorldTransform( const DX2DXFORM* pXform );
|
||
|
HRESULT GetWorldTransform( DX2DXFORM* pXform );
|
||
|
HRESULT SetPen( const DXPEN* pPen );
|
||
|
HRESULT GetPen( DXPEN* pPen );
|
||
|
HRESULT SetBrush( const DXBRUSH* pBrush );
|
||
|
HRESULT GetBrush( DXBRUSH* pBrush );
|
||
|
HRESULT SetBackgroundBrush( const DXBRUSH* pBrush );
|
||
|
HRESULT GetBackgroundBrush( DXBRUSH* pBrush );
|
||
|
HRESULT SetFont( HFONT hFont );
|
||
|
HRESULT GetFont( HFONT* phFont );
|
||
|
|
||
|
//--- Blitting
|
||
|
HRESULT Blt( IUnknown* punkSrc, const RECT* pSrcRect, const POINT* pDest );
|
||
|
|
||
|
//--- Drawing functions
|
||
|
HRESULT AAPolyDraw( const DXFPOINT* pPos, const BYTE* pTypes, ULONG ulCount,
|
||
|
ULONG SubSampRes, DWORD dwFlags );
|
||
|
HRESULT AAText( DXFPOINT Pos, LPWSTR pString, ULONG ulCount, DWORD dwFlags );
|
||
|
|
||
|
//--- Gradient functions
|
||
|
HRESULT SetRadialGradientBrush(
|
||
|
[in, size_is(ulCount)] double* rgdblOffsets,
|
||
|
[in, size_is(ulCount*3)] double* rgdblColors,
|
||
|
[in] ULONG ulCount,
|
||
|
[in] double dblOpacity,
|
||
|
[in] DX2DXFORM *pXform,
|
||
|
[in] DWORD dwFlags );
|
||
|
|
||
|
HRESULT SetLinearGradientBrush(
|
||
|
[in, size_is(ulCount)] double* rgdblOffsets,
|
||
|
[in, size_is(ulCount*3)] double* rgdblColors,
|
||
|
[in] ULONG ulCount,
|
||
|
[in] double dblOpacity,
|
||
|
[in] DX2DXFORM *pXform,
|
||
|
[in] DWORD dwFlags );
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilterCollection Interface
|
||
|
//
|
||
|
// Overview:
|
||
|
// Extended gradient.
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
uuid(d0ef2a80-61dc-11d2-b2eb-00a0c936b212),
|
||
|
helpstring("IDXGradient2 Interface"),
|
||
|
pointer_default(unique)
|
||
|
]
|
||
|
interface IDXGradient2 : IDXGradient
|
||
|
{
|
||
|
HRESULT SetRadialGradient(
|
||
|
[in, size_is(ulCount)] double* rgdblOffsets,
|
||
|
[in, size_is(ulCount*3)] double* rgdblColors,
|
||
|
[in] ULONG ulCount,
|
||
|
[in] double dblOpacity,
|
||
|
[in] DX2DXFORM *pXform,
|
||
|
[in] DWORD dwFlags );
|
||
|
|
||
|
HRESULT SetLinearGradient(
|
||
|
[in, size_is(ulCount)] double* rgdblOffsets,
|
||
|
[in, size_is(ulCount*3)] double* rgdblColors,
|
||
|
[in] ULONG ulCount,
|
||
|
[in] double dblOpacity,
|
||
|
[in] DX2DXFORM *pXform,
|
||
|
[in] DWORD dwFlags );
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// DXTFILTERCAPS enum
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
typedef enum DXTFILTERCAPS
|
||
|
{
|
||
|
DXTFILTERCAPS_IDXSURFACE = (1L << 0),
|
||
|
DXTFILTERCAPS_IDXEFFECT = (1L << 1),
|
||
|
DXTFILTERCAPS_INPUT1REQ = (1L << 2),
|
||
|
DXTFILTERCAPS_INPUT2REQ = (1L << 3),
|
||
|
DXTFILTERCAPS_INPUT1OPT = (1L << 4),
|
||
|
DXTFILTERCAPS_INPUT2OPT = (1L << 5),
|
||
|
DXTFILTERCAPS_PRIV_MATRIX = (1L << 6),
|
||
|
DXTFILTERCAPS_MAX = (1L << 7)
|
||
|
} DXTFILTERCAPS;
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilterBehavior Interface
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
typedef void * HFILTER;
|
||
|
|
||
|
typedef enum DXT_FILTER_TYPE_FLAGS {
|
||
|
|
||
|
DXTFTF_INVALID = 0,
|
||
|
|
||
|
// Modifier Flags (bits 0..15 available)
|
||
|
|
||
|
DXTFTF_CSS = (1L << 0),
|
||
|
DXTFTF_PRIVATE = (1L << 1),
|
||
|
DXTFTF_ALLMODIFIERS = (DXTFTF_CSS | DXTFTF_PRIVATE),
|
||
|
|
||
|
// Type Flags (bits 16..31 available)
|
||
|
// One and only one required.
|
||
|
|
||
|
DXTFTF_SURFACE = (1L << 16),
|
||
|
DXTFTF_ZEROINPUT = (1L << 17),
|
||
|
DXTFTF_FILTER = (1L << 18),
|
||
|
DXTFTF_ALLTYPES = ( DXTFTF_SURFACE | DXTFTF_ZEROINPUT
|
||
|
| DXTFTF_FILTER)
|
||
|
|
||
|
} DXT_FILTER_TYPE_FLAGS;
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(14D7DDDD-ACA2-4E45-9504-3808ABEB4F92),
|
||
|
helpstring("IDXTFilterBehavior Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTFilterBehavior : IUnknown
|
||
|
{
|
||
|
HRESULT Initialize(IDXTransformFactory * pDXTransformFactory);
|
||
|
HRESULT GetFilterCollection(IDXTFilterCollection ** ppDXTFilterCollection);
|
||
|
HRESULT LockFilterChainForEdit(DWORD * pdwKey);
|
||
|
HRESULT AddFilterFromBSTR(const BSTR bstrFilterString,
|
||
|
const DWORD dwFlags,
|
||
|
DWORD * const pdwFilterType,
|
||
|
HFILTER * const phFilter);
|
||
|
HRESULT DestroyFilter(HFILTER hFilter);
|
||
|
HRESULT UnlockFilterChain(DWORD dwKey);
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilterBehaviorSite Interface
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(909B23C2-9018-499f-A86D-4E7DA937E931),
|
||
|
helpstring("IDXTFilterBehaviorSite Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTFilterBehaviorSite : IUnknown
|
||
|
{
|
||
|
HRESULT InvalidateElement(BOOL fInvalidateSize);
|
||
|
HRESULT InvalidateFilterChain();
|
||
|
HRESULT ExecuteFilterChain();
|
||
|
HRESULT FireOnFilterChangeEvent();
|
||
|
HRESULT OnFilterChangeStatus(DXTFILTER_STATUS eStatusOld, DXTFILTER_STATUS eStatusNew);
|
||
|
void OnFatalError(HRESULT hrFatalError);
|
||
|
HRESULT GetTimer(void **ppvTimer);
|
||
|
HRESULT EnsureView();
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilterCollection Interface
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(22B07B33-8BFB-49d4-9B90-0938370C9019),
|
||
|
helpstring("IDXTFilterCollection Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTFilterCollection : IUnknown
|
||
|
{
|
||
|
HRESULT Init(const IDXTFilterBehavior * pDXTFilterBehavior);
|
||
|
HRESULT AddFilter(const BSTR bstrFilterString,
|
||
|
const DWORD dwFlags,
|
||
|
DWORD * const pdwFilterType,
|
||
|
HFILTER * const phFilter);
|
||
|
HRESULT RemoveFilter(const HFILTER hFilter);
|
||
|
HRESULT RemoveFilters(const DWORD dwFlags);
|
||
|
HRESULT GetFilterController(const HFILTER hFilter,
|
||
|
IDXTFilterController ** const ppDXTFilterController);
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilter Interface
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(6187E5A2-A445-4608-8FC0-BE7A6C8DB386),
|
||
|
helpstring("IDXTFilter Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTFilter : IUnknown
|
||
|
{
|
||
|
HRESULT Initialize([in] IDXTransform * pDXTransform,
|
||
|
[in] IDXSurfaceFactory * pDXSurfaceFactory,
|
||
|
[in] IDXTFilterBehaviorSite * pDXTFilterBehaviorSite,
|
||
|
[in] DWORD dwFilterCaps,
|
||
|
[in] BOOL fUsesOldStyleFilterName);
|
||
|
HRESULT SetInputSurface([in] IDXSurface * pDXSurface);
|
||
|
HRESULT SetOutputSurface([in] IDXSurface * pDXSurface);
|
||
|
HRESULT GetOutputSurface([out] IDXSurface ** ppDXSurface);
|
||
|
HRESULT MapBoundsIn2Out([in] DXBNDS * pbndsIn,
|
||
|
[in, out] DXBNDS * pbndsOut,
|
||
|
[in] BOOL fResetOutputSize);
|
||
|
HRESULT MapBoundsOut2In([in] DXBNDS * pbndsOut,
|
||
|
[in, out] DXBNDS * pbndsIn);
|
||
|
HRESULT Execute([in] DXBNDS * pbndsPortion,
|
||
|
[in] DXVEC * pvecPlacement,
|
||
|
[in] BOOL fFireFilterChange);
|
||
|
HRESULT SetMiscFlags([in] DWORD dwMiscFlags);
|
||
|
HRESULT HitTest([in] const DXVEC * pvecOut,
|
||
|
[in, out] BOOL * pfInactiveInputHit,
|
||
|
[in, out] DXVEC * pvecIn);
|
||
|
HRESULT Detach();
|
||
|
BOOL IsEnabled();
|
||
|
void HardDisable(HRESULT hrHardDisable);
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTFilterController Interface
|
||
|
//
|
||
|
// This interface was created so that external objects could controll the
|
||
|
// filter object without using the dispatch interface. It provides enhanced
|
||
|
// functionality, especially for our implementation of the SMIL Transitions
|
||
|
// specification.
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
typedef enum DXT_QUICK_APPLY_TYPE
|
||
|
{
|
||
|
DXTQAT_TransitionIn = 0,
|
||
|
DXTQAT_TransitionOut,
|
||
|
DXTQAT_TransitionFromElement,
|
||
|
DXTQAT_TransitionToElement
|
||
|
} DXT_QUICK_APPLY_TYPE;
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(5CF315F2-273D-47B6-B9ED-F75DC3B0150B),
|
||
|
helpstring("IDXTFilterController Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTFilterController : IUnknown
|
||
|
{
|
||
|
HRESULT SetProgress(float flProgress);
|
||
|
HRESULT SetEnabled(BOOL fEnabled);
|
||
|
HRESULT SetFilterControlsVisibility(BOOL fFilterControlsVisibility);
|
||
|
HRESULT QuickApply(DXT_QUICK_APPLY_TYPE dxtqat, IUnknown * punkInput);
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTRedirectFilterInit Interface
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(D1A57094-21F7-4e6c-93E5-F5F77F748293),
|
||
|
helpstring("IDXTRedirectFilterInit Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTRedirectFilterInit : IUnknown
|
||
|
{
|
||
|
HRESULT SetHTMLPaintSite(void * pvHTMLPaintSite);
|
||
|
};
|
||
|
|
||
|
|
||
|
//+-----------------------------------------------------------------------------
|
||
|
//
|
||
|
// IDXTClipOrigin Interface
|
||
|
//
|
||
|
// This interface is implemented by DXTransforms that provide the functionality
|
||
|
// of IE5.0 filters and transitions. If an "old name" is used and this
|
||
|
// interface is supported, the filter behavior will call GetClipOrigin to find
|
||
|
// the point on the output of the transform best correlates to the origin of
|
||
|
// the clipped output of the filter.
|
||
|
//
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
[
|
||
|
object,
|
||
|
uuid(EE1663D8-0988-4C48-9FD6-DB4450885668),
|
||
|
helpstring("IDXTClipOrigin Interface"),
|
||
|
pointer_default(unique),
|
||
|
local
|
||
|
]
|
||
|
interface IDXTClipOrigin : IUnknown
|
||
|
{
|
||
|
HRESULT GetClipOrigin(DXVEC * pvecClipOrigin);
|
||
|
};
|
||
|
|
||
|
|
||
|
//=== CoClass definitions =================================================
|
||
|
|
||
|
// NOTE: helpstring below is exactly the same as the name given in
|
||
|
// DXTRANS.IDL. This is because DXTRANS.DLL actually links to
|
||
|
// DXTRANSP -- the private version. However, we don't want the
|
||
|
// helpstring to *tell* people that there's a private version, so
|
||
|
// we make it look like the other one. Nevermind that there are
|
||
|
// actually extra things in the private typelib.
|
||
|
[
|
||
|
uuid(527A4DA4-7F2C-11d2-B12D-0000F81F5995),
|
||
|
version(1.0),
|
||
|
helpstring("Microsoft DirectX Transform 1.0 Type Library")
|
||
|
]
|
||
|
library DXTRANSPLib
|
||
|
{
|
||
|
importlib("stdole2.tlb");
|
||
|
importlib("dxtrans.tlb");
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// Label CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(54702535-2606-11D1-999C-0000F8756A10),
|
||
|
hidden
|
||
|
]
|
||
|
coclass DXTLabel
|
||
|
{
|
||
|
[default] interface IDXTLabel;
|
||
|
};
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// DXRasterizer CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(8652CE55-9E80-11D1-9053-00C04FD9189D),
|
||
|
helpstring("DXRasterizer Class")
|
||
|
]
|
||
|
coclass DXRasterizer
|
||
|
{
|
||
|
[default] interface IDXRasterizer;
|
||
|
};
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// DX2D CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(473AA80B-4577-11D1-81A8-0000F87557DB),
|
||
|
hidden
|
||
|
]
|
||
|
coclass DX2D
|
||
|
{
|
||
|
[default] interface IDX2D;
|
||
|
};
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// DXTFilterBehavior CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(649EEC1E-B579-4E8C-BB3B-4997F8426536),
|
||
|
helpstring("DXTFilterBehavior Class")
|
||
|
]
|
||
|
coclass DXTFilterBehavior
|
||
|
{
|
||
|
[default] interface IDXTFilterBehavior;
|
||
|
};
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// DXTFilterFactory CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(81397204-F51A-4571-8D7B-DC030521AABD),
|
||
|
helpstring("DXTFilterFactory Class")
|
||
|
]
|
||
|
coclass DXTFilterFactory
|
||
|
{
|
||
|
[default] interface IUnknown;
|
||
|
};
|
||
|
|
||
|
|
||
|
///////////////////////////////
|
||
|
// DXTFilterCollection CoClass
|
||
|
///////////////////////////////
|
||
|
[
|
||
|
uuid(A7EE7F34-3BD1-427f-9231-F941E9B7E1FE),
|
||
|
helpstring("DXTFilterCollection Class")
|
||
|
]
|
||
|
coclass DXTFilterCollection
|
||
|
{
|
||
|
[default] interface IDispatch;
|
||
|
};
|
||
|
};
|
||
|
|