Subversion Repositories spacemission

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  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.  
  1336.