Subversion Repositories spacemission

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 daniel-mar 1
(*==========================================================================;
2
 *
3
 *  Copyright (C) 1994-1997 Microsoft Corporation.  All Rights Reserved.
4
 *
5
 *  DirectX header version 98.08.07
6
 *
7
 *  Present by Hiroyuki Hori.
8
 *
9
 *  E-Mail: hori@ingjapan.ne.jp
10
 *  Homepage: http://www.ingjapan.ne.jp/hori/index-e.html
11
 *
12
 *  Present unit:
13
 *    DirectX.pas    DirectX 6 (DirectX 6 SDK)
14
 *    DShow.pas      DirectShow (DirectX Media SDK 5.1)
15
 *    DAnim.pas      DirectAnimation (DirectX Media SDK 5.1)
16
 *
17
 ***************************************************************************)
18
 
19
unit DAnim;
20
 
21
interface
22
 
23
{$Z4}
24
{$A+}
25
{$WEAKPACKAGEUNIT}
26
 
27
uses Windows, ActiveX, DirectX, DShow;
28
 
29
(*==========================================================================;
30
 *
31
 *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
32
 *
33
 *  File:       danim.h
34
 *
35
 ***************************************************************************)
36
 
37
const
38
  CLSID_DABehavior: TGUID = '{283807B8-2C60-11d0-A31D-00AA00B92C03}';
39
  CLSID_DABoolean: TGUID = '{C46C1BC1-3C52-11d0-9200-848C1D000000}';
40
  CLSID_DACamera: TGUID = '{C46C1BE2-3C52-11d0-9200-848C1D000000}';
41
  CLSID_DAColor: TGUID = '{C46C1BC6-3C52-11d0-9200-848C1D000000}';
42
  CLSID_DAGeometry: TGUID = '{C46C1BE0-3C52-11d0-9200-848C1D000000}';
43
  CLSID_DAImage: TGUID = '{C46C1BD4-3C52-11d0-9200-848C1D000000}';
44
  CLSID_DAMatte: TGUID = '{C46C1BD2-3C52-11d0-9200-848C1D000000}';
45
  CLSID_DAMicrophone: TGUID = '{C46C1BE6-3C52-11d0-9200-848C1D000000}';
46
  CLSID_DAMontage: TGUID = '{C46C1BD6-3C52-11d0-9200-848C1D000000}';
47
  CLSID_DANumber: TGUID = '{9CDE7341-3C20-11d0-A330-00AA00B92C03}';
48
  CLSID_DAPath2: TGUID = '{C46C1BD0-3C52-11d0-9200-848C1D000000}';
49
  CLSID_DAPoint2: TGUID = '{C46C1BC8-3C52-11d0-9200-848C1D000000}';
50
  CLSID_DAPoint3: TGUID = '{C46C1BD8-3C52-11d0-9200-848C1D000000}';
51
  CLSID_DASound: TGUID = '{C46C1BE4-3C52-11d0-9200-848C1D000000}';
52
  CLSID_DAString: TGUID = '{C46C1BC4-3C52-11d0-9200-848C1D000000}';
53
  CLSID_DATransform2: TGUID = '{C46C1BCC-3C52-11d0-9200-848C1D000000}';
54
  CLSID_DATransform3: TGUID = '{C46C1BDC-3C52-11d0-9200-848C1D000000}';
55
  CLSID_DAVector2: TGUID = '{C46C1BCA-3C52-11d0-9200-848C1D000000}';
56
  CLSID_DAVector3: TGUID = '{C46C1BDA-3C52-11d0-9200-848C1D000000}';
57
  CLSID_DAFontStyle: TGUID = '{25B0F91C-D23D-11d0-9B85-00C04FC2F51D}';
58
  CLSID_DALineStyle: TGUID = '{C46C1BF2-3C52-11d0-9200-848C1D000000}';
59
  CLSID_DAEndStyle: TGUID = '{C46C1BEC-3C52-11d0-9200-848C1D000000}';
60
  CLSID_DAJoinStyle: TGUID = '{C46C1BEE-3C52-11d0-9200-848C1D000000}';
61
  CLSID_DADashStyle: TGUID = '{C46C1BF0-3C52-11d0-9200-848C1D000000}';
62
  CLSID_DABbox2: TGUID = '{C46C1BCE-3C52-11d0-9200-848C1D000000}';
63
  CLSID_DABbox3: TGUID = '{C46C1BDE-3C52-11d0-9200-848C1D000000}';
64
  CLSID_DAPair: TGUID = '{C46C1BF4-3C52-11d0-9200-848C1D000000}';
65
  CLSID_DAEvent: TGUID = '{50B4791F-4731-11d0-8912-00C04FC2A0CA}';
66
  CLSID_DAArray: TGUID = '{D17506C3-6B26-11d0-8914-00C04FC2A0CA}';
67
  CLSID_DATuple: TGUID = '{5DFB2651-9668-11d0-B17B-00C04FC2A0CA}';
68
  CLSID_DAUserData: TGUID = '{AF868304-AB0B-11d0-876A-00C04FC29D46}';
69
  CLSID_DAView: TGUID = '{283807B5-2C60-11d0-A31D-00AA00B92C03}';
70
  CLSID_DAImportationResult: TGUID = '{BCBB1F75-E384-11d0-9B99-00C04FC2F51D}';
71
  CLSID_DAPickableResult: TGUID = '{BCBB1F74-E384-11d0-9B99-00C04FC2F51D}';
72
  CLSID_DAStatics: TGUID = '{542FB453-5003-11cf-92A2-00AA00B8A733}';
73
  CLSID_DAViewerControl: TGUID = '{B6FFC24C-7E13-11D0-9B47-00C04FC2F51D}';
74
  CLSID_DAViewerControlWindowed: TGUID = '{69AD90EF-1C20-11d1-8801-00C04FC29D46}';
75
 
76
  IID_IDAViewSite: TGUID = '{283807B3-2C60-11d0-A31D-00AA00B92C03}';
77
  IID_IDAView: TGUID = '{283807B4-2C60-11d0-A31D-00AA00B92C03}';
78
  IID_IDABehavior: TGUID = '{283807B7-2C60-11d0-A31D-00AA00B92C03}';
79
  IID_IDANumber: TGUID = '{9CDE7340-3C20-11d0-A330-00AA00B92C03}';
80
  IID_IDABvrHook: TGUID = '{3E2487C4-8709-11d0-B177-00C04FC2A0CA}';
81
  IID_IDADrawingSurface: TGUID = '{BC0BFD34-D21D-11d0-9385-00C04FB6BD36}';
82
  IID_IDAPickableResult: TGUID = '{4A933703-E36F-11d0-9B99-00C04FC2F51D}';
83
  IID_IDAUntilNotifier: TGUID = '{3F3DA01A-4705-11d0-8710-00C04FC29D46}';
84
  IID_IDABoolean: TGUID = '{C46C1BC0-3C52-11d0-9200-848C1D000000}';
85
  IID_IDACamera: TGUID = '{C46C1BE1-3C52-11d0-9200-848C1D000000}';
86
  IID_IDAColor: TGUID = '{C46C1BC5-3C52-11d0-9200-848C1D000000}';
87
  IID_IDAGeometry: TGUID = '{C46C1BDF-3C52-11d0-9200-848C1D000000}';
88
  IID_IDAImage: TGUID = '{C46C1BD3-3C52-11d0-9200-848C1D000000}';
89
  IID_IDAMatte: TGUID = '{C46C1BD1-3C52-11d0-9200-848C1D000000}';
90
  IID_IDAMicrophone: TGUID = '{C46C1BE5-3C52-11d0-9200-848C1D000000}';
91
  IID_IDAMontage: TGUID = '{C46C1BD5-3C52-11d0-9200-848C1D000000}';
92
  IID_IDAPath2: TGUID = '{C46C1BCF-3C52-11d0-9200-848C1D000000}';
93
  IID_IDAPoint2: TGUID = '{C46C1BC7-3C52-11d0-9200-848C1D000000}';
94
  IID_IDAPoint3: TGUID = '{C46C1BD7-3C52-11d0-9200-848C1D000000}';
95
  IID_IDASound: TGUID = '{C46C1BE3-3C52-11d0-9200-848C1D000000}';
96
  IID_IDAString: TGUID = '{C46C1BC3-3C52-11d0-9200-848C1D000000}';
97
  IID_IDATransform2: TGUID = '{C46C1BCB-3C52-11d0-9200-848C1D000000}';
98
  IID_IDATransform3: TGUID = '{C46C1BDB-3C52-11d0-9200-848C1D000000}';
99
  IID_IDAVector2: TGUID = '{C46C1BC9-3C52-11d0-9200-848C1D000000}';
100
  IID_IDAVector3: TGUID = '{C46C1BD9-3C52-11d0-9200-848C1D000000}';
101
  IID_IDAFontStyle: TGUID = '{25B0F91D-D23D-11d0-9B85-00C04FC2F51D}';
102
  IID_IDALineStyle: TGUID = '{C46C1BF1-3C52-11d0-9200-848C1D000000}';
103
  IID_IDAEndStyle: TGUID = '{C46C1BEB-3C52-11d0-9200-848C1D000000}';
104
  IID_IDAJoinStyle: TGUID = '{C46C1BED-3C52-11d0-9200-848C1D000000}';
105
  IID_IDADashStyle: TGUID = '{C46C1BEF-3C52-11d0-9200-848C1D000000}';
106
  IID_IDABbox2: TGUID = '{C46C1BCD-3C52-11d0-9200-848C1D000000}';
107
  IID_IDABbox3: TGUID = '{C46C1BDD-3C52-11d0-9200-848C1D000000}';
108
  IID_IDAPair: TGUID = '{C46C1BF3-3C52-11d0-9200-848C1D000000}';
109
  IID_IDAEvent: TGUID = '{50B4791E-4731-11d0-8912-00C04FC2A0CA}';
110
  IID_IDAArray: TGUID = '{D17506C2-6B26-11d0-8914-00C04FC2A0CA}';
111
  IID_IDATuple: TGUID = '{5DFB2650-9668-11d0-B17B-00C04FC2A0CA}';
112
  IID_IDAUserData: TGUID = '{AF868305-AB0B-11d0-876A-00C04FC29D46}';
113
  IID_IDAPreferences: TGUID = '{69B5BC70-9B19-11d0-9B60-00C04FC2F51D}';
114
  IID_IDASite: TGUID = '{45393DF0-54B9-11cf-92A2-00AA00B8A733}';
115
  IID_IDAImportationResult: TGUID = '{4A933702-E36F-11d0-9B99-00C04FC2F51D}';
116
  IID_IDAStatics: TGUID = '{542FB452-5003-11cf-92A2-00AA00B8A733}';
117
  IID_IDAViewerControl: TGUID = '{0E41257B-812D-11D0-9B4A-00C04FC2F51D}';
118
  IID_IDAViewerControlWindowed: TGUID = '{BA8B033E-1E91-11d1-8809-00C04FC29D46}';
119
 
120
type
121
  TDA_Dash_Style = (
122
    DAEmpty,
123
    DASolid,
124
    DADash
125
  );
126
 
127
  TDA_End_Style = (
128
    DAEndFlat,
129
    DAEndSquare,
130
    DAEndRound
131
  );
132
 
133
  TDA_Join_Style = (
134
    DAJoinBevel,
135
    DAJoinRound,
136
    DAJoinMiter
137
  );
138
 
139
  TDA_Timer_Source = (
140
    DAMultimediaTimer,
141
    DAContainerTimer,
142
    DAWMTimer
143
  );
144
 
145
type
146
  IDABehavior = interface;
147
  IDAImage = interface;
148
  IDASound = interface;
149
  IDAViewSite = interface;
150
  IDAPreferences = interface;
151
 
152
  IDAViewSite = interface(IDispatch)
153
    ['{283807B3-2C60-11d0-A31D-00AA00B92C03}']
154
    function SetStatusText(StatusText: TBSTR): HResult; stdcall;
155
  end;
156
 
157
  IDAView = interface(IDispatch)
158
    ['{283807B4-2C60-11d0-A31D-00AA00B92C03}']
159
    function get_SimulationTime(var simTime: double): HResult; stdcall;
160
    function Tick(simTime: double; var needToRender: WordBool): HResult; stdcall;
161
    function Render: HResult; stdcall;
162
    function AddBvrToRun(bvr: IDABehavior; var pId: Longint): HResult; stdcall;
163
    function RemoveRunningBvr(id: Longint): HResult; stdcall;
164
    function StartModel(pImage: IDAImage; pSound: IDASound; startTime: double): HResult; stdcall;
165
    function StopModel: HResult; stdcall;
166
    function get_Window(var hwnd: HWND): HResult; stdcall;
167
    function put_Window(hwnd: HWND): HResult; stdcall;
168
    function get_IDirectDrawSurface(out ddsurf: IDirectDrawSurface): HResult; stdcall;
169
    function put_IDirectDrawSurface(ddsurf: IDirectDrawSurface): HResult; stdcall;
170
    function get_DC(var dc: HDC): HResult; stdcall;
171
    function put_DC(dc: HDC): HResult; stdcall;
172
    function get_CompositeDirectlyToTarget(var composeToTarget: WordBool): HResult; stdcall;
173
    function put_CompositeDirectlyToTarget(composeToTarget: WordBool): HResult; stdcall;
174
    function SetViewport(xPos, yPos, w, h: Longint): HResult; stdcall;
175
    function SetClipRect(xPos, yPos, w, h: Longint): HResult; stdcall;
176
    function RePaint(xPos, yPos, w, h: Longint): HResult; stdcall;
177
    function PaletteChanged(bNew: WordBool): HResult; stdcall;
178
    function get_Site(out pViewSite: IDAViewSite): HResult; stdcall;
179
    function put_Site(pViewSite: IDAViewSite): HResult; stdcall;
180
    function put_ClientSite(pClientSite: IOleClientSite): HResult; stdcall;
181
    function get_ClientSite(out pClientSite: IOleClientSite): HResult; stdcall;
182
    function OnMouseMove(when: double; xPos, yPos: Longint; modifiers: Byte): HResult; stdcall;
183
    function OnMouseButton(when: double; xPos, yPos: Longint; button: Byte;
184
        bPressed: WordBool; modifiers: Byte): HResult; stdcall;
185
    function OnKey(when: double; key: Longint; bPressed: WordBool;
186
        modifiers: Byte): HResult; stdcall;
187
    function OnFocus(bHasFocus: WordBool): HResult; stdcall;
188
    function get_Preferences(out prefs: IDAPreferences): HResult; stdcall;
189
    function QueryHitPoint(dwAspect: DWORD; const prcBounds: TRect;
190
        ptLoc: TPoint; lCloseHint: Longint; var pHitResult: DWORD): HResult; stdcall;
191
  end;
192
 
193
  IDANumber = interface;
194
  IDABvrHook = interface;
195
 
196
  IDABehavior = interface(IDispatch)
197
    ['{283807B7-2C60-11d0-A31D-00AA00B92C03}']
198
    function GetClassName(var pClassName: TBSTR): HResult; stdcall;
199
    function Init(toBvr: IDABehavior): HResult; stdcall;
200
    function Importance(relativeImportance: double; out ppBvr: IDABehavior): HResult; stdcall;
201
    function RunOnce(out bvr: IDABehavior): HResult; stdcall;
202
    function SubstituteTime(xform: IDANumber; out bvr: IDABehavior): HResult; stdcall;
203
    function SwitchTo(switchTo: IDABehavior): HResult; stdcall;
204
    function SwitchToNumber(numToSwitchTo: double): HResult; stdcall;
205
    function SwitchToString(strToSwitchTo: TBSTR): HResult; stdcall;
206
    function Hook(notifier: IDABvrHook; out pBvr: IDABehavior): HResult; stdcall;
207
    function Duration(duration: double; out bvr: IDABehavior): HResult; stdcall;
208
    function DurationAnim(duration: IDANumber; out bvr: IDABehavior): HResult; stdcall;
209
    function Repeat_(count: Longint; out bvr: IDABehavior): HResult; stdcall;
210
    function RepeatForever(out bvr: IDABehavior): HResult; stdcall;
211
    function IsReady(bBlock: WordBool; var b: WordBool): HResult; stdcall;
212
  end;
213
 
214
  IDAString = interface;
215
 
216
  IDANumber = interface(IDABehavior)
217
    ['{9CDE7340-3C20-11d0-A330-00AA00B92C03}']
218
    function Extract(var ret_0: double): HResult; stdcall;
219
    function AnimateProperty(propertyPath_0, scriptingLanguage_1: TBSTR;
220
        invokeAsMethod_2: WordBool; minUpdateInterval_3: double;
221
        out ret_4: IDANumber): HResult; stdcall;
222
    function ToStringAnim(precision_0: IDANumber; out ret_1: IDAString): HResult; stdcall;
223
    function ToString(precision_0: double; out ret_1: IDAString): HResult; stdcall;
224
  end;
225
 
226
  IDABvrHook = interface(IUnknown)
227
    ['{3E2487C4-8709-11d0-B177-00C04FC2A0CA}']
228
    function Notify(id: Longint; startingPerformance: WordBool;
229
        startTime, gTime, lTime: double; sampleVal, curRunningBvr: IDABehavior;
230
        out ppBvr: IDABehavior): HResult; stdcall;
231
  end;
232
 
233
  IDALineStyle = interface;
234
  IDAFontStyle = interface;
235
  IDAMatte = interface;
236
  IDAPoint2 = interface;
237
  IDATransform2 = interface;
238
  IDAColor = interface;
239
  IDAPath2 = interface;
240
 
241
  IDADrawingSurface = interface(IDispatch)
242
    ['{BC0BFD34-D21D-11d0-9385-00C04FB6BD36}']
243
    function get_Image(out img: IDAImage): HResult; stdcall;
244
    function put_LineStyle(ls: IDALineStyle): HResult; stdcall;
245
    function put_BorderStyle(bs: IDALineStyle): HResult; stdcall;
246
    function put_FontStyle(fs: IDAFontStyle): HResult; stdcall;
247
    function put_ClipMatte(matte: IDAMatte): HResult; stdcall;
248
    function put_MouseEventsEnabled(on: WordBool): HResult; stdcall;
249
    function put_HatchFillTransparent(fillOff: WordBool): HResult; stdcall;
250
    function get_LocalContextImage(img: IDAImage): HResult; stdcall;
251
    function Reset: HResult; stdcall;
252
    function Clear: HResult; stdcall;
253
    function SaveGraphicsState: HResult; stdcall;
254
    function RestoreGraphicsState: HResult; stdcall;
255
    function Opacity(opac: double): HResult; stdcall;
256
    function OpacityAnim(opac: IDANumber): HResult; stdcall;
257
    function Crop(lowerLeftX, lowerLeftY, upperRightX, upperRightY: double): HResult; stdcall;
258
    function CropPoints(min, max: IDAPoint2): HResult; stdcall;
259
    function Transform(xform: IDATransform2): HResult; stdcall;
260
    function LineColor(clr: IDAColor): HResult; stdcall;
261
    function LineWidth(w: double): HResult; stdcall;
262
    function LineDashStyle(id: TDA_Dash_Style): HResult; stdcall;
263
    function LineEndStyle(id: TDA_End_Style): HResult; stdcall;
264
    function LineJoinStyle(id: TDA_Join_Style): HResult; stdcall;
265
    function BorderColor(clr: IDAColor): HResult; stdcall;
266
    function BorderWidth(w: double): HResult; stdcall;
267
    function BorderDashStyle(id: TDA_Dash_Style): HResult; stdcall;
268
    function BorderEndStyle(obsolete: TDA_End_Style): HResult; stdcall;
269
    function BorderJoinStyle(id: TDA_Join_Style): HResult; stdcall;
270
    function Font(FontFace: TBSTR; sizeInPoints: Longint; Bold, italic,
271
        underline, strikethrough: WordBool): HResult; stdcall;
272
    function TextureFill(obsolete1: IDAImage; obsolete2, obsolete3: double): HResult; stdcall;
273
    function ImageFill(obsolete1: IDAImage; obsolete2, obsolete3: double): HResult; stdcall;
274
    function FillTexture(img: IDAImage): HResult; stdcall;
275
    function FillImage(img: IDAImage): HResult; stdcall;
276
    function FillStyle(ID: Integer): HResult; stdcall;
277
    function FillColor(foreground: IDAColor): HResult; stdcall;
278
    function SecondaryFillColor(val: IDAColor): HResult; stdcall;
279
    function GradientShape(pts: VARIANT): HResult; stdcall;
280
    function GradientExtent(startx, starty, finishx, finishy: double): HResult; stdcall;
281
    function GradientExtentPoints(startColor, stopColor: IDAPoint2): HResult; stdcall;
282
    function GradientRolloffPower(power: double): HResult; stdcall;
283
    function GradientRolloffPowerAnim(power: IDANumber): HResult; stdcall;
284
    function FixedFillScale: HResult; stdcall;
285
    function HorizontalFillScale: HResult; stdcall;
286
    function VerticalFillScale: HResult; stdcall;
287
    function AutoSizeFillScale: HResult; stdcall;
288
    function PolylineEx(numPts: Longint; pts: IDAPoint2): HResult; stdcall;
289
    function Polyline(v: VARIANT): HResult; stdcall;
290
    function PolygonEx(numPts: Longint; pts: IDAPoint2): HResult; stdcall;
291
    function Polygon(v: VARIANT): HResult; stdcall;
292
    function LinePoints(p1, p2: IDAPoint2): HResult; stdcall;
293
    function Line(startX, startY, endX, endY: double): HResult; stdcall;
294
    function ArcRadians(xPos, yPos, startAngle, endAngle, arcWidth, arcHeight: double): HResult; stdcall;
295
    function ArcDegrees(xPos, yPos, startAngle, endAngle, arcWidth, arcHeight: double): HResult; stdcall;
296
    function Oval(xPos, yPos, w, h: double): HResult; stdcall;
297
    function Rect(xPos, yPos, w, h: double): HResult; stdcall;
298
    function RoundRect(xPos, yPos, w, h, arcWidth, arcHeight: double): HResult; stdcall;
299
    function PieRadians(xPos, yPos, startAngle, endAngle, arcWidth, arcHeight: double): HResult; stdcall;
300
    function PieDegrees(xPos, yPos, startAngle, endAngle, arcWidth, arcHeight: double): HResult; stdcall;
301
    function Text(str: TBSTR; xPos, yPos: double): HResult; stdcall;
302
    function TextPoint(str: TBSTR; point: IDAPoint2): HResult; stdcall;
303
    function FillPath(path: IDAPath2): HResult; stdcall;
304
    function DrawPath(path: IDAPath2): HResult; stdcall;
305
    function OverlayImage(img: IDAImage): HResult; stdcall;
306
  end;
307
 
308
  IDAGeometry = interface;
309
  IDAEvent = interface;
310
 
311
  IDAPickableResult = interface(IDispatch)
312
    ['{4A933703-E36F-11d0-9B99-00C04FC2F51D}']
313
    function get_Image(out ppImage: IDAImage): HResult; stdcall;
314
    function get_Geometry(out ppGeometry: IDAGeometry): HResult; stdcall;
315
    function get_PickEvent(out ppPickEvent: IDAEvent): HResult; stdcall;
316
  end;
317
 
318
  IDAUntilNotifier = interface(IDispatch)
319
    ['{3F3DA01A-4705-11d0-8710-00C04FC29D46}']
320
    function Notify(eventData, curRunningBvr: IDABehavior; curView: IDAView;
321
        out ppBvr: IDABehavior): HResult; stdcall;
322
  end;
323
 
324
  IDABoolean = interface(IDABehavior)
325
    ['{C46C1BC0-3C52-11d0-9200-848C1D000000}']
326
    function Extract(var ret_0: WordBool): HResult; stdcall;
327
  end;
328
 
329
  IDATransform3 = interface;
330
 
331
  IDACamera = interface(IDABehavior)
332
    ['{C46C1BE1-3C52-11d0-9200-848C1D000000}']
333
    function Transform(xf_0: IDATransform3; out ret_1: IDACamera): HResult; stdcall;
334
    function Depth(depth_0: double; out ret_1: IDACamera): HResult; stdcall;
335
    function DepthAnim(depth_0: IDANumber; out ret_1: IDACamera): HResult; stdcall;
336
    function DepthResolution(resolution_0: double; out ret_1: IDACamera): HResult; stdcall;
337
    function DepthResolutionAnim(resolution_0: IDANumber; out ret_1: IDACamera): HResult; stdcall;
338
  end;
339
 
340
  IDAColor = interface(IDABehavior)
341
    ['{C46C1BC5-3C52-11d0-9200-848C1D000000}']
342
    function get_Red(out ret_0: IDANumber): HResult; stdcall;
343
    function get_Green(out ret_0: IDANumber): HResult; stdcall;
344
    function get_Blue(out ret_0: IDANumber): HResult; stdcall;
345
    function get_Hue(out ret_0: IDANumber): HResult; stdcall;
346
    function get_Saturation(out ret_0: IDANumber): HResult; stdcall;
347
    function get_Lightness(out ret_0: IDANumber): HResult; stdcall;
348
  end;
349
 
350
  IDAMicrophone = interface;
351
  IDABbox3 =  interface;
352
 
353
  IDAGeometry = interface(IDABehavior)
354
    ['{C46C1BDF-3C52-11d0-9200-848C1D000000}']
355
    function RenderSound(mic_0: IDAMicrophone; out ret_1: IDASound): HResult; stdcall;
356
    function Pickable(out ret_0: IDAPickableResult): HResult; stdcall;
357
    function PickableOccluded(out ret_0: IDAPickableResult): HResult; stdcall;
358
    function Undetectable(out ret_0: IDAGeometry): HResult; stdcall;
359
    function EmissiveColor(col_0: IDAColor; out ret_1: IDAGeometry): HResult; stdcall;
360
    function DiffuseColor(col_0: IDAColor; out ret_1: IDAGeometry): HResult; stdcall;
361
    function SpecularColor(col_0: IDAColor; out ret_1: IDAGeometry): HResult; stdcall;
362
    function SpecularExponent(power_0: double; out ret_1: IDAGeometry): HResult; stdcall;
363
    function SpecularExponentAnim(power_0: IDANumber; out ret_1: IDAGeometry): HResult; stdcall;
364
    function Texture(texture_0: IDAImage; out ret_1: IDAGeometry): HResult; stdcall;
365
    function Opacity(level_0: double; out ret_1: IDAGeometry): HResult; stdcall;
366
    function OpacityAnim(level_0: IDANumber; out ret_1: IDAGeometry): HResult; stdcall;
367
    function Transform(xf_0: IDATransform3; out ret_1: IDAGeometry): HResult; stdcall;
368
    function get_BoundingBox(out ret_0: IDABbox3): HResult; stdcall;
369
    function Render(cam_0: IDACamera; out ret_1: IDAImage): HResult; stdcall;
370
    function LightColor(color_0: IDAColor; out ret_1: IDAGeometry): HResult; stdcall;
371
    function LightAttenuationAnim(constant_0, linear_1, quadratic_2: IDANumber;
372
        out ret_3: IDAGeometry): HResult; stdcall;
373
    function LightAttenuation(constant_0, linear_1, quadratic_2: double;
374
        out ret_3: IDAGeometry): HResult; stdcall;
375
  end;
376
 
377
  IDABbox2 = interface;
378
 
379
  IDAImage = interface(IDABehavior)
380
    ['{C46C1BD3-3C52-11d0-9200-848C1D000000}']
381
    function Pickable(out ret_0: IDAPickableResult): HResult; stdcall;
382
    function PickableOccluded(out ret_0: IDAPickableResult): HResult; stdcall;
383
    function ApplyBitmapEffect(effectToApply_0: IUnknown; firesWhenChanged_1: IDAEvent;
384
        out ret_2: IDAImage): HResult; stdcall;
385
    function get_BoundingBox(out ret_0: IDABbox2): HResult; stdcall;
386
    function Crop(min_0, max_1: IDAPoint2; out ret_2: IDAImage): HResult; stdcall;
387
    function Transform(xf_0: IDATransform2; out ret_1: IDAImage): HResult; stdcall;
388
    function OpacityAnim(opacity_0: IDANumber; out ret_1: IDAImage): HResult; stdcall;
389
    function Opacity(opacity_0: double; out ret_1: IDAImage): HResult; stdcall;
390
    function Undetectable(out ret_0: IDAImage): HResult; stdcall;
391
    function Tile(out ret_0: IDAImage): HResult; stdcall;
392
    function Clip(m_0: IDAMatte; out ret_1: IDAImage): HResult; stdcall;
393
    function MapToUnitSquare(out ret_0: IDAImage): HResult; stdcall;
394
    function ClipPolygonImageEx(points_0size: Longint; points_0: IDAPoint2;
395
        out ret_1: IDAImage): HResult; stdcall;
396
    function ClipPolygonImage(points_0: Variant; out ret_1: IDAImage): HResult; stdcall;
397
  end;
398
 
399
  IDAMatte = interface(IDABehavior)
400
    ['{C46C1BD1-3C52-11d0-9200-848C1D000000}']
401
    function Transform(xf_0: IDATransform2; out ret_1: IDAMatte): HResult; stdcall;
402
  end;
403
 
404
  IDAMicrophone = interface(IDABehavior)
405
    ['{C46C1BE5-3C52-11d0-9200-848C1D000000}']
406
    function Transform(xf_0: IDATransform3; out ret_1: IDAMicrophone): HResult; stdcall;
407
  end;
408
 
409
  IDAMontage = interface(IDABehavior)
410
    ['{C46C1BD5-3C52-11d0-9200-848C1D000000}']
411
    function Render(out ret_0: IDAImage): HResult; stdcall;
412
  end;
413
 
414
  IDAPath2 = interface(IDABehavior)
415
    ['{C46C1BCF-3C52-11d0-9200-848C1D000000}']
416
    function Transform(xf_0: IDATransform2; out ret_1: IDAPath2): HResult; stdcall;
417
    function BoundingBox(style_0: IDALineStyle; out ret_1: IDABbox2): HResult; stdcall;
418
    function Fill(border_0: IDALineStyle; fill_1: IDAImage; out ret_2: IDAImage): HResult; stdcall;
419
    function Draw(border_0: IDALineStyle; out ret_2: IDAImage): HResult; stdcall;
420
    function Close(out ret_0: IDAPath2): HResult; stdcall;
421
  end;
422
 
423
  IDAPoint2 = interface(IDABehavior)
424
    ['{C46C1BC7-3C52-11d0-9200-848C1D000000}']
425
    function AnimateControlPosition(propertyPath_0, scriptingLanguage_1: TBSTR;
426
        invokeAsMethod_2: WordBool; minUpdateInterval_3: double; out ret_4: IDAPoint2): HResult; stdcall;
427
    function AnimateControlPositionPixel(propertyPath_0, scriptingLanguage_1: TBSTR;
428
        invokeAsMethod_2: WordBool; minUpdateInterval_3: double; out ret_4: IDAPoint2): HResult; stdcall;
429
    function get_X(out ret_0: IDANumber): HResult; stdcall;
430
    function get_Y(out ret_0: IDANumber): HResult; stdcall;
431
    function get_PolarCoordAngle(out ret_0: IDANumber): HResult; stdcall;
432
    function get_PolarCoordLength(out ret_0: IDANumber): HResult; stdcall;
433
    function Transform(xf_0: IDATransform2; out ret_1: IDAPoint2): HResult; stdcall;
434
  end;
435
 
436
  IDAPoint3 = interface(IDABehavior)
437
    ['{C46C1BD7-3C52-11d0-9200-848C1D000000}']
438
    function Project(cam_0: IDACamera; out ret_1: IDAPoint2): HResult; stdcall;
439
    function get_X(out ret_0: IDANumber): HResult; stdcall;
440
    function get_Y(out ret_0: IDANumber): HResult; stdcall;
441
    function get_Z(out ret_0: IDANumber): HResult; stdcall;
442
    function get_SphericalCoordXYAngle(out ret_0: IDANumber): HResult; stdcall;
443
    function get_SphericalCoordYZAngle(out ret_0: IDANumber): HResult; stdcall;
444
    function get_SphericalCoordLength(out ret_0: IDANumber): HResult; stdcall;
445
    function Transform(xf_0: IDATransform3; out ret_1: IDAPoint3): HResult; stdcall;
446
  end;
447
 
448
  IDASound = interface(IDABehavior)
449
    ['{C46C1BE3-3C52-11d0-9200-848C1D000000}']
450
    function PhaseAnim(phaseAmt_0: IDANumber; out ret_1: IDASound): HResult; stdcall;
451
    function Phase(phaseAmt_0: double; out ret_1: IDASound): HResult; stdcall;
452
    function RateAnim(pitchShift_0: IDANumber; out ret_1: IDASound): HResult; stdcall;
453
    function Rate(pitchShift_0: double; out ret_1: IDASound): HResult; stdcall;
454
    function PanAnim(panAmt_0: IDANumber; out ret_1: IDASound): HResult; stdcall;
455
    function Pan(panAmt_0: double; out ret_1: IDASound): HResult; stdcall;
456
    function GainAnim(gainAmt_0: IDANumber; out ret_1: IDASound): HResult; stdcall;
457
    function Gain(gainAmt_0: double; out ret_1: IDASound): HResult; stdcall;
458
    function Loop(out ret_0: IDASound): HResult; stdcall;
459
  end;
460
 
461
  IDAString = interface(IDABehavior)
462
    ['{C46C1BC3-3C52-11d0-9200-848C1D000000}']
463
    function Extract(var ret_0: TBSTR): HResult; stdcall;
464
    function AnimateProperty(propertyPath_0, scriptingLanguage_1: TBSTR;
465
        invokeAsMethod_2: WordBool; minUpdateInterval_3: double; out ret_4: IDAString): HResult; stdcall;
466
  end;
467
 
468
  IDATransform2 = interface(IDABehavior)
469
    ['{C46C1BCB-3C52-11d0-9200-848C1D000000}']
470
    function Inverse(out ret_0: IDATransform2): HResult; stdcall;
471
    function get_IsSingular(out ret_0: IDABoolean): HResult; stdcall;
472
  end;
473
 
474
  IDATransform3 = interface(IDABehavior)
475
    ['{C46C1BDB-3C52-11d0-9200-848C1D000000}']
476
    function Inverse(out ret_0: IDATransform3): HResult; stdcall;
477
    function get_IsSingular(out ret_0: IDABoolean): HResult; stdcall;
478
    function ParallelTransform2(out ret_0: IDATransform2): HResult; stdcall;
479
  end;
480
 
481
  IDAVector2 = interface(IDABehavior)
482
    ['{C46C1BC9-3C52-11d0-9200-848C1D000000}']
483
    function get_Length(out ret_0: IDANumber): HResult; stdcall;
484
    function get_LengthSquared(out ret_0: IDANumber): HResult; stdcall;
485
    function Normalize(out ret_0: IDAVector2): HResult; stdcall;
486
    function MulAnim(scalar_0: IDANumber; out ret_1: IDAVector2): HResult; stdcall;
487
    function Mul(scalar_0: double; out ret_1: IDAVector2): HResult; stdcall;
488
    function DivAnim(scalar_0: IDANumber; out ret_1: IDAVector2): HResult; stdcall;
489
    function Div_(scalar_0: double; out ret_1: IDAVector2): HResult; stdcall;
490
    function get_X(out ret_0: IDANumber): HResult; stdcall;
491
    function get_Y(out ret_0: IDANumber): HResult; stdcall;
492
    function get_PolarCoordAngle(out ret_0: IDANumber): HResult; stdcall;
493
    function get_PolarCoordLength(out ret_0: IDANumber): HResult; stdcall;
494
    function Transform(xf_0: IDATransform2; out ret_1: IDAVector2): HResult; stdcall;
495
  end;
496
 
497
  IDAVector3 = interface(IDABehavior)
498
    ['{C46C1BD9-3C52-11d0-9200-848C1D000000}']
499
    function get_Length(out ret_0: IDANumber): HResult; stdcall;
500
    function get_LengthSquared(out ret_0: IDANumber): HResult; stdcall;
501
    function Normalize(out ret_0: IDAVector3): HResult; stdcall;
502
    function MulAnim(scalar_0: IDANumber; out ret_1: IDAVector3): HResult; stdcall;
503
    function Mul(scalar_0: double; out ret_1: IDAVector3): HResult; stdcall;
504
    function DivAnim(scalar_0: IDANumber; out ret_1: IDAVector3): HResult; stdcall;
505
    function Div_(scalar_0: double; out ret_1: IDAVector3): HResult; stdcall;
506
    function get_X(out ret_0: IDANumber): HResult; stdcall;
507
    function get_Y(out ret_0: IDANumber): HResult; stdcall;
508
    function get_Z(out ret_0: IDANumber): HResult; stdcall;
509
    function get_SphericalCoordXYAngle(out ret_0: IDANumber): HResult; stdcall;
510
    function get_SphericalCoordYZAngle(out ret_0: IDANumber): HResult; stdcall;
511
    function get_SphericalCoordLength(out ret_0: IDANumber): HResult; stdcall;
512
    function Transform(xf_0: IDATransform3; out ret_1: IDAVector3): HResult; stdcall;
513
  end;
514
 
515
  IDAFontStyle = interface(IDABehavior)
516
    ['{25B0F91D-D23D-11d0-9B85-00C04FC2F51D}']
517
    function Bold(out ret_0: IDAFontStyle): HResult; stdcall;
518
    function Italic(out ret_0: IDAFontStyle): HResult; stdcall;
519
    function Underline(out ret_0: IDAFontStyle): HResult; stdcall;
520
    function Strikethrough(out ret_0: IDAFontStyle): HResult; stdcall;
521
    function AntiAliasing(aaStyle_0: double; out ret_1: IDAFontStyle): HResult; stdcall;
522
    function Color(col_0: IDAColor; out ret_1: IDAFontStyle): HResult; stdcall;
523
    function FamilyAnim(face_0: IDAString; out ret_1: IDAFontStyle): HResult; stdcall;
524
    function Family(face_0: TBSTR; out ret_1: IDAFontStyle): HResult; stdcall;
525
    function SizeAnim(size_0: IDANumber; out ret_1: IDAFontStyle): HResult; stdcall;
526
    function Size(size_0: double; out ret_1: IDAFontStyle): HResult; stdcall;
527
    function Weight(weight_0: double; out ret_1: IDAFontStyle): HResult; stdcall;
528
    function WeightAnim(weight_0: IDANumber; out ret_1: IDAFontStyle): HResult; stdcall;
529
  end;
530
 
531
  IDAEndStyle = interface;
532
  IDAJoinStyle = interface;
533
  IDADashStyle = interface;
534
 
535
  IDALineStyle = interface(IDABehavior)
536
    ['{C46C1BF1-3C52-11d0-9200-848C1D000000}']
537
    function End_(sty_0: IDAEndStyle; out ret_1: IDALineStyle): HResult; stdcall;
538
    function Join(sty_0: IDAJoinStyle; out ret_1: IDALineStyle): HResult; stdcall;
539
    function Dash(sty_0: IDADashStyle; out ret_1: IDALineStyle): HResult; stdcall;
540
    function WidthAnim(sty_0: IDANumber; out ret_1: IDALineStyle): HResult; stdcall;
541
    function width(sty_0: double; out ret_1: IDALineStyle): HResult; stdcall;
542
    function AntiAliasing(aaStyle_0: double; out ret_1: IDALineStyle): HResult; stdcall;
543
    function Detail(out ret_0: IDALineStyle): HResult; stdcall;
544
    function Color(clr_0: IDAColor; out ret_1: IDALineStyle): HResult; stdcall;
545
  end;
546
 
547
  IDAEndStyle = interface(IDABehavior)
548
    ['{C46C1BEB-3C52-11d0-9200-848C1D000000}']
549
  end;
550
 
551
  IDAJoinStyle = interface(IDABehavior)
552
    ['{C46C1BED-3C52-11d0-9200-848C1D000000}']
553
  end;
554
 
555
  IDADashStyle = interface(IDABehavior)
556
    ['{C46C1BEF-3C52-11d0-9200-848C1D000000}']
557
  end;
558
 
559
  IDABbox2 = interface(IDABehavior)
560
    ['{C46C1BCD-3C52-11d0-9200-848C1D000000}']
561
    function get_Min(out ret_0: IDAPoint2): HResult; stdcall;
562
    function get_Max(out ret_0: IDAPoint2): HResult; stdcall;
563
  end;
564
 
565
  IDABbox3 = interface(IDABehavior)
566
    ['{C46C1BDD-3C52-11d0-9200-848C1D000000}']
567
    function get_Min(out ret_0: IDAPoint3): HResult; stdcall;
568
    function get_Max(out ret_0: IDAPoint3): HResult; stdcall;
569
  end;
570
 
571
  IDAPair = interface(IDABehavior)
572
    ['{C46C1BF3-3C52-11d0-9200-848C1D000000}']
573
    function get_First(out ret_0: IDABehavior): HResult; stdcall;
574
    function get_Second(out ret_0: IDABehavior): HResult; stdcall;
575
  end;
576
 
577
  IDAEvent = interface(IDABehavior)
578
    ['{50B4791E-4731-11d0-8912-00C04FC2A0CA}']
579
    function Notify(notifier_0: IDAUntilNotifier; out ret_1: IDAEvent): HResult; stdcall;
580
    function Snapshot(b_0: IDABehavior; out ret_1: IDAEvent): HResult; stdcall;
581
    function AttachData(data_0: IDABehavior; out ret_1: IDAEvent): HResult; stdcall;
582
    function ScriptCallback(scriptlet_0, language_1: TBSTR; out ret_2: IDAEvent): HResult; stdcall;
583
  end;
584
 
585
  IDAArray = interface(IDABehavior)
586
    ['{D17506C2-6B26-11d0-8914-00C04FC2A0CA}']
587
    function NthAnim(index_0: IDANumber; out ret_1: IDABehavior): HResult; stdcall;
588
    function Length(out ret_0: IDANumber): HResult; stdcall;
589
  end;
590
 
591
  IDATuple = interface(IDABehavior)
592
    ['{5DFB2650-9668-11d0-B17B-00C04FC2A0CA}']
593
    function Nth(index_0: Longint; out ret_1: IDABehavior): HResult; stdcall;
594
    function get_Length(var ret_0: Longint): HResult; stdcall;
595
  end;
596
 
597
  IDAUserData = interface(IDABehavior)
598
    ['{AF868305-AB0B-11d0-876A-00C04FC29D46}']
599
    function get_Data(out ret_0: IUnknown): HResult; stdcall;
600
  end;
601
 
602
  IDAPreferences = interface(IDispatch)
603
    ['{69B5BC70-9B19-11d0-9B60-00C04FC2F51D}']
604
    function PutPreference(preferenceName: TBSTR; value: Variant): HResult; stdcall;
605
    function GetPreference(preferenceName: TBSTR; var value: Variant): HResult; stdcall;
606
    function Propagate: HResult; stdcall;
607
  end;
608
 
609
  IDASite = interface(IDispatch)
610
    ['{45393DF0-54B9-11cf-92A2-00AA00B8A733}']
611
    function SetStatusText(StatusText: TBSTR): HResult; stdcall;
612
    function ReportError(hr: HResult; ErrorText: TBSTR): HResult; stdcall;
613
    function ReportGC(bStarting: WordBool): HResult; stdcall;
614
  end;
615
 
616
  IDAImportationResult = interface(IDispatch)
617
    ['{4A933702-E36F-11d0-9B99-00C04FC2F51D}']
618
    function get_Image(out ppImage: IDAImage): HResult; stdcall;
619
    function get_Sound(out ppSound: IDASound): HResult; stdcall;
620
    function get_Geometry(out ppGeometry: IDAGeometry): HResult; stdcall;
621
    function get_Duration(out ppDuration: IDANumber): HResult; stdcall;
622
    function get_CompletionEvent(out ppCompletionEvent: IDAEvent): HResult; stdcall;
623
    function get_Progress(out ppProgress: IDANumber): HResult; stdcall;
624
    function get_Size(out ppSizeInBytes: IDANumber): HResult; stdcall;
625
  end;
626
 
627
  IDAStatics = interface(IDispatch)
628
    ['{542FB452-5003-11cf-92A2-00AA00B8A733}']
629
    function get_VersionString(var str: TBSTR): HResult; stdcall;
630
    function get_Site(out pSite: IDASite): HResult; stdcall;
631
    function put_Site(pSite: IDASite): HResult; stdcall;
632
    function put_ClientSite(pClientSite: IOleClientSite): HResult; stdcall;
633
    function get_ClientSite(out pClientSite: IOleClientSite): HResult; stdcall;
634
    function put_PixelConstructionMode(bMode: WordBool): HResult; stdcall;
635
    function get_PixelConstructionMode(var bMode: WordBool): HResult; stdcall;
636
    function TriggerEvent(event: IDAEvent; data: IDABehavior): HResult; stdcall;
637
    function NewDrawingSurface(out pds: IDADrawingSurface): HResult; stdcall;
638
    function ImportMovie(url: TBSTR; out ppResult: IDAImportationResult): HResult; stdcall;
639
    function ImportMovieAsync(url: TBSTR; pImageStandIn: IDAImage; pSoundStandIn: IDASound;
640
        out ppResult: IDAImportationResult): HResult; stdcall;
641
    function ImportImage(url: TBSTR; out ppImage: IDAImage): HResult; stdcall;
642
    function ImportImageAsync(url: TBSTR; pImageStandIn: IDAImage;
643
        out ppResult: IDAImportationResult): HResult; stdcall;
644
    function ImportImageColorKey(url: TBSTR; colorKeyRed, colorKeyGreen, colorKeyBlue: Byte;
645
        out ppImage: IDAImage): HResult; stdcall;
646
    function ImportImageAsyncColorKey(url: TBSTR; pImageStandIn: IDAImage;
647
        colorKeyRed, colorKeyGreen, colorKeyBlue: Byte;
648
        out ppResult: IDAImportationResult): HResult; stdcall;
649
    function ImportSound(url: TBSTR; out ppResult: IDAImportationResult): HResult; stdcall;
650
    function ImportSoundAsync(url: TBSTR; pSoundStandIn: IDASound;
651
        out ppResult: IDAImportationResult): HResult; stdcall;
652
    function ImportGeometry(url: TBSTR; out ppGeometry: IDAGeometry): HResult; stdcall;
653
    function ImportGeometryAsync(url: TBSTR; pGeoStandIn: IDAGeometry;
654
        out ppResult: IDAImportationResult): HResult; stdcall;
655
    function ImportDirectDrawSurface(dds: IDirectDrawSurface; updateEvent: IDAEvent;
656
        out ppImage: IDAImage): HResult; stdcall;
657
    function Cond(c, i, e: IDABoolean; out pCondBvr: IDABoolean): HResult; stdcall;
658
    function DAArrayEx(s: Longint; pBvrs: IDABehavior; out bvr: IDAArray): HResult; stdcall;
659
    function DAArray(bvrs: Variant; out bvr: IDAArray): HResult; stdcall;
660
    function DATupleEx(s: Longint; pBvrs: IDABehavior; out bvr: IDATuple): HResult; stdcall;
661
    function DATuple(bvrs: Variant; out bvr: IDATuple): HResult; stdcall;
662
    function ModifiableBehavior(orig: IDABehavior; out bvr: IDABehavior): HResult; stdcall;
663
    function UninitializedArray(typeTmp: IDAArray; out bvr: IDAArray): HResult; stdcall;
664
    function UninitializedTuple(typeTmp: IDATuple; out bvr: IDATuple): HResult; stdcall;
665
    function NumberBSplineEx(degree: Integer; numKnots: Longint; knots: IDANumber;
666
        numPts: Longint; ctrlPts: IDANumber; numWts: Longint; weights: IDANumber;
667
        evaluator: IDANumber; out bvr: IDANumber): HResult; stdcall;
668
    function NumberBSpline(degree: Integer; knots, CtrlPts, weights: Variant;
669
        evaluator: IDANumber; out bvr: IDANumber): HResult; stdcall;
670
    function Point2BSplineEx(degree: Integer; numKnots: Longint; knots: IDANumber;
671
        numPts: Longint; ctrlPts: IDAPoint2; numWts: Longint; weights: IDANumber;
672
        evaluator: IDANumber; out bvr: IDAPoint2): HResult; stdcall;
673
    function Point2BSpline(degree: Integer; knots, CtrlPts, weights: Variant;
674
        evaluator: IDANumber; out bvr: IDAPoint2): HResult; stdcall;
675
    function Point3BSplineEx(degree: Integer; numKnots: Longint; knots: IDANumber;
676
        numPts: Longint; ctrlPts: IDAPoint3; numWts: Longint; weights: IDANumber;
677
        evaluator: IDANumber; out bvr: IDAPoint3): HResult; stdcall;
678
    function Point3BSpline(degree: Integer; knots, CtrlPts, weights: Variant;
679
        evaluator: IDANumber; out bvr: IDAPoint3): HResult; stdcall;
680
    function Vector2BSplineEx(degree: Integer; numKnots: Longint; knots: IDANumber;
681
        numPts: Longint; ctrlPts: IDAVector2; numWts: Longint; weights: IDANumber;
682
        evaluator: IDANumber; out bvr: IDAVector2): HResult; stdcall;
683
    function Vector2BSpline(degree: Integer; knots, CtrlPts, weights: Variant;
684
        evaluator: IDANumber; out bvr: IDAVector2): HResult; stdcall;
685
    function Vector3BSplineEx(degree: Integer; numKnots: Longint; knots: IDANumber;
686
        numPts: Longint; ctrlPts: IDAVector3; numWts: Longint; weights: IDANumber;
687
        evaluator: IDANumber; out bvr: IDAVector3): HResult; stdcall;
688
    function Vector3BSpline(degree: Integer; knots, CtrlPts, weights: Variant;
689
        evaluator: IDANumber; out bvr: IDAVector3): HResult; stdcall;
690
    function Pow(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
691
    function Abs(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
692
    function Sqrt(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
693
    function Floor(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
694
    function Round(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
695
    function Ceiling(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
696
    function Asin(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
697
    function Acos(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
698
    function Atan(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
699
    function Sin(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
700
    function Cos(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
701
    function Tan(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
702
    function Exp(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
703
    function Ln(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
704
    function Log10(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
705
    function ToDegrees(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
706
    function ToRadians(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
707
    function Mod_(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
708
    function Atan2(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
709
    function Add(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
710
    function Sub(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
711
    function Mul(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
712
    function Div_(a_0, b_1: IDANumber; out ret_2: IDANumber): HResult; stdcall;
713
    function LT(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
714
    function LTE(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
715
    function GT(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
716
    function GTE(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
717
    function EQ(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
718
    function NE(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
719
    function Neg(a_0, b_1: IDANumber; out ret_2: IDABoolean): HResult; stdcall;
720
    function InterpolateAnim(from_0, to_1, duration_2: IDANumber; out ret_3: IDANumber): HResult; stdcall;
721
    function Interpolate(from_0, to_1, duration_2: double; out ret_3: IDANumber): HResult; stdcall;
722
    function SlowInSlowOutAnim(from_0, to_1, duration_2, sharpness_3: IDANumber; out ret_3: IDANumber): HResult; stdcall;
723
    function SlowInSlowOut(from_0, to_1, duration_2, sharpness_3: double; out ret_3: IDANumber): HResult; stdcall;
724
    function SoundSource(snd_0: IDASound; out ret_1: IDAGeometry): HResult; stdcall;
725
    function Mix(left_0, right_1: IDASound; out ret_2: IDASound): HResult; stdcall;
726
    function And_(a_0, b_1: IDABoolean; out ret_2: IDABoolean): HResult; stdcall;
727
    function Or_(a_0, b_1: IDABoolean; out ret_2: IDABoolean): HResult; stdcall;
728
    function Not_(a_0: IDABoolean; out ret_1: IDABoolean): HResult; stdcall;
729
    function Integral(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
730
    function Derivative(a_0: IDANumber; out ret_1: IDANumber): HResult; stdcall;
731
    function IntegralVector2(v_0: IDAVector2; out ret_1: IDAVector2): HResult; stdcall;
732
    function IntegralVector3(v_0: IDAVector3; out ret_1: IDAVector3): HResult; stdcall;
733
    function DerivativeVector2(v_0: IDAVector2; out ret_1: IDAVector2): HResult; stdcall;
734
    function DerivativeVector3(v_0: IDAVector3; out ret_1: IDAVector3): HResult; stdcall;
735
    function DerivativePoint2(v_0: IDAVector2; out ret_1: IDAVector2): HResult; stdcall;
736
    function DerivativePoint3(v_0: IDAVector3; out ret_1: IDAVector3): HResult; stdcall;
737
    function KeyState(n_0: IDANumber; out ret_1: IDABoolean): HResult; stdcall;
738
    function KeyUp(arg_0: Longint; out ret_1: IDAEvent): HResult; stdcall;
739
    function KeyDown(arg_0: Longint; out ret_1: IDAEvent): HResult; stdcall;
740
    function DANumber(num_0: Longint; out ret_1: IDANumber): HResult; stdcall;
741
    function DAString(str_0: TBSTR; out ret_1: IDAString): HResult; stdcall;
742
    function DABoolean(num_0: WordBool; out ret_1: IDABoolean): HResult; stdcall;
743
    function SeededRandom(arg_0: double; out ret_1: IDANumber): HResult; stdcall;
744
    function get_MousePosition(out ret_0: IDAPoint2): HResult; stdcall;
745
    function get_LeftButtonState(out ret_0: IDABoolean): HResult; stdcall;
746
    function get_RightButtonState(out ret_0: IDABoolean): HResult; stdcall;
747
    function get_DATrue(out ret_0: IDABoolean): HResult; stdcall;
748
    function get_DAFalse(out ret_0: IDABoolean): HResult; stdcall;
749
    function get_LocalTime(out ret_0: IDANumber): HResult; stdcall;
750
    function get_GlobalTime(out ret_0: IDANumber): HResult; stdcall;
751
    function get_Pixel(out ret_0: IDANumber): HResult; stdcall;
752
    function UserData(data_0: IUnknown; out ret_1: IDAUserData): HResult; stdcall;
753
    function UntilNotify(b0_0: IDABehavior; event_1: IDAEvent; notifier_2: IDAUntilNotifier;
754
        out ret_3: IDABehavior): HResult; stdcall;
755
    function Until_(b0_0: IDABehavior; event_1: IDAEvent; notifier_2: IDAUntilNotifier;
756
        out ret_3: IDABehavior): HResult; stdcall;
757
    function UntilEx(b0_0: IDABehavior; event_1: IDAEvent; out ret_2: IDABehavior): HResult; stdcall;
758
    function Sequence(s1_0, s2_1: IDABehavior; out ret_2: IDABehavior): HResult; stdcall;
759
    function FollowPath(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
760
    function FollowPathAngle(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
761
    function FollowPathAngleUpright(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
762
    function FollowPathEval(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
763
    function FollowPathAngleEval(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
764
    function FollowPathAngleUprightEval(path_0: IDAPath2; duration_1: double; out ret_2: IDATransform2): HResult; stdcall;
765
    function FollowPathAnim(obsoleted1_0: IDAPath2; obsoleted2_1: IDANumber; out ret_2: IDATransform2): HResult; stdcall;
766
    function FollowPathAngleAnim(obsoleted1_0: IDAPath2; obsoleted2_1: IDANumber; out ret_2: IDATransform2): HResult; stdcall;
767
    function FollowPathAngleUprightAnim(obsoleted1_0: IDAPath2; obsoleted2_1: IDANumber; out ret_2: IDATransform2): HResult; stdcall;
768
    function ConcatString(s1_0, s2_1: IDAString; out ret_2: IDAString): HResult; stdcall;
769
    function PerspectiveCamera(focalDist_0, nearClip_1: double; out ret_2: IDACamera): HResult; stdcall;
770
    function PerspectiveCameraAnim(focalDist_0, nearClip_1: IDANumber; out ret_2: IDACamera): HResult; stdcall;
771
    function ParallelCamera(nearClip_0: double; out ret_1: IDACamera): HResult; stdcall;
772
    function ParallelCameraAnim(nearClip_0: IDANumber; out ret_1: IDACamera): HResult; stdcall;
773
    function ColorRgbAnim(red_0, green_1, blue_2: IDANumber; out ret_3: IDAColor): HResult; stdcall;
774
    function ColorRgb(red_0, green_1, blue_2: double; out ret_3: IDAColor): HResult; stdcall;
775
    function ColorRgb255(red_0, green_1, blue_2: SmallInt; out ret_3: IDAColor): HResult; stdcall;
776
    function ColorHsl(hue_0, saturation_1, lum_2: double; out ret_3: IDAColor): HResult; stdcall;
777
    function ColorHslAnim(hue_0, saturation_1, lum_2: IDANumber; out ret_3: IDAColor): HResult; stdcall;
778
    function get_Red(out ret_0: IDAColor): HResult; stdcall;
779
    function get_Green(out ret_0: IDAColor): HResult; stdcall;
780
    function get_Blue(out ret_0: IDAColor): HResult; stdcall;
781
    function get_Cyan(out ret_0: IDAColor): HResult; stdcall;
782
    function get_Magenta(out ret_0: IDAColor): HResult; stdcall;
783
    function get_Yellow(out ret_0: IDAColor): HResult; stdcall;
784
    function get_Black(out ret_0: IDAColor): HResult; stdcall;
785
    function get_White(out ret_0: IDAColor): HResult; stdcall;
786
    function get_Aqua(out ret_0: IDAColor): HResult; stdcall;
787
    function get_Fuchsia(out ret_0: IDAColor): HResult; stdcall;
788
    function get_Gray(out ret_0: IDAColor): HResult; stdcall;
789
    function get_Lime(out ret_0: IDAColor): HResult; stdcall;
790
    function get_Maroon(out ret_0: IDAColor): HResult; stdcall;
791
    function get_Navy(out ret_0: IDAColor): HResult; stdcall;
792
    function get_Olive(out ret_0: IDAColor): HResult; stdcall;
793
    function get_Purple(out ret_0: IDAColor): HResult; stdcall;
794
    function get_Silver(out ret_0: IDAColor): HResult; stdcall;
795
    function get_Teal(out ret_0: IDAColor): HResult; stdcall;
796
    function Predicate(b_0: IDABoolean; out ret_1: IDAEvent): HResult; stdcall;
797
    function NotEvent(event_0: IDAEvent; out ret_1: IDAEvent): HResult; stdcall;
798
    function AndEvent(e1_0, e2_1: IDAEvent; out ret_2: IDAEvent): HResult; stdcall;
799
    function OrEvent(e1_0, e2_1: IDAEvent; out ret_2: IDAEvent): HResult; stdcall;
800
    function ThenEvent(e1_0, e2_1: IDAEvent; out ret_2: IDAEvent): HResult; stdcall;
801
    function get_LeftButtonDown(out ret_0: IDAEvent): HResult; stdcall;
802
    function get_LeftButtonUp(out ret_0: IDAEvent): HResult; stdcall;
803
    function get_RightButtonDown(out ret_0: IDAEvent): HResult; stdcall;
804
    function get_RightButtonUp(out ret_0: IDAEvent): HResult; stdcall;
805
    function get_Always(out ret_0: IDAEvent): HResult; stdcall;
806
    function get_Never(out ret_0: IDAEvent): HResult; stdcall;
807
    function TimerAnim(n_0: IDANumber; out ret_1: IDAEvent): HResult; stdcall;
808
    function Timer(n_0: double; out ret_1: IDAEvent): HResult; stdcall;
809
    function AppTriggeredEvent(out ret_0: IDAEvent): HResult; stdcall;
810
    function ScriptCallback(obsolete1_0: TBSTR; obsolete2_1: IDAEvent; obsolete3_2: TBSTR; out ret_3: IDAEvent): HResult; stdcall;
811
    function get_EmptyGeometry(out ret_0: IDAGeometry): HResult; stdcall;
812
    function UnionGeometry(g1_0, g2_1: IDAGeometry; out ret_2: IDAGeometry): HResult; stdcall;
813
    function UnionGeometryArrayEx(imgs_0size: Longint; imgs_0: IDAGeometry; out ret_1: IDAGeometry): HResult; stdcall;
814
    function UnionGeometryArray(imgs_0: Variant; out ret_1: IDAGeometry): HResult; stdcall;
815
    function get_EmptyImage(out ret_0: IDAImage): HResult; stdcall;
816
    function get_DetectableEmptyImage(out ret_0: IDAImage): HResult; stdcall;
817
    function SolidColorImage(col_0: IDAColor; out ret_1: IDAImage): HResult; stdcall;
818
    function GradientPolygonEx(points_0size: Longint; points_0: IDAPoint2;
819
        colors_1size: Longint; colors_1: IDAColor; out ret_2: IDAImage): HResult; stdcall;
820
    function GradientPolygon(points_0, colors_1: Variant; out ret_2: IDAImage): HResult; stdcall;
821
    function RadialGradientPolygonEx(inner_0, outer_1: IDAColor; points_2size: Longint;
822
        points_2 : IDAPoint2; fallOff_3: double; out ret_4: IDAImage): HResult; stdcall;
823
    function RadialGradientPolygon(inner_0, outer_1: IDAColor; points_2: Variant; fallOff_3: double;
824
        out ret_4: IDAImage): HResult; stdcall;
825
    function RadialGradientPolygonAnimEx(inner_0, outer_1: IDAColor; points_2size: Longint; points_2: IDAPoint2; fallOff_3: double;
826
        out ret_4: IDAImage): HResult; stdcall;
827
    function RadialGradientPolygonAnim(inner_0, outer_1: IDAColor; points_2: Variant; fallOff_3: double;
828
        out ret_4: IDAImage): HResult; stdcall;
829
    function GradientSquare(lowerLeft_0, upperLeft_1, upperRight_2, lowerRight_3: IDAColor;
830
        out ret_4: IDAImage): HResult; stdcall;
831
    function RadialGradientSquare(inner_0, outer_1: IDAColor; fallOff_2: double; out ret_3: IDAImage): HResult; stdcall;
832
    function RadialGradientSquareAnim(inner_0, outer_1: IDAColor; fallOff_2: IDANumber; out ret_3: IDAImage): HResult; stdcall;
833
    function RadialGradientRegularPoly(inner_0, outer_1: IDAColor; numEdges_2, fallOff_3: double; out ret_4: IDAImage): HResult; stdcall;
834
    function RadialGradientRegularPolyAnim(inner_0, outer_1: IDAColor; numEdges_2, fallOff_3: IDANumber; out ret_4: IDAImage): HResult; stdcall;
835
    function GradientHorizontal(start_0, stop_1: IDAColor; fallOff_2: double; out ret_3: IDAImage): HResult; stdcall;
836
    function GradientHorizontalAnim(start_0, stop_1: IDAColor; fallOff_2: IDANumber; out ret_3: IDAImage): HResult; stdcall;
837
    function HatchHorizontal(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
838
    function HatchHorizontalAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
839
    function HatchVertical(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
840
    function HatchVerticalAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
841
    function HatchForwardDiagonal(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
842
    function HatchForwardDiagonalAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
843
    function HatchBackwardDiagonal(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
844
    function HatchBackwardDiagonalAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
845
    function HatchCross(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
846
    function HatchCrossAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
847
    function HatchDiagonalCross(lineClr_0: IDAColor; spacing_1: double; out ret_2: IDAImage): HResult; stdcall;
848
    function HatchDiagonalCrossAnim(lineClr_0: IDAColor; spacing_1: IDANumber; out ret_2: IDAImage): HResult; stdcall;
849
    function Overlay(top_0, bottom_1: IDAImage; out ret_2: IDAImage): HResult; stdcall;
850
    function OverlayArrayEx(imgs_0size: Longint; imgs_0: IDAImage; out ret_1: IDAImage): HResult; stdcall;
851
    function OverlayArray(imgs_0: Variant; ret_1: IDAImage): HResult; stdcall;
852
    function get_AmbientLight(out ret_0: IDAGeometry): HResult; stdcall;
853
    function get_DirectionalLight(out ret_0: IDAGeometry): HResult; stdcall;
854
    function get_PointLight(out ret_0: IDAGeometry): HResult; stdcall;
855
    function SpotLightAnim(fullcone_0, cutoff_1: IDANumber; out ret_2: IDAGeometry): HResult; stdcall;
856
    function SpotLight(fullcone_0: IDANumber; cutoff_1: double; out ret_2: IDAGeometry): HResult; stdcall;
857
    function get_DefaultLineStyle(out ret_0: IDALineStyle): HResult; stdcall;
858
    function get_EmptyLineStyle(out ret_0: IDALineStyle): HResult; stdcall;
859
    function get_JoinStyleBevel(out ret_0: IDAJoinStyle): HResult; stdcall;
860
    function get_JoinStyleRound(out ret_0: IDAJoinStyle): HResult; stdcall;
861
    function get_JoinStyleMiter(out ret_0: IDAJoinStyle): HResult; stdcall;
862
    function get_EndStyleFlat(out ret_0: IDAEndStyle): HResult; stdcall;
863
    function get_EndStyleSquare(out ret_0: IDAEndStyle): HResult; stdcall;
864
    function get_EndStyleRound(out ret_0: IDAEndStyle): HResult; stdcall;
865
    function get_DashStyleSolid(out ret_0: IDADashStyle): HResult; stdcall;
866
    function get_DashStyleDashed(out ret_0: IDADashStyle): HResult; stdcall;
867
    function get_DefaultMicrophone(out ret_0: IDAMicrophone): HResult; stdcall;
868
    function get_OpaqueMatte(out ret_0: IDAMatte): HResult; stdcall;
869
    function get_ClearMatte(out ret_0: IDAMatte): HResult; stdcall;
870
    function UnionMatte(m1_0, m2_1: IDAMatte; out ret_2: IDAMatte): HResult; stdcall;
871
    function IntersectMatte(m1_0, m2_1: IDAMatte; out ret_2: IDAMatte): HResult; stdcall;
872
    function DifferenceMatte(m1_0, m2_1: IDAMatte; out ret_2: IDAMatte): HResult; stdcall;
873
    function FillMatte(p_0: IDAPath2; out ret_1: IDAMatte): HResult; stdcall;
874
    function TextMatte(str_0: IDAString; fs_1: IDAFontStyle; out ret_2: IDAMatte): HResult; stdcall;
875
    function get_EmptyMontage(out ret_0: IDAMontage): HResult; stdcall;
876
    function ImageMontage(im_0: IDAImage; depth_1: double; out ret_2: IDAMontage): HResult; stdcall;
877
    function ImageMontageAnim(im_0: IDAImage; depth_1: IDANumber; out ret_2: IDAMontage): HResult; stdcall;
878
    function UnionMontage(m1_0, m2_1: IDAMontage; out ret_2: IDAMontage): HResult; stdcall;
879
    function Concat(p1_0, p2_1: IDAPath2; out ret_2: IDAPath2): HResult; stdcall;
880
    function ConcatArrayEx(paths_0size: Longint; paths_0: IDAPath2; out ret_1: IDAPath2): HResult; stdcall;
881
    function ConcatArray(paths_0: Variant; out ret_1: IDAPath2): HResult; stdcall;
882
    function Line(p1_0, p2_1: IDAPoint2; out ret_2: IDAPath2): HResult; stdcall;
883
    function Ray(pt_0: IDAPoint2; out ret_1: IDAPath2): HResult; stdcall;
884
    function StringPathAnim(str_0: IDAString; fs_1: IDAFontStyle; out ret_2: IDAPath2): HResult; stdcall;
885
    function StringPath(str_0: TBSTR; fs_1: IDAFontStyle; out ret_2: IDAPath2): HResult; stdcall;
886
    function PolylineEx(points_0size: Longint; points_0: IDAPoint2; out ret_1: IDAPath2): HResult; stdcall;
887
    function Polyline(points_0: Variant; out ret_1: IDAPath2): HResult; stdcall;
888
    function PolydrawPathEx(points_0size: Longint; points_0: IDAPoint2; codes_1size: Longint; codes_1: IDANumber; out ret_2: IDAPath2): HResult; stdcall;
889
    function PolydrawPath(points_0, codes_1: Variant; out ret_2: IDAPath2): HResult; stdcall;
890
    function ArcRadians(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: double; out ret_4: IDAPath2): HResult; stdcall;
891
    function ArcRadiansAnim(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: IDANumber; out ret_4: IDAPath2): HResult; stdcall;
892
    function ArcDegrees(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: double; out ret_4: IDAPath2): HResult; stdcall;
893
    function PieRadians(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: double; out ret_4: IDAPath2): HResult; stdcall;
894
    function PieRadiansAnim(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: IDANumber; out ret_4: IDAPath2): HResult; stdcall;
895
    function PieDegrees(startAngle_0, endAngle_1, arcWidth_2, arcHeight_3: double; out ret_4: IDAPath2): HResult; stdcall;
896
    function Oval(width_0, height_1: double; out ret_2: IDAPath2): HResult; stdcall;
897
    function OvalAnim(width_0, height_1: IDANumber; out ret_2: IDAPath2): HResult; stdcall;
898
    function Rect(width_0, height_1: double; out ret_2: IDAPath2): HResult; stdcall;
899
    function RectAnim(width_0, height_1: IDANumber; out ret_2: IDAPath2): HResult; stdcall;
900
    function RoundRect(width_0, height_1, cornerArcWidth_2, cornerArcHeight_3: double; out ret_4: IDAPath2): HResult; stdcall;
901
    function RoundRectAnim(width_0, height_1, cornerArcWidth_2, cornerArcHeight_3: IDANumber; out ret_4: IDAPath2): HResult; stdcall;
902
    function CubicBSplinePathEx(points_0size: Longint; points_0: IDAPoint2; knots_1size: Longint; knots_1: IDANumber; out ret_2: IDAPath2): HResult; stdcall;
903
    function CubicBSplinePath(points_0, knots_1: Variant; out ret_2: IDAPath2): HResult; stdcall;
904
    function TextPath(obsolete1_0: IDAString; obsolete2_1: IDAFontStyle; out ret_2: IDAPath2): HResult; stdcall;
905
    function get_Silence(out ret_0: IDASound): HResult; stdcall;
906
    function MixArrayEx(snds_0size: Longint; snds_0: IDASound; out ret_1: IDASound): HResult; stdcall;
907
    function MixArray(snds_0: Variant; out ret_1: IDASound): HResult; stdcall;
908
    function get_SinSynth(out ret_0: IDASound): HResult; stdcall;
909
    function get_DefaultFont(out ret_0: IDAFontStyle): HResult; stdcall;
910
    function FontAnim(str_0: IDAString; size_1: IDANumber; col_2: IDAColor; out ret_3: IDAFontStyle): HResult; stdcall;
911
    function Font(str_0: TBSTR; size_1: double; col_2: IDAColor; out ret_3: IDAFontStyle): HResult; stdcall;
912
    function StringImageAnim(str_0: IDAString; fs_1: IDAFontStyle; out ret_2: IDAImage): HResult; stdcall;
913
    function StringImage(str_0: TBSTR; fs_1: IDAFontStyle; out ret_2: IDAImage): HResult; stdcall;
914
    function TextImageAnim(obsoleted1_0: IDAString; obsoleted2_1: IDAFontStyle; out ret_2: IDAImage): HResult; stdcall;
915
    function TextImage(obsoleted1_0: TBSTR; obsoleted2_1: IDAFontStyle; out ret_2: IDAImage): HResult; stdcall;
916
    function get_XVector2(out ret_0: IDAVector2): HResult; stdcall;
917
    function get_YVector2(out ret_0: IDAVector2): HResult; stdcall;
918
    function get_ZeroVector2(out ret_0: IDAVector2): HResult; stdcall;
919
    function get_Origin2(out ret_0: IDAVector2): HResult; stdcall;
920
    function Vector2Anim(x_0, y_1: IDANumber; out ret_2: IDAVector2): HResult; stdcall;
921
    function Vector2(x_0, y_1: double; out ret_2: IDAVector2): HResult; stdcall;
922
    function Point2Anim(x_0, y_1: IDANumber; out ret_2: IDAPoint2): HResult; stdcall;
923
    function Point2(x_0, y_1: double; out ret_2: IDAPoint2): HResult; stdcall;
924
    function Vector2PolarAnim(theta_0, radius_1: IDANumber; out ret_2: IDAVector2): HResult; stdcall;
925
    function Vector2Polar(theta_0, radius_1: double; out ret_2: IDAVector2): HResult; stdcall;
926
    function Vector2PolarDegrees(theta_0, radius_1: double; out ret_2: IDAVector2): HResult; stdcall;
927
    function Point2PolarAnim(theta_0, radius_1: IDANumber; out ret_2: IDAVector2): HResult; stdcall;
928
    function Point2Polar(theta_0, radius_1: double; out ret_2: IDAPoint2): HResult; stdcall;
929
    function DotVector2(v_0, u_1: IDAVector2; out ret_2: IDANumber): HResult; stdcall;
930
    function NegVector2(v_0: IDAVector2; out ret_1: IDAVector2): HResult; stdcall;
931
    function SubVector2(v1_0, v2_1: IDAVector2; out ret_2: IDAVector2): HResult; stdcall;
932
    function AddVector2(v1_0, v2_1: IDAVector2; out ret_2: IDAVector2): HResult; stdcall;
933
    function AddPoint2Vector(p_0: IDAPoint2; v2_1: IDAVector2; out ret_2: IDAPoint2): HResult; stdcall;
934
    function SubPoint2Vector(p_0: IDAPoint2; v2_1: IDAVector2; out ret_2: IDAPoint2): HResult; stdcall;
935
    function SubPoint2(p_0, p_1: IDAPoint2; out ret_2: IDAVector2): HResult; stdcall;
936
    function DistancePoint2(p_0, q_1: IDAPoint2; out ret_2: IDANumber): HResult; stdcall;
937
    function DistanceSquaredPoint2(p_0, q_1: IDAPoint2; out ret_2: IDANumber): HResult; stdcall;
938
    function get_XVector3(out ret_0: IDAVector3): HResult; stdcall;
939
    function get_YVector3(out ret_0: IDAVector3): HResult; stdcall;
940
    function get_ZVector3(out ret_0: IDAVector3): HResult; stdcall;
941
    function get_ZeroVector3(out ret_0: IDAVector3): HResult; stdcall;
942
    function get_Origin3(out ret_0: IDAPoint3): HResult; stdcall;
943
    function Vector3Anim(x_0, y_1, z_2: IDANumber; out ret_3: IDAVector3): HResult; stdcall;
944
    function Vector3(x_0, y_1, z_2: double; out ret_3: IDAVector3): HResult; stdcall;
945
    function Point3Anim(x_0, y_1, z_2: IDANumber; out ret_3: IDAPoint3): HResult; stdcall;
946
    function Point3(x_0, y_1, z_2: double; out ret_3: IDAPoint3): HResult; stdcall;
947
    function Vector3SphericalAnim(xyAngle_0, yzAngle_1, radius_2: IDANumber; out ret_3: IDAVector3): HResult; stdcall;
948
    function Vector3Spherical(xyAngle_0, yzAngle_1, radius_2: double; out ret_3: IDAVector3): HResult; stdcall;
949
    function Point3SphericalAnim(xyAngle_0, yzAngle_1, radius_2: IDANumber; out ret_3: IDAPoint3): HResult; stdcall;
950
    function Point3Spherical(xyAngle_0, yzAngle_1, radius_2: double; out ret_3: IDAPoint3): HResult; stdcall;
951
    function DotVector3(v_0, u_1: IDAVector3; out ret_2: IDANumber): HResult; stdcall;
952
    function CrossVector3(v_0, u_1: IDAVector3; out ret_2: IDAVector3): HResult; stdcall;
953
    function NegVector3(v_0: IDAVector3; out ret_1: IDAVector3): HResult; stdcall;
954
    function SubVector3(v1_0, v2_1: IDAVector3; out ret_2: IDAVector3): HResult; stdcall;
955
    function AddVector3(v1_0, v2_1: IDAVector3; out ret_2: IDAVector3): HResult; stdcall;
956
    function AddPoint3Vector(p_0: IDAPoint3; v_1: IDAVector3; out ret_2: IDAPoint3): HResult; stdcall;
957
    function SubPoint3Vector(p_0: IDAPoint3; v_1: IDAVector3; out ret_2: IDAPoint3): HResult; stdcall;
958
    function SubPoint3(p1_0, p2_1: IDAPoint3; out ret_2: IDAVector3): HResult; stdcall;
959
    function DistancePoint3(p1_0, p2_1: IDAPoint3; out ret_2: IDANumber): HResult; stdcall;
960
    function DistanceSquaredPoint3(p_0, q_1: IDAPoint3; out ret_2: IDANumber): HResult; stdcall;
961
    function get_IdentityTransform3(out ret_0: IDATransform3): HResult; stdcall;
962
    function Translate3Anim(tx_0, ty_1, tz_2: IDANumber; out ret_3: IDATransform3): HResult; stdcall;
963
    function Translate3(tx_0, ty_1, tz_2: double; out ret_3: IDATransform3): HResult; stdcall;
964
    function Translate3Rate(tx_0, ty_1, tz_2: double; out ret_3: IDATransform3): HResult; stdcall;
965
    function Translate3Vector(delta_0: IDAVector3; out ret_1: IDATransform3): HResult; stdcall;
966
    function Translate3Point(new_origin_0: IDAPoint3; out ret_1: IDATransform3): HResult; stdcall;
967
    function Scale3Anim(x_0, y_1, z_2: IDANumber; out ret_3: IDATransform3): HResult; stdcall;
968
    function Scale3(x_0, y_1, z_2: double; out ret_3: IDATransform3): HResult; stdcall;
969
    function Scale3Rate(x_0, y_1, z_2: double; out ret_3: IDATransform3): HResult; stdcall;
970
    function Scale3Vector(scale_vec_0: IDAVector3; out ret_1: IDATransform3): HResult; stdcall;
971
    function Scale3UniformAnim(uniform_scale_0: IDANumber; out ret_1: IDATransform3): HResult; stdcall;
972
    function Scale3Uniform(uniform_scale_0: double; out ret_1: IDATransform3): HResult; stdcall;
973
    function Scale3UniformRate(uniform_scale_0: double; out ret_1: IDATransform3): HResult; stdcall;
974
    function Rotate3Anim(axis_0: IDAVector3; angle_1: IDANumber; out ret_2: IDATransform3): HResult; stdcall;
975
    function Rotate3(axis_0: IDAVector3; angle_1: double; out ret_2: IDATransform3): HResult; stdcall;
976
    function Rotate3Rate(axis_0: IDAVector3; angle_1: double; out ret_2: IDATransform3): HResult; stdcall;
977
    function Rotate3Degrees(axis_0: IDAVector3; angle_1: double; out ret_2: IDATransform3): HResult; stdcall;
978
    function Rotate3RateDegrees(axis_0: IDAVector3; angle_1: double; out ret_2: IDATransform3): HResult; stdcall;
979
    function XShear3Anim(a_0, b_1: IDANumber; out ret_2: IDATransform3): HResult; stdcall;
980
    function XShear3(a_0, b_1: double; out ret_2: IDATransform3): HResult; stdcall;
981
    function XShear3Rate(a_0, b_1: double; out ret_2: IDATransform3): HResult; stdcall;
982
    function YShear3Anim(a_0, b_1: IDANumber; out ret_2: IDATransform3): HResult; stdcall;
983
    function YShear3(c_0, d_1: double; out ret_2: IDATransform3): HResult; stdcall;
984
    function YShear3Rate(c_0, d_1: double; out ret_2: IDATransform3): HResult; stdcall;
985
    function ZShear3Anim(e_0, f_1: IDANumber; out ret_2: IDATransform3): HResult; stdcall;
986
    function ZShear3(e_0, f_1: double; out ret_2: IDATransform3): HResult; stdcall;
987
    function ZShear3Rate(e_0, f_1: double; out ret_2: IDATransform3): HResult; stdcall;
988
    function Transform4x4AnimEx(m_0size: Longint; m_0: IDANumber; out ret_1: IDATransform3): HResult; stdcall;
989
    function Transform4x4Anim(m_0: Variant; out ret_1: IDATransform3): HResult; stdcall;
990
    function Compose3(a_0, b_1: IDATransform3; out ret_2: IDATransform3): HResult; stdcall;
991
    function Compose3ArrayEx(xfs_0size: Longint; xfs_0: IDATransform3; out ret_1: IDATransform3): HResult; stdcall;
992
    function Compose3Array(xfs_0: Variant; out ret_1: IDATransform3): HResult; stdcall;
993
    function LookAtFrom(to_0, from_1: IDAPoint3; up_2: IDAVector3; out ret_3: IDATransform3): HResult; stdcall;
994
    function get_IdentityTransform2(out ret_0: IDATransform2): HResult; stdcall;
995
    function Translate2Anim(Tx_0, Ty_1: IDANumber; out ret_2: IDATransform2): HResult; stdcall;
996
    function Translate2(Tx_0, Ty_1: double; out ret_2: IDATransform2): HResult; stdcall;
997
    function Translate2Rate(Tx_0, Ty_1: double; out ret_2: IDATransform2): HResult; stdcall;
998
    function Translate2Vector(delta_0: IDAVector2; out ret_1: IDATransform2): HResult; stdcall;
999
    function Translate2Point(pos_0: IDAPoint2; out ret_1: IDATransform2): HResult; stdcall;
1000
    function Scale2Anim(x_0, y_1: IDANumber; out ret_2: IDATransform2): HResult; stdcall;
1001
    function Scale2(x_0, y_1: double; out ret_2: IDATransform2): HResult; stdcall;
1002
    function Scale2Rate(x_0, y_1: double; out ret_2: IDATransform2): HResult; stdcall;
1003
    function Scale2Vector2(obsoleteMethod_0: IDAVector2; out ret_1: IDATransform2): HResult; stdcall;
1004
    function Scale2Vector(scale_vec_0: IDAVector2; out ret_1: IDATransform2): HResult; stdcall;
1005
    function Scale2UniformAnim(uniform_scale_0: IDANumber; out ret_1: IDATransform2): HResult; stdcall;
1006
    function Scale2Uniform(uniform_scale_0: double; out ret_1: IDATransform2): HResult; stdcall;
1007
    function Scale2UniformRate(uniform_scale_0: double; out ret_1: IDATransform2): HResult; stdcall;
1008
    function Rotate2Anim(angle_0: IDANumber; out ret_1: IDATransform2): HResult; stdcall;
1009
    function Rotate2(angle_0: double; out ret_1: IDATransform2): HResult; stdcall;
1010
    function Rotate2Rate(angle_0: double; out ret_1: IDATransform2): HResult; stdcall;
1011
    function Rotate2Degrees(angle_0: double; out ret_1: IDATransform2): HResult; stdcall;
1012
    function Rotate2RateDegrees(angle_0: double; out ret_1: IDATransform2): HResult; stdcall;
1013
    function XShear2Anim(arg_0: IDANumber; out ret_1: IDATransform2): HResult; stdcall;
1014
    function XShear2(arg_0: double; out ret_1: IDATransform2): HResult; stdcall;
1015
    function XShear2Rate(arg_0: double; out ret_1: IDATransform2): HResult; stdcall;
1016
    function YShear2Anim(arg_0: IDANumber; out ret_1: IDATransform2): HResult; stdcall;
1017
    function YShear2(arg_0: double; out ret_1: IDATransform2): HResult; stdcall;
1018
    function YShear2Rate(arg_0: double; out ret_1: IDATransform2): HResult; stdcall;
1019
    function Transform3x2AnimEx(m_0size: Longint; m_0: IDANumber; out ret_1: IDATransform2): HResult; stdcall;
1020
    function Transform3x2Anim(m_0: Variant; out ret_1: IDATransform2): HResult; stdcall;
1021
    function Compose2(a_0, b_1: IDATransform2; out ret_2: IDATransform2): HResult; stdcall;
1022
    function Compose2ArrayEx(xfs_0size: Longint; xfs_0: IDATransform2; out ret_1: IDATransform2): HResult; stdcall;
1023
    function Compose2Array(xfs_0: Variant; out ret_1: IDATransform2): HResult; stdcall;
1024
    function Tuple(obsolete1: Variant; out obsolete2: IDATuple): HResult; stdcall;
1025
    function Array_(obsolete1: Variant; out obsolete2: IDAArray): HResult; stdcall;
1026
    function get_AreBlockingImportsComplete(var bComplete: WordBool): HResult; stdcall;
1027
  end;
1028
 
1029
  IDAViewerControl = interface(IDispatch)
1030
    ['{0E41257B-812D-11D0-9B4A-00C04FC2F51D}']
1031
    function get_UpdateInterval(var pVal: double): HResult; stdcall;
1032
    function put_UpdateInterval(newVal: double): HResult; stdcall;
1033
    function get_View(out ppView: IDAView): HResult; stdcall;
1034
    function put_View(pView: IDAView): HResult; stdcall;
1035
    function get_Image(out ppImage: IDAImage): HResult; stdcall;
1036
    function put_Image(pImage: IDAImage): HResult; stdcall;
1037
    function get_BackgroundImage(out ppImage: IDAImage): HResult; stdcall;
1038
    function put_BackgroundImage(pImage: IDAImage): HResult; stdcall;
1039
    function get_Sound(out ppSound: IDASound): HResult; stdcall;
1040
    function put_Sound(pSound: IDASound): HResult; stdcall;
1041
    function get_PixelLibrary(out ppStatics: IDAStatics): HResult; stdcall;
1042
    function get_MeterLibrary(out ppStatics: IDAStatics): HResult; stdcall;
1043
    function AddBehaviorToRun(pBehavior: IDABehavior): HResult; stdcall;
1044
    function Start: HResult; stdcall;
1045
    function get_InputImage(out pVal: IDAImage): HResult; stdcall;
1046
    function get_OpaqueForHitDetect(var b: WordBool): HResult; stdcall;
1047
    function put_OpaqueForHitDetect(b: WordBool): HResult; stdcall;
1048
    function get_TimerSource(var ts: TDA_Timer_Source): HResult; stdcall;
1049
    function put_TimerSource(ts: TDA_Timer_Source): HResult; stdcall;
1050
  end;
1051
 
1052
  IDAViewerControlWindowed = interface(IDAViewerControl)
1053
    ['{BA8B033E-1E91-11d1-8809-00C04FC29D46}']
1054
  end;
1055
 
1056
(*==========================================================================;
1057
 *
1058
 *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
1059
 *
1060
 *  File:       effect.h
1061
 *
1062
 ***************************************************************************)
1063
 
1064
const
1065
  CATID_BitmapEffect: TGUID = (D1:$1F9DDD20;D2:$4146;D3:$11D0;D4:($BD,$C2,$00,$A0,$C9,$08,$DB,$96));
1066
  IID_IBitmapEffect: TGUID = (D1:$ACEA25C0;D2:$415B;D3:$11D0;D4:($BD,$C2,$00,$A0,$C9,$08,$DB,$96));
1067
 
1068
const
1069
  BITMAP_EFFECT_INPLACE             = $00000001;
1070
  BITMAP_EFFECT_REALTIME            = $00000002;
1071
  BITMAP_EFFECT_DIRECTDRAW          = $00000004;
1072
  BITMAP_EFFECT_SUPPORTS_INVALIDATE = $00000008;
1073
 
1074
type
1075
  IBitmapEffect = interface(IUnknown)
1076
    function SetSite(pUnk: IUnknown): HResult; stdcall;
1077
    function GetMiscStatusBits(var pdwFlags: DWORD): HResult; stdcall;
1078
    function GetSupportedFormatsCount(var pcFormats: DWORD): HResult; stdcall;
1079
    function GetSupportedFormats(var pcFormats: DWORD;
1080
        var pdwColorDepths: DWORD): HResult; stdcall;
1081
    function Begin_(dwColorDepth: DWORD; var psizeEffect: TSize): HResult; stdcall;
1082
    function End_: HResult; stdcall;
1083
    function DoEffect(pbsIn, pbsOut: IDirectDrawSurface;
1084
        const prcFull, prcInvalid: TRect): HResult; stdcall;
1085
  end;
1086
 
1087
(*==========================================================================;
1088
 *
1089
 *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
1090
 *
1091
 *  File:       ddrawex.h
1092
 *
1093
 ***************************************************************************)
1094
 
1095
const
1096
  CLSID_IDirectDrawFactory: TGUID = (D1:$4FD2A832;D2:$86C8;D3:$11D0;D4:($8F,$CA,$00,$C0,$4F,$D9,$18,$9D));
1097
  IID_IDirectDraw3: TGUID = (D1:$618F8AD4;D2:$8B7A;D3:$11D0;D4:($8F,$CC,$00,$C0,$4F,$D9,$18,$9D));
1098
  IID_IDirectDrawFactory: TGUID = (D1:$4FD2A833;D2:$86C8;D3:$11D0;D4:($8F,$CA,$00,$C0,$4F,$D9,$18,$9D));
1099
 
1100
type
1101
 
1102
{ IDirectDraw3 Interface }
1103
 
1104
  IDirectDraw3 = interface(IUnknown)
1105
    ['{618F8AD4-8B7A-11D0-8FCC-00C04FD9189D}']
1106
    // IDirectDraw methods 
1107
    function Compact: HResult; stdcall;
1108
    function CreateClipper(dwFlags: DWORD;
1109
        out lplpDDClipper: IDirectDrawClipper; pUnkOuter: IUnknown): HResult; stdcall;
1110
    function CreatePalette(dwFlags: DWORD; lpColorTable: PPaletteEntry;
1111
        out lplpDDPalette: IDirectDrawPalette; pUnkOuter: IUnknown): HResult;stdcall;
1112
    function CreateSurface(const lpDDSurfaceDesc: DDSURFACEDESC;
1113
        out lplpDDSurface: IDirectDrawSurface; pUnkOuter: IUnknown): HResult; stdcall;
1114
    function DuplicateSurface(lpDDSurface: IDirectDrawSurface;
1115
        out lplpDupDDSurface: IDirectDrawSurface): HResult; stdcall;
1116
    function EnumDisplayModes(dwFlags: DWORD;
1117
        const lpDDSurfaceDesc: DDSURFACEDESC; lpContext: Pointer;
1118
        lpEnumModesCallback: LPDDENUMMODESCALLBACK): HResult; stdcall;
1119
    function EnumSurfaces(dwFlags: DWORD; const lpDDSD: DDSURFACEDESC;
1120
        lpContext: Pointer; lpEnumCallback: LPDDENUMSURFACESCALLBACK): HResult; stdcall;
1121
    function FlipToGDISurface: HResult; stdcall;
1122
    function GetCaps(var lpDDDriverCaps: DDCAPS; var lpDDHELCaps: DDCAPS): HResult; stdcall;
1123
    function GetDisplayMode(var lpDDSurfaceDesc: DDSURFACEDESC): HResult; stdcall;
1124
    function GetFourCCCodes(var lpNumCodes, lpCodes: DWORD): HResult; stdcall;
1125
    function GetGDISurface(out lplpGDIDDSSurface: IDirectDrawSurface): HResult; stdcall;
1126
    function GetMonitorFrequency(var lpdwFrequency: DWORD): HResult; stdcall;
1127
    function GetScanLine(var lpdwScanLine: DWORD): HResult; stdcall;
1128
    function GetVerticalBlankStatus(var lpbIsInVB: BOOL): HResult; stdcall;
1129
    function Initialize(lpGUID: PGUID): HResult; stdcall;
1130
    function RestoreDisplayMode: HResult; stdcall;
1131
    function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall;
1132
    function SetDisplayMode(dwWidth, dwHeight, dwBPP, dwRefreshRate: DWORD;
1133
        dwFlags: DWORD): HResult; stdcall;
1134
    function WaitForVerticalBlank(dwFlags: DWORD; hEvent: THandle): HResult; stdcall;
1135
    // IDirectDraw2 methods
1136
    function GetAvailableVidMem(var lpDDSCaps: DDSCAPS;
1137
        var lpdwTotal, lpdwFree: DWORD): HResult; stdcall;
1138
    // IDirectDraw3 methods
1139
    function GetSurfaceFromDC(hdc: HDC; out ppSurface: IDirectDrawSurface): HResult; stdcall;
1140
  end;
1141
 
1142
{ IDirectDrawFactory Interface }
1143
 
1144
  IDirectDrawFactory = interface(IUnknown)
1145
    ['{4FD2A833-86C8-11D0-8FCA-00C04FD9189D}']
1146
    (*** IDirectDrawFactory methods ***)
1147
    function CreateDirectDraw(pGUID: PGUID; hWnd: HWND;
1148
        dwCoopLevelFlags: DWORD; dwReserved: DWORD; pUnkOuter: IUnknown;
1149
        out ppDirectDraw: IDirectDraw): HResult; stdcall;
1150
    function DirectDrawEnumerate(lpCallback: TDDEnumCallbackA;
1151
        lpContext: Pointer): HResult; stdcall;
1152
  end;
1153
 
1154
const
1155
  DDSD_LPSURFACE          = $00000800;     // from ddrawex.h
1156
 
1157
  DDSCAPS_DATAEXCHANGE    = DDSCAPS_SYSTEMMEMORY or DDSCAPS_VIDEOMEMORY;
1158
 
1159
(*==========================================================================;
1160
 *
1161
 *  Copyright (C) Microsoft Corporation.  All Rights Reserved.
1162
 *
1163
 *  File:       ocmm.h
1164
 *
1165
 ***************************************************************************)
1166
 
1167
const
1168
  IID_IViewFilter: TGUID = '{3050F2F1-98B5-11CF-BB82-00AA00BDCE0B}';
1169
  IID_IViewTransition: TGUID = '{3050F372-98B5-11CF-BB82-00AA00BDCE0B}';
1170
  IID_IViewFilterSite: TGUID = '{3050F2F4-98B5-11CF-BB82-00AA00BDCE0B}';
1171
  IID_IViewTransitionSite: TGUID = '{3050F373-98B5-11CF-BB82-00AA00BDCE0B}';
1172
  IID_ITimerService: TGUID = '{3050F35F-98B5-11CF-BB82-00AA00BDCE0B}';
1173
  IID_ITimer: TGUID ='{3050F360-98B5-11CF-BB82-00AA00BDCE0B}';
1174
  IID_ITimerSink: TGUID = '{3050F361-98B5-11CF-BB82-00AA00BDCE0B}';
1175
  IID_IMapMIMEToCLSID: TGUID = '{D9E89500-30FA-11D0-B724-00AA006C1A01}';
1176
  IID_IImageDecodeFilter: TGUID = '{A3CCEDF3-2DE2-11D0-86F4-00A0C913F750}';
1177
  IID_IImageDecodeEventSink: TGUID = '{BAA342A0-2DED-11D0-86F4-00A0C913F750}';
1178
 
1179
const
1180
// GetStatusBits Flags
1181
  FILTER_STATUS_OPAQUE    = $000000001;
1182
  FILTER_STATUS_INVISIBLE = $000000002;
1183
  FILTER_STATUS_SURFACE   = $000000004;
1184
  FILTER_STATUS_3DSURFACE = $000000008;
1185
 
1186
type
1187
  IViewFilterSite = interface;
1188
 
1189
  IViewFilter = interface(IUnknown)
1190
    ['{3050F2F1-98B5-11CF-BB82-00AA00BDCE0B}']
1191
    function SetSource(pFilter: IViewFilter): HResult; stdcall;
1192
    function GetSource(out ppFilter: IViewFilter): HResult; stdcall;
1193
    function SetSite(pSink: IViewFilterSite): HResult; stdcall;
1194
    function GetSite(out ppSink: IViewFilterSite): HResult; stdcall;
1195
    function SetPosition(const prc: TRect): HResult; stdcall;
1196
    function Draw(hdc: HDC; const prcBounds: TRect): HResult; stdcall;
1197
    function GetStatusBits(var pdwFlags: DWORD): HResult; stdcall;
1198
  end;
1199
 
1200
  IViewTransition = interface(IViewFilter)
1201
    ['{3050F372-98B5-11CF-BB82-00AA00BDCE0B}']
1202
    function Initialize(hdc: HDC; const prc: TRect): HResult; stdcall;
1203
    function Go(vtimeDuration: VARIANT): HResult; stdcall;
1204
  end;
1205
 
1206
  IViewFilterSite = interface(IUnknown)
1207
    ['{3050F2F4-98B5-11CF-BB82-00AA00BDCE0B}']
1208
    function GetDC(const prc: TRect; dwFlags: DWORD; var phdc: HDC): HResult; stdcall;
1209
    function ReleaseDC(hdc: HDC): HResult; stdcall;
1210
    function InvalidateRect(const prc: TRect; fErase: BOOL): HResult; stdcall;
1211
    function InvalidateRgn(hrgn: HRGN; fErase: BOOL): HResult; stdcall;
1212
    function OnStatusBitsChange(dwFlags: DWORD): HResult; stdcall;
1213
  end;
1214
 
1215
  IViewTransitionSite = interface(IViewFilterSite)
1216
    ['{3050F373-98B5-11CF-BB82-00AA00BDCE0B}']
1217
    function OnComplete: HResult; stdcall;
1218
  end;
1219
 
1220
const
1221
  SURFACE_LOCK_EXCLUSIVE        = $01;
1222
  SURFACE_LOCK_ALLOW_DISCARD    = $02;
1223
  SURFACE_LOCK_WAIT             = $04;
1224
 
1225
  E_SURFACE_NOSURFACE             = $8000C000;
1226
  E_SURFACE_UNKNOWN_FORMAT        = $8000C001;
1227
  E_SURFACE_NOTMYPOINTER          = $8000C002;
1228
  E_SURFACE_DISCARDED             = $8000C003;
1229
  E_SURFACE_NODC                  = $8000C004;
1230
  E_SURFACE_NOTMYDC               = $8000C005;
1231
  S_SURFACE_DISCARDED             = $0000C003;
1232
 
1233
type
1234
  BFID = TGUID;
1235
{
1236
EXTERN_C const GUID BFID_MONOCHROME;
1237
EXTERN_C const GUID BFID_RGB_4;
1238
EXTERN_C const GUID BFID_RGB_8;
1239
EXTERN_C const GUID BFID_RGB_555;
1240
EXTERN_C const GUID BFID_RGB_565;
1241
EXTERN_C const GUID BFID_RGB_24;
1242
EXTERN_C const GUID BFID_RGB_32;
1243
EXTERN_C const GUID BFID_RGBA_32;
1244
EXTERN_C const GUID BFID_GRAY_8;
1245
EXTERN_C const GUID BFID_GRAY_16;
1246
}
1247
 
1248
const
1249
  SID_SDirectDraw3: TGUID = (D1:$618F8AD4;D2:$8B7A;D3:$11D0;D4:($8F,$CC,$00,$C0,$4F,$D9,$18,$9D));
1250
 
1251
  COLOR_NO_TRANSPARENT = $FFFFFFFF;
1252
 
1253
  IMGDECODE_EVENT_PROGRESS = $01;
1254
  IMGDECODE_EVENT_PALETTE = $02;
1255
  IMGDECODE_EVENT_BEGINBITS = $04;
1256
  IMGDECODE_EVENT_BITSCOMPLETE = $08;
1257
  IMGDECODE_EVENT_USEDDRAW = $10;
1258
 
1259
  IMGDECODE_HINT_TOPDOWN = $01;
1260
  IMGDECODE_HINT_BOTTOMUP = $02;
1261
  IMGDECODE_HINT_FULLWIDTH = $04;
1262
 
1263
  MAPMIME_DEFAULT = 0;
1264
  MAPMIME_CLSID  = 1;
1265
  MAPMIME_DISABLE = 2;
1266
  MAPMIME_DEFAULT_ALWAYS = 3;
1267
 
1268
{
1269
  BFID_INDEXED_RGB_8 = BFID_RGB_8;
1270
  BFID_INDEXED_RGB_4 = BFID_RGB_4;
1271
  BFID_INDEXED_RGB_1 = BFID_MONOCHROME;
1272
 
1273
EXTERN_C const GUID CLSID_IImageDecodeFilter;
1274
 
1275
EXTERN_C const GUID NAMEDTIMER_DRAW;
1276
}
1277
 
1278
type
1279
  ITimer = interface;
1280
  ITimerSink = interface;
1281
  IImageDecodeEventSink = interface;
1282
 
1283
  ITimerService = interface(IUnknown)
1284
    ['{3050F35F-98B5-11CF-BB82-00AA00BDCE0B}']
1285
    function CreateTimer(pReferenceTimer: ITimer; out ppNewTimer: ITimer): HResult; stdcall;
1286
    function GetNamedTimer(const rguidName: TGUID; out ppTimer: ITimer): HResult; stdcall;
1287
    function SetNamedTimerReference(const rguidName: TGUID; pReferenceTimer: ITimer): HResult; stdcall;
1288
  end;
1289
 
1290
  ITimer = interface(IUnknown)
1291
    ['{3050F360-98B5-11CF-BB82-00AA00BDCE0B}']
1292
    function Advise(vtimeMin, vtimeMax, vtimeInterval: Variant; dwFlags: DWORD;
1293
        pTimerSink: ITimerSink; var pdwCookie: DWORD): HResult; stdcall;
1294
    function Unadvise(dwCookie: DWORD): HResult; stdcall;
1295
    function Freeze(fFreeze: BOOL): HResult; stdcall;
1296
    function GetTime(var pvtime: Variant): HResult; stdcall;
1297
  end;
1298
 
1299
  ITimerSink = interface(IUnknown)
1300
    ['{3050F361-98B5-11CF-BB82-00AA00BDCE0B}']
1301
    function OnTimer(vtimeAdvise: Variant): HResult; stdcall;
1302
  end;
1303
 
1304
  IMapMIMEToCLSID = interface(IUnknown)
1305
    ['{D9E89500-30FA-11D0-B724-00AA006C1A01}']
1306
    function EnableDefaultMappings(bEnable: BOOL): HResult; stdcall;
1307
    function MapMIMEToCLSID(pszMIMEType: PWCHAR; var pCLSID: TGUID): HResult; stdcall;
1308
    function SetMapping(pszMIMEType: PWCHAR; dwMapMode: DWORD;
1309
        const clsid: TGUID): HResult; stdcall;
1310
  end;
1311
 
1312
  IImageDecodeFilter = interface(IUnknown)
1313
    ['{A3CCEDF3-2DE2-11D0-86F4-00A0C913F750}']
1314
    function Initialize(pEventSink: IImageDecodeEventSink): HResult; stdcall;
1315
    function Process(pStream: IStream): HResult; stdcall;
1316
    function Terminate(hrStatus: HResult): HResult; stdcall;
1317
  end;
1318
 
1319
  IImageDecodeEventSink = interface(IUnknown)
1320
    ['{BAA342A0-2DED-11D0-86F4-00A0C913F750}']
1321
    function GetSurface(nWidth, nHeight: Longint; const bfid: TGUID;
1322
        nPasses: ULONG; dwHints: DWORD; out ppSurface: IUnknown): HResult; stdcall;
1323
    function OnBeginDecode(var pdwEvents: DWORD; var pnFormats: ULONG;
1324
        var ppFormats: BFID): HResult; stdcall;
1325
    function OnBitsComplete: HResult; stdcall;
1326
    function OnDecodeComplete(hrStatus: HResult): HResult; stdcall;
1327
    function OnPalette: HResult; stdcall;
1328
    function OnProgress(const pBounds: TRect; bComplete: BOOL): HResult; stdcall;
1329
  end;
1330
 
1331
implementation
1332
 
1333
end.
1334
 
1335