' ########################################################################################
' Microsoft Windows
' File: dxtrans.inc
' Library name: DXTRANSLib
' Version: 1.1, Locale ID = 0
' Library GUID: {54314D1D-35FE-11D1-81A1-0000F87557DB}
' Path: C:\WINDOWS\system32\Dxtrans.dll
' Contents: Microsoft DirectX Transforms Core Type Library
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_dxtrans_PBI)
#DEFINE PBX_dxtrans_PBI
%EQUATE `DXTRANS_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/OAIdl.inc"
#INCLUDE ONCE "Legacy/COM/OCIdl.inc"
#INCLUDE ONCE "Legacy/COM/ComCat.inc"
#INCLUDE ONCE "Legacy/System/ServProv.inc"
#INCLUDE ONCE "Legacy/System/ddraw.inc"
'#include <d3d.h>
'#include <d3drm.h>
#INCLUDE ONCE "Legacy/Network/UrlMon.inc"
$LIBID_DXTRANSLib = GUID$("{54314D1D-35FE-11D1-81A1-0000F87557DB}")
' ========================================================================================
' ProgIDs (Program identifiers)
' ========================================================================================
' CLSID = {385A91BC-1E8A-4E4A-A7A6-F4FC1E6CA1BD}
$PROGID_ObjectMicrosoftDXTFilter1 = "Object.Microsoft.DXTFilter.1"
' ========================================================================================
' Version independent ProgIDs
' ========================================================================================
' CLSID = {385A91BC-1E8A-4E4A-A7A6-F4FC1E6CA1BD}
$PROGID_ObjectMicrosoftDXTFilter = "Object.Microsoft.DXTFilter"
' ========================================================================================
' ClsIDs (Class identifiers)
' ========================================================================================
$CLSID_DXGradient = GUID$("{C6365470-F667-11D1-9067-00C04FD9189D}")
$CLSID_DXSurface = GUID$("{0E890F83-5F79-11D1-9043-00C04FD9189D}")
$CLSID_DXSurfaceModifier = GUID$("{3E669F1D-9C23-11D1-9053-00C04FD9189D}")
$CLSID_DXTaskManager = GUID$("{4CB26C03-FF93-11D0-817E-0000F87557DB}")
$CLSID_DXTransformFactory = GUID$("{D1FE6762-FC48-11D0-883A-3C8B00C10000}")
$CLSID_DXTScale = GUID$("{555278E2-05DB-11D1-883A-3C8B00C10000}")
$CLSID_DXTFilter = GUID$("{385A91BC-1E8A-4E4A-A7A6-F4FC1E6CA1BD}")
' ========================================================================================
' IIDs (Interface identifiers)
' ========================================================================================
$IID_ICSSFilterDispatch = GUID$("{9519152B-9484-4A6C-B6A7-4F25E92D6C6B}")
$IID_IDXBaseObject = GUID$("{17B59B2B-9CC8-11D1-9053-00C04FD9189D}")
$IID_IDXDCLock = GUID$("{0F619456-CF39-11D1-905E-00C04FD9189D}")
$IID_IDXGradient = GUID$("{B2024B51-EE77-11D1-9066-00C04FD9189D}")
$IID_IDXLookupTable = GUID$("{01BAFC7F-9E63-11D1-9053-00C04FD9189D}")
$IID_IDXSurface = GUID$("{B39FD73F-E139-11D1-9065-00C04FD9189D}")
$IID_IDXSurfaceFactory = GUID$("{144946F5-C4D4-11D1-81D1-0000F87557DB}")
$IID_IDXSurfaceModifier = GUID$("{9EA3B637-C37D-11D1-905E-00C04FD9189D}")
$IID_IDXTaskManager = GUID$("{254DBBC1-F922-11D0-883A-3C8B00C10000}")
$IID_IDXTransform = GUID$("{30A5FB78-E11F-11D1-9064-00C04FD9189D}")
$IID_IDXTransformFactory = GUID$("{6A950B2B-A971-11D1-81C8-0000F87557DB}")
$IID_IDXTScale = GUID$("{B39FD742-E139-11D1-9065-00C04FD9189D}")
$IID_IDXTScaleOutput = GUID$("{B2024B50-EE77-11D1-9066-00C04FD9189D}")
$IID_IDXSurfacePick = GUID$("{30A5FB79-E11F-11d1-9064-00C04FD9189D}")
$IID_IDXTBindHost = GUID$("{D26BCE55-E9DC-11d1-9066-00C04FD9189D}")
$IID_IDXSurfaceInit = GUID$("{9EA3B639-C37D-11d1-905E-00C04FD9189D}")
$IID_IDXARGBSurfaceInit = GUID$("{9EA3B63A-C37D-11d1-905E-00C04FD9189D}")
$IID_IDXARGBReadPtr = GUID$("{EAAAC2D6-C290-11d1-905D-00C04FD9189D}")
$IID_IDXARGBReadWritePtr = GUID$("{EAAAC2D7-C290-11d1-905D-00C04FD9189D}")
$IID_IDXEffect = GUID$("{E31FB81B-1335-11D1-8189-0000F87557DB}")
$IID_IDXRawSurface = GUID$("{09756C8A-D96A-11d1-9062-00C04FD9189D}")
$IID_IHTMLDXTransform = GUID$("{30E2AB7D-4FDD-4159-B7EA-DC722BF4ADE5}")
'//
'// All GUIDs for DXTransform are declared in DXTGUID.C in the SDK include directory
'//
$DDPF_RGB1 = GUID$("{e436eb78-524f-11ce-9f53-0020af0ba770}")
$DDPF_RGB2 = GUID$("{BBF7D3F3-143F-11d1-B50A-0000F8756A10}")
$DDPF_RGB4 = GUID$("{e436eb79-524f-11ce-9f53-0020af0ba770}")
$DDPF_RGB8 = GUID$("{e436eb7a-524f-11ce-9f53-0020af0ba770}")
$DDPF_RGB332 = GUID$("{BBF7D3F6-143F-11d1-B50A-0000F8756A10}")
$DDPF_ARGB4444 = GUID$("{BBF7D3F7-143F-11d1-B50A-0000F8756A10}")
$DDPF_RGB565 = GUID$("{e436eb7b-524f-11ce-9f53-0020af0ba770}")
$DDPF_BGR565 = GUID$("{BBF7D3F9-143F-11d1-B50A-0000F8756A10}")
$DDPF_RGB555 = GUID$("{e436eb7c-524f-11ce-9f53-0020af0ba770}")
$DDPF_ARGB1555 = GUID$("{BBF7D3FB-143F-11d1-B50A-0000F8756A10}")
$DDPF_RGB24 = GUID$("{e436eb7d-524f-11ce-9f53-0020af0ba770}")
$DDPF_BGR24 = GUID$("{BBF7D3FD-143F-11d1-B50A-0000F8756A10}")
$DDPF_RGB32 = GUID$("{e436eb7e-524f-11ce-9f53-0020af0ba770}")
$DDPF_BGR32 = GUID$("{BBF7D3FF-143F-11d1-B50A-0000F8756A10}")
$DDPF_ABGR32 = GUID$("{BBF7D401-143F-11d1-B50A-0000F8756A10}")
$DDPF_ARGB32 = GUID$("{773c9ac0-3274-11d0-B724-00aa006c1A01}")
$DDPF_PMARGB32 = GUID$("{BBF7D403-143F-11d1-B50A-0000F8756A10}")
$DDPF_A1 = GUID$("{7846F94E-3915-11d1-99AA-0000F8756A10}")
$DDPF_A2 = GUID$("{7846F94F-3915-11d1-99AA-0000F8756A10}")
$DDPF_A4 = GUID$("{7846F950-3915-11d1-99AA-0000F8756A10}")
$DDPF_A8 = GUID$("{7846F951-3915-11d1-99AA-0000F8756A10}")
$DDPF_Z8 = GUID$("{7846F952-3915-11d1-99AA-0000F8756A10}")
$DDPF_Z16 = GUID$("{7846F953-3915-11d1-99AA-0000F8756A10}")
$DDPF_Z24 = GUID$("{7846F954-3915-11d1-99AA-0000F8756A10}")
$DDPF_Z32 = GUID$("{7846F955-3915-11d1-99AA-0000F8756A10}")
'//
'// Component categories
'//
$CATID_DXImageTransform = GUID$("{C501EDBE-9E70-11d1-9053-00C04FD9189D}")
$CATID_DX3DTransform = GUID$("{C501EDBF-9E70-11d1-9053-00C04FD9189D}")
$CATID_DXAuthoringTransform = GUID$("{ACAC94FC-E5CF-11d1-9066-00C04FD9189D}")
$CATID_DXSurface = GUID$("{52BA7097-B52C-11d1-81CB-0000F87557DB}")
'//
'// Service IDs
'//
$SID_SDirectDraw = GUID$("{618f8ad4-8b7a-11d0-8fcc-00004fd9189d}")
$SID_SDirect3DRM = GUID$("{2bc49361-8327-11cf-ac4a-0000c03825a1}")
'#define SID_SDXTaskManager CLSID_DXTaskManager
$SID_SDXTaskManager = $CLSID_DXTaskManager
'#define SID_SDXSurfaceFactory IID_IDXSurfaceFactory
$SID_SDXSurfaceFactory = $IID_IDXSurfaceFactory
'#define SID_SDXTransformFactory IID_IDXTransformFactory
$SID_SDXTransformFactory = $IID_IDXTransformFactory
'//
'// DXTransforms Core Type Library Version Info
'//
%EQUATE `DXTRANS_TLB_MAJOR_VER = 1
%EQUATE `DXTRANS_TLB_MINOR_VER = 1
' ########################################################################################
' Interface name = IDXBaseObject
' IID = {17B59B2B-9CC8-11D1-9053-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXBaseObject_INTERFACE_DEFINED)
 %IDXBaseObject_INTERFACE_DEFINED = 1
INTERFACE IDXBaseObject $IID_IDXBaseObject
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetGenerationId ( ' VTable offset = 12
 BYREF pID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IncrementGenerationId ( ' VTable offset = 16
 BYVAL bRefresh AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectSize ( ' VTable offset = 20
 BYREF pcbSize AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXBaseObject_INTERFACE_DEFINED__ */
' enum DXBNDID
%EQUATE `DXB_X = 0
%EQUATE `DXB_Y = 1
%EQUATE `DXB_Z = 2
%EQUATE `DXB_T = 3
' enum DXBNDTYPE
%EQUATE `DXBT_DISCRETE = 0
%EQUATE `DXBT_DISCRETE64 = %DXBT_DISCRETE + 1
%EQUATE `DXBT_CONTINUOUS = %DXBT_DISCRETE64 + 1
%EQUATE `DXBT_CONTINUOUS64 = %DXBT_CONTINUOUS + 1
' // Size = 8 bytes
TYPE DXDBND DWORD
 Min AS LONG ' long
 Max AS LONG ' long
END TYPE
'typedef DXDBND DXDBNDS[ 4 ];
' // Size = 16 bytes
TYPE DXDBND64 QWORD
 Min AS QUAD ' LONGLONG
 Max AS QUAD ' LONGLONG
END TYPE
'typedef DXDBND64 DXDBNDS64[ 4 ];
' // Size = 8 bytes
TYPE DXCBND DWORD
 Min AS SINGLE ' float
 Max AS SINGLE ' float
END TYPE
'typedef DXCBND DXCBNDS[ 4 ];
' // Size = 16 bytes
TYPE DXCBND64 QWORD
 Min AS DOUBLE ' double
 Max AS DOUBLE ' double
END TYPE
'typedef DXCBND64 DXCBNDS64[ 4 ];
' // Size = 64 bytes
UNION DXBNDS_UNION
 D (3) AS DXDBND ' DXDBND D[ 4 ]
 LD (3) AS DXDBND64 ' DXDBND64 LD[ 4 ]
 C (3) AS DXCBND ' DXCBND C[ 4 ]
 LC (3) AS DXCBND64 ' DXCBND64 LC[ 4 ]
END UNION
' // Size = 72 bytes
TYPE DXBNDS QWORD FILL
 eType AS LONG ' DXBNDTYPE <enum>
 DXBNDS_UNION
END TYPE
'typedef long DXDVEC[ 4 ];
'typedef LONGLONG DXDVEC64[ 4 ];
'typedef float DXCVEC[ 4 ];
'typedef double DXCVEC64[ 4 ];
' // Size = 32 bytes
UNION DXVEC_UNION
 D (3) AS LONG ' long D[ 4 ]
 LD (3) AS QUAD ' LONGLONG LD[ 4 ]
 C (3) AS SINGLE ' float C[ 4 ]
 LC (3) AS DOUBLE ' double LC[ 4 ]
END UNION
' // Size = 40 bytes
TYPE DXVEC QWORD FILL
 eType AS LONG ' DXBNDTYPE <enum>
 DXVEC_UNION
END TYPE
' ########################################################################################
' Interface name = IDXTransformFactory
' IID = {6A950B2B-A971-11D1-81C8-0000F87557DB}
' Inherited interface = IServiceProvider
' ########################################################################################
#IF NOT %DEF(%IDXTransformFactory_INTERFACE_DEFINED)
 %IDXTransformFactory_INTERFACE_DEFINED = 1
INTERFACE IDXTransformFactory $IID_IDXTransformFactory
 INHERIT IUnknown
 ' =====================================================================================
 METHOD QueryService ( ' VTable offset = 12
 BYREF guidService AS GUID
 , BYREF riid AS GUID
 , BYREF ppv AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetService ( ' VTable offset = 16
 BYREF guidService AS GUID
 , BYVAL pUnkService AS IUnknown
 , BYVAL bWeakReference AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTransform ( ' VTable offset = 20
 BYREF punkInputs AS IUnknown
 , BYVAL ulNumInputs AS DWORD
 , BYREF punkOutputs AS IUnknown
 , BYVAL ulNumOutputs AS DWORD
 , BYVAL pInitProps AS IPropertyBag
 , BYVAL pErrLog AS IErrorLog
 , BYREF TransCLSID AS GUID
 , BYREF TransIID AS GUID
 , BYREF ppTransform AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD InitializeTransform ( ' VTable offset = 24
 BYVAL pTransform AS IDXTransform
 , BYREF punkInputs AS IUnknown
 , BYVAL ulNumInputs AS DWORD
 , BYREF punkOutputs AS IUnknown
 , BYVAL ulNumOutputs AS DWORD
 , BYVAL pInitProps AS IPropertyBag
 , BYVAL pErrLog AS IErrorLog
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTransformFactory_INTERFACE_DEFINED__ */
' enum DXTMISCFLAGS
%EQUATE `DXTMF_BLEND_WITH_OUTPUT = &H1 ' 1L << 0
%EQUATE `DXTMF_DITHER_OUTPUT = &H2 ' 1L << 1
%EQUATE `DXTMF_OPTION_MASK = &Hffff
%EQUATE `DXTMF_VALID_OPTIONS = %DXTMF_BLEND_WITH_OUTPUT OR %DXTMF_DITHER_OUTPUT
%EQUATE `DXTMF_BLEND_SUPPORTED = &H10000 ' 1L << 16
%EQUATE `DXTMF_DITHER_SUPPORTED = &H20000 ' 1L << 17
%EQUATE `DXTMF_INPLACE_OPERATION = &H1000000 ' 1L << 24
%EQUATE `DXTMF_BOUNDS_SUPPORTED = &H2000000 ' 1L << 25
%EQUATE `DXTMF_PLACEMENT_SUPPORTED = &H4000000 ' 1L << 26
%EQUATE `DXTMF_QUALITY_SUPPORTED = &H8000000 ' 1L << 27
%EQUATE `DXTMF_OPAQUE_RESULT = &H10000000 ' 1L << 28
' enum DXINOUTINFOFLAGS
%EQUATE `DXINOUTF_OPTIONAL = &H1 ' 1L << 0
' ########################################################################################
' Interface name = IDXTransform
' IID = {30A5FB78-E11F-11D1-9064-00C04FD9189D}
' Inherited interface = IDXBaseObject
' ########################################################################################
#IF NOT %DEF(%IDXTransform_INTERFACE_DEFINED)
 %IDXTransform_INTERFACE_DEFINED = 1
INTERFACE IDXTransform $IID_IDXTransform
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetGenerationId ( ' VTable offset = 12
 BYREF pID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IncrementGenerationId ( ' VTable offset = 16
 BYVAL bRefresh AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectSize ( ' VTable offset = 20
 BYREF pcbSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Setup ( ' VTable offset = 24
 BYREF punkInputs AS IUnknown
 , BYVAL ulNumInputs AS DWORD
 , BYREF punkOutputs AS IUnknown
 , BYVAL ulNumOutputs AS DWORD
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Execute ( ' VTable offset = 28
 BYREF pRequestID AS GUID
 , BYREF pClipBnds AS DXBNDS
 , BYREF pPlacement AS DXVEC
 ) AS LONG
 ' =====================================================================================
 METHOD MapBoundsIn2Out ( ' VTable offset = 32
 BYREF pInBounds AS DXBNDS
 , BYVAL ulNumInBnds AS DWORD
 , BYVAL ulOutIndex AS DWORD
 , BYREF pOutBounds AS DXBNDS
 ) AS LONG
 ' =====================================================================================
 METHOD MapBoundsOut2In ( ' VTable offset = 36
 BYVAL ulOutIndex AS DWORD
 , BYREF pOutBounds AS DXBNDS
 , BYVAL ulInIndex AS DWORD
 , BYREF pInBounds AS DXBNDS
 ) AS LONG
 ' =====================================================================================
 METHOD SetMiscFlags ( ' VTable offset = 40
 BYVAL dwMiscFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMiscFlags ( ' VTable offset = 44
 BYREF pdwMiscFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetInOutInfo ( ' VTable offset = 48
 BYVAL bIsOutput AS LONG
 , BYVAL ulIndex AS DWORD
 , BYREF pdwFlags AS DWORD
 , BYREF pIDs AS GUID
 , BYREF pcIDs AS DWORD
 , BYREF ppUnkCurrentObject AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetQuality ( ' VTable offset = 52
 BYVAL fQuality AS SINGLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetQuality ( ' VTable offset = 56
 BYREF fQuality AS SINGLE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTransform_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXSurfacePick
' IID = {30A5FB79-E11F-11d1-9064-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXSurfacePick_INTERFACE_DEFINED)
 %IDXSurfacePick_INTERFACE_DEFINED = 1
INTERFACE IDXSurfacePick $IID_IDXSurfacePick
 INHERIT IUnknown
 ' =====================================================================================
 METHOD PointPick ( ' VTable offset = 12
 BYREF pPoint AS DXVEC
 , BYREF pulInputSurfaceIndex AS DWORD
 , BYREF pInputPoint AS DXVEC
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXSurfacePick_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXTBindHost
' IID = {D26BCE55-E9DC-11d1-9066-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXTBindHost_INTERFACE_DEFINED)
 %IDXTBindHost_INTERFACE_DEFINED = 1
INTERFACE IDXTBindHost $IID_IDXTBindHost
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetBindHost ( ' VTable offset = 12
 BYVAL pBindHost AS IBindHost
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTBindHost_INTERFACE_DEFINED__ */
'typedef void __stdcall __stdcall DXTASKPROC(
' void *pTaskData,
' BOOL *pbContinueProcessing);
'typedef DXTASKPROC *PFNDXTASKPROC;
'typedef void __stdcall __stdcall DXAPCPROC(
' DWORD dwData);
'typedef DXAPCPROC *PFNDXAPCPROC;
' // Size = 20 bytes
TYPE DXTMTASKINFO DWORD
 pfnTaskProc AS DWORD ' PFNDXTASKPROC // Pointer to function to execute
 pTaskData AS DWORD ' PVOID // Pointer to argument data
 pfnCompletionAPC AS DWORD ' PFNDXAPCPROC // Pointer to completion APC proc
 dwCompletionData AS DWORD ' DWORD // Pointer to APC proc data
 pRequestID AS GUID PTR ' const GUID* // Used to identify groups of tasks
END TYPE
' ########################################################################################
' Interface name = IDXTaskManager
' IID = {254DBBC1-F922-11D0-883A-3C8B00C10000}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXTaskManager_INTERFACE_DEFINED)
 %IDXTaskManager_INTERFACE_DEFINED = 1
INTERFACE IDXTaskManager $IID_IDXTaskManager
 INHERIT IUnknown
 ' =====================================================================================
 METHOD QueryNumProcessors ( ' VTable offset = 12
 BYREF pulNumProc AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetThreadPoolSize ( ' VTable offset = 16
 BYVAL ulNumThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetThreadPoolSize ( ' VTable offset = 20
 BYREF pulNumThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetConcurrencyLimit ( ' VTable offset = 24
 BYVAL ulNumThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetConcurrencyLimit ( ' VTable offset = 28
 BYREF pulNumThreads AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ScheduleTasks ( ' VTable offset = 32
 BYREF TaskInfo AS DXTMTASKINFO
 , BYVAL Events AS DWORD
 , BYREF TaskIDs AS DWORD
 , BYVAL ulNumTasks AS DWORD
 , BYVAL ulWaitPeriod AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD TerminateTasks ( ' VTable offset = 36
 BYREF TaskIDs AS DWORD
 , BYVAL ulCount AS DWORD
 , BYVAL ulTimeOut AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD TerminateRequest ( ' VTable offset = 40
 BYREF RequestID AS GUID
 , BYVAL ulTimeOut AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTaskManager_INTERFACE_DEFINED__ */
' // Size = 4 bytes
TYPE DXBASESAMPLE BYTE
 Blue AS BYTE
 Green AS BYTE
 Red AS BYTE
 Alpha AS BYTE
END TYPE
' // Size = 4 bytes
TYPE DXSAMPLE BYTE
 Blue AS BYTE
 Green AS BYTE
 Red AS BYTE
 Alpha AS BYTE
END TYPE
' // Size = 4 bytes
TYPE DXPMSAMPLE BYTE
 Blue AS BYTE
 Green AS BYTE
 Red AS BYTE
 Alpha AS BYTE
END TYPE
' enum DXRUNTYPE
%EQUATE `DXRUNTYPE_CLEAR = 0
%EQUATE `DXRUNTYPE_OPAQUE = 1
%EQUATE `DXRUNTYPE_TRANS = 2
%EQUATE `DXRUNTYPE_UNKNOWN = 3
%EQUATE `DX_MAX_RUN_INFO_COUNT = 128
'typedef struct DXRUNINFO
'{
' ULONG Type : 2; // Type
' ULONG Count : 30; // Number of samples in run
'} DXRUNINFO;
' // Size = 4 bytes
TYPE DXRUNINFO DWORD
 Type AS BIT * 2 IN DWORD
 Count AS BIT * 30
END TYPE
' enum DXSFCREATE
%EQUATE `DXSF_FORMAT_IS_CLSID = &H1 ' 1L << 0
%EQUATE `DXSF_NO_LAZY_DDRAW_LOCK = &H2 ' 1L << 1
' enum DXBLTOPTIONS
%EQUATE `DXBOF_DO_OVER = &H1 ' 1L << 0
%EQUATE `DXBOF_DITHER = &H2 ' 1L << 1
' ########################################################################################
' Interface name = IDXSurfaceFactory
' IID = {144946F5-C4D4-11D1-81D1-0000F87557DB}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXSurfaceFactory_INTERFACE_DEFINED)
 %IDXSurfaceFactory_INTERFACE_DEFINED = 1
INTERFACE IDXSurfaceFactory $IID_IDXSurfaceFactory
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateSurface ( ' VTable offset = 12
 BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pFormatID AS GUID
 , BYREF pBounds AS DXBNDS
 , BYVAL dwFlags AS DWORD
 , BYVAL punkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppDXSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CreateFromDDSurface ( ' VTable offset = 16
 BYVAL pDDrawSurface AS IUnknown
 , BYREF pFormatID AS GUID
 , BYVAL dwFlags AS DWORD
 , BYVAL punkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppDXSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD LoadImage ( ' VTable offset = 20
 BYREF pszFileName AS WSTRINGZ
 , BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pFormatID AS GUID
 , BYREF riid AS GUID
 , BYREF ppDXSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD LoadImageFromStream ( ' VTable offset = 24
 BYVAL pStream AS IStream
 , BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pFormatID AS GUID
 , BYREF riid AS GUID
 , BYREF ppDXSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD CopySurfaceToNewFormat ( ' VTable offset = 28
 BYVAL pSrc AS IDXSurface
 , BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pDestFormatID AS GUID
 , BYREF ppNewSurface AS IDXSurface
 ) AS LONG
 ' =====================================================================================
 METHOD CreateD3DRMTexture ( ' VTable offset = 32
 BYVAL pSrc AS IDXSurface
 , BYVAL pDirectDraw AS IUnknown
 , BYVAL pD3DRM3 AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppTexture3 AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD BitBlt ( ' VTable offset = 36
 BYVAL pDest AS IDXSurface
 , BYREF pPlacement AS DXVEC
 , BYVAL pSrc AS IDXSurface
 , BYREF pClipBounds AS DXBNDS
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXSurfaceFactory_INTERFACE_DEFINED__ */
' enum DXSURFMODCOMPOP
%EQUATE `DXSURFMOD_COMP_OVER = 0
%EQUATE `DXSURFMOD_COMP_ALPHA_MASK = 1
%EQUATE `DXSURFMOD_COMP_MAX_VALID = 1
' ########################################################################################
' Interface name = IDXSurfaceModifier
' IID = {9EA3B637-C37D-11D1-905E-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXSurfaceModifier_INTERFACE_DEFINED)
 %IDXSurfaceModifier_INTERFACE_DEFINED = 1
INTERFACE IDXSurfaceModifier $IID_IDXSurfaceModifier
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetFillColor ( ' VTable offset = 12
 BYVAL Color AS DXSAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetFillColor ( ' VTable offset = 16
 BYREF pColor AS DXSAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetBounds ( ' VTable offset = 20
 BYREF pBounds AS DXBNDS
 ) AS LONG
 ' =====================================================================================
 METHOD SetBackground ( ' VTable offset = 24
 BYVAL pSurface AS IDXSurface
 ) AS LONG
 ' =====================================================================================
 METHOD GetBackground ( ' VTable offset = 28
 BYREF ppSurface AS IDXSurface
 ) AS LONG
 ' =====================================================================================
 METHOD SetCompositeOperation ( ' VTable offset = 32
 BYVAL CompOp AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompositeOperation ( ' VTable offset = 36
 BYREF pCompOp AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetForeground ( ' VTable offset = 40
 BYVAL pSurface AS IDXSurface
 , BYVAL bTile AS LONG
 , BYREF pOrigin AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD GetForeground ( ' VTable offset = 44
 BYREF ppSurface AS IDXSurface
 , BYREF pbTile AS LONG
 , BYREF pOrigin AS POINT
 ) AS LONG
 ' =====================================================================================
 METHOD SetOpacity ( ' VTable offset = 48
 BYVAL Opacity AS SINGLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetOpacity ( ' VTable offset = 52
 BYREF pOpacity AS SINGLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetLookup ( ' VTable offset = 56
 BYVAL pLookupTable AS IDXLookupTable
 ) AS LONG
 ' =====================================================================================
 METHOD GetLookup ( ' VTable offset = 60
 BYREF ppLookupTable AS IDXLookupTable
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXSurfaceModifier_INTERFACE_DEFINED__ */
%EQUATE `DXPF_FLAGSMASK = &HFFFF0000
%EQUATE `DXPF_NONPREMULT = &H10000
%EQUATE `DXPF_TRANSPARENCY = &H20000
%EQUATE `DXPF_TRANSLUCENCY = &H40000
%EQUATE `DXPF_2BITERROR = &H200000
%EQUATE `DXPF_3BITERROR = &H300000
%EQUATE `DXPF_4BITERROR = &H400000
%EQUATE `DXPF_5BITERROR = &H500000
%EQUATE `DXPF_ERRORMASK = &H700000
%EQUATE `DXPF_NONSTANDARD = 0
%EQUATE `DXPF_PMARGB32 = 1 OR %DXPF_TRANSPARENCY OR %DXPF_TRANSLUCENCY
%EQUATE `DXPF_ARGB32 = 2 OR %DXPF_NONPREMULT OR %DXPF_TRANSPARENCY OR %DXPF_TRANSLUCENCY
%EQUATE `DXPF_ARGB4444 = 3 OR %DXPF_NONPREMULT OR %DXPF_TRANSPARENCY OR %DXPF_TRANSLUCENCY OR %DXPF_4BITERROR
%EQUATE `DXPF_A8 = 4 OR %DXPF_TRANSPARENCY OR %DXPF_TRANSLUCENCY
%EQUATE `DXPF_RGB32 = 5
%EQUATE `DXPF_RGB24 = 6
%EQUATE `DXPF_RGB565 = 7 OR %DXPF_3BITERROR
%EQUATE `DXPF_RGB555 = 8 OR %DXPF_3BITERROR
%EQUATE `DXPF_RGB8 = 9 OR %DXPF_5BITERROR
%EQUATE `DXPF_ARGB1555 = 10 OR %DXPF_TRANSPARENCY OR %DXPF_3BITERROR
%EQUATE `DXPF_RGB32_CK = %DXPF_RGB32 OR %DXPF_TRANSPARENCY
%EQUATE `DXPF_RGB24_CK = %DXPF_RGB24 OR %DXPF_TRANSPARENCY
%EQUATE `DXPF_RGB555_CK = %DXPF_RGB555 OR %DXPF_TRANSPARENCY
%EQUATE `DXPF_RGB565_CK = %DXPF_RGB565 OR %DXPF_TRANSPARENCY
%EQUATE `DXPF_RGB8_CK = %DXPF_RGB8 OR %DXPF_TRANSPARENCY
' enum DXLOCKSURF
%EQUATE `DXLOCKF_READ = 0
%EQUATE `DXLOCKF_READWRITE = &H1 ' 1 << 0
%EQUATE `DXLOCKF_EXISTINGINFOONLY = &H2 ' 1 << 1
%EQUATE `DXLOCKF_WANTRUNINFO = &H4 ' 1 << 2
%EQUATE `DXLOCKF_NONPREMULT = &H10000 ' 1 << 16
%EQUATE `DXLOCKF_VALIDFLAGS = %DXLOCKF_READWRITE OR %DXLOCKF_EXISTINGINFOONLY OR %DXLOCKF_WANTRUNINFO OR %DXLOCKF_NONPREMULT
' enum DXSURFSTATUS
%EQUATE `DXSURF_TRANSIENT = &H1 ' 1 << 0
%EQUATE `DXSURF_READONLY = &H2 ' 1 << 1
%EQUATE `DXSURF_VALIDFLAGS = %DXSURF_TRANSIENT OR %DXSURF_READONLY
' ########################################################################################
' Interface name = IDXSurface
' IID = {B39FD73F-E139-11D1-9065-00C04FD9189D}
' Inherited interface = IDXBaseObject
' ########################################################################################
#IF NOT %DEF(%IDXSurface_INTERFACE_DEFINED)
 %IDXSurface_INTERFACE_DEFINED = 1
INTERFACE IDXSurface $IID_IDXSurface
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetGenerationId ( ' VTable offset = 12
 BYREF pID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IncrementGenerationId ( ' VTable offset = 16
 BYVAL bRefresh AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectSize ( ' VTable offset = 20
 BYREF pcbSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPixelFormat ( ' VTable offset = 24
 BYREF pFormatID AS GUID
 , BYREF pSampleFormatEnum AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetBounds ( ' VTable offset = 28
 BYREF pBounds AS DXBNDS
 ) AS LONG
 ' =====================================================================================
 METHOD GetStatusFlags ( ' VTable offset = 32
 BYREF pdwStatusFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetStatusFlags ( ' VTable offset = 36
 BYVAL dwStatusFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD LockSurface ( ' VTable offset = 40
 BYREF pBounds AS DXBNDS
 , BYVAL ulTimeOut AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYREF riid AS GUID
 , BYREF ppPointer AS IUnknown
 , BYREF pulGenerationId AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDirectDrawSurface ( ' VTable offset = 44
 BYREF riid AS GUID
 , BYREF ppSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetColorKey ( ' VTable offset = 48
 BYREF pColorKey AS DXSAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD SetColorKey ( ' VTable offset = 52
 BYVAL ColorKey AS DXSAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD LockSurfaceDC ( ' VTable offset = 56
 BYREF pBounds AS DXBNDS
 , BYVAL ulTimeOut AS DWORD
 , BYVAL dwFlags AS DWORD
 , BYREF ppDCLock AS IDXDCLock
 ) AS LONG
 ' =====================================================================================
 METHOD SetAppData ( ' VTable offset = 60
 BYVAL dwAppData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAppData ( ' VTable offset = 64
 BYREF pdwAppData AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXSurface_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXSurfaceInit
' IID = {9EA3B639-C37D-11d1-905E-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#If NOT %DEF(%IDXSurfaceInit_INTERFACE_DEFINED)
 %IDXSurfaceInit_INTERFACE_DEFINED = 1
INTERFACE IDXSurfaceInit $IID_IDXSurfaceInit
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitSurface ( ' VTable offset = 12
 BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pFormatID AS GUID
 , BYREF pBounds AS DXBNDS
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXSurfaceInit_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXARGBSurfaceInit
' IID = {9EA3B63A-C37D-11d1-905E-00C04FD9189D}
' Inherited interface = IDXSurfaceInit
' ########################################################################################
#IF NOT %DEF(%IDXARGBSurfaceInit_INTERFACE_DEFINED)
 %IDXARGBSurfaceInit_INTERFACE_DEFINED = 1
INTERFACE IDXARGBSurfaceInit $IID_IDXARGBSurfaceInit
 INHERIT IUnknown
 ' =====================================================================================
 METHOD InitSurface ( ' VTable offset = 12
 BYVAL pDirectDraw AS IUnknown
 , BYREF pDDSurfaceDesc AS DDSURFACEDESC
 , BYREF pFormatID AS GUID
 , BYREF pBounds AS DXBNDS
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitFromDDSurface ( ' VTable offset = 16
 BYVAL pDDrawSurface AS IUnknown
 , BYREF pFormatID AS GUID
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InitFromRawSurface ( ' VTable offset = 20
 BYVAL pRawSurface AS IDXRawSurface
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXARGBSurfaceInit_INTERFACE_DEFINED__ */
' // Size = 16 bytes
TYPE DXNATIVETYPEINFO DWORD
 pCurrentData AS BYTE PTR ' BYTE *
 pFirstByte AS BYTE PTR ' BYTE *
 lPitch AS LONG ' long
 dwColorKey AS DWORD
END TYPE
' // Size = 28 bytes
TYPE DXPACKEDRECTDESC DWORD
 pSamples AS DXBASESAMPLE PTR ' DXBASESAMPLE *
 bPremult AS LONG
 rect AS RECT ' RECT
 lRowPadding AS LONG ' long
END TYPE
' // Size = 12 bytes
TYPE DXOVERSAMPLEDESC DWORD
 p AS POINT
 Color AS DXPMSAMPLE ' DXPMSAMPLE
END TYPE
' ########################################################################################
' Interface name = IDXARGBReadPtr
' IID = {EAAAC2D6-C290-11d1-905D-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXARGBReadPtr_INTERFACE_DEFINED)
 %IDXARGBReadPtr_INTERFACE_DEFINED = 1
INTERFACE IDXARGBReadPtr $IID_IDXARGBReadPtr
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSurface ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetNativeType ( ' VTable offset = 16
 BYREF pInfo AS DXNATIVETYPEINFO
 ) AS LONG ' DXSAMPLEFORMATENUM
 ' =====================================================================================
 METHOD Move ( ' VTable offset = 20
 BYVAL cSamples AS LONG
 ) ' void
 ' =====================================================================================
 METHOD MoveToRow ( ' VTable offset = 24
 BYVAL y AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD MoveToXY ( ' VTable offset = 28
 BYVAL x AS DWORD
 , BYVAL y AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD MoveAndGetRunInfo ( ' VTable offset = 32
 BYVAL Row AS DWORD
 , BYREF ppInfo AS DXRUNINFO
 ) AS DWORD ' ULONG
 ' =====================================================================================
 METHOD Unpack ( ' VTable offset = 36
 BYVAL pSamples AS DXSAMPLE
 , BYVAL cSamples AS DWORD
 , BYVAL bMove AS LONG
 ) AS DXSAMPLE ' DXSAMPLE *
 ' =====================================================================================
 METHOD UnpackPremult ( ' VTable offset = 40
 BYVAL pSamples AS DXPMSAMPLE
 , BYVAL cSamples AS DWORD
 , BYVAL bMove AS LONG
 ) AS DXPMSAMPLE ' DXPMSAMPLE *
 ' =====================================================================================
 METHOD UnpackRect ( ' VTable offset = 44
 BYREF pRectDesc AS DXPACKEDRECTDESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXARGBReadPtr_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXARGBReadWritePtr
' IID = {EAAAC2D7-C290-11d1-905D-00C04FD9189D}
' Inherited interface = IDXARGBReadPtr
' ########################################################################################
#IF NOT %DEF(%IDXARGBReadWritePtr_INTERFACE_DEFINED)
 %IDXARGBReadWritePtr_INTERFACE_DEFINED = 1
INTERFACE IDXARGBReadWritePtr $IID_IDXARGBReadWritePtr
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSurface ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppSurface AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetNativeType ( ' VTable offset = 16
 BYREF pInfo AS DXNATIVETYPEINFO
 ) AS LONG ' DXSAMPLEFORMATENUM
 ' =====================================================================================
 METHOD Move ( ' VTable offset = 20
 BYVAL cSamples AS LONG
 ) ' void
 ' =====================================================================================
 METHOD MoveToRow ( ' VTable offset = 24
 BYVAL y AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD MoveToXY ( ' VTable offset = 28
 BYVAL x AS DWORD
 , BYVAL y AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD MoveAndGetRunInfo ( ' VTable offset = 32
 BYVAL Row AS DWORD
 , BYREF ppInfo AS DXRUNINFO
 ) AS DWORD ' ULONG
 ' =====================================================================================
 METHOD Unpack ( ' VTable offset = 36
 BYVAL pSamples AS DXSAMPLE
 , BYVAL cSamples AS DWORD
 , BYVAL bMove AS LONG
 ) AS DXSAMPLE ' DXSAMPLE *
 ' =====================================================================================
 METHOD UnpackPremult ( ' VTable offset = 40
 BYVAL pSamples AS DXPMSAMPLE
 , BYVAL cSamples AS DWORD
 , BYVAL bMove AS LONG
 ) AS DXPMSAMPLE ' DXPMSAMPLE *
 ' =====================================================================================
 METHOD UnpackRect ( ' VTable offset = 44
 BYREF pRectDesc AS DXPACKEDRECTDESC
 ) ' void
 ' =====================================================================================
 METHOD PackAndMove ( ' VTable offset = 48
 BYVAL pSamples AS DXSAMPLE
 , BYVAL cSamples AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PackPremultAndMove ( ' VTable offset = 52
 BYVAL pSamples AS DXPMSAMPLE
 , BYVAL cSamples AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PackRect ( ' VTable offset = 56
 BYREF pRectDesc AS DXPACKEDRECTDESC
 ) ' void
 ' =====================================================================================
 METHOD CopyAndMoveBoth ( ' VTable offset = 60
 BYVAL pScratchBuffer AS DXBASESAMPLE
 , BYVAL pSrc AS IDXARGBReadPtr
 , BYVAL cSamples AS DWORD
 , BYVAL bIsOpaque AS LONG
 ) ' void
 ' =====================================================================================
 METHOD CopyRect ( ' VTable offset = 64
 BYVAL pScratchBuffer AS DXBASESAMPLE
 , BYREF pDestRect AS RECT
 , BYVAL pSrc AS IDXARGBReadPtr
 , BYREF pSrcOrigin AS POINT
 , BYVAL bIsOpaque AS LONG
 ) ' void
 ' =====================================================================================
 METHOD FillAndMove ( ' VTable offset = 68
 BYVAL pScratchBuffer AS DXBASESAMPLE
 , BYVAL SampVal AS DXPMSAMPLE
 , BYVAL cSamples AS DWORD
 , BYVAL bDoOver AS LONG
 ) ' void
 ' =====================================================================================
 METHOD FillRect ( ' VTable offset = 72
 BYREF pRect AS RECT
 , BYVAL SampVal AS DXPMSAMPLE
 , BYVAL bDoOver AS LONG
 ) ' void
 ' =====================================================================================
 METHOD OverSample ( ' VTable offset = 76
 BYREF pOverDesc AS DXOVERSAMPLEDESC
 ) ' void
 ' =====================================================================================
 METHOD OverArrayAndMove ( ' VTable offset = 80
 BYVAL pScratchBuffer AS DXBASESAMPLE
 , BYVAL pSrc AS DXPMSAMPLE
 , BYVAL cSamples AS DWORD
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXARGBReadWritePtr_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXDCLock
' IID = {0F619456-CF39-11D1-905E-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXDCLock_INTERFACE_DEFINED)
 %IDXDCLock_INTERFACE_DEFINED = 1
INTERFACE IDXDCLock $IID_IDXDCLock
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDC ( ' VTable offset = 12
 ) AS DWORD ' HDC
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXDCLock_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXTScaleOutput
' IID = {B2024B50-EE77-11D1-9066-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXTScaleOutput_INTERFACE_DEFINED)
 %IDXTScaleOutput_INTERFACE_DEFINED = 1
INTERFACE IDXTScaleOutput $IID_IDXTScaleOutput
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetOutputSize ( ' VTable offset = 12
 BYVAL OutSize AS SIZE
 , BYVAL bMaintainAspect AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTScaleOutput_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXGradient
' IID = {B2024B51-EE77-11D1-9066-00C04FD9189D}
' Inherited interface = IDXTScaleOutput
' ########################################################################################
#IF NOT %DEF(%IDXGradient_INTERFACE_DEFINED)
 %IDXGradient_INTERFACE_DEFINED = 1
INTERFACE IDXGradient $IID_IDXGradient
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetOutputSize ( ' VTable offset = 12
 BYVAL OutSize AS SIZE
 , BYVAL bMaintainAspect AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetGradient ( ' VTable offset = 16
 BYVAL StartColor AS DXSAMPLE
 , BYVAL EndColor AS DXSAMPLE
 , BYVAL bHorizontal AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetOutputSize ( ' VTable offset = 20
 BYREF pOutSize AS SIZE
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXGradient_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXTScale
' IID = {B39FD742-E139-11D1-9065-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXTScale_INTERFACE_DEFINED)
 %IDXTScale_INTERFACE_DEFINED = 1
INTERFACE IDXTScale $IID_IDXTScale
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetScales ( ' VTable offset = 12
 BYREF Scales AS SINGLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetScales ( ' VTable offset = 16
 BYREF Scales AS SINGLE
 ) AS LONG
 ' =====================================================================================
 METHOD ScaleFitToSize ( ' VTable offset = 20
 BYREF pClipBounds AS DXBNDS
 , BYREF FitToSize AS SIZE
 , BYVAL bMaintainAspect AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXTScale_INTERFACE_DEFINED__ */
' enum DISPIDDXEFFECT
%EQUATE `DISPID_DXECAPABILITIES = 10000
%EQUATE `DISPID_DXEPROGRESS = %DISPID_DXECAPABILITIES + 1
%EQUATE `DISPID_DXESTEP = %DISPID_DXEPROGRESS + 1
%EQUATE `DISPID_DXEDURATION = %DISPID_DXESTEP + 1
%EQUATE `DISPID_DXE_NEXT_ID = %DISPID_DXEDURATION + 1
' enum DXEFFECTTYPE
%EQUATE `DXTET_PERIODIC = &H1 ' 1 << 0
%EQUATE `DXTET_MORPH = &H2 ' 1 << 1
' ########################################################################################
' Interface name = IDXEffect
' IID = {E31FB81B-1335-11D1-8189-0000F87557DB}
' Attributes = 4160 [&H1040] [Dual] [Dispatchable]
' Inherited interface = IDispatch
' ########################################################################################
#IF NOT %DEF(%IDXEffect_INTERFACE_DEFINED)
 %IDXEffect_INTERFACE_DEFINED = 1
INTERFACE IDXEffect $IID_IDXEffect
 INHERIT IDispatch
 ' =====================================================================================
 PROPERTY GET Capabilities <10000> ( ' VTable offset = 28
 ) AS LONG ' long *pVal
 ' =====================================================================================
 PROPERTY GET Progress <10001> ( ' VTable offset = 32
 ) AS SINGLE ' float *pVal
 ' =====================================================================================
 PROPERTY SET Progress <10001> ( ' VTable offset = 36
 BYVAL newVal AS SINGLE
 ) ' void
 ' =====================================================================================
 PROPERTY GET StepResolution <10002> ( ' VTable offset = 40
 ) AS SINGLE ' float *pVal
 ' =====================================================================================
 PROPERTY GET Duration <10003> ( ' VTable offset = 44
 ) AS SINGLE ' float *pVal
 ' =====================================================================================
 PROPERTY SET Duration <10003> ( ' VTable offset = 48
 BYVAL newVal AS SINGLE
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXEffect_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IDXLookupTable
' IID = {01BAFC7F-9E63-11D1-9053-00C04FD9189D}
' Inherited interface = IDXBaseObject
' ########################################################################################
#IF NOT %DEF(%IDXLookupTable_INTERFACE_DEFINED)
 %IDXLookupTable_INTERFACE_DEFINED = 1
INTERFACE IDXLookupTable $IID_IDXLookupTable
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetGenerationId ( ' VTable offset = 12
 BYREF pID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD IncrementGenerationId ( ' VTable offset = 16
 BYVAL bRefresh AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectSize ( ' VTable offset = 20
 BYREF pcbSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetTables ( ' VTable offset = 24
 BYREF RedLUT AS BYTE
 , BYREF GreenLUT AS BYTE
 , BYREF BlueLUT AS BYTE
 , BYREF AlphaLUT AS BYTE
 ) AS LONG
 ' =====================================================================================
 METHOD IsChannelIdentity ( ' VTable offset = 28
 BYREF pSampleBools AS DXBASESAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD GetIndexValues ( ' VTable offset = 32
 BYVAL Index AS DWORD
 , BYREF pSample AS DXBASESAMPLE
 ) AS LONG
 ' =====================================================================================
 METHOD ApplyTables ( ' VTable offset = 36
 BYREF pSamples AS DXSAMPLE
 , BYVAL cSamples AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXLookupTable_INTERFACE_DEFINED__ */
' // Size = 32 bytes
TYPE DXRAWSURFACEINFO DWORD
 pFirstByte AS BYTE PTR ' BYTE *
 lPitch AS LONG ' long
 Width AS DWORD ' ULONG
 Height AS DWORD ' ULONG
 pPixelFormat AS GUID PTR ' const GUID *
 hdc AS DWORD ' HDC
 dwColorKey AS DWORD
 pPalette AS DXBASESAMPLE PTR ' DXBASESAMPLE *
END TYPE
' ########################################################################################
' Interface name = IDXRawSurface
' IID = {09756C8A-D96A-11d1-9062-00C04FD9189D}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDXRawSurface_INTERFACE_DEFINED)
 %IDXRawSurface_INTERFACE_DEFINED = 1
INTERFACE IDXRawSurface $IID_IDXRawSurface
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSurfaceInfo ( ' VTable offset = 12
 BYREF pSurfaceInfo AS DXRAWSURFACEINFO
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDXRawSurface_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IHTMLDXTransform
' IID = {30E2AB7D-4FDD-4159-B7EA-DC722BF4ADE5}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IHTMLDXTransform_INTERFACE_DEFINED)
 %IHTMLDXTransform_INTERFACE_DEFINED = 1
INTERFACE IHTMLDXTransform $IID_IHTMLDXTransform
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetHostUrl ( ' VTable offset = 12
 BYVAL bstrHostUrl AS WSTRING
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IHTMLDXTransform_INTERFACE_DEFINED__ */
' enum DXTFILTER_STATUS
%EQUATE `DXTFILTER_STATUS_Stopped = 0
%EQUATE `DXTFILTER_STATUS_Applied = %DXTFILTER_STATUS_Stopped + 1
%EQUATE `DXTFILTER_STATUS_Playing = %DXTFILTER_STATUS_Applied + 1
%EQUATE `DXTFILTER_STATUS_MAX = %DXTFILTER_STATUS_Playing + 1
' enum DXTFILTER_DISPID
%EQUATE `DISPID_DXTFilter_Percent = 1
%EQUATE `DISPID_DXTFilter_Duration = %DISPID_DXTFilter_Percent + 1
%EQUATE `DISPID_DXTFilter_Enabled = %DISPID_DXTFilter_Duration + 1
%EQUATE `DISPID_DXTFilter_Status = %DISPID_DXTFilter_Enabled + 1
%EQUATE `DISPID_DXTFilter_Apply = %DISPID_DXTFilter_Status + 1
%EQUATE `DISPID_DXTFilter_Play = %DISPID_DXTFilter_Apply + 1
%EQUATE `DISPID_DXTFilter_Stop = %DISPID_DXTFilter_Play + 1
%EQUATE `DISPID_DXTFilter_MAX = %DISPID_DXTFilter_Stop + 1
' ########################################################################################
' Interface name = ICSSFilterDispatch
' IID = {9519152B-9484-4A6C-B6A7-4F25E92D6C6B}
' Attributes = 4160 [&H1040] [Dual] [Dispatchable]
' Inherited interface = IDispatch
' ########################################################################################
#IF NOT %DEF(%ICSSFilterDispatch_INTERFACE_DEFINED)
 %ICSSFilterDispatch_INTERFACE_DEFINED = 1
INTERFACE ICSSFilterDispatch $IID_ICSSFilterDispatch
 INHERIT IDispatch
 ' =====================================================================================
 PROPERTY GET Percent <1> ( ' VTable offset = 28
 ) AS SINGLE
 ' =====================================================================================
 PROPERTY SET Percent <1> ( ' VTable offset = 32
 BYVAL newVal AS SINGLE
 ) ' void
 ' =====================================================================================
 PROPERTY GET Duration <2> ( ' VTable offset = 36
 ) AS SINGLE
 ' =====================================================================================
 PROPERTY SET Duration <2> ( ' VTable offset = 40
 BYVAL newVal AS SINGLE
 ) ' void
 ' =====================================================================================
 PROPERTY GET Enabled <3> ( ' VTable offset = 44
 ) AS INTEGER
 ' =====================================================================================
 PROPERTY SET Enabled <3> ( ' VTable offset = 48
 BYVAL fVal AS INTEGER
 ) ' void
 ' =====================================================================================
 PROPERTY GET Status <4> ( ' VTable offset = 52
 ) AS LONG
 ' =====================================================================================
 METHOD Apply <5> ( ' VTable offset = 56
 ) ' void
 ' =====================================================================================
 METHOD Play <6> ( ' VTable offset = 60
 OPTIONAL BYVAL varDuration AS VARIANT
 ) ' void
 ' =====================================================================================
 METHOD Stop <7> ( ' VTable offset = 64
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICSSFilterDispatch_INTERFACE_DEFINED__ */
#ENDIF
