home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / turbocad / v8trial / TurboCADv8ProfessionalNoReg.exe / Data.Cab / F43804_Imsigx.idl < prev    next >
Encoding:
Text File  |  2001-11-21  |  714.3 KB  |  24,660 lines

  1. // IMSIGX.IDL -- Interface file for IMSIGX project
  2. //
  3. // This file will be processed by the MIDL tool to
  4. // produce the marshalling code.
  5. //
  6. // Note to TechWriters:
  7. // This file can be parsed by an automated documentation engine called
  8. // "DocJet" to produce HTML or RTF hyperlinked documentation.
  9. // The trick is to put comments in specific locations within the
  10. // file.  You can also prevent documentation by enclosing parts of the
  11. // file within an #if-#else-#endif block.  The part between the #else and
  12. // the #endif will NOT be generated from.
  13. //
  14. // What needs to be done:
  15. // 1.  Remarks sections for each documented interface (class).
  16. // 2.  Remarks and Return Value sections for each documented method.
  17. // 3.  Comment for each parameter of each docuemented method.
  18. //
  19.  
  20. cpp_quote("/******************************************************************/")
  21. cpp_quote("/*                                                                */")
  22. cpp_quote("/*                      TurboCAD for Windows                      */")
  23. cpp_quote("/*                   Copyright (c) 1993 - 1997                    */")
  24. cpp_quote("/*             International Microcomputer Software, Inc.         */")
  25. cpp_quote("/*                            (IMSI)                              */")
  26. cpp_quote("/*                      All rights reserved.                      */")
  27. cpp_quote("/*                                                                */")
  28. cpp_quote("/******************************************************************/")
  29.  
  30. import "oaidl.idl";
  31. // import "ocidl.idl";
  32. ///////////////////////////////////////////////////////////////////////////
  33. // Forward interface declarations
  34.  
  35. interface IGlobal;
  36. interface IApplication;
  37. interface IDrawing;
  38. interface IGraphic;
  39. interface IVertex;
  40. interface IMatrix;
  41. interface ICamera;
  42. interface IGrid;
  43. interface IBrushPattern;
  44. interface BrushPatterns;
  45. interface PageSetup;
  46. interface ApplicationCallbacks;
  47. interface ApplicationOptions;
  48. interface DrawingCallbacks;
  49. interface DrawingOptions;
  50. interface Drawings;
  51. interface Graphics;
  52. interface Selection;
  53. interface Vertices;
  54. interface Property;
  55. interface Properties;
  56. interface NamedView;
  57. interface NamedViews;
  58. interface RegenMethod;
  59. interface RegenMethods;
  60. interface Layer;
  61. interface Layers;
  62. interface LineStyle;
  63. interface LineStyles;
  64. interface BrushStyle;
  65. interface BrushStyles;
  66. interface Filter;
  67. interface Filters;
  68. interface NamedColor;
  69. interface NamedColors;
  70. interface BoundingBox;
  71. interface Block;
  72. interface Blocks;
  73. interface PickEntry;
  74. interface PickResult;
  75. interface Window;
  76. interface Windows;
  77. interface KeyBinding;
  78. interface KeyBindings;
  79. interface CommandBar;
  80. interface CommandBars;
  81. interface CommandBarControl;
  82. interface CommandBarControls;
  83. interface Tool;
  84. interface Tools;
  85. interface AddIn;
  86. interface AddIns;
  87. interface ScaleSystem;
  88. interface ScaleSystems;
  89. interface GraphicSet;
  90. interface GraphicSets;
  91. interface UndoRecord;
  92. interface Table;
  93. interface Tables;
  94. interface Style;
  95. interface Styles;
  96. interface View;
  97. interface Views;
  98. interface GraphicCallbacks;
  99. interface IAppEvents;
  100. interface Macro;
  101. interface Macros;
  102.  
  103. // Single exported function
  104. cpp_quote("STDAPI IMSIGXGetXApplication(IApplication** ppApp);")
  105.  
  106. ///////////////////////////////////////////////////////////////////////////
  107. // Typedefs
  108. ///////////////////////////////////////////////////////////////////////////
  109. import "gxtypes.idl";
  110.  
  111. // Application and Global objects
  112. //
  113.     /*
  114.     * The global (nameless, session) object.
  115.     * Allows access to system properties and collections.
  116.     * Collections include Drawings collection, Filters collection, NamedColors collection,
  117.     * Properties collection and RegenMethods collection.
  118.     */
  119.     [
  120.          object
  121.         ,uuid(6A481100-E531-11CF-A115-00A024158DAF)
  122.         ,oleautomation
  123.         ,dual
  124.         ,helpcontext(0x10000000)
  125.         ,helpstring("The global (nameless, session) object.")
  126.     ]
  127.     interface IGlobal : IDispatch
  128.     {
  129.  
  130. ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  131.  
  132.         /**
  133.          * Returns the active Drawing object.
  134.          */
  135.         [
  136.              propget
  137.             ,helpcontext(0x10000001)
  138.             ,helpstring("Returns the active Drawing object.")
  139.         ]
  140.         HRESULT  ActiveDrawing(
  141.             [out, retval] IDrawing** prop // The active Drawing object.
  142.             );
  143.  
  144.         /**
  145.          * Returns the name of the active printer, as a string.
  146.          */
  147.         [
  148.              propget
  149.             ,hidden, restricted
  150.             ,helpcontext(0x10000002)
  151.             ,helpstring("Returns the name of the active printer, as a string.")
  152.         ]
  153.         HRESULT     ActivePrinter(
  154.             [out, retval] BSTR* prop // The printer name.
  155.             );
  156.  
  157.         /**
  158.          * Sets the active printer by name.
  159.          */
  160.         [
  161.              propput
  162.             ,hidden, restricted
  163.             ,helpcontext(0x10000002)
  164.             ,helpstring("Sets the the active printer by name.")
  165.         ]
  166.         HRESULT     ActivePrinter(
  167.             [in] BSTR prop // The printer name
  168.             );
  169.  
  170.         /**
  171.          * Returns the active Window object.
  172.          * @see TCADAPI TCWActiveWindow function
  173.          */
  174.         [
  175.              propget
  176.             ,hidden, restricted
  177.             ,helpcontext(0x10000003)
  178.             ,helpstring("Returns the active Window object.")
  179.         ]
  180.         HRESULT  ActiveWindow(
  181.             [out, retval] Window** prop // The active Window object.
  182.             );
  183.  
  184.         /**
  185.          * Returns the Application object's AddIns collection.
  186.          */
  187.         [
  188.              propget
  189.             ,hidden, restricted
  190.             ,helpcontext(0x10000004)
  191.             ,helpstring("Returns the Application object's AddIns collection.")
  192.         ]
  193.         HRESULT  AddIns(
  194.             [out, retval] AddIns** prop // The AddIns collection.
  195.             );
  196.  
  197.         /**
  198.          * Returns an Application object that represents the owner of the specified object.
  199.          */
  200.         [
  201.              propget
  202.             ,helpcontext(0x10000005)
  203.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  204.         ]
  205.         HRESULT  Application(
  206.             [out, retval] IApplication** prop // The Application object.
  207.             );
  208.  
  209.         /**
  210.          * Returns the Application object's Drawings collection, the collection of Drawing objects.
  211.          */
  212.         [
  213.              propget
  214.             ,helpcontext(0x10000006)
  215.             ,helpstring("Returns the Application object's Drawings collection, the collection of Drawing objects.")
  216.         ]
  217.         HRESULT  Drawings(
  218.             [out, retval] Drawings** prop // The Drawings collection.
  219.             );
  220.  
  221.         /**
  222.          * Returns the Application object's Filters collection.
  223.          */
  224.         [
  225.              propget
  226.             ,helpcontext(0x10000007)
  227.             ,helpstring("Returns the Application object's Filters collection.")
  228.         ]
  229.         HRESULT  Filters(
  230.             [out, retval] Filters** prop // The Filters collection.
  231.             );
  232.  
  233.         /**
  234.          * Returns the Application object's KeyBindings collection.
  235.          */
  236.         [
  237.              propget
  238.             ,hidden, restricted
  239.             ,helpcontext(0x10000008)
  240.             ,helpstring("Returns the Application object's KeyBindings collection.")
  241.         ]
  242.         HRESULT  KeyBindings(
  243.             [out, retval] KeyBindings** prop // The KeyBindings collection.
  244.             );
  245.  
  246.         /**
  247.          * Returns the name of the object, as a string.
  248.          * Name is the default property of the Application object.
  249.          */
  250.         [
  251.              propget
  252.             ,id(DISPID_VALUE)
  253.             ,helpcontext(0x10000009)
  254.             ,helpstring("Returns the name of the object, as a string.")
  255.         ]
  256.         HRESULT  Name(
  257.             [out, retval] BSTR* prop // The name of the object.
  258.             );
  259.  
  260.         /**
  261.          * Returns the Application object's NamedColors collection.
  262.          */
  263.         [
  264.              propget
  265.             ,helpcontext(0x1000000A)
  266.             ,helpstring("Returns the Application object's NamedColors collection.")
  267.         ]
  268.         HRESULT  NamedColors(
  269.             [out, retval] NamedColors** prop // The NamedColors collection.
  270.             );
  271.  
  272.         /**
  273.          * Returns the Application object's ApplicationOptions object.
  274.          */
  275.         [
  276.              propget
  277.             ,hidden, restricted
  278.             ,helpcontext(0x1000000B)
  279.             ,helpstring("Returns the Application object's ApplicationOptions object.")
  280.         ]
  281.         HRESULT  Options(
  282.             [out, retval] ApplicationOptions** prop // The ApplicationOptions object.
  283.             );
  284.  
  285.         /**
  286.          * Returns the parent object for the specified object.
  287.          * The parent of the Application object is itself.
  288.          */
  289.         [
  290.              propget
  291.             ,helpcontext(0x1000000C)
  292.             ,helpstring("Returns the parent object for the specified object.")
  293.         ]
  294.         HRESULT  Parent(
  295.             [out, retval] IApplication** prop // The parent object.
  296.             );
  297.  
  298.         /**
  299.          * Returns the Application object's RegenMethods collection.
  300.          */
  301.         [
  302.              propget
  303.             ,helpcontext(0x1000000D)
  304.             ,helpstring("Returns the Application object's RegenMethods collection.")
  305.         ]
  306.         HRESULT  RegenMethods(
  307.             [out, retval] RegenMethods** prop // The RegenMethods collection.
  308.             );
  309.  
  310.         /**
  311.          * Returns the Selection object of the active Drawing object.
  312.          */
  313.         [
  314.              propget
  315.             ,helpcontext(0x1000000E)
  316.             ,helpstring("Returns the selection of the active Drawing object.")
  317.         ]
  318.         HRESULT  Selection(
  319.             [out, retval] Selection** prop // The Selection object.
  320.             );
  321.  
  322.         /**
  323.          * Sets the text in the Application object's status bar.
  324.          */
  325.         [
  326.              propput
  327.             ,hidden, restricted
  328.             ,helpcontext(0x1000000F)
  329.             ,helpstring("Sets the text in the Application object's status bar.")
  330.         ]
  331.         HRESULT  StatusBar(
  332.             [in] BSTR prop // The text to set.
  333.             );
  334.  
  335.         /**
  336.          * Returns the Application object's CommandBars collection.
  337.          */
  338.         [
  339.              propget
  340.             ,hidden, restricted
  341.             ,helpcontext(0x10000010)
  342.             ,helpstring("Returns the Application object's CommandBars collection.")
  343.         ]
  344.         HRESULT  CommandBars(
  345.             [out, retval] CommandBars** prop // The CommandBars collection.
  346.             );
  347.  
  348.         /**
  349.          * Returns the Application object's Tools collection.
  350.          */
  351.         [
  352.              propget
  353.             ,hidden, restricted
  354.             ,helpcontext(0x10000011)
  355.             ,helpstring("Returns the Application object's Tools collection.")
  356.         ]
  357.         HRESULT  Tools(
  358.             [out, retval] Tools** prop // The Tools collection.
  359.             );
  360.  
  361.         /**
  362.          * Returns the Application object's Windows collection, the collection of Window objects.
  363.          */
  364.         [
  365.              propget
  366.             ,hidden, restricted
  367.             ,helpcontext(0x10000012)
  368.             ,helpstring("Returns the Application object's Windows collection, the collection of Window objects.")
  369.         ]
  370.         HRESULT  Windows(
  371.             [out, retval] Windows** prop // The Windows collection.
  372.             );
  373.  
  374. /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  375.  
  376.         /**
  377.          * Composes a key code out of a number of key combinations.
  378.          */
  379.         [
  380.              helpcontext(0x10000013)
  381.             ,helpstring("Composes a key code out of a number of key combinations.")
  382.             ,hidden, restricted
  383.         ]
  384.         HRESULT  BuildKeyCode(
  385.             [in] ImsiKey BaseKey, // The base key
  386.             [in, optional] VARIANT* ModKey, // The key modifier
  387.             [in, optional] VARIANT* ModKey2, // A second key modifier
  388.             [in, optional] VARIANT* ModKey3, // A third key modifier
  389.             [out, retval] long* prop // The calculated key code
  390.             );
  391.  
  392.         /**
  393.          * Returns key codes as a string.
  394.          */
  395.         [
  396.              helpcontext(0x10000014)
  397.             ,helpstring("Returns key codes as a string.")
  398.             ,hidden, restricted
  399.         ]
  400.         HRESULT  KeyString(
  401.             [in] long KeyCode, // The key code
  402.             [in, optional] VARIANT* KeyCode2, // A second key code
  403.             [out, retval] BSTR* prop // The returned string
  404.             );
  405.  
  406.         [
  407.              propget
  408.             ,helpcontext(0x10000050)
  409.             ,helpstring("Returns the Application object's TieMethods collection.")
  410.         ]
  411.         HRESULT  TieMethods(
  412.             [out, retval] IDispatch** prop // The TieMethods collection.
  413.             );
  414.  
  415.         /**
  416.          * Returns the Application object's Renders collection.
  417.          */
  418.         [
  419.              propget
  420.             ,helpcontext(0x10000051)
  421.             ,helpstring("Returns the Application object's Renders collection.")
  422.         ]
  423.         HRESULT  Renders(
  424.             [out, retval] IDispatch** prop // The Renders collection.
  425.             );
  426.          
  427.         /**
  428.          * Returns the Application object's ToolEvents interface.
  429.          */
  430.         [
  431.              propget
  432.             ,helpcontext(0x10000052)
  433.             ,helpstring("Returns the Application object's ToolEvents interface.")
  434.         ]
  435.         HRESULT  ToolEvents(
  436.             [out, retval] IDispatch** prop // The ToolEvents interface
  437.             );
  438.  
  439.         /**
  440.          * Returns the Application object's Properties collection.
  441.          * For the complete list of available Application Properties, follow
  442.          * <A HREF="appprops.html">this link</A>.
  443.          *
  444.          * @see TCADAPI TCWAppPropertyGet/Set functions
  445.          */
  446.         [
  447.              propget
  448.             ,helpcontext(0x10000022)
  449.             ,helpstring("Returns the Application object's Properties collection.")
  450.         ]
  451.         HRESULT  Properties(
  452.             [out, retval] Properties** prop // The Properties collection.
  453.             );
  454.     };
  455.  
  456.     /**
  457.      * The application (session) object.
  458.      * Allows access to system properties and collections.
  459.      * Collections include Drawings collection, Filters collection, NamedColors collection,
  460.      * Properties collection and RegenMethods collection.
  461.      */
  462.     [
  463.          object
  464.         ,uuid(6A481101-E531-11CF-A115-00A024158DAF)
  465.         ,oleautomation
  466.         ,dual
  467.         ,helpcontext(0x10000000)
  468.         ,helpstring("The application (session) object.")
  469.     ]
  470.     interface IApplication : IDispatch
  471.     {
  472.  
  473. ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  474.  
  475.         /**
  476.          * Returns the active Drawing object.
  477.          */
  478.         [
  479.              propget
  480.             ,helpcontext(0x10000001)
  481.             ,helpstring("Returns the active Drawing object.")
  482.         ]
  483.         HRESULT  ActiveDrawing(
  484.             [out, retval] IDrawing** prop // The active Drawing object.
  485.             );
  486.  
  487.         /**
  488.          * Returns the name of the active printer, as a string.
  489.          */
  490.         [
  491.              propget
  492.             ,hidden, restricted
  493.             ,helpcontext(0x10000002)
  494.             ,helpstring("Returns the name of the active printer, as a string.")
  495.         ]
  496.         HRESULT     ActivePrinter(
  497.             [out, retval] BSTR* prop // The printer name.
  498.             );
  499.  
  500.         /**
  501.          * Sets the active printer by name.
  502.          */
  503.         [
  504.              propput
  505.             ,hidden, restricted
  506.             ,helpcontext(0x10000002)
  507.             ,helpstring("Sets the the active printer by name.")
  508.         ]
  509.         HRESULT     ActivePrinter(
  510.             [in] BSTR prop // The printer name.
  511.             );
  512.  
  513.         /**
  514.          * Returns the active Window object.
  515.          *
  516.          * @see TCADAPI TCWActiveWindow function
  517.          */
  518.         [
  519.              propget
  520.             ,hidden, restricted
  521.             ,helpcontext(0x10000003)
  522.             ,helpstring("Returns the active Window object.")
  523.         ]
  524.         HRESULT  ActiveWindow(
  525.             [out, retval] Window** prop // The active Window object.
  526.             );
  527.  
  528.         /**
  529.          * Returns the Application object's AddIns collection.
  530.          */
  531.         [
  532.              propget
  533.             ,hidden, restricted
  534.             ,helpcontext(0x10000004)
  535.             ,helpstring("Returns the Application object's AddIns collection.")
  536.         ]
  537.         HRESULT  AddIns(
  538.             [out, retval] AddIns** prop // The AddIns collection.
  539.             );
  540.  
  541.         /**
  542.          * Returns an Application object that represents the owner of the specified object.
  543.          */
  544.         [
  545.              propget
  546.             ,helpcontext(0x10000005)
  547.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  548.         ]
  549.         HRESULT  Application(
  550.             [out, retval] IApplication** prop // The Application object.
  551.             );
  552.  
  553.         /**
  554.          * Returns the build number, as a string.
  555.          */
  556.         [
  557.              propget
  558.             ,helpcontext(0x10000006)
  559.             ,helpstring("Returns the build number, as a string.")
  560.         ]
  561.         HRESULT  Build(
  562. //             [in, lcid]    long lcid
  563.              [in, optional]    long lcid
  564.             ,[out, retval] BSTR* prop // The build number, as a string.
  565.             );
  566.  
  567.         /**
  568.          * Returns the Application object's ApplicationCallbacks object.
  569.          */
  570.         [
  571.              propget
  572.             ,hidden, restricted
  573.             ,helpcontext(0x10000007)
  574.             ,helpstring("Returns the Application object's ApplicationCallbacks object.")
  575.         ]
  576.         HRESULT  Callbacks(
  577.             [out, retval] ApplicationCallbacks** prop // The ApplicationCallbacks object.
  578.             );
  579.  
  580.         /**
  581.          * Returns the text that appears in the title bar of the main window.
  582.          */
  583.         [
  584.              propget
  585.             ,hidden, restricted
  586.             ,helpcontext(0x10000008)
  587.             ,helpstring("Returns the text that appears in the title bar of the main window.")
  588.         ]
  589.         HRESULT  Caption(
  590.             [out, retval] BSTR* prop // The title bar caption, as a string.
  591.             );
  592.  
  593.         /**
  594.          * Sets the text that appears in the title bar of the main window.
  595.          */
  596.         [
  597.              propput
  598.             ,hidden, restricted
  599.             ,helpcontext(0x10000008)
  600.             ,helpstring("Sets the text that appears in the title bar of the main window.")
  601.         ]
  602.         HRESULT  Caption(
  603.             [in] BSTR prop // The title bar caption, as a string.
  604.             );
  605.  
  606.         /**
  607.          * True if the Blocks window is displayed.
  608.          */
  609.         [
  610.              propget
  611.             ,hidden, restricted
  612.             ,helpcontext(0x10000009)
  613.             ,helpstring("True if the Blocks window is displayed.")
  614.         ]
  615.         HRESULT  DisplayBlocksWindow(
  616.             [out, retval] IMSI_BOOL* prop // True if the Blocks window is displayed.
  617.             );
  618.  
  619.         /**
  620.          * True if the Blocks window is displayed.
  621.          */
  622.         [
  623.              propput
  624.             ,hidden, restricted
  625.             ,helpcontext(0x10000009)
  626.             ,helpstring("True if the Blocks window is displayed.")
  627.         ]
  628.         HRESULT  DisplayBlocksWindow(
  629.             [in] IMSI_BOOL prop // True if the Blocks window is displayed.
  630.             );
  631.  
  632.         /**
  633.          * True if the edit bar is displayed.
  634.          */
  635.         [
  636.              propget
  637.             ,hidden, restricted
  638.             ,helpcontext(0x1000000A)
  639.             ,helpstring("True if the edit bar is displayed.")
  640.         ]
  641.         HRESULT  DisplayEditBar(
  642.             [out, retval] IMSI_BOOL* prop // True if the edit bar is displayed.
  643.             );
  644.  
  645.         /**
  646.          * True if the edit bar is displayed.
  647.          */
  648.         [
  649.              propput
  650.             ,hidden, restricted
  651.             ,helpcontext(0x1000000A)
  652.             ,helpstring("True if the edit bar is displayed.")
  653.         ]
  654.         HRESULT  DisplayEditBar(
  655.             [in] IMSI_BOOL prop // True if the edit bar is displayed.
  656.             );
  657.  
  658.         /**
  659.          * True if TurboCAD is in full-screen mode.
  660.          */
  661.         [
  662.              propget
  663.             ,hidden, restricted
  664.             ,helpcontext(0x1000000B)
  665.             ,helpstring("True if TurboCAD is in full-screen mode.")
  666.         ]
  667.         HRESULT  DisplayFullScreen(
  668.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is in full-screen mode.
  669.             );
  670.  
  671.         /**
  672.          * True if TurboCAD is in full-screen mode.
  673.          */
  674.         [
  675.              propput
  676.             ,hidden, restricted
  677.             ,helpcontext(0x1000000B)
  678.             ,helpstring("True if TurboCAD is in full-screen mode.")
  679.         ]
  680.         HRESULT  DisplayFullScreen(
  681.             [in] IMSI_BOOL prop // True if TurboCAD is in full-screen mode.
  682.             );
  683.  
  684.         /**
  685.          * True if the Info window is displayed.
  686.          */
  687.         [
  688.              propget
  689.             ,hidden, restricted
  690.             ,helpcontext(0x1000000C)
  691.             ,helpstring("True if the Info window is displayed.")
  692.         ]
  693.         HRESULT  DisplayInfoWindow(
  694.             [out, retval] IMSI_BOOL* prop // True if the Info window is displayed.
  695.             );
  696.  
  697.         /**
  698.          * True if the Info window is displayed.
  699.          */
  700.         [
  701.              propput
  702.             ,hidden, restricted
  703.             ,helpcontext(0x1000000C)
  704.             ,helpstring("True if the Info window is displayed.")
  705.         ]
  706.         HRESULT  DisplayInfoWindow(
  707.             [in] IMSI_BOOL prop // True if the Info window is displayed.
  708.             );
  709.  
  710.         /**
  711.          * True if rulers are visible for all drawings.
  712.          */
  713.         [
  714.              propget
  715.             ,hidden, restricted
  716.             ,helpcontext(0x1000000D)
  717.             ,helpstring("True if rulers are visible for all drawings.")
  718.         ]
  719.         HRESULT  DisplayRulers(
  720.             [out, retval] IMSI_BOOL* prop // True if rulers are visible for all drawings.
  721.             );
  722.  
  723.         /**
  724.          * True if rulers are visible for all drawings.
  725.          */
  726.         [
  727.              propput
  728.             ,hidden, restricted
  729.             ,helpcontext(0x1000000D)
  730.             ,helpstring("True if rulers are visible for all drawings.")
  731.         ]
  732.         HRESULT  DisplayRulers(
  733.             [in] IMSI_BOOL prop // True if rulers are visible for all drawings.
  734.             );
  735.  
  736.         /**
  737.          * True if scroll bars are visible for all drawings.
  738.          */
  739.         [
  740.              propget
  741.             ,hidden, restricted
  742.             ,helpcontext(0x1000000E)
  743.             ,helpstring("True if scroll bars are visible for all drawings.")
  744.         ]
  745.         HRESULT  DisplayScrollBars(
  746.             [out, retval] IMSI_BOOL* prop // True if scroll bars are visible.
  747.             );
  748.  
  749.         /**
  750.          * True if scroll bars are visible for all drawings.
  751.          */
  752.         [
  753.              propput
  754.             ,hidden, restricted
  755.             ,helpcontext(0x1000000E)
  756.             ,helpstring("True if scroll bars are visible for all drawings.")
  757.         ]
  758.         HRESULT  DisplayScrollBars(
  759.             [in] IMSI_BOOL prop // True if scroll bars are visible.
  760.             );
  761.  
  762.         /**
  763.          * True if the status bar is displayed.
  764.          */
  765.         [
  766.              propget
  767.             ,hidden, restricted
  768.             ,helpcontext(0x1000000F)
  769.             ,helpstring("True if the status bar is displayed.")
  770.         ]
  771.         HRESULT  DisplayStatusBar(
  772.             [out, retval] IMSI_BOOL* prop // True if the status bar is displayed.
  773.             );
  774.  
  775.         /**
  776.          * True if the status bar is displayed.
  777.          */
  778.         [
  779.              propput
  780.             ,hidden, restricted
  781.             ,helpcontext(0x1000000F)
  782.             ,helpstring("True if the status bar is displayed.")
  783.         ]
  784.         HRESULT  DisplayStatusBar(
  785.             [in] IMSI_BOOL prop // True if the status bar is displayed.
  786.             );
  787.  
  788.         /**
  789.          * True if the Status dialog window is displayed.
  790.          */
  791.         [
  792.              propget
  793.             ,hidden, restricted
  794.             ,helpcontext(0x10000010)
  795.             ,helpstring("True if the Status dialog window is displayed.")
  796.         ]
  797.         HRESULT  DisplayStatusDialog(
  798.             [out, retval] IMSI_BOOL* prop // True if the Status dialog window is displayed.
  799.             );
  800.  
  801.         /**
  802.          * True if the Status dialog window is displayed.
  803.          */
  804.         [
  805.              propput
  806.             ,hidden, restricted
  807.             ,helpcontext(0x10000010)
  808.             ,helpstring("True if the Status dialog window is displayed.")
  809.         ]
  810.         HRESULT  DisplayStatusDialog(
  811.             [in] IMSI_BOOL prop // True if the Status dialog window is displayed.
  812.             );
  813.  
  814.         /**
  815.          * True if the Symbol window is displayed.
  816.          */
  817.         [
  818.              propget
  819.             ,hidden, restricted
  820.             ,helpcontext(0x10000011)
  821.             ,helpstring("True if the Symbol window is displayed.")
  822.         ]
  823.         HRESULT  DisplaySymbolWindow(
  824.             [out, retval] IMSI_BOOL* prop // True if the Symbol window is displayed.
  825.             );
  826.  
  827.         /**
  828.          * True if the Symbol window is displayed.
  829.          */
  830.         [
  831.              propput
  832.             ,hidden, restricted
  833.             ,helpcontext(0x10000011)
  834.             ,helpstring("True if the Symbol window is displayed.")
  835.         ]
  836.         HRESULT  DisplaySymbolWindow(
  837.             [in] IMSI_BOOL prop // True if the Symbol window is displayed.
  838.             );
  839.  
  840.         /**
  841.          * Returns the Application object's Drawings collection, the collection of Drawing objects.
  842.          */
  843.         [
  844.              propget
  845.             ,helpcontext(0x10000012)
  846.             ,helpstring("Returns the Application object's Drawings collection, the collection of Drawing objects.")
  847.         ]
  848.         HRESULT  Drawings(
  849.             [out, retval] Drawings** prop // The Drawings collection.
  850.             );
  851.  
  852.         /**
  853.          * Returns the Application object's Filters collection.
  854.          */
  855.         [
  856.              propget
  857.             ,helpcontext(0x10000013)
  858.             ,helpstring("Returns the Application object's Filters collection.")
  859.         ]
  860.         HRESULT  Filters(
  861.             [out, retval] Filters** prop // The Filters collection.
  862.             );
  863.  
  864.         /**
  865.          * Returns the height of the main window.
  866.          */
  867.         [
  868.              propget
  869.             ,hidden, restricted
  870.             ,helpcontext(0x10000014)
  871.             ,helpstring("Returns the height of the main window.")
  872.         ]
  873.         HRESULT  Height(
  874.             [out, retval] double* prop // The height of the main window.
  875.             );
  876.  
  877.         /**
  878.          * Sets the height of the main window.
  879.          */
  880.         [
  881.              propput
  882.             ,hidden, restricted
  883.             ,helpcontext(0x10000014)
  884.             ,helpstring("Sets the height of the main window.")
  885.         ]
  886.         HRESULT  Height(
  887.             [in] double prop // The height of the main window.
  888.             );
  889.  
  890.         /**
  891.          * True if TurboCAD is in interactive mode.
  892.          */
  893.         [
  894.              propget
  895.             ,hidden, restricted
  896.             ,helpcontext(0x10000015)
  897.             ,helpstring("True if TurboCAD is in interactive mode.")
  898.         ]
  899.         HRESULT  Interactive(
  900.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is in interactive mode.
  901.             );
  902.  
  903.         /**
  904.          * True if TurboCAD is in interactive mode.
  905.          */
  906.         [
  907.              propput
  908.             ,hidden, restricted
  909.             ,helpcontext(0x10000015)
  910.             ,helpstring("True if TurboCAD is in interactive mode.")
  911.         ]
  912.         HRESULT  Interactive(
  913.             [in] IMSI_BOOL prop // True if TurboCAD is in interactive mode.
  914.             );
  915.  
  916.         /**
  917.          * Returns the Application object's KeyBindings collection.
  918.          */
  919.         [
  920.              propget
  921.             ,hidden, restricted
  922.             ,helpcontext(0x10000016)
  923.             ,helpstring("Returns the Application object's KeyBindings collection.")
  924.         ]
  925.         HRESULT  KeyBindings(
  926.             [out, retval] KeyBindings** prop // The KeyBindings collection.
  927.             );
  928.  
  929.         /**
  930.          * Returns the distance from the left edge of the physical screen to the left edge of the main window, in points.
  931.          */
  932.         [
  933.              propget
  934.             ,hidden, restricted
  935.             ,helpcontext(0x10000017)
  936.             ,helpstring("Returns the distance from the left edge of the physical screen to the left edge of the main window, in points.")
  937.         ]
  938.         HRESULT  Left(
  939.             [out, retval] double* prop // The main window's left edge distance.
  940.             );
  941.  
  942.         /**
  943.          * Sets the distance from the left edge of the physical screen to the left edge of the main window, in points.
  944.          */
  945.         [
  946.              propput
  947.             ,hidden, restricted
  948.             ,helpcontext(0x10000017)
  949.             ,helpstring("Sets the distance from the left edge of the physical screen to the left edge of the main window, in points.")
  950.         ]
  951.         HRESULT  Left(
  952.             [in] double prop // The main window's left edge distance.
  953.             );
  954.  
  955.         /**
  956.          * Returns the path to the LIBRARY directory, not including the final separator.
  957.          */
  958.         [
  959.              propget
  960.             ,hidden, restricted
  961.             ,helpcontext(0x10000018)
  962.             ,helpstring("Returns the path to the LIBRARY directory, not including the final separator.")
  963.         ]
  964.         HRESULT  LibraryPath(
  965.             [out, retval] BSTR* prop // The path name, as a string.
  966.             );
  967.  
  968.         /**
  969.          * Sets the path to the LIBRARY directory, not including the final separator.
  970.          */
  971.         [
  972.              propput
  973.             ,hidden, restricted
  974.             ,helpcontext(0x10000018)
  975.             ,helpstring("Sets the path to the LIBRARY directory, not including the final separator.")
  976.         ]
  977.         HRESULT  LibraryPath(
  978.             [in] BSTR prop // The path name, as a string.
  979.             );
  980.  
  981.         /**
  982.          * Returns the name of the Application object, as a string.
  983.          * Name is the default property of the Application object.
  984.          */
  985.         [
  986.              propget
  987.             ,id(DISPID_VALUE)
  988.             ,helpcontext(0x10000019)
  989.             ,helpstring("Returns the name of the Application object, as a string.")
  990.         ]
  991.         HRESULT  Name(
  992.             [out, retval] BSTR* prop // The name of the Application object.
  993.             );
  994.  
  995.         /**
  996.          * Returns the Application object's NamedColors collection.
  997.          */
  998.         [
  999.              propget
  1000.             ,helpcontext(0x1000001A)
  1001.             ,helpstring("Returns the Application object's NamedColors collection.")
  1002.         ]
  1003.         HRESULT  NamedColors(
  1004.             [out, retval] NamedColors** prop // The NamedColors collection.
  1005.             );
  1006.  
  1007.         /**
  1008.          * Returns the name and version number of the current operating system.
  1009.          */
  1010.         [
  1011.              propget
  1012.             ,hidden, restricted
  1013.             ,helpcontext(0x1000001B)
  1014.             ,helpstring("Returns the name and version number of the current operating system.")
  1015.         ]
  1016.         HRESULT  OperatingSystem(
  1017.             [out, retval] BSTR* prop // The name and version of the operating system.
  1018.             );
  1019.  
  1020.         /**
  1021.          * Returns the Application object's ApplicationOptions object.
  1022.          */
  1023.         [
  1024.              propget
  1025.             ,hidden, restricted
  1026.             ,helpcontext(0x1000001C)
  1027.             ,helpstring("Returns the Application object's ApplicationOptions object.")
  1028.         ]
  1029.         HRESULT  Options(
  1030.             [out, retval] ApplicationOptions** prop // The ApplicationOptions object.
  1031.             );
  1032.  
  1033.         /**
  1034.          * Returns the registered organization name, as a string.
  1035.          */
  1036.         [
  1037.              propget
  1038.             ,hidden, restricted
  1039.             ,helpcontext(0x1000001D)
  1040.             ,helpstring("Returns the registered organization name, as a string.")
  1041.         ]
  1042.         HRESULT  OrganizationName(
  1043.             [out, retval] BSTR* prop // The organization name.
  1044.             );
  1045.  
  1046.         /**
  1047.          * Returns the parent object for the specified object.
  1048.          * The parent of the Application object is itself.
  1049.          */
  1050.         [
  1051.              propget
  1052.             ,helpcontext(0x1000001E)
  1053.             ,helpstring("Returns the parent object for the specified object.")
  1054.         ]
  1055.         HRESULT  Parent(
  1056.             [out, retval] IApplication** prop // The parent object.
  1057.             );
  1058.  
  1059.         /**
  1060.          * Returns the complete path of the object, as a string, without including the final separator and name of the object.
  1061.          */
  1062.         [
  1063.              propget
  1064.             ,helpcontext(0x1000001F)
  1065.             ,helpstring("Returns the complete path of the object, as a string, without including the final separator and name of the object.")
  1066.         ]
  1067.         HRESULT  Path(
  1068. //             [in, lcid]    long lcid
  1069.              [in, optional]    long lcid
  1070.             ,[out, retval] BSTR* prop // The path.
  1071.             );
  1072.  
  1073.         /**
  1074.          * Returns the profile name.
  1075.          */
  1076.         [
  1077.              propget
  1078.             ,helpcontext(0x10000020)
  1079.             ,helpstring("Returns the profile name.")
  1080.         ]
  1081.         HRESULT  ProfileName(
  1082. //             [in, lcid]    long lcid
  1083.              [in, optional]    long lcid
  1084.             ,[out, retval] BSTR* prop // The name of the profile file.
  1085.             );
  1086.  
  1087.         /**
  1088.          * Sets the profile name.
  1089.          */
  1090.         [
  1091.              propput
  1092.             ,helpcontext(0x10000020)
  1093.             ,helpstring("Sets the profile name.")
  1094.         ]
  1095.         HRESULT  ProfileName(
  1096. //             [in, lcid]    long lcid
  1097.              [in, optional]    long lcid
  1098.             ,[in] BSTR prop // The profile name
  1099.             );
  1100.  
  1101.         /**
  1102.          * Display a warning or notification message.
  1103.          */
  1104.         [
  1105.              helpcontext(0x10000021)
  1106.             ,helpstring("Display a warning or notification message.")
  1107.         ]
  1108.         HRESULT  MessageBox(
  1109.             [in] BSTR Message, // Message string
  1110.             [in, optional] VARIANT* Flags, // MB_ flags for API ::MessageBox call
  1111.             [out, retval] long* prop // Id of button that dismissed the dialog
  1112.             );
  1113.  
  1114.         /**
  1115.          * Returns the Application object's Properties collection.
  1116.          * For the complete list of available Application Properties, follow
  1117.          * <A HREF="appprops.html">this link</A>.
  1118.          *
  1119.          * @see TCADAPI TCWAppPropertyGet/Set functions
  1120.          */
  1121.         [
  1122.              propget
  1123.             ,helpcontext(0x10000022)
  1124.             ,helpstring("Returns the Application object's Properties collection.")
  1125.         ]
  1126.         HRESULT  Properties(
  1127.             [out, retval] Properties** prop // The Properties collection.
  1128.             );
  1129.  
  1130.         /**
  1131.          * Returns the Application object's RegenMethods collection.
  1132.          */
  1133.         [
  1134.              propget
  1135.             ,helpcontext(0x10000023)
  1136.             ,helpstring("Returns the Application object's RegenMethods collection.")
  1137.         ]
  1138.         HRESULT  RegenMethods(
  1139.             [out, retval] RegenMethods** prop // The RegenMethods collection.
  1140.             );
  1141.  
  1142.         /**
  1143.          * Returns the Application object's ScaleSysColl.
  1144.          */
  1145.         [
  1146.              propget
  1147.             ,hidden, restricted
  1148.             ,helpcontext(0x10000024)
  1149.             ,helpstring("Returns the Application object's ScaleSysColl.")
  1150.         ]
  1151.         HRESULT  ScaleSystems(
  1152.             [out, retval] ScaleSystems** prop // The ScaleSysColl.
  1153.             );
  1154.  
  1155.         /**
  1156.          * True if screen updating is on.
  1157.          */
  1158.         [
  1159.              propget
  1160.             ,hidden, restricted
  1161.             ,helpcontext(0x10000025)
  1162.             ,helpstring("True if screen updating is on.")
  1163.         ]
  1164.         HRESULT  ScreenUpdating(
  1165.             [out, retval] IMSI_BOOL* prop // True if screen updating is on.
  1166.             );
  1167.  
  1168.         /**
  1169.          * True if screen updating is on.
  1170.          */
  1171.         [
  1172.              propput
  1173.             ,hidden, restricted
  1174.             ,helpcontext(0x10000025)
  1175.             ,helpstring("True if screen updating is on.")
  1176.         ]
  1177.         HRESULT  ScreenUpdating(
  1178.             [in] IMSI_BOOL prop // True if screen updating is on.
  1179.             );
  1180.  
  1181.         /**
  1182.          * Returns the Selection object of the active Drawing object.
  1183.          */
  1184.         [
  1185.              propget
  1186.             ,helpcontext(0x10000026)
  1187.             ,helpstring("Returns the selection of the active Drawing object.")
  1188.         ]
  1189.         HRESULT  Selection(
  1190.             [out, retval] Selection** prop // The Selection object.
  1191.             );
  1192.  
  1193.         /**
  1194.          * True if ToolTips are turned on.
  1195.          */
  1196.         [
  1197.              propget
  1198.             ,hidden, restricted
  1199.             ,helpcontext(0x10000027)
  1200.             ,helpstring("True if ToolTips are turned on.")
  1201.         ]
  1202.         HRESULT  ShowToolTips(
  1203.             [out, retval] IMSI_BOOL* prop // True if ToolTips are turned on.
  1204.             );
  1205.  
  1206.         /**
  1207.          * True if ToolTips are turned on.
  1208.          */
  1209.         [
  1210.              propput
  1211.             ,hidden, restricted
  1212.             ,helpcontext(0x10000027)
  1213.             ,helpstring("True if ToolTips are turned on.")
  1214.         ]
  1215.         HRESULT  ShowToolTips(
  1216.             [in] IMSI_BOOL prop // True if ToolTips are turned on.
  1217.             );
  1218.  
  1219.         /**
  1220.          * Returns the active snap modes.
  1221.          * <p>
  1222.          * A long integer that can be tested against the ImsiSnapMode enumerated values.
  1223.          */
  1224.         [
  1225.              propget
  1226.             ,helpcontext(0x10000028)
  1227.             ,helpstring("Returns the active snap modes.")
  1228.         ]
  1229.         HRESULT  SnapModes(
  1230.             [out, retval] long* prop // The active snap modes.
  1231.             );
  1232.  
  1233.         /**
  1234.          * Sets the active snap modes.
  1235.          */
  1236.         [
  1237.              propput
  1238.             ,helpcontext(0x10000028)
  1239.             ,helpstring("Sets the active snap modes.")
  1240.         ]
  1241.         HRESULT  SnapModes(
  1242.             [in] long prop // The active snap modes, composed of bitwise or'ed ImsiSnapMode values.
  1243.             );
  1244.  
  1245.         /**
  1246.          * Sets the text in the Application object's status bar.
  1247.          */
  1248.         [
  1249.              propput
  1250.             ,hidden, restricted
  1251.             ,helpcontext(0x10000029)
  1252.             ,helpstring("Sets the text in the Application object's status bar.")
  1253.         ]
  1254.         HRESULT  StatusBar(
  1255.             [in] BSTR prop // The text to set.
  1256.             );
  1257.  
  1258.         /**
  1259.          * Appends or replaces the text in the Application object's status dialog.
  1260.          */
  1261.         [
  1262.              propput
  1263.             ,hidden, restricted
  1264.             ,helpcontext(0x1000002A)
  1265.             ,helpstring("Appends or replaces the text in the Application object's status dialog.")
  1266.         ]
  1267.         HRESULT  StatusDialogText(
  1268.             [in] BSTR prop, // The text to append or replace.
  1269.             [in, optional] VARIANT* Replace // True to replace text.
  1270.             );
  1271.  
  1272.         /**
  1273.          * Returns the object's Tables collection.
  1274.          */
  1275.         [
  1276.              propget
  1277.             ,hidden, restricted
  1278.             ,helpcontext(0x1000002B)
  1279.             ,helpstring("Returns the object's Tables collection.")
  1280.         ]
  1281.         HRESULT  Tables(
  1282.             [out, retval] Tables** prop // The Tables collection.
  1283.             );
  1284.  
  1285.         /**
  1286.          * Returns the local path where templates are stored.
  1287.          */
  1288.         [
  1289.              propget
  1290.             ,hidden, restricted
  1291.             ,helpcontext(0x1000002C)
  1292.             ,helpstring("Returns the local path where templates are stored.")
  1293.         ]
  1294.         HRESULT  TemplatesPath(
  1295.             [out, retval] BSTR* prop // The path name.
  1296.             );
  1297.  
  1298.         /**
  1299.          * Sets the local path where templates are stored.
  1300.          */
  1301.         [
  1302.              propput
  1303.             ,hidden, restricted
  1304.             ,helpcontext(0x1000002C)
  1305.             ,helpstring("Sets the local path where templates are stored.")
  1306.         ]
  1307.         HRESULT  TemplatesPath(
  1308.             [in] BSTR prop // The path name.
  1309.             );
  1310.  
  1311.         /**
  1312.          * Returns the Application object's CommandBars collection.
  1313.          */
  1314.         [
  1315.              propget
  1316.             ,hidden, restricted
  1317.             ,helpcontext(0x1000002D)
  1318.             ,helpstring("Returns the Application object's CommandBars collection.")
  1319.         ]
  1320.         HRESULT  CommandBars(
  1321.             [out, retval] CommandBars** prop // The CommandBars collection.
  1322.             );
  1323.  
  1324.         /**
  1325.          * Returns the Application object's Tools collection.
  1326.          */
  1327.         [
  1328.              propget
  1329.             ,hidden, restricted
  1330.             ,helpcontext(0x1000002E)
  1331.             ,helpstring("Returns the Application object's Tools collection.")
  1332.         ]
  1333.         HRESULT  Tools(
  1334.             [out, retval] Tools** prop // The Tools collection.
  1335.             );
  1336.  
  1337.         /**
  1338.          * The distance from the top edge of the physical screen to the top edge of the main window, in points.
  1339.          */
  1340.         [
  1341.              propget
  1342.             ,hidden, restricted
  1343.             ,helpcontext(0x1000002F)
  1344.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the main window, in points.")
  1345.         ]
  1346.         HRESULT  Top(
  1347.             [out, retval] double* prop // The main window's top edge distance.
  1348.             );
  1349.  
  1350.         /**
  1351.          * The distance from the top edge of the physical screen to the top edge of the main window, in points.
  1352.          */
  1353.         [
  1354.              propput
  1355.             ,hidden, restricted
  1356.             ,helpcontext(0x1000002F)
  1357.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the main window, in points.")
  1358.         ]
  1359.         HRESULT  Top(
  1360.             [in] double prop // The main window's top edge distance.
  1361.             );
  1362.  
  1363.         /**
  1364.          * Returns the height of the space that can be used in the main window area (the window is not maximized).
  1365.          */
  1366.         [
  1367.              propget
  1368.             ,hidden, restricted
  1369.             ,helpcontext(0x10000030)
  1370.             ,helpstring("Returns the height of the space that can be used in the main window area (the window is not maximized).")
  1371.         ]
  1372.         HRESULT  UsableHeight(
  1373.             [out, retval] double* prop // The usable height.
  1374.             );
  1375.  
  1376.         /**
  1377.          * Returns the width of the space that can be used in the main window area (the window is not maximized).
  1378.          */
  1379.         [
  1380.              propget
  1381.             ,hidden, restricted
  1382.             ,helpcontext(0x10000031)
  1383.             ,helpstring("Returns the width of the space that can be used in the main window area (the window is not maximized).")
  1384.         ]
  1385.         HRESULT  UsableWidth(
  1386.             [out, retval] double* prop // The usable width.
  1387.             );
  1388.  
  1389.         /**
  1390.          * True if the user interface is active.
  1391.          */
  1392.         [
  1393.              propget
  1394.             ,helpcontext(0x10000032)
  1395.             ,helpstring("True if the user interface is active.")
  1396.         ]
  1397.         HRESULT  UserControl(
  1398.             [out, retval] IMSI_BOOL* prop // True if the user interface is active.
  1399.             );
  1400.  
  1401.         /**
  1402.          * True if the user interface is active.
  1403.          */
  1404.         [
  1405.              propput
  1406.             ,helpcontext(0x10000032)
  1407.             ,helpstring("True if the user interface is active.")
  1408.         ]
  1409.         HRESULT  UserControl(
  1410.             [in] IMSI_BOOL prop // True if the user interface is active.
  1411.             );
  1412.  
  1413.         /**
  1414.          * Returns the name of the current user, as a string.
  1415.          */
  1416.         [
  1417.              propget
  1418.             ,hidden, restricted
  1419.             ,helpcontext(0x10000033)
  1420.             ,helpstring("Returns the name of the current user, as a string.")
  1421.         ]
  1422.         HRESULT  UserName(
  1423.             [out, retval] BSTR* prop // The user name.
  1424.             );
  1425.  
  1426.         /**
  1427.          * Sets the name of the current user, as a string.
  1428.          */
  1429.         [
  1430.              propput
  1431.             ,hidden, restricted
  1432.             ,helpcontext(0x10000033)
  1433.             ,helpstring("Sets the name of the current user, as a string.")
  1434.         ]
  1435.         HRESULT  UserName(
  1436.             [in] BSTR prop // The user name.
  1437.             );
  1438.  
  1439.         /**
  1440.          * Returns the version number of TurboCAD, as a string.
  1441.          */
  1442.         [
  1443.              propget
  1444.             ,helpcontext(0x10000034)
  1445.             ,helpstring("Returns the version number of TurboCAD, as a string.")
  1446.         ]
  1447.         HRESULT  Version(
  1448. //             [in, lcid]    long lcid
  1449.              [in, optional]    long lcid
  1450.             ,[out, retval] BSTR* prop // The version number.
  1451.             );
  1452.  
  1453.         /**
  1454.          * True if the main window is visible.
  1455.          */
  1456.         [
  1457.              propget
  1458.             ,helpcontext(0x10000035)
  1459.             ,helpstring("True if the main window is visible.")
  1460.         ]
  1461.         HRESULT  Visible(
  1462.             [out, retval] IMSI_BOOL* prop // True if the main window is visible.
  1463.             );
  1464.  
  1465.         /**
  1466.          * True if the main window is visible.
  1467.          */
  1468.         [
  1469.              propput
  1470.             ,helpcontext(0x10000035)
  1471.             ,helpstring("True if the main window is visible.")
  1472.         ]
  1473.         HRESULT  Visible(
  1474.             [in] IMSI_BOOL prop // True if the main window is visible.
  1475.             );
  1476.  
  1477.         /**
  1478.          * The distance from the left edge of the application window to the right edge of the application window.
  1479.          */
  1480.         [
  1481.              propget
  1482.             ,hidden, restricted
  1483.             ,helpcontext(0x10000036)
  1484.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  1485.         ]
  1486.         HRESULT  Width(
  1487.             [out, retval] double* prop // The width of the main window.
  1488.             );
  1489.  
  1490.         /**
  1491.          * The distance from the left edge of the application window to the right edge of the application window.
  1492.          */
  1493.         [
  1494.              propput
  1495.             ,hidden, restricted
  1496.             ,helpcontext(0x10000036)
  1497.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  1498.         ]
  1499.         HRESULT  Width(
  1500.             [in] double prop // The width of the main window.
  1501.             );
  1502.  
  1503.         /**
  1504.          * Returns the state of the window.
  1505.          */
  1506.         [
  1507.              propget
  1508.             ,hidden, restricted
  1509.             ,helpcontext(0x10000037)
  1510.             ,helpstring("Returns the state of the window.")
  1511.         ]
  1512.         HRESULT  WindowState(
  1513.             [out, retval] ImsiWindowState* prop // The window state.
  1514.             );
  1515.  
  1516.         /**
  1517.          * Sets the state of the window.
  1518.          */
  1519.         [
  1520.              propput
  1521.             ,hidden, restricted
  1522.             ,helpcontext(0x10000037)
  1523.             ,helpstring("Sets the state of the window.")
  1524.         ]
  1525.         HRESULT  WindowState(
  1526.             [in] ImsiWindowState prop // The window state.
  1527.             );
  1528.  
  1529.         /**
  1530.          * Returns the Application object's Windows collection, the collection of Window objects.
  1531.          */
  1532.         [
  1533.              propget
  1534.             ,hidden, restricted
  1535.             ,helpcontext(0x10000038)
  1536.             ,helpstring("Returns the Application object's Windows collection, the collection of Window objects.")
  1537.         ]
  1538.         HRESULT  Windows(
  1539.             [out, retval] Windows** prop // The Windows collection.
  1540.             );
  1541.  
  1542.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  1543.  
  1544.         /**
  1545.          * Compose a key code out of a number of key combinations.
  1546.          */
  1547.         [
  1548.              helpcontext(0x10000039)
  1549.             ,helpstring("Compose a key code out of a number of key combinations.")
  1550.             ,hidden, restricted
  1551.         ]
  1552.         HRESULT  BuildKeyCode(
  1553.             [in] ImsiKey BaseKey, // The base key
  1554.             [in, optional] VARIANT* ModKey, // The key modifier
  1555.             [in, optional] VARIANT* ModKey2, // A second key modifier
  1556.             [in, optional] VARIANT* ModKey3, // A third key modifier
  1557.             [out, retval] long* prop // The calculated key code
  1558.             );
  1559.  
  1560.         /**
  1561.          * Checks the spelling of a single word. Returns True if the word is found in one of the dictionaries, False if it is not.
  1562.          * If CustomDictionary is not supplied, searches all dictionaries.
  1563.          * If IgnoreUppercase is not supplied, spell check will be case sensitive.
  1564.          * <p>
  1565.          * True if the word is found in one of the dictionaries.
  1566.          */
  1567.         [
  1568.              helpcontext(0x1000003A)
  1569.             ,helpstring("Checks the spelling of a single word. Returns True if the word is found in one of the dictionaries, False if it is not.")
  1570.             ,hidden, restricted
  1571.         ]
  1572.         HRESULT     CheckSpelling(
  1573.             [in] BSTR Word, // The word to check.
  1574.             [in, optional] VARIANT* CustomDictionary, // The name of a dictionary.
  1575.             [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  1576.       [in, optional] VARIANT* CustomDictionary2, // The name of a dictionary.
  1577.       [in, optional] VARIANT* CustomDictionary3, // The name of a dictionary.
  1578.       [in, optional] VARIANT* CustomDictionary4, // The name of a dictionary.
  1579.       [in, optional] VARIANT* CustomDictionary5, // The name of a dictionary.
  1580.       [in, optional] VARIANT* CustomDictionary6, // The name of a dictionary.
  1581.       [in, optional] VARIANT* CustomDictionary7, // The name of a dictionary.
  1582.       [in, optional] VARIANT* CustomDictionary8, // The name of a dictionary.
  1583.       [in, optional] VARIANT* CustomDictionary9, // The name of a dictionary.
  1584.       [in, optional] VARIANT* CustomDictionary10, // The name of a dictionary.
  1585.             [out, retval] IMSI_BOOL* prop // True if the word was found in any of the dictionaries.
  1586.             );
  1587.  
  1588.         // Displays the standard Open dialog box and gets a filename from the user without actually opening any files.
  1589.         [
  1590.              helpcontext(0x1000003B)
  1591.             ,helpstring("Displays the standard Open dialog box and gets a filename from the user without actually opening any files.")
  1592.         ]
  1593.         HRESULT  GetOpenFilename(
  1594.             [in, optional] VARIANT* Filter, // If supplied, just use one filter.
  1595.             [in, optional] VARIANT* Title, // Title of dialog box.
  1596.             [in, optional] VARIANT* ButtonText, // Text for OK button.
  1597.             [in, optional] VARIANT* MultiSelect, // True to allow multiple selections.
  1598.             [out, retval] BSTR* prop // File name(s).
  1599.             );
  1600.  
  1601.         /**
  1602.          * Displays the standard Save As dialog box and gets a filename from the user without actually saving any files.
  1603.          */
  1604.         [
  1605.              helpcontext(0x1000003C)
  1606.             ,helpstring("Displays the standard Save As dialog box and gets a filename from the user without actually saving any files.")
  1607.         ]
  1608.         HRESULT  GetSaveAsFilename(
  1609.             [in, optional] VARIANT* InitialFilename, // File name to start with.
  1610.             [in, optional] VARIANT* Filter, // If supplied, just use one filter.
  1611.             [in, optional] VARIANT* Title, // Title of dialog box.
  1612.             [in, optional] VARIANT* ButtonText, // Text for OK button.
  1613.             [out, retval] BSTR* prop // File name.
  1614.             );
  1615.  
  1616.         /**
  1617.          * Displays a Help topic.
  1618.          */
  1619.         [
  1620.              helpcontext(0x1000003D)
  1621.             ,helpstring("Displays a Help topic.")
  1622.         ]
  1623.         HRESULT  Help(
  1624.             [in, optional] VARIANT* HelpFile, // The name of a help file.
  1625.             [in, optional] VARIANT* HelpContextID // A help context id.
  1626.             );
  1627.  
  1628.         /**
  1629.          * Displays a dialog box for user input. Returns the information entered in the dialog box.
  1630.          */
  1631.         [
  1632.              helpcontext(0x1000003E)
  1633.             ,helpstring("Displays a dialog box for user input. Returns the information entered in the dialog box.")
  1634.             ,hidden, restricted
  1635.         ]
  1636.         HRESULT  InputBox(
  1637.             [in] VARIANT* bstrPrompt,
  1638.             [in, optional] VARIANT* bstrTitle,
  1639.             [in, optional] VARIANT* Default,
  1640.             [in, optional] VARIANT* sLeft,
  1641.             [in, optional] VARIANT* sTop,
  1642.             [in, optional] VARIANT* bstrHelpFile,
  1643.             [in, optional] VARIANT* ulHelpContextID,
  1644.             [in, optional] VARIANT* sType,
  1645.             [out, retval] VARIANT* prop
  1646.             );
  1647.  
  1648.         /**
  1649.          * Return key codes as a string.
  1650.          */
  1651.         [
  1652.              helpcontext(0x1000003F)
  1653.             ,helpstring("Return key codes as a string.")
  1654.             ,hidden, restricted
  1655.         ]
  1656.         HRESULT  KeyString(
  1657.             [in] long KeyCode, // The key code
  1658.             [in, optional] VARIANT* KeyCode2, // A second key code
  1659.             [out, retval] BSTR* prop // The returned string
  1660.             );
  1661.  
  1662.         /**
  1663.          * Restores the properties of the Graphic object that will be used as a template for all Graphics.Add calls.
  1664.          * Invoke this method to balance a previous call to PushGraphicDefaults.
  1665.          */
  1666.         [
  1667.              helpcontext(0x10000040)
  1668.             ,helpstring("Restores the properties of the Graphic object that will be used as a template for all Graphics.Add calls.")
  1669.         ]
  1670.         HRESULT  PopGraphicDefaults(
  1671.             [in, optional] VARIANT* PrevDefaults // The previous default level to restore to.
  1672.         );
  1673.  
  1674.         /**
  1675.          * Restores the properties of the Vertex object that will be used as a template for all Vertices.Add calls.
  1676.          * Invoke this method to balance a previous call to PushVertexDefaults.
  1677.          */
  1678.         [
  1679.              helpcontext(0x10000041)
  1680.             ,helpstring("Restores the properties of the Vertex object that will be used as a template for all Vertices.Add calls.")
  1681.         ]
  1682.         HRESULT  PopVertexDefaults(
  1683.             [in, optional] VARIANT* PrevDefaults // The previous default level to restore to.
  1684.         );
  1685.  
  1686.         /**
  1687.          * Sets the properties of the Graphic object that will be used as a template for all Graphics.Add calls.
  1688.          * Modifies the existing template according to the optional parameters passed.
  1689.          * Restore the existing template by invoking PopGraphicDefaults.
  1690.          */
  1691.         [
  1692.              helpcontext(0x10000042)
  1693.             ,helpstring("Sets the properties of the Graphic object that will be used as a template for all Graphics.Add calls.")
  1694.         ]
  1695.         HRESULT  PushGraphicDefaults(
  1696.             [in, optional] VARIANT* Editable, // True if the Graphic object can be moved or deleted.
  1697.             [in, optional] VARIANT* Visible, // True if the Graphic object is visible.
  1698.             [in, optional] VARIANT* Cosmetic, // True if the Graphic object is not part of the main graphic.
  1699.             [in, optional] VARIANT* Unbounded, // True if the Graphic object is unbounded.
  1700.             [out, retval] long* DefaultLevel // The new default level.
  1701.             );
  1702.  
  1703.         /**
  1704.          * Sets the properties of the Vertex object that will be used as a template for all Vertices.Add calls.
  1705.          * Modifies the existing template according to the optional parameters passed.
  1706.          * Restore the existing template by invoking PopVertexDefaults.
  1707.          */
  1708.         [
  1709.              helpcontext(0x10000043)
  1710.             ,helpstring("Sets the properties of the Vertex object that will be used as a template for all Vertices.Add calls.")
  1711.         ]
  1712.         HRESULT  PushVertexDefaults(
  1713.             [in, optional] VARIANT* PenDown, // True if the Vertex object should draw.
  1714.             [in, optional] VARIANT* Selectable, // True if the Vertex object can be selected.
  1715.             [in, optional] VARIANT* Snappable, // True if the Vertex object can be snapped to.
  1716.             [in, optional] VARIANT* Editable, // True if the Vertex object can be moved or deleted.
  1717.             [in, optional] VARIANT* Linkable, // True if the Vertex object can be linked to.
  1718.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  1719.             [out, retval] long* DefaultLevel // The new default level.
  1720.             );
  1721.  
  1722.         /**
  1723.          * Quits the application.
  1724.          * Does not run any OnClose macros before exiting.
  1725.          *
  1726.          * @see TCADAPI TCWAppExit function
  1727.          */
  1728.         [
  1729.              helpcontext(0x10000044)
  1730.             ,helpstring("Quits the application.")
  1731.         ]
  1732.         HRESULT  Quit(
  1733.         );
  1734.  
  1735.         /**
  1736.          * Redoes the last user interface action.
  1737.          */
  1738.         [
  1739.              helpcontext(0x10000045)
  1740.             ,helpstring("Redoes the last user interface action.")
  1741.         ]
  1742.         HRESULT  Redo(
  1743.             [in] VARIANT* Times, // Number of actions to redo.
  1744.             [out, retval] IMSI_BOOL* prop // True if the redo was successful.
  1745.         );
  1746.  
  1747.         /**
  1748.          * Repeats the last user interface action.
  1749.          */
  1750.         [
  1751.              helpcontext(0x10000046)
  1752.             ,helpstring("Repeats the last user interface action.")
  1753.             ,hidden, restricted
  1754.         ]
  1755.         HRESULT  Repeat(
  1756.             [in] VARIANT* Times, // Number of actions to repeat.
  1757.             [out, retval] IMSI_BOOL* prop // True if the repeat was successful.
  1758.         );
  1759.  
  1760.         /**
  1761.          * NOTE: It's a big no-no to specify "[out, retval] VARIANT* prop"
  1762.          * in VB 5.0's browser...
  1763.          * <p>
  1764.          * Run a macro (with optional arguments).
  1765.          */
  1766.         [
  1767.              helpcontext(0x10000047)
  1768.             ,helpstring("Run a macro (with optional arguments).")
  1769.             ,hidden, restricted
  1770.         ]
  1771.         HRESULT  RunMacro(
  1772.             [in, optional] VARIANT* Macro, // The name of the macro.
  1773.             [in, optional] VARIANT* Arg1, // An argument to pass to the macro.
  1774.             [in, optional] VARIANT* Arg2, // An argument to pass to the macro.
  1775.             [in, optional] VARIANT* Arg3, // An argument to pass to the macro.
  1776.             [in, optional] VARIANT* Arg4, // An argument to pass to the macro.
  1777.             [in, optional] VARIANT* Arg5, // An argument to pass to the macro.
  1778.             [in, optional] VARIANT* Arg6, // An argument to pass to the macro.
  1779.             [in, optional] VARIANT* Arg7, // An argument to pass to the macro.
  1780.             [in, optional] VARIANT* Arg8, // An argument to pass to the macro.
  1781.             [in, optional] VARIANT* Arg9, // An argument to pass to the macro.
  1782.             [in, optional] VARIANT* Arg10, // An argument to pass to the macro.
  1783.             [in, optional] VARIANT* Arg11, // An argument to pass to the macro.
  1784.             [in, optional] VARIANT* Arg12, // An argument to pass to the macro.
  1785.             [in, optional] VARIANT* Arg13, // An argument to pass to the macro.
  1786.             [in, optional] VARIANT* Arg14, // An argument to pass to the macro.
  1787.             [in, optional] VARIANT* Arg15, // An argument to pass to the macro.
  1788.             [in, optional] VARIANT* Arg16, // An argument to pass to the macro.
  1789.             [out, retval] VARIANT* prop // The value returned by the macro.
  1790.             );
  1791.  
  1792.         /**
  1793.          * Saves the current workspace.
  1794.          */
  1795.         [
  1796.              helpcontext(0x10000048)
  1797.             ,helpstring("Saves the current workspace.")
  1798.             ,hidden, restricted
  1799.         ]
  1800.         HRESULT  SaveWorkspace(
  1801.             [in, optional] VARIANT* bstrFilename // Name for workspace file.
  1802.             );
  1803.  
  1804.         /**
  1805.          * Cancels the last user interface action.
  1806.          */
  1807.         [
  1808.              helpcontext(0x10000049)
  1809.             ,helpstring("Cancels the last user interface action.")
  1810.         ]
  1811.         HRESULT  Undo(
  1812.             [in] VARIANT* Times, // Number of actions to undo.
  1813.             [out, retval] IMSI_BOOL* prop // True if the Undo was successful.
  1814.         );
  1815.  
  1816.         /**
  1817.          * Returns a Graphic object associated with the internal handle.
  1818.          * Private.
  1819.          */
  1820.         [
  1821.              restricted
  1822.             ,helpcontext(0x1000004A)
  1823.             ,helpstring("Private.  Returns a Graphic object associated with the internal handle.")
  1824.         ]
  1825.         HRESULT  _GDispatch(
  1826.             [in] long hGraphic,
  1827.             [in] IUnknown* pIUnkOuter,
  1828.             [out] IGraphic** ppIGraphic,
  1829.             [out] Graphics** ppGraphics
  1830.             );
  1831.  
  1832.         /**
  1833.          * Returns a Tool object associated with the internal handle.
  1834.          * Private.
  1835.          */
  1836.         [
  1837.              restricted
  1838.             ,helpcontext(0x1000004B)
  1839.             ,helpstring("Private.  Returns a Tool object associated with the internal handle.")
  1840.         ]
  1841.         HRESULT  _TDispatch(
  1842.             [in] long nFamilyIndex,
  1843.             [in] long nToolIndex,
  1844.             [out] Tool** ppTool
  1845.             );
  1846.  
  1847.         /**
  1848.          * Returns a View object associated with the internal handle.
  1849.          * Private.
  1850.          * <p>
  1851.          */
  1852.         [
  1853.              restricted
  1854.             ,helpcontext(0x1000004C)
  1855.             ,helpstring("Private.  Returns a View object associated with the internal handle.")
  1856.         ]
  1857.         HRESULT  _VDispatch(
  1858.             [in] long hViewport,
  1859.             [out] View** ppView,
  1860.             [out] IDrawing** ppIDrawing
  1861.             );
  1862.  
  1863.         /**
  1864.          * Connects an ApplicationEvents object sink to TurboCAD.
  1865.          * Set the mask parameter to only receive a subset of the full event set.
  1866.          */
  1867.         [
  1868.              helpcontext(0x1000004D)
  1869.             ,helpstring("Connects an ApplicationEvents object sink to TurboCAD.")
  1870.         ]
  1871.         HRESULT  ConnectEvents(
  1872.             [in] IDispatch* EventSink, // Object that will receive events.
  1873.             [in, optional] VARIANT* EventMask, // Mask bits or'ed together (see ImsiEventMask).
  1874.             [out, retval] long* ConnectionID // ID to be used in DisconnectEvents method.
  1875.             );
  1876.  
  1877.         /**
  1878.          * Disconnects an ApplicationEvents object sink.
  1879.          */
  1880.         [
  1881.              helpcontext(0x1000004E)
  1882.             ,helpstring("Disconnects an ApplicationEvents object sink.")
  1883.         ]
  1884.         HRESULT  DisconnectEvents(
  1885.             [in] long ConnectionID // ID returned by ConnectEvents method.
  1886.             );
  1887.  
  1888.         /**
  1889.          * Interpret Expression string using TurboLISP. Returns the result as a String
  1890.          */
  1891.         [
  1892.              helpcontext(0x1000004F)
  1893.             ,helpstring("Interpret Expression string using TurboLISP. Returns the result as a String.")
  1894.         ]
  1895.         HRESULT  RunTurboLISP(
  1896.             [in] BSTR* Expression,        // the LISP expression as a string
  1897.             [out, retval] BSTR* Result    // the result as a string
  1898.             );
  1899.  
  1900.         /**
  1901.          * Returns the Application object's TieMethods collection.
  1902.          */
  1903.         [
  1904.              propget
  1905.             ,helpcontext(0x10000050)
  1906.             ,helpstring("Returns the Application object's TieMethods collection.")
  1907.         ]
  1908.         HRESULT  TieMethods(
  1909.             [out, retval] IDispatch** prop // The TieMethods collection.
  1910.             );
  1911.  
  1912.         /**
  1913.          * Returns the Application object's Renders collection.
  1914.          */
  1915.         [
  1916.              propget
  1917.             ,helpcontext(0x10000051)
  1918.             ,helpstring("Returns the Application object's Renders collection.")
  1919.         ]
  1920.         HRESULT  Renders(
  1921.             [out, retval] IDispatch** prop // The Renders collection.
  1922.             );
  1923.          
  1924.         /**
  1925.          * Returns the Application object's ToolEvents interface.
  1926.          */
  1927.         [
  1928.              propget
  1929.             ,helpcontext(0x10000052)
  1930.             ,helpstring("Returns the Application object's ToolEvents interface.")
  1931.         ]
  1932.         HRESULT  ToolEvents(
  1933.             [out, retval] IDispatch** prop // The ToolEvents interface
  1934.             );
  1935.  
  1936.         /**
  1937.          * Returns the Application object's Materials collection.
  1938.          */
  1939.         [
  1940.              propget
  1941.             ,helpcontext(0x12345678)
  1942.             ,helpstring("Returns the Application object's Materials collection.")
  1943.         ]
  1944.         HRESULT  Materials(
  1945.             [out, retval] IDispatch** prop // The ToolEvents interface
  1946.             );
  1947.  
  1948.         /**
  1949.          * Returns the Application object's Environments collection.
  1950.          */
  1951.         [
  1952.              propget
  1953.             ,helpcontext(0x12345678)
  1954.             ,helpstring("Returns the Application object's Environments collection.")
  1955.         ]
  1956.         HRESULT  Environments(
  1957.             [out, retval] IDispatch** prop // The ToolEvents interface
  1958.             );
  1959.  
  1960.         /**
  1961.          * Returns the Application object's Luminances collection.
  1962.          */
  1963.         [
  1964.              propget
  1965.             ,helpcontext(0x12345678)
  1966.             ,helpstring("Returns the Application object's Luminances collection.")
  1967.         ]
  1968.         HRESULT  Luminances(
  1969.             [out, retval] IDispatch** prop // The ToolEvents interface
  1970.             );
  1971.     };
  1972.  
  1973.     /**
  1974.      * A TurboCAD drawing (document).
  1975.      * Allows access to the document's properties.
  1976.      * Allows access to the graphics contained within the document.
  1977.      */
  1978.     [
  1979.          object
  1980.         ,uuid(6A481107-E531-11CF-A115-00A024158DAF)
  1981.         ,oleautomation
  1982.         ,dual
  1983.         ,helpcontext(0x10010000)
  1984.         ,helpstring("A TurboCAD drawing.")
  1985.     ]
  1986.     interface IDrawing : IDispatch
  1987.     {
  1988.  
  1989.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  1990.  
  1991.         /**
  1992.          * Returns the active Window object.
  1993.          *
  1994.          * @see TCADAPI TCWActiveWindow function
  1995.          */
  1996.         [
  1997.              propget
  1998.             ,hidden, restricted
  1999.             ,helpcontext(0x10010001)
  2000.             ,helpstring("Returns the active Window object.")
  2001.         ]
  2002.         HRESULT  ActiveWindow(
  2003.             [out, retval] Window** prop // The active Window object.
  2004.             );
  2005.  
  2006.         /**
  2007.          * Returns an Application object that represents the owner of the specified object.
  2008.          */
  2009.         [
  2010.              propget
  2011.             ,helpcontext(0x10010002)
  2012.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  2013.         ]
  2014.         HRESULT  Application(
  2015.             [out, retval] IApplication** prop // The Application object.
  2016.             );
  2017.  
  2018.         /**
  2019.          * Returns the Drawing object's Blocks collection.
  2020.          */
  2021.         [
  2022.              propget
  2023.             ,helpcontext(0x10010003)
  2024.             ,helpstring("Returns the Drawing object's Blocks collection.")
  2025.         ]
  2026.         HRESULT  Blocks(
  2027.             [out, retval] Blocks** prop // The Blocks collection.
  2028.             );
  2029.  
  2030.         /**
  2031.          * Returns the Drawing object's BrushStyles collection.
  2032.          */
  2033.         [
  2034.              propget
  2035.             ,helpcontext(0x10010004)
  2036.             ,helpstring("Returns the Drawing object's BrushStyles collection.")
  2037.         ]
  2038.         HRESULT  BrushStyles(
  2039.             [out, retval] BrushStyles** prop // The BrushStyles collection.
  2040.             );
  2041.  
  2042.         /**
  2043.          * Returns a DocumentProperties collection that represents all the built-in document properties for the specfied drawing.
  2044.          */
  2045.         [
  2046.              propget
  2047.             ,hidden, restricted
  2048.             ,helpcontext(0x10010005)
  2049.             ,helpstring("Returns a DocumentProperties collection that represents all the built-in document properties for the specfied drawing.")
  2050.         ]
  2051.         HRESULT  BuiltinDocumentProperties(
  2052.             [out, retval] IDispatch** prop // The DocumentProperties collection
  2053.             );
  2054.  
  2055.         /**
  2056.          * Returns a DocumentProperties collection that represents all the custom document properties for the specfied drawing.
  2057.          */
  2058.         [
  2059.              propget
  2060.             ,hidden, restricted
  2061.             ,helpcontext(0x10010006)
  2062.             ,helpstring("Returns a DocumentProperties collection that represents all the custom document properties for the specfied drawing.")
  2063.         ]
  2064.         HRESULT  CustomDocumentProperties(
  2065.             [out, retval] IDispatch** prop // The DocumentProperties collection.
  2066.             );
  2067.  
  2068.         /**
  2069.          * True if the Drawing object is embedded.
  2070.          */
  2071.         [
  2072.              propget
  2073.             ,hidden, restricted
  2074.             ,helpcontext(0x10010007)
  2075.             ,helpstring("True if Drawing object is embedded.")
  2076.         ]
  2077.         HRESULT  Embedded(
  2078.             [out, retval] IMSI_BOOL* prop // True if the Drawing object is embedded.
  2079.             );
  2080.  
  2081.         /**
  2082.          * Returns the name of the Drawing object, including its path on disk, as a string.
  2083.          */
  2084.         [
  2085.              propget
  2086.             ,helpcontext(0x10010008)
  2087.             ,helpstring("Returns the name of the Drawing object, including its path on disk, as a string.")
  2088.             ,hidden, restricted
  2089.         ]
  2090.         HRESULT  FullName(
  2091.             [out, retval] BSTR* prop // The full path name.
  2092.             );
  2093.  
  2094.         /**
  2095.          * Returns the Drawing object's Graphics collection.
  2096.          */
  2097.         [
  2098.              propget
  2099.             ,helpcontext(0x10010009)
  2100.             ,helpstring("Returns the Drawing object's Graphics collection.")
  2101.         ]
  2102.         HRESULT  Graphics(
  2103.             [out, retval] Graphics** prop // The Graphics collection.
  2104.             );
  2105.  
  2106.         /**
  2107.          * Returns the Drawing object's GraphicSets collection.
  2108.          */
  2109.         [
  2110.              propget
  2111.             ,helpcontext(0x1001000A)
  2112.             ,helpstring("Returns the Drawing object's GraphicSets collection.")
  2113.         ]
  2114.         HRESULT  GraphicSets(
  2115.             [out, retval] GraphicSets** prop // The GraphicSets collection.
  2116.             );
  2117.  
  2118.         /**
  2119.          * Returns the Drawing object's Grid object.
  2120.          */
  2121.         [
  2122.              propget
  2123.             ,restricted, hidden
  2124.             ,helpcontext(0x1001000B)
  2125.             ,helpstring("Returns the Drawing object's Grid object.")
  2126.         ]
  2127.         HRESULT  Grid(
  2128.             [out, retval] IGrid** prop // The Grid object.
  2129.             );
  2130.  
  2131.         /**
  2132.          * Sets the Drawing object's Grid object.
  2133.          */
  2134.         [
  2135.              propput
  2136.             ,restricted, hidden
  2137.             ,helpcontext(0x1001000B)
  2138.             ,helpstring("Sets the Drawing object's Grid object.")
  2139.         ]
  2140.         HRESULT  Grid(
  2141.             [in] IGrid* prop // The Grid object.
  2142.             );
  2143.  
  2144.         /**
  2145.          * Returns the index of the item in the collection.
  2146.          */
  2147.         [
  2148.              propget
  2149.             ,helpcontext(0x1001000C)
  2150.             ,helpstring("Returns the index of the item in the collection.")
  2151.         ]
  2152.         HRESULT  Index(
  2153.             [out, retval] long* prop // The index.
  2154.             );
  2155.  
  2156.         /**
  2157.          * Returns the Drawing object's Layers collection.
  2158.          */
  2159.         [
  2160.              propget
  2161.             ,helpcontext(0x1001000D)
  2162.             ,helpstring("Returns the Drawing object's Layers collection.")
  2163.         ]
  2164.         HRESULT  Layers(
  2165.             [out, retval] Layers** prop // The Layers collection.
  2166.             );
  2167.  
  2168.         /**
  2169.          * Returns the Drawing object's LineStyles collection.
  2170.          */
  2171.         [
  2172.              propget
  2173.             ,helpcontext(0x1001000E)
  2174.             ,helpstring("Returns the Drawing object's LineStyles collection.")
  2175.         ]
  2176.         HRESULT  LineStyles(
  2177.             [out, retval] LineStyles** prop // The LineStyles collection.
  2178.             );
  2179.  
  2180.         /**
  2181.          * Returns the name of the object, as a string.
  2182.          * Name is the default property of the Drawing object.
  2183.          *
  2184.          * @see TCADAPI TCWDrawingName function
  2185.          */
  2186.         [
  2187.              propget
  2188.             ,id(DISPID_VALUE)
  2189.             ,helpcontext(0x1001000F)
  2190.             ,helpstring("Returns the name of the object. as a string.")
  2191.         ]
  2192.         HRESULT  Name(
  2193.             [out, retval] BSTR* prop // The name of the object.
  2194.             );
  2195.  
  2196.         /**
  2197.          * Returns the Drawing object's NamedViews collection.
  2198.          */
  2199.         [
  2200.              propget
  2201.             ,helpcontext(0x10010010)
  2202.             ,helpstring("Returns the Drawing object's NamedViews collection.")
  2203.         ]
  2204.         HRESULT  NamedViews(
  2205.             [out, retval] NamedViews** prop // The NamedViews collection.
  2206.             );
  2207.  
  2208.         /**
  2209.          * Returns the Drawing object's DrawingOptions object.
  2210.          */
  2211.         [
  2212.              propget
  2213.             ,restricted, hidden
  2214.             ,helpcontext(0x10010011)
  2215.             ,helpstring("Returns the Drawing object's DrawingOptions object.")
  2216.         ]
  2217.         HRESULT  Options(
  2218.             [out, retval] DrawingOptions** prop // The DrawingOptions object.
  2219.             );
  2220.  
  2221.         /**
  2222.          * Returns the Drawing object's PgSetObj.
  2223.          */
  2224.         [
  2225.              propget
  2226.             ,helpcontext(0x10010012)
  2227.             ,helpstring("Returns the Drawing object's PgSetObj.")
  2228.         ]
  2229.         HRESULT  PageSetup(
  2230.             [out, retval] PageSetup** prop // The PgSetObj.
  2231.             );
  2232.  
  2233.         /**
  2234.          * Returns the parent object for the specified object.
  2235.          * The parent of the Drawing object is the Application object.
  2236.          */
  2237.         [
  2238.              propget
  2239.             ,helpcontext(0x10010013)
  2240.             ,helpstring("Returns the parent object for the specified object.")
  2241.         ]
  2242.         HRESULT  Parent(
  2243.             [out, retval] IApplication** prop // The parent object.
  2244.             );
  2245.  
  2246.         /**
  2247.          * Returns the complete path of the object, as a string, without including the final separator and name of the object.
  2248.          */
  2249.         [
  2250.              propget
  2251.             ,helpcontext(0x10010014)
  2252.             ,helpstring("Returns the complete path of the object, as a string, without including the final separator and name of the object.")
  2253.         ]
  2254.         HRESULT  Path(
  2255. //             [in, lcid] long lcid
  2256.              [in, optional]    long lcid
  2257.             ,[out, retval] BSTR* prop // The path.
  2258.             );
  2259.  
  2260.         /**
  2261.          * Returns the Drawing object's Properties collection.
  2262.          * For the complete list of available Drawing Properties, follow
  2263.          * <A HREF="dwgprops.html">this link</A>.
  2264.          *
  2265.          * @see TCADAPI TCWDrawingPropertyGet/Set functions
  2266.          */
  2267.         [
  2268.              propget
  2269.             ,helpcontext(0x10010015)
  2270.             ,helpstring("Returns the Drawing object's Properties collection.")
  2271.         ]
  2272.         HRESULT  Properties(
  2273.             [out, retval] Properties** prop // The Properties collection.
  2274.             );
  2275.  
  2276.         /**
  2277.          * True if the Drawing object has been opened as read-only.
  2278.          */
  2279.         [
  2280.              propget
  2281.             ,restricted, hidden
  2282.             ,helpcontext(0x10010016)
  2283.             ,helpstring("True if the Drawing object has been opened as read-only.")
  2284.         ]
  2285.         HRESULT  ReadOnly(
  2286.             [out, retval] IMSI_BOOL* prop // True if the Drawing object has been opened as read-only.
  2287.             );
  2288.  
  2289.         /**
  2290.          * True if no changes have been made to the Drawing object since it was last saved.
  2291.          */
  2292.         [
  2293.              propget
  2294.             ,helpcontext(0x10010017)
  2295.             ,helpstring("True if no have been made to the Drawing object since it was last saved.")
  2296.         ]
  2297.         HRESULT  Saved(
  2298.             [out, retval] IMSI_BOOL* prop // True if all changes have been saved.
  2299.             );
  2300.  
  2301.         /**
  2302.          * True if no changes have been made to the Drawing object since it was last saved.
  2303.          */
  2304.         [
  2305.              propput
  2306.             ,helpcontext(0x10010017)
  2307.             ,helpstring("True if no have been made to the Drawing object since it was last saved.")
  2308.         ]
  2309.         HRESULT  Saved(
  2310.             [in] IMSI_BOOL prop // True if all changes have been saved.
  2311.             );
  2312.  
  2313.         /**
  2314.          * Returns the Drawing object's Selection object.
  2315.          */
  2316.         [
  2317.              propget
  2318.             ,helpcontext(0x10010018)
  2319.             ,helpstring("Returns the Drawing object's Selection object.")
  2320.         ]
  2321.         HRESULT  Selection(
  2322.             [out, retval] Selection** prop // The Selection object.
  2323.             );
  2324.  
  2325.         /**
  2326.          * Returns the Drawing object's Styles collection.
  2327.          */
  2328.         [
  2329.              propget
  2330.             ,restricted, hidden
  2331.             ,helpcontext(0x10010019)
  2332.             ,helpstring("Returns the Drawing object's Styles collection.")
  2333.         ]
  2334.         HRESULT  Styles(
  2335.             [out, retval] Styles** prop // The Styles collection.
  2336.             );
  2337.  
  2338.         /**
  2339.          * Returns the object's Tables collection.
  2340.          */
  2341.         [
  2342.              propget
  2343.             ,restricted, hidden
  2344.             ,helpcontext(0x1001001A)
  2345.             ,helpstring("Returns the object's Tables collection.")
  2346.         ]
  2347.         HRESULT  Tables(
  2348.             [out, retval] Tables** prop // The Tables collection.
  2349.             );
  2350.  
  2351.         /**
  2352.          * Returns the type of Drawing object.
  2353.          */
  2354.         [
  2355.              propget
  2356.             ,restricted, hidden
  2357.             ,helpcontext(0x1001001B)
  2358.             ,helpstring("Returns the type of Drawing object.")
  2359.         ]
  2360.         HRESULT  Type(
  2361.             [out, retval] ImsiDrawingType* prop // The type of Drawing object.
  2362.             );
  2363.  
  2364.         /**
  2365.          * True if the user interface is active.
  2366.          */
  2367.         [
  2368.              propget
  2369.             ,restricted, hidden
  2370.             ,helpcontext(0x1001001C)
  2371.             ,helpstring("True if the user interface is active.")
  2372.         ]
  2373.         HRESULT  UserControl(
  2374.             [out, retval] IMSI_BOOL* prop // True if the user interface is active.
  2375.             );
  2376.  
  2377.         /**
  2378.          * Returns the Drawing object's Views collection.
  2379.          */
  2380.         [
  2381.              propget
  2382.             ,helpcontext(0x1001001D)
  2383.             ,helpstring("Returns the Drawing object's Views collection.")
  2384.         ]
  2385.         HRESULT  Views(
  2386.             [out, retval] Views** prop // The Views collection.
  2387.             );
  2388.  
  2389.         /**
  2390.          * Returns the Drawing object's Windows collection.
  2391.          */
  2392.         [
  2393.              propget
  2394.             ,restricted, hidden
  2395.             ,helpcontext(0x1001001E)
  2396.             ,helpstring("Returns the Drawing object's Windows collection.")
  2397.         ]
  2398.         HRESULT  Windows(
  2399.             [out, retval] Windows** prop // The Windows collection.
  2400.             );
  2401.  
  2402.         /**
  2403.          * Returns the internal handle associated with the Drawing object.
  2404.          * Private.
  2405.          */
  2406.         [
  2407.              propget
  2408.             ,restricted
  2409.             ,helpcontext(0x1001001F)
  2410.             ,helpstring("Private.  Returns the internal handle associated with the Drawing object.")
  2411.         ]
  2412.         HRESULT  _Handle(
  2413.             [out, retval] long* prop // The internal handle.
  2414.             );
  2415.  
  2416.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2417.  
  2418.         /**
  2419.          * Makes this object the active Drawing object.
  2420.          *
  2421.          * @see TCADAPI TCWDrawingActivate function
  2422.          */
  2423.         [
  2424.              helpcontext(0x10010020)
  2425.             ,helpstring("Makes this object the active Drawing object.")
  2426.             ,hidden, restricted
  2427.         ]
  2428.         HRESULT  Activate(
  2429.             );
  2430.  
  2431.         /**
  2432.          * Opens a new URecObj in the Drawing object.
  2433.          * Use UndoRecord.AddGraphic, etc. to add graphics to the record.
  2434.          * Use UndoRecord.Close to close the record and add it to the Undo list.
  2435.          *
  2436.          * @see TCADAPI TCWUndoRecordStart function
  2437.          */
  2438.         [
  2439.              helpcontext(0x10010021)
  2440.             ,helpstring("Opens a new URecObj in the Drawing object.")
  2441.         ]
  2442.         HRESULT  AddUndoRecord(
  2443.             [in, optional] BSTR MenuText, // The prompt to appear in the Undo list.
  2444.             [out, retval] UndoRecord** prop // The new URecObj.
  2445.             );
  2446.  
  2447.         /**
  2448.          * Closes the Drawing object.
  2449.          *
  2450.          * @see TCADAPI TCWDrawingClose function.
  2451.          */
  2452.         [
  2453.              helpcontext(0x10010022)
  2454.             ,helpstring("Closes the Drawing object.")
  2455.         ]
  2456.         HRESULT  Close(
  2457.             [in, optional] VARIANT* SaveChanges, // True to save changes.
  2458.             [in, optional] VARIANT* FileName, // Alternate file name to save as.
  2459.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2460.             );
  2461.  
  2462.         /**
  2463.          * Adds the contents of a file to the Drawing object.
  2464.          */
  2465.         [
  2466.              helpcontext(0x10010023)
  2467.             ,helpstring("Adds the contents of a file to the Drawing object.")
  2468.             ,restricted, hidden
  2469.         ]
  2470.         HRESULT  InsertFile(
  2471.         BSTR FileName, // The name of the file.
  2472.         [in, optional] VARIANT* Filter // The preferred filter to use to open the file.
  2473.         );
  2474.  
  2475.         /**
  2476.          * Creates a new Window object for the Drawing object.
  2477.          */
  2478.         [
  2479.              helpcontext(0x10010024)
  2480.             ,helpstring("Creates a new Window object for the Drawing object.")
  2481.             ,restricted, hidden
  2482.         ]
  2483.         HRESULT  NewWindow(
  2484.             [out, retval] Window** prop // The new Window object.
  2485.             );
  2486.  
  2487.         /**
  2488.          * Pastes the contents of the Clipboard onto the Drawing object.
  2489.          */
  2490.         [
  2491.              helpcontext(0x10010025)
  2492.             ,helpstring("Pastes the contents of the Clipboard onto the Drawing object.")
  2493.             ,restricted, hidden
  2494.         ]
  2495.         HRESULT  Paste(
  2496.             );
  2497.  
  2498.         /**
  2499.          * Pastes the contents of the Clipboard onto the Drawing object.
  2500.          */
  2501.         [
  2502.              helpcontext(0x10010026)
  2503.             ,helpstring("Pastes the contents of the Clipboard onto the Drawing object.")
  2504.             ,restricted, hidden
  2505.         ]
  2506.         HRESULT  PasteSpecial(
  2507.             [in, optional] VARIANT* DataType, // Name of data format to paste.
  2508.             [in, optional] VARIANT* Link, // True to paste link.
  2509.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  2510.             [in, optional] VARIANT* IconFileName, // File containing icon.
  2511.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  2512.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  2513.             [in, optional] VARIANT* XRef, // X coordinate of center of object
  2514.             [in, optional] VARIANT* YRef, // Y coordinate of center of object
  2515.             [in, optional] VARIANT* ZRef, // Z coordinate of center of object
  2516.             [in, optional] VARIANT* Width, // Width of object
  2517.             [in, optional] VARIANT* Height, // Height of object
  2518.             [in, optional] VARIANT* Anchor
  2519.             );
  2520.  
  2521.         /**
  2522.          * Begins an interactive pick by rectangle.
  2523.          */
  2524.         [
  2525.              helpcontext(0x10010027)
  2526.             ,helpstring("Begins an interactive pick by rectangle.")
  2527.         ]
  2528.         HRESULT     PickInteractive(
  2529.             [in] ImsiPickType Type, // Point, rect or polygon pick.
  2530.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  2531.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  2532.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  2533.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  2534.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  2535.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  2536.             [out, retval] PickResult** prop // The result of the pick
  2537.             );
  2538.  
  2539.         /**
  2540.          * Prints the object.
  2541.          *
  2542.          * @see TCADAPI TCWDrawingPrint function.
  2543.          */
  2544.         [
  2545.              helpcontext(0x10010028)
  2546.             ,helpstring("Prints the object.")
  2547.             ,restricted, hidden
  2548.         ]
  2549.         HRESULT  PrintOut(
  2550.             [in, optional] VARIANT* From, // Starting page number.
  2551.             [in, optional] VARIANT* To, // Ending page number.
  2552.             [in, optional] VARIANT* Copies, // Number of copies to print.
  2553.             [in, optional] VARIANT* ActivePrinter, // Name of printer to use.
  2554.             [in, optional] VARIANT* OutputFileName, // File name to print to.
  2555.             [in, optional] VARIANT* FitToPage, // True to fit on one page.
  2556.             [in, optional] VARIANT* Collate // True to collate copies.
  2557.             );
  2558.  
  2559.         /**
  2560.          * Redoes the last user interface action.
  2561.          *
  2562.          * @see TCADAPI TCWRedo function.
  2563.          */
  2564.         [
  2565.              helpcontext(0x10010029)
  2566.             ,helpstring("Redoes the last user interface action.")
  2567.         ]
  2568.         HRESULT  Redo(
  2569.             [in] VARIANT* Times, // Number of actions to redo.
  2570.             [out, retval] IMSI_BOOL* prop // True if the redo was successful.
  2571.         );
  2572.  
  2573.         /**
  2574.          * Repeats the last user interface action.
  2575.          *
  2576.          * @see TCADAPI TCWRedo function.
  2577.          */
  2578.         [
  2579.              helpcontext(0x1001002A)
  2580.             ,helpstring("Repeats the last user interface action.")
  2581.             ,restricted, hidden
  2582.         ]
  2583.         HRESULT  Repeat(
  2584.             [in] VARIANT* Times, // Number of actions to repeat.
  2585.             [out, retval] IMSI_BOOL* prop // True if the repeat was successful.
  2586.         );
  2587.  
  2588.         /**
  2589.          * Saves changes to the specified Drawing object.
  2590.          *
  2591.          * @see TCADAPI TCWDrawingSave function.
  2592.          */
  2593.         [
  2594.              helpcontext(0x1001002B)
  2595.             ,helpstring("Saves changes to the specified Drawing object.")
  2596.         ]
  2597.         HRESULT  Save(
  2598.             );
  2599.  
  2600.         /**
  2601.          * Saves the changes to the Drawing object in a different file.
  2602.          *
  2603.          * @see TCADAPI TCWDrawingSaveAs function.
  2604.          */
  2605.         [
  2606.              helpcontext(0x1001002C)
  2607.             ,helpstring("Saves the changes to the Drawing object in a different file.")
  2608.         ]
  2609.         HRESULT  SaveAs(
  2610.             [in] BSTR Filename, // The file name to save to.
  2611.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2612.             );
  2613.  
  2614.         /**
  2615.          * Saves a copy of the Drawing object to a file but does not modify the open Drawing object.
  2616.          */
  2617.         [
  2618.              helpcontext(0x1001002D)
  2619.             ,helpstring("Saves a copy of the Drawing object to a file but does not modify the open Drawing object.")
  2620.         ]
  2621.         HRESULT  SaveCopyAs(
  2622.             [in] BSTR Filename, // File name to save to.
  2623.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  2624.             );
  2625.  
  2626.         /**
  2627.          * Selects all of the Graphic object's in the Drawing object's Graphics collection.
  2628.          * Has the same effect as Drawing.Graphics.Select.
  2629.          */
  2630.         [
  2631.              helpcontext(0x1001002E)
  2632.             ,helpstring("Selects all of the Graphic object's in the Drawing object's Graphics collection.")
  2633.         ]
  2634.         HRESULT  SelectAll(
  2635.             );
  2636.  
  2637.         /**
  2638.          * Sends the Drawing object as an attachment using the installed mail system.
  2639.          */
  2640.         [
  2641.              helpcontext(0x1001002F)
  2642.             ,helpstring("Sends the Drawing object as an attachment using the installed mail system.")
  2643.             ,restricted, hidden
  2644.         ]
  2645.         HRESULT  Send(
  2646.             [in] VARIANT* Recipients, // Names of recipients, as a string or string array.
  2647.             [in, optional] VARIANT* Subject, // Subject line.
  2648.             [in, optional] VARIANT* Message, // Message.
  2649.             [in, optional] VARIANT* CCRecipients, // Names of CC recipients, as a string or string array.
  2650.             [in, optional] VARIANT* BCCRecipients, // Names of BCC recipients, as a string or string array.
  2651.             [in, optional] VARIANT* ReturnReceipt // True to request return receipt.
  2652.             );
  2653.  
  2654.         /**
  2655.          * Sends the Drawing object as an attachment using the installed mail system.
  2656.          * Runs a dialog to get the mail information.
  2657.          */
  2658.         [
  2659.              helpcontext(0x10010030)
  2660.             ,helpstring("Sends the Drawing object as an attachment using the installed mail system.")
  2661.             ,restricted, hidden
  2662.         ]
  2663.         HRESULT  SendMail(
  2664.             );
  2665.  
  2666.         /**
  2667.          * Cancels the last user interface action.
  2668.          *
  2669.          * @see TCADAPI TCWUndo function.
  2670.          */
  2671.         [
  2672.              helpcontext(0x10010031)
  2673.             ,helpstring("Cancels the last user interface action.")
  2674.         ]
  2675.         HRESULT  Undo(
  2676.             [in] VARIANT* Times, // Number of actions to undo.
  2677.             [out, retval] IMSI_BOOL* prop // True if the Undo was successful.
  2678.         );
  2679.  
  2680.         /**
  2681.          * Clears all the Drawing object's undo entries.
  2682.          *
  2683.          * @see TCADAPI TCWUndoClear function.
  2684.          */
  2685.         [
  2686.              helpcontext(0x10010032)
  2687.             ,helpstring("Clears all the Drawing object's undo entries.")
  2688.         ]
  2689.         HRESULT  UndoClear(
  2690.         );
  2691.  
  2692.         /**
  2693.          * Unselects all of the Graphic object's in the Drawing object's Graphics collection.
  2694.          * Has the same effect as Drawing.Graphics.Unselect or Drawing.Selection.Unselect.
  2695.          */
  2696.         [
  2697.              helpcontext(0x10010033)
  2698.             ,helpstring("Unselects all of the Graphic object's in the Drawing object's Graphics collection.")
  2699.         ]
  2700.         HRESULT  UnselectAll(
  2701.             );
  2702.  
  2703.         /**
  2704.          * Updates a link (or links).
  2705.          */
  2706.         [
  2707.              helpcontext(0x10010034)
  2708.             ,helpstring("Updates a link (or links).")
  2709.             ,restricted, hidden
  2710.         ]
  2711.         HRESULT  UpdateLink(
  2712.             [in, optional] VARIANT* LinkName // Name of link to update.
  2713.             );
  2714.  
  2715.         ////////////////////// New stuff added here \\\\\\\\\\\\\\\\\\\\
  2716.  
  2717.         /**
  2718.          * Returns the location of the relative origin, as a Vertex object.
  2719.          */
  2720.         [
  2721.              propget
  2722.             ,helpcontext(0x10010035)
  2723.             ,helpstring("Returns the location of the relative origin from a Vertex object.")
  2724.         ]
  2725.         HRESULT  RelativeOrigin(
  2726.             [out, retval] IVertex** prop
  2727.             );
  2728.  
  2729.         /**
  2730.          * Sets the location of the relative origin, as a Vertex object.
  2731.          */
  2732.         [
  2733.              propput
  2734.             ,restricted, hidden
  2735.             ,helpcontext(0x10010035)
  2736.             ,helpstring("Sets the location of the relative origin from a Vertex object.")
  2737.         ]
  2738.         HRESULT  RelativeOrigin(
  2739.             [in] IVertex* prop
  2740.             );
  2741.  
  2742.  
  2743.         /**
  2744.          * Returns the Drawing object's NamedViews collection.
  2745.          */
  2746.         [
  2747.              propget
  2748.             ,helpcontext(0x10010036)
  2749.             ,helpstring("Returns the Drawing object's Macros collection.")
  2750.         ]
  2751.         HRESULT  Macros(
  2752.             [out, retval] Macros** prop // The NamedViews collection.
  2753.             );
  2754.  
  2755.         [
  2756.              helpcontext(0x10010037)
  2757.             ,helpstring("update graphic in render scene")
  2758.         ]
  2759.         HRESULT  RenderScenesGraphicsUpdate(
  2760.              [in] IDispatch *pDisp
  2761.             ,[in] ImsiRenderGraphicUpdate flag
  2762.             );
  2763.  
  2764.         [
  2765.              helpcontext(0x10010038)
  2766.             ,helpstring("update changes in render scene")
  2767.         ]
  2768.         HRESULT  RenderScenesUpdateChanges(
  2769.             );
  2770.  
  2771.  
  2772.         /**
  2773.          * Returns the Drawing CS as Matrix object
  2774.          */
  2775.         [
  2776.              propget
  2777.             ,helpcontext(0x10010039)
  2778.             ,helpstring("Returns the Drawing CS as Matrix object .")
  2779.         ]
  2780.         HRESULT  UCS(
  2781.             [out, retval] IMatrix** prop // The Matrix object.
  2782.             );
  2783.  
  2784.  
  2785.         [
  2786.              propget
  2787.             ,helpcontext(0x1001003A)
  2788.             ,helpstring("returns the active View object")
  2789.         ]
  2790.         HRESULT  ActiveView(
  2791.             [out, retval] View** pVal /* The ative View object*/
  2792.             );
  2793.  
  2794.         /**
  2795.          * Returns the Drawing object's PaperSpaces collection.
  2796.          */
  2797.         [
  2798.              propget
  2799.             ,helpcontext(0x1001003B)
  2800.             ,helpstring("Returns the Drawing object's PaperSpaces collection.")
  2801.         ]
  2802.         HRESULT  PaperSpaces(
  2803.             [out, retval] IDispatch** prop // The PaperSpaces collection.
  2804.             );
  2805.  
  2806.         /**
  2807.          * Returns the Drawing object's TieSets collection.
  2808.          */
  2809.         [
  2810.              propget
  2811.             ,helpcontext(0x1001003C)
  2812.             ,helpstring("Returns the Drawing object's PaperSpaces collection.")
  2813.         ]
  2814.         HRESULT  TieSets(
  2815.             [out, retval] IDispatch** prop // The TieSets collection.
  2816.             );
  2817.         /**
  2818.          * Set the Drawing CS as Matrix object
  2819.          */
  2820.         [
  2821.              propput
  2822.             ,helpcontext(0x10010039)
  2823.             ,helpstring("Set the Drawing CS by Matrix object .")
  2824.         ]
  2825.         HRESULT  UCS(
  2826.             [in] IMatrix* prop // The Matrix object.
  2827.             );
  2828.  
  2829.     };
  2830.  
  2831.  
  2832.  
  2833.     /**
  2834.      * The collection of Drawing objects contained by the Application object.
  2835.      * Enumerates the Drawings contained by the Application.
  2836.      * Allows setting of properties for all drawings in the collection.
  2837.      */
  2838.     [
  2839.          object
  2840.         ,uuid(6A481108-E531-11CF-A115-00A024158DAF)
  2841.         ,oleautomation
  2842.         ,dual
  2843.         ,helpcontext(0x10020000)
  2844.         ,helpstring("The collection of Drawing objects contained by the Application object.")
  2845.     ]
  2846.     interface Drawings : IDispatch
  2847.     {
  2848.  
  2849.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2850.  
  2851.         /**
  2852.          * Returns an Application object that represents the owner of the specified object.
  2853.          */
  2854.         [
  2855.              propget
  2856.             ,helpcontext(0x10020001)
  2857.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  2858.         ]
  2859.         HRESULT  Application(
  2860.             [out, retval] IApplication** prop // The Application object.
  2861.             );
  2862.  
  2863.         /**
  2864.          * Returns the number of items in the collection.
  2865.          *
  2866.          * @see TCADAPI TCWDrawingCount function.
  2867.          */
  2868.         [
  2869.              propget
  2870.             ,helpcontext(0x10020002)
  2871.             ,helpstring("Returns the number of items in the collection.")
  2872.         ]
  2873.         HRESULT  Count(
  2874.             [out, retval] long* prop // The number of items.
  2875.             );
  2876.  
  2877.         /**
  2878.          * Returns an item in the collection.
  2879.          * Index can be specified as a long integer or as a string (Drawing name).
  2880.          */
  2881.         [
  2882.              propget
  2883.             ,id(DISPID_VALUE)
  2884.             ,helpcontext(0x10020003)
  2885.             ,helpstring("Returns an item in the collection.")
  2886.         ]
  2887.         HRESULT  Item(
  2888.             [in] VARIANT* Index, // Index of item to return.
  2889.             [out, retval] IDrawing** prop // The item.
  2890.             );
  2891.  
  2892.         /**
  2893.          * Returns the parent object for the specified object.
  2894.          * The parent of the Drawings collection is the Application object.
  2895.          */
  2896.         [
  2897.              propget
  2898.             ,helpcontext(0x10020004)
  2899.             ,helpstring("Returns the parent object for the specified object.")
  2900.         ]
  2901.         HRESULT  Parent(
  2902.             [out, retval] IApplication** prop // The parent object.
  2903.             );
  2904.  
  2905.         /**
  2906.          * Creates an enumeration object.
  2907.          */
  2908.         [
  2909.              propget
  2910.             ,restricted
  2911.             ,id(DISPID_NEWENUM)
  2912.             ,helpcontext(0x10020005)
  2913.             ,helpstring("Private.  Creates an enumeration object.")
  2914.         ]
  2915.         HRESULT  _NewEnum(
  2916.             [out, retval] IUnknown** prop // The enumeration object.
  2917.             );
  2918.  
  2919.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2920.  
  2921.         /**
  2922.          * Creates a new Drawing object.
  2923.          *
  2924.          * @see TCADAPI TCWDrawingNew function.
  2925.          */
  2926.         [
  2927.              helpcontext(0x10020006)
  2928.             ,helpstring("Creates a new Drawing object.")
  2929.         ]
  2930.         HRESULT  Add(
  2931.             [in, optional] VARIANT* Template, // A drawing template name.
  2932.             [out, retval] IDrawing** prop // The newly created Drawing object.
  2933.             );
  2934.  
  2935.         /**
  2936.          * Closes all Drawing objects in the collection.
  2937.          */
  2938.         [
  2939.              helpcontext(0x10020007)
  2940.             ,helpstring("Closes all Drawing objects in the collection.")
  2941.         ]
  2942.         HRESULT  Close(
  2943.             );
  2944.  
  2945.         /**
  2946.          * Opens a previously saved Drawing object.
  2947.          *
  2948.          * @see TCADAPI TCWDrawingOpen function.
  2949.          */
  2950.         [
  2951.              helpcontext(0x10020008)
  2952.             ,helpstring("Opens a previously saved Drawing object.")
  2953.         ]
  2954.         HRESULT  Open(
  2955.             [in] BSTR Filename, // Name of file to open.
  2956.             [in, optional] VARIANT* ReadOnly, // True if opened Drawing object should not be modified.
  2957.             [in, optional] VARIANT* Filter, // Name or index of preferred file filter.
  2958.             [out, retval] IDrawing** prop // The opened Drawing object.
  2959.             );
  2960.  
  2961.         /**
  2962.          * Returns the index within the Drawings collection of the specified drawing handle.
  2963.          * Private.
  2964.          */
  2965.         [
  2966.              restricted
  2967.             ,helpcontext(0x10020009)
  2968.             ,helpstring("Private.  Returns the index within the Drawings collection of the specified drawing handle.")
  2969.         ]
  2970.         HRESULT  _FindIndex(
  2971.             [in] long d, // The drawing handle.
  2972.             [out, retval] long* prop // The index.
  2973.             );
  2974.  
  2975.     };
  2976.  
  2977.  
  2978.  
  2979.     /**
  2980.      * A graphic entity.  Graphic objects can be standalone, or can be
  2981.      * contained by a Drawing object, a Block object, or a parent Graphic object.
  2982.      * <p>
  2983.      * RegenMethod objects support user-defined types.
  2984.      */
  2985.     [
  2986.          object
  2987.         ,uuid(6A481109-E531-11CF-A115-00A024158DAF)
  2988.         ,oleautomation
  2989.         ,dual
  2990.         ,helpcontext(0x10030000)
  2991.         ,helpstring("A graphic entity.")
  2992.     ]
  2993.     interface IGraphic : IDispatch
  2994.     {
  2995.  
  2996.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  2997.  
  2998.         /**
  2999.          * Returns an Application object that represents the owner of the specified object.
  3000.          */
  3001.         [
  3002.              propget
  3003.             ,helpcontext(0x10030001)
  3004.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  3005.         ]
  3006.         HRESULT  Application(
  3007.             [out, retval] IApplication** prop // The Application object.
  3008.             );
  3009.  
  3010.         /**
  3011.          * Returns the Graphic object's brush style.
  3012.          */
  3013.         [
  3014.              propget
  3015.             ,helpcontext(0x10030002)
  3016.             ,helpstring("Returns the Graphic object's brush style.")
  3017.         ]
  3018.         HRESULT  BrushStyle(
  3019.             [out, retval] BrushStyle** prop // The BrushStyle object.
  3020.             );
  3021.  
  3022.         /**
  3023.          * Sets the Graphic object's brush style, either from a string or an object.
  3024.          */
  3025.         [
  3026.              propput
  3027.             ,helpcontext(0x10030002)
  3028.             ,helpstring("Sets the Graphic object's brush style, either from a string or an object.")
  3029.         ]
  3030.         HRESULT  BrushStyle(
  3031.             [in] VARIANT* prop // The BrushStyle object or its name.
  3032.             );
  3033.  
  3034.         /**
  3035.          * True if the object is built-in.
  3036.          */
  3037.         [
  3038.              propget
  3039.             ,helpcontext(0x10030003)
  3040.             ,helpstring("True if the object is built-in.")
  3041.         ]
  3042.         HRESULT  Builtin(
  3043.             [out, retval] IMSI_BOOL* prop // Tre if the object is built-in.
  3044.             );
  3045.  
  3046.         /**
  3047.          * Returns the Graphic object's GraphicCallbacks object.
  3048.          */
  3049.         [
  3050.              propget
  3051.             ,restricted, hidden
  3052.             ,helpcontext(0x10030004)
  3053.             ,helpstring("Returns the Graphic object's GraphicCallbacks object.")
  3054.         ]
  3055.         HRESULT  Callbacks(
  3056.             [out, retval] GraphicCallbacks** prop // The GraphicCallbacks object.
  3057.             );
  3058.  
  3059.         /**
  3060.          * True if the Graphic object is a closed figure.
  3061.          */
  3062.         [
  3063.              propget
  3064.             ,helpcontext(0x10030005)
  3065.             ,helpstring("True if the Graphic object is a closed figure.")
  3066.         ]
  3067.         HRESULT  Closed(
  3068.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is a closed figure.
  3069.             );
  3070.  
  3071.         /**
  3072.          * True if the Graphic object is a closed figure.
  3073.          */
  3074.         [
  3075.              propput
  3076.             ,helpcontext(0x10030005)
  3077.             ,helpstring("True if the Graphic object is a closed figure.")
  3078.         ]
  3079.         HRESULT  Closed(
  3080.             [in] IMSI_BOOL prop // True if the Graphic object is a closed figure.
  3081.             );
  3082.  
  3083.         /**
  3084.          * True if the Graphic object is used for display regeneration only.
  3085.          */
  3086.         [
  3087.              propget
  3088.             ,helpcontext(0x10030006)
  3089.             ,helpstring("True if the Graphic object is used for display regeneration only.")
  3090.         ]
  3091.         HRESULT  Cosmetic(
  3092.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is used for display regeneration only.
  3093.             );
  3094.  
  3095.         /**
  3096.          * True if the Graphic object is used for display regeneration only.
  3097.          */
  3098.         [
  3099.              propput
  3100.             ,helpcontext(0x10030006)
  3101.             ,helpstring("True if the Graphic object is used for display regeneration only.")
  3102.         ]
  3103.         HRESULT  Cosmetic(
  3104.             [in] IMSI_BOOL prop // True if the Graphic object is used for display regeneration only.
  3105.             );
  3106.  
  3107.         /**
  3108.          * True if the Graphic object is on the purge/undo list.
  3109.          */
  3110.         [
  3111.              propget
  3112.             ,helpcontext(0x10030007)
  3113.             ,helpstring("True if the Graphic object is on the purge/undo list.")
  3114.         ]
  3115.         HRESULT  Deleted(
  3116.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is on the purge/undo list.
  3117.             );
  3118.  
  3119.         /**
  3120.          * True if the Graphic object is on the purge/undo list.
  3121.          */
  3122.         [
  3123.              propput
  3124.             ,helpcontext(0x10030007)
  3125.             ,helpstring("True if the Graphic object is on the purge/undo list.")
  3126.         ]
  3127.         HRESULT  Deleted(
  3128.             [in] IMSI_BOOL prop // True if the Graphic object is on the purge/undo list.
  3129.             );
  3130.  
  3131.         /**
  3132.          * Returns the Drawing object that owns the object.
  3133.          */
  3134.         [
  3135.              propget
  3136.             ,helpcontext(0x10030008)
  3137.             ,helpstring("Returns the Drawing object that owns the object.")
  3138.         ]
  3139.         HRESULT  Drawing(
  3140.             [out, retval] IDrawing** prop // The Drawing object.
  3141.             );
  3142.  
  3143.         /**
  3144.          * True if the Graphic object can be edited in the user interface.
  3145.          */
  3146.         [
  3147.              propget
  3148.             ,helpcontext(0x10030009)
  3149.             ,helpstring("True if the Graphic object can be edited in the user interface.")
  3150.         ]
  3151.         HRESULT  Editable(
  3152.             [out, retval] IMSI_BOOL* prop // True if the Graphic object can be edited in the user interface.
  3153.             );
  3154.  
  3155.         /**
  3156.          * True if the Graphic object can be edited in the user interface.
  3157.          */
  3158.         [
  3159.              propput
  3160.             ,helpcontext(0x10030009)
  3161.             ,helpstring("True if the Graphic object can be edited in the user interface.")
  3162.         ]
  3163.         HRESULT  Editable(
  3164.             [in] IMSI_BOOL prop // True if the Graphic object can be edited in the user interface.
  3165.             );
  3166.  
  3167.         /**
  3168.          * Returns the Graphics collection which represents the children of this Graphic object.
  3169.          */
  3170.         [
  3171.              propget
  3172.             ,helpcontext(0x1003000A)
  3173.             ,helpstring("Returns the Graphics collection which represents the children of this Graphic object.")
  3174.         ]
  3175.         HRESULT  Graphics(
  3176.             [out, retval] Graphics** prop // The Graphics collection.
  3177.             );
  3178.  
  3179.         /**
  3180.          * Returns the Graphic object's database ID.
  3181.          */
  3182.         [
  3183.              propget
  3184.             ,helpcontext(0x1003000B)
  3185.             ,helpstring("Returns the Graphic object's database ID.")
  3186.         ]
  3187.         HRESULT  ID(
  3188.             [out, retval] long* prop // The database ID.
  3189.             );
  3190.  
  3191.         /**
  3192.          * Sets the Graphic object's database ID.
  3193.          */
  3194.         [
  3195.              propput
  3196.             ,helpcontext(0x1003000B)
  3197.             ,helpstring("Sets the Graphic object's database ID.")
  3198.         ]
  3199.         HRESULT  ID(
  3200.             [in] long prop // The database ID.
  3201.             );
  3202.  
  3203.         /**
  3204.          * Returns the index of the item in the collection.
  3205.          */
  3206.         [
  3207.              propget
  3208.             ,helpcontext(0x1003000C)
  3209.             ,helpstring("Returns the index of the item in the collection.")
  3210.         ]
  3211.         HRESULT  Index(
  3212.             [out, retval] long* prop // The index.
  3213.             );
  3214.  
  3215.         /**
  3216.          * Returns the Graphic object's layer.
  3217.          */
  3218.         [
  3219.              propget
  3220.             ,helpcontext(0x1003000D)
  3221.             ,helpstring("Returns the Graphic object's layer.")
  3222.         ]
  3223.         HRESULT  Layer(
  3224.             [out, retval] Layer** prop // The Layer object.
  3225.             );
  3226.  
  3227.         /**
  3228.          * Sets the Graphic object's layer, either from a string or an object.
  3229.          */
  3230.         [
  3231.              propput
  3232.             ,helpcontext(0x1003000D)
  3233.             ,helpstring("Sets the Graphic object's layer, either from a string or an object.")
  3234.         ]
  3235.         HRESULT  Layer(
  3236.             [in] VARIANT* prop // The Layer object or its name.
  3237.             );
  3238.  
  3239.         /**
  3240.          * Returns the Graphic object's LineStyle object.
  3241.          */
  3242.         [
  3243.              propget
  3244.             ,helpcontext(0x1003000E)
  3245.             ,helpstring("Returns the Graphic object's LineStyle object.")
  3246.         ]
  3247.         HRESULT  LineStyle(
  3248.             [out, retval] LineStyle** prop // The LineStyle object.
  3249.             );
  3250.  
  3251.         /**
  3252.          * Sets the Graphic object's LineStyle object, either from a string or an object.
  3253.          */
  3254.         [
  3255.              propput
  3256.             ,helpcontext(0x1003000E)
  3257.             ,helpstring("Sets the Graphic object's LineStyle object, either from a string or an object.")
  3258.         ]
  3259.         HRESULT  LineStyle(
  3260.             [in] VARIANT* prop // The LineStyle object or its name.
  3261.             );
  3262.  
  3263.         /**
  3264.          * Returns the name of the object.
  3265.          */
  3266.         [
  3267.              propget
  3268.             ,id(DISPID_VALUE)
  3269.             ,helpcontext(0x1003000F)
  3270.             ,helpstring("Returns the name of the object.")
  3271.         ]
  3272.         HRESULT  Name(
  3273.             [out, retval] BSTR* prop // The object's name.
  3274.             );
  3275.  
  3276.         /**
  3277.          * Sets the name of the object.
  3278.          */
  3279.         [
  3280.              propput, id(DISPID_VALUE)
  3281.             ,helpcontext(0x1003000F)
  3282.             ,helpstring("Sets the name of the object.")
  3283.         ]
  3284.         HRESULT  Name(
  3285.             [in] BSTR prop // The object's name.
  3286.             );
  3287.  
  3288.         /**
  3289.          * Returns the Vertices collection which represents the editable child Vertex objects of this Graphic object.
  3290.          */
  3291.         [
  3292.              propget
  3293.             ,helpcontext(0x10030010)
  3294.             ,helpstring("Returns the Vertices collection which represents the editable child Vertex objects of this Graphic object.")
  3295.         ]
  3296.         HRESULT  Nodes(
  3297.             [out, retval] Vertices** prop // The Vertices collection.
  3298.             );
  3299.  
  3300.         /**
  3301.          * Returns the parent object for the specified object.
  3302.          * If the Graphic object has not been added to a Drawing object, the parent of the Graphic object
  3303.          * is the Application object.  Otherwise, the parent is a Graphic object or a Drawing object.
  3304.          */
  3305.         [
  3306.              propget
  3307.             ,helpcontext(0x10030011)
  3308.             ,helpstring("Returns the parent object for the specified object.")
  3309.         ]
  3310.         HRESULT  Parent(
  3311.             [out, retval] IDispatch** prop // The parent object.
  3312.             );
  3313.  
  3314.         /**
  3315.          * Returns the Graphic object's Properties collection.
  3316.          * For the complete list of available Graphic Properties, follow
  3317.          * <A HREF="grfprops.html">this link</A>.
  3318.          *
  3319.          * @see TCADAPI TCWGraphicPropertyGet/Set functions
  3320.          */
  3321.         [
  3322.              propget
  3323.             ,helpcontext(0x10030012)
  3324.             ,helpstring("Returns the Graphic object's Properties collection.")
  3325.         ]
  3326.         HRESULT  Properties(
  3327.             [out, retval] Properties** prop // The Properties collection.
  3328.             );
  3329.  
  3330.         /**
  3331.          * Returns the Graphic object's regen type.
  3332.          */
  3333.         [
  3334.              propget
  3335.             ,helpcontext(0x10030013)
  3336.             ,helpstring("Returns the Graphic object's regen type.")
  3337.         ]
  3338.         HRESULT  RegenType(
  3339.             [out, retval] RegenMethod** prop // The RegenMethod object.
  3340.             );
  3341.  
  3342.         /**
  3343.          * Sets the Graphic object's regen type.
  3344.          */
  3345.         [
  3346.              propput
  3347.             ,restricted, hidden
  3348.             ,helpcontext(0x10030013)
  3349.             ,helpstring("Sets the Graphic object's regen type.")
  3350.         ]
  3351.         HRESULT  RegenType(
  3352.             [in] VARIANT* prop // The RegenMethod object or a string.
  3353.             );
  3354.  
  3355.         /**
  3356.          * True if the Graphic object is the root of a tree.
  3357.          */
  3358.         [
  3359.              propget
  3360.             ,helpcontext(0x10030014)
  3361.             ,helpstring("True if the Graphic object is the root of a tree.")
  3362.         ]
  3363.         HRESULT  Root(
  3364.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is the root of a tree.
  3365.             );
  3366.  
  3367.         /**
  3368.          * True if the Graphic object is the root of a tree.
  3369.          */
  3370.         [
  3371.              propput
  3372.             ,restricted, hidden
  3373.             ,helpcontext(0x10030014)
  3374.             ,helpstring("True if the Graphic object is the root of a tree.")
  3375.         ]
  3376.         HRESULT  Root(
  3377.             [in] IMSI_BOOL prop // True if the Graphic object is the root of a tree.
  3378.             );
  3379.  
  3380.         /**
  3381.          * Returns the Graphic object's style.
  3382.          */
  3383.         [
  3384.              propget
  3385.             ,restricted, hidden
  3386.             ,helpcontext(0x10030015)
  3387.             ,helpstring("Returns the Graphic object's style.")
  3388.         ]
  3389.         HRESULT  Style(
  3390.             [out, retval] Style** prop // The StyleObj.
  3391.             );
  3392.  
  3393.         /**
  3394.          * Sets the Graphic object's style.
  3395.          * Unimplemented.
  3396.          */
  3397.         [
  3398.              propput
  3399.             ,restricted, hidden
  3400.             ,helpcontext(0x10030015)
  3401.             ,helpstring("Unimplemented.  Sets the Graphic object's style.")
  3402.         ]
  3403.         HRESULT  Style(
  3404.             [in] VARIANT* prop // The StyleObj or a string.
  3405.             );
  3406.  
  3407.         /**
  3408.          * Returns the Graphic object's type, as a string.
  3409.          */
  3410.         [
  3411.              propget
  3412.             ,helpcontext(0x10030016)
  3413.             ,helpstring("Returns the Graphic object's type, as a string.")
  3414.         ]
  3415.         HRESULT  Type(
  3416.             [out, retval] BSTR* prop // The Graphic object's type.
  3417.             );
  3418.  
  3419.         /**
  3420.          * True if the Graphic object is unbounded.
  3421.          */
  3422.         [
  3423.              propget
  3424.             ,helpcontext(0x10030017)
  3425.             ,helpstring("True if the Graphic object is unbounded.")
  3426.         ]
  3427.         HRESULT  Unbounded(
  3428.             [out, retval] IMSI_BOOL* prop // True if the Graphic object is unbounded.
  3429.             );
  3430.  
  3431.         /**
  3432.          * True if the Graphic object is unbounded.
  3433.          */
  3434.         [
  3435.              propput
  3436.             ,helpcontext(0x10030017)
  3437.             ,helpstring("True if the Graphic object is unbounded.")
  3438.         ]
  3439.         HRESULT  Unbounded(
  3440.             [in] IMSI_BOOL prop // True if the Graphic object is unbounded.
  3441.             );
  3442.  
  3443.         /**
  3444.          * Returns the Vertices collection which represents the child Vertex objects of this Graphic object.
  3445.          */
  3446.         [
  3447.              propget
  3448.             ,helpcontext(0x10030018)
  3449.             ,helpstring("Returns the Vertices collection which represents the child Vertex objects of this Graphic object.")
  3450.         ]
  3451.         HRESULT  Vertices(
  3452.             [out, retval] Vertices** prop // The Vertices collection.
  3453.             );
  3454.  
  3455.         /**
  3456.          * True if the object is visible.
  3457.          * Unimplemented.
  3458.          */
  3459.         [
  3460.              propget
  3461.             ,helpcontext(0x10030019)
  3462.             ,helpstring("True if the object is visible.")
  3463.         ]
  3464.         HRESULT  Visible(
  3465.             [out, retval] IMSI_BOOL* prop // True if the object is visible.
  3466.             );
  3467.  
  3468.         /**
  3469.          * True if the object is visible.
  3470.          */
  3471.         [
  3472.              propput
  3473.             ,helpcontext(0x10030019)
  3474.             ,helpstring("Unimplemented.  True if the object is visible.")
  3475.         ]
  3476.         HRESULT  Visible(
  3477.             [in] IMSI_BOOL prop // True if the object is visible.
  3478.             );
  3479.  
  3480.         /**
  3481.          * Returns the z-order position of the object.
  3482.          */
  3483.         [
  3484.              propget
  3485.             ,restricted, hidden
  3486.             ,helpcontext(0x1003001A)
  3487.             ,helpstring("Returns the z-order position of the object.")
  3488.         ]
  3489.         HRESULT  ZOrder(
  3490.             [out, retval] long* prop // The z-order position of the object.
  3491.             );
  3492.  
  3493.         /**
  3494.          * Returns the internal handle associated with the Graphic object.
  3495.          * Private.
  3496.          */
  3497.         [
  3498.              propget
  3499.             ,restricted
  3500.             ,helpcontext(0x1003001B)
  3501.             ,helpstring("Private.  Returns the internal handle associated with the Graphic object.")
  3502.         ]
  3503.         HRESULT  _Handle(
  3504.             [out, retval] long* prop // The internal handle.
  3505.             );
  3506.  
  3507.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3508.  
  3509.         /**
  3510.          * Set the center, radius, and other arc parameters.
  3511.          */
  3512.         [
  3513.              helpcontext(0x1003001C)
  3514.             ,helpstring("Set the center, radius, and other arc parameters.")
  3515.         ]
  3516.         HRESULT  ArcSet(
  3517.             [in, optional] VARIANT* XCenter, // X coordinate of arc center point.
  3518.             [in, optional] VARIANT* YCenter, // Y coordinate of arc center point.
  3519.             [in, optional] VARIANT* ZCenter, // Z coordinate of arc center point.
  3520.             [in, optional] VARIANT* MajorAxis, // Length of major axis.
  3521.             [in, optional] VARIANT* MinorAxis, // Length of minor axis.
  3522.             [in, optional] VARIANT* StartAngle, // Starting angle in radians.
  3523.             [in, optional] VARIANT* EndAngle, // Ending angle in radians.
  3524.             [in, optional] VARIANT* RotationAngle // Rotation angle of major axis in radians.
  3525.             );
  3526.  
  3527.         /**
  3528.          * Returns the Graphic object's bounding box.
  3529.          */
  3530.         [
  3531.              helpcontext(0x1003001D)
  3532.             ,helpstring("Returns the Graphic object's bounding box.")
  3533.         ]
  3534.         HRESULT  CalcBoundingBox(
  3535.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  3536.             [out, retval] BoundingBox** prop // The BoundingBox object.
  3537.             );
  3538.  
  3539.         /**
  3540.          * Checks the spelling of a text Graphic object.
  3541.          */
  3542.         [
  3543.              helpcontext(0x1003001E)
  3544.             ,helpstring("Checks the spelling of a text Graphic object.")
  3545.             ,restricted, hidden
  3546.         ]
  3547.         HRESULT  CheckSpelling(
  3548.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  3549.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  3550.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  3551.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  3552.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  3553.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  3554.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  3555.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  3556.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  3557.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  3558.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  3559.         );
  3560.  
  3561.         /**
  3562.          * Finishes and closes an open polygon Graphic object.
  3563.          *
  3564.          * @see TCADAPI TCWGraphicClose function
  3565.          */
  3566.     [
  3567.          helpcontext(0x1003001F)
  3568.         ,helpstring("Finishes and closes an open polygon Graphic object.")
  3569.     ]
  3570.     HRESULT  Close(
  3571.         );
  3572.  
  3573.         /**
  3574.          * Draws the Graphic object.
  3575.          */
  3576.     [
  3577.          helpcontext(0x10030020)
  3578.         ,helpstring("Draws the Graphic object.")
  3579.     ]
  3580.     HRESULT  Draw(
  3581.         [in, optional] VARIANT* View // If supplied, the View object to draw on.
  3582.         );
  3583.  
  3584.         /**
  3585.          * Converts the Graphic object to a different type.
  3586.          */
  3587.         [
  3588.              helpcontext(0x10030021)
  3589.             ,helpstring("Converts the Graphic object to a different type.")
  3590.             ,restricted, hidden
  3591.         ]
  3592.         HRESULT  ConvertType(
  3593.             [in] VARIANT* GraphicType, // The type of the Graphic object.
  3594.             [in, optional] VARIANT* RegenMethod // A RegenMethod object or index.
  3595.             );
  3596.  
  3597.         /**
  3598.          * Deletes the object.
  3599.          */
  3600.         [
  3601.              helpcontext(0x10030022)
  3602.             ,helpstring("Deletes the object.")
  3603.         ]
  3604.         HRESULT  Delete(
  3605.             );
  3606.  
  3607.         /**
  3608.          * Duplicates the object and returns a reference to the new copy.
  3609.          */
  3610.         [
  3611.              helpcontext(0x10030023)
  3612.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  3613.         ]
  3614.         HRESULT  Duplicate(
  3615.             [out, retval] IGraphic** prop // The duplicated Graphic object.
  3616.             );
  3617.  
  3618.         /**
  3619.          * Returns a graphic that is linked to this one.
  3620.          */
  3621.         [
  3622.              helpcontext(0x10030024)
  3623.             ,helpstring("Returns a graphic that is linked to this one.")
  3624.         ]
  3625.         HRESULT  GetSubjectLink(
  3626.             [in, optional] VARIANT* VertexIndex, // The index or Vertex object to search.
  3627.             [in, optional] VARIANT* LinkIndex, // The link to get.
  3628.             [out, retval] IGraphic** prop // The linked Graphic object.
  3629.             );
  3630.  
  3631.         /**
  3632.          * Acquires a lock for regen.
  3633.          */
  3634.         [
  3635.              helpcontext(0x10030025)
  3636.             ,helpstring("Acquires a lock for regen.")
  3637.         ]
  3638.         HRESULT  RegenLock(
  3639.             [out, retval] long* prop // Previous value of lock count.
  3640.             );
  3641.  
  3642.         /**
  3643.          * Releases a lock for regen.
  3644.          */
  3645.         [
  3646.              helpcontext(0x10030026)
  3647.             ,helpstring("Releases a lock for regen.")
  3648.         ]
  3649.         HRESULT  RegenUnlock(
  3650.             [in, optional] VARIANT* LockCount // Lock count to reset to.
  3651.             );
  3652.  
  3653.         /**
  3654.          * Adds the Graphic object to the Drawing object's Selection object.
  3655.          *
  3656.          * @see TCADAPI TCWGraphicPropertySet function.
  3657.          */
  3658.         [
  3659.              helpcontext(0x10030027)
  3660.             ,helpstring("Adds the Graphic object to the Drawing object's Selection object.")
  3661.         ]
  3662.         HRESULT  Select(
  3663.             );
  3664.  
  3665.         /**
  3666.          * Set the start point, height, width, and other text parameters.
  3667.          */
  3668.         [
  3669.              helpcontext(0x10030028)
  3670.             ,helpstring("Set the start point, height, width, and other text parameters.")
  3671.         ]
  3672.         HRESULT  TextSet(
  3673.             [in, optional] VARIANT* Text, // The text string
  3674.             [in, optional] VARIANT* X, // X coordinate of text point.
  3675.             [in, optional] VARIANT* Y, // Y coordinate of text point.
  3676.             [in, optional] VARIANT* Z, // Z coordinate of text point.
  3677.             [in, optional] VARIANT* Width, // Width of object.
  3678.             [in, optional] VARIANT* Height, // Height of object.
  3679.             [in, optional] VARIANT* Angle // Rotation angle of object in radians.
  3680.             );
  3681.  
  3682.         /**
  3683.          * Removes the Graphic object from the Drawing object's Selection object.
  3684.          *
  3685.          * @see TCADAPI TCWGraphicPropertySet function.
  3686.          */
  3687.         [
  3688.              helpcontext(0x10030029)
  3689.             ,helpstring("Removes the Graphic object from the Drawing object's Selection object.")
  3690.         ]
  3691.         HRESULT  Unselect(
  3692.             );
  3693.  
  3694.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  3695.  
  3696.         /**
  3697.          * Explodes a group or block insertion.
  3698.          *
  3699.          * @see TCADAPI TCWExplode function
  3700.          */
  3701.     [
  3702.          helpcontext(0x1003002A)
  3703.         ,helpstring("Explodes a group or block insertion.")
  3704.     ]
  3705.     HRESULT  Explode(
  3706.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  3707.         );
  3708.  
  3709.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  3710.  
  3711.         /**
  3712.          * Copies the Graphic object along a line.
  3713.          */
  3714.     [
  3715.          helpcontext(0x1003002B)
  3716.         ,helpstring("Copies the Graphic object along a line.")
  3717.         ,restricted, hidden
  3718.     ]
  3719.     HRESULT  LinearCopyAbsolute(
  3720.         [in] double X, // X coordinate to copy to.
  3721.         [in] double Y, // Y coordinate to copy to.
  3722.         [in] double Z, // Z coordinate to copy to.
  3723.         [in] long Copies, // Number of copies including the original.
  3724.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3725.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3726.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3727.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3728.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3729.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3730.         );
  3731.  
  3732.         /**
  3733.          * Copies the Graphic object along a line.
  3734.          */
  3735.     [
  3736.          helpcontext(0x1003002C)
  3737.         ,helpstring("Copies the Graphic object along a line.")
  3738.         ,restricted, hidden
  3739.     ]
  3740.     HRESULT  LinearCopyRelative(
  3741.         [in] double X, // X offset.
  3742.         [in] double Y, // Y offset.
  3743.         [in] double Z, // Z offset.
  3744.         [in] long Copies, // Number of copies including the original.
  3745.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  3746.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3747.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3748.         );
  3749.  
  3750.         /**
  3751.          * Copies the Graphic object along a line.
  3752.          */
  3753.     [
  3754.          helpcontext(0x1003002D)
  3755.         ,helpstring("Copies the Graphic object along a line.")
  3756.         ,restricted, hidden
  3757.     ]
  3758.     HRESULT  LinearCopyAngle(
  3759.         [in] double Length, // Length of copy.
  3760.         [in] double Angle, // Angle of copy in radians.
  3761.         [in] long Copies, // Number of copies including the original.
  3762.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  3763.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3764.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3765.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3766.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3767.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3768.         );
  3769.  
  3770.         /**
  3771.          * Copies the Graphic object radially.
  3772.          */
  3773.     [
  3774.          helpcontext(0x1003002E)
  3775.         ,helpstring("Copies the Graphic object radially.")
  3776.         ,restricted, hidden
  3777.     ]
  3778.     HRESULT  RadialCopyAbsolute(
  3779.         [in] double X0, // X coordinate of center of arc.
  3780.         [in] double Y0, // Y coordinate of center of arc.
  3781.         [in] double Z0, // Z coordinate of center of arc.
  3782.         [in] double X1, // X coordinate of point on arc.
  3783.         [in] double Y1, // Y coordinate of point on arc.
  3784.         [in] double Z1, // Z coordinate of point on arc.
  3785.         [in] long Copies, // Number of copies including the original.
  3786.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3787.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3788.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3789.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3790.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3791.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3792.         );
  3793.  
  3794.         /**
  3795.          * Copies the Graphic object radially.
  3796.          */
  3797.     [
  3798.          helpcontext(0x1003002F)
  3799.         ,helpstring("Copies the Graphic object radially.")
  3800.         ,restricted, hidden
  3801.     ]
  3802.     HRESULT  RadialCopyAngle(
  3803.         [in] double X, // X coordinate of center of arc.
  3804.         [in] double Y, // Y coordinate of center of arc.
  3805.         [in] double Z, // Z coordinate of center of arc.
  3806.         [in] double Angle, // Angle between copies or for last copy.
  3807.         [in] double RotationAngle, // Angle to rotate each copy.
  3808.         [in] long Copies, // Number of copies including the original.
  3809.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  3810.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3811.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3812.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3813.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3814.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3815.         );
  3816.  
  3817.         /**
  3818.          * Copies the Graphic objects in a two dimensional array.
  3819.          */
  3820.     [
  3821.          helpcontext(0x10030030)
  3822.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  3823.         ,restricted, hidden
  3824.     ]
  3825.     HRESULT  ArrayCopyAbsolute(
  3826.         [in] double X, // X coordinate defining row and column spacing.
  3827.         [in] double Y, // Y coordinate defining row and column spacing.
  3828.         [in] double Z, // Z coordinate defining row and column spacing.
  3829.         [in] long Rows, // Number of rows including the original.
  3830.         [in] long Columns, // Number of columns including the original.
  3831.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  3832.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3833.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3834.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3835.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3836.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3837.         );
  3838.  
  3839.         /**
  3840.          * Copies the Graphic objects in a two dimensional array.
  3841.          */
  3842.     [
  3843.          helpcontext(0x10030031)
  3844.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  3845.         ,restricted, hidden
  3846.     ]
  3847.     HRESULT  ArrayCopyRelative(
  3848.         [in] double X, // X coordinate of column offset.
  3849.         [in] double Y, // Y coordinate of row offset.
  3850.         [in] long Rows, // Number of rows including the original.
  3851.         [in] long Columns, // Number of columns including the original.
  3852.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  3853.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3854.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  3855.         );
  3856.  
  3857.         /**
  3858.          * Mirrors the Graphic object about a line.
  3859.          */
  3860.     [
  3861.          helpcontext(0x10030032)
  3862.         ,helpstring("Mirrors the Graphic object about a line.")
  3863.         ,restricted, hidden
  3864.     ]
  3865.     HRESULT  MirrorCopyLine(
  3866.         [in] double X0, // X coordinate of the first point on line.
  3867.         [in] double Y0, // Y coordinate of the first point on line.
  3868.         [in] double Z0, // Z coordinate of the first point on line.
  3869.         [in] double X1, // X coordinate of the second point on line.
  3870.         [in] double Y1, // Y coordinate of the second point on line.
  3871.         [in] double Z1, // Z coordinate of the second point on line.
  3872.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  3873.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3874.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  3875.         );
  3876.  
  3877.         /**
  3878.          * Mirrors the Graphic object about an angle.
  3879.          */
  3880.     [
  3881.          helpcontext(0x10030033)
  3882.         ,helpstring("Mirrors the Graphic object about an angle.")
  3883.         ,restricted, hidden
  3884.     ]
  3885.     HRESULT  MirrorCopyAngle(
  3886.         [in] double X, // X coordinate to mirror to.
  3887.         [in] double Y, // Y coordinate to mirror to.
  3888.         [in] double Z, // Z coordinate to mirror to.
  3889.         [in] double Angle, // Angle of mirror.
  3890.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  3891.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3892.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3893.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3894.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  3895.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  3896.         );
  3897.  
  3898.         /**
  3899.          * Scales the Graphic object.
  3900.          *
  3901.          * @see TCADAPI TCWSelectionScale function.
  3902.          */
  3903.     [
  3904.          helpcontext(0x10030034)
  3905.         ,helpstring("Scales the Graphic object.")
  3906.     ]
  3907.     HRESULT  Scale(
  3908.         [in] double XScale, // X scale factor.
  3909.         [in] double YScale, // Y scale factor.
  3910.         [in] double ZScale, // Z scale factor.
  3911.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3912.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3913.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3914.         [out, retval] IMatrix** prop // The matrix that was calculated.
  3915.         );
  3916.  
  3917.         /**
  3918.          * NOTE: The only reason RotateAxis and RotateAbsolute are defined the way they are
  3919.          * is because of a MIDL bug that prevents using more than a few double parameters...
  3920.          * <p>
  3921.          * Rotates the Graphic object.
  3922.          *
  3923.          * @see TCADAPI TCWSelectionRotate function.
  3924.          */
  3925.     [
  3926.          helpcontext(0x10030035)
  3927.         ,helpstring("Rotates the Graphic object.")
  3928.     ]
  3929.     HRESULT  RotateAxis(
  3930.         [in] double Angle, // Angle of rotation in radians.
  3931.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  3932.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  3933.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  3934.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  3935.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  3936.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  3937.         [out, retval] IMatrix** prop // The matrix that was calculated.
  3938.         );
  3939.  
  3940.         /**
  3941.          * Rotates the Graphic object.
  3942.          *
  3943.          * @see TCADAPI TCWSelectionRotate function.
  3944.          */
  3945.     [
  3946.          helpcontext(0x10030036)
  3947.         ,helpstring("Rotates the Graphic object.")
  3948.     ]
  3949.     HRESULT  RotateAbsolute(
  3950.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  3951.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  3952.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  3953.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  3954.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  3955.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  3956.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  3957.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  3958.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  3959.         [out, retval] IMatrix** prop // The matrix that was calculated.
  3960.         );
  3961.  
  3962.         /**
  3963.          * Moves the Graphic object to a new location.
  3964.          *
  3965.          * @see TCADAPI TCWSelectionMove function.
  3966.          */
  3967.     [
  3968.          helpcontext(0x10030037)
  3969.         ,helpstring("Moves the Graphic object to a new location.")
  3970.     ]
  3971.     HRESULT  MoveAbsolute(
  3972.         [in] double X, // X coordinate to move to.
  3973.         [in] double Y, // Y coordinate to move to.
  3974.         [in] double Z, // Z coordinate to move to.
  3975.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  3976.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  3977.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  3978.         [out, retval] IMatrix** prop // The matrix that was calculated.
  3979.         );
  3980.  
  3981.         /**
  3982.          * Moves the Graphic object by a specified offset.
  3983.          *
  3984.          * @see TCADAPI TCWSelectionMove function.
  3985.          */
  3986.     [
  3987.          helpcontext(0x10030038)
  3988.         ,helpstring("Moves the Graphic object by a specified offset.")
  3989.     ]
  3990.     HRESULT  MoveRelative(
  3991.         [in] double X, // X offset.
  3992.         [in] double Y, // Y offset.
  3993.         [in] double Z, // Z offset.
  3994.         [out, retval] IMatrix** prop // The matrix that was calculated.
  3995.         );
  3996.  
  3997.         /**
  3998.          * Transforms the Graphic object.
  3999.          */
  4000.     [
  4001.          helpcontext(0x10030039)
  4002.         ,helpstring("Transforms the Graphic object.")
  4003.     ]
  4004.     HRESULT  Transform(
  4005.         [in] IMatrix* Transform // The matrix to perform transformation.
  4006.         );
  4007.  
  4008.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  4009.  
  4010.         /**
  4011.          * Brings the Graphic object to the front.
  4012.          *
  4013.          * @see TCADAPI TCWBringToFront function.
  4014.          */
  4015.     [
  4016.          helpcontext(0x1003003A)
  4017.         ,helpstring("Brings the Graphic object to the front.")
  4018.     ]
  4019.     HRESULT  BringToFront(
  4020.         );
  4021.  
  4022.         /**
  4023.          * Sends the Graphic object to the back.
  4024.          *
  4025.          * @see TCADAPI TCWSendToBack function.
  4026.          */
  4027.     [
  4028.          helpcontext(0x1003003B)
  4029.         ,helpstring("Sends the Graphic object to the back.")
  4030.     ]
  4031.     HRESULT  SendToBack(
  4032.         );
  4033.  
  4034.         ////////////////////// New stuff added here \\\\\\\\\\\\\\\\\\\\
  4035.  
  4036.         /**
  4037.          * Returns the Graphic object's type, as an enumerated value.
  4038.          */
  4039.         [
  4040.              propget
  4041.             ,helpcontext(0x1003003C)
  4042.             ,helpstring("Returns the Graphic object's type, as an enumerated value.")
  4043.         ]
  4044.         HRESULT  TypeByValue(
  4045.             [out, retval] ImsiGraphicType* prop // The Graphic object's type.
  4046.             );
  4047.  
  4048.         /**
  4049.          * Returns the distance to the specified Graphic object.
  4050.          */
  4051.         [
  4052.              helpcontext(0x1003003D)
  4053.             ,helpstring("Returns the distance to the specified Graphic object.")
  4054.         ]
  4055.         HRESULT  GetDistance(
  4056.             [in] double X, // The x coordinate of the point to be tested.
  4057.             [in] double Y, // The y coordinate of the point to be tested.
  4058.             [in] double Z, // The z coordinate of the point to be tested.
  4059.             [in, out, optional] VARIANT *ClosestVertex, // The closest vertex on the Graphic object.
  4060.             [in, out, optional] VARIANT *ClosestChild, // The closest child Graphic object.
  4061.             [out, retval] double *prop // The distance from (X, Y, Z) to the closest vertex.
  4062.             );
  4063.  
  4064.         /**
  4065.          * Returns arrays of face data for a 3d surface Graphic object.
  4066.          */
  4067.         [
  4068.              helpcontext(0x1003003E)
  4069.             ,helpstring("Returns arrays of face data for a 3d surface Graphic object.")
  4070.         ]
  4071.         HRESULT  GetFaceData(
  4072.             [in, out] VARIANT* VertexArray, // An array of (X, Y, Z) position values
  4073.             [in, out] VARIANT* VertexIndices, // An array of indices into the VertexArray
  4074.             [in, out] VARIANT* EdgeFlags // An array of flags
  4075.             );
  4076.  
  4077.         /**
  4078.          * Generates a bounding polygon array to use in drag operations.
  4079.          *
  4080.          * @see View::DragOutline
  4081.          */
  4082.     [
  4083.          helpcontext(0x1003003F)
  4084.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  4085.     ]
  4086.     HRESULT  CreateDragOutline(
  4087.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  4088.         );
  4089.  
  4090.         /**
  4091.          * Returns the Graphic object's Attributes collection.
  4092.          */
  4093.         [
  4094.              propget
  4095.             ,helpcontext(0x10030040)
  4096.             ,helpstring("Returns the Graphic object's Attributes collection.")
  4097.         ]
  4098.         HRESULT  Attributes(
  4099.             [out, retval] Properties** prop // The Attributes collection.
  4100.             );
  4101.  
  4102.         /**
  4103.          * Returns the Block object referenced by an Insert.
  4104.          */
  4105.         [
  4106.              propget
  4107.             ,helpcontext(0x10030041)
  4108.             ,helpstring("Returns the Block object referenced by an Insert.")
  4109.         ]
  4110.         HRESULT  Block(
  4111.             [out, retval] Block** prop // The Block object.
  4112.             );
  4113.  
  4114.         /**
  4115.          * Returns Arc parameter information.
  4116.          * Data returned in array is as follows:
  4117.          * param[0]  X coordinate of center point
  4118.          * param[1]  Y coordinate of center point
  4119.          * param[2]  Z coordinate of center point
  4120.          * param[3]  X coordinate of major axis
  4121.          * param[4]  Y coordinate of major axis
  4122.          * param[5]  Z coordinate of major axis
  4123.          * param[6]  ratio of minor/major axes (1.0 = circle)
  4124.          * param[7]  start angle in radians
  4125.          * param[8]  end angle in radians
  4126.          * param[9]  0.0 if open arc, 1.0 if closed (ellipse or circle)
  4127.          */
  4128.         [
  4129.              helpcontext(0x10030042)
  4130.             ,helpstring("Returns Arc parameter information.")
  4131.         ]
  4132.         HRESULT  GetArcData(
  4133.             [in, out] VARIANT* varArcData // Array of 10 double values
  4134.             );
  4135.  
  4136.         /**
  4137.          * Forces an update of the Graphic object's properties.
  4138.          */
  4139.         [
  4140.              helpcontext(0x10030043)
  4141.             ,helpstring("Forces an update of the Graphic object's properties.")
  4142.         ]
  4143.         HRESULT  Update(
  4144.             );
  4145.  
  4146.         /**
  4147.          * Returns the Block object referenced by an Insert.
  4148.          */
  4149.         [
  4150.              propput
  4151.             ,helpcontext(0x10030041)
  4152.             ,helpstring("Returns the Block object referenced by an Insert.")
  4153.         ]
  4154.         HRESULT  Block(
  4155.             [in] Block* prop // The Block object.
  4156.             );
  4157.  
  4158.  
  4159.         /**
  4160.          * Returns the Graphic CS as Matrix object
  4161.          */
  4162.         [
  4163.              propget
  4164.             ,helpcontext(0x10030044)
  4165.             ,helpstring("Returns the Graphic CS as Matrix object .")
  4166.         ]
  4167.         HRESULT  UCS(
  4168.             [out, retval] IMatrix** prop // The Block object.
  4169.             );
  4170.         /**
  4171.          * Returns the Graphic CS as Matrix object
  4172.          */
  4173.         [
  4174.              propput
  4175.             ,helpcontext(0x10030044)
  4176.             ,helpstring("Set the Graphic CS as Matrix object .")
  4177.         ]
  4178.         HRESULT  UCS(
  4179.             [in] IMatrix* prop // The Matrix object.
  4180.             );
  4181.  
  4182.         /**
  4183.          * Returns dimension size for a 3d surface (3DMesh) Graphic object.
  4184.          */
  4185.         [
  4186.              helpcontext(0x10030045)
  4187.             ,helpstring("dimension size for a 3DMesh Graphic object.")
  4188.         ]
  4189.         HRESULT  GetFaceDimension(
  4190.             [in, out] long* M,  
  4191.             [in, out] long* N,
  4192.             [in, out] long* facetCount
  4193.             );
  4194.  
  4195.         /**
  4196.          * Returns surface object for imsiSurface Graphic object.
  4197.          */
  4198.         [
  4199.              propget
  4200.             ,helpcontext(0x10030046)
  4201.             ,helpstring("Returns surface object for imsiSurface Graphic object..")
  4202.         ]
  4203.         HRESULT  Surface(
  4204.                 [out, retval] IDispatch** prop
  4205.             );
  4206.     
  4207.         /**
  4208.          * True if the object is selected.
  4209.          */
  4210.         [
  4211.              propget
  4212.             ,helpcontext(0x10030047)
  4213.             ,helpstring("True if the object is visible.")
  4214.         ]
  4215.         HRESULT  Selected(
  4216.             [out, retval] IMSI_BOOL* prop // True if the object is visible.
  4217.             );
  4218.  
  4219.         /**
  4220.          * True if the object is selected.
  4221.          */
  4222.         [
  4223.              propput
  4224.             ,helpcontext(0x10030047)
  4225.             ,helpstring("True if the object is selected.")
  4226.         ]
  4227.         HRESULT  Selected(
  4228.             [in] IMSI_BOOL prop // True if the object is visible.
  4229.             );
  4230.  
  4231.     
  4232.         /**
  4233.          * Returns Graphic's reference point.
  4234.          */
  4235.         [
  4236.              propget
  4237.             ,helpcontext(0x10030048)
  4238.             ,helpstring("Returns Graphic's reference point.")
  4239.         ]
  4240.         HRESULT  ReferencePoint(
  4241.              [in, optional]    VARIANT* bUseWorldCS
  4242.             ,[out, retval] IVertex** prop // True if the object is visible.
  4243.             );
  4244.     };
  4245.  
  4246.  
  4247.  
  4248.     /**
  4249.      * The collection of Graphic objects contained by a Drawing object or a Graphic object.
  4250.      * Every Graphic object owns a Graphics collection, allowing for a hierarchy
  4251.      * of Graphic objects.
  4252.      */
  4253.     [
  4254.          object
  4255.         ,uuid(6A48110A-E531-11CF-A115-00A024158DAF)
  4256.         ,oleautomation
  4257.         ,dual
  4258.         ,helpcontext(0x10040000)
  4259.         ,helpstring("A collection of Graphic objects.")
  4260.     ]
  4261.     interface Graphics : IDispatch
  4262.     {
  4263.  
  4264.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  4265.  
  4266.         /**
  4267.          * Returns an Application object that represents the owner of the specified object.
  4268.          */
  4269.         [
  4270.              propget
  4271.             ,helpcontext(0x10040001)
  4272.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  4273.         ]
  4274.         HRESULT  Application(
  4275.             [out, retval] IApplication** prop // The Application object.
  4276.             );
  4277.  
  4278.         /**
  4279.          * Returns the number of items in the collection.
  4280.          */
  4281.         [
  4282.              propget
  4283.             ,helpcontext(0x10040002)
  4284.             ,helpstring("Returns the number of items in the collection.")
  4285.         ]
  4286.         HRESULT  Count(
  4287.             [out, retval] long* prop // The number of items.
  4288.             );
  4289.  
  4290.         /**
  4291.          * Returns the Drawing object that owns the object.
  4292.          */
  4293.         [
  4294.              propget
  4295.             ,helpcontext(0x10040003)
  4296.             ,helpstring("Returns the Drawing object that owns the object.")
  4297.         ]
  4298.         HRESULT  Drawing(
  4299.             [out, retval] IDrawing** prop // The Drawing object.
  4300.             );
  4301.  
  4302.         /**
  4303.          * Returns part of a collection.
  4304.          */
  4305.         [
  4306.              propget
  4307.             ,id(DISPID_VALUE)
  4308.             ,helpcontext(0x10040004)
  4309.         ,
  4310.         helpstring("Returns part of a collection.")]
  4311.         HRESULT  Item(
  4312.             [in] VARIANT* Index, // Index of item to return.
  4313.             [out, retval] IGraphic** prop // The item.
  4314.             );
  4315.  
  4316.         /**
  4317.          * Returns the parent object for the specified object.
  4318.          */
  4319.         [
  4320.              propget
  4321.             ,helpcontext(0x10040005)
  4322.             ,helpstring("Returns the parent object for the specified object.")
  4323.         ]
  4324.         HRESULT  Parent(
  4325.             [out, retval] IDispatch** prop // The parent object.
  4326.             );
  4327.  
  4328.         /**
  4329.          * Creates an enumeration object.
  4330.          */
  4331.         [
  4332.              propget
  4333.             ,restricted
  4334.             ,id(DISPID_NEWENUM)
  4335.             ,helpcontext(0x10040006)
  4336.             ,helpstring("Private.  Creates an enumeration object.")
  4337.         ]
  4338.         HRESULT  _NewEnum(
  4339.             [out, retval] IUnknown** prop // The enumeration object.
  4340.             );
  4341.  
  4342.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  4343.  
  4344. #ifndef METHOD_OVERFLOW_BUG
  4345.  
  4346.         /**
  4347.          * Applies a Style object to the contents of the collection.
  4348.          */
  4349.         [
  4350.              helpcontext(0x10040007)
  4351.             ,helpstring("Applies a Style object to the contents of the collection.")
  4352.             ,restricted, hidden
  4353.         ]
  4354.         HRESULT  ApplyStyle(
  4355.             [in] Style* StyleToApply // The Style object to apply.
  4356.             );
  4357.  
  4358.         /**
  4359.          * Checks the spelling of all the text Graphic object's in the collection.
  4360.          */
  4361.         [
  4362.              helpcontext(0x10040008)
  4363.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  4364.             ,restricted, hidden
  4365.         ]
  4366.         HRESULT  CheckSpelling(
  4367.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  4368.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  4369.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  4370.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  4371.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  4372.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  4373.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  4374.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  4375.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  4376.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  4377.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  4378.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  4379.         );
  4380.  
  4381.         /**
  4382.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  4383.          *
  4384.          * @see TCADAPI TCWCreateHatch function
  4385.          */
  4386.         [
  4387.              helpcontext(0x10040009)
  4388.             ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  4389.         ]
  4390.         HRESULT  AddHatch(
  4391.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4392.             );
  4393.  
  4394.         /**
  4395.          * Creates a Style object based on the contents of the collection.
  4396.          */
  4397.         [
  4398.              helpcontext(0x1004000A)
  4399.             ,helpstring("Creates a Style object based on the contents of the collection.")
  4400.             ,restricted, hidden
  4401.         ]
  4402.         HRESULT  CreateStyle(
  4403.             [in] Style* BasedOn, // The style to base the new Style object on.
  4404.             [out, retval] Style** prop // The newly created Style object.
  4405.             );
  4406.  
  4407.         /**
  4408.          * Creates and adds an OLE object to the collection.
  4409.          */
  4410.         [
  4411.              helpcontext(0x1004000B)
  4412.             ,helpstring("Creates and adds an OLE object to the collection.")
  4413.             ,restricted, hidden
  4414.         ]
  4415.         HRESULT  AddObject(
  4416.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  4417.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  4418.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  4419.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  4420.             [in, optional] VARIANT* IconFileName, // File containing icon.
  4421.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  4422.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  4423.             [in, optional] VARIANT* X, // X coordinate of center of object.
  4424.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  4425.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  4426.             [in, optional] VARIANT* Width, // Width of object.
  4427.             [in, optional] VARIANT* Height, // Height of object.
  4428.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  4429.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4430.             );
  4431.  
  4432.         /**
  4433.          * Creates and adds a single line segment to the collection.
  4434.          */
  4435.         [
  4436.              helpcontext(0x1004000C)
  4437.             ,helpstring("Creates and adds a single line segment to the collection.")
  4438.             ,restricted, hidden
  4439.         ]
  4440.         HRESULT  AddLineTanArcPoint(
  4441.             [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  4442.             [in] double X0, // X coordinate on arc for line endpoint.
  4443.             [in] double Y0, // Y coordinate on arc for line endpoint.
  4444.             [in] double Z0, // Z coordinate on arc for line endpoint.
  4445.             [in] double length, // length of tangent line.
  4446.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4447.             );
  4448.  
  4449.         /**
  4450.          * Creates and adds a single line segment to the collection.
  4451.          */
  4452.         [
  4453.              helpcontext(0x1004000D)
  4454.             ,helpstring("Creates and adds a single line segment to the collection.")
  4455.             ,restricted, hidden
  4456.         ]
  4457.         HRESULT  AddLineTanToArc(
  4458.             [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  4459.             [in] double X0, // X coordinate on arc for the line's first endpoint.
  4460.             [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  4461.             [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  4462.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4463.             );
  4464.  
  4465.         /**
  4466.          * Creates and adds a single line segment to the collection.
  4467.          */
  4468.         [
  4469.              helpcontext(0x1004000E)
  4470.             ,helpstring("Creates and adds a single line segment to the collection.")
  4471.             ,restricted, hidden
  4472.         ]
  4473.         HRESULT  AddLineTanFromArc(
  4474.             [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  4475.             [in] double X0, // X coordinate on arc for the line's second endpoint.
  4476.             [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  4477.             [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  4478.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4479.             );
  4480.  
  4481.         /**
  4482.          * Creates and adds a single line segment to the collection.
  4483.          */
  4484.         [
  4485.              helpcontext(0x1004000F)
  4486.             ,helpstring("Creates and adds a single line segment to the collection.")
  4487.             ,restricted, hidden
  4488.         ]
  4489.         HRESULT  AddLineTan2Arcs(
  4490.             [in] IGraphic* Arc1, // First arc.
  4491.             [in] IGraphic* Arc2, // Second arc.
  4492.             [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  4493.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4494.             );
  4495.  
  4496.         /**
  4497.          * Creates and adds a multi segment leader (callout) line to the collection.
  4498.          * The returned Graphic object contains only a beginning vertex.  The user must
  4499.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4500.          * and a Graphic.Finish call to complete the Graphic object.
  4501.          */
  4502.         [
  4503.              helpcontext(0x10040010)
  4504.             ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  4505.             ,restricted, hidden
  4506.         ]
  4507.         HRESULT  AddDimensionLeader(
  4508.             [in] double X0, // X coordinate of the first endpoint.
  4509.             [in] double Y0, // Y coordinate of the first endpoint.
  4510.             [in] double Z0, // Z coordinate of the first endpoint.
  4511.             [in, optional] BSTR Text, // The text for the leader.
  4512.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4513.             );
  4514.  
  4515.         /**
  4516.          * Creates and adds a baseline dimension to the collection.
  4517.          * The returned Graphic object contains only a beginning vertex.  The user must
  4518.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4519.          * and a Graphic.Finish call to complete the Graphic object.
  4520.          */
  4521.         [
  4522.              helpcontext(0x10040011)
  4523.             ,helpstring("Creates and adds a WHATEVER to the collection.")
  4524.             ,restricted, hidden
  4525.         ]
  4526.         HRESULT  AddDimensionBaseline(
  4527.             [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  4528.             [in] double X0, // X coordinate of second extension line.
  4529.             [in] double Y0, // Y coordinate of second extension line.
  4530.             [in] double Z0, // Z coordinate of second extension line.
  4531.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4532.             );
  4533.  
  4534.         /**
  4535.          * Creates and adds a continuous dimension to the collection.
  4536.          * The returned Graphic object contains only a beginning vertex.  The user must
  4537.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4538.          * and a Graphic.Finish call to complete the Graphic object.
  4539.          */
  4540.         [
  4541.              helpcontext(0x10040012)
  4542.             ,helpstring("Creates and adds a continuous dimension to the collection.")
  4543.             ,restricted, hidden
  4544.         ]
  4545.         HRESULT  AddDimensionContinuous(
  4546.             [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  4547.             [in] double X0, // X coordinate of second extension line.
  4548.             [in] double Y0, // Y coordinate of second extension line.
  4549.             [in] double Z0, // Z coordinate of second extension line.
  4550.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4551.             );
  4552.  
  4553.         /**
  4554.          * Creates and adds a single segment double line to the collection.
  4555.          *
  4556.          * @see TCADAPI TCWDoubleLineSingle function
  4557.          */
  4558.         [
  4559.              helpcontext(0x10040013)
  4560.             ,helpstring("Creates and adds a single segment double line to the collection.")
  4561.             ,restricted, hidden
  4562.         ]
  4563.         HRESULT  AddDoubleLineSingle(
  4564.             [in] double X0, // X coordinate of the first point.
  4565.             [in] double Y0, // Y coordinate of the first point.
  4566.             [in] double Z0, // Z coordinate of the first point.
  4567.             [in] double X1, // X coordinate of the second point.
  4568.             [in] double Y1, // Y coordinate of the second point.
  4569.             [in] double Z1, // Z coordinate of the second point.
  4570.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4571.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4572.             );
  4573.  
  4574.         /**
  4575.          * Creates and adds a double regular polygon to the collection.
  4576.          *
  4577.          * @see TCADAPI TCWDoubleLinePolygon function
  4578.          */
  4579.         [
  4580.              helpcontext(0x10040014)
  4581.             ,helpstring("Creates and adds a double regular polygon to the collection.")
  4582.             ,restricted, hidden
  4583.         ]
  4584.         HRESULT  AddDoubleLinePolygon(
  4585.             [in] double X0, // X coordinate of the center point.
  4586.             [in] double Y0, // Y coordinate of the center point.
  4587.             [in] double Z0, // Z coordinate of the center point.
  4588.             [in] double X1, // X coordinate of the corner point.
  4589.             [in] double Y1, // Y coordinate of the corner point.
  4590.             [in] double Z1, // Z coordinate of the corner point.
  4591.             [in] long Sides, // Number of sides.
  4592.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4593.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4594.             );
  4595.  
  4596.             /**
  4597.              * Creates and adds a double rectangle to the collection.
  4598.              *
  4599.              * @see TCADAPI TCWDoubleLineRectangle function
  4600.              */
  4601.         [
  4602.              helpcontext(0x10040015)
  4603.             ,helpstring("Creates and adds a double rectangle to the collection.")
  4604.             ,restricted, hidden
  4605.         ]
  4606.         HRESULT  AddDoubleLineRectangle(
  4607.             [in] double X0, // X coordinate of the upper left corner.
  4608.             [in] double Y0, // Y coordinate of the upper left corner.
  4609.             [in] double Z0, // Z coordinate of the upper left corner.
  4610.             [in] double X1, // X coordinate of the lower right corner.
  4611.             [in] double Y1, // Y coorindate of the lower right corner.
  4612.             [in] double Z1, // Z coorindate of the lower right corner.
  4613.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4614.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4615.             );
  4616.  
  4617.             /**
  4618.              * Creates and adds a double rotated rectangle to the collection.
  4619.              *
  4620.              * @see TCADAPI TCWDoubleLineRotatedRectangle function
  4621.              */
  4622.         [
  4623.              helpcontext(0x10040016)
  4624.             ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  4625.             ,restricted, hidden
  4626.         ]
  4627.         HRESULT  AddDoubleLineRotatedRectangle(
  4628.             [in] double X0, // X coordinate of the upper left corner.
  4629.             [in] double Y0, // Y coordinate of the upper left corner.
  4630.             [in] double Z0, // Z coordinate of the upper left corner.
  4631.             [in] double X1, // X coordinate of the lower right corner.
  4632.             [in] double Y1, // Y coorindate of the lower right corner.
  4633.             [in] double Z1, // Z coorindate of the lower right corner.
  4634.             [in] double Angle, // Angle of rotation in radians.
  4635.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4636.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4637.             );
  4638.  
  4639.             /**
  4640.              * Creates and adds a double line to the collection.
  4641.              *
  4642.              * @see TCADAPI TCWDoubleLinePerpendicular function
  4643.              */
  4644.         [
  4645.              helpcontext(0x10040017)
  4646.             ,helpstring("Creates and adds a double line to the collection.")
  4647.             ,restricted, hidden
  4648.         ]
  4649.         HRESULT  AddDoubleLinePerpendicular(
  4650.             [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  4651.             [in] double X0, // X coordinate of the point on the existing line.
  4652.             [in] double Y0, // Y coordinate of the point on the existing line.
  4653.             [in] double Z0, // Z coordinate of the point on the existing line.
  4654.             [in] double X1, // X coordinate of the second point on the new line.
  4655.             [in] double Y1, // Y coordinate of the second point on the new line.
  4656.             [in] double Z1, // Z coordinate of the second point on the new line.
  4657.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4658.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4659.             );
  4660.  
  4661.             /**
  4662.              * Creates and adds a multiple segment double line to the collection.
  4663.              * The returned Graphic object contains only a beginning vertex.  The user must
  4664.              * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4665.              * and a Graphic.Finish call to complete the Graphic object.
  4666.              *
  4667.              * @see TCADAPI TCWDoubleLineMultiline function
  4668.              */
  4669.         [
  4670.              helpcontext(0x10040018)
  4671.             ,helpstring("Creates and adds a multiple segment double line to the collection.")
  4672.             ,restricted, hidden
  4673.         ]
  4674.         HRESULT  AddDoubleLineMultiline(
  4675.             [in] double X0, // X coordinate of first endpoint.
  4676.             [in] double Y0, // Y coordinate of first endpoint.
  4677.             [in] double Z0, // Z coordinate of first endpoint.
  4678.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4679.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4680.             );
  4681.  
  4682.             /**
  4683.              * Creates and adds a double irregular polygon to the collection.
  4684.              * The returned Graphic object contains only a beginning vertex.  The user must
  4685.              * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  4686.              * and a Graphic.Close call to complete the Graphic object.
  4687.              *
  4688.              * @see TCADAPI TCWDoubleLineIrregularPolygon function
  4689.              */
  4690.         [
  4691.              helpcontext(0x10040019)
  4692.             ,helpstring("Creates and adds a double irregular polygon to the collection.")
  4693.             ,restricted, hidden
  4694.         ]
  4695.         HRESULT  AddDoubleLineIrregularPolygon(
  4696.             [in] double X0, // X coordinate of first endpoint.
  4697.             [in] double Y0, // Y coordinate of first endpoint.
  4698.             [in] double Z0, // Z coordinate of first endpoint.
  4699.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4700.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4701.             );
  4702.  
  4703.             /**
  4704.              * Creates and adds a double line to the collection.
  4705.              *
  4706.              * @see TCADAPI TCWDoubleLineParallel function
  4707.              */
  4708.         [
  4709.              helpcontext(0x1004001A)
  4710.             ,helpstring("Creates and adds a double line to the collection.")
  4711.             ,restricted, hidden
  4712.         ]
  4713.         HRESULT  AddDoubleLineParallel(
  4714.             [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  4715.             [in] double X0, // X coordinate of the new line.
  4716.             [in] double Y0, // Y coordinate of the new line.
  4717.             [in] double Z0, // Z coordinate of the new line.
  4718.             [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  4719.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4720.             );
  4721.  
  4722.             /**
  4723.              * Creates and adds a circle to the collection.
  4724.              */
  4725.         [
  4726.              helpcontext(0x1004001B)
  4727.             ,helpstring("Creates and adds a circle to the collection.")
  4728.             ,restricted, hidden
  4729.         ]
  4730.         HRESULT  AddCircleTanToArc(
  4731.             [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  4732.             [in] double X0, // X coordinate of the new circle's center point.
  4733.             [in] double Y0, // Y coordinate of the new circle's center point.
  4734.             [in] double Z0, // Z coordinate of the new circle's center point.
  4735.             [in] double X1, // X coordinate of the new circle's radius point.
  4736.             [in] double Y1, // Y coordinate of the new circle's radius point.
  4737.             [in] double Z1, // Z coordinate of the new circle's radius point.
  4738.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4739.             );
  4740.  
  4741.             /**
  4742.              * Creates and adds a circle to the collection.
  4743.              */
  4744.         [
  4745.              helpcontext(0x1004001C)
  4746.             ,helpstring("Creates and adds a circle to the collection.")
  4747.             ,restricted, hidden
  4748.         ]
  4749.         HRESULT  AddCircleTanToLine(
  4750.             [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  4751.             [in] double X0, // X coordinate of the new circle's center point.
  4752.             [in] double Y0, // Y coordinate of the new circle's center point.
  4753.             [in] double Z0, // Z coordinate of the new circle's center point.
  4754.             [in] double X1, // X coordinate of the new circle's radius point.
  4755.             [in] double Y1, // Y coordinate of the new circle's radius point.
  4756.             [in] double Z1, // Z coordinate of the new circle's radius point.
  4757.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4758.             );
  4759.  
  4760.             /**
  4761.              * Creates and adds a circle to the collection.
  4762.              */
  4763.         [
  4764.              helpcontext(0x1004001D)
  4765.             ,helpstring("Creates and adds a circle to the collection.")
  4766.             ,restricted, hidden
  4767.         ]
  4768.         HRESULT  AddCircleTan3Arcs(
  4769.             [in] IGraphic* Arc1, // First arc or circle.
  4770.             [in] IGraphic* Arc2, // Second arc or circle.
  4771.             [in] IGraphic* Arc3, // Third arc or circle.
  4772.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4773.             );
  4774.  
  4775.             /**
  4776.              * Creates and adds an arc to the collection.
  4777.              */
  4778.         [
  4779.              helpcontext(0x1004001E)
  4780.             ,helpstring("Creates and adds an arc to the collection.")
  4781.             ,restricted, hidden
  4782.         ]
  4783.         HRESULT  AddArcTanToArc(
  4784.             [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  4785.             [in] double X0, // X coordinate of new arc's radius point.
  4786.             [in] double Y0, // Y coordinate of new arc's radius point.
  4787.             [in] double Z0, // Z coordinate of new arc's radius ponit.
  4788.             [in] double X1, // X coordinate of point on existing arc.
  4789.             [in] double Y1, // Y coordinate of point on existing arc.
  4790.             [in] double Z1, // Z coordinate of ponit on existing arc.
  4791.             [in] double StartAngle, // Starting angle in radians.
  4792.             [in] double EndAngle, // Ending angle in radians.
  4793.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4794.             );
  4795.  
  4796.             /**
  4797.              * Creates and adds an arc to the collection.
  4798.              */
  4799.         [
  4800.              helpcontext(0x1004001F)
  4801.             ,helpstring("Creates and adds an arc to the collection.")
  4802.             ,restricted, hidden
  4803.         ]
  4804.         HRESULT  AddArcTanToLine(
  4805.             [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  4806.             [in] double X0, // X coordinate of new arc's radius point.
  4807.             [in] double Y0, // Y coordinate of new arc's radius point.
  4808.             [in] double Z0, // Z coordinate of new arc's radius ponit.
  4809.             [in] double X1, // X coordinate of point on existing line.
  4810.             [in] double Y1, // Y coordinate of point on existing line.
  4811.             [in] double Z1, // Z coordinate of ponit on existing line.
  4812.             [in] double StartAngle, // Starting angle in radians.
  4813.             [in] double EndAngle, // Ending angle in radians.
  4814.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4815.             );
  4816.  
  4817.             /**
  4818.              * Creates and adds an arc to the collection.
  4819.              */
  4820.         [
  4821.              helpcontext(0x10040020)
  4822.             ,helpstring("Creates and adds an arc to the collection.")
  4823.             ,restricted, hidden
  4824.         ]
  4825.         HRESULT  AddArcTanTo3Arcs(
  4826.             [in] IGraphic* Arc1, // First arc or circle.
  4827.             [in] IGraphic* Arc2, // Second arc or circle.
  4828.             [in] IGraphic* Arc3, // Third arc or circle.
  4829.             [in] double StartAngle, // Starting angle in radians.
  4830.             [in] double EndAngle, // Ending angle in radians.
  4831.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4832.             );
  4833.  
  4834.             /**
  4835.              * Creates and adds a horizontal dimension to the collection.
  4836.              *
  4837.              * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  4838.              */
  4839.         [
  4840.              helpcontext(0x10040021)
  4841.             ,helpstring("Creates and adds a horizontal dimension to the collection.")
  4842.             ,restricted, hidden
  4843.         ]
  4844.         HRESULT  AddDimensionHorizontal(
  4845.             [in] double X0, // X coordinate of first extension line.
  4846.             [in] double Y0, // Y coordinate of first extension line.
  4847.             [in] double Z0, // Z coordinate of first extension line.
  4848.             [in] double X1, // X coordinate of second extension line.
  4849.             [in] double Y1, // Y coordinate of second extension line.
  4850.             [in] double Z1, // Z coordinate of second extension line.
  4851.             [in] double X2, // X coordinate of dimension.
  4852.             [in] double Y2, // Y coordinate of dimension.
  4853.             [in] double Z2, // Z coordinate of dimension.
  4854.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4855.             );
  4856.  
  4857.             /**
  4858.              * Creates and adds a vertical dimension to the collection.
  4859.              *
  4860.              * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  4861.              */
  4862.         [
  4863.              helpcontext(0x10040022)
  4864.             ,helpstring("Creates and adds a vertical dimension to the collection.")
  4865.             ,restricted, hidden
  4866.         ]
  4867.         HRESULT  AddDimensionVertical(
  4868.             [in] double X0, // X coordinate of first extension line.
  4869.             [in] double Y0, // Y coordinate of first extension line.
  4870.             [in] double Z0, // Z coordinate of first extension line.
  4871.             [in] double X1, // X coordinate of second extension line.
  4872.             [in] double Y1, // Y coordinate of second extension line.
  4873.             [in] double Z1, // Z coordinate of second extension line.
  4874.             [in] double X2, // X coordinate of dimension.
  4875.             [in] double Y2, // Y coordinate of dimension.
  4876.             [in] double Z2, // Z coordinate of dimension.
  4877.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4878.             );
  4879.  
  4880.             /**
  4881.              * Creates and adds a parallel dimension to the collection.
  4882.              *
  4883.              * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  4884.              */
  4885.         [
  4886.              helpcontext(0x10040023)
  4887.             ,helpstring("Creates and adds a parallel dimension to the collection.")
  4888.             ,restricted, hidden
  4889.         ]
  4890.         HRESULT  AddDimensionParallel(
  4891.             [in] double X0, // X coordinate of first extension line.
  4892.             [in] double Y0, // Y coordinate of first extension line.
  4893.             [in] double Z0, // Z coordinate of first extension line.
  4894.             [in] double X1, // X coordinate of second extension line.
  4895.             [in] double Y1, // Y coordinate of second extension line.
  4896.             [in] double Z1, // Z coordinate of second extension line.
  4897.             [in] double X2, // X coordinate of dimension.
  4898.             [in] double Y2, // Y coordinate of dimension.
  4899.             [in] double Z2, // Z coordinate of dimension.
  4900.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4901.             );
  4902.  
  4903.             /**
  4904.              * Creates and adds a rotated dimension to the collection.
  4905.              */
  4906.         [
  4907.              helpcontext(0x10040024)
  4908.             ,helpstring("Creates and adds a rotated dimension to the collection.")
  4909.             ,restricted, hidden
  4910.         ]
  4911.         HRESULT  AddDimensionRotated(
  4912.             [in] double X0, // X coordinate of first endpoint defining angle and direction.
  4913.             [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  4914.             [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  4915.             [in] double X1, // X coordinate of second endpoint defining angle and direction.
  4916.             [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  4917.             [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  4918.             [in] double X2, // X coordinate of first extension line.
  4919.             [in] double Y2, // Y coordinate of first extension line.
  4920.             [in] double Z2, // Z coordinate of first extension line.
  4921.             [in] double X3, // X coordinate of second extension line.
  4922.             [in] double Y3, // Y coordinate of second extension line.
  4923.             [in] double Z3, // Z coordinate of second extension line.
  4924.             [in] double X4, // X coordinate of dimension.
  4925.             [in] double Y4, // Y coordinate of dimension.
  4926.             [in] double Z4, // Z coordinate of dimension.
  4927.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4928.             );
  4929.  
  4930.             /**
  4931.              * Creates and adds a datum dimension to the collection.
  4932.              */
  4933.         [
  4934.              helpcontext(0x10040025)
  4935.             ,helpstring("Creates and adds a datum dimension to the collection.")
  4936.             ,restricted, hidden
  4937.         ]
  4938.         HRESULT  AddDimensionDatum(
  4939.             [in] double X0, // X coordinate of first extension line.
  4940.             [in] double Y0, // Y coordinate of first extension line.
  4941.             [in] double Z0, // Z coordinate of first extension line.
  4942.             [in] double X1, // X coordinate of second extension line.
  4943.             [in] double Y1, // Y coordinate of second extension line.
  4944.             [in] double Z1, // Z coordinate of second extension line.
  4945.             [in] double X2, // X coordinate of dimension.
  4946.             [in] double Y2, // Y coordinate of dimension.
  4947.             [in] double Z2, // Z coordinate of dimension.
  4948.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4949.             );
  4950.  
  4951.             /**
  4952.              * Creates and adds an angular dimension to the collection.
  4953.              */
  4954.         [
  4955.              helpcontext(0x10040026)
  4956.             ,helpstring("Creates and adds an angular dimension to the collection.")
  4957.             ,restricted, hidden
  4958.         ]
  4959.         HRESULT  AddDimensionAngular(
  4960.             [in] IGraphic* Line1, // First graphic.
  4961.             [in] IGraphic* Line2, // Second graphic.
  4962.             [in] double X0, // X coordinate of dimension.
  4963.             [in] double Y0, // Y coordinate of dimension.
  4964.             [in] double Z0, // Z coordinate of dimension.
  4965.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4966.             );
  4967.  
  4968.             /**
  4969.              * Creates and adds a radial dimension to the collection.
  4970.              */
  4971.         [
  4972.              helpcontext(0x10040027)
  4973.             ,helpstring("Creates and adds a radial dimension to the collection.")
  4974.             ,restricted, hidden
  4975.         ]
  4976.         HRESULT  AddDimensionRadius(
  4977.             [in] IGraphic* Arc, // Arc or circle.
  4978.             [in] double X0, // X coordinate of dimension text.
  4979.             [in] double Y0, // Y coordinate of dimension text.
  4980.             [in] double Z0, // Z coordinate of dimension text.
  4981.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4982.             );
  4983.  
  4984.             /**
  4985.              * Creates and adds a diameter dimension to the collection.
  4986.              */
  4987.         [
  4988.              helpcontext(0x10040028)
  4989.             ,helpstring("Creates and adds a diameter dimension to the collection.")
  4990.             ,restricted, hidden
  4991.         ]
  4992.         HRESULT  AddDimensionDiameter(
  4993.             [in] IGraphic* Arc, // Arc or circle.
  4994.             [in] double X0, // X coordinate of dimension text.
  4995.             [in] double Y0, // Y coordinate of dimension text.
  4996.             [in] double Z0, // Z coordinate of dimension text.
  4997.             [out, retval] IGraphic** prop // The newly created Graphic object.
  4998.             );
  4999.  
  5000. #endif //METHOD_OVERFLOW_BUG
  5001.  
  5002.         /**
  5003.          * Creates and adds a new Graphic object to the collection.
  5004.          */
  5005.         [
  5006.              helpcontext(0x10040029)
  5007.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  5008.         ]
  5009.         HRESULT  Add(
  5010.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  5011.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  5012.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  5013.             [in, optional] VARIANT* Style, // Not used in current implementation.
  5014.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  5015.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  5016.             [out, retval] IGraphic** prop // The newly created Graphic object.
  5017.             );
  5018.  
  5019.         /**
  5020.          * Adds an existing Graphic object to the collection.
  5021.          */
  5022.         [
  5023.              helpcontext(0x1004002A)
  5024.             ,helpstring("Adds an existing Graphic object to the collection.")
  5025.         ]
  5026.         HRESULT  AddGraphic(
  5027.             [in] IGraphic* Graphic,    // The Graphic object to add.
  5028.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  5029.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  5030.             );
  5031.  
  5032.         /**
  5033.          * Returns the collection's bounding box.
  5034.          */
  5035.         [
  5036.              helpcontext(0x1004002B)
  5037.             ,helpstring("Returns the collection's bounding box.")
  5038.         ]
  5039.         HRESULT  CalcBoundingBox(
  5040.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  5041.             [out, retval] BoundingBox** prop // The BoundingBox object.
  5042.             );
  5043.  
  5044.         /**
  5045.          * Clears the contents of the collection.
  5046.          */
  5047.         [
  5048.              helpcontext(0x1004002C)
  5049.             ,helpstring("Clears the contents of the collection.")
  5050.         ]
  5051.         HRESULT  Clear(
  5052.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  5053.             );
  5054.  
  5055.         /**
  5056.          * Clears construction lines and arcs.
  5057.          *
  5058.          * @see TCADAPI TCWClearAllConstructions function.
  5059.          */
  5060.         [
  5061.              helpcontext(0x1004002D)
  5062.             ,helpstring("Clears construction lines and arcs.")
  5063.             ,restricted, hidden
  5064.         ]
  5065.         HRESULT  ClearConstruction(
  5066.             );
  5067.  
  5068.         /**
  5069.          * Copies the contents of the collection to the Clipboard.
  5070.          */
  5071.         [
  5072.              helpcontext(0x1004002E)
  5073.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  5074.             ,restricted, hidden
  5075.         ]
  5076.         HRESULT  Copy(
  5077.             );
  5078.  
  5079.         /**
  5080.          * Cuts the contents of the collection to the Clipboard.
  5081.          */
  5082.         [
  5083.              helpcontext(0x1004002F)
  5084.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  5085.             ,restricted, hidden
  5086.         ]
  5087.         HRESULT  Cut(
  5088.             );
  5089.  
  5090.         /**
  5091.          * Draws all the Graphic objects in the collection.
  5092.          */
  5093.     [
  5094.          helpcontext(0x10040030)
  5095.         ,helpstring("Draws all the Graphic objects in the collection.")
  5096.     ]
  5097.     HRESULT  Draw(
  5098.         [in] VARIANT* View // If supplied, the View object to draw on.
  5099.         );
  5100.  
  5101.         /**
  5102.          * Removes an item from the collection.
  5103.          */
  5104.         [
  5105.              helpcontext(0x10040031)
  5106.             ,helpstring("Removes an item from the collection.")
  5107.         ]
  5108.         HRESULT  Remove(
  5109.             [in] VARIANT* Index, // The index of item to be removed.
  5110.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  5111.             );
  5112.  
  5113.         /**
  5114.          * Selects all the Graphic object's in the collection.
  5115.          *
  5116.          * @see TCADAPI TCWSelectAll function.
  5117.          */
  5118.         [
  5119.              helpcontext(0x10040032)
  5120.             ,helpstring("Selects all the Graphic object's in the collection.")
  5121.         ]
  5122.         HRESULT  Select(
  5123.             );
  5124.  
  5125.         /**
  5126.          * Unselects all the Graphic object's in the collection.
  5127.          *
  5128.          * @see TCADAPI TCWDeselectAll function.
  5129.          */
  5130.         [
  5131.              helpcontext(0x10040033)
  5132.             ,helpstring("Unselects all the Graphic object's in the collection.")
  5133.         ]
  5134.         HRESULT  Unselect(
  5135.             );
  5136.  
  5137.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  5138.  
  5139.         /**
  5140.          * Creates and adds a construction line to the collection.
  5141.          *
  5142.          * @see TCADAPI TCWConstructionAngularLine function
  5143.          */
  5144.     [
  5145.          helpcontext(0x10040034)
  5146.         ,helpstring("Creates and adds a construction line to the collection.")
  5147.     ]
  5148.     HRESULT  AddConstructionAngularLine(
  5149.         [in] double X0, // X coordinate of the first point on line.
  5150.         [in] double Y0, // Y coordinate of the first point on line.
  5151.         [in] double Z0, // Z coordinate of the first point on line.
  5152.         [in] double X1, // X coordinate of the second point on line.
  5153.         [in] double Y1, // Y coordinate of the second point on line.
  5154.         [in] double Z1, // Z coordinate of the second point on line.
  5155.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5156.         );
  5157.  
  5158.         /**
  5159.          * Creates and adds a construction line to the collection.
  5160.          *
  5161.          * @see TCADAPI TCWConstructionHorizontalLine function
  5162.          */
  5163.     [
  5164.          helpcontext(0x10040035)
  5165.         ,helpstring("Creates and adds a construction line to the collection.")
  5166.     ]
  5167.     HRESULT  AddConstructionHorizontalLine(
  5168.         [in] double X0, // X coordinate of the line.
  5169.         [in] double Y0, // Y coordinate of the line.
  5170.         [in] double Z0, // Z coordinate of the line.
  5171.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5172.         );
  5173.  
  5174.         /**
  5175.          * Creates and adds a construction line to the collection.
  5176.          *
  5177.          * @see TCADAPI TCWConstructionVerticalLine function
  5178.          */
  5179.     [
  5180.          helpcontext(0x10040036)
  5181.         ,helpstring("Creates and adds a construction line to the collection.")
  5182.     ]
  5183.     HRESULT  AddConstructionVerticalLine(
  5184.         [in] double X0, // X coordinate of the line.
  5185.         [in] double Y0, // Y coordinate of the line.
  5186.         [in] double Z0, // Z coordinate of the line.
  5187.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5188.         );
  5189.  
  5190.         /**
  5191.          * Creates and adds a construction circle to the collection.
  5192.          *
  5193.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  5194.          */
  5195.     [
  5196.          helpcontext(0x10040037)
  5197.         ,helpstring("Creates and adds a construction circle to the collection.")
  5198.     ]
  5199.     HRESULT  AddConstructionCenterAndPointCircle(
  5200.         [in] double X0, // X coordinate of the center point.
  5201.         [in] double Y0, // Y coordinate of the center point.
  5202.         [in] double Z0, // Z coordinate of the center point.
  5203.         [in] double X1, // X coordinate of the perimeter point.
  5204.         [in] double Y1, // Y coordinate of the perimeter point.
  5205.         [in] double Z1, // Z coordinate of the perimeter point.
  5206.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5207.         );
  5208.  
  5209.         /**
  5210.          * Creates and adds a construction circle to the collection.
  5211.          *
  5212.          * @see TCADAPI TCWConstructionDoublePointCircle function
  5213.          */
  5214.     [
  5215.          helpcontext(0x10040038)
  5216.         ,helpstring("Creates and adds a construction circle to the collection.")
  5217.     ]
  5218.     HRESULT  AddConstructionDoublePointCircle(
  5219.         [in] double X0, // X coordinate of the first point.
  5220.         [in] double Y0, // Y coordinate of the first point.
  5221.         [in] double Z0, // Z coordinate of the first point.
  5222.         [in] double X1, // X coordinate of the second point.
  5223.         [in] double Y1, // Y coordinate of the second point.
  5224.         [in] double Z1, // Z coordinate of the second point.
  5225.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5226.         );
  5227.  
  5228.         /**
  5229.          * Creates and adds a construction circle to the collection.
  5230.          *
  5231.          * @see TCADAPI TCWConstructionTriplePointCircle function
  5232.          */
  5233.     [
  5234.          helpcontext(0x10040039)
  5235.         ,helpstring("Creates and adds a construction circle to the collection.")
  5236.     ]
  5237.     HRESULT  AddConstructionTriplePointCircle(
  5238.         [in] double X0, // X coordinate of the first point.
  5239.         [in] double Y0, // Y coordinate of the first point.
  5240.         [in] double Z0, // Z coordinate of the first point.
  5241.         [in] double X1, // X coordinate of the second point.
  5242.         [in] double Y1, // Y coordinate of the second point.
  5243.         [in] double Z1, // Z coordinate of the second point.
  5244.         [in] double X2, // X coordinate of the third point.
  5245.         [in] double Y2, // Y coordinate of the third point.
  5246.         [in] double Z2, // Z coordinate of the third point.
  5247.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5248.         );
  5249.  
  5250.         /**
  5251.          * Creates and adds a dot marker to the collection.
  5252.          *
  5253.          * @see TCADAPI TCWDot function
  5254.          */
  5255.     [
  5256.          helpcontext(0x1004003A)
  5257.         ,helpstring("Creates and adds a dot marker to the collection.")
  5258.     ]
  5259.     HRESULT  AddDot(
  5260.         [in] double X0, // X coordinate of the point.
  5261.         [in] double Y0, // Y coordinate of the point.
  5262.         [in] double Z0, // Z coordinate of the point.
  5263.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5264.         );
  5265.  
  5266.         /**
  5267.          * Creates and adds a star to the collection.
  5268.          *
  5269.          * @see TCADAPI TCWStar function
  5270.          */
  5271.     [
  5272.          helpcontext(0x1004003B)
  5273.         ,helpstring("Creates and adds a star marker to the collection.")
  5274.     ]
  5275.     HRESULT  AddStar(
  5276.         [in] double X0, // X coordinate of the point.
  5277.         [in] double Y0, // Y coordinate of the point.
  5278.         [in] double Z0, // Z coordinate of the point.
  5279.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5280.         );
  5281.  
  5282.         /**
  5283.          * Creates and adds a square marker to the collection.
  5284.          *
  5285.          * @see TCADAPI TCWSquare function
  5286.          */
  5287.     [
  5288.          helpcontext(0x1004003C)
  5289.         ,helpstring("Creates and adds a square marker to the collection.")
  5290.     ]
  5291.     HRESULT  AddSquare(
  5292.         [in] double X0, // X coordinate of the point.
  5293.         [in] double Y0, // Y coordinate of the point.
  5294.         [in] double Z0, // Z coordinate of the point.
  5295.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5296.         );
  5297.  
  5298.         /**
  5299.          * Creates and adds a cross marker to the collection.
  5300.          *
  5301.          * @see TCADAPI TCWCross function
  5302.          */
  5303.     [
  5304.          helpcontext(0x1004003D)
  5305.         ,helpstring("Creates and adds a cross marker to the collection.")
  5306.     ]
  5307.     HRESULT  AddCross(
  5308.         [in] double X0, // X coordinate of the point.
  5309.         [in] double Y0, // Y coordinate of the point.
  5310.         [in] double Z0, // Z coordinate of the point.
  5311.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5312.         );
  5313.  
  5314.         /**
  5315.          * Creates and adds a circle marker to the collection.
  5316.          *
  5317.          * @see TCADAPI TCWCircle function
  5318.          */
  5319.     [
  5320.          helpcontext(0x1004003E)
  5321.         ,helpstring("Creates and adds a circle marker to the collection.")
  5322.     ]
  5323.     HRESULT  AddCircle(
  5324.         [in] double X0, // X coordinate of the point.
  5325.         [in] double Y0, // Y coordinate of the point.
  5326.         [in] double Z0, // Z coordinate of the point.
  5327.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5328.         );
  5329.  
  5330.         /**
  5331.          * Creates and adds a single line segment to the collection.
  5332.          *
  5333.          * @see TCADAPI TCWLineSingle function
  5334.          */
  5335.     [
  5336.          helpcontext(0x1004003F)
  5337.         ,helpstring("Creates and adds a single line segment to the collection.")
  5338.     ]
  5339.     HRESULT  AddLineSingle(
  5340.         [in] double X0, // X coordinate of the first endpoint.
  5341.         [in] double Y0, // Y coordinate of the first endpoint.
  5342.         [in] double Z0, // Z coordinate of the first endpoint.
  5343.         [in] double X1, // X coordinate of the second endpoint.
  5344.         [in] double Y1, // Y coordinate of the second endpoint.
  5345.         [in] double Z1, // Z coordinate of the second endpoint.
  5346.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5347.         );
  5348.  
  5349.         /**
  5350.          * Creates and adds a regular polygon to the collection.
  5351.          *
  5352.          * @see TCADAPI TCWLinePolygon function
  5353.          */
  5354.     [
  5355.          helpcontext(0x10040040)
  5356.         ,helpstring("Creates and adds a regular polygon to the collection.")
  5357.     ]
  5358.     HRESULT  AddLinePolygon(
  5359.         [in] double X0, // X coordinate of the center point.
  5360.         [in] double Y0, // Y coordinate of the center point.
  5361.         [in] double Z0, // Z coordinate of the center point.
  5362.         [in] double X1, // X coordinate of the corner point.
  5363.         [in] double Y1, // Y coordinate of the corner point.
  5364.         [in] double Z1, // Z coordinate of the corner point.
  5365.         [in] long nsides, // number of sides.
  5366.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5367.         );
  5368.  
  5369.         /**
  5370.          * Creates and adds a rectangle to the collection.
  5371.          *
  5372.          * @see TCADAPI TCWLineRectangle function
  5373.          */
  5374.     [
  5375.          helpcontext(0x10040041)
  5376.         ,helpstring("Creates and adds a rectangle to the collection.")
  5377.     ]
  5378.     HRESULT  AddLineRectangle(
  5379.         [in] double X0, // X coordinate of the upper left corner.
  5380.         [in] double Y0, // Y coordinate of the upper left corner.
  5381.         [in] double Z0, // Z coordinate of the upper left corner.
  5382.         [in] double X1, // X coordinate of the lower right corner.
  5383.         [in] double Y1, // Y coorindate of the lower right corner.
  5384.         [in] double Z1, // Z coorindate of the lower right corner.
  5385.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5386.         );
  5387.  
  5388.         /**
  5389.          * Creates and adds a rotated rectangle to the collection.
  5390.          *
  5391.          * @see TCADAPI TCWLineRotatedRectangle function
  5392.          */
  5393.     [
  5394.          helpcontext(0x10040042)
  5395.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  5396.     ]
  5397.     HRESULT  AddLineRotatedRectangle(
  5398.         [in] double X0, // X coordinate of the upper left corner.
  5399.         [in] double Y0, // Y coordinate of the upper left corner.
  5400.         [in] double Z0, // Z coordinate of the upper left corner.
  5401.         [in] double X1, // X coordinate of the lower right corner.
  5402.         [in] double Y1, // Y coorindate of the lower right corner.
  5403.         [in] double Z1, // Z coorindate of the lower right corner.
  5404.         [in] double Height, // Height of the rectangle.
  5405.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5406.         );
  5407.  
  5408.         /**
  5409.          * Creates and adds a single line segment to the collection.
  5410.          *
  5411.          * @see TCADAPI TCWLinePerpendicular function
  5412.          */
  5413.     [
  5414.          helpcontext(0x10040043)
  5415.         ,helpstring("Creates and adds a single line segment to the collection.")
  5416.     ]
  5417.     HRESULT  AddLinePerpendicular(
  5418.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  5419.         [in] double X0, // X coordinate of the point on the existing line.
  5420.         [in] double Y0, // Y coordinate of the point on the existing line.
  5421.         [in] double Z0, // Z coordinate of the point on the existing line.
  5422.         [in] double X1, // X coordinate of the second point on the new line.
  5423.         [in] double Y1, // Y coordinate of the second point on the new line.
  5424.         [in] double Z1, // Z coordinate of the second point on the new line.
  5425.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5426.         );
  5427.  
  5428.         /**
  5429.          * Creates and adds a single line segment to the collection.
  5430.          *
  5431.          * @see TCADAPI TCWLineParallel function
  5432.          */
  5433.     [
  5434.          helpcontext(0x10040044)
  5435.         ,helpstring("Creates and adds a single line segment to the collection.")
  5436.     ]
  5437.     HRESULT  AddLineParallel(
  5438.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  5439.         [in] double X0, // X coordinate of the new line.
  5440.         [in] double Y0, // Y coordinate of the new line.
  5441.         [in] double Z0, // Z coordinate of the new line.
  5442.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5443.         );
  5444.  
  5445.         /**
  5446.          * Creates and adds a multiple segment line to the collection.
  5447.          * The returned Graphic object contains only a beginning vertex.  The user must
  5448.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5449.          * and a Graphic.Finish call to complete the Graphic object.
  5450.          *
  5451.          * @see TCADAPI TCWLineMultiline function
  5452.          */
  5453.     [
  5454.          helpcontext(0x10040045)
  5455.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  5456.     ]
  5457.     HRESULT  AddLineMultiline(
  5458.         [in] double X0, // X coordinate of first endpoint.
  5459.         [in] double Y0, // Y coordinate of first endpoint.
  5460.         [in] double Z0, // Z coordinate of first endpoint.
  5461.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5462.         );
  5463.  
  5464.         /**
  5465.          * Creates and adds an irregular polygon to the collection.
  5466.          * The returned Graphic object contains only a beginning vertex.  The user must
  5467.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5468.          * and a Graphic.Close call to complete the Graphic object.
  5469.          *
  5470.          * @see TCADAPI TCWLineIrregularPolygon function
  5471.          */
  5472.     [
  5473.          helpcontext(0x10040046)
  5474.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  5475.     ]
  5476.     HRESULT  AddLineIrregularPolygon(
  5477.         [in] double X0, // X coordinate of first endpoint.
  5478.         [in] double Y0, // Y coordinate of first endpoint.
  5479.         [in] double Z0, // Z coordinate of first endpoint.
  5480.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5481.         );
  5482.  
  5483.         /**
  5484.          * Creates and adds a bezier curve to the collection.
  5485.          * The returned Graphic object contains only a beginning vertex.  The user must
  5486.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5487.          * and a Graphic.Finish call to complete the Graphic object.
  5488.          *
  5489.          * @see TCADAPI TCWCurveBezier function
  5490.          */
  5491.     [
  5492.          helpcontext(0x10040047)
  5493.         ,helpstring("Creates and adds a bezier curve to the collection.")
  5494.     ]
  5495.     HRESULT  AddCurveBezier(
  5496.         [in] double X0, // X coordinate of the first endpoint.
  5497.         [in] double Y0, // Y coordinate of the first endpoint.
  5498.         [in] double Z0, // Z coordinate of the first endpoint.
  5499.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5500.         );
  5501.  
  5502.         /**
  5503.          * Creates and adds a cubic spline curve to the collection.
  5504.          * The returned Graphic object contains only a beginning vertex.  The user must
  5505.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  5506.          * and a Graphic.Finish call to complete the Graphic object.
  5507.          *
  5508.          * @see TCADAPI TCWCurveSpline function
  5509.          */
  5510.     [
  5511.          helpcontext(0x10040048)
  5512.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  5513.     ]
  5514.     HRESULT  AddCurveSpline(
  5515.         [in] double X0, // X coordinate of the first endpoint.
  5516.         [in] double Y0, // Y coordinate of the first endpoint.
  5517.         [in] double Z0, // Z coordinate of the first endpoint.
  5518.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5519.         );
  5520.  
  5521.         /**
  5522.          * Creates and adds a circle to the collection.
  5523.          *
  5524.          * @see TCADAPI TCWCircleCenterAndPoint function
  5525.          */
  5526.     [
  5527.          helpcontext(0x10040049)
  5528.         ,helpstring("Creates and adds a circle to the collection.")
  5529.     ]
  5530.     HRESULT  AddCircleCenterAndPoint(
  5531.         [in] double X0, // X coordinate of the center point.
  5532.         [in] double Y0, // Y coordinate of the center point.
  5533.         [in] double Z0, // Z coordinate of the cneter point.
  5534.         [in] double X1, // X coordinate of the radius point.
  5535.         [in] double Y1, // Y coordinate of the radius point.
  5536.         [in] double Z1, // Z coordinate of the radius point.
  5537.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5538.         );
  5539.  
  5540.         /**
  5541.          * Creates and adds a circle to the collection.
  5542.          *
  5543.          * @see TCADAPI TCWCircleDoublePoint function
  5544.          */
  5545.     [
  5546.          helpcontext(0x1004004A)
  5547.         ,helpstring("Creates and adds a circle to the collection.")
  5548.     ]
  5549.     HRESULT  AddCircleDoublePoint(
  5550.         [in] double X0, // X coordinate of the first point.
  5551.         [in] double Y0, // Y coordinate of the first point.
  5552.         [in] double Z0, // Z coordinate of the first point.
  5553.         [in] double X1, // X coordinate of the second point.
  5554.         [in] double Y1, // Y coordinate of the second point.
  5555.         [in] double Z1, // Z coordinate of the second point.
  5556.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5557.         );
  5558.  
  5559.         /**
  5560.          * Creates and adds a circle to the collection.
  5561.          *
  5562.          * @see TCADAPI TCWCircleTriplePoint function
  5563.          */
  5564.     [
  5565.          helpcontext(0x1004004B)
  5566.         ,helpstring("Creates and adds a circle to the collection.")
  5567.     ]
  5568.     HRESULT  AddCircleTriplePoint(
  5569.         [in] double X0, // X coordinate of the first point.
  5570.         [in] double Y0, // Y coordinate of the first point.
  5571.         [in] double Z0, // Z coordinate of the first point.
  5572.         [in] double X1, // X coordinate of the second point.
  5573.         [in] double Y1, // Y coordinate of the second point.
  5574.         [in] double Z1, // Z coordinate of the second point.
  5575.         [in] double X2, // X coordinate of the third point.
  5576.         [in] double Y2, // Y coordinate of the third point.
  5577.         [in] double Z2, // Z coordinate of the third point.
  5578.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5579.         );
  5580.  
  5581.         /**
  5582.          * Creates and adds a ellipse to the collection.
  5583.          *
  5584.          * @see TCADAPI TCWEllipse function
  5585.          */
  5586.     [
  5587.          helpcontext(0x1004004C)
  5588.         ,helpstring("Creates and adds a ellipse to the collection.")
  5589.     ]
  5590.     HRESULT  AddEllipse(
  5591.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  5592.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  5593.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  5594.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  5595.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  5596.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  5597.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5598.         );
  5599.  
  5600.         /**
  5601.          * Creates and adds a ellipse to the collection.
  5602.          *
  5603.          * @see TCADAPI TCWEllipseRotatedEllipse function
  5604.          */
  5605.     [
  5606.          helpcontext(0x1004004D)
  5607.         ,helpstring("Creates and adds a ellipse to the collection.")
  5608.     ]
  5609.     HRESULT  AddEllipseRotatedEllipse(
  5610.         [in] double X0, // X coordinate of ellipse's center point.
  5611.         [in] double Y0, // Y coordinate of ellipse's center point.
  5612.         [in] double Z0, // Z coordinate of ellipse's center point.
  5613.         [in] double X1, // X coordinate of major axis radius point.
  5614.         [in] double Y1, // Y coordinate of major axis radius point.
  5615.         [in] double Z1, // Z coordinate of major axis radius point.
  5616.         [in] double X2, // X coordinate of minor axis radius point.
  5617.         [in] double Y2, // Y coordinate of minor axis radius point.
  5618.         [in] double Z2, // Z coordinate of minor axis radius point.
  5619.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5620.         );
  5621.  
  5622.         /**
  5623.          * Creates and adds a ellipse to the collection.
  5624.          *
  5625.          * @see TCADAPI TCWEllipseFixedRatio function
  5626.          */
  5627.     [
  5628.          helpcontext(0x1004004E)
  5629.         ,helpstring("Creates and adds a ellipse to the collection.")
  5630.     ]
  5631.     HRESULT  AddEllipseFixedRatio(
  5632.         [in] double X0, // X coordinate of ellipse's center point.
  5633.         [in] double Y0, // Y coordinate of ellipse's center point.
  5634.         [in] double Z0, // Z coordinate of ellipse's center point.
  5635.         [in] double X1, // X coordinate of radius in Y direction.
  5636.         [in] double Y1, // Y coordinate of radius in Y direction.
  5637.         [in] double Z1, // Z coordinate of radius in Y direction.
  5638.         [in] double XToYRatio, // Ratio of Rx to Ry.
  5639.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5640.         );
  5641.  
  5642.         /**
  5643.          * Creates and adds an arc to the collection.
  5644.          *
  5645.          * @see TCADAPI TCWArcCenterAndPoint function
  5646.          */
  5647.     [
  5648.          helpcontext(0x1004004F)
  5649.         ,helpstring("Creates and adds an arc to the collection.")
  5650.     ]
  5651.     HRESULT  AddArcCenterAndPoint(
  5652.         [in] double X0, // X coordinate of arc's center point.
  5653.         [in] double Y0, // Y coordinate of arc's center point.
  5654.         [in] double Z0, // Z coordinate of arc's center point.
  5655.         [in] double X1, // X coordinate of arc's radius point.
  5656.         [in] double Y1, // Y coordinate of arc's radius point.
  5657.         [in] double Z1, // Z coordinate of arc's radius point.
  5658.         [in] double StartAngle, // Starting angle in radians.
  5659.         [in] double EndAngle, // Ending angle in radians.
  5660.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5661.         );
  5662.  
  5663.         /**
  5664.          * Creates and adds an arc to the collection.
  5665.          *
  5666.          * @see TCADAPI TCWArcDoublePoint function
  5667.          */
  5668.     [
  5669.          helpcontext(0x10040050)
  5670.         ,helpstring("Creates and adds an arc to the collection.")
  5671.     ]
  5672.     HRESULT  AddArcDoublePoint(
  5673.         [in] double X0, // X coordinate of first endpoint.
  5674.         [in] double Y0, // Y coordinate of first endpoint.
  5675.         [in] double Z0, // Z coordinate of first endpoint.
  5676.         [in] double X1, // X coordinate of second endpoint.
  5677.         [in] double Y1, // Y coordinate of second endpont.
  5678.         [in] double Z1, // Z coordinate of second endpoint.
  5679.         [in] double StartAngle, // Starting angle in radians.
  5680.         [in] double EndAngle, // Ending angle in radians.
  5681.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5682.         );
  5683.  
  5684.         /**
  5685.          * Creates and adds an arc to the collection.
  5686.          *
  5687.          * @see TCADAPI TCWArcTriplePoint function
  5688.          */
  5689.     [
  5690.          helpcontext(0x10040051)
  5691.         ,helpstring("Creates and adds an arc to the collection.")
  5692.     ]
  5693.     HRESULT  AddArcTriplePoint(
  5694.         [in] double X0, // X coordinate of starting point.
  5695.         [in] double Y0, // Y coordinate of starting point.
  5696.         [in] double Z0, // Z coordinate of starting point.
  5697.         [in] double X1, // X coordinate of point on perimeter.
  5698.         [in] double Y1, // Y coordinate of point on perimeter.
  5699.         [in] double Z1, // Z coordinate of point on perimeter.
  5700.         [in] double X2, // X coordinate of ending point.
  5701.         [in] double Y2, // Y coordinate of ending point.
  5702.         [in] double Z2, // Z coordinate of ending point.
  5703.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5704.         );
  5705.  
  5706.         /**
  5707.          * Creates and adds an elliptical arc to the collection.
  5708.          *
  5709.          * @see TCADAPI TCWArcElliptical function
  5710.          */
  5711.     [
  5712.          helpcontext(0x10040052)
  5713.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5714.     ]
  5715.     HRESULT  AddArcElliptical(
  5716.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  5717.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  5718.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  5719.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  5720.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  5721.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  5722.         [in] double StartAngle, // Starting angle in radians.
  5723.         [in] double EndAngle, // Ending angle in radians.
  5724.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5725.         );
  5726.  
  5727.         /**
  5728.          * Creates and adds an elliptical arc to the collection.
  5729.          *
  5730.          * @see TCADAPI TCWArcRotatedElliptical function
  5731.          */
  5732.     [
  5733.          helpcontext(0x10040053)
  5734.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5735.     ]
  5736.     HRESULT  AddArcRotatedElliptical(
  5737.         [in] double X0, // X coordinate of elliptical arc's center point.
  5738.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  5739.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  5740.         [in] double X1, // X coordinate of major axis radius point.
  5741.         [in] double Y1, // Y coordinate of major axis radius point.
  5742.         [in] double Z1, // Z coordinate of major axis radius point.
  5743.         [in] double X2, // X coordinate of minor axis radius point.
  5744.         [in] double Y2, // Y coordinate of minor axis radius point.
  5745.         [in] double Z2, // Z coordinate of minor axis radius point.
  5746.         [in] double StartAngle, // Starting angle in radians.
  5747.         [in] double EndAngle, // Ending angle in radians.
  5748.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5749.         );
  5750.  
  5751.         /**
  5752.          * Creates and adds an elliptical arc to the collection.
  5753.          *
  5754.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  5755.          */
  5756.     [
  5757.          helpcontext(0x10040054)
  5758.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  5759.     ]
  5760.     HRESULT  AddArcEllipticalFixedRatio(
  5761.         [in] double X0, // X coordinate of ellipse's center point.
  5762.         [in] double Y0, // Y coordinate of ellipse's center point.
  5763.         [in] double Z0, // Z coordinate of ellipse's center point.
  5764.         [in] double X1, // X coordinate of radius in Y direction.
  5765.         [in] double Y1, // Y coordinate of radius in Y direction.
  5766.         [in] double Z1, // Z coordinate of radius in Y direction.
  5767.         [in] double XToYRatio, // Ratio of Rx to Ry.
  5768.         [in] double StartAngle, // Starting angle in radians.
  5769.         [in] double EndAngle, // Ending angle in radians.
  5770.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5771.         );
  5772.  
  5773.         /**
  5774.          * Creates and adds a text Graphic object to the collection.
  5775.          *
  5776.          * @see TCADAPI TCWText function
  5777.          */
  5778.     [
  5779.          helpcontext(0x10040055)
  5780.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  5781.     ]
  5782.     HRESULT  AddText(
  5783.         [in] BSTR Text, // The text string.
  5784.         [in] double X0, // X coordinate of text's starting point.
  5785.         [in] double Y0, // Y coordinate of text's starting point.
  5786.         [in] double Z0, // Z coordinate of text's starting point.
  5787.         [in] double Height, // Height of text object.
  5788.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  5789.         [in, optional] VARIANT* Width, // Width of text object.
  5790.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  5791.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  5792.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5793.         );
  5794.  
  5795.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  5796.  
  5797.         /**
  5798.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  5799.          *
  5800.          * @see TCADAPI TCWBlockCreate function
  5801.          */
  5802.     [
  5803.          helpcontext(0x10040056)
  5804.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  5805.     ]
  5806.     HRESULT  CreateBlock(
  5807.         [in, optional] BSTR Name, // Name for the new block.
  5808.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  5809.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  5810.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  5811.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  5812.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  5813.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  5814.         [out, retval] Block** prop // The newly created block.
  5815.         );
  5816.  
  5817.         /**
  5818.          * Adds a block insertion to the collection.
  5819.          *
  5820.          * @see TCADAPI TCWBlockInsert function
  5821.          */
  5822.     [
  5823.          helpcontext(0x10040057)
  5824.         ,helpstring("Adds a block insertion to the collection.")
  5825.     ]
  5826.     HRESULT  AddBlockInsertion(
  5827.         [in] VARIANT* Block, // BlockObj or index of the block.
  5828.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  5829.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  5830.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  5831.         [in, optional] VARIANT* XScale, // X scale factor.
  5832.         [in, optional] VARIANT* YScale, // Y scale factor.
  5833.         [in, optional] VARIANT* ZScale, // Z scale factor.
  5834.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  5835.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5836.         );
  5837.  
  5838.         /**
  5839.          * Adds a group to the collection from the Graphic objects in the collection.
  5840.          *
  5841.          * @see TCADAPI TCWGroupCreate function
  5842.          */
  5843.     [
  5844.          helpcontext(0x10040058)
  5845.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  5846.         ,restricted, hidden
  5847.     ]
  5848.     HRESULT  AddGroup(
  5849.         [in, optional] VARIANT* Name, // Name for the new group.
  5850.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  5851.         [out, retval] IGraphic** prop // The newly created Graphic object.
  5852.         );
  5853.  
  5854.         /**
  5855.          * Explodes groups and block insertions in the collection.
  5856.          *
  5857.          * @see TCADAPI TCWExplode function
  5858.          */
  5859.     [
  5860.          helpcontext(0x10040059)
  5861.         ,helpstring("Explodes groups and block insertions in the collection.")
  5862.         ,restricted, hidden
  5863.     ]
  5864.     HRESULT  Explode(
  5865.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  5866.         );
  5867.  
  5868.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  5869.  
  5870.         /**
  5871.          * Copies the Graphic objects in the collection along a line.
  5872.          */
  5873.     [
  5874.          helpcontext(0x1004005A)
  5875.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  5876.         ,restricted, hidden
  5877.     ]
  5878.     HRESULT  LinearCopyAbsolute(
  5879.         [in] double X, // X coordinate to copy to.
  5880.         [in] double Y, // Y coordinate to copy to.
  5881.         [in] double Z, // Z coordinate to copy to.
  5882.         [in] long Copies, // Number of copies including the original.
  5883.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  5884.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  5885.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  5886.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  5887.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  5888.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  5889.         );
  5890.  
  5891.         /**
  5892.          * Copies the Graphic objects in the collection along a line.
  5893.          */
  5894.     [
  5895.          helpcontext(0x1004005B)
  5896.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  5897.         ,restricted, hidden
  5898.     ]
  5899.     HRESULT  LinearCopyRelative(
  5900.         [in] double X, // X offset.
  5901.         [in] double Y, // Y offset.
  5902.         [in] double Z, // Z offset.
  5903.         [in] long Copies, // Number of copies including the original.
  5904.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  5905.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  5906.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  5907.         );
  5908.  
  5909.         /**
  5910.          * Copies the Graphic objects in the collection along a line.
  5911.          */
  5912.     [
  5913.          helpcontext(0x1004005C)
  5914.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  5915.         ,restricted, hidden
  5916.     ]
  5917.     HRESULT  LinearCopyAngle(
  5918.         [in] double Length, // Length of copy.
  5919.         [in] double Angle, // Angle of copy in radians.
  5920.         [in] long Copies, // Number of copies including the original.
  5921.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  5922.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  5923.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  5924.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  5925.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  5926.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  5927.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  5928.         );
  5929.  
  5930.         /**
  5931.          * Copies the Graphic objects in the collection radially.
  5932.          * Always rotates in the currently active workplane?
  5933.          */
  5934.     [
  5935.          helpcontext(0x1004005D)
  5936.         ,helpstring("Copies the Graphic objects in the collection radially.")
  5937.         ,restricted, hidden
  5938.     ]
  5939.     HRESULT  RadialCopyAbsolute(
  5940.         [in] double X0, // X coordinate of center of arc.
  5941.         [in] double Y0, // Y coordinate of center of arc.
  5942.         [in] double Z0, // Z coordinate of center of arc.
  5943.         [in] double X1, // X coordinate of point on arc.
  5944.         [in] double Y1, // Y coordinate of point on arc.
  5945.         [in] double Z1, // Z coordinate of point on arc.
  5946.         [in] long Copies, // Number of copies including the original.
  5947.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  5948.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  5949.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  5950.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  5951.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  5952.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  5953.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  5954.         );
  5955.  
  5956.         /**
  5957.          * Copies the Graphic objects in the collection radially.
  5958.          * Always rotates in the currently active workplane?
  5959.          */
  5960.     [
  5961.          helpcontext(0x1004005E)
  5962.         ,helpstring("Copies the Graphic objects in the collection radially.")
  5963.         ,restricted, hidden
  5964.     ]
  5965.     HRESULT  RadialCopyAngle(
  5966.         [in] double X, // X coordinate of center of arc.
  5967.         [in] double Y, // Y coordinate of center of arc.
  5968.         [in] double Z, // Z coordinate of center of arc.
  5969.         [in] double Angle, // Angle between copies or for last copy.
  5970.         [in] double RotationAngle, // Angle to rotate each copy.
  5971.         [in] long Copies, // Number of copies including the original.
  5972.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  5973.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  5974.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  5975.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  5976.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  5977.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  5978.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  5979.         );
  5980.  
  5981.         /**
  5982.          * Copies the Graphic objects in a two dimensional array.
  5983.          * Always translates in the currently active workplane?
  5984.          */
  5985.     [
  5986.          helpcontext(0x1004005F)
  5987.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  5988.         ,restricted, hidden
  5989.     ]
  5990.     HRESULT  ArrayCopyAbsolute(
  5991.         [in] double X, // Coordinate defining row and column spacing.
  5992.         [in] double Y, // Coordinate defining row and column spacing.
  5993.         [in] double Z, // Coordinate defining row and column spacing.
  5994.         [in] long Rows, // Number of rows including the original.
  5995.         [in] long Columns, // Number of columns including the original.
  5996.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  5997.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  5998.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  5999.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6000.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6001.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6002.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6003.         );
  6004.  
  6005.         /**
  6006.          * Copies the Graphic objects in a two dimensional array.
  6007.          * Always translates in the currently active workplane?
  6008.          */
  6009.     [
  6010.          helpcontext(0x10040060)
  6011.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  6012.         ,restricted, hidden
  6013.     ]
  6014.     HRESULT  ArrayCopyRelative(
  6015.         [in] double U, // Column offset.
  6016.         [in] double V, // Row offset.
  6017.         [in] long Rows, // Number of rows including the original.
  6018.         [in] long Columns, // Number of columns including the original.
  6019.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  6020.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6021.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6022.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  6023.         );
  6024.  
  6025.         /**
  6026.          * Mirrors the Graphic objects in the collection about a line.
  6027.          */
  6028.     [
  6029.          helpcontext(0x10040061)
  6030.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  6031.         ,restricted, hidden
  6032.     ]
  6033.     HRESULT  MirrorCopyLine(
  6034.         [in] double X0, // X coordinate of the first point on line.
  6035.         [in] double Y0, // Y coordinate of the first point on line.
  6036.         [in] double Z0, // Z coordinate of the first point on line.
  6037.         [in] double X1, // X coordinate of the second point on line.
  6038.         [in] double Y1, // Y coordinate of the second point on line.
  6039.         [in] double Z1, // Z coordinate of the second point on line.
  6040.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  6041.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6042.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6043.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  6044.         );
  6045.  
  6046.         /**
  6047.          * Mirrors the Graphic objects in the collection about an angle.
  6048.          */
  6049.     [
  6050.          helpcontext(0x10040062)
  6051.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  6052.         ,restricted, hidden
  6053.     ]
  6054.     HRESULT  MirrorCopyAngle(
  6055.         [in] double X, // X coordinate to mirror to.
  6056.         [in] double Y, // Y coordinate to mirror to.
  6057.         [in] double Z, // Z coordinate to mirror to.
  6058.         [in] double Angle, // Angle of mirror.
  6059.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  6060.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6061.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6062.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6063.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  6064.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  6065.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  6066.         );
  6067.  
  6068.         /**
  6069.          * Scales the Graphic objects in the collection.
  6070.          *
  6071.          * @see TCADAPI TCWSelectionScale function.
  6072.          */
  6073.     [
  6074.          helpcontext(0x10040063)
  6075.         ,helpstring("Scales the Graphic objects in the collection.")
  6076.     ]
  6077.     HRESULT  Scale(
  6078.         [in] double XScale, // X scale factor.
  6079.         [in] double YScale, // Y scale factor.
  6080.         [in] double ZScale, // Z scale factor.
  6081.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6082.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6083.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6084.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6085.         );
  6086.  
  6087.         /**
  6088.          * Rotates the Graphic objects in the collection.
  6089.          *
  6090.          * @see TCADAPI TCWSelectionRotate function.
  6091.          */
  6092.     [
  6093.          helpcontext(0x10040064)
  6094.         ,helpstring("Rotates the Graphic objects in the collection.")
  6095.     ]
  6096.     HRESULT  RotateAxis(
  6097.         [in] double Angle, // Angle of rotation in radians.
  6098.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  6099.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  6100.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  6101.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  6102.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  6103.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  6104.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6105.         );
  6106.  
  6107.         /**
  6108.          * Rotates the Graphic objects in the collection.
  6109.          *
  6110.          * @see TCADAPI TCWSelectionRotate function.
  6111.          */
  6112.     [
  6113.          helpcontext(0x10040065)
  6114.         ,helpstring("Rotates the Graphic objects in the collection.")
  6115.     ]
  6116.     HRESULT  RotateAbsolute(
  6117.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  6118.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  6119.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  6120.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  6121.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  6122.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  6123.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  6124.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  6125.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  6126.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6127.         );
  6128.  
  6129.         /**
  6130.          * Moves the Graphic objects in the collection to a new location.
  6131.          *
  6132.          * @see TCADAPI TCWSelectionMove function.
  6133.          */
  6134.     [
  6135.          helpcontext(0x10040066)
  6136.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  6137.     ]
  6138.     HRESULT  MoveAbsolute(
  6139.         [in] double X, // X coordinate to move to.
  6140.         [in] double Y, // Y coordinate to move to.
  6141.         [in] double Z, // Z coordinate to move to.
  6142.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  6143.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  6144.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  6145.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6146.         );
  6147.  
  6148.         /**
  6149.          * Moves the Graphic objects in the collection by a specified offset.
  6150.          *
  6151.          * @see TCADAPI TCWSelectionMove function.
  6152.          */
  6153.     [
  6154.          helpcontext(0x10040067)
  6155.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  6156.     ]
  6157.     HRESULT  MoveRelative(
  6158.         [in] double X, // X offset.
  6159.         [in] double Y, // Y offset.
  6160.         [in] double Z, // Z offset.
  6161.         [out, retval] IMatrix** prop // The matrix that was calculated.
  6162.         );
  6163.  
  6164.         /**
  6165.          * Transforms the Graphic objects in the collection.
  6166.          */
  6167.     [
  6168.          helpcontext(0x10040068)
  6169.         ,helpstring("Transforms the Graphic object.")
  6170.     ]
  6171.     HRESULT  Transform(
  6172.         [in] IMatrix* Transform // The matrix to perform transformation.
  6173.         );
  6174.  
  6175.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  6176.  
  6177.         /**
  6178.          * Aligns the Graphic objects in the collection.
  6179.          *
  6180.          * @see TCADAPI TCWAlignXXX functions.
  6181.          */
  6182.     [
  6183.          helpcontext(0x10040069)
  6184.         ,helpstring("Aligns the Graphic objects in the collection.")
  6185.         ,restricted, hidden
  6186.     ]
  6187.     HRESULT  Align(
  6188.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  6189.         );
  6190.  
  6191.         /**
  6192.          * Aligns the Graphic objects in the collection along a line.
  6193.          */
  6194.     [
  6195.          helpcontext(0x1004006A)
  6196.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  6197.         ,restricted, hidden
  6198.     ]
  6199.     HRESULT  AlignAlongLine(
  6200.         [in] double X0, // X coordinate of the first point.
  6201.         [in] double Y0, // Y coordinate of the first point.
  6202.         [in] double Z0, // Z coordinate of the first point.
  6203.         [in] double X1, // X coordinate of the second point.
  6204.         [in] double Y1, // Y coordinate of the second point.
  6205.         [in] double Z1 // Z coordinate of the second point.
  6206.         );
  6207.  
  6208.         /**
  6209.          * Returns the index within the Graphics collection of the specified graphic handle.
  6210.          * Private.
  6211.          */
  6212.         [
  6213.              restricted
  6214.             ,helpcontext(0x1004006B)
  6215.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  6216.         ]
  6217.         HRESULT  _FindIndex(
  6218.             [in] long g, // The graphic handle.
  6219.             [out, retval] long* prop // The index.
  6220.             );
  6221.  
  6222.         /**
  6223.          * Returns the Graphic objects in the collection that match a query string.
  6224.          *
  6225.          * @see TCADAPI TCWSelectByQuery function.
  6226.          */
  6227.         [
  6228.              helpcontext(0x1004006C)
  6229.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  6230.         ]
  6231.         HRESULT  QuerySet(
  6232.             [in] BSTR Query, // The query string.
  6233.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  6234.             );
  6235.  
  6236.         /**
  6237.          * Creates and adds a group of polylines or polygons to the collection.
  6238.          */
  6239.     [
  6240.          helpcontext(0x1004006D)
  6241.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  6242.     ]
  6243.     HRESULT  AddPolys(
  6244.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  6245.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  6246.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  6247.         );
  6248.  
  6249.         /**
  6250.          * Generates a bounding polygon array to use in drag operations.
  6251.          *
  6252.          * @see View::DragOutline
  6253.          */
  6254.     [
  6255.          helpcontext(0x1004006E)
  6256.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  6257.     ]
  6258.     HRESULT  CreateDragOutline(
  6259.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  6260.         );
  6261.  
  6262.         /**
  6263.          * Creates and adds a bunch of polylines to the collection.
  6264.          * The returned Graphics object contains a set with freshly created
  6265.          * polygons. The user can set properties, etc.
  6266.          */
  6267.     [
  6268.          helpcontext(0x1004006F)
  6269.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  6270.     ]
  6271.     HRESULT  AddPolylines(
  6272.         [in] long NumberOfPolylines, // number of polylines to create
  6273.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  6274.         [in] IMSI_BOOL closed, // whether each polyline is closed
  6275.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  6276.         );
  6277.  
  6278.         /**
  6279.          * Finds the Graphic object in the collection with the given ID.
  6280.          */
  6281.     [
  6282.          helpcontext(0x10040070)
  6283.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  6284.     ]
  6285.     HRESULT  GraphicFromID(
  6286.         [in] long ID, // ID of Graphic object.
  6287.         [out, retval] IGraphic** prop // The Graphic object.
  6288.         );
  6289.  
  6290.         /**
  6291.          * Creates and adds an attribute definition Graphic object to the collection.  
  6292.          */
  6293.     [
  6294.          helpcontext(0x10040071)
  6295.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  6296.     ]
  6297.     HRESULT  AddAttributeDefinition(
  6298.         [in] BSTR Tag, // The text string for the attribute definition tag.
  6299.         [in] double X0, // X coordinate of attdef's starting point.
  6300.         [in] double Y0, // Y coordinate of attdef's starting point.
  6301.         [in] double Z0, // Z coordinate of attdef's starting point.
  6302.         [in] double Height, // Height of attdef object.
  6303.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  6304.         [in, optional] VARIANT* Width, // Width of attdef object.
  6305.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  6306.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  6307.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  6308.         [in, optional] VARIANT* Default, // Default value of attribute.
  6309.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  6310.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6311.         );
  6312.  
  6313.     };
  6314.  
  6315.  
  6316.     /**
  6317.      * A layer in a TurboCAD drawing.
  6318.      */
  6319.     [
  6320.          object
  6321.         ,uuid(6A481115-E531-11CF-A115-00A024158DAF)
  6322.         ,oleautomation
  6323.         ,dual
  6324.         ,helpcontext(0x10050000)
  6325.         ,helpstring("A TurboCAD layer.")
  6326.     ]
  6327.     interface Layer : IDispatch
  6328.     {
  6329.  
  6330.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  6331.  
  6332.         /**
  6333.          * Returns an Application object that represents the owner of the specified object.
  6334.          */
  6335.         [
  6336.              propget
  6337.             ,helpcontext(0x10050001)
  6338.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  6339.         ]
  6340.         HRESULT  Application(
  6341.             [out, retval] IApplication** prop // The Application object.
  6342.             );
  6343.  
  6344.         /**
  6345.          * Returns the number of items in the collection.
  6346.          */
  6347.         [
  6348.              propget
  6349.             ,helpcontext(0x10050002)
  6350.             ,helpstring("Returns the number of items in the collection.")
  6351.         ]
  6352.         HRESULT  Count(
  6353.             [out, retval] long* prop // The number of items.
  6354.             );
  6355.  
  6356.         /**
  6357.          * Returns the Drawing object that owns the object.
  6358.          */
  6359.         [
  6360.              propget
  6361.             ,helpcontext(0x10050003)
  6362.             ,helpstring("Returns the Drawing object that owns the object.")
  6363.         ]
  6364.         HRESULT  Drawing(
  6365.             [out, retval] IDrawing** prop // The Drawing object.
  6366.             );
  6367.  
  6368.         /**
  6369.          * Returns part of a collection.
  6370.          */
  6371.         [
  6372.              propget
  6373.             ,id(DISPID_VALUE)
  6374.             ,helpcontext(0x10050004)
  6375.             ,helpstring("Returns part of a collection.")
  6376.         ]
  6377.         HRESULT  Item(
  6378.             [in] VARIANT* Index, // Index of item to return.
  6379.             [out, retval] IGraphic** prop // The item.
  6380.             );
  6381.  
  6382.         /**
  6383.          * Returns the parent object for the specified object.
  6384.          */
  6385.         [
  6386.              propget
  6387.             ,helpcontext(0x10050005)
  6388.             ,helpstring("Returns the parent object for the specified object.")
  6389.         ]
  6390.         HRESULT  Parent(
  6391.             [out, retval] IDispatch** prop // The parent object.
  6392.             );
  6393.         /**
  6394.          * Creates an enumeration object.
  6395.          */
  6396.         [
  6397.              propget
  6398.             ,restricted
  6399.             ,id(DISPID_NEWENUM)
  6400.             ,helpcontext(0x10050006)
  6401.             ,helpstring("Private.  Creates an enumeration object.")
  6402.         ]
  6403.         HRESULT  _NewEnum(
  6404.             [out, retval] IUnknown** prop // The enumeration object.
  6405.             );
  6406.  
  6407.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  6408.  
  6409. #ifndef METHOD_OVERFLOW_BUG
  6410.  
  6411.         /**
  6412.          * Applies a Style object to the contents of the collection.
  6413.          */
  6414.         [
  6415.              helpcontext(0x10050007)
  6416.             ,helpstring("Applies a Style object to the contents of the collection.")
  6417.             ,restricted, hidden
  6418.         ]
  6419.         HRESULT  ApplyStyle(
  6420.             [in] Style* StyleToApply // The Style object to apply.
  6421.             );
  6422.  
  6423.         /**
  6424.          * Checks the spelling of all the text Graphic object's in the collection.
  6425.          */
  6426.         [
  6427.              helpcontext(0x10050008)
  6428.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  6429.             ,restricted, hidden
  6430.         ]
  6431.         HRESULT  CheckSpelling(
  6432.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  6433.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  6434.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  6435.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  6436.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  6437.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  6438.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  6439.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  6440.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  6441.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  6442.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  6443.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  6444.         );
  6445.  
  6446.         /**
  6447.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  6448.          *
  6449.          * @see TCADAPI TCWCreateHatch function
  6450.          */
  6451.     [
  6452.          helpcontext(0x10050009)
  6453.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  6454.         ,restricted, hidden
  6455.     ]
  6456.     HRESULT  AddHatch(
  6457.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6458.         );
  6459.  
  6460.         /**
  6461.          * Creates a Style object based on the contents of the collection.
  6462.          */
  6463.         [
  6464.              helpcontext(0x1005000A)
  6465.             ,helpstring("Creates a Style object based on the contents of the collection.")
  6466.             ,restricted, hidden
  6467.         ]
  6468.         HRESULT  CreateStyle(
  6469.             [in] Style* BasedOn, // The style to base the new Style object on.
  6470.             [out, retval] Style** prop // The newly created Style object.
  6471.             );
  6472.  
  6473.         /**
  6474.          * Creates and adds an OLE object to the collection.
  6475.          */
  6476.         [
  6477.              helpcontext(0x1005000B)
  6478.             ,helpstring("Creates and adds an OLE object to the collection.")
  6479.             ,restricted, hidden
  6480.         ]
  6481.         HRESULT  AddObject(
  6482.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  6483.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  6484.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  6485.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  6486.             [in, optional] VARIANT* IconFileName, // File containing icon.
  6487.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  6488.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  6489.             [in, optional] VARIANT* X, // X coordinate of center of object.
  6490.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  6491.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  6492.             [in, optional] VARIANT* Width, // Width of object.
  6493.             [in, optional] VARIANT* Height, // Height of object.
  6494.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  6495.             [out, retval] IGraphic** prop // The newly created Graphic object.
  6496.             );
  6497.  
  6498.         /**
  6499.          * Creates and adds a single line segment to the collection.
  6500.          */
  6501.     [
  6502.          helpcontext(0x1005000C)
  6503.         ,helpstring("Creates and adds a single line segment to the collection.")
  6504.         ,restricted, hidden
  6505.     ]
  6506.     HRESULT  AddLineTanArcPoint(
  6507.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  6508.         [in] double X0, // X coordinate on arc for line endpoint.
  6509.         [in] double Y0, // Y coordinate on arc for line endpoint.
  6510.         [in] double Z0, // Z coordinate on arc for line endpoint.
  6511.         [in] double length, // length of tangent line.
  6512.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6513.         );
  6514.  
  6515.         /**
  6516.          * Creates and adds a single line segment to the collection.
  6517.          */
  6518.     [
  6519.          helpcontext(0x1005000D)
  6520.         ,helpstring("Creates and adds a single line segment to the collection.")
  6521.         ,restricted, hidden
  6522.     ]
  6523.     HRESULT  AddLineTanToArc(
  6524.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  6525.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  6526.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  6527.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  6528.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6529.         );
  6530.  
  6531.         /**
  6532.          * Creates and adds a single line segment to the collection.
  6533.          */
  6534.     [
  6535.          helpcontext(0x1005000E)
  6536.         ,helpstring("Creates and adds a single line segment to the collection.")
  6537.         ,restricted, hidden
  6538.     ]
  6539.     HRESULT  AddLineTanFromArc(
  6540.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  6541.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  6542.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  6543.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  6544.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6545.         );
  6546.  
  6547.         /**
  6548.          * Creates and adds a single line segment to the collection.
  6549.          */
  6550.     [
  6551.          helpcontext(0x1005000F)
  6552.         ,helpstring("Creates and adds a single line segment to the collection.")
  6553.         ,restricted, hidden
  6554.     ]
  6555.     HRESULT  AddLineTan2Arcs(
  6556.         [in] IGraphic* Arc1, // First arc.
  6557.         [in] IGraphic* Arc2, // Second arc.
  6558.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  6559.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6560.         );
  6561.  
  6562.         /**
  6563.          * Creates and adds a multi segment leader (callout) line to the collection.
  6564.          * The returned Graphic object contains only a beginning vertex.  The user must
  6565.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6566.          * and a Graphic.Finish call to complete the Graphic object.
  6567.          */
  6568.     [
  6569.          helpcontext(0x10050010)
  6570.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  6571.         ,restricted, hidden
  6572.     ]
  6573.     HRESULT  AddDimensionLeader(
  6574.         [in] double X0, // X coordinate of the first endpoint.
  6575.         [in] double Y0, // Y coordinate of the first endpoint.
  6576.         [in] double Z0, // Z coordinate of the first endpoint.
  6577.         [in, optional] BSTR Text, // The text for the leader.
  6578.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6579.         );
  6580.  
  6581.         /**
  6582.          * Creates and adds a baseline dimension to the collection.
  6583.          * The returned Graphic object contains only a beginning vertex.  The user must
  6584.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6585.          * and a Graphic.Finish call to complete the Graphic object.
  6586.          */
  6587.     [
  6588.          helpcontext(0x10050011)
  6589.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  6590.         ,restricted, hidden
  6591.     ]
  6592.     HRESULT  AddDimensionBaseline(
  6593.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  6594.         [in] double X0, // X coordinate of second extension line.
  6595.         [in] double Y0, // Y coordinate of second extension line.
  6596.         [in] double Z0, // Z coordinate of second extension line.
  6597.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6598.         );
  6599.  
  6600.         /**
  6601.          * Creates and adds a continuous dimension to the collection.
  6602.          * The returned Graphic object contains only a beginning vertex.  The user must
  6603.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6604.          * and a Graphic.Finish call to complete the Graphic object.
  6605.          */
  6606.     [
  6607.          helpcontext(0x10050012)
  6608.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  6609.         ,restricted, hidden
  6610.     ]
  6611.     HRESULT  AddDimensionContinuous(
  6612.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  6613.         [in] double X0, // X coordinate of second extension line.
  6614.         [in] double Y0, // Y coordinate of second extension line.
  6615.         [in] double Z0, // Z coordinate of second extension line.
  6616.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6617.         );
  6618.  
  6619.         /**
  6620.          * Creates and adds a single segment double line to the collection.
  6621.          *
  6622.          * @see TCADAPI TCWDoubleLineSingle function
  6623.          */
  6624.     [
  6625.          helpcontext(0x10050013)
  6626.         ,helpstring("Creates and adds a single segment double line to the collection.")
  6627.         ,restricted, hidden
  6628.     ]
  6629.     HRESULT  AddDoubleLineSingle(
  6630.         [in] double X0, // X coordinate of the first point.
  6631.         [in] double Y0, // Y coordinate of the first point.
  6632.         [in] double Z0, // Z coordinate of the first point.
  6633.         [in] double X1, // X coordinate of the second point.
  6634.         [in] double Y1, // Y coordinate of the second point.
  6635.         [in] double Z1, // Z coordinate of the second point.
  6636.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6637.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6638.         );
  6639.  
  6640.         /**
  6641.          * Creates and adds a double regular polygon to the collection.
  6642.          *
  6643.          * @see TCADAPI TCWDoubleLinePolygon function
  6644.          */
  6645.     [
  6646.          helpcontext(0x10050014)
  6647.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  6648.         ,restricted, hidden
  6649.     ]
  6650.     HRESULT  AddDoubleLinePolygon(
  6651.         [in] double X0, // X coordinate of the center point.
  6652.         [in] double Y0, // Y coordinate of the center point.
  6653.         [in] double Z0, // Z coordinate of the center point.
  6654.         [in] double X1, // X coordinate of the corner point.
  6655.         [in] double Y1, // Y coordinate of the corner point.
  6656.         [in] double Z1, // Z coordinate of the corner point.
  6657.         [in] long Sides, // Number of sides.
  6658.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6659.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6660.         );
  6661.  
  6662.         /**
  6663.          * Creates and adds a double rectangle to the collection.
  6664.          *
  6665.          * @see TCADAPI TCWDoubleLineRectangle function
  6666.          */
  6667.     [
  6668.          helpcontext(0x10050015)
  6669.         ,helpstring("Creates and adds a double rectangle to the collection.")
  6670.         ,restricted, hidden
  6671.     ]
  6672.     HRESULT  AddDoubleLineRectangle(
  6673.         [in] double X0, // X coordinate of the upper left corner.
  6674.         [in] double Y0, // Y coordinate of the upper left corner.
  6675.         [in] double Z0, // Z coordinate of the upper left corner.
  6676.         [in] double X1, // X coordinate of the lower right corner.
  6677.         [in] double Y1, // Y coorindate of the lower right corner.
  6678.         [in] double Z1, // Z coorindate of the lower right corner.
  6679.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6680.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6681.         );
  6682.  
  6683.         /**
  6684.          * Creates and adds a double rotated rectangle to the collection.
  6685.          *
  6686.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  6687.          */
  6688.     [
  6689.          helpcontext(0x10050016)
  6690.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  6691.         ,restricted, hidden
  6692.     ]
  6693.     HRESULT  AddDoubleLineRotatedRectangle(
  6694.         [in] double X0, // X coordinate of the upper left corner.
  6695.         [in] double Y0, // Y coordinate of the upper left corner.
  6696.         [in] double Z0, // Z coordinate of the upper left corner.
  6697.         [in] double X1, // X coordinate of the lower right corner.
  6698.         [in] double Y1, // Y coorindate of the lower right corner.
  6699.         [in] double Z1, // Z coorindate of the lower right corner.
  6700.         [in] double Angle, // Angle of rotation in radians.
  6701.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6702.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6703.         );
  6704.  
  6705.         /**
  6706.          * Creates and adds a double line to the collection.
  6707.          *
  6708.          * @see TCADAPI TCWDoubleLinePerpendicular function
  6709.          */
  6710.     [
  6711.          helpcontext(0x10050017)
  6712.         ,helpstring("Creates and adds a double line to the collection.")
  6713.         ,restricted, hidden
  6714.     ]
  6715.     HRESULT  AddDoubleLinePerpendicular(
  6716.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  6717.         [in] double X0, // X coordinate of the point on the existing line.
  6718.         [in] double Y0, // Y coordinate of the point on the existing line.
  6719.         [in] double Z0, // Z coordinate of the point on the existing line.
  6720.         [in] double X1, // X coordinate of the second point on the new line.
  6721.         [in] double Y1, // Y coordinate of the second point on the new line.
  6722.         [in] double Z1, // Z coordinate of the second point on the new line.
  6723.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6724.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6725.         );
  6726.  
  6727.         /**
  6728.          * Creates and adds a multiple segment double line to the collection.
  6729.          * The returned Graphic object contains only a beginning vertex.  The user must
  6730.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6731.          * and a Graphic.Finish call to complete the Graphic object.
  6732.          *
  6733.          * @see TCADAPI TCWDoubleLineMultiline function
  6734.          */
  6735.     [
  6736.          helpcontext(0x10050018)
  6737.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  6738.         ,restricted, hidden
  6739.     ]
  6740.     HRESULT  AddDoubleLineMultiline(
  6741.         [in] double X0, // X coordinate of first endpoint.
  6742.         [in] double Y0, // Y coordinate of first endpoint.
  6743.         [in] double Z0, // Z coordinate of first endpoint.
  6744.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6745.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6746.         );
  6747.  
  6748.         /**
  6749.          * Creates and adds a double irregular polygon to the collection.
  6750.          * The returned Graphic object contains only a beginning vertex.  The user must
  6751.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  6752.          * and a Graphic.Close call to complete the Graphic object.
  6753.          *
  6754.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  6755.          */
  6756.     [
  6757.          helpcontext(0x10050019)
  6758.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  6759.         ,restricted, hidden
  6760.     ]
  6761.     HRESULT  AddDoubleLineIrregularPolygon(
  6762.         [in] double X0, // X coordinate of first endpoint.
  6763.         [in] double Y0, // Y coordinate of first endpoint.
  6764.         [in] double Z0, // Z coordinate of first endpoint.
  6765.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6766.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6767.         );
  6768.  
  6769.         /**
  6770.          * Creates and adds a double line to the collection.
  6771.          *
  6772.          * @see TCADAPI TCWDoubleLineParallel function
  6773.          */
  6774.     [
  6775.          helpcontext(0x1005001A)
  6776.         ,helpstring("Creates and adds a double line to the collection.")
  6777.         ,restricted, hidden
  6778.     ]
  6779.     HRESULT  AddDoubleLineParallel(
  6780.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  6781.         [in] double X0, // X coordinate of the new line.
  6782.         [in] double Y0, // Y coordinate of the new line.
  6783.         [in] double Z0, // Z coordinate of the new line.
  6784.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  6785.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6786.         );
  6787.  
  6788.         /**
  6789.          * Creates and adds a circle to the collection.
  6790.          */
  6791.     [
  6792.          helpcontext(0x1005001B)
  6793.         ,helpstring("Creates and adds a circle to the collection.")
  6794.         ,restricted, hidden
  6795.     ]
  6796.     HRESULT  AddCircleTanToArc(
  6797.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  6798.         [in] double X0, // X coordinate of the new circle's center point.
  6799.         [in] double Y0, // Y coordinate of the new circle's center point.
  6800.         [in] double Z0, // Z coordinate of the new circle's center point.
  6801.         [in] double X1, // X coordinate of the new circle's radius point.
  6802.         [in] double Y1, // Y coordinate of the new circle's radius point.
  6803.         [in] double Z1, // Z coordinate of the new circle's radius point.
  6804.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6805.         );
  6806.  
  6807.         /**
  6808.          * Creates and adds a circle to the collection.
  6809.          */
  6810.     [
  6811.          helpcontext(0x1005001C)
  6812.         ,helpstring("Creates and adds a circle to the collection.")
  6813.         ,restricted, hidden
  6814.     ]
  6815.     HRESULT  AddCircleTanToLine(
  6816.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  6817.         [in] double X0, // X coordinate of the new circle's center point.
  6818.         [in] double Y0, // Y coordinate of the new circle's center point.
  6819.         [in] double Z0, // Z coordinate of the new circle's center point.
  6820.         [in] double X1, // X coordinate of the new circle's radius point.
  6821.         [in] double Y1, // Y coordinate of the new circle's radius point.
  6822.         [in] double Z1, // Z coordinate of the new circle's radius point.
  6823.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6824.         );
  6825.  
  6826.         /**
  6827.          * Creates and adds a circle to the collection.
  6828.          */
  6829.     [
  6830.          helpcontext(0x1005001D)
  6831.         ,helpstring("Creates and adds a circle to the collection.")
  6832.         ,restricted, hidden
  6833.     ]
  6834.     HRESULT  AddCircleTan3Arcs(
  6835.         [in] IGraphic* Arc1, // First arc or circle.
  6836.         [in] IGraphic* Arc2, // Second arc or circle.
  6837.         [in] IGraphic* Arc3, // Third arc or circle.
  6838.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6839.         );
  6840.  
  6841.         /**
  6842.          * Creates and adds an arc to the collection.
  6843.          */
  6844.     [
  6845.          helpcontext(0x1005001E)
  6846.         ,helpstring("Creates and adds an arc to the collection.")
  6847.         ,restricted, hidden
  6848.     ]
  6849.     HRESULT  AddArcTanToArc(
  6850.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  6851.         [in] double X0, // X coordinate of new arc's radius point.
  6852.         [in] double Y0, // Y coordinate of new arc's radius point.
  6853.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  6854.         [in] double X1, // X coordinate of point on existing arc.
  6855.         [in] double Y1, // Y coordinate of point on existing arc.
  6856.         [in] double Z1, // Z coordinate of ponit on existing arc.
  6857.         [in] double StartAngle, // Starting angle in radians.
  6858.         [in] double EndAngle, // Ending angle in radians.
  6859.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6860.         );
  6861.  
  6862.         /**
  6863.          * Creates and adds an arc to the collection.
  6864.          */
  6865.     [
  6866.          helpcontext(0x1005001F)
  6867.         ,helpstring("Creates and adds an arc to the collection.")
  6868.         ,restricted, hidden
  6869.     ]
  6870.     HRESULT  AddArcTanToLine(
  6871.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  6872.         [in] double X0, // X coordinate of new arc's radius point.
  6873.         [in] double Y0, // Y coordinate of new arc's radius point.
  6874.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  6875.         [in] double X1, // X coordinate of point on existing line.
  6876.         [in] double Y1, // Y coordinate of point on existing line.
  6877.         [in] double Z1, // Z coordinate of ponit on existing line.
  6878.         [in] double StartAngle, // Starting angle in radians.
  6879.         [in] double EndAngle, // Ending angle in radians.
  6880.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6881.         );
  6882.  
  6883.         /**
  6884.          * Creates and adds an arc to the collection.
  6885.          */
  6886.     [
  6887.          helpcontext(0x10050020)
  6888.         ,helpstring("Creates and adds an arc to the collection.")
  6889.         ,restricted, hidden
  6890.     ]
  6891.     HRESULT  AddArcTanTo3Arcs(
  6892.         [in] IGraphic* Arc1, // First arc or circle.
  6893.         [in] IGraphic* Arc2, // Second arc or circle.
  6894.         [in] IGraphic* Arc3, // Third arc or circle.
  6895.         [in] double StartAngle, // Starting angle in radians.
  6896.         [in] double EndAngle, // Ending angle in radians.
  6897.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6898.         );
  6899.  
  6900.         /**
  6901.          * Creates and adds a horizontal dimension to the collection.
  6902.          *
  6903.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  6904.          */
  6905.     [
  6906.          helpcontext(0x10050021)
  6907.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  6908.         ,restricted, hidden
  6909.     ]
  6910.     HRESULT  AddDimensionHorizontal(
  6911.         [in] double X0, // X coordinate of first extension line.
  6912.         [in] double Y0, // Y coordinate of first extension line.
  6913.         [in] double Z0, // Z coordinate of first extension line.
  6914.         [in] double X1, // X coordinate of second extension line.
  6915.         [in] double Y1, // Y coordinate of second extension line.
  6916.         [in] double Z1, // Z coordinate of second extension line.
  6917.         [in] double X2, // X coordinate of dimension.
  6918.         [in] double Y2, // Y coordinate of dimension.
  6919.         [in] double Z2, // Z coordinate of dimension.
  6920.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6921.         );
  6922.  
  6923.         /**
  6924.          * Creates and adds a vertical dimension to the collection.
  6925.          *
  6926.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  6927.          */
  6928.     [
  6929.          helpcontext(0x10050022)
  6930.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  6931.         ,restricted, hidden
  6932.     ]
  6933.     HRESULT  AddDimensionVertical(
  6934.         [in] double X0, // X coordinate of first extension line.
  6935.         [in] double Y0, // Y coordinate of first extension line.
  6936.         [in] double Z0, // Z coordinate of first extension line.
  6937.         [in] double X1, // X coordinate of second extension line.
  6938.         [in] double Y1, // Y coordinate of second extension line.
  6939.         [in] double Z1, // Z coordinate of second extension line.
  6940.         [in] double X2, // X coordinate of dimension.
  6941.         [in] double Y2, // Y coordinate of dimension.
  6942.         [in] double Z2, // Z coordinate of dimension.
  6943.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6944.         );
  6945.  
  6946.         /**
  6947.          * Creates and adds a parallel dimension to the collection.
  6948.          *
  6949.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  6950.          */
  6951.     [
  6952.          helpcontext(0x10050023)
  6953.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  6954.         ,restricted, hidden
  6955.     ]
  6956.     HRESULT  AddDimensionParallel(
  6957.         [in] double X0, // X coordinate of first extension line.
  6958.         [in] double Y0, // Y coordinate of first extension line.
  6959.         [in] double Z0, // Z coordinate of first extension line.
  6960.         [in] double X1, // X coordinate of second extension line.
  6961.         [in] double Y1, // Y coordinate of second extension line.
  6962.         [in] double Z1, // Z coordinate of second extension line.
  6963.         [in] double X2, // X coordinate of dimension.
  6964.         [in] double Y2, // Y coordinate of dimension.
  6965.         [in] double Z2, // Z coordinate of dimension.
  6966.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6967.         );
  6968.  
  6969.         /**
  6970.          * Creates and adds a rotated dimension to the collection.
  6971.          */
  6972.     [
  6973.          helpcontext(0x10050024)
  6974.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  6975.         ,restricted, hidden
  6976.     ]
  6977.     HRESULT  AddDimensionRotated(
  6978.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  6979.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  6980.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  6981.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  6982.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  6983.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  6984.         [in] double X2, // X coordinate of first extension line.
  6985.         [in] double Y2, // Y coordinate of first extension line.
  6986.         [in] double Z2, // Z coordinate of first extension line.
  6987.         [in] double X3, // X coordinate of second extension line.
  6988.         [in] double Y3, // Y coordinate of second extension line.
  6989.         [in] double Z3, // Z coordinate of second extension line.
  6990.         [in] double X4, // X coordinate of dimension.
  6991.         [in] double Y4, // Y coordinate of dimension.
  6992.         [in] double Z4, // Z coordinate of dimension.
  6993.         [out, retval] IGraphic** prop // The newly created Graphic object.
  6994.         );
  6995.  
  6996.         /**
  6997.          * Creates and adds a datum dimension to the collection.
  6998.          */
  6999.     [
  7000.          helpcontext(0x10050025)
  7001.         ,helpstring("Creates and adds a datum dimension to the collection.")
  7002.         ,restricted, hidden
  7003.     ]
  7004.     HRESULT  AddDimensionDatum(
  7005.         [in] double X0, // X coordinate of first extension line.
  7006.         [in] double Y0, // Y coordinate of first extension line.
  7007.         [in] double Z0, // Z coordinate of first extension line.
  7008.         [in] double X1, // X coordinate of second extension line.
  7009.         [in] double Y1, // Y coordinate of second extension line.
  7010.         [in] double Z1, // Z coordinate of second extension line.
  7011.         [in] double X2, // X coordinate of dimension.
  7012.         [in] double Y2, // Y coordinate of dimension.
  7013.         [in] double Z2, // Z coordinate of dimension.
  7014.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7015.         );
  7016.  
  7017.         /**
  7018.          * Creates and adds an angular dimension to the collection.
  7019.          */
  7020.     [
  7021.          helpcontext(0x10050026)
  7022.         ,helpstring("Creates and adds an angular dimension to the collection.")
  7023.         ,restricted, hidden
  7024.     ]
  7025.     HRESULT  AddDimensionAngular(
  7026.         [in] IGraphic* Line1, // First graphic.
  7027.         [in] IGraphic* Line2, // Second graphic.
  7028.         [in] double X0, // X coordinate of dimension.
  7029.         [in] double Y0, // Y coordinate of dimension.
  7030.         [in] double Z0, // Z coordinate of dimension.
  7031.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7032.         );
  7033.  
  7034.         /**
  7035.          * Creates and adds a radial dimension to the collection.
  7036.          */
  7037.     [
  7038.          helpcontext(0x10050027)
  7039.         ,helpstring("Creates and adds a radial dimension to the collection.")
  7040.         ,restricted, hidden
  7041.     ]
  7042.     HRESULT  AddDimensionRadius(
  7043.         [in] IGraphic* Arc, // Arc or circle.
  7044.         [in] double X0, // X coordinate of dimension text.
  7045.         [in] double Y0, // Y coordinate of dimension text.
  7046.         [in] double Z0, // Z coordinate of dimension text.
  7047.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7048.         );
  7049.  
  7050.         /**
  7051.          * Creates and adds a diameter dimension to the collection.
  7052.          */
  7053.     [
  7054.          helpcontext(0x10050028)
  7055.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  7056.         ,restricted, hidden
  7057.     ]
  7058.     HRESULT  AddDimensionDiameter(
  7059.         [in] IGraphic* Arc, // Arc or circle.
  7060.         [in] double X0, // X coordinate of dimension text.
  7061.         [in] double Y0, // Y coordinate of dimension text.
  7062.         [in] double Z0, // Z coordinate of dimension text.
  7063.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7064.         );
  7065.  
  7066. #endif //METHOD_OVERFLOW_BUG
  7067.  
  7068.         /**
  7069.          * Creates and adds a new Graphic object to the collection.
  7070.          */
  7071.         [
  7072.              helpcontext(0x10050029)
  7073.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  7074.         ]
  7075.         HRESULT  Add(
  7076.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  7077.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  7078.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  7079.             [in, optional] VARIANT* Style, // Not used in current implementation.
  7080.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  7081.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  7082.             [out, retval] IGraphic** prop // The newly created Graphic object.
  7083.             );
  7084.  
  7085.         /**
  7086.          * Adds an existing Graphic object to the collection.
  7087.          */
  7088.         [
  7089.              helpcontext(0x1005002A)
  7090.             ,helpstring("Adds an existing Graphic object to the collection.")
  7091.         ]
  7092.         HRESULT  AddGraphic(
  7093.             [in] IGraphic* Graphic,    // The Graphic object to add.
  7094.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  7095.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  7096.             );
  7097.  
  7098.         /**
  7099.          * Returns the collection's bounding box.
  7100.          */
  7101.         [
  7102.              helpcontext(0x1005002B)
  7103.             ,helpstring("Returns the collection's bounding box.")
  7104.             ,restricted, hidden
  7105.         ]
  7106.         HRESULT  CalcBoundingBox(
  7107.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  7108.             [out, retval] BoundingBox** prop // The BoundingBox object.
  7109.             );
  7110.  
  7111.         /**
  7112.          * Clears the contents of the collection.
  7113.          */
  7114.         [
  7115.              helpcontext(0x1005002C)
  7116.             ,helpstring("Clears the contents of the collection.")
  7117.         ]
  7118.         HRESULT  Clear(
  7119.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  7120.             );
  7121.  
  7122.         /**
  7123.          * Clears construction lines and arcs.
  7124.          *
  7125.          * @see TCADAPI TCWClearAllConstructions function.
  7126.          */
  7127.         [
  7128.              helpcontext(0x1005002D)
  7129.             ,helpstring("Clears construction lines and arcs.")
  7130.             ,restricted, hidden
  7131.         ]
  7132.         HRESULT  ClearConstruction(
  7133.             );
  7134.  
  7135.         /**
  7136.          * Copies the contents of the collection to the Clipboard.
  7137.          */
  7138.         [
  7139.              helpcontext(0x1005002E)
  7140.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  7141.             ,restricted, hidden
  7142.         ]
  7143.         HRESULT  Copy(
  7144.             );
  7145.  
  7146.         /**
  7147.          * Cuts the contents of the collection to the Clipboard.
  7148.          */
  7149.         [
  7150.              helpcontext(0x1005002F)
  7151.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  7152.             ,restricted, hidden
  7153.         ]
  7154.         HRESULT  Cut(
  7155.             );
  7156.  
  7157.         /**
  7158.          * Draws all the Graphic objects in the collection.
  7159.          */
  7160.     [
  7161.          helpcontext(0x10050030)
  7162.         ,helpstring("Draws all the Graphic objects in the collection.")
  7163.         ,restricted, hidden
  7164.     ]
  7165.     HRESULT  Draw(
  7166.         [in] VARIANT* View // If supplied, the View object to draw on.
  7167.         );
  7168.  
  7169.         /**
  7170.          * Removes an item from the collection.
  7171.          */
  7172.         [
  7173.              helpcontext(0x10050031)
  7174.             ,helpstring("Removes an item from the collection.")
  7175.         ]
  7176.         HRESULT  Remove(
  7177.             [in] VARIANT* Index, // The index of item to be removed.
  7178.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  7179.             );
  7180.  
  7181.         /**
  7182.          * Selects all the Graphic object's in the collection.
  7183.          *
  7184.          * @see TCADAPI TCWSelectAll function.
  7185.          */
  7186.         [
  7187.              helpcontext(0x10050032)
  7188.             ,helpstring("Selects all the Graphic object's in the collection.")
  7189.         ]
  7190.         HRESULT  Select(
  7191.             );
  7192.  
  7193.         /**
  7194.          * Unselects all the Graphic object's in the collection.
  7195.          *
  7196.          * @see TCADAPI TCWDeselectAll function.
  7197.          */
  7198.         [
  7199.              helpcontext(0x10050033)
  7200.             ,helpstring("Unselects all the Graphic object's in the collection.")
  7201.         ]
  7202.         HRESULT  Unselect(
  7203.             );
  7204.  
  7205.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  7206.  
  7207.         /**
  7208.          * Creates and adds a construction line to the collection.
  7209.          *
  7210.          * @see TCADAPI TCWConstructionAngularLine function
  7211.          */
  7212.     [
  7213.          helpcontext(0x10050034)
  7214.         ,helpstring("Creates and adds a construction line to the collection.")
  7215.     ]
  7216.     HRESULT  AddConstructionAngularLine(
  7217.         [in] double X0, // X coordinate of the first point on line.
  7218.         [in] double Y0, // Y coordinate of the first point on line.
  7219.         [in] double Z0, // Z coordinate of the first point on line.
  7220.         [in] double X1, // X coordinate of the second point on line.
  7221.         [in] double Y1, // Y coordinate of the second point on line.
  7222.         [in] double Z1, // Z coordinate of the second point on line.
  7223.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7224.         );
  7225.  
  7226.         /**
  7227.          * Creates and adds a construction line to the collection.
  7228.          *
  7229.          * @see TCADAPI TCWConstructionHorizontalLine function
  7230.          */
  7231.     [
  7232.          helpcontext(0x10050035)
  7233.         ,helpstring("Creates and adds a construction line to the collection.")
  7234.     ]
  7235.     HRESULT  AddConstructionHorizontalLine(
  7236.         [in] double X0, // X coordinate of the line.
  7237.         [in] double Y0, // Y coordinate of the line.
  7238.         [in] double Z0, // Z coordinate of the line.
  7239.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7240.         );
  7241.  
  7242.         /**
  7243.          * Creates and adds a construction line to the collection.
  7244.          *
  7245.          * @see TCADAPI TCWConstructionVerticalLine function
  7246.          */
  7247.     [
  7248.          helpcontext(0x10050036)
  7249.         ,helpstring("Creates and adds a construction line to the collection.")
  7250.     ]
  7251.     HRESULT  AddConstructionVerticalLine(
  7252.         [in] double X0, // X coordinate of the line.
  7253.         [in] double Y0, // Y coordinate of the line.
  7254.         [in] double Z0, // Z coordinate of the line.
  7255.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7256.         );
  7257.  
  7258.         /**
  7259.          * Creates and adds a construction circle to the collection.
  7260.          *
  7261.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  7262.          */
  7263.     [
  7264.          helpcontext(0x10050037)
  7265.         ,helpstring("Creates and adds a construction circle to the collection.")
  7266.     ]
  7267.     HRESULT  AddConstructionCenterAndPointCircle(
  7268.         [in] double X0, // X coordinate of the center point.
  7269.         [in] double Y0, // Y coordinate of the center point.
  7270.         [in] double Z0, // Z coordinate of the center point.
  7271.         [in] double X1, // X coordinate of the perimeter point.
  7272.         [in] double Y1, // Y coordinate of the perimeter point.
  7273.         [in] double Z1, // Z coordinate of the perimeter point.
  7274.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7275.         );
  7276.  
  7277.         /**
  7278.          * Creates and adds a construction circle to the collection.
  7279.          *
  7280.          * @see TCADAPI TCWConstructionDoublePointCircle function
  7281.          */
  7282.     [
  7283.          helpcontext(0x10050038)
  7284.         ,helpstring("Creates and adds a construction circle to the collection.")
  7285.     ]
  7286.     HRESULT  AddConstructionDoublePointCircle(
  7287.         [in] double X0, // X coordinate of the first point.
  7288.         [in] double Y0, // Y coordinate of the first point.
  7289.         [in] double Z0, // Z coordinate of the first point.
  7290.         [in] double X1, // X coordinate of the second point.
  7291.         [in] double Y1, // Y coordinate of the second point.
  7292.         [in] double Z1, // Z coordinate of the second point.
  7293.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7294.         );
  7295.  
  7296.         /**
  7297.          * Creates and adds a construction circle to the collection.
  7298.          *
  7299.          * @see TCADAPI TCWConstructionTriplePointCircle function
  7300.          */
  7301.     [
  7302.          helpcontext(0x10050039)
  7303.         ,helpstring("Creates and adds a construction circle to the collection.")
  7304.     ]
  7305.     HRESULT  AddConstructionTriplePointCircle(
  7306.         [in] double X0, // X coordinate of the first point.
  7307.         [in] double Y0, // Y coordinate of the first point.
  7308.         [in] double Z0, // Z coordinate of the first point.
  7309.         [in] double X1, // X coordinate of the second point.
  7310.         [in] double Y1, // Y coordinate of the second point.
  7311.         [in] double Z1, // Z coordinate of the second point.
  7312.         [in] double X2, // X coordinate of the third point.
  7313.         [in] double Y2, // Y coordinate of the third point.
  7314.         [in] double Z2, // Z coordinate of the third point.
  7315.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7316.         );
  7317.  
  7318.         /**
  7319.          * Creates and adds a dot marker to the collection.
  7320.          *
  7321.          * @see TCADAPI TCWDot function
  7322.          */
  7323.     [
  7324.          helpcontext(0x1005003A)
  7325.         ,helpstring("Creates and adds a dot marker to the collection.")
  7326.     ]
  7327.     HRESULT  AddDot(
  7328.         [in] double X0, // X coordinate of the point.
  7329.         [in] double Y0, // Y coordinate of the point.
  7330.         [in] double Z0, // Z coordinate of the point.
  7331.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7332.         );
  7333.  
  7334.         /**
  7335.          * Creates and adds a star to the collection.
  7336.          *
  7337.          * @see TCADAPI TCWStar function
  7338.          */
  7339.     [
  7340.          helpcontext(0x1005003B)
  7341.         ,helpstring("Creates and adds a star marker to the collection.")
  7342.     ]
  7343.     HRESULT  AddStar(
  7344.         [in] double X0, // X coordinate of the point.
  7345.         [in] double Y0, // Y coordinate of the point.
  7346.         [in] double Z0, // Z coordinate of the point.
  7347.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7348.         );
  7349.  
  7350.         /**
  7351.          * Creates and adds a square marker to the collection.
  7352.          *
  7353.          * @see TCADAPI TCWSquare function
  7354.          */
  7355.     [
  7356.          helpcontext(0x1005003C)
  7357.         ,helpstring("Creates and adds a square marker to the collection.")
  7358.     ]
  7359.     HRESULT  AddSquare(
  7360.         [in] double X0, // X coordinate of the point.
  7361.         [in] double Y0, // Y coordinate of the point.
  7362.         [in] double Z0, // Z coordinate of the point.
  7363.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7364.         );
  7365.  
  7366.         /**
  7367.          * Creates and adds a cross marker to the collection.
  7368.          *
  7369.          * @see TCADAPI TCWCross function
  7370.          */
  7371.     [
  7372.          helpcontext(0x1005003D)
  7373.         ,helpstring("Creates and adds a cross marker to the collection.")
  7374.     ]
  7375.     HRESULT  AddCross(
  7376.         [in] double X0, // X coordinate of the point.
  7377.         [in] double Y0, // Y coordinate of the point.
  7378.         [in] double Z0, // Z coordinate of the point.
  7379.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7380.         );
  7381.  
  7382.         /**
  7383.          * Creates and adds a circle marker to the collection.
  7384.          *
  7385.          * @see TCADAPI TCWCircle function
  7386.          */
  7387.     [
  7388.          helpcontext(0x1005003E)
  7389.         ,helpstring("Creates and adds a circle marker to the collection.")
  7390.     ]
  7391.     HRESULT  AddCircle(
  7392.         [in] double X0, // X coordinate of the point.
  7393.         [in] double Y0, // Y coordinate of the point.
  7394.         [in] double Z0, // Z coordinate of the point.
  7395.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7396.         );
  7397.  
  7398.         /**
  7399.          * Creates and adds a single line segment to the collection.
  7400.          *
  7401.          * @see TCADAPI TCWLineSingle function
  7402.          */
  7403.     [
  7404.          helpcontext(0x1005003F)
  7405.         ,helpstring("Creates and adds a single line segment to the collection.")
  7406.     ]
  7407.     HRESULT  AddLineSingle(
  7408.         [in] double X0, // X coordinate of the first endpoint.
  7409.         [in] double Y0, // Y coordinate of the first endpoint.
  7410.         [in] double Z0, // Z coordinate of the first endpoint.
  7411.         [in] double X1, // X coordinate of the second endpoint.
  7412.         [in] double Y1, // Y coordinate of the second endpoint.
  7413.         [in] double Z1, // Z coordinate of the second endpoint.
  7414.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7415.         );
  7416.  
  7417.         /**
  7418.          * Creates and adds a regular polygon to the collection.
  7419.          *
  7420.          * @see TCADAPI TCWLinePolygon function
  7421.          */
  7422.     [
  7423.          helpcontext(0x10050040)
  7424.         ,helpstring("Creates and adds a regular polygon to the collection.")
  7425.     ]
  7426.     HRESULT  AddLinePolygon(
  7427.         [in] double X0, // X coordinate of the center point.
  7428.         [in] double Y0, // Y coordinate of the center point.
  7429.         [in] double Z0, // Z coordinate of the center point.
  7430.         [in] double X1, // X coordinate of the corner point.
  7431.         [in] double Y1, // Y coordinate of the corner point.
  7432.         [in] double Z1, // Z coordinate of the corner point.
  7433.         [in] long nsides, // number of sides.
  7434.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7435.         );
  7436.  
  7437.         /**
  7438.          * Creates and adds a rectangle to the collection.
  7439.          *
  7440.          * @see TCADAPI TCWLineRectangle function
  7441.          */
  7442.     [
  7443.          helpcontext(0x10050041)
  7444.         ,helpstring("Creates and adds a rectangle to the collection.")
  7445.     ]
  7446.     HRESULT  AddLineRectangle(
  7447.         [in] double X0, // X coordinate of the upper left corner.
  7448.         [in] double Y0, // Y coordinate of the upper left corner.
  7449.         [in] double Z0, // Z coordinate of the upper left corner.
  7450.         [in] double X1, // X coordinate of the lower right corner.
  7451.         [in] double Y1, // Y coorindate of the lower right corner.
  7452.         [in] double Z1, // Z coorindate of the lower right corner.
  7453.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7454.         );
  7455.  
  7456.         /**
  7457.          * Creates and adds a rotated rectangle to the collection.
  7458.          *
  7459.          * @see TCADAPI TCWLineRotatedRectangle function
  7460.          */
  7461.     [
  7462.          helpcontext(0x10050042)
  7463.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  7464.     ]
  7465.     HRESULT  AddLineRotatedRectangle(
  7466.         [in] double X0, // X coordinate of the upper left corner.
  7467.         [in] double Y0, // Y coordinate of the upper left corner.
  7468.         [in] double Z0, // Z coordinate of the upper left corner.
  7469.         [in] double X1, // X coordinate of the lower right corner.
  7470.         [in] double Y1, // Y coorindate of the lower right corner.
  7471.         [in] double Z1, // Z coorindate of the lower right corner.
  7472.         [in] double Height, // Height of the rectangle.
  7473.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7474.         );
  7475.  
  7476.         /**
  7477.          * Creates and adds a single line segment to the collection.
  7478.          *
  7479.          * @see TCADAPI TCWLinePerpendicular function
  7480.          */
  7481.     [
  7482.          helpcontext(0x10050043)
  7483.         ,helpstring("Creates and adds a single line segment to the collection.")
  7484.     ]
  7485.     HRESULT  AddLinePerpendicular(
  7486.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  7487.         [in] double X0, // X coordinate of the point on the existing line.
  7488.         [in] double Y0, // Y coordinate of the point on the existing line.
  7489.         [in] double Z0, // Z coordinate of the point on the existing line.
  7490.         [in] double X1, // X coordinate of the second point on the new line.
  7491.         [in] double Y1, // Y coordinate of the second point on the new line.
  7492.         [in] double Z1, // Z coordinate of the second point on the new line.
  7493.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7494.         );
  7495.  
  7496.         /**
  7497.          * Creates and adds a single line segment to the collection.
  7498.          *
  7499.          * @see TCADAPI TCWLineParallel function
  7500.          */
  7501.     [
  7502.          helpcontext(0x10050044)
  7503.         ,helpstring("Creates and adds a single line segment to the collection.")
  7504.     ]
  7505.     HRESULT  AddLineParallel(
  7506.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  7507.         [in] double X0, // X coordinate of the new line.
  7508.         [in] double Y0, // Y coordinate of the new line.
  7509.         [in] double Z0, // Z coordinate of the new line.
  7510.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7511.         );
  7512.  
  7513.         /**
  7514.          * Creates and adds a multiple segment line to the collection.
  7515.          * The returned Graphic object contains only a beginning vertex.  The user must
  7516.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7517.          * and a Graphic.Finish call to complete the Graphic object.
  7518.          *
  7519.          * @see TCADAPI TCWLineMultiline function
  7520.          */
  7521.     [
  7522.          helpcontext(0x10050045)
  7523.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  7524.     ]
  7525.     HRESULT  AddLineMultiline(
  7526.         [in] double X0, // X coordinate of first endpoint.
  7527.         [in] double Y0, // Y coordinate of first endpoint.
  7528.         [in] double Z0, // Z coordinate of first endpoint.
  7529.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7530.         );
  7531.  
  7532.         /**
  7533.          * Creates and adds an irregular polygon to the collection.
  7534.          * The returned Graphic object contains only a beginning vertex.  The user must
  7535.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7536.          * and a Graphic.Close call to complete the Graphic object.
  7537.          *
  7538.          * @see TCADAPI TCWLineIrregularPolygon function
  7539.          */
  7540.     [
  7541.          helpcontext(0x10050046)
  7542.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  7543.     ]
  7544.     HRESULT  AddLineIrregularPolygon(
  7545.         [in] double X0, // X coordinate of first endpoint.
  7546.         [in] double Y0, // Y coordinate of first endpoint.
  7547.         [in] double Z0, // Z coordinate of first endpoint.
  7548.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7549.         );
  7550.  
  7551.         /**
  7552.          * Creates and adds a bezier curve to the collection.
  7553.          * The returned Graphic object contains only a beginning vertex.  The user must
  7554.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7555.          * and a Graphic.Finish call to complete the Graphic object.
  7556.          *
  7557.          * @see TCADAPI TCWCurveBezier function
  7558.          */
  7559.     [
  7560.          helpcontext(0x10050047)
  7561.         ,helpstring("Creates and adds a bezier curve to the collection.")
  7562.     ]
  7563.     HRESULT  AddCurveBezier(
  7564.         [in] double X0, // X coordinate of the first endpoint.
  7565.         [in] double Y0, // Y coordinate of the first endpoint.
  7566.         [in] double Z0, // Z coordinate of the first endpoint.
  7567.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7568.         );
  7569.  
  7570.         /**
  7571.          * Creates and adds a cubic spline curve to the collection.
  7572.          * The returned Graphic object contains only a beginning vertex.  The user must
  7573.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  7574.          * and a Graphic.Finish call to complete the Graphic object.
  7575.          *
  7576.          * @see TCADAPI TCWCurveSpline function
  7577.          */
  7578.     [
  7579.          helpcontext(0x10050048)
  7580.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  7581.     ]
  7582.     HRESULT  AddCurveSpline(
  7583.         [in] double X0, // X coordinate of the first endpoint.
  7584.         [in] double Y0, // Y coordinate of the first endpoint.
  7585.         [in] double Z0, // Z coordinate of the first endpoint.
  7586.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7587.         );
  7588.  
  7589.         /**
  7590.          * Creates and adds a circle to the collection.
  7591.          *
  7592.          * @see TCADAPI TCWCircleCenterAndPoint function
  7593.          */
  7594.     [
  7595.          helpcontext(0x10050049)
  7596.         ,helpstring("Creates and adds a circle to the collection.")
  7597.     ]
  7598.     HRESULT  AddCircleCenterAndPoint(
  7599.         [in] double X0, // X coordinate of the center point.
  7600.         [in] double Y0, // Y coordinate of the center point.
  7601.         [in] double Z0, // Z coordinate of the cneter point.
  7602.         [in] double X1, // X coordinate of the radius point.
  7603.         [in] double Y1, // Y coordinate of the radius point.
  7604.         [in] double Z1, // Z coordinate of the radius point.
  7605.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7606.         );
  7607.  
  7608.         /**
  7609.          * Creates and adds a circle to the collection.
  7610.          *
  7611.          * @see TCADAPI TCWCircleDoublePoint function
  7612.          */
  7613.     [
  7614.          helpcontext(0x1005004A)
  7615.         ,helpstring("Creates and adds a circle to the collection.")
  7616.     ]
  7617.     HRESULT  AddCircleDoublePoint(
  7618.         [in] double X0, // X coordinate of the first point.
  7619.         [in] double Y0, // Y coordinate of the first point.
  7620.         [in] double Z0, // Z coordinate of the first point.
  7621.         [in] double X1, // X coordinate of the second point.
  7622.         [in] double Y1, // Y coordinate of the second point.
  7623.         [in] double Z1, // Z coordinate of the second point.
  7624.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7625.         );
  7626.  
  7627.         /**
  7628.          * Creates and adds a circle to the collection.
  7629.          *
  7630.          * @see TCADAPI TCWCircleTriplePoint function
  7631.          */
  7632.     [
  7633.          helpcontext(0x1005004B)
  7634.         ,helpstring("Creates and adds a circle to the collection.")
  7635.     ]
  7636.     HRESULT  AddCircleTriplePoint(
  7637.         [in] double X0, // X coordinate of the first point.
  7638.         [in] double Y0, // Y coordinate of the first point.
  7639.         [in] double Z0, // Z coordinate of the first point.
  7640.         [in] double X1, // X coordinate of the second point.
  7641.         [in] double Y1, // Y coordinate of the second point.
  7642.         [in] double Z1, // Z coordinate of the second point.
  7643.         [in] double X2, // X coordinate of the third point.
  7644.         [in] double Y2, // Y coordinate of the third point.
  7645.         [in] double Z2, // Z coordinate of the third point.
  7646.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7647.         );
  7648.  
  7649.         /**
  7650.          * Creates and adds a ellipse to the collection.
  7651.          *
  7652.          * @see TCADAPI TCWEllipse function
  7653.          */
  7654.     [
  7655.          helpcontext(0x1005004C)
  7656.         ,helpstring("Creates and adds a ellipse to the collection.")
  7657.     ]
  7658.     HRESULT  AddEllipse(
  7659.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  7660.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  7661.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  7662.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  7663.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  7664.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  7665.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7666.         );
  7667.  
  7668.         /**
  7669.          * Creates and adds a ellipse to the collection.
  7670.          *
  7671.          * @see TCADAPI TCWEllipseRotatedEllipse function
  7672.          */
  7673.     [
  7674.          helpcontext(0x1005004D)
  7675.         ,helpstring("Creates and adds a ellipse to the collection.")
  7676.     ]
  7677.     HRESULT  AddEllipseRotatedEllipse(
  7678.         [in] double X0, // X coordinate of ellipse's center point.
  7679.         [in] double Y0, // Y coordinate of ellipse's center point.
  7680.         [in] double Z0, // Z coordinate of ellipse's center point.
  7681.         [in] double X1, // X coordinate of major axis radius point.
  7682.         [in] double Y1, // Y coordinate of major axis radius point.
  7683.         [in] double Z1, // Z coordinate of major axis radius point.
  7684.         [in] double X2, // X coordinate of minor axis radius point.
  7685.         [in] double Y2, // Y coordinate of minor axis radius point.
  7686.         [in] double Z2, // Z coordinate of minor axis radius point.
  7687.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7688.         );
  7689.  
  7690.         /**
  7691.          * Creates and adds a ellipse to the collection.
  7692.          *
  7693.          * @see TCADAPI TCWEllipseFixedRatio function
  7694.          */
  7695.     [
  7696.          helpcontext(0x1005004E)
  7697.         ,helpstring("Creates and adds a ellipse to the collection.")
  7698.     ]
  7699.     HRESULT  AddEllipseFixedRatio(
  7700.         [in] double X0, // X coordinate of ellipse's center point.
  7701.         [in] double Y0, // Y coordinate of ellipse's center point.
  7702.         [in] double Z0, // Z coordinate of ellipse's center point.
  7703.         [in] double X1, // X coordinate of radius in Y direction.
  7704.         [in] double Y1, // Y coordinate of radius in Y direction.
  7705.         [in] double Z1, // Z coordinate of radius in Y direction.
  7706.         [in] double XToYRatio, // Ratio of Rx to Ry.
  7707.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7708.         );
  7709.  
  7710.         /**
  7711.          * Creates and adds an arc to the collection.
  7712.          *
  7713.          * @see TCADAPI TCWArcCenterAndPoint function
  7714.          */
  7715.     [
  7716.          helpcontext(0x1005004F)
  7717.         ,helpstring("Creates and adds an arc to the collection.")
  7718.     ]
  7719.     HRESULT  AddArcCenterAndPoint(
  7720.         [in] double X0, // X coordinate of arc's center point.
  7721.         [in] double Y0, // Y coordinate of arc's center point.
  7722.         [in] double Z0, // Z coordinate of arc's center point.
  7723.         [in] double X1, // X coordinate of arc's radius point.
  7724.         [in] double Y1, // Y coordinate of arc's radius point.
  7725.         [in] double Z1, // Z coordinate of arc's radius point.
  7726.         [in] double StartAngle, // Starting angle in radians.
  7727.         [in] double EndAngle, // Ending angle in radians.
  7728.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7729.         );
  7730.  
  7731.         /**
  7732.          * Creates and adds an arc to the collection.
  7733.          *
  7734.          * @see TCADAPI TCWArcDoublePoint function
  7735.          */
  7736.     [
  7737.          helpcontext(0x10050050)
  7738.         ,helpstring("Creates and adds an arc to the collection.")
  7739.     ]
  7740.     HRESULT  AddArcDoublePoint(
  7741.         [in] double X0, // X coordinate of first endpoint.
  7742.         [in] double Y0, // Y coordinate of first endpoint.
  7743.         [in] double Z0, // Z coordinate of first endpoint.
  7744.         [in] double X1, // X coordinate of second endpoint.
  7745.         [in] double Y1, // Y coordinate of second endpont.
  7746.         [in] double Z1, // Z coordinate of second endpoint.
  7747.         [in] double StartAngle, // Starting angle in radians.
  7748.         [in] double EndAngle, // Ending angle in radians.
  7749.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7750.         );
  7751.  
  7752.         /**
  7753.          * Creates and adds an arc to the collection.
  7754.          *
  7755.          * @see TCADAPI TCWArcTriplePoint function
  7756.          */
  7757.     [
  7758.          helpcontext(0x10050051)
  7759.         ,helpstring("Creates and adds an arc to the collection.")
  7760.     ]
  7761.     HRESULT  AddArcTriplePoint(
  7762.         [in] double X0, // X coordinate of starting point.
  7763.         [in] double Y0, // Y coordinate of starting point.
  7764.         [in] double Z0, // Z coordinate of starting point.
  7765.         [in] double X1, // X coordinate of point on perimeter.
  7766.         [in] double Y1, // Y coordinate of point on perimeter.
  7767.         [in] double Z1, // Z coordinate of point on perimeter.
  7768.         [in] double X2, // X coordinate of ending point.
  7769.         [in] double Y2, // Y coordinate of ending point.
  7770.         [in] double Z2, // Z coordinate of ending point.
  7771.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7772.         );
  7773.  
  7774.         /**
  7775.          * Creates and adds an elliptical arc to the collection.
  7776.          *
  7777.          * @see TCADAPI TCWArcElliptical function
  7778.          */
  7779.     [
  7780.          helpcontext(0x10050052)
  7781.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  7782.     ]
  7783.     HRESULT  AddArcElliptical(
  7784.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  7785.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  7786.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  7787.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  7788.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  7789.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  7790.         [in] double StartAngle, // Starting angle in radians.
  7791.         [in] double EndAngle, // Ending angle in radians.
  7792.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7793.         );
  7794.  
  7795.         /**
  7796.          * Creates and adds an elliptical arc to the collection.
  7797.          *
  7798.          * @see TCADAPI TCWArcRotatedElliptical function
  7799.          */
  7800.     [
  7801.          helpcontext(0x10050053)
  7802.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  7803.     ]
  7804.     HRESULT  AddArcRotatedElliptical(
  7805.         [in] double X0, // X coordinate of elliptical arc's center point.
  7806.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  7807.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  7808.         [in] double X1, // X coordinate of major axis radius point.
  7809.         [in] double Y1, // Y coordinate of major axis radius point.
  7810.         [in] double Z1, // Z coordinate of major axis radius point.
  7811.         [in] double X2, // X coordinate of minor axis radius point.
  7812.         [in] double Y2, // Y coordinate of minor axis radius point.
  7813.         [in] double Z2, // Z coordinate of minor axis radius point.
  7814.         [in] double StartAngle, // Starting angle in radians.
  7815.         [in] double EndAngle, // Ending angle in radians.
  7816.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7817.         );
  7818.  
  7819.         /**
  7820.          * Creates and adds an elliptical arc to the collection.
  7821.          *
  7822.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  7823.          */
  7824.     [
  7825.          helpcontext(0x10050054)
  7826.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  7827.     ]
  7828.     HRESULT  AddArcEllipticalFixedRatio(
  7829.         [in] double X0, // X coordinate of ellipse's center point.
  7830.         [in] double Y0, // Y coordinate of ellipse's center point.
  7831.         [in] double Z0, // Z coordinate of ellipse's center point.
  7832.         [in] double X1, // X coordinate of radius in Y direction.
  7833.         [in] double Y1, // Y coordinate of radius in Y direction.
  7834.         [in] double Z1, // Z coordinate of radius in Y direction.
  7835.         [in] double XToYRatio, // Ratio of Rx to Ry.
  7836.         [in] double StartAngle, // Starting angle in radians.
  7837.         [in] double EndAngle, // Ending angle in radians.
  7838.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7839.         );
  7840.  
  7841.         /**
  7842.          * Creates and adds a text Graphic object to the collection.
  7843.          *
  7844.          * @see TCADAPI TCWText function
  7845.          */
  7846.     [
  7847.          helpcontext(0x10050055)
  7848.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  7849.     ]
  7850.     HRESULT  AddText(
  7851.         [in] BSTR Text, // The text string.
  7852.         [in] double X0, // X coordinate of text's starting point.
  7853.         [in] double Y0, // Y coordinate of text's starting point.
  7854.         [in] double Z0, // Z coordinate of text's starting point.
  7855.         [in] double Height, // Height of text object.
  7856.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  7857.         [in, optional] VARIANT* Width, // Width of text object.
  7858.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  7859.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  7860.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7861.         );
  7862.  
  7863.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  7864.  
  7865.         /**
  7866.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  7867.          *
  7868.          * @see TCADAPI TCWBlockCreate function
  7869.          */
  7870.     [
  7871.          helpcontext(0x10050056)
  7872.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  7873.         ,restricted, hidden
  7874.     ]
  7875.     HRESULT  CreateBlock(
  7876.         [in, optional] BSTR Name, // Name for the new block.
  7877.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  7878.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  7879.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  7880.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  7881.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  7882.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  7883.         [out, retval] Block** prop // The newly created block.
  7884.         );
  7885.  
  7886.         /**
  7887.          * Adds a block insertion to the collection.
  7888.          *
  7889.          * @see TCADAPI TCWBlockInsert function
  7890.          */
  7891.     [
  7892.          helpcontext(0x10050057)
  7893.         ,helpstring("Adds a block insertion to the collection.")
  7894.         ,restricted, hidden
  7895.     ]
  7896.     HRESULT  AddBlockInsertion(
  7897.         [in] VARIANT* Block, // BlockObj or index of the block.
  7898.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  7899.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  7900.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  7901.         [in, optional] VARIANT* XScale, // X scale factor.
  7902.         [in, optional] VARIANT* YScale, // Y scale factor.
  7903.         [in, optional] VARIANT* ZScale, // Z scale factor.
  7904.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  7905.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7906.         );
  7907.  
  7908.         /**
  7909.          * Adds a group to the collection from the Graphic objects in the collection.
  7910.          *
  7911.          * @see TCADAPI TCWGroupCreate function
  7912.          */
  7913.     [
  7914.          helpcontext(0x10050058)
  7915.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  7916.         ,restricted, hidden
  7917.     ]
  7918.     HRESULT  AddGroup(
  7919.         [in, optional] VARIANT* Name, // Name for the new group.
  7920.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  7921.         [out, retval] IGraphic** prop // The newly created Graphic object.
  7922.         );
  7923.  
  7924.         /**
  7925.          * Explodes groups and block insertions in the collection.
  7926.          *
  7927.          * @see TCADAPI TCWExplode function
  7928.          */
  7929.     [
  7930.          helpcontext(0x10050059)
  7931.         ,helpstring("Explodes groups and block insertions in the collection.")
  7932.         ,restricted, hidden
  7933.     ]
  7934.     HRESULT  Explode(
  7935.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  7936.         );
  7937.  
  7938.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  7939.  
  7940.         /**
  7941.          * Copies the Graphic objects in the collection along a line.
  7942.          */
  7943.     [
  7944.          helpcontext(0x1005005A)
  7945.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  7946.         ,restricted, hidden
  7947.     ]
  7948.     HRESULT  LinearCopyAbsolute(
  7949.         [in] double X, // X coordinate to copy to.
  7950.         [in] double Y, // Y coordinate to copy to.
  7951.         [in] double Z, // Z coordinate to copy to.
  7952.         [in] long Copies, // Number of copies including the original.
  7953.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  7954.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  7955.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  7956.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  7957.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  7958.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  7959.         );
  7960.  
  7961.         /**
  7962.          * Copies the Graphic objects in the collection along a line.
  7963.          */
  7964.     [
  7965.          helpcontext(0x1005005B)
  7966.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  7967.         ,restricted, hidden
  7968.     ]
  7969.     HRESULT  LinearCopyRelative(
  7970.         [in] double X, // X offset.
  7971.         [in] double Y, // Y offset.
  7972.         [in] double Z, // Z offset.
  7973.         [in] long Copies, // Number of copies including the original.
  7974.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  7975.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  7976.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  7977.         );
  7978.  
  7979.         /**
  7980.          * Copies the Graphic objects in the collection along a line.
  7981.          */
  7982.     [
  7983.          helpcontext(0x1005005C)
  7984.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  7985.         ,restricted, hidden
  7986.     ]
  7987.     HRESULT  LinearCopyAngle(
  7988.         [in] double Length, // Length of copy.
  7989.         [in] double Angle, // Angle of copy in radians.
  7990.         [in] long Copies, // Number of copies including the original.
  7991.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  7992.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  7993.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  7994.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  7995.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  7996.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  7997.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  7998.         );
  7999.  
  8000.         /**
  8001.          * Copies the Graphic objects in the collection radially.
  8002.          * Always rotates in the currently active workplane?
  8003.          */
  8004.     [
  8005.          helpcontext(0x1005005D)
  8006.         ,helpstring("Copies the Graphic objects in the collection radially.")
  8007.         ,restricted, hidden
  8008.     ]
  8009.     HRESULT  RadialCopyAbsolute(
  8010.         [in] double X0, // X coordinate of center of arc.
  8011.         [in] double Y0, // Y coordinate of center of arc.
  8012.         [in] double Z0, // Z coordinate of center of arc.
  8013.         [in] double X1, // X coordinate of point on arc.
  8014.         [in] double Y1, // Y coordinate of point on arc.
  8015.         [in] double Z1, // Z coordinate of point on arc.
  8016.         [in] long Copies, // Number of copies including the original.
  8017.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  8018.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8019.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8020.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8021.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8022.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8023.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8024.         );
  8025.  
  8026.         /**
  8027.          * Copies the Graphic objects in the collection radially.
  8028.          * Always rotates in the currently active workplane?
  8029.          */
  8030.     [
  8031.          helpcontext(0x1005005E)
  8032.         ,helpstring("Copies the Graphic objects in the collection radially.")
  8033.         ,restricted, hidden
  8034.     ]
  8035.     HRESULT  RadialCopyAngle(
  8036.         [in] double X, // X coordinate of center of arc.
  8037.         [in] double Y, // Y coordinate of center of arc.
  8038.         [in] double Z, // Z coordinate of center of arc.
  8039.         [in] double Angle, // Angle between copies or for last copy.
  8040.         [in] double RotationAngle, // Angle to rotate each copy.
  8041.         [in] long Copies, // Number of copies including the original.
  8042.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  8043.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8044.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8045.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8046.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8047.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8048.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8049.         );
  8050.  
  8051.         /**
  8052.          * Copies the Graphic objects in a two dimensional array.
  8053.          * Always translates in the currently active workplane?
  8054.          */
  8055.     [
  8056.          helpcontext(0x1005005F)
  8057.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  8058.         ,restricted, hidden
  8059.     ]
  8060.     HRESULT  ArrayCopyAbsolute(
  8061.         [in] double X, // Coordinate defining row and column spacing.
  8062.         [in] double Y, // Coordinate defining row and column spacing.
  8063.         [in] double Z, // Coordinate defining row and column spacing.
  8064.         [in] long Rows, // Number of rows including the original.
  8065.         [in] long Columns, // Number of columns including the original.
  8066.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  8067.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8068.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8069.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8070.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8071.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8072.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8073.         );
  8074.  
  8075.         /**
  8076.          * Copies the Graphic objects in a two dimensional array.
  8077.          * Always translates in the currently active workplane?
  8078.          */
  8079.     [
  8080.          helpcontext(0x10050060)
  8081.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  8082.         ,restricted, hidden
  8083.     ]
  8084.     HRESULT  ArrayCopyRelative(
  8085.         [in] double U, // Column offset.
  8086.         [in] double V, // Row offset.
  8087.         [in] long Rows, // Number of rows including the original.
  8088.         [in] long Columns, // Number of columns including the original.
  8089.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  8090.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8091.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8092.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  8093.         );
  8094.  
  8095.         /**
  8096.          * Mirrors the Graphic objects in the collection about a line.
  8097.          */
  8098.     [
  8099.          helpcontext(0x10050061)
  8100.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  8101.         ,restricted, hidden
  8102.     ]
  8103.     HRESULT  MirrorCopyLine(
  8104.         [in] double X0, // X coordinate of the first point on line.
  8105.         [in] double Y0, // Y coordinate of the first point on line.
  8106.         [in] double Z0, // Z coordinate of the first point on line.
  8107.         [in] double X1, // X coordinate of the second point on line.
  8108.         [in] double Y1, // Y coordinate of the second point on line.
  8109.         [in] double Z1, // Z coordinate of the second point on line.
  8110.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  8111.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8112.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8113.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  8114.         );
  8115.  
  8116.         /**
  8117.          * Mirrors the Graphic objects in the collection about an angle.
  8118.          */
  8119.     [
  8120.          helpcontext(0x10050062)
  8121.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  8122.         ,restricted, hidden
  8123.     ]
  8124.     HRESULT  MirrorCopyAngle(
  8125.         [in] double X, // X coordinate to mirror to.
  8126.         [in] double Y, // Y coordinate to mirror to.
  8127.         [in] double Z, // Z coordinate to mirror to.
  8128.         [in] double Angle, // Angle of mirror.
  8129.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  8130.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8131.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8132.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8133.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  8134.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  8135.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  8136.         );
  8137.  
  8138.         /**
  8139.          * Scales the Graphic objects in the collection.
  8140.          *
  8141.          * @see TCADAPI TCWSelectionScale function.
  8142.          */
  8143.     [
  8144.          helpcontext(0x10050063)
  8145.         ,helpstring("Scales the Graphic objects in the collection.")
  8146.         ,restricted, hidden
  8147.     ]
  8148.     HRESULT  Scale(
  8149.         [in] double XScale, // X scale factor.
  8150.         [in] double YScale, // Y scale factor.
  8151.         [in] double ZScale, // Z scale factor.
  8152.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8153.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8154.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8155.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8156.         );
  8157.  
  8158.         /**
  8159.          * Rotates the Graphic objects in the collection.
  8160.          *
  8161.          * @see TCADAPI TCWSelectionRotate function.
  8162.          */
  8163.     [
  8164.          helpcontext(0x10050064)
  8165.         ,helpstring("Rotates the Graphic objects in the collection.")
  8166.         ,restricted, hidden
  8167.     ]
  8168.     HRESULT  RotateAxis(
  8169.         [in] double Angle, // Angle of rotation in radians.
  8170.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  8171.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  8172.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  8173.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  8174.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  8175.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  8176.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8177.         );
  8178.  
  8179.         /**
  8180.          * Rotates the Graphic objects in the collection.
  8181.          *
  8182.          * @see TCADAPI TCWSelectionRotate function.
  8183.          */
  8184.     [
  8185.          helpcontext(0x10050065)
  8186.         ,helpstring("Rotates the Graphic objects in the collection.")
  8187.         ,restricted, hidden
  8188.     ]
  8189.     HRESULT  RotateAbsolute(
  8190.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  8191.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  8192.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  8193.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  8194.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  8195.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  8196.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  8197.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  8198.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  8199.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8200.         );
  8201.  
  8202.         /**
  8203.          * Moves the Graphic objects in the collection to a new location.
  8204.          *
  8205.          * @see TCADAPI TCWSelectionMove function.
  8206.          */
  8207.     [
  8208.          helpcontext(0x10050066)
  8209.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  8210.         ,restricted, hidden
  8211.     ]
  8212.     HRESULT  MoveAbsolute(
  8213.         [in] double X, // X coordinate to move to.
  8214.         [in] double Y, // Y coordinate to move to.
  8215.         [in] double Z, // Z coordinate to move to.
  8216.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  8217.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  8218.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  8219.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8220.         );
  8221.  
  8222.         /**
  8223.          * Moves the Graphic objects in the collection by a specified offset.
  8224.          *
  8225.          * @see TCADAPI TCWSelectionMove function.
  8226.          */
  8227.     [
  8228.          helpcontext(0x10050067)
  8229.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  8230.         ,restricted, hidden
  8231.     ]
  8232.     HRESULT  MoveRelative(
  8233.         [in] double X, // X offset.
  8234.         [in] double Y, // Y offset.
  8235.         [in] double Z, // Z offset.
  8236.         [out, retval] IMatrix** prop // The matrix that was calculated.
  8237.         );
  8238.  
  8239.         /**
  8240.          * Transforms the Graphic objects in the collection.
  8241.          */
  8242.     [
  8243.          helpcontext(0x10050068)
  8244.         ,helpstring("Transforms the Graphic object.")
  8245.         ,restricted, hidden
  8246.     ]
  8247.     HRESULT  Transform(
  8248.         [in] IMatrix* Transform // The matrix to perform transformation.
  8249.         );
  8250.  
  8251.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  8252.  
  8253.         /**
  8254.          * Aligns the Graphic objects in the collection.
  8255.          *
  8256.          * @see TCADAPI TCWAlignXXX functions.
  8257.          */
  8258.     [
  8259.          helpcontext(0x10050069)
  8260.         ,helpstring("Aligns the Graphic objects in the collection.")
  8261.         ,restricted, hidden
  8262.     ]
  8263.     HRESULT  Align(
  8264.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  8265.         );
  8266.  
  8267.         /**
  8268.          * Aligns the Graphic objects in the collection along a line.
  8269.          */
  8270.     [
  8271.          helpcontext(0x1005006A)
  8272.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  8273.         ,restricted, hidden
  8274.     ]
  8275.     HRESULT  AlignAlongLine(
  8276.         [in] double X0, // X coordinate of the first point.
  8277.         [in] double Y0, // Y coordinate of the first point.
  8278.         [in] double Z0, // Z coordinate of the first point.
  8279.         [in] double X1, // X coordinate of the second point.
  8280.         [in] double Y1, // Y coordinate of the second point.
  8281.         [in] double Z1 // Z coordinate of the second point.
  8282.         );
  8283.  
  8284.         /**
  8285.          * Returns the index within the Graphics collection of the specified graphic handle.
  8286.          * Private.
  8287.          */
  8288.         [
  8289.              restricted
  8290.             ,helpcontext(0x1005006B)
  8291.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  8292.         ]
  8293.         HRESULT  _FindIndex(
  8294.             [in] long g, // The graphic handle.
  8295.             [out, retval] long* prop // The index.
  8296.             );
  8297.  
  8298.         /**
  8299.          * Returns the Graphic objects in the collection that match a query string.
  8300.          *
  8301.          * @see TCADAPI TCWSelectByQuery function.
  8302.          */
  8303.         [
  8304.              helpcontext(0x1005006C)
  8305.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  8306.         ]
  8307.         HRESULT  QuerySet(
  8308.             [in] BSTR Query, // The query string.
  8309.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  8310.             );
  8311.  
  8312.         /**
  8313.          * Creates and adds a group of polylines or polygons to the collection.
  8314.          */
  8315.     [
  8316.          helpcontext(0x1005006D)
  8317.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  8318.         ,restricted, hidden
  8319.     ]
  8320.     HRESULT  AddPolys(
  8321.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  8322.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  8323.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  8324.         );
  8325.  
  8326.         /**
  8327.          * Generates a bounding polygon array to use in drag operations.
  8328.          *
  8329.          * @see View::DragOutline
  8330.          */
  8331.     [
  8332.          helpcontext(0x1005006E)
  8333.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  8334.         ,restricted, hidden
  8335.     ]
  8336.     HRESULT  CreateDragOutline(
  8337.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  8338.         );
  8339.  
  8340.         /**
  8341.          * Creates and adds a bunch of polylines to the collection.
  8342.          * The returned Graphics object contains a set with freshly created
  8343.          * polygons. The user can set properties, etc.
  8344.          */
  8345.     [
  8346.          helpcontext(0x1005006F)
  8347.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  8348.         ,restricted, hidden
  8349.     ]
  8350.     HRESULT  AddPolylines(
  8351.         [in] long NumberOfPolylines, // number of polylines to create
  8352.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  8353.         [in] IMSI_BOOL closed, // whether each polyline is closed
  8354.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  8355.         );
  8356.  
  8357.         /**
  8358.          * Finds the Graphic object in the collection with the given ID.
  8359.          */
  8360.     [
  8361.          helpcontext(0x10050070)
  8362.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  8363.     ]
  8364.     HRESULT  GraphicFromID(
  8365.         [in] long ID, // ID of Graphic object.
  8366.         [out, retval] IGraphic** prop // The Graphic object.
  8367.         );
  8368.  
  8369.         /**
  8370.          * Creates and adds an attribute definition Graphic object to the collection.  
  8371.          */
  8372.     [
  8373.          helpcontext(0x10050071)
  8374.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  8375.     ]
  8376.     HRESULT  AddAttributeDefinition(
  8377.         [in] BSTR Tag, // The text string for the attribute definition tag.
  8378.         [in] double X0, // X coordinate of attdef's starting point.
  8379.         [in] double Y0, // Y coordinate of attdef's starting point.
  8380.         [in] double Z0, // Z coordinate of attdef's starting point.
  8381.         [in] double Height, // Height of attdef object.
  8382.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  8383.         [in, optional] VARIANT* Width, // Width of attdef object.
  8384.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  8385.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  8386.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  8387.         [in, optional] VARIANT* Default, // Default value of attribute.
  8388.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  8389.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8390.         );
  8391.  
  8392.         /////////////////////////////////////////////////////////////////////////////
  8393.         // Layer methods
  8394.  
  8395.         /**
  8396.          * Returns the Layer object's brush style.
  8397.          */
  8398.         [
  8399.              propget
  8400.             ,helpcontext(0x10050072)
  8401.             ,helpstring("Returns the Layer object's brush style.")
  8402.         ]
  8403.         HRESULT  BrushStyle(
  8404.             [out, retval] BrushStyle** prop // The BrushStyle object.
  8405.             );
  8406.  
  8407.         /**
  8408.          * Sets the Layer object's brush style.
  8409.          */
  8410.         [
  8411.              propput
  8412.             ,helpcontext(0x10050072)
  8413.             ,helpstring("Sets the Layer object's brush style.")
  8414.         ]
  8415.         HRESULT  BrushStyle(
  8416.             [in] VARIANT* prop // The BrushStyle object name or object.
  8417.             );
  8418.  
  8419.         /**
  8420.          * Returns the color for the Layer object.
  8421.          */
  8422.         [
  8423.              propget
  8424.             ,helpcontext(0x10050073)
  8425.             ,helpstring("Returns the color for the Layer object.")
  8426.         ]
  8427.         HRESULT  Color(
  8428.             [out, retval] IMSI_COLOR* prop // The color.
  8429.             );
  8430.  
  8431.         /**
  8432.          * Sets the color for the Layer object.
  8433.          */
  8434.         [
  8435.              propput
  8436.             ,helpcontext(0x10050073)
  8437.             ,helpstring("Sets the color for the Layer object.")
  8438.         ]
  8439.         HRESULT  Color(
  8440.             [in] IMSI_COLOR prop // The color.
  8441.             );
  8442.  
  8443.         /**
  8444.          * True if Graphic objects on the Layer object can be edited.
  8445.          */
  8446.         [
  8447.              propget
  8448.             ,helpcontext(0x10050074)
  8449.             ,helpstring("True if Graphic objects on the Layer object can be edited.")
  8450.         ]
  8451.         HRESULT  Editable(
  8452.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object can be edited.
  8453.             );
  8454.  
  8455.         /**
  8456.          * True if Graphic objects on the Layer object can be edited.
  8457.          */
  8458.         [
  8459.              propput
  8460.             ,helpcontext(0x10050074)
  8461.             ,helpstring("True if Graphic objects on the Layer object can be edited.")
  8462.         ]
  8463.         HRESULT  Editable(
  8464.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object can be edited.
  8465.             );
  8466.  
  8467.         /**
  8468.          * True if Graphic objects on the Layer object cannot be edited or selected.
  8469.          */
  8470.         [
  8471.              propget
  8472.             ,helpcontext(0x10050075)
  8473.             ,helpstring("True if Graphic objects on the Layer object cannot be edited or selected.")
  8474.         ]
  8475.         HRESULT  Frozen(
  8476.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object cannot be edited or selected.
  8477.             );
  8478.  
  8479.         /**
  8480.          * True if Graphic objects on the Layer object cannot be edited or selected.
  8481.          */
  8482.         [
  8483.              propput
  8484.             ,helpcontext(0x10050075)
  8485.             ,helpstring("True if Graphic objects on the Layer object cannot be edited or selected.")
  8486.         ]
  8487.         HRESULT  Frozen(
  8488.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object cannot be edited or selected.
  8489.             );
  8490.  
  8491.         /**
  8492.          * Returns the index of the item in the collection.
  8493.          */
  8494.         [
  8495.              propget
  8496.             ,helpcontext(0x10050076)
  8497.             ,helpstring("Returns the index of the item in the collection.")
  8498.         ]
  8499.         HRESULT  Index(
  8500.             [out, retval] long* prop // The index.
  8501.             );
  8502.  
  8503.         /**
  8504.          * Returns the Layer object's LineStyle object.
  8505.          */
  8506.         [
  8507.              propget
  8508.             ,helpcontext(0x10050077)
  8509.             ,helpstring("Returns the Layer object's LineStyle object.")
  8510.         ]
  8511.         HRESULT  LineStyle(
  8512.             [out, retval] LineStyle** prop // The LineStyle object.
  8513.             );
  8514.  
  8515.         /**
  8516.          * Sets the Layer object's LineStyle object.
  8517.          */
  8518.         [
  8519.              propput
  8520.             ,helpcontext(0x10050077)
  8521.             ,helpstring("Sets the Layer object's LineStyle object.")
  8522.         ]
  8523.         HRESULT  LineStyle(
  8524.             [in] VARIANT* prop // The LineStyle object name or object.
  8525.             );
  8526.  
  8527.         /**
  8528.          * Returns the name of the object, as a string.
  8529.          */
  8530.         [
  8531.              propget
  8532.             ,helpcontext(0x10050078)
  8533.             ,helpstring("Returns the name of the object, as a string.")
  8534.         ]
  8535.         HRESULT  Name(
  8536.             [out, retval] BSTR* prop // The name of the object.
  8537.             );
  8538.  
  8539.         /**
  8540.          * Sets the Layer object's name.
  8541.          */
  8542.         [
  8543.              propput
  8544.             ,helpcontext(0x10050078)
  8545.             ,helpstring("Sets the Layer object's name.")
  8546.         ]
  8547.         HRESULT  Name(
  8548.             [in] BSTR prop // The name.
  8549.             );
  8550.  
  8551.         /**
  8552.          * Returns the Layer object's Properties collection.
  8553.          */
  8554.         [
  8555.              propget
  8556.             ,helpcontext(0x10050079)
  8557.             ,helpstring("Returns the Layer object's Properties collection.")
  8558.             ,restricted, hidden
  8559.         ]
  8560.         HRESULT  Properties(
  8561.             [out, retval] Properties** prop // The Properties collection.
  8562.             );
  8563.  
  8564.         /**
  8565.          * Returns the Layer object's graphic style.
  8566.          */
  8567.         [
  8568.              propget
  8569.             ,helpcontext(0x1005007A)
  8570.             ,helpstring("Returns the Layer object's graphic style.")
  8571.             ,restricted, hidden
  8572.         ]
  8573.         HRESULT  Style(
  8574.             [out, retval] Style** prop // The Style object.
  8575.             );
  8576.  
  8577.         /**
  8578.          * Sets the Layer object's graphic style.
  8579.          */
  8580.         [
  8581.              propput
  8582.             ,helpcontext(0x1005007A)
  8583.             ,helpstring("Sets the Layer object's graphic style.")
  8584.             ,restricted, hidden
  8585.         ]
  8586.         HRESULT  Style(
  8587.             [in] VARIANT* prop // The Style object name or object.
  8588.             );
  8589.  
  8590.         /**
  8591.          * True if Graphic objects on the Layer object can be displayed.
  8592.          */
  8593.         [
  8594.              propget
  8595.             ,helpcontext(0x1005007B)
  8596.             ,helpstring("True if Graphic objects on the Layer object can be displayed.")
  8597.         ]
  8598.         HRESULT  Visible(
  8599.             [out, retval] IMSI_BOOL* prop // True if Graphic objects on the Layer object can be displayed.
  8600.             );
  8601.  
  8602.         /**
  8603.          * True if Graphic objects on the Layer object can be displayed.
  8604.          */
  8605.         [
  8606.              propput
  8607.             ,helpcontext(0x1005007B)
  8608.             ,helpstring("True if Graphic objects on the Layer object can be displayed.")
  8609.         ]
  8610.         HRESULT  Visible(
  8611.             [in] IMSI_BOOL prop // True if Graphic objects on the Layer object can be displayed.
  8612.             );
  8613.  
  8614.         /**
  8615.          * Returns the Layer object's redraw order.
  8616.          */
  8617.         [
  8618.              propget
  8619.             ,helpcontext(0x1005007C)
  8620.             ,helpstring("Returns the Layer object's redraw order.")
  8621.         ]
  8622.         HRESULT  ZOrder(
  8623.             [out, retval] long* prop // The redraw order.
  8624.             );
  8625.  
  8626.         /**
  8627.          * Sets the Layer object's redraw order.
  8628.          */
  8629.         [
  8630.              propput
  8631.             ,helpcontext(0x1005007C)
  8632.             ,helpstring("Sets the Layer object's redraw order.")
  8633.         ]
  8634.         HRESULT  ZOrder(
  8635.             [in] long prop // The redraw order.
  8636.             );
  8637.  
  8638.         /**
  8639.          * Returns the internal table entry ID.
  8640.          * Private.
  8641.          */
  8642.         [
  8643.              propget
  8644.             ,restricted
  8645.             ,helpcontext(0x1005007D)
  8646.             ,helpstring("Private.  Returns the internal table entry ID.")
  8647.         ]
  8648.         HRESULT  _TableEntryID(
  8649.             [out, retval] long* prop // The table entry ID.
  8650.             );
  8651.  
  8652.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8653.  
  8654.         /**
  8655.          * Deletes the object.
  8656.          */
  8657.         [
  8658.              helpcontext(0x1005007E)
  8659.             ,helpstring("Deletes the object.")
  8660.         ]
  8661.         HRESULT  Delete(
  8662.             );
  8663.  
  8664.         /**
  8665.          * Duplicates the object and returns a reference to the new copy.
  8666.          */
  8667.         [
  8668.              helpcontext(0x1005007F)
  8669.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  8670.             ,restricted, hidden
  8671.         ]
  8672.         HRESULT  Duplicate(
  8673.             [in] BSTR Name, // The name for the new Layer object.
  8674.             [out, retval] Layer** prop // The duplicated Layer object.
  8675.             );
  8676.     };
  8677.  
  8678.  
  8679.     /**
  8680.      * The collection of Graphic objects that represents the selection of a Drawing object.
  8681.      */
  8682.     [
  8683.          object
  8684.         ,uuid(6A48110B-E531-11CF-A115-00A024158DAF)
  8685.         ,oleautomation
  8686.         ,dual
  8687.         ,helpcontext(0x10060000)
  8688.         ,helpstring("The selection object.")
  8689.     ]
  8690.     interface Selection : IDispatch
  8691.     {
  8692.  
  8693.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8694.  
  8695.         /**
  8696.          * Returns an Application object that represents the owner of the specified object.
  8697.          */
  8698.         [
  8699.              propget
  8700.             ,helpcontext(0x10060001)
  8701.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  8702.         ]
  8703.         HRESULT  Application(
  8704.             [out, retval] IApplication** prop // The Application object.
  8705.             );
  8706.  
  8707.         /**
  8708.          * Returns the number of items in the collection.
  8709.          */
  8710.         [
  8711.              propget
  8712.             ,helpcontext(0x10060002)
  8713.             ,helpstring("Returns the number of items in the collection.")
  8714.         ]
  8715.         HRESULT  Count(
  8716.             [out, retval] long* prop // The number of items.
  8717.             );
  8718.  
  8719.         /**
  8720.          * Returns the Drawing object that owns the object.
  8721.          */
  8722.         [
  8723.              propget
  8724.             ,helpcontext(0x10060003)
  8725.             ,helpstring("Returns the Drawing object that owns the object.")
  8726.         ]
  8727.         HRESULT  Drawing(
  8728.             [out, retval] IDrawing** prop // The Drawing object.
  8729.             );
  8730.  
  8731.         /**
  8732.          * Returns part of a collection.
  8733.          */
  8734.         [
  8735.              propget
  8736.             ,id(DISPID_VALUE)
  8737.             ,helpcontext(0x10060004)
  8738.             ,helpstring("Returns part of a collection.")
  8739.         ]
  8740.         HRESULT  Item(
  8741.             [in] VARIANT* Index, // Index of item to return.
  8742.             [out, retval] IGraphic** prop // The item.
  8743.             );
  8744.  
  8745.         /**
  8746.          * Returns the parent object for the specified object.
  8747.          */
  8748.         [
  8749.              propget
  8750.             ,helpcontext(0x10060005)
  8751.             ,helpstring("Returns the parent object for the specified object.")
  8752.         ]
  8753.         HRESULT  Parent(
  8754.             [out, retval] IDispatch** prop // The parent object.
  8755.             );
  8756.  
  8757.         /**
  8758.          * Creates an enumeration object.
  8759.          */
  8760.         [
  8761.              propget
  8762.             ,restricted
  8763.             ,id(DISPID_NEWENUM)
  8764.             ,helpcontext(0x10060006)
  8765.             ,helpstring("Private.  Creates an enumeration object.")
  8766.         ]
  8767.         HRESULT  _NewEnum(
  8768.             [out, retval] IUnknown** prop // The enumeration object.
  8769.             );
  8770.  
  8771.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  8772.  
  8773. #ifndef METHOD_OVERFLOW_BUG
  8774.  
  8775.         /**
  8776.          * Applies a Style object to the contents of the collection.
  8777.          */
  8778.         [
  8779.              helpcontext(0x10060007)
  8780.             ,helpstring("Applies a Style object to the contents of the collection.")
  8781.             ,restricted, hidden
  8782.         ]
  8783.         HRESULT  ApplyStyle(
  8784.             [in] Style* StyleToApply // The Style object to apply.
  8785.             );
  8786.  
  8787.         /**
  8788.          * Checks the spelling of all the text Graphic object's in the collection.
  8789.          */
  8790.         [
  8791.              helpcontext(0x10060008)
  8792.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  8793.             ,restricted, hidden
  8794.         ]
  8795.         HRESULT  CheckSpelling(
  8796.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  8797.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  8798.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  8799.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  8800.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  8801.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  8802.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  8803.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  8804.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  8805.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  8806.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  8807.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  8808.         );
  8809.  
  8810.         /**
  8811.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  8812.          *
  8813.          * @see TCADAPI TCWCreateHatch function
  8814.          */
  8815.     [
  8816.          helpcontext(0x10060009)
  8817.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  8818.         ,restricted, hidden
  8819.     ]
  8820.     HRESULT  AddHatch(
  8821.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8822.         );
  8823.  
  8824.         /**
  8825.          * Creates a Style object based on the contents of the collection.
  8826.          */
  8827.         [
  8828.              helpcontext(0x1006000A)
  8829.             ,helpstring("Creates a Style object based on the contents of the collection.")
  8830.             ,restricted, hidden
  8831.         ]
  8832.         HRESULT  CreateStyle(
  8833.             [in] Style* BasedOn, // The style to base the new Style object on.
  8834.             [out, retval] Style** prop // The newly created Style object.
  8835.             );
  8836.  
  8837.         /**
  8838.          * Creates and adds an OLE object to the collection.
  8839.          */
  8840.         [
  8841.              helpcontext(0x1006000B)
  8842.             ,helpstring("Creates and adds an OLE object to the collection.")
  8843.             ,restricted, hidden
  8844.         ]
  8845.         HRESULT  AddObject(
  8846.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  8847.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  8848.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  8849.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  8850.             [in, optional] VARIANT* IconFileName, // File containing icon.
  8851.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  8852.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  8853.             [in, optional] VARIANT* X, // X coordinate of center of object.
  8854.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  8855.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  8856.             [in, optional] VARIANT* Width, // Width of object.
  8857.             [in, optional] VARIANT* Height, // Height of object.
  8858.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  8859.             [out, retval] IGraphic** prop // The newly created Graphic object.
  8860.             );
  8861.  
  8862.         /**
  8863.          * Creates and adds a single line segment to the collection.
  8864.          */
  8865.     [
  8866.          helpcontext(0x1006000C)
  8867.         ,helpstring("Creates and adds a single line segment to the collection.")
  8868.         ,restricted, hidden
  8869.     ]
  8870.     HRESULT  AddLineTanArcPoint(
  8871.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  8872.         [in] double X0, // X coordinate on arc for line endpoint.
  8873.         [in] double Y0, // Y coordinate on arc for line endpoint.
  8874.         [in] double Z0, // Z coordinate on arc for line endpoint.
  8875.         [in] double length, // length of tangent line.
  8876.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8877.         );
  8878.  
  8879.         /**
  8880.          * Creates and adds a single line segment to the collection.
  8881.          */
  8882.     [
  8883.          helpcontext(0x1006000D)
  8884.         ,helpstring("Creates and adds a single line segment to the collection.")
  8885.         ,restricted, hidden
  8886.     ]
  8887.     HRESULT  AddLineTanToArc(
  8888.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  8889.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  8890.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  8891.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  8892.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8893.         );
  8894.  
  8895.         /**
  8896.          * Creates and adds a single line segment to the collection.
  8897.          */
  8898.     [
  8899.          helpcontext(0x1006000E)
  8900.         ,helpstring("Creates and adds a single line segment to the collection.")
  8901.             ,restricted, hidden
  8902.     ]
  8903.     HRESULT  AddLineTanFromArc(
  8904.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  8905.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  8906.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  8907.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  8908.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8909.         );
  8910.  
  8911.         /**
  8912.          * Creates and adds a single line segment to the collection.
  8913.          */
  8914.     [
  8915.          helpcontext(0x1006000F)
  8916.         ,helpstring("Creates and adds a single line segment to the collection.")
  8917.         ,restricted, hidden
  8918.     ]
  8919.     HRESULT  AddLineTan2Arcs(
  8920.         [in] IGraphic* Arc1, // First arc.
  8921.         [in] IGraphic* Arc2, // Second arc.
  8922.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  8923.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8924.         );
  8925.  
  8926.         /**
  8927.          * Creates and adds a multi segment leader (callout) line to the collection.
  8928.          * The returned Graphic object contains only a beginning vertex.  The user must
  8929.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  8930.          * and a Graphic.Finish call to complete the Graphic object.
  8931.          */
  8932.     [
  8933.          helpcontext(0x10060010)
  8934.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  8935.         ,restricted, hidden
  8936.     ]
  8937.     HRESULT  AddDimensionLeader(
  8938.         [in] double X0, // X coordinate of the first endpoint.
  8939.         [in] double Y0, // Y coordinate of the first endpoint.
  8940.         [in] double Z0, // Z coordinate of the first endpoint.
  8941.         [in, optional] BSTR Text, // The text for the leader.
  8942.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8943.         );
  8944.  
  8945.         /**
  8946.          * Creates and adds a baseline dimension to the collection.
  8947.          * The returned Graphic object contains only a beginning vertex.  The user must
  8948.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  8949.          * and a Graphic.Finish call to complete the Graphic object.
  8950.          */
  8951.     [
  8952.          helpcontext(0x10060011)
  8953.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  8954.         ,restricted, hidden
  8955.     ]
  8956.     HRESULT  AddDimensionBaseline(
  8957.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  8958.         [in] double X0, // X coordinate of second extension line.
  8959.         [in] double Y0, // Y coordinate of second extension line.
  8960.         [in] double Z0, // Z coordinate of second extension line.
  8961.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8962.         );
  8963.  
  8964.         /**
  8965.          * Creates and adds a continuous dimension to the collection.
  8966.          * The returned Graphic object contains only a beginning vertex.  The user must
  8967.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  8968.          * and a Graphic.Finish call to complete the Graphic object.
  8969.          */
  8970.     [
  8971.          helpcontext(0x10060012)
  8972.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  8973.         ,restricted, hidden
  8974.     ]
  8975.     HRESULT  AddDimensionContinuous(
  8976.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  8977.         [in] double X0, // X coordinate of second extension line.
  8978.         [in] double Y0, // Y coordinate of second extension line.
  8979.         [in] double Z0, // Z coordinate of second extension line.
  8980.         [out, retval] IGraphic** prop // The newly created Graphic object.
  8981.         );
  8982.  
  8983.         /**
  8984.          * Creates and adds a single segment double line to the collection.
  8985.          *
  8986.          * @see TCADAPI TCWDoubleLineSingle function
  8987.          */
  8988.     [
  8989.          helpcontext(0x10060013)
  8990.         ,helpstring("Creates and adds a single segment double line to the collection.")
  8991.         ,restricted, hidden
  8992.     ]
  8993.     HRESULT  AddDoubleLineSingle(
  8994.         [in] double X0, // X coordinate of the first point.
  8995.         [in] double Y0, // Y coordinate of the first point.
  8996.         [in] double Z0, // Z coordinate of the first point.
  8997.         [in] double X1, // X coordinate of the second point.
  8998.         [in] double Y1, // Y coordinate of the second point.
  8999.         [in] double Z1, // Z coordinate of the second point.
  9000.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9001.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9002.         );
  9003.  
  9004.         /**
  9005.          * Creates and adds a double regular polygon to the collection.
  9006.          *
  9007.          * @see TCADAPI TCWDoubleLinePolygon function
  9008.          */
  9009.     [
  9010.          helpcontext(0x10060014)
  9011.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  9012.         ,restricted, hidden
  9013.     ]
  9014.     HRESULT  AddDoubleLinePolygon(
  9015.         [in] double X0, // X coordinate of the center point.
  9016.         [in] double Y0, // Y coordinate of the center point.
  9017.         [in] double Z0, // Z coordinate of the center point.
  9018.         [in] double X1, // X coordinate of the corner point.
  9019.         [in] double Y1, // Y coordinate of the corner point.
  9020.         [in] double Z1, // Z coordinate of the corner point.
  9021.         [in] long Sides, // Number of sides.
  9022.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9023.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9024.         );
  9025.  
  9026.         /**
  9027.          * Creates and adds a double rectangle to the collection.
  9028.          *
  9029.          * @see TCADAPI TCWDoubleLineRectangle function
  9030.          */
  9031.     [
  9032.          helpcontext(0x10060015)
  9033.         ,helpstring("Creates and adds a double rectangle to the collection.")
  9034.         ,restricted, hidden
  9035.     ]
  9036.     HRESULT  AddDoubleLineRectangle(
  9037.         [in] double X0, // X coordinate of the upper left corner.
  9038.         [in] double Y0, // Y coordinate of the upper left corner.
  9039.         [in] double Z0, // Z coordinate of the upper left corner.
  9040.         [in] double X1, // X coordinate of the lower right corner.
  9041.         [in] double Y1, // Y coorindate of the lower right corner.
  9042.         [in] double Z1, // Z coorindate of the lower right corner.
  9043.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9044.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9045.         );
  9046.  
  9047.         /**
  9048.          * Creates and adds a double rotated rectangle to the collection.
  9049.          *
  9050.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  9051.          */
  9052.     [
  9053.          helpcontext(0x10060016)
  9054.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  9055.         ,restricted, hidden
  9056.     ]
  9057.     HRESULT  AddDoubleLineRotatedRectangle(
  9058.         [in] double X0, // X coordinate of the upper left corner.
  9059.         [in] double Y0, // Y coordinate of the upper left corner.
  9060.         [in] double Z0, // Z coordinate of the upper left corner.
  9061.         [in] double X1, // X coordinate of the lower right corner.
  9062.         [in] double Y1, // Y coorindate of the lower right corner.
  9063.         [in] double Z1, // Z coorindate of the lower right corner.
  9064.         [in] double Angle, // Angle of rotation in radians.
  9065.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9066.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9067.         );
  9068.  
  9069.         /**
  9070.          * Creates and adds a double line to the collection.
  9071.          *
  9072.          * @see TCADAPI TCWDoubleLinePerpendicular function
  9073.          */
  9074.     [
  9075.          helpcontext(0x10060017)
  9076.         ,helpstring("Creates and adds a double line to the collection.")
  9077.         ,restricted, hidden
  9078.     ]
  9079.     HRESULT  AddDoubleLinePerpendicular(
  9080.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  9081.         [in] double X0, // X coordinate of the point on the existing line.
  9082.         [in] double Y0, // Y coordinate of the point on the existing line.
  9083.         [in] double Z0, // Z coordinate of the point on the existing line.
  9084.         [in] double X1, // X coordinate of the second point on the new line.
  9085.         [in] double Y1, // Y coordinate of the second point on the new line.
  9086.         [in] double Z1, // Z coordinate of the second point on the new line.
  9087.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9088.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9089.         );
  9090.  
  9091.         /**
  9092.          * Creates and adds a multiple segment double line to the collection.
  9093.          * The returned Graphic object contains only a beginning vertex.  The user must
  9094.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9095.          * and a Graphic.Finish call to complete the Graphic object.
  9096.          *
  9097.          * @see TCADAPI TCWDoubleLineMultiline function
  9098.          */
  9099.     [
  9100.          helpcontext(0x10060018)
  9101.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  9102.         ,restricted, hidden
  9103.     ]
  9104.     HRESULT  AddDoubleLineMultiline(
  9105.         [in] double X0, // X coordinate of first endpoint.
  9106.         [in] double Y0, // Y coordinate of first endpoint.
  9107.         [in] double Z0, // Z coordinate of first endpoint.
  9108.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9109.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9110.         );
  9111.  
  9112.         /**
  9113.          * Creates and adds a double irregular polygon to the collection.
  9114.          * The returned Graphic object contains only a beginning vertex.  The user must
  9115.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9116.          * and a Graphic.Close call to complete the Graphic object.
  9117.          *
  9118.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  9119.          */
  9120.     [
  9121.          helpcontext(0x10060019)
  9122.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  9123.         ,restricted, hidden
  9124.     ]
  9125.     HRESULT  AddDoubleLineIrregularPolygon(
  9126.         [in] double X0, // X coordinate of first endpoint.
  9127.         [in] double Y0, // Y coordinate of first endpoint.
  9128.         [in] double Z0, // Z coordinate of first endpoint.
  9129.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9130.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9131.         );
  9132.  
  9133.         /**
  9134.          * Creates and adds a double line to the collection.
  9135.          *
  9136.          * @see TCADAPI TCWDoubleLineParallel function
  9137.          */
  9138.     [
  9139.          helpcontext(0x1006001A)
  9140.         ,helpstring("Creates and adds a double line to the collection.")
  9141.         ,restricted, hidden
  9142.     ]
  9143.     HRESULT  AddDoubleLineParallel(
  9144.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  9145.         [in] double X0, // X coordinate of the new line.
  9146.         [in] double Y0, // Y coordinate of the new line.
  9147.         [in] double Z0, // Z coordinate of the new line.
  9148.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  9149.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9150.         );
  9151.  
  9152.         /**
  9153.          * Creates and adds a circle to the collection.
  9154.          */
  9155.     [
  9156.          helpcontext(0x1006001B)
  9157.         ,helpstring("Creates and adds a circle to the collection.")
  9158.         ,restricted, hidden
  9159.     ]
  9160.     HRESULT  AddCircleTanToArc(
  9161.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  9162.         [in] double X0, // X coordinate of the new circle's center point.
  9163.         [in] double Y0, // Y coordinate of the new circle's center point.
  9164.         [in] double Z0, // Z coordinate of the new circle's center point.
  9165.         [in] double X1, // X coordinate of the new circle's radius point.
  9166.         [in] double Y1, // Y coordinate of the new circle's radius point.
  9167.         [in] double Z1, // Z coordinate of the new circle's radius point.
  9168.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9169.         );
  9170.  
  9171.         /**
  9172.          * Creates and adds a circle to the collection.
  9173.          */
  9174.     [
  9175.          helpcontext(0x1006001C)
  9176.         ,helpstring("Creates and adds a circle to the collection.")
  9177.         ,restricted, hidden
  9178.     ]
  9179.     HRESULT  AddCircleTanToLine(
  9180.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  9181.         [in] double X0, // X coordinate of the new circle's center point.
  9182.         [in] double Y0, // Y coordinate of the new circle's center point.
  9183.         [in] double Z0, // Z coordinate of the new circle's center point.
  9184.         [in] double X1, // X coordinate of the new circle's radius point.
  9185.         [in] double Y1, // Y coordinate of the new circle's radius point.
  9186.         [in] double Z1, // Z coordinate of the new circle's radius point.
  9187.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9188.         );
  9189.  
  9190.         /**
  9191.          * Creates and adds a circle to the collection.
  9192.          */
  9193.     [
  9194.          helpcontext(0x1006001D)
  9195.         ,helpstring("Creates and adds a circle to the collection.")
  9196.         ,restricted, hidden
  9197.     ]
  9198.     HRESULT  AddCircleTan3Arcs(
  9199.         [in] IGraphic* Arc1, // First arc or circle.
  9200.         [in] IGraphic* Arc2, // Second arc or circle.
  9201.         [in] IGraphic* Arc3, // Third arc or circle.
  9202.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9203.         );
  9204.  
  9205.         /**
  9206.          * Creates and adds an arc to the collection.
  9207.          */
  9208.     [
  9209.          helpcontext(0x1006001E)
  9210.         ,helpstring("Creates and adds an arc to the collection.")
  9211.         ,restricted, hidden
  9212.     ]
  9213.     HRESULT  AddArcTanToArc(
  9214.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  9215.         [in] double X0, // X coordinate of new arc's radius point.
  9216.         [in] double Y0, // Y coordinate of new arc's radius point.
  9217.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  9218.         [in] double X1, // X coordinate of point on existing arc.
  9219.         [in] double Y1, // Y coordinate of point on existing arc.
  9220.         [in] double Z1, // Z coordinate of ponit on existing arc.
  9221.         [in] double StartAngle, // Starting angle in radians.
  9222.         [in] double EndAngle, // Ending angle in radians.
  9223.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9224.         );
  9225.  
  9226.         /**
  9227.          * Creates and adds an arc to the collection.
  9228.          */
  9229.     [
  9230.          helpcontext(0x1006001F)
  9231.         ,helpstring("Creates and adds an arc to the collection.")
  9232.         ,restricted, hidden
  9233.     ]
  9234.     HRESULT  AddArcTanToLine(
  9235.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  9236.         [in] double X0, // X coordinate of new arc's radius point.
  9237.         [in] double Y0, // Y coordinate of new arc's radius point.
  9238.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  9239.         [in] double X1, // X coordinate of point on existing line.
  9240.         [in] double Y1, // Y coordinate of point on existing line.
  9241.         [in] double Z1, // Z coordinate of ponit on existing line.
  9242.         [in] double StartAngle, // Starting angle in radians.
  9243.         [in] double EndAngle, // Ending angle in radians.
  9244.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9245.         );
  9246.  
  9247.         /**
  9248.          * Creates and adds an arc to the collection.
  9249.          */
  9250.     [
  9251.          helpcontext(0x10060020)
  9252.         ,helpstring("Creates and adds an arc to the collection.")
  9253.         ,restricted, hidden
  9254.     ]
  9255.     HRESULT  AddArcTanTo3Arcs(
  9256.         [in] IGraphic* Arc1, // First arc or circle.
  9257.         [in] IGraphic* Arc2, // Second arc or circle.
  9258.         [in] IGraphic* Arc3, // Third arc or circle.
  9259.         [in] double StartAngle, // Starting angle in radians.
  9260.         [in] double EndAngle, // Ending angle in radians.
  9261.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9262.         );
  9263.  
  9264.         /**
  9265.          * Creates and adds a horizontal dimension to the collection.
  9266.          *
  9267.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  9268.          */
  9269.     [
  9270.          helpcontext(0x10060021)
  9271.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  9272.         ,restricted, hidden
  9273.     ]
  9274.     HRESULT  AddDimensionHorizontal(
  9275.         [in] double X0, // X coordinate of first extension line.
  9276.         [in] double Y0, // Y coordinate of first extension line.
  9277.         [in] double Z0, // Z coordinate of first extension line.
  9278.         [in] double X1, // X coordinate of second extension line.
  9279.         [in] double Y1, // Y coordinate of second extension line.
  9280.         [in] double Z1, // Z coordinate of second extension line.
  9281.         [in] double X2, // X coordinate of dimension.
  9282.         [in] double Y2, // Y coordinate of dimension.
  9283.         [in] double Z2, // Z coordinate of dimension.
  9284.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9285.         );
  9286.  
  9287.         /**
  9288.          * Creates and adds a vertical dimension to the collection.
  9289.          *
  9290.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  9291.          */
  9292.     [
  9293.          helpcontext(0x10060022)
  9294.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  9295.         ,restricted, hidden
  9296.     ]
  9297.     HRESULT  AddDimensionVertical(
  9298.         [in] double X0, // X coordinate of first extension line.
  9299.         [in] double Y0, // Y coordinate of first extension line.
  9300.         [in] double Z0, // Z coordinate of first extension line.
  9301.         [in] double X1, // X coordinate of second extension line.
  9302.         [in] double Y1, // Y coordinate of second extension line.
  9303.         [in] double Z1, // Z coordinate of second extension line.
  9304.         [in] double X2, // X coordinate of dimension.
  9305.         [in] double Y2, // Y coordinate of dimension.
  9306.         [in] double Z2, // Z coordinate of dimension.
  9307.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9308.         );
  9309.  
  9310.         /**
  9311.          * Creates and adds a parallel dimension to the collection.
  9312.          *
  9313.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  9314.          */
  9315.     [
  9316.          helpcontext(0x10060023)
  9317.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  9318.         ,restricted, hidden
  9319.     ]
  9320.     HRESULT  AddDimensionParallel(
  9321.         [in] double X0, // X coordinate of first extension line.
  9322.         [in] double Y0, // Y coordinate of first extension line.
  9323.         [in] double Z0, // Z coordinate of first extension line.
  9324.         [in] double X1, // X coordinate of second extension line.
  9325.         [in] double Y1, // Y coordinate of second extension line.
  9326.         [in] double Z1, // Z coordinate of second extension line.
  9327.         [in] double X2, // X coordinate of dimension.
  9328.         [in] double Y2, // Y coordinate of dimension.
  9329.         [in] double Z2, // Z coordinate of dimension.
  9330.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9331.         );
  9332.  
  9333.         /**
  9334.          * Creates and adds a rotated dimension to the collection.
  9335.          */
  9336.     [
  9337.          helpcontext(0x10060024)
  9338.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  9339.         ,restricted, hidden
  9340.     ]
  9341.     HRESULT  AddDimensionRotated(
  9342.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  9343.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  9344.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  9345.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  9346.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  9347.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  9348.         [in] double X2, // X coordinate of first extension line.
  9349.         [in] double Y2, // Y coordinate of first extension line.
  9350.         [in] double Z2, // Z coordinate of first extension line.
  9351.         [in] double X3, // X coordinate of second extension line.
  9352.         [in] double Y3, // Y coordinate of second extension line.
  9353.         [in] double Z3, // Z coordinate of second extension line.
  9354.         [in] double X4, // X coordinate of dimension.
  9355.         [in] double Y4, // Y coordinate of dimension.
  9356.         [in] double Z4, // Z coordinate of dimension.
  9357.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9358.         );
  9359.  
  9360.         /**
  9361.          * Creates and adds a datum dimension to the collection.
  9362.          */
  9363.     [
  9364.          helpcontext(0x10060025)
  9365.         ,helpstring("Creates and adds a datum dimension to the collection.")
  9366.         ,restricted, hidden
  9367.     ]
  9368.     HRESULT  AddDimensionDatum(
  9369.         [in] double X0, // X coordinate of first extension line.
  9370.         [in] double Y0, // Y coordinate of first extension line.
  9371.         [in] double Z0, // Z coordinate of first extension line.
  9372.         [in] double X1, // X coordinate of second extension line.
  9373.         [in] double Y1, // Y coordinate of second extension line.
  9374.         [in] double Z1, // Z coordinate of second extension line.
  9375.         [in] double X2, // X coordinate of dimension.
  9376.         [in] double Y2, // Y coordinate of dimension.
  9377.         [in] double Z2, // Z coordinate of dimension.
  9378.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9379.         );
  9380.  
  9381.         /**
  9382.          * Creates and adds an angular dimension to the collection.
  9383.          */
  9384.     [
  9385.          helpcontext(0x10060026)
  9386.         ,helpstring("Creates and adds an angular dimension to the collection.")
  9387.         ,restricted, hidden
  9388.     ]
  9389.     HRESULT  AddDimensionAngular(
  9390.         [in] IGraphic* Line1, // First graphic.
  9391.         [in] IGraphic* Line2, // Second graphic.
  9392.         [in] double X0, // X coordinate of dimension.
  9393.         [in] double Y0, // Y coordinate of dimension.
  9394.         [in] double Z0, // Z coordinate of dimension.
  9395.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9396.         );
  9397.  
  9398.         /**
  9399.          * Creates and adds a radial dimension to the collection.
  9400.          */
  9401.     [
  9402.          helpcontext(0x10060027)
  9403.         ,helpstring("Creates and adds a radial dimension to the collection.")
  9404.         ,restricted, hidden
  9405.     ]
  9406.     HRESULT  AddDimensionRadius(
  9407.         [in] IGraphic* Arc, // Arc or circle.
  9408.         [in] double X0, // X coordinate of dimension text.
  9409.         [in] double Y0, // Y coordinate of dimension text.
  9410.         [in] double Z0, // Z coordinate of dimension text.
  9411.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9412.         );
  9413.  
  9414.         /**
  9415.          * Creates and adds a diameter dimension to the collection.
  9416.          */
  9417.     [
  9418.          helpcontext(0x10060028)
  9419.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  9420.         ,restricted, hidden
  9421.     ]
  9422.     HRESULT  AddDimensionDiameter(
  9423.         [in] IGraphic* Arc, // Arc or circle.
  9424.         [in] double X0, // X coordinate of dimension text.
  9425.         [in] double Y0, // Y coordinate of dimension text.
  9426.         [in] double Z0, // Z coordinate of dimension text.
  9427.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9428.         );
  9429.  
  9430. #endif //METHOD_OVERFLOW_BUG
  9431.  
  9432.         /**
  9433.          * Creates and adds a new Graphic object to the collection.
  9434.          */
  9435.         [
  9436.              helpcontext(0x10060029)
  9437.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  9438.         ]
  9439.         HRESULT  Add(
  9440.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  9441.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  9442.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  9443.             [in, optional] VARIANT* Style, // Not used in current implementation.
  9444.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  9445.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  9446.             [out, retval] IGraphic** prop // The newly created Graphic object.
  9447.             );
  9448.  
  9449.         /**
  9450.          * Adds an existing Graphic object to the collection.
  9451.          */
  9452.         [
  9453.              helpcontext(0x1006002A)
  9454.             ,helpstring("Adds an existing Graphic object to the collection.")
  9455.         ]
  9456.         HRESULT  AddGraphic(
  9457.             [in] IGraphic* Graphic,    // The Graphic object to add.
  9458.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  9459.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  9460.             );
  9461.  
  9462.         /**
  9463.          * Returns the collection's bounding box.
  9464.          */
  9465.         [
  9466.              helpcontext(0x1006002B)
  9467.             ,helpstring("Returns the collection's bounding box.")
  9468.         ]
  9469.         HRESULT  CalcBoundingBox(
  9470.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  9471.             [out, retval] BoundingBox** prop // The BoundingBox object.
  9472.             );
  9473.  
  9474.         /**
  9475.          * Clears the contents of the collection.
  9476.          */
  9477.         [
  9478.              helpcontext(0x1006002C)
  9479.             ,helpstring("Clears the contents of the collection.")
  9480.         ]
  9481.         HRESULT  Clear(
  9482.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  9483.             );
  9484.  
  9485.         /**
  9486.          * Clears construction lines and arcs.
  9487.          *
  9488.          * @see TCADAPI TCWClearAllConstructions function.
  9489.          */
  9490.         [
  9491.              helpcontext(0x1006002D)
  9492.             ,helpstring("Clears construction lines and arcs.")
  9493.             ,restricted, hidden
  9494.         ]
  9495.         HRESULT  ClearConstruction(
  9496.             );
  9497.  
  9498.         /**
  9499.          * Copies the contents of the collection to the Clipboard.
  9500.          */
  9501.         [
  9502.              helpcontext(0x1006002E)
  9503.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  9504.             ,restricted, hidden
  9505.         ]
  9506.         HRESULT  Copy(
  9507.             );
  9508.  
  9509.         /**
  9510.          * Cuts the contents of the collection to the Clipboard.
  9511.          */
  9512.         [
  9513.              helpcontext(0x1006002F)
  9514.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  9515.             ,restricted, hidden
  9516.         ]
  9517.         HRESULT  Cut(
  9518.             );
  9519.  
  9520.         /**
  9521.          * Draws all the Graphic objects in the collection.
  9522.          */
  9523.     [
  9524.          helpcontext(0x10060030)
  9525.         ,helpstring("Draws all the Graphic objects in the collection.")
  9526.     ]
  9527.     HRESULT  Draw(
  9528.         [in] VARIANT* View // If supplied, the View object to draw on.
  9529.         );
  9530.  
  9531.         /**
  9532.          * Removes an item from the collection.
  9533.          */
  9534.         [
  9535.              helpcontext(0x10060031)
  9536.             ,helpstring("Removes an item from the collection.")
  9537.         ]
  9538.         HRESULT  Remove(
  9539.             [in] VARIANT* Index, // The index of item to be removed.
  9540.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  9541.             );
  9542.  
  9543.         /**
  9544.          * Selects all the Graphic object's in the collection.
  9545.          *
  9546.          * @see TCADAPI TCWSelectAll function.
  9547.          */
  9548.         [
  9549.              helpcontext(0x10060032)
  9550.             ,helpstring("Selects all the Graphic object's in the collection.")
  9551.         ]
  9552.         HRESULT  Select(
  9553.             );
  9554.  
  9555.         /**
  9556.          * Unselects all the Graphic object's in the collection.
  9557.          *
  9558.          * @see TCADAPI TCWDeselectAll function.
  9559.          */
  9560.         [
  9561.              helpcontext(0x10060033)
  9562.             ,helpstring("Unselects all the Graphic object's in the collection.")
  9563.         ]
  9564.         HRESULT  Unselect(
  9565.             );
  9566.  
  9567.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  9568.  
  9569.         /**
  9570.          * Creates and adds a construction line to the collection.
  9571.          *
  9572.          * @see TCADAPI TCWConstructionAngularLine function
  9573.          */
  9574.     [
  9575.          helpcontext(0x10060034)
  9576.         ,helpstring("Creates and adds a construction line to the collection.")
  9577.         ,restricted, hidden
  9578.     ]
  9579.     HRESULT  AddConstructionAngularLine(
  9580.         [in] double X0, // X coordinate of the first point on line.
  9581.         [in] double Y0, // Y coordinate of the first point on line.
  9582.         [in] double Z0, // Z coordinate of the first point on line.
  9583.         [in] double X1, // X coordinate of the second point on line.
  9584.         [in] double Y1, // Y coordinate of the second point on line.
  9585.         [in] double Z1, // Z coordinate of the second point on line.
  9586.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9587.         );
  9588.  
  9589.         /**
  9590.          * Creates and adds a construction line to the collection.
  9591.          *
  9592.          * @see TCADAPI TCWConstructionHorizontalLine function
  9593.          */
  9594.     [
  9595.          helpcontext(0x10060035)
  9596.         ,helpstring("Creates and adds a construction line to the collection.")
  9597.         ,restricted, hidden
  9598.     ]
  9599.     HRESULT  AddConstructionHorizontalLine(
  9600.         [in] double X0, // X coordinate of the line.
  9601.         [in] double Y0, // Y coordinate of the line.
  9602.         [in] double Z0, // Z coordinate of the line.
  9603.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9604.         );
  9605.  
  9606.         /**
  9607.          * Creates and adds a construction line to the collection.
  9608.          *
  9609.          * @see TCADAPI TCWConstructionVerticalLine function
  9610.          */
  9611.     [
  9612.          helpcontext(0x10060036)
  9613.         ,helpstring("Creates and adds a construction line to the collection.")
  9614.         ,restricted, hidden
  9615.     ]
  9616.     HRESULT  AddConstructionVerticalLine(
  9617.         [in] double X0, // X coordinate of the line.
  9618.         [in] double Y0, // Y coordinate of the line.
  9619.         [in] double Z0, // Z coordinate of the line.
  9620.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9621.         );
  9622.  
  9623.         /**
  9624.          * Creates and adds a construction circle to the collection.
  9625.          *
  9626.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  9627.          */
  9628.     [
  9629.          helpcontext(0x10060037)
  9630.         ,helpstring("Creates and adds a construction circle to the collection.")
  9631.         ,restricted, hidden
  9632.     ]
  9633.     HRESULT  AddConstructionCenterAndPointCircle(
  9634.         [in] double X0, // X coordinate of the center point.
  9635.         [in] double Y0, // Y coordinate of the center point.
  9636.         [in] double Z0, // Z coordinate of the center point.
  9637.         [in] double X1, // X coordinate of the perimeter point.
  9638.         [in] double Y1, // Y coordinate of the perimeter point.
  9639.         [in] double Z1, // Z coordinate of the perimeter point.
  9640.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9641.         );
  9642.  
  9643.         /**
  9644.          * Creates and adds a construction circle to the collection.
  9645.          *
  9646.          * @see TCADAPI TCWConstructionDoublePointCircle function
  9647.          */
  9648.     [
  9649.          helpcontext(0x10060038)
  9650.         ,helpstring("Creates and adds a construction circle to the collection.")
  9651.         ,restricted, hidden
  9652.     ]
  9653.     HRESULT  AddConstructionDoublePointCircle(
  9654.         [in] double X0, // X coordinate of the first point.
  9655.         [in] double Y0, // Y coordinate of the first point.
  9656.         [in] double Z0, // Z coordinate of the first point.
  9657.         [in] double X1, // X coordinate of the second point.
  9658.         [in] double Y1, // Y coordinate of the second point.
  9659.         [in] double Z1, // Z coordinate of the second point.
  9660.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9661.         );
  9662.  
  9663.         /**
  9664.          * Creates and adds a construction circle to the collection.
  9665.          *
  9666.          * @see TCADAPI TCWConstructionTriplePointCircle function
  9667.          */
  9668.     [
  9669.          helpcontext(0x10060039)
  9670.         ,helpstring("Creates and adds a construction circle to the collection.")
  9671.         ,restricted, hidden
  9672.     ]
  9673.     HRESULT  AddConstructionTriplePointCircle(
  9674.         [in] double X0, // X coordinate of the first point.
  9675.         [in] double Y0, // Y coordinate of the first point.
  9676.         [in] double Z0, // Z coordinate of the first point.
  9677.         [in] double X1, // X coordinate of the second point.
  9678.         [in] double Y1, // Y coordinate of the second point.
  9679.         [in] double Z1, // Z coordinate of the second point.
  9680.         [in] double X2, // X coordinate of the third point.
  9681.         [in] double Y2, // Y coordinate of the third point.
  9682.         [in] double Z2, // Z coordinate of the third point.
  9683.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9684.         );
  9685.  
  9686.         /**
  9687.          * Creates and adds a dot marker to the collection.
  9688.          *
  9689.          * @see TCADAPI TCWDot function
  9690.          */
  9691.     [
  9692.          helpcontext(0x1006003A)
  9693.         ,helpstring("Creates and adds a dot marker to the collection.")
  9694.         ,restricted, hidden
  9695.     ]
  9696.     HRESULT  AddDot(
  9697.         [in] double X0, // X coordinate of the point.
  9698.         [in] double Y0, // Y coordinate of the point.
  9699.         [in] double Z0, // Z coordinate of the point.
  9700.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9701.         );
  9702.  
  9703.         /**
  9704.          * Creates and adds a star to the collection.
  9705.          *
  9706.          * @see TCADAPI TCWStar function
  9707.          */
  9708.     [
  9709.          helpcontext(0x1006003B)
  9710.         ,helpstring("Creates and adds a star marker to the collection.")
  9711.         ,restricted, hidden
  9712.     ]
  9713.     HRESULT  AddStar(
  9714.         [in] double X0, // X coordinate of the point.
  9715.         [in] double Y0, // Y coordinate of the point.
  9716.         [in] double Z0, // Z coordinate of the point.
  9717.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9718.         );
  9719.  
  9720.         /**
  9721.          * Creates and adds a square marker to the collection.
  9722.          *
  9723.          * @see TCADAPI TCWSquare function
  9724.          */
  9725.     [
  9726.          helpcontext(0x1006003C)
  9727.         ,helpstring("Creates and adds a square marker to the collection.")
  9728.         ,restricted, hidden
  9729.     ]
  9730.     HRESULT  AddSquare(
  9731.         [in] double X0, // X coordinate of the point.
  9732.         [in] double Y0, // Y coordinate of the point.
  9733.         [in] double Z0, // Z coordinate of the point.
  9734.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9735.         );
  9736.  
  9737.         /**
  9738.          * Creates and adds a cross marker to the collection.
  9739.          *
  9740.          * @see TCADAPI TCWCross function
  9741.          */
  9742.     [
  9743.          helpcontext(0x1006003D)
  9744.         ,helpstring("Creates and adds a cross marker to the collection.")
  9745.         ,restricted, hidden
  9746.     ]
  9747.     HRESULT  AddCross(
  9748.         [in] double X0, // X coordinate of the point.
  9749.         [in] double Y0, // Y coordinate of the point.
  9750.         [in] double Z0, // Z coordinate of the point.
  9751.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9752.         );
  9753.  
  9754.         /**
  9755.          * Creates and adds a circle marker to the collection.
  9756.          *
  9757.          * @see TCADAPI TCWCircle function
  9758.          */
  9759.     [
  9760.          helpcontext(0x1006003E)
  9761.         ,helpstring("Creates and adds a circle marker to the collection.")
  9762.         ,restricted, hidden
  9763.     ]
  9764.     HRESULT  AddCircle(
  9765.         [in] double X0, // X coordinate of the point.
  9766.         [in] double Y0, // Y coordinate of the point.
  9767.         [in] double Z0, // Z coordinate of the point.
  9768.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9769.         );
  9770.  
  9771.         /**
  9772.          * Creates and adds a single line segment to the collection.
  9773.          *
  9774.          * @see TCADAPI TCWLineSingle function
  9775.          */
  9776.     [
  9777.          helpcontext(0x1006003F)
  9778.         ,helpstring("Creates and adds a single line segment to the collection.")
  9779.         ,restricted, hidden
  9780.     ]
  9781.     HRESULT  AddLineSingle(
  9782.         [in] double X0, // X coordinate of the first endpoint.
  9783.         [in] double Y0, // Y coordinate of the first endpoint.
  9784.         [in] double Z0, // Z coordinate of the first endpoint.
  9785.         [in] double X1, // X coordinate of the second endpoint.
  9786.         [in] double Y1, // Y coordinate of the second endpoint.
  9787.         [in] double Z1, // Z coordinate of the second endpoint.
  9788.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9789.         );
  9790.  
  9791.         /**
  9792.          * Creates and adds a regular polygon to the collection.
  9793.          *
  9794.          * @see TCADAPI TCWLinePolygon function
  9795.          */
  9796.     [
  9797.          helpcontext(0x10060040)
  9798.         ,helpstring("Creates and adds a regular polygon to the collection.")
  9799.         ,restricted, hidden
  9800.     ]
  9801.     HRESULT  AddLinePolygon(
  9802.         [in] double X0, // X coordinate of the center point.
  9803.         [in] double Y0, // Y coordinate of the center point.
  9804.         [in] double Z0, // Z coordinate of the center point.
  9805.         [in] double X1, // X coordinate of the corner point.
  9806.         [in] double Y1, // Y coordinate of the corner point.
  9807.         [in] double Z1, // Z coordinate of the corner point.
  9808.         [in] long nsides, // number of sides.
  9809.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9810.         );
  9811.  
  9812.         /**
  9813.          * Creates and adds a rectangle to the collection.
  9814.          *
  9815.          * @see TCADAPI TCWLineRectangle function
  9816.          */
  9817.     [
  9818.          helpcontext(0x10060041)
  9819.         ,helpstring("Creates and adds a rectangle to the collection.")
  9820.         ,restricted, hidden
  9821.     ]
  9822.     HRESULT  AddLineRectangle(
  9823.         [in] double X0, // X coordinate of the upper left corner.
  9824.         [in] double Y0, // Y coordinate of the upper left corner.
  9825.         [in] double Z0, // Z coordinate of the upper left corner.
  9826.         [in] double X1, // X coordinate of the lower right corner.
  9827.         [in] double Y1, // Y coorindate of the lower right corner.
  9828.         [in] double Z1, // Z coorindate of the lower right corner.
  9829.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9830.         );
  9831.  
  9832.         /**
  9833.          * Creates and adds a rotated rectangle to the collection.
  9834.          *
  9835.          * @see TCADAPI TCWLineRotatedRectangle function
  9836.          */
  9837.     [
  9838.          helpcontext(0x10060042)
  9839.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  9840.         ,restricted, hidden
  9841.     ]
  9842.     HRESULT  AddLineRotatedRectangle(
  9843.         [in] double X0, // X coordinate of the upper left corner.
  9844.         [in] double Y0, // Y coordinate of the upper left corner.
  9845.         [in] double Z0, // Z coordinate of the upper left corner.
  9846.         [in] double X1, // X coordinate of the lower right corner.
  9847.         [in] double Y1, // Y coorindate of the lower right corner.
  9848.         [in] double Z1, // Z coorindate of the lower right corner.
  9849.         [in] double Height, // Height of the rectangle.
  9850.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9851.         );
  9852.  
  9853.         /**
  9854.          * Creates and adds a single line segment to the collection.
  9855.          *
  9856.          * @see TCADAPI TCWLinePerpendicular function
  9857.          */
  9858.     [
  9859.          helpcontext(0x10060043)
  9860.         ,helpstring("Creates and adds a single line segment to the collection.")
  9861.         ,restricted, hidden
  9862.     ]
  9863.     HRESULT  AddLinePerpendicular(
  9864.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  9865.         [in] double X0, // X coordinate of the point on the existing line.
  9866.         [in] double Y0, // Y coordinate of the point on the existing line.
  9867.         [in] double Z0, // Z coordinate of the point on the existing line.
  9868.         [in] double X1, // X coordinate of the second point on the new line.
  9869.         [in] double Y1, // Y coordinate of the second point on the new line.
  9870.         [in] double Z1, // Z coordinate of the second point on the new line.
  9871.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9872.         );
  9873.  
  9874.         /**
  9875.          * Creates and adds a single line segment to the collection.
  9876.          *
  9877.          * @see TCADAPI TCWLineParallel function
  9878.          */
  9879.     [
  9880.          helpcontext(0x10060044)
  9881.         ,helpstring("Creates and adds a single line segment to the collection.")
  9882.         ,restricted, hidden
  9883.     ]
  9884.     HRESULT  AddLineParallel(
  9885.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  9886.         [in] double X0, // X coordinate of the new line.
  9887.         [in] double Y0, // Y coordinate of the new line.
  9888.         [in] double Z0, // Z coordinate of the new line.
  9889.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9890.         );
  9891.  
  9892.         /**
  9893.          * Creates and adds a multiple segment line to the collection.
  9894.          * The returned Graphic object contains only a beginning vertex.  The user must
  9895.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9896.          * and a Graphic.Finish call to complete the Graphic object.
  9897.          *
  9898.          * @see TCADAPI TCWLineMultiline function
  9899.          */
  9900.     [
  9901.          helpcontext(0x10060045)
  9902.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  9903.         ,restricted, hidden
  9904.     ]
  9905.     HRESULT  AddLineMultiline(
  9906.         [in] double X0, // X coordinate of first endpoint.
  9907.         [in] double Y0, // Y coordinate of first endpoint.
  9908.         [in] double Z0, // Z coordinate of first endpoint.
  9909.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9910.         );
  9911.  
  9912.         /**
  9913.          * Creates and adds an irregular polygon to the collection.
  9914.          * The returned Graphic object contains only a beginning vertex.  The user must
  9915.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9916.          * and a Graphic.Close call to complete the Graphic object.
  9917.          *
  9918.          * @see TCADAPI TCWLineIrregularPolygon function
  9919.          */
  9920.     [
  9921.          helpcontext(0x10060046)
  9922.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  9923.         ,restricted, hidden
  9924.     ]
  9925.     HRESULT  AddLineIrregularPolygon(
  9926.         [in] double X0, // X coordinate of first endpoint.
  9927.         [in] double Y0, // Y coordinate of first endpoint.
  9928.         [in] double Z0, // Z coordinate of first endpoint.
  9929.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9930.         );
  9931.  
  9932.         /**
  9933.          * Creates and adds a bezier curve to the collection.
  9934.          * The returned Graphic object contains only a beginning vertex.  The user must
  9935.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9936.          * and a Graphic.Finish call to complete the Graphic object.
  9937.          *
  9938.          * @see TCADAPI TCWCurveBezier function
  9939.          */
  9940.     [
  9941.          helpcontext(0x10060047)
  9942.         ,helpstring("Creates and adds a bezier curve to the collection.")
  9943.         ,restricted, hidden
  9944.     ]
  9945.     HRESULT  AddCurveBezier(
  9946.         [in] double X0, // X coordinate of the first endpoint.
  9947.         [in] double Y0, // Y coordinate of the first endpoint.
  9948.         [in] double Z0, // Z coordinate of the first endpoint.
  9949.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9950.         );
  9951.  
  9952.         /**
  9953.          * Creates and adds a cubic spline curve to the collection.
  9954.          * The returned Graphic object contains only a beginning vertex.  The user must
  9955.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  9956.          * and a Graphic.Finish call to complete the Graphic object.
  9957.          *
  9958.          * @see TCADAPI TCWCurveSpline function
  9959.          */
  9960.     [
  9961.          helpcontext(0x10060048)
  9962.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  9963.         ,restricted, hidden
  9964.     ]
  9965.     HRESULT  AddCurveSpline(
  9966.         [in] double X0, // X coordinate of the first endpoint.
  9967.         [in] double Y0, // Y coordinate of the first endpoint.
  9968.         [in] double Z0, // Z coordinate of the first endpoint.
  9969.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9970.         );
  9971.  
  9972.         /**
  9973.          * Creates and adds a circle to the collection.
  9974.          *
  9975.          * @see TCADAPI TCWCircleCenterAndPoint function
  9976.          */
  9977.     [
  9978.          helpcontext(0x10060049)
  9979.         ,helpstring("Creates and adds a circle to the collection.")
  9980.         ,restricted, hidden
  9981.     ]
  9982.     HRESULT  AddCircleCenterAndPoint(
  9983.         [in] double X0, // X coordinate of the center point.
  9984.         [in] double Y0, // Y coordinate of the center point.
  9985.         [in] double Z0, // Z coordinate of the cneter point.
  9986.         [in] double X1, // X coordinate of the radius point.
  9987.         [in] double Y1, // Y coordinate of the radius point.
  9988.         [in] double Z1, // Z coordinate of the radius point.
  9989.         [out, retval] IGraphic** prop // The newly created Graphic object.
  9990.         );
  9991.  
  9992.         /**
  9993.          * Creates and adds a circle to the collection.
  9994.          *
  9995.          * @see TCADAPI TCWCircleDoublePoint function
  9996.          */
  9997.     [
  9998.          helpcontext(0x1006004A)
  9999.         ,helpstring("Creates and adds a circle to the collection.")
  10000.         ,restricted, hidden
  10001.     ]
  10002.     HRESULT  AddCircleDoublePoint(
  10003.         [in] double X0, // X coordinate of the first point.
  10004.         [in] double Y0, // Y coordinate of the first point.
  10005.         [in] double Z0, // Z coordinate of the first point.
  10006.         [in] double X1, // X coordinate of the second point.
  10007.         [in] double Y1, // Y coordinate of the second point.
  10008.         [in] double Z1, // Z coordinate of the second point.
  10009.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10010.         );
  10011.  
  10012.         /**
  10013.          * Creates and adds a circle to the collection.
  10014.          *
  10015.          * @see TCADAPI TCWCircleTriplePoint function
  10016.          */
  10017.     [
  10018.          helpcontext(0x1006004B)
  10019.         ,helpstring("Creates and adds a circle to the collection.")
  10020.         ,restricted, hidden
  10021.     ]
  10022.     HRESULT  AddCircleTriplePoint(
  10023.         [in] double X0, // X coordinate of the first point.
  10024.         [in] double Y0, // Y coordinate of the first point.
  10025.         [in] double Z0, // Z coordinate of the first point.
  10026.         [in] double X1, // X coordinate of the second point.
  10027.         [in] double Y1, // Y coordinate of the second point.
  10028.         [in] double Z1, // Z coordinate of the second point.
  10029.         [in] double X2, // X coordinate of the third point.
  10030.         [in] double Y2, // Y coordinate of the third point.
  10031.         [in] double Z2, // Z coordinate of the third point.
  10032.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10033.         );
  10034.  
  10035.         /**
  10036.          * Creates and adds a ellipse to the collection.
  10037.          *
  10038.          * @see TCADAPI TCWEllipse function
  10039.          */
  10040.     [
  10041.          helpcontext(0x1006004C)
  10042.         ,helpstring("Creates and adds a ellipse to the collection.")
  10043.         ,restricted, hidden
  10044.     ]
  10045.     HRESULT  AddEllipse(
  10046.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  10047.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  10048.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  10049.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  10050.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  10051.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  10052.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10053.         );
  10054.  
  10055.         /**
  10056.          * Creates and adds a ellipse to the collection.
  10057.          *
  10058.          * @see TCADAPI TCWEllipseRotatedEllipse function
  10059.          */
  10060.     [
  10061.          helpcontext(0x1006004D)
  10062.         ,helpstring("Creates and adds a ellipse to the collection.")
  10063.         ,restricted, hidden
  10064.     ]
  10065.     HRESULT  AddEllipseRotatedEllipse(
  10066.         [in] double X0, // X coordinate of ellipse's center point.
  10067.         [in] double Y0, // Y coordinate of ellipse's center point.
  10068.         [in] double Z0, // Z coordinate of ellipse's center point.
  10069.         [in] double X1, // X coordinate of major axis radius point.
  10070.         [in] double Y1, // Y coordinate of major axis radius point.
  10071.         [in] double Z1, // Z coordinate of major axis radius point.
  10072.         [in] double X2, // X coordinate of minor axis radius point.
  10073.         [in] double Y2, // Y coordinate of minor axis radius point.
  10074.         [in] double Z2, // Z coordinate of minor axis radius point.
  10075.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10076.         );
  10077.  
  10078.         /**
  10079.          * Creates and adds a ellipse to the collection.
  10080.          *
  10081.          * @see TCADAPI TCWEllipseFixedRatio function
  10082.          */
  10083.     [
  10084.          helpcontext(0x1006004E)
  10085.         ,helpstring("Creates and adds a ellipse to the collection.")
  10086.         ,restricted, hidden
  10087.     ]
  10088.     HRESULT  AddEllipseFixedRatio(
  10089.         [in] double X0, // X coordinate of ellipse's center point.
  10090.         [in] double Y0, // Y coordinate of ellipse's center point.
  10091.         [in] double Z0, // Z coordinate of ellipse's center point.
  10092.         [in] double X1, // X coordinate of radius in Y direction.
  10093.         [in] double Y1, // Y coordinate of radius in Y direction.
  10094.         [in] double Z1, // Z coordinate of radius in Y direction.
  10095.         [in] double XToYRatio, // Ratio of Rx to Ry.
  10096.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10097.         );
  10098.  
  10099.         /**
  10100.          * Creates and adds an arc to the collection.
  10101.          *
  10102.          * @see TCADAPI TCWArcCenterAndPoint function
  10103.          */
  10104.     [
  10105.          helpcontext(0x1006004F)
  10106.         ,helpstring("Creates and adds an arc to the collection.")
  10107.         ,restricted, hidden
  10108.     ]
  10109.     HRESULT  AddArcCenterAndPoint(
  10110.         [in] double X0, // X coordinate of arc's center point.
  10111.         [in] double Y0, // Y coordinate of arc's center point.
  10112.         [in] double Z0, // Z coordinate of arc's center point.
  10113.         [in] double X1, // X coordinate of arc's radius point.
  10114.         [in] double Y1, // Y coordinate of arc's radius point.
  10115.         [in] double Z1, // Z coordinate of arc's radius point.
  10116.         [in] double StartAngle, // Starting angle in radians.
  10117.         [in] double EndAngle, // Ending angle in radians.
  10118.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10119.         );
  10120.  
  10121.         /**
  10122.          * Creates and adds an arc to the collection.
  10123.          *
  10124.          * @see TCADAPI TCWArcDoublePoint function
  10125.          */
  10126.     [
  10127.          helpcontext(0x10060050)
  10128.         ,helpstring("Creates and adds an arc to the collection.")
  10129.         ,restricted, hidden
  10130.     ]
  10131.     HRESULT  AddArcDoublePoint(
  10132.         [in] double X0, // X coordinate of first endpoint.
  10133.         [in] double Y0, // Y coordinate of first endpoint.
  10134.         [in] double Z0, // Z coordinate of first endpoint.
  10135.         [in] double X1, // X coordinate of second endpoint.
  10136.         [in] double Y1, // Y coordinate of second endpont.
  10137.         [in] double Z1, // Z coordinate of second endpoint.
  10138.         [in] double StartAngle, // Starting angle in radians.
  10139.         [in] double EndAngle, // Ending angle in radians.
  10140.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10141.         );
  10142.  
  10143.         /**
  10144.          * Creates and adds an arc to the collection.
  10145.          *
  10146.          * @see TCADAPI TCWArcTriplePoint function
  10147.          */
  10148.     [
  10149.          helpcontext(0x10060051)
  10150.         ,helpstring("Creates and adds an arc to the collection.")
  10151.         ,restricted, hidden
  10152.     ]
  10153.     HRESULT  AddArcTriplePoint(
  10154.         [in] double X0, // X coordinate of starting point.
  10155.         [in] double Y0, // Y coordinate of starting point.
  10156.         [in] double Z0, // Z coordinate of starting point.
  10157.         [in] double X1, // X coordinate of point on perimeter.
  10158.         [in] double Y1, // Y coordinate of point on perimeter.
  10159.         [in] double Z1, // Z coordinate of point on perimeter.
  10160.         [in] double X2, // X coordinate of ending point.
  10161.         [in] double Y2, // Y coordinate of ending point.
  10162.         [in] double Z2, // Z coordinate of ending point.
  10163.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10164.         );
  10165.  
  10166.         /**
  10167.          * Creates and adds an elliptical arc to the collection.
  10168.          *
  10169.          * @see TCADAPI TCWArcElliptical function
  10170.          */
  10171.     [
  10172.          helpcontext(0x10060052)
  10173.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10174.         ,restricted, hidden
  10175.     ]
  10176.     HRESULT  AddArcElliptical(
  10177.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  10178.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  10179.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  10180.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  10181.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  10182.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  10183.         [in] double StartAngle, // Starting angle in radians.
  10184.         [in] double EndAngle, // Ending angle in radians.
  10185.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10186.         );
  10187.  
  10188.         /**
  10189.          * Creates and adds an elliptical arc to the collection.
  10190.          *
  10191.          * @see TCADAPI TCWArcRotatedElliptical function
  10192.          */
  10193.     [
  10194.          helpcontext(0x10060053)
  10195.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10196.         ,restricted, hidden
  10197.     ]
  10198.     HRESULT  AddArcRotatedElliptical(
  10199.         [in] double X0, // X coordinate of elliptical arc's center point.
  10200.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  10201.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  10202.         [in] double X1, // X coordinate of major axis radius point.
  10203.         [in] double Y1, // Y coordinate of major axis radius point.
  10204.         [in] double Z1, // Z coordinate of major axis radius point.
  10205.         [in] double X2, // X coordinate of minor axis radius point.
  10206.         [in] double Y2, // Y coordinate of minor axis radius point.
  10207.         [in] double Z2, // Z coordinate of minor axis radius point.
  10208.         [in] double StartAngle, // Starting angle in radians.
  10209.         [in] double EndAngle, // Ending angle in radians.
  10210.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10211.         );
  10212.  
  10213.         /**
  10214.          * Creates and adds an elliptical arc to the collection.
  10215.          *
  10216.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  10217.          */
  10218.     [
  10219.          helpcontext(0x10060054)
  10220.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  10221.         ,restricted, hidden
  10222.     ]
  10223.     HRESULT  AddArcEllipticalFixedRatio(
  10224.         [in] double X0, // X coordinate of ellipse's center point.
  10225.         [in] double Y0, // Y coordinate of ellipse's center point.
  10226.         [in] double Z0, // Z coordinate of ellipse's center point.
  10227.         [in] double X1, // X coordinate of radius in Y direction.
  10228.         [in] double Y1, // Y coordinate of radius in Y direction.
  10229.         [in] double Z1, // Z coordinate of radius in Y direction.
  10230.         [in] double XToYRatio, // Ratio of Rx to Ry.
  10231.         [in] double StartAngle, // Starting angle in radians.
  10232.         [in] double EndAngle, // Ending angle in radians.
  10233.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10234.         );
  10235.  
  10236.         /**
  10237.          * Creates and adds a text Graphic object to the collection.
  10238.          *
  10239.          * @see TCADAPI TCWText function
  10240.          */
  10241.     [
  10242.          helpcontext(0x10060055)
  10243.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  10244.         ,restricted, hidden
  10245.     ]
  10246.     HRESULT  AddText(
  10247.         [in] BSTR Text, // The text string.
  10248.         [in] double X0, // X coordinate of text's starting point.
  10249.         [in] double Y0, // Y coordinate of text's starting point.
  10250.         [in] double Z0, // Z coordinate of text's starting point.
  10251.         [in] double Height, // Height of text object.
  10252.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  10253.         [in, optional] VARIANT* Width, // Width of text object.
  10254.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  10255.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  10256.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10257.         );
  10258.  
  10259.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  10260.  
  10261.         /**
  10262.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  10263.          *
  10264.          * @see TCADAPI TCWBlockCreate function
  10265.          */
  10266.     [
  10267.          helpcontext(0x10060056)
  10268.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  10269.         ,restricted, hidden
  10270.     ]
  10271.     HRESULT  CreateBlock(
  10272.         [in, optional] BSTR Name, // Name for the new block.
  10273.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  10274.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  10275.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  10276.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  10277.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  10278.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  10279.         [out, retval] Block** prop // The newly created block.
  10280.         );
  10281.  
  10282.         /**
  10283.          * Adds a block insertion to the collection.
  10284.          *
  10285.          * @see TCADAPI TCWBlockInsert function
  10286.          */
  10287.     [
  10288.          helpcontext(0x10060057)
  10289.         ,helpstring("Adds a block insertion to the collection.")
  10290.         ,restricted, hidden
  10291.     ]
  10292.     HRESULT  AddBlockInsertion(
  10293.         [in] VARIANT* Block, // BlockObj or index of the block.
  10294.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  10295.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  10296.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  10297.         [in, optional] VARIANT* XScale, // X scale factor.
  10298.         [in, optional] VARIANT* YScale, // Y scale factor.
  10299.         [in, optional] VARIANT* ZScale, // Z scale factor.
  10300.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  10301.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10302.         );
  10303.  
  10304.         /**
  10305.          * Adds a group to the collection from the Graphic objects in the collection.
  10306.          *
  10307.          * @see TCADAPI TCWGroupCreate function
  10308.          */
  10309.     [
  10310.          helpcontext(0x10060058)
  10311.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  10312.         ,restricted, hidden
  10313.     ]
  10314.     HRESULT  AddGroup(
  10315.         [in, optional] VARIANT* Name, // Name for the new group.
  10316.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  10317.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10318.         );
  10319.  
  10320.         /**
  10321.          * Explodes groups and block insertions in the collection.
  10322.          *
  10323.          * @see TCADAPI TCWExplode function
  10324.          */
  10325.     [
  10326.          helpcontext(0x10060059)
  10327.         ,helpstring("Explodes groups and block insertions in the collection.")
  10328.         ,restricted, hidden
  10329.     ]
  10330.     HRESULT  Explode(
  10331.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  10332.         );
  10333.  
  10334.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  10335.  
  10336.         /**
  10337.          * Copies the Graphic objects in the collection along a line.
  10338.          */
  10339.     [
  10340.          helpcontext(0x1006005A)
  10341.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10342.         ,restricted, hidden
  10343.     ]
  10344.     HRESULT  LinearCopyAbsolute(
  10345.         [in] double X, // X coordinate to copy to.
  10346.         [in] double Y, // Y coordinate to copy to.
  10347.         [in] double Z, // Z coordinate to copy to.
  10348.         [in] long Copies, // Number of copies including the original.
  10349.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10350.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10351.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10352.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10353.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10354.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10355.         );
  10356.  
  10357.         /**
  10358.          * Copies the Graphic objects in the collection along a line.
  10359.          */
  10360.     [
  10361.          helpcontext(0x1006005B)
  10362.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10363.         ,restricted, hidden
  10364.     ]
  10365.     HRESULT  LinearCopyRelative(
  10366.         [in] double X, // X offset.
  10367.         [in] double Y, // Y offset.
  10368.         [in] double Z, // Z offset.
  10369.         [in] long Copies, // Number of copies including the original.
  10370.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  10371.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10372.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10373.         );
  10374.  
  10375.         /**
  10376.          * Copies the Graphic objects in the collection along a line.
  10377.          */
  10378.     [
  10379.          helpcontext(0x1006005C)
  10380.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  10381.         ,restricted, hidden
  10382.     ]
  10383.     HRESULT  LinearCopyAngle(
  10384.         [in] double Length, // Length of copy.
  10385.         [in] double Angle, // Angle of copy in radians.
  10386.         [in] long Copies, // Number of copies including the original.
  10387.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  10388.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10389.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10390.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10391.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10392.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10393.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10394.         );
  10395.  
  10396.         /**
  10397.          * Copies the Graphic objects in the collection radially.
  10398.          * Always rotates in the currently active workplane?
  10399.          */
  10400.     [
  10401.          helpcontext(0x1006005D)
  10402.         ,helpstring("Copies the Graphic objects in the collection radially.")
  10403.         ,restricted, hidden
  10404.     ]
  10405.     HRESULT  RadialCopyAbsolute(
  10406.         [in] double X0, // X coordinate of center of arc.
  10407.         [in] double Y0, // Y coordinate of center of arc.
  10408.         [in] double Z0, // Z coordinate of center of arc.
  10409.         [in] double X1, // X coordinate of point on arc.
  10410.         [in] double Y1, // Y coordinate of point on arc.
  10411.         [in] double Z1, // Z coordinate of point on arc.
  10412.         [in] long Copies, // Number of copies including the original.
  10413.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10414.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10415.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10416.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10417.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10418.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10419.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10420.         );
  10421.  
  10422.         /**
  10423.          * Copies the Graphic objects in the collection radially.
  10424.          * Always rotates in the currently active workplane?
  10425.          */
  10426.     [
  10427.          helpcontext(0x1006005E)
  10428.         ,helpstring("Copies the Graphic objects in the collection radially.")
  10429.         ,restricted, hidden
  10430.     ]
  10431.     HRESULT  RadialCopyAngle(
  10432.         [in] double X, // X coordinate of center of arc.
  10433.         [in] double Y, // Y coordinate of center of arc.
  10434.         [in] double Z, // Z coordinate of center of arc.
  10435.         [in] double Angle, // Angle between copies or for last copy.
  10436.         [in] double RotationAngle, // Angle to rotate each copy.
  10437.         [in] long Copies, // Number of copies including the original.
  10438.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  10439.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10440.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10441.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10442.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10443.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10444.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10445.         );
  10446.  
  10447.         /**
  10448.          * Copies the Graphic objects in a two dimensional array.
  10449.          * Always translates in the currently active workplane?
  10450.          */
  10451.     [
  10452.          helpcontext(0x1006005F)
  10453.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  10454.         ,restricted, hidden
  10455.     ]
  10456.     HRESULT  ArrayCopyAbsolute(
  10457.         [in] double X, // Coordinate defining row and column spacing.
  10458.         [in] double Y, // Coordinate defining row and column spacing.
  10459.         [in] double Z, // Coordinate defining row and column spacing.
  10460.         [in] long Rows, // Number of rows including the original.
  10461.         [in] long Columns, // Number of columns including the original.
  10462.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  10463.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10464.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10465.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10466.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10467.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10468.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10469.         );
  10470.  
  10471.         /**
  10472.          * Copies the Graphic objects in a two dimensional array.
  10473.          * Always translates in the currently active workplane?
  10474.          */
  10475.     [
  10476.          helpcontext(0x10060060)
  10477.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  10478.         ,restricted, hidden
  10479.     ]
  10480.     HRESULT  ArrayCopyRelative(
  10481.         [in] double U, // Column offset.
  10482.         [in] double V, // Row offset.
  10483.         [in] long Rows, // Number of rows including the original.
  10484.         [in] long Columns, // Number of columns including the original.
  10485.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  10486.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10487.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10488.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  10489.         );
  10490.  
  10491.         /**
  10492.          * Mirrors the Graphic objects in the collection about a line.
  10493.          */
  10494.     [
  10495.          helpcontext(0x10060061)
  10496.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  10497.         ,restricted, hidden
  10498.     ]
  10499.     HRESULT  MirrorCopyLine(
  10500.         [in] double X0, // X coordinate of the first point on line.
  10501.         [in] double Y0, // Y coordinate of the first point on line.
  10502.         [in] double Z0, // Z coordinate of the first point on line.
  10503.         [in] double X1, // X coordinate of the second point on line.
  10504.         [in] double Y1, // Y coordinate of the second point on line.
  10505.         [in] double Z1, // Z coordinate of the second point on line.
  10506.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  10507.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10508.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10509.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  10510.         );
  10511.  
  10512.         /**
  10513.          * Mirrors the Graphic objects in the collection about an angle.
  10514.          */
  10515.     [
  10516.          helpcontext(0x10060062)
  10517.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  10518.         ,restricted, hidden
  10519.     ]
  10520.     HRESULT  MirrorCopyAngle(
  10521.         [in] double X, // X coordinate to mirror to.
  10522.         [in] double Y, // Y coordinate to mirror to.
  10523.         [in] double Z, // Z coordinate to mirror to.
  10524.         [in] double Angle, // Angle of mirror.
  10525.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  10526.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10527.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10528.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10529.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  10530.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  10531.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  10532.         );
  10533.  
  10534.         /**
  10535.          * Scales the Graphic objects in the collection.
  10536.          *
  10537.          * @see TCADAPI TCWSelectionScale function.
  10538.          */
  10539.     [
  10540.          helpcontext(0x10060063)
  10541.         ,helpstring("Scales the Graphic objects in the collection.")
  10542.         ,restricted, hidden
  10543.     ]
  10544.     HRESULT  Scale(
  10545.         [in] double XScale, // X scale factor.
  10546.         [in] double YScale, // Y scale factor.
  10547.         [in] double ZScale, // Z scale factor.
  10548.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10549.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10550.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10551.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10552.         );
  10553.  
  10554.         /**
  10555.          * Rotates the Graphic objects in the collection.
  10556.          *
  10557.          * @see TCADAPI TCWSelectionRotate function.
  10558.          */
  10559.     [
  10560.          helpcontext(0x10060064)
  10561.         ,helpstring("Rotates the Graphic objects in the collection.")
  10562.         ,restricted, hidden
  10563.     ]
  10564.     HRESULT  RotateAxis(
  10565.         [in] double Angle, // Angle of rotation in radians.
  10566.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  10567.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  10568.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  10569.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  10570.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  10571.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  10572.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10573.         );
  10574.  
  10575.         /**
  10576.          * Rotates the Graphic objects in the collection.
  10577.          *
  10578.          * @see TCADAPI TCWSelectionRotate function.
  10579.          */
  10580.     [
  10581.          helpcontext(0x10060065)
  10582.         ,helpstring("Rotates the Graphic objects in the collection.")
  10583.         ,restricted, hidden
  10584.     ]
  10585.     HRESULT  RotateAbsolute(
  10586.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  10587.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  10588.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  10589.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  10590.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  10591.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  10592.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  10593.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  10594.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  10595.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10596.         );
  10597.  
  10598.         /**
  10599.          * Moves the Graphic objects in the collection to a new location.
  10600.          *
  10601.          * @see TCADAPI TCWSelectionMove function.
  10602.          */
  10603.     [
  10604.          helpcontext(0x10060066)
  10605.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  10606.         ,restricted, hidden
  10607.     ]
  10608.     HRESULT  MoveAbsolute(
  10609.         [in] double X, // X coordinate to move to.
  10610.         [in] double Y, // Y coordinate to move to.
  10611.         [in] double Z, // Z coordinate to move to.
  10612.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  10613.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  10614.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  10615.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10616.         );
  10617.  
  10618.         /**
  10619.          * Moves the Graphic objects in the collection by a specified offset.
  10620.          *
  10621.          * @see TCADAPI TCWSelectionMove function.
  10622.          */
  10623.     [
  10624.          helpcontext(0x10060067)
  10625.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  10626.         ,restricted, hidden
  10627.     ]
  10628.     HRESULT  MoveRelative(
  10629.         [in] double X, // X offset.
  10630.         [in] double Y, // Y offset.
  10631.         [in] double Z, // Z offset.
  10632.         [out, retval] IMatrix** prop // The matrix that was calculated.
  10633.         );
  10634.  
  10635.         /**
  10636.          * Transforms the Graphic objects in the collection.
  10637.          */
  10638.     [
  10639.          helpcontext(0x10060068)
  10640.         ,helpstring("Transforms the Graphic object.")
  10641.         ,restricted, hidden
  10642.     ]
  10643.     HRESULT  Transform(
  10644.         [in] IMatrix* Transform // The matrix to perform transformation.
  10645.         );
  10646.  
  10647.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  10648.  
  10649.         /**
  10650.          * Aligns the Graphic objects in the collection.
  10651.          *
  10652.          * @see TCADAPI TCWAlignXXX functions.
  10653.          */
  10654.     [
  10655.          helpcontext(0x10060069)
  10656.         ,helpstring("Aligns the Graphic objects in the collection.")
  10657.         ,restricted, hidden
  10658.     ]
  10659.     HRESULT  Align(
  10660.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  10661.         );
  10662.  
  10663.         /**
  10664.          * Aligns the Graphic objects in the collection along a line.
  10665.          */
  10666.     [
  10667.          helpcontext(0x1006006A)
  10668.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  10669.         ,restricted, hidden
  10670.     ]
  10671.     HRESULT  AlignAlongLine(
  10672.         [in] double X0, // X coordinate of the first point.
  10673.         [in] double Y0, // Y coordinate of the first point.
  10674.         [in] double Z0, // Z coordinate of the first point.
  10675.         [in] double X1, // X coordinate of the second point.
  10676.         [in] double Y1, // Y coordinate of the second point.
  10677.         [in] double Z1 // Z coordinate of the second point.
  10678.         );
  10679.  
  10680.         /**
  10681.          * Returns the index within the Graphics collection of the specified graphic handle.
  10682.          * Private.
  10683.          */
  10684.         [
  10685.              restricted
  10686.             ,helpcontext(0x1006006B)
  10687.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  10688.         ]
  10689.         HRESULT  _FindIndex(
  10690.             [in] long g, // The graphic handle.
  10691.             [out, retval] long* prop // The index.
  10692.             );
  10693.  
  10694.         /**
  10695.          * Returns the Graphic objects in the collection that match a query string.
  10696.          *
  10697.          * @see TCADAPI TCWSelectByQuery function.
  10698.          */
  10699.         [
  10700.              helpcontext(0x1006006C)
  10701.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  10702.             ,hidden, restricted
  10703.         ]
  10704.         HRESULT  QuerySet(
  10705.             [in] BSTR Query, // The query string.
  10706.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  10707.             );
  10708.  
  10709.         /**
  10710.          * Creates and adds a group of polylines or polygons to the collection.
  10711.          */
  10712.     [
  10713.          helpcontext(0x1006006D)
  10714.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  10715.         ,restricted, hidden
  10716.     ]
  10717.     HRESULT  AddPolys(
  10718.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  10719.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  10720.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  10721.         );
  10722.  
  10723.         /**
  10724.          * Generates a bounding polygon array to use in drag operations.
  10725.          *
  10726.          * @see View::DragOutline
  10727.          */
  10728.     [
  10729.          helpcontext(0x1006006E)
  10730.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  10731.         ,restricted, hidden
  10732.     ]
  10733.     HRESULT  CreateDragOutline(
  10734.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  10735.         );
  10736.  
  10737.         /**
  10738.          * Creates and adds a bunch of polylines to the collection.
  10739.          * The returned Graphics object contains a set with freshly created
  10740.          * polygons. The user can set properties, etc.
  10741.          */
  10742.     [
  10743.          helpcontext(0x1006006F)
  10744.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  10745.         ,restricted, hidden
  10746.     ]
  10747.     HRESULT  AddPolylines(
  10748.         [in] long NumberOfPolylines, // number of polylines to create
  10749.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  10750.         [in] IMSI_BOOL closed, // whether each polyline is closed
  10751.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  10752.         );
  10753.  
  10754.         /**
  10755.          * Finds the Graphic object in the collection with the given ID.
  10756.          */
  10757.     [
  10758.          helpcontext(0x10060070)
  10759.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  10760.     ]
  10761.     HRESULT  GraphicFromID(
  10762.         [in] long ID, // ID of Graphic object.
  10763.         [out, retval] IGraphic** prop // The Graphic object.
  10764.         );
  10765.  
  10766.         /**
  10767.          * Creates and adds an attribute definition Graphic object to the collection.  
  10768.          */
  10769.     [
  10770.          helpcontext(0x10060071)
  10771.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  10772.         ,restricted, hidden
  10773.     ]
  10774.     HRESULT  AddAttributeDefinition(
  10775.         [in] BSTR Tag, // The text string for the attribute definition tag.
  10776.         [in] double X0, // X coordinate of attdef's starting point.
  10777.         [in] double Y0, // Y coordinate of attdef's starting point.
  10778.         [in] double Z0, // Z coordinate of attdef's starting point.
  10779.         [in] double Height, // Height of attdef object.
  10780.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  10781.         [in, optional] VARIANT* Width, // Width of attdef object.
  10782.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  10783.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  10784.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  10785.         [in, optional] VARIANT* Default, // Default value of attribute.
  10786.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  10787.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10788.         );
  10789.  
  10790.         /////////////////////////////////////////////////////////////////////////////
  10791.         // Selection methods
  10792.  
  10793.         /**
  10794.          * Prints the object.
  10795.          *
  10796.          * @see TCADAPI TCWDrawingPrint function.
  10797.          */
  10798.         [
  10799.              helpcontext(0x10060072)
  10800.             ,helpstring("Prints the object.")
  10801.             ,restricted, hidden
  10802.         ]
  10803.         HRESULT  PrintOut(
  10804.             [in, optional] VARIANT* From, // Starting page number.
  10805.             [in, optional] VARIANT* To, // Ending page number.
  10806.             [in, optional] VARIANT* Copies, // Number of copies to print.
  10807.             [in, optional] VARIANT* ActivePrinter, // Name of printer to use.
  10808.             [in, optional] VARIANT* OutputFileName, // File name to print to.
  10809.             [in, optional] VARIANT* FitToPage, // True to fit on one page.
  10810.             [in, optional] VARIANT* Collate // True to collate copies.
  10811.             );
  10812.  
  10813.         /**
  10814.          * Saves the contents of the Selection object.
  10815.          *
  10816.          * @see TCADAPI TCWDrawingSaveAs function.
  10817.          */
  10818.     [
  10819.          helpcontext(0x10060073)
  10820.         ,helpstring("Saves the contents of the Selection object.")
  10821.     ]
  10822.     HRESULT  SaveAs(
  10823.             [in] BSTR Filename, // The file name to save to.
  10824.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  10825.             );
  10826.  
  10827.     };
  10828.  
  10829.  
  10830.     /**
  10831.      * A named set of references to Graphic objects in a Drawing object.
  10832.      */
  10833.     [
  10834.          object
  10835.         ,uuid(6A481134-E531-11CF-A115-00A024158DAF)
  10836.         ,oleautomation
  10837.         ,dual
  10838.         ,helpcontext(0x10070000)
  10839.         ,helpstring("A named set of references to Graphic objects in a Drawing object.")
  10840.     ]
  10841.     interface GraphicSet : IDispatch
  10842.     {
  10843.  
  10844.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  10845.  
  10846.         /**
  10847.          * Returns an Application object that represents the owner of the specified object.
  10848.          */
  10849.         [
  10850.              propget
  10851.             ,helpcontext(0x10070001)
  10852.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  10853.         ]
  10854.         HRESULT  Application(
  10855.             [out, retval] IApplication** prop // The Application object.
  10856.             );
  10857.  
  10858.         /**
  10859.          * Returns the number of items in the collection.
  10860.          */
  10861.         [
  10862.              propget
  10863.             ,helpcontext(0x10070002)
  10864.             ,helpstring("Returns the number of items in the collection.")
  10865.         ]
  10866.         HRESULT  Count(
  10867.             [out, retval] long* prop // The number of items.
  10868.             );
  10869.  
  10870.         /**
  10871.          * Returns the Drawing object that owns the object.
  10872.          */
  10873.         [
  10874.              propget
  10875.             ,helpcontext(0x10070003)
  10876.             ,helpstring("Returns the Drawing object that owns the object.")
  10877.         ]
  10878.         HRESULT  Drawing(
  10879.             [out, retval] IDrawing** prop // The Drawing object.
  10880.             );
  10881.  
  10882.         /**
  10883.          * Returns part of a collection.
  10884.          */
  10885.         [
  10886.              propget
  10887.             ,id(DISPID_VALUE)
  10888.             ,helpcontext(0x10070004)
  10889.             ,helpstring("Returns part of a collection.")
  10890.         ]
  10891.         HRESULT  Item(
  10892.             [in] VARIANT* Index, // Index of item to return.
  10893.             [out, retval] IGraphic** prop // The item.
  10894.             );
  10895.  
  10896.         /**
  10897.          * Returns the parent object for the specified object.
  10898.          */
  10899.         [
  10900.              propget
  10901.             ,helpcontext(0x10070005)
  10902.             ,helpstring("Returns the parent object for the specified object.")
  10903.         ]
  10904.         HRESULT  Parent(
  10905.             [out, retval] IDispatch** prop // The parent object.
  10906.             );
  10907.  
  10908.         /**
  10909.          * Creates an enumeration object.
  10910.          */
  10911.         [
  10912.              propget
  10913.             ,restricted
  10914.             ,id(DISPID_NEWENUM)
  10915.             ,helpcontext(0x10070006)
  10916.             ,helpstring("Private.  Creates an enumeration object.")
  10917.         ]
  10918.         HRESULT  _NewEnum(
  10919.             [out, retval] IUnknown** prop // The enumeration object.
  10920.             );
  10921.  
  10922.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  10923.  
  10924. #ifndef METHOD_OVERFLOW_BUG
  10925.  
  10926.         /**
  10927.          * Applies a Style object to the contents of the collection.
  10928.          */
  10929.         [
  10930.              helpcontext(0x10070007)
  10931.             ,helpstring("Applies a Style object to the contents of the collection.")
  10932.             ,restricted, hidden
  10933.         ]
  10934.         HRESULT  ApplyStyle(
  10935.             [in] Style* StyleToApply // The Style object to apply.
  10936.             );
  10937.  
  10938.         /**
  10939.          * Checks the spelling of all the text Graphic object's in the collection.
  10940.          */
  10941.         [
  10942.              helpcontext(0x10070008)
  10943.             ,helpstring("Checks the spelling of all the text Graphic object's in the collection.")
  10944.             ,restricted, hidden
  10945.         ]
  10946.         HRESULT  CheckSpelling(
  10947.         [in, optional] VARIANT* CustomDictionary, // The name of a custom dictionary.
  10948.         [in, optional] VARIANT* IgnoreUppercase, // True to ignore case.
  10949.         [in, optional] VARIANT* AlwaysSuggest, // True to suggest corrections.
  10950.         [in, optional] VARIANT* CustomDictionary2, // The name of a custom dictionary.
  10951.         [in, optional] VARIANT* CustomDictionary3, // The name of a custom dictionary.
  10952.         [in, optional] VARIANT* CustomDictionary4, // The name of a custom dictionary.
  10953.         [in, optional] VARIANT* CustomDictionary5, // The name of a custom dictionary.
  10954.         [in, optional] VARIANT* CustomDictionary6, // The name of a custom dictionary.
  10955.         [in, optional] VARIANT* CustomDictionary7, // The name of a custom dictionary.
  10956.         [in, optional] VARIANT* CustomDictionary8, // The name of a custom dictionary.
  10957.         [in, optional] VARIANT* CustomDictionary9, // The name of a custom dictionary.
  10958.         [in, optional] VARIANT* CustomDictionary10 // The name of a custom dictionary.
  10959.         );
  10960.  
  10961.         /**
  10962.          * Adds a hatch pattern to the collection from the Graphic objects in the collection.
  10963.          *
  10964.          * @see TCADAPI TCWCreateHatch function
  10965.          */
  10966.     [
  10967.          helpcontext(0x10070009)
  10968.         ,helpstring("Adds a hatch pattern to the collection from the Graphic objects in the collection.")
  10969.         ,restricted, hidden
  10970.     ]
  10971.     HRESULT  AddHatch(
  10972.         [out, retval] IGraphic** prop // The newly created Graphic object.
  10973.         );
  10974.  
  10975.         /**
  10976.          * Creates a Style object based on the contents of the collection.
  10977.          */
  10978.         [
  10979.              helpcontext(0x1007000A)
  10980.             ,helpstring("Creates a Style object based on the contents of the collection.")
  10981.             ,restricted, hidden
  10982.         ]
  10983.         HRESULT  CreateStyle(
  10984.             [in] Style* BasedOn, // The style to base the new Style object on.
  10985.             [out, retval] Style** prop // The newly created Style object.
  10986.             );
  10987.  
  10988.         /**
  10989.          * Creates and adds an OLE object to the collection.
  10990.          */
  10991.         [
  10992.              helpcontext(0x1007000B)
  10993.             ,helpstring("Creates and adds an OLE object to the collection.")
  10994.             ,restricted, hidden
  10995.         ]
  10996.         HRESULT  AddObject(
  10997.             [in, optional] VARIANT* ClassType, // Name of data format to paste.
  10998.             [in, optional] VARIANT* FileName, // Name of file to create object or link from.
  10999.             [in, optional] VARIANT* LinkToFile, // True if object is a link.
  11000.             [in, optional] VARIANT* DisplayAsIcon, // True to display as icon.
  11001.             [in, optional] VARIANT* IconFileName, // File containing icon.
  11002.             [in, optional] VARIANT* IconIndex, // Index of icon to use if displaying as icon.
  11003.             [in, optional] VARIANT* IconLabel, // Label to display if displaying as icon.
  11004.             [in, optional] VARIANT* X, // X coordinate of center of object.
  11005.             [in, optional] VARIANT* Y, // Y coordinate of center of object.
  11006.             [in, optional] VARIANT* Z, // Z coordinate of center of object.
  11007.             [in, optional] VARIANT* Width, // Width of object.
  11008.             [in, optional] VARIANT* Height, // Height of object.
  11009.             [in, optional] VARIANT* Anchor, // TODO: What's this for?
  11010.             [out, retval] IGraphic** prop // The newly created Graphic object.
  11011.             );
  11012.  
  11013.         /**
  11014.          * Creates and adds a single line segment to the collection.
  11015.          */
  11016.     [
  11017.          helpcontext(0x1007000C)
  11018.         ,helpstring("Creates and adds a single line segment to the collection.")
  11019.         ,restricted, hidden
  11020.     ]
  11021.     HRESULT  AddLineTanArcPoint(
  11022.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  11023.         [in] double X0, // X coordinate on arc for line endpoint.
  11024.         [in] double Y0, // Y coordinate on arc for line endpoint.
  11025.         [in] double Z0, // Z coordinate on arc for line endpoint.
  11026.         [in] double length, // length of tangent line.
  11027.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11028.         );
  11029.  
  11030.         /**
  11031.          * Creates and adds a single line segment to the collection.
  11032.          */
  11033.     [
  11034.          helpcontext(0x1007000D)
  11035.         ,helpstring("Creates and adds a single line segment to the collection.")
  11036.         ,restricted, hidden
  11037.     ]
  11038.     HRESULT  AddLineTanToArc(
  11039.         [in] IGraphic* TangentTo, // Arc to draw line tangent to.
  11040.         [in] double X0, // X coordinate on arc for the line's first endpoint.
  11041.         [in] double Y0, // Y coordinate on arc for the line's first endpoint.
  11042.         [in] double Z0, // Z coordinate on arc for the line's first endpoint.
  11043.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11044.         );
  11045.  
  11046.         /**
  11047.          * Creates and adds a single line segment to the collection.
  11048.          */
  11049.     [
  11050.          helpcontext(0x1007000E)
  11051.         ,helpstring("Creates and adds a single line segment to the collection.")
  11052.             ,restricted, hidden
  11053.     ]
  11054.     HRESULT  AddLineTanFromArc(
  11055.         [in] IGraphic* TangentFrom, // Arc to draw line tangent from.
  11056.         [in] double X0, // X coordinate on arc for the line's second endpoint.
  11057.         [in] double Y0, // Y coordinate on arc for the line's second endpoint.
  11058.         [in] double Z0, // Z coordinate on arc for the line's second endpoint.
  11059.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11060.         );
  11061.  
  11062.         /**
  11063.          * Creates and adds a single line segment to the collection.
  11064.          */
  11065.     [
  11066.          helpcontext(0x1007000F)
  11067.         ,helpstring("Creates and adds a single line segment to the collection.")
  11068.         ,restricted, hidden
  11069.     ]
  11070.     HRESULT  AddLineTan2Arcs(
  11071.         [in] IGraphic* Arc1, // First arc.
  11072.         [in] IGraphic* Arc2, // Second arc.
  11073.         [in] IMSI_BOOL CounterClockwise, // True if tangent direction is counterclockwise.
  11074.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11075.         );
  11076.  
  11077.         /**
  11078.          * Creates and adds a multi segment leader (callout) line to the collection.
  11079.          * The returned Graphic object contains only a beginning vertex.  The user must
  11080.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11081.          * and a Graphic.Finish call to complete the Graphic object.
  11082.          */
  11083.     [
  11084.          helpcontext(0x10070010)
  11085.         ,helpstring("Creates and adds a multi segment leader (callout) line to the collection.")
  11086.         ,restricted, hidden
  11087.     ]
  11088.     HRESULT  AddDimensionLeader(
  11089.         [in] double X0, // X coordinate of the first endpoint.
  11090.         [in] double Y0, // Y coordinate of the first endpoint.
  11091.         [in] double Z0, // Z coordinate of the first endpoint.
  11092.         [in, optional] BSTR Text, // The text for the leader.
  11093.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11094.         );
  11095.  
  11096.         /**
  11097.          * Creates and adds a baseline dimension to the collection.
  11098.          * The returned Graphic object contains only a beginning vertex.  The user must
  11099.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11100.          * and a Graphic.Finish call to complete the Graphic object.
  11101.          */
  11102.     [
  11103.          helpcontext(0x10070011)
  11104.         ,helpstring("Creates and adds a WHATEVER to the collection.")
  11105.         ,restricted, hidden
  11106.     ]
  11107.     HRESULT  AddDimensionBaseline(
  11108.         [in] IGraphic* AddTo, // dimension line to add baseline dimension to.
  11109.         [in] double X0, // X coordinate of second extension line.
  11110.         [in] double Y0, // Y coordinate of second extension line.
  11111.         [in] double Z0, // Z coordinate of second extension line.
  11112.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11113.         );
  11114.  
  11115.         /**
  11116.          * Creates and adds a continuous dimension to the collection.
  11117.          * The returned Graphic object contains only a beginning vertex.  The user must
  11118.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11119.          * and a Graphic.Finish call to complete the Graphic object.
  11120.          */
  11121.     [
  11122.          helpcontext(0x10070012)
  11123.         ,helpstring("Creates and adds a continuous dimension to the collection.")
  11124.         ,restricted, hidden
  11125.     ]
  11126.     HRESULT  AddDimensionContinuous(
  11127.         [in] IGraphic* AddTo, // dimension line to add continuous dimension to.
  11128.         [in] double X0, // X coordinate of second extension line.
  11129.         [in] double Y0, // Y coordinate of second extension line.
  11130.         [in] double Z0, // Z coordinate of second extension line.
  11131.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11132.         );
  11133.  
  11134.         /**
  11135.          * Creates and adds a single segment double line to the collection.
  11136.          *
  11137.          * @see TCADAPI TCWDoubleLineSingle function
  11138.          */
  11139.     [
  11140.          helpcontext(0x10070013)
  11141.         ,helpstring("Creates and adds a single segment double line to the collection.")
  11142.         ,restricted, hidden
  11143.     ]
  11144.     HRESULT  AddDoubleLineSingle(
  11145.         [in] double X0, // X coordinate of the first point.
  11146.         [in] double Y0, // Y coordinate of the first point.
  11147.         [in] double Z0, // Z coordinate of the first point.
  11148.         [in] double X1, // X coordinate of the second point.
  11149.         [in] double Y1, // Y coordinate of the second point.
  11150.         [in] double Z1, // Z coordinate of the second point.
  11151.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11152.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11153.         );
  11154.  
  11155.         /**
  11156.          * Creates and adds a double regular polygon to the collection.
  11157.          *
  11158.          * @see TCADAPI TCWDoubleLinePolygon function
  11159.          */
  11160.     [
  11161.          helpcontext(0x10070014)
  11162.         ,helpstring("Creates and adds a double regular polygon to the collection.")
  11163.         ,restricted, hidden
  11164.     ]
  11165.     HRESULT  AddDoubleLinePolygon(
  11166.         [in] double X0, // X coordinate of the center point.
  11167.         [in] double Y0, // Y coordinate of the center point.
  11168.         [in] double Z0, // Z coordinate of the center point.
  11169.         [in] double X1, // X coordinate of the corner point.
  11170.         [in] double Y1, // Y coordinate of the corner point.
  11171.         [in] double Z1, // Z coordinate of the corner point.
  11172.         [in] long Sides, // Number of sides.
  11173.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11174.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11175.         );
  11176.  
  11177.         /**
  11178.          * Creates and adds a double rectangle to the collection.
  11179.          *
  11180.          * @see TCADAPI TCWDoubleLineRectangle function
  11181.          */
  11182.     [
  11183.          helpcontext(0x10070015)
  11184.         ,helpstring("Creates and adds a double rectangle to the collection.")
  11185.         ,restricted, hidden
  11186.     ]
  11187.     HRESULT  AddDoubleLineRectangle(
  11188.         [in] double X0, // X coordinate of the upper left corner.
  11189.         [in] double Y0, // Y coordinate of the upper left corner.
  11190.         [in] double Z0, // Z coordinate of the upper left corner.
  11191.         [in] double X1, // X coordinate of the lower right corner.
  11192.         [in] double Y1, // Y coorindate of the lower right corner.
  11193.         [in] double Z1, // Z coorindate of the lower right corner.
  11194.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11195.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11196.         );
  11197.  
  11198.         /**
  11199.          * Creates and adds a double rotated rectangle to the collection.
  11200.          *
  11201.          * @see TCADAPI TCWDoubleLineRotatedRectangle function
  11202.          */
  11203.     [
  11204.          helpcontext(0x10070016)
  11205.         ,helpstring("Creates and adds a double rotated rectangle to the collection.")
  11206.         ,restricted, hidden
  11207.     ]
  11208.     HRESULT  AddDoubleLineRotatedRectangle(
  11209.         [in] double X0, // X coordinate of the upper left corner.
  11210.         [in] double Y0, // Y coordinate of the upper left corner.
  11211.         [in] double Z0, // Z coordinate of the upper left corner.
  11212.         [in] double X1, // X coordinate of the lower right corner.
  11213.         [in] double Y1, // Y coorindate of the lower right corner.
  11214.         [in] double Z1, // Z coorindate of the lower right corner.
  11215.         [in] double Angle, // Angle of rotation in radians.
  11216.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11217.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11218.         );
  11219.  
  11220.         /**
  11221.          * Creates and adds a double line to the collection.
  11222.          *
  11223.          * @see TCADAPI TCWDoubleLinePerpendicular function
  11224.          */
  11225.     [
  11226.          helpcontext(0x10070017)
  11227.         ,helpstring("Creates and adds a double line to the collection.")
  11228.         ,restricted, hidden
  11229.     ]
  11230.     HRESULT  AddDoubleLinePerpendicular(
  11231.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  11232.         [in] double X0, // X coordinate of the point on the existing line.
  11233.         [in] double Y0, // Y coordinate of the point on the existing line.
  11234.         [in] double Z0, // Z coordinate of the point on the existing line.
  11235.         [in] double X1, // X coordinate of the second point on the new line.
  11236.         [in] double Y1, // Y coordinate of the second point on the new line.
  11237.         [in] double Z1, // Z coordinate of the second point on the new line.
  11238.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11239.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11240.         );
  11241.  
  11242.         /**
  11243.          * Creates and adds a multiple segment double line to the collection.
  11244.          * The returned Graphic object contains only a beginning vertex.  The user must
  11245.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11246.          * and a Graphic.Finish call to complete the Graphic object.
  11247.          *
  11248.          * @see TCADAPI TCWDoubleLineMultiline function
  11249.          */
  11250.     [
  11251.          helpcontext(0x10070018)
  11252.         ,helpstring("Creates and adds a multiple segment double line to the collection.")
  11253.         ,restricted, hidden
  11254.     ]
  11255.     HRESULT  AddDoubleLineMultiline(
  11256.         [in] double X0, // X coordinate of first endpoint.
  11257.         [in] double Y0, // Y coordinate of first endpoint.
  11258.         [in] double Z0, // Z coordinate of first endpoint.
  11259.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11260.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11261.         );
  11262.  
  11263.         /**
  11264.          * Creates and adds a double irregular polygon to the collection.
  11265.          * The returned Graphic object contains only a beginning vertex.  The user must
  11266.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  11267.          * and a Graphic.Close call to complete the Graphic object.
  11268.          *
  11269.          * @see TCADAPI TCWDoubleLineIrregularPolygon function
  11270.          */
  11271.     [
  11272.          helpcontext(0x10070019)
  11273.         ,helpstring("Creates and adds a double irregular polygon to the collection.")
  11274.         ,restricted, hidden
  11275.     ]
  11276.     HRESULT  AddDoubleLineIrregularPolygon(
  11277.         [in] double X0, // X coordinate of first endpoint.
  11278.         [in] double Y0, // Y coordinate of first endpoint.
  11279.         [in] double Z0, // Z coordinate of first endpoint.
  11280.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11281.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11282.         );
  11283.  
  11284.         /**
  11285.          * Creates and adds a double line to the collection.
  11286.          *
  11287.          * @see TCADAPI TCWDoubleLineParallel function
  11288.          */
  11289.     [
  11290.          helpcontext(0x1007001A)
  11291.         ,helpstring("Creates and adds a double line to the collection.")
  11292.         ,restricted, hidden
  11293.     ]
  11294.     HRESULT  AddDoubleLineParallel(
  11295.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  11296.         [in] double X0, // X coordinate of the new line.
  11297.         [in] double Y0, // Y coordinate of the new line.
  11298.         [in] double Z0, // Z coordinate of the new line.
  11299.         [in, optional] VARIANT* DoubleLineOffset, // An ImsiDoubleLineOffet.
  11300.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11301.         );
  11302.  
  11303.         /**
  11304.          * Creates and adds a circle to the collection.
  11305.          */
  11306.     [
  11307.          helpcontext(0x1007001B)
  11308.         ,helpstring("Creates and adds a circle to the collection.")
  11309.         ,restricted, hidden
  11310.     ]
  11311.     HRESULT  AddCircleTanToArc(
  11312.         [in] IGraphic* TangentTo, // Arc or circle to draw new circle tangent to.
  11313.         [in] double X0, // X coordinate of the new circle's center point.
  11314.         [in] double Y0, // Y coordinate of the new circle's center point.
  11315.         [in] double Z0, // Z coordinate of the new circle's center point.
  11316.         [in] double X1, // X coordinate of the new circle's radius point.
  11317.         [in] double Y1, // Y coordinate of the new circle's radius point.
  11318.         [in] double Z1, // Z coordinate of the new circle's radius point.
  11319.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11320.         );
  11321.  
  11322.         /**
  11323.          * Creates and adds a circle to the collection.
  11324.          */
  11325.     [
  11326.          helpcontext(0x1007001C)
  11327.         ,helpstring("Creates and adds a circle to the collection.")
  11328.         ,restricted, hidden
  11329.     ]
  11330.     HRESULT  AddCircleTanToLine(
  11331.         [in] IGraphic* TangentTo, // Line to draw new circle tangent to.
  11332.         [in] double X0, // X coordinate of the new circle's center point.
  11333.         [in] double Y0, // Y coordinate of the new circle's center point.
  11334.         [in] double Z0, // Z coordinate of the new circle's center point.
  11335.         [in] double X1, // X coordinate of the new circle's radius point.
  11336.         [in] double Y1, // Y coordinate of the new circle's radius point.
  11337.         [in] double Z1, // Z coordinate of the new circle's radius point.
  11338.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11339.         );
  11340.  
  11341.         /**
  11342.          * Creates and adds a circle to the collection.
  11343.          */
  11344.     [
  11345.          helpcontext(0x1007001D)
  11346.         ,helpstring("Creates and adds a circle to the collection.")
  11347.         ,restricted, hidden
  11348.     ]
  11349.     HRESULT  AddCircleTan3Arcs(
  11350.         [in] IGraphic* Arc1, // First arc or circle.
  11351.         [in] IGraphic* Arc2, // Second arc or circle.
  11352.         [in] IGraphic* Arc3, // Third arc or circle.
  11353.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11354.         );
  11355.  
  11356.         /**
  11357.          * Creates and adds an arc to the collection.
  11358.          */
  11359.     [
  11360.          helpcontext(0x1007001E)
  11361.         ,helpstring("Creates and adds an arc to the collection.")
  11362.         ,restricted, hidden
  11363.     ]
  11364.     HRESULT  AddArcTanToArc(
  11365.         [in] IGraphic* TangentTo, // Arc or circle to draw arc tangent to.
  11366.         [in] double X0, // X coordinate of new arc's radius point.
  11367.         [in] double Y0, // Y coordinate of new arc's radius point.
  11368.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  11369.         [in] double X1, // X coordinate of point on existing arc.
  11370.         [in] double Y1, // Y coordinate of point on existing arc.
  11371.         [in] double Z1, // Z coordinate of ponit on existing arc.
  11372.         [in] double StartAngle, // Starting angle in radians.
  11373.         [in] double EndAngle, // Ending angle in radians.
  11374.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11375.         );
  11376.  
  11377.         /**
  11378.          * Creates and adds an arc to the collection.
  11379.          */
  11380.     [
  11381.          helpcontext(0x1007001F)
  11382.         ,helpstring("Creates and adds an arc to the collection.")
  11383.         ,restricted, hidden
  11384.     ]
  11385.     HRESULT  AddArcTanToLine(
  11386.         [in] IGraphic* TangentTo, // Line to draw arc tangent to.
  11387.         [in] double X0, // X coordinate of new arc's radius point.
  11388.         [in] double Y0, // Y coordinate of new arc's radius point.
  11389.         [in] double Z0, // Z coordinate of new arc's radius ponit.
  11390.         [in] double X1, // X coordinate of point on existing line.
  11391.         [in] double Y1, // Y coordinate of point on existing line.
  11392.         [in] double Z1, // Z coordinate of ponit on existing line.
  11393.         [in] double StartAngle, // Starting angle in radians.
  11394.         [in] double EndAngle, // Ending angle in radians.
  11395.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11396.         );
  11397.  
  11398.         /**
  11399.          * Creates and adds an arc to the collection.
  11400.          */
  11401.     [
  11402.          helpcontext(0x10070020)
  11403.         ,helpstring("Creates and adds an arc to the collection.")
  11404.         ,restricted, hidden
  11405.     ]
  11406.     HRESULT  AddArcTanTo3Arcs(
  11407.         [in] IGraphic* Arc1, // First arc or circle.
  11408.         [in] IGraphic* Arc2, // Second arc or circle.
  11409.         [in] IGraphic* Arc3, // Third arc or circle.
  11410.         [in] double StartAngle, // Starting angle in radians.
  11411.         [in] double EndAngle, // Ending angle in radians.
  11412.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11413.         );
  11414.  
  11415.         /**
  11416.          * Creates and adds a horizontal dimension to the collection.
  11417.          *
  11418.          * @see TCADAPI TCWDimensionHorizontal, TCWDimensionHorizontalEntity functions
  11419.          */
  11420.     [
  11421.          helpcontext(0x10070021)
  11422.         ,helpstring("Creates and adds a horizontal dimension to the collection.")
  11423.         ,restricted, hidden
  11424.     ]
  11425.     HRESULT  AddDimensionHorizontal(
  11426.         [in] double X0, // X coordinate of first extension line.
  11427.         [in] double Y0, // Y coordinate of first extension line.
  11428.         [in] double Z0, // Z coordinate of first extension line.
  11429.         [in] double X1, // X coordinate of second extension line.
  11430.         [in] double Y1, // Y coordinate of second extension line.
  11431.         [in] double Z1, // Z coordinate of second extension line.
  11432.         [in] double X2, // X coordinate of dimension.
  11433.         [in] double Y2, // Y coordinate of dimension.
  11434.         [in] double Z2, // Z coordinate of dimension.
  11435.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11436.         );
  11437.  
  11438.         /**
  11439.          * Creates and adds a vertical dimension to the collection.
  11440.          *
  11441.          * @see TCADAPI TCWDimensionVertical, TCWDimensionVerticalEntity functions
  11442.          */
  11443.     [
  11444.          helpcontext(0x10070022)
  11445.         ,helpstring("Creates and adds a vertical dimension to the collection.")
  11446.         ,restricted, hidden
  11447.     ]
  11448.     HRESULT  AddDimensionVertical(
  11449.         [in] double X0, // X coordinate of first extension line.
  11450.         [in] double Y0, // Y coordinate of first extension line.
  11451.         [in] double Z0, // Z coordinate of first extension line.
  11452.         [in] double X1, // X coordinate of second extension line.
  11453.         [in] double Y1, // Y coordinate of second extension line.
  11454.         [in] double Z1, // Z coordinate of second extension line.
  11455.         [in] double X2, // X coordinate of dimension.
  11456.         [in] double Y2, // Y coordinate of dimension.
  11457.         [in] double Z2, // Z coordinate of dimension.
  11458.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11459.         );
  11460.  
  11461.         /**
  11462.          * Creates and adds a parallel dimension to the collection.
  11463.          *
  11464.          * @see TCADAPI TCWDimensionParallel, TCWDimensionParallelEntity functions
  11465.          */
  11466.     [
  11467.          helpcontext(0x10070023)
  11468.         ,helpstring("Creates and adds a parallel dimension to the collection.")
  11469.         ,restricted, hidden
  11470.     ]
  11471.     HRESULT  AddDimensionParallel(
  11472.         [in] double X0, // X coordinate of first extension line.
  11473.         [in] double Y0, // Y coordinate of first extension line.
  11474.         [in] double Z0, // Z coordinate of first extension line.
  11475.         [in] double X1, // X coordinate of second extension line.
  11476.         [in] double Y1, // Y coordinate of second extension line.
  11477.         [in] double Z1, // Z coordinate of second extension line.
  11478.         [in] double X2, // X coordinate of dimension.
  11479.         [in] double Y2, // Y coordinate of dimension.
  11480.         [in] double Z2, // Z coordinate of dimension.
  11481.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11482.         );
  11483.  
  11484.         /**
  11485.          * Creates and adds a rotated dimension to the collection.
  11486.          */
  11487.     [
  11488.          helpcontext(0x10070024)
  11489.         ,helpstring("Creates and adds a rotated dimension to the collection.")
  11490.         ,restricted, hidden
  11491.     ]
  11492.     HRESULT  AddDimensionRotated(
  11493.         [in] double X0, // X coordinate of first endpoint defining angle and direction.
  11494.         [in] double Y0, // Y coordinate of first endpoint defining angle and direction.
  11495.         [in] double Z0, // Z coordinate of first endpoint defining angle and direction.
  11496.         [in] double X1, // X coordinate of second endpoint defining angle and direction.
  11497.         [in] double Y1, // Y coordinate of second endpoint defining angle and direction.
  11498.         [in] double Z1, // Z coordinate of second endpoint defining angle and direction.
  11499.         [in] double X2, // X coordinate of first extension line.
  11500.         [in] double Y2, // Y coordinate of first extension line.
  11501.         [in] double Z2, // Z coordinate of first extension line.
  11502.         [in] double X3, // X coordinate of second extension line.
  11503.         [in] double Y3, // Y coordinate of second extension line.
  11504.         [in] double Z3, // Z coordinate of second extension line.
  11505.         [in] double X4, // X coordinate of dimension.
  11506.         [in] double Y4, // Y coordinate of dimension.
  11507.         [in] double Z4, // Z coordinate of dimension.
  11508.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11509.         );
  11510.  
  11511.         /**
  11512.          * Creates and adds a datum dimension to the collection.
  11513.          */
  11514.     [
  11515.          helpcontext(0x10070025)
  11516.         ,helpstring("Creates and adds a datum dimension to the collection.")
  11517.         ,restricted, hidden
  11518.     ]
  11519.     HRESULT  AddDimensionDatum(
  11520.         [in] double X0, // X coordinate of first extension line.
  11521.         [in] double Y0, // Y coordinate of first extension line.
  11522.         [in] double Z0, // Z coordinate of first extension line.
  11523.         [in] double X1, // X coordinate of second extension line.
  11524.         [in] double Y1, // Y coordinate of second extension line.
  11525.         [in] double Z1, // Z coordinate of second extension line.
  11526.         [in] double X2, // X coordinate of dimension.
  11527.         [in] double Y2, // Y coordinate of dimension.
  11528.         [in] double Z2, // Z coordinate of dimension.
  11529.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11530.         );
  11531.  
  11532.         /**
  11533.          * Creates and adds an angular dimension to the collection.
  11534.          */
  11535.     [
  11536.          helpcontext(0x10070026)
  11537.         ,helpstring("Creates and adds an angular dimension to the collection.")
  11538.         ,restricted, hidden
  11539.     ]
  11540.     HRESULT  AddDimensionAngular(
  11541.         [in] IGraphic* Line1, // First graphic.
  11542.         [in] IGraphic* Line2, // Second graphic.
  11543.         [in] double X0, // X coordinate of dimension.
  11544.         [in] double Y0, // Y coordinate of dimension.
  11545.         [in] double Z0, // Z coordinate of dimension.
  11546.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11547.         );
  11548.  
  11549.         /**
  11550.          * Creates and adds a radial dimension to the collection.
  11551.          */
  11552.     [
  11553.          helpcontext(0x10070027)
  11554.         ,helpstring("Creates and adds a radial dimension to the collection.")
  11555.         ,restricted, hidden
  11556.     ]
  11557.     HRESULT  AddDimensionRadius(
  11558.         [in] IGraphic* Arc, // Arc or circle.
  11559.         [in] double X0, // X coordinate of dimension text.
  11560.         [in] double Y0, // Y coordinate of dimension text.
  11561.         [in] double Z0, // Z coordinate of dimension text.
  11562.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11563.         );
  11564.  
  11565.         /**
  11566.          * Creates and adds a diameter dimension to the collection.
  11567.          */
  11568.     [
  11569.          helpcontext(0x10070028)
  11570.         ,helpstring("Creates and adds a diameter dimension to the collection.")
  11571.         ,restricted, hidden
  11572.     ]
  11573.     HRESULT  AddDimensionDiameter(
  11574.         [in] IGraphic* Arc, // Arc or circle.
  11575.         [in] double X0, // X coordinate of dimension text.
  11576.         [in] double Y0, // Y coordinate of dimension text.
  11577.         [in] double Z0, // Z coordinate of dimension text.
  11578.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11579.         );
  11580.  
  11581. #endif //METHOD_OVERFLOW_BUG
  11582.  
  11583.         /**
  11584.          * Creates and adds a new Graphic object to the collection.
  11585.          */
  11586.         [
  11587.              helpcontext(0x10070029)
  11588.             ,helpstring("Creates and adds a new Graphic object to the collection.")
  11589.         ]
  11590.         HRESULT  Add(
  11591.             [in, optional] VARIANT* GraphicType, // The type of the Graphic object.
  11592.             [in, optional] VARIANT* RegenMethod, // A RegenMethod object or index.
  11593.             [in, optional] VARIANT* Inherit, // True if the new Graphic object will inherit the properties of its parent.
  11594.             [in, optional] VARIANT* Style, // Not used in current implementation.
  11595.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  11596.             [in, optional] VARIANT* After, // The Graphic object or index that will precede the added Graphic object.
  11597.             [out, retval] IGraphic** prop // The newly created Graphic object.
  11598.             );
  11599.  
  11600.         /**
  11601.          * Adds an existing Graphic object to the collection.
  11602.          */
  11603.         [
  11604.              helpcontext(0x1007002A)
  11605.             ,helpstring("Adds an existing Graphic object to the collection.")
  11606.         ]
  11607.         HRESULT  AddGraphic(
  11608.             [in] IGraphic* Graphic,    // The Graphic object to add.
  11609.             [in, optional] VARIANT* Before, // The Graphic object or index that will follow the added Graphic object.
  11610.             [in, optional] VARIANT* After // The Graphic object or index that will precede the added Graphic object.
  11611.             );
  11612.  
  11613.         /**
  11614.          * Returns the collection's bounding box.
  11615.          */
  11616.         [
  11617.              helpcontext(0x1007002B)
  11618.             ,helpstring("Returns the collection's bounding box.")
  11619.             ,restricted, hidden
  11620.         ]
  11621.         HRESULT  CalcBoundingBox(
  11622.             [in, optional] VARIANT* Transform, // A transformation Matrix object.
  11623.             [out, retval] BoundingBox** prop // The BoundingBox object.
  11624.             );
  11625.  
  11626.         /**
  11627.          * Clears the contents of the collection.
  11628.          */
  11629.         [
  11630.              helpcontext(0x1007002C)
  11631.             ,helpstring("Clears the contents of the collection.")
  11632.         ]
  11633.         HRESULT  Clear(
  11634.             [in, optional] VARIANT* CosmeticOnly // True to only clear cosmetics.
  11635.             );
  11636.  
  11637.         /**
  11638.          * Clears construction lines and arcs.
  11639.          *
  11640.          * @see TCADAPI TCWClearAllConstructions function.
  11641.          */
  11642.         [
  11643.              helpcontext(0x1007002D)
  11644.             ,helpstring("Clears construction lines and arcs.")
  11645.             ,restricted, hidden
  11646.         ]
  11647.         HRESULT  ClearConstruction(
  11648.             );
  11649.  
  11650.         /**
  11651.          * Copies the contents of the collection to the Clipboard.
  11652.          */
  11653.         [
  11654.              helpcontext(0x1007002E)
  11655.             ,helpstring("Copies the contents of the collection to the Clipboard.")
  11656.             ,restricted, hidden
  11657.         ]
  11658.         HRESULT  Copy(
  11659.             );
  11660.  
  11661.         /**
  11662.          * Cuts the contents of the collection to the Clipboard.
  11663.          */
  11664.         [
  11665.              helpcontext(0x1007002F)
  11666.             ,helpstring("Cuts the contents of the collection to the Clipboard.")
  11667.             ,restricted, hidden
  11668.         ]
  11669.         HRESULT  Cut(
  11670.             );
  11671.  
  11672.         /**
  11673.          * Draws all the Graphic objects in the collection.
  11674.          */
  11675.     [
  11676.          helpcontext(0x10070030)
  11677.         ,helpstring("Draws all the Graphic objects in the collection.")
  11678.         ,restricted, hidden
  11679.     ]
  11680.     HRESULT  Draw(
  11681.         [in] VARIANT* View // If supplied, the View object to draw on.
  11682.         );
  11683.  
  11684.         /**
  11685.          * Removes an item from the collection.
  11686.          */
  11687.         [
  11688.              helpcontext(0x10070031)
  11689.             ,helpstring("Removes an item from the collection.")
  11690.         ]
  11691.         HRESULT  Remove(
  11692.             [in] VARIANT* Index, // The index of item to be removed.
  11693.             [out, retval] IGraphic** prop // The Graphic object that was removed.
  11694.             );
  11695.  
  11696.         /**
  11697.          * Selects all the Graphic object's in the collection.
  11698.          *
  11699.          * @see TCADAPI TCWSelectAll function.
  11700.          */
  11701.         [
  11702.              helpcontext(0x10070032)
  11703.             ,helpstring("Selects all the Graphic object's in the collection.")
  11704.         ]
  11705.         HRESULT  Select(
  11706.             );
  11707.  
  11708.         /**
  11709.          * Unselects all the Graphic object's in the collection.
  11710.          *
  11711.          * @see TCADAPI TCWDeselectAll function.
  11712.          */
  11713.         [
  11714.              helpcontext(0x10070033)
  11715.             ,helpstring("Unselects all the Graphic object's in the collection.")
  11716.         ]
  11717.         HRESULT  Unselect(
  11718.             );
  11719.  
  11720.         //////////////////////////// AddXXXMethods \\\\\\\\\\\\\\\\\\\\\\\\\\\\
  11721.  
  11722.         /**
  11723.          * Creates and adds a construction line to the collection.
  11724.          *
  11725.          * @see TCADAPI TCWConstructionAngularLine function
  11726.          */
  11727.     [
  11728.          helpcontext(0x10070034)
  11729.         ,helpstring("Creates and adds a construction line to the collection.")
  11730.         ,restricted, hidden
  11731.     ]
  11732.     HRESULT  AddConstructionAngularLine(
  11733.         [in] double X0, // X coordinate of the first point on line.
  11734.         [in] double Y0, // Y coordinate of the first point on line.
  11735.         [in] double Z0, // Z coordinate of the first point on line.
  11736.         [in] double X1, // X coordinate of the second point on line.
  11737.         [in] double Y1, // Y coordinate of the second point on line.
  11738.         [in] double Z1, // Z coordinate of the second point on line.
  11739.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11740.         );
  11741.  
  11742.         /**
  11743.          * Creates and adds a construction line to the collection.
  11744.          *
  11745.          * @see TCADAPI TCWConstructionHorizontalLine function
  11746.          */
  11747.     [
  11748.          helpcontext(0x10070035)
  11749.         ,helpstring("Creates and adds a construction line to the collection.")
  11750.         ,restricted, hidden
  11751.     ]
  11752.     HRESULT  AddConstructionHorizontalLine(
  11753.         [in] double X0, // X coordinate of the line.
  11754.         [in] double Y0, // Y coordinate of the line.
  11755.         [in] double Z0, // Z coordinate of the line.
  11756.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11757.         );
  11758.  
  11759.         /**
  11760.          * Creates and adds a construction line to the collection.
  11761.          *
  11762.          * @see TCADAPI TCWConstructionVerticalLine function
  11763.          */
  11764.     [
  11765.          helpcontext(0x10070036)
  11766.         ,helpstring("Creates and adds a construction line to the collection.")
  11767.         ,restricted, hidden
  11768.     ]
  11769.     HRESULT  AddConstructionVerticalLine(
  11770.         [in] double X0, // X coordinate of the line.
  11771.         [in] double Y0, // Y coordinate of the line.
  11772.         [in] double Z0, // Z coordinate of the line.
  11773.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11774.         );
  11775.  
  11776.         /**
  11777.          * Creates and adds a construction circle to the collection.
  11778.          *
  11779.          * @see TCADAPI TCWConstructionCenterAndPointCircle function
  11780.          */
  11781.     [
  11782.          helpcontext(0x10070037)
  11783.         ,helpstring("Creates and adds a construction circle to the collection.")
  11784.         ,restricted, hidden
  11785.     ]
  11786.     HRESULT  AddConstructionCenterAndPointCircle(
  11787.         [in] double X0, // X coordinate of the center point.
  11788.         [in] double Y0, // Y coordinate of the center point.
  11789.         [in] double Z0, // Z coordinate of the center point.
  11790.         [in] double X1, // X coordinate of the perimeter point.
  11791.         [in] double Y1, // Y coordinate of the perimeter point.
  11792.         [in] double Z1, // Z coordinate of the perimeter point.
  11793.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11794.         );
  11795.  
  11796.         /**
  11797.          * Creates and adds a construction circle to the collection.
  11798.          *
  11799.          * @see TCADAPI TCWConstructionDoublePointCircle function
  11800.          */
  11801.     [
  11802.          helpcontext(0x10070038)
  11803.         ,helpstring("Creates and adds a construction circle to the collection.")
  11804.         ,restricted, hidden
  11805.     ]
  11806.     HRESULT  AddConstructionDoublePointCircle(
  11807.         [in] double X0, // X coordinate of the first point.
  11808.         [in] double Y0, // Y coordinate of the first point.
  11809.         [in] double Z0, // Z coordinate of the first point.
  11810.         [in] double X1, // X coordinate of the second point.
  11811.         [in] double Y1, // Y coordinate of the second point.
  11812.         [in] double Z1, // Z coordinate of the second point.
  11813.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11814.         );
  11815.  
  11816.         /**
  11817.          * Creates and adds a construction circle to the collection.
  11818.          *
  11819.          * @see TCADAPI TCWConstructionTriplePointCircle function
  11820.          */
  11821.     [
  11822.          helpcontext(0x10070039)
  11823.         ,helpstring("Creates and adds a construction circle to the collection.")
  11824.         ,restricted, hidden
  11825.     ]
  11826.     HRESULT  AddConstructionTriplePointCircle(
  11827.         [in] double X0, // X coordinate of the first point.
  11828.         [in] double Y0, // Y coordinate of the first point.
  11829.         [in] double Z0, // Z coordinate of the first point.
  11830.         [in] double X1, // X coordinate of the second point.
  11831.         [in] double Y1, // Y coordinate of the second point.
  11832.         [in] double Z1, // Z coordinate of the second point.
  11833.         [in] double X2, // X coordinate of the third point.
  11834.         [in] double Y2, // Y coordinate of the third point.
  11835.         [in] double Z2, // Z coordinate of the third point.
  11836.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11837.         );
  11838.  
  11839.         /**
  11840.          * Creates and adds a dot marker to the collection.
  11841.          *
  11842.          * @see TCADAPI TCWDot function
  11843.          */
  11844.     [
  11845.          helpcontext(0x1007003A)
  11846.         ,helpstring("Creates and adds a dot marker to the collection.")
  11847.         ,restricted, hidden
  11848.     ]
  11849.     HRESULT  AddDot(
  11850.         [in] double X0, // X coordinate of the point.
  11851.         [in] double Y0, // Y coordinate of the point.
  11852.         [in] double Z0, // Z coordinate of the point.
  11853.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11854.         );
  11855.  
  11856.         /**
  11857.          * Creates and adds a star to the collection.
  11858.          *
  11859.          * @see TCADAPI TCWStar function
  11860.          */
  11861.     [
  11862.          helpcontext(0x1007003B)
  11863.         ,helpstring("Creates and adds a star marker to the collection.")
  11864.         ,restricted, hidden
  11865.     ]
  11866.     HRESULT  AddStar(
  11867.         [in] double X0, // X coordinate of the point.
  11868.         [in] double Y0, // Y coordinate of the point.
  11869.         [in] double Z0, // Z coordinate of the point.
  11870.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11871.         );
  11872.  
  11873.         /**
  11874.          * Creates and adds a square marker to the collection.
  11875.          *
  11876.          * @see TCADAPI TCWSquare function
  11877.          */
  11878.     [
  11879.          helpcontext(0x1007003C)
  11880.         ,helpstring("Creates and adds a square marker to the collection.")
  11881.         ,restricted, hidden
  11882.     ]
  11883.     HRESULT  AddSquare(
  11884.         [in] double X0, // X coordinate of the point.
  11885.         [in] double Y0, // Y coordinate of the point.
  11886.         [in] double Z0, // Z coordinate of the point.
  11887.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11888.         );
  11889.  
  11890.         /**
  11891.          * Creates and adds a cross marker to the collection.
  11892.          *
  11893.          * @see TCADAPI TCWCross function
  11894.          */
  11895.     [
  11896.          helpcontext(0x1007003D)
  11897.         ,helpstring("Creates and adds a cross marker to the collection.")
  11898.         ,restricted, hidden
  11899.     ]
  11900.     HRESULT  AddCross(
  11901.         [in] double X0, // X coordinate of the point.
  11902.         [in] double Y0, // Y coordinate of the point.
  11903.         [in] double Z0, // Z coordinate of the point.
  11904.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11905.         );
  11906.  
  11907.         /**
  11908.          * Creates and adds a circle marker to the collection.
  11909.          *
  11910.          * @see TCADAPI TCWCircle function
  11911.          */
  11912.     [
  11913.          helpcontext(0x1007003E)
  11914.         ,helpstring("Creates and adds a circle marker to the collection.")
  11915.         ,restricted, hidden
  11916.     ]
  11917.     HRESULT  AddCircle(
  11918.         [in] double X0, // X coordinate of the point.
  11919.         [in] double Y0, // Y coordinate of the point.
  11920.         [in] double Z0, // Z coordinate of the point.
  11921.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11922.         );
  11923.  
  11924.         /**
  11925.          * Creates and adds a single line segment to the collection.
  11926.          *
  11927.          * @see TCADAPI TCWLineSingle function
  11928.          */
  11929.     [
  11930.          helpcontext(0x1007003F)
  11931.         ,helpstring("Creates and adds a single line segment to the collection.")
  11932.         ,restricted, hidden
  11933.     ]
  11934.     HRESULT  AddLineSingle(
  11935.         [in] double X0, // X coordinate of the first endpoint.
  11936.         [in] double Y0, // Y coordinate of the first endpoint.
  11937.         [in] double Z0, // Z coordinate of the first endpoint.
  11938.         [in] double X1, // X coordinate of the second endpoint.
  11939.         [in] double Y1, // Y coordinate of the second endpoint.
  11940.         [in] double Z1, // Z coordinate of the second endpoint.
  11941.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11942.         );
  11943.  
  11944.         /**
  11945.          * Creates and adds a regular polygon to the collection.
  11946.          *
  11947.          * @see TCADAPI TCWLinePolygon function
  11948.          */
  11949.     [
  11950.          helpcontext(0x10070040)
  11951.         ,helpstring("Creates and adds a regular polygon to the collection.")
  11952.         ,restricted, hidden
  11953.     ]
  11954.     HRESULT  AddLinePolygon(
  11955.         [in] double X0, // X coordinate of the center point.
  11956.         [in] double Y0, // Y coordinate of the center point.
  11957.         [in] double Z0, // Z coordinate of the center point.
  11958.         [in] double X1, // X coordinate of the corner point.
  11959.         [in] double Y1, // Y coordinate of the corner point.
  11960.         [in] double Z1, // Z coordinate of the corner point.
  11961.         [in] long nsides, // number of sides.
  11962.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11963.         );
  11964.  
  11965.         /**
  11966.          * Creates and adds a rectangle to the collection.
  11967.          *
  11968.          * @see TCADAPI TCWLineRectangle function
  11969.          */
  11970.     [
  11971.          helpcontext(0x10070041)
  11972.         ,helpstring("Creates and adds a rectangle to the collection.")
  11973.         ,restricted, hidden
  11974.     ]
  11975.     HRESULT  AddLineRectangle(
  11976.         [in] double X0, // X coordinate of the upper left corner.
  11977.         [in] double Y0, // Y coordinate of the upper left corner.
  11978.         [in] double Z0, // Z coordinate of the upper left corner.
  11979.         [in] double X1, // X coordinate of the lower right corner.
  11980.         [in] double Y1, // Y coorindate of the lower right corner.
  11981.         [in] double Z1, // Z coorindate of the lower right corner.
  11982.         [out, retval] IGraphic** prop // The newly created Graphic object.
  11983.         );
  11984.  
  11985.         /**
  11986.          * Creates and adds a rotated rectangle to the collection.
  11987.          *
  11988.          * @see TCADAPI TCWLineRotatedRectangle function
  11989.          */
  11990.     [
  11991.          helpcontext(0x10070042)
  11992.         ,helpstring("Creates and adds a rotated rectangle to the collection.")
  11993.         ,restricted, hidden
  11994.     ]
  11995.     HRESULT  AddLineRotatedRectangle(
  11996.         [in] double X0, // X coordinate of the upper left corner.
  11997.         [in] double Y0, // Y coordinate of the upper left corner.
  11998.         [in] double Z0, // Z coordinate of the upper left corner.
  11999.         [in] double X1, // X coordinate of the lower right corner.
  12000.         [in] double Y1, // Y coorindate of the lower right corner.
  12001.         [in] double Z1, // Z coorindate of the lower right corner.
  12002.         [in] double Height, // Height of the rectangle.
  12003.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12004.         );
  12005.  
  12006.         /**
  12007.          * Creates and adds a single line segment to the collection.
  12008.          *
  12009.          * @see TCADAPI TCWLinePerpendicular function
  12010.          */
  12011.     [
  12012.          helpcontext(0x10070043)
  12013.         ,helpstring("Creates and adds a single line segment to the collection.")
  12014.         ,restricted, hidden
  12015.     ]
  12016.     HRESULT  AddLinePerpendicular(
  12017.         [in] IGraphic* PerpTo, // Line to make new line perpendicular to.
  12018.         [in] double X0, // X coordinate of the point on the existing line.
  12019.         [in] double Y0, // Y coordinate of the point on the existing line.
  12020.         [in] double Z0, // Z coordinate of the point on the existing line.
  12021.         [in] double X1, // X coordinate of the second point on the new line.
  12022.         [in] double Y1, // Y coordinate of the second point on the new line.
  12023.         [in] double Z1, // Z coordinate of the second point on the new line.
  12024.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12025.         );
  12026.  
  12027.         /**
  12028.          * Creates and adds a single line segment to the collection.
  12029.          *
  12030.          * @see TCADAPI TCWLineParallel function
  12031.          */
  12032.     [
  12033.          helpcontext(0x10070044)
  12034.         ,helpstring("Creates and adds a single line segment to the collection.")
  12035.         ,restricted, hidden
  12036.     ]
  12037.     HRESULT  AddLineParallel(
  12038.         [in] IGraphic* ParallelTo, // Line to make new line parallel to.
  12039.         [in] double X0, // X coordinate of the new line.
  12040.         [in] double Y0, // Y coordinate of the new line.
  12041.         [in] double Z0, // Z coordinate of the new line.
  12042.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12043.         );
  12044.  
  12045.         /**
  12046.          * Creates and adds a multiple segment line to the collection.
  12047.          * The returned Graphic object contains only a beginning vertex.  The user must
  12048.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12049.          * and a Graphic.Finish call to complete the Graphic object.
  12050.          *
  12051.          * @see TCADAPI TCWLineMultiline function
  12052.          */
  12053.     [
  12054.          helpcontext(0x10070045)
  12055.         ,helpstring("Creates and adds a multiple segment line to the collection.")
  12056.         ,restricted, hidden
  12057.     ]
  12058.     HRESULT  AddLineMultiline(
  12059.         [in] double X0, // X coordinate of first endpoint.
  12060.         [in] double Y0, // Y coordinate of first endpoint.
  12061.         [in] double Z0, // Z coordinate of first endpoint.
  12062.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12063.         );
  12064.  
  12065.         /**
  12066.          * Creates and adds an irregular polygon to the collection.
  12067.          * The returned Graphic object contains only a beginning vertex.  The user must
  12068.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12069.          * and a Graphic.Close call to complete the Graphic object.
  12070.          *
  12071.          * @see TCADAPI TCWLineIrregularPolygon function
  12072.          */
  12073.     [
  12074.          helpcontext(0x10070046)
  12075.         ,helpstring("Creates and adds an irregular polygon to the collection.")
  12076.         ,restricted, hidden
  12077.     ]
  12078.     HRESULT  AddLineIrregularPolygon(
  12079.         [in] double X0, // X coordinate of first endpoint.
  12080.         [in] double Y0, // Y coordinate of first endpoint.
  12081.         [in] double Z0, // Z coordinate of first endpoint.
  12082.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12083.         );
  12084.  
  12085.         /**
  12086.          * Creates and adds a bezier curve to the collection.
  12087.          * The returned Graphic object contains only a beginning vertex.  The user must
  12088.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12089.          * and a Graphic.Finish call to complete the Graphic object.
  12090.          *
  12091.          * @see TCADAPI TCWCurveBezier function
  12092.          */
  12093.     [
  12094.          helpcontext(0x10070047)
  12095.         ,helpstring("Creates and adds a bezier curve to the collection.")
  12096.         ,restricted, hidden
  12097.     ]
  12098.     HRESULT  AddCurveBezier(
  12099.         [in] double X0, // X coordinate of the first endpoint.
  12100.         [in] double Y0, // Y coordinate of the first endpoint.
  12101.         [in] double Z0, // Z coordinate of the first endpoint.
  12102.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12103.         );
  12104.  
  12105.         /**
  12106.          * Creates and adds a cubic spline curve to the collection.
  12107.          * The returned Graphic object contains only a beginning vertex.  The user must
  12108.          * use subsequent Graphic.NextPoint calls to add segments to the Graphic object,
  12109.          * and a Graphic.Finish call to complete the Graphic object.
  12110.          *
  12111.          * @see TCADAPI TCWCurveSpline function
  12112.          */
  12113.     [
  12114.          helpcontext(0x10070048)
  12115.         ,helpstring("Creates and adds a cubic spline curve to the collection.")
  12116.         ,restricted, hidden
  12117.     ]
  12118.     HRESULT  AddCurveSpline(
  12119.         [in] double X0, // X coordinate of the first endpoint.
  12120.         [in] double Y0, // Y coordinate of the first endpoint.
  12121.         [in] double Z0, // Z coordinate of the first endpoint.
  12122.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12123.         );
  12124.  
  12125.         /**
  12126.          * Creates and adds a circle to the collection.
  12127.          *
  12128.          * @see TCADAPI TCWCircleCenterAndPoint function
  12129.          */
  12130.     [
  12131.          helpcontext(0x10070049)
  12132.         ,helpstring("Creates and adds a circle to the collection.")
  12133.         ,restricted, hidden
  12134.     ]
  12135.     HRESULT  AddCircleCenterAndPoint(
  12136.         [in] double X0, // X coordinate of the center point.
  12137.         [in] double Y0, // Y coordinate of the center point.
  12138.         [in] double Z0, // Z coordinate of the cneter point.
  12139.         [in] double X1, // X coordinate of the radius point.
  12140.         [in] double Y1, // Y coordinate of the radius point.
  12141.         [in] double Z1, // Z coordinate of the radius point.
  12142.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12143.         );
  12144.  
  12145.         /**
  12146.          * Creates and adds a circle to the collection.
  12147.          *
  12148.          * @see TCADAPI TCWCircleDoublePoint function
  12149.          */
  12150.     [
  12151.          helpcontext(0x1007004A)
  12152.         ,helpstring("Creates and adds a circle to the collection.")
  12153.         ,restricted, hidden
  12154.     ]
  12155.     HRESULT  AddCircleDoublePoint(
  12156.         [in] double X0, // X coordinate of the first point.
  12157.         [in] double Y0, // Y coordinate of the first point.
  12158.         [in] double Z0, // Z coordinate of the first point.
  12159.         [in] double X1, // X coordinate of the second point.
  12160.         [in] double Y1, // Y coordinate of the second point.
  12161.         [in] double Z1, // Z coordinate of the second point.
  12162.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12163.         );
  12164.  
  12165.         /**
  12166.          * Creates and adds a circle to the collection.
  12167.          *
  12168.          * @see TCADAPI TCWCircleTriplePoint function
  12169.          */
  12170.     [
  12171.          helpcontext(0x1007004B)
  12172.         ,helpstring("Creates and adds a circle to the collection.")
  12173.         ,restricted, hidden
  12174.     ]
  12175.     HRESULT  AddCircleTriplePoint(
  12176.         [in] double X0, // X coordinate of the first point.
  12177.         [in] double Y0, // Y coordinate of the first point.
  12178.         [in] double Z0, // Z coordinate of the first point.
  12179.         [in] double X1, // X coordinate of the second point.
  12180.         [in] double Y1, // Y coordinate of the second point.
  12181.         [in] double Z1, // Z coordinate of the second point.
  12182.         [in] double X2, // X coordinate of the third point.
  12183.         [in] double Y2, // Y coordinate of the third point.
  12184.         [in] double Z2, // Z coordinate of the third point.
  12185.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12186.         );
  12187.  
  12188.         /**
  12189.          * Creates and adds a ellipse to the collection.
  12190.          *
  12191.          * @see TCADAPI TCWEllipse function
  12192.          */
  12193.     [
  12194.          helpcontext(0x1007004C)
  12195.         ,helpstring("Creates and adds a ellipse to the collection.")
  12196.         ,restricted, hidden
  12197.     ]
  12198.     HRESULT  AddEllipse(
  12199.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  12200.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  12201.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  12202.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  12203.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  12204.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  12205.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12206.         );
  12207.  
  12208.         /**
  12209.          * Creates and adds a ellipse to the collection.
  12210.          *
  12211.          * @see TCADAPI TCWEllipseRotatedEllipse function
  12212.          */
  12213.     [
  12214.          helpcontext(0x1007004D)
  12215.         ,helpstring("Creates and adds a ellipse to the collection.")
  12216.         ,restricted, hidden
  12217.     ]
  12218.     HRESULT  AddEllipseRotatedEllipse(
  12219.         [in] double X0, // X coordinate of ellipse's center point.
  12220.         [in] double Y0, // Y coordinate of ellipse's center point.
  12221.         [in] double Z0, // Z coordinate of ellipse's center point.
  12222.         [in] double X1, // X coordinate of major axis radius point.
  12223.         [in] double Y1, // Y coordinate of major axis radius point.
  12224.         [in] double Z1, // Z coordinate of major axis radius point.
  12225.         [in] double X2, // X coordinate of minor axis radius point.
  12226.         [in] double Y2, // Y coordinate of minor axis radius point.
  12227.         [in] double Z2, // Z coordinate of minor axis radius point.
  12228.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12229.         );
  12230.  
  12231.         /**
  12232.          * Creates and adds a ellipse to the collection.
  12233.          *
  12234.          * @see TCADAPI TCWEllipseFixedRatio function
  12235.          */
  12236.     [
  12237.          helpcontext(0x1007004E)
  12238.         ,helpstring("Creates and adds a ellipse to the collection.")
  12239.         ,restricted, hidden
  12240.     ]
  12241.     HRESULT  AddEllipseFixedRatio(
  12242.         [in] double X0, // X coordinate of ellipse's center point.
  12243.         [in] double Y0, // Y coordinate of ellipse's center point.
  12244.         [in] double Z0, // Z coordinate of ellipse's center point.
  12245.         [in] double X1, // X coordinate of radius in Y direction.
  12246.         [in] double Y1, // Y coordinate of radius in Y direction.
  12247.         [in] double Z1, // Z coordinate of radius in Y direction.
  12248.         [in] double XToYRatio, // Ratio of Rx to Ry.
  12249.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12250.         );
  12251.  
  12252.         /**
  12253.          * Creates and adds an arc to the collection.
  12254.          *
  12255.          * @see TCADAPI TCWArcCenterAndPoint function
  12256.          */
  12257.     [
  12258.          helpcontext(0x1007004F)
  12259.         ,helpstring("Creates and adds an arc to the collection.")
  12260.         ,restricted, hidden
  12261.     ]
  12262.     HRESULT  AddArcCenterAndPoint(
  12263.         [in] double X0, // X coordinate of arc's center point.
  12264.         [in] double Y0, // Y coordinate of arc's center point.
  12265.         [in] double Z0, // Z coordinate of arc's center point.
  12266.         [in] double X1, // X coordinate of arc's radius point.
  12267.         [in] double Y1, // Y coordinate of arc's radius point.
  12268.         [in] double Z1, // Z coordinate of arc's radius point.
  12269.         [in] double StartAngle, // Starting angle in radians.
  12270.         [in] double EndAngle, // Ending angle in radians.
  12271.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12272.         );
  12273.  
  12274.         /**
  12275.          * Creates and adds an arc to the collection.
  12276.          *
  12277.          * @see TCADAPI TCWArcDoublePoint function
  12278.          */
  12279.     [
  12280.          helpcontext(0x10070050)
  12281.         ,helpstring("Creates and adds an arc to the collection.")
  12282.         ,restricted, hidden
  12283.     ]
  12284.     HRESULT  AddArcDoublePoint(
  12285.         [in] double X0, // X coordinate of first endpoint.
  12286.         [in] double Y0, // Y coordinate of first endpoint.
  12287.         [in] double Z0, // Z coordinate of first endpoint.
  12288.         [in] double X1, // X coordinate of second endpoint.
  12289.         [in] double Y1, // Y coordinate of second endpont.
  12290.         [in] double Z1, // Z coordinate of second endpoint.
  12291.         [in] double StartAngle, // Starting angle in radians.
  12292.         [in] double EndAngle, // Ending angle in radians.
  12293.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12294.         );
  12295.  
  12296.         /**
  12297.          * Creates and adds an arc to the collection.
  12298.          *
  12299.          * @see TCADAPI TCWArcTriplePoint function
  12300.          */
  12301.     [
  12302.          helpcontext(0x10070051)
  12303.         ,helpstring("Creates and adds an arc to the collection.")
  12304.         ,restricted, hidden
  12305.     ]
  12306.     HRESULT  AddArcTriplePoint(
  12307.         [in] double X0, // X coordinate of starting point.
  12308.         [in] double Y0, // Y coordinate of starting point.
  12309.         [in] double Z0, // Z coordinate of starting point.
  12310.         [in] double X1, // X coordinate of point on perimeter.
  12311.         [in] double Y1, // Y coordinate of point on perimeter.
  12312.         [in] double Z1, // Z coordinate of point on perimeter.
  12313.         [in] double X2, // X coordinate of ending point.
  12314.         [in] double Y2, // Y coordinate of ending point.
  12315.         [in] double Z2, // Z coordinate of ending point.
  12316.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12317.         );
  12318.  
  12319.         /**
  12320.          * Creates and adds an elliptical arc to the collection.
  12321.          *
  12322.          * @see TCADAPI TCWArcElliptical function
  12323.          */
  12324.     [
  12325.          helpcontext(0x10070052)
  12326.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12327.         ,restricted, hidden
  12328.     ]
  12329.     HRESULT  AddArcElliptical(
  12330.         [in] double X0, // X coordinate of bounding rectangle's upper left corner.
  12331.         [in] double Y0, // Y coordinate of bounding rectangle's upper left corner.
  12332.         [in] double Z0, // Z coordinate of bounding rectangle's upper left corner.
  12333.         [in] double X1, // X coordinate of bounding rectangle's lower right corner.
  12334.         [in] double Y1, // Y coordinate of bounding rectangle's lower right corner.
  12335.         [in] double Z1, // Z coordinate of bounding rectangle's lower right corner.
  12336.         [in] double StartAngle, // Starting angle in radians.
  12337.         [in] double EndAngle, // Ending angle in radians.
  12338.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12339.         );
  12340.  
  12341.         /**
  12342.          * Creates and adds an elliptical arc to the collection.
  12343.          *
  12344.          * @see TCADAPI TCWArcRotatedElliptical function
  12345.          */
  12346.     [
  12347.          helpcontext(0x10070053)
  12348.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12349.         ,restricted, hidden
  12350.     ]
  12351.     HRESULT  AddArcRotatedElliptical(
  12352.         [in] double X0, // X coordinate of elliptical arc's center point.
  12353.         [in] double Y0, // Y coordinate of elliptical arc's center point.
  12354.         [in] double Z0, // Z coordinate of elliptical arc's center point.
  12355.         [in] double X1, // X coordinate of major axis radius point.
  12356.         [in] double Y1, // Y coordinate of major axis radius point.
  12357.         [in] double Z1, // Z coordinate of major axis radius point.
  12358.         [in] double X2, // X coordinate of minor axis radius point.
  12359.         [in] double Y2, // Y coordinate of minor axis radius point.
  12360.         [in] double Z2, // Z coordinate of minor axis radius point.
  12361.         [in] double StartAngle, // Starting angle in radians.
  12362.         [in] double EndAngle, // Ending angle in radians.
  12363.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12364.         );
  12365.  
  12366.         /**
  12367.          * Creates and adds an elliptical arc to the collection.
  12368.          *
  12369.          * @see TCADAPI TCWArcEllipticalFixedRatio function
  12370.          */
  12371.     [
  12372.          helpcontext(0x10070054)
  12373.         ,helpstring("Creates and adds an elliptical arc to the collection.")
  12374.         ,restricted, hidden
  12375.     ]
  12376.     HRESULT  AddArcEllipticalFixedRatio(
  12377.         [in] double X0, // X coordinate of ellipse's center point.
  12378.         [in] double Y0, // Y coordinate of ellipse's center point.
  12379.         [in] double Z0, // Z coordinate of ellipse's center point.
  12380.         [in] double X1, // X coordinate of radius in Y direction.
  12381.         [in] double Y1, // Y coordinate of radius in Y direction.
  12382.         [in] double Z1, // Z coordinate of radius in Y direction.
  12383.         [in] double XToYRatio, // Ratio of Rx to Ry.
  12384.         [in] double StartAngle, // Starting angle in radians.
  12385.         [in] double EndAngle, // Ending angle in radians.
  12386.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12387.         );
  12388.  
  12389.         /**
  12390.          * Creates and adds a text Graphic object to the collection.
  12391.          *
  12392.          * @see TCADAPI TCWText function
  12393.          */
  12394.     [
  12395.          helpcontext(0x10070055)
  12396.         ,helpstring("Creates and adds a text Graphic object to the collection.")
  12397.         ,restricted, hidden
  12398.     ]
  12399.     HRESULT  AddText(
  12400.         [in] BSTR Text, // The text string.
  12401.         [in] double X0, // X coordinate of text's starting point.
  12402.         [in] double Y0, // Y coordinate of text's starting point.
  12403.         [in] double Z0, // Z coordinate of text's starting point.
  12404.         [in] double Height, // Height of text object.
  12405.         [in, optional] VARIANT* Angle, // Rotation angle of text in radians.
  12406.         [in, optional] VARIANT* Width, // Width of text object.
  12407.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  12408.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  12409.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12410.         );
  12411.  
  12412.         ///////////////////// Blocks Groups and Hatches \\\\\\\\\\\\\\\\\\\\\\\\\\
  12413.  
  12414.         /**
  12415.          * Creates a block in the Drawing object from the Graphic objects in the collection.
  12416.          *
  12417.          * @see TCADAPI TCWBlockCreate function
  12418.          */
  12419.     [
  12420.          helpcontext(0x10070056)
  12421.         ,helpstring("Creates a block in the Drawing object from the Graphic objects in the collection.")
  12422.         ,restricted, hidden
  12423.     ]
  12424.     HRESULT  CreateBlock(
  12425.         [in, optional] BSTR Name, // Name for the new block.
  12426.         [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  12427.         [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  12428.         [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  12429.         [in, optional] VARIANT* CopyGraphics, // True to make the group using copies of the Graphic objects in the Graphics collection.
  12430.         [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  12431.         [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  12432.         [out, retval] Block** prop // The newly created block.
  12433.         );
  12434.  
  12435.         /**
  12436.          * Adds a block insertion to the collection.
  12437.          *
  12438.          * @see TCADAPI TCWBlockInsert function
  12439.          */
  12440.     [
  12441.          helpcontext(0x10070057)
  12442.         ,helpstring("Adds a block insertion to the collection.")
  12443.         ,restricted, hidden
  12444.     ]
  12445.     HRESULT  AddBlockInsertion(
  12446.         [in] VARIANT* Block, // BlockObj or index of the block.
  12447.         [in, optional] VARIANT* X0, // X coordinate of the block insertion point.
  12448.         [in, optional] VARIANT* Y0, // Y coordinate of the block insertion point.
  12449.         [in, optional] VARIANT* Z0, // Z coordinate of the block insertion point.
  12450.         [in, optional] VARIANT* XScale, // X scale factor.
  12451.         [in, optional] VARIANT* YScale, // Y scale factor.
  12452.         [in, optional] VARIANT* ZScale, // Z scale factor.
  12453.         [in, optional] VARIANT* Angle, // Rotation angle of block insertion in radians.
  12454.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12455.         );
  12456.  
  12457.         /**
  12458.          * Adds a group to the collection from the Graphic objects in the collection.
  12459.          *
  12460.          * @see TCADAPI TCWGroupCreate function
  12461.          */
  12462.     [
  12463.          helpcontext(0x10070058)
  12464.         ,helpstring("Adds a group to the collection from the Graphic objects in the collection.")
  12465.         ,restricted, hidden
  12466.     ]
  12467.     HRESULT  AddGroup(
  12468.         [in, optional] VARIANT* Name, // Name for the new group.
  12469.         [in, optional] VARIANT* Copy, // True to make the group using copies of the Graphic objects in the Graphics collection.
  12470.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12471.         );
  12472.  
  12473.         /**
  12474.          * Explodes groups and block insertions in the collection.
  12475.          *
  12476.          * @see TCADAPI TCWExplode function
  12477.          */
  12478.     [
  12479.          helpcontext(0x10070059)
  12480.         ,helpstring("Explodes groups and block insertions in the collection.")
  12481.         ,restricted, hidden
  12482.     ]
  12483.     HRESULT  Explode(
  12484.         [out, retval] GraphicSet** prop // The exploded Graphic objects.
  12485.         );
  12486.  
  12487.         /////////////////////////// Copy Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  12488.  
  12489.         /**
  12490.          * Copies the Graphic objects in the collection along a line.
  12491.          */
  12492.     [
  12493.          helpcontext(0x1007005A)
  12494.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12495.         ,restricted, hidden
  12496.     ]
  12497.     HRESULT  LinearCopyAbsolute(
  12498.         [in] double X, // X coordinate to copy to.
  12499.         [in] double Y, // Y coordinate to copy to.
  12500.         [in] double Z, // Z coordinate to copy to.
  12501.         [in] long Copies, // Number of copies including the original.
  12502.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12503.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12504.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12505.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12506.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12507.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12508.         );
  12509.  
  12510.         /**
  12511.          * Copies the Graphic objects in the collection along a line.
  12512.          */
  12513.     [
  12514.          helpcontext(0x1007005B)
  12515.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12516.         ,restricted, hidden
  12517.     ]
  12518.     HRESULT  LinearCopyRelative(
  12519.         [in] double X, // X offset.
  12520.         [in] double Y, // Y offset.
  12521.         [in] double Z, // Z offset.
  12522.         [in] long Copies, // Number of copies including the original.
  12523.         [in, optional] VARIANT* Fit, // True if specified offset is for last copy.
  12524.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12525.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12526.         );
  12527.  
  12528.         /**
  12529.          * Copies the Graphic objects in the collection along a line.
  12530.          */
  12531.     [
  12532.          helpcontext(0x1007005C)
  12533.         ,helpstring("Copies the Graphic objects in the collection along a line.")
  12534.         ,restricted, hidden
  12535.     ]
  12536.     HRESULT  LinearCopyAngle(
  12537.         [in] double Length, // Length of copy.
  12538.         [in] double Angle, // Angle of copy in radians.
  12539.         [in] long Copies, // Number of copies including the original.
  12540.         [in, optional] VARIANT* Fit, // True if specified length is for last copy.
  12541.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12542.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12543.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12544.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12545.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12546.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12547.         );
  12548.  
  12549.         /**
  12550.          * Copies the Graphic objects in the collection radially.
  12551.          * Always rotates in the currently active workplane?
  12552.          */
  12553.     [
  12554.          helpcontext(0x1007005D)
  12555.         ,helpstring("Copies the Graphic objects in the collection radially.")
  12556.         ,restricted, hidden
  12557.     ]
  12558.     HRESULT  RadialCopyAbsolute(
  12559.         [in] double X0, // X coordinate of center of arc.
  12560.         [in] double Y0, // Y coordinate of center of arc.
  12561.         [in] double Z0, // Z coordinate of center of arc.
  12562.         [in] double X1, // X coordinate of point on arc.
  12563.         [in] double Y1, // Y coordinate of point on arc.
  12564.         [in] double Z1, // Z coordinate of point on arc.
  12565.         [in] long Copies, // Number of copies including the original.
  12566.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12567.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12568.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12569.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12570.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12571.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12572.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12573.         );
  12574.  
  12575.         /**
  12576.          * Copies the Graphic objects in the collection radially.
  12577.          * Always rotates in the currently active workplane?
  12578.          */
  12579.     [
  12580.          helpcontext(0x1007005E)
  12581.         ,helpstring("Copies the Graphic objects in the collection radially.")
  12582.         ,restricted, hidden
  12583.     ]
  12584.     HRESULT  RadialCopyAngle(
  12585.         [in] double X, // X coordinate of center of arc.
  12586.         [in] double Y, // Y coordinate of center of arc.
  12587.         [in] double Z, // Z coordinate of center of arc.
  12588.         [in] double Angle, // Angle between copies or for last copy.
  12589.         [in] double RotationAngle, // Angle to rotate each copy.
  12590.         [in] long Copies, // Number of copies including the original.
  12591.         [in, optional] VARIANT* Fit, // True if specified angle is for last copy.
  12592.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12593.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12594.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12595.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12596.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12597.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12598.         );
  12599.  
  12600.         /**
  12601.          * Copies the Graphic objects in a two dimensional array.
  12602.          * Always translates in the currently active workplane?
  12603.          */
  12604.     [
  12605.          helpcontext(0x1007005F)
  12606.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  12607.         ,restricted, hidden
  12608.     ]
  12609.     HRESULT  ArrayCopyAbsolute(
  12610.         [in] double X, // Coordinate defining row and column spacing.
  12611.         [in] double Y, // Coordinate defining row and column spacing.
  12612.         [in] double Z, // Coordinate defining row and column spacing.
  12613.         [in] long Rows, // Number of rows including the original.
  12614.         [in] long Columns, // Number of columns including the original.
  12615.         [in, optional] VARIANT* Fit, // True if specified point is for last copy.
  12616.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12617.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12618.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12619.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12620.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12621.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12622.         );
  12623.  
  12624.         /**
  12625.          * Copies the Graphic objects in a two dimensional array.
  12626.          * Always translates in the currently active workplane?
  12627.          */
  12628.     [
  12629.          helpcontext(0x10070060)
  12630.         ,helpstring("Copies the Graphic objects in a two dimensional array.")
  12631.         ,restricted, hidden
  12632.     ]
  12633.     HRESULT  ArrayCopyRelative(
  12634.         [in] double U, // Column offset.
  12635.         [in] double V, // Row offset.
  12636.         [in] long Rows, // Number of rows including the original.
  12637.         [in] long Columns, // Number of columns including the original.
  12638.         [in, optional] VARIANT* Fit, // True if specified offsets are for last copy.
  12639.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12640.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12641.         [out, retval] GraphicSet** prop // The copied Graphic objects.
  12642.         );
  12643.  
  12644.         /**
  12645.          * Mirrors the Graphic objects in the collection about a line.
  12646.          */
  12647.     [
  12648.          helpcontext(0x10070061)
  12649.         ,helpstring("Mirrors the Graphic objects in the collection about a line.")
  12650.         ,restricted, hidden
  12651.     ]
  12652.     HRESULT  MirrorCopyLine(
  12653.         [in] double X0, // X coordinate of the first point on line.
  12654.         [in] double Y0, // Y coordinate of the first point on line.
  12655.         [in] double Z0, // Z coordinate of the first point on line.
  12656.         [in] double X1, // X coordinate of the second point on line.
  12657.         [in] double Y1, // Y coordinate of the second point on line.
  12658.         [in] double Z1, // Z coordinate of the second point on line.
  12659.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  12660.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12661.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12662.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  12663.         );
  12664.  
  12665.         /**
  12666.          * Mirrors the Graphic objects in the collection about an angle.
  12667.          */
  12668.     [
  12669.          helpcontext(0x10070062)
  12670.         ,helpstring("Mirrors the Graphic objects in the collection about an angle.")
  12671.         ,restricted, hidden
  12672.     ]
  12673.     HRESULT  MirrorCopyAngle(
  12674.         [in] double X, // X coordinate to mirror to.
  12675.         [in] double Y, // Y coordinate to mirror to.
  12676.         [in] double Z, // Z coordinate to mirror to.
  12677.         [in] double Angle, // Angle of mirror.
  12678.         [in, optional] VARIANT* Copy, // True if the mirrored objects are copies.
  12679.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12680.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12681.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12682.         [in, optional] VARIANT* Workplane, // Workplane or direction vector?
  12683.         [in, out, optional] VARIANT* Matrix, // The matrix that was calculated.
  12684.         [out, retval] GraphicSet** prop // The mirrored Graphic objects.
  12685.         );
  12686.  
  12687.         /**
  12688.          * Scales the Graphic objects in the collection.
  12689.          *
  12690.          * @see TCADAPI TCWSelectionScale function.
  12691.          */
  12692.     [
  12693.          helpcontext(0x10070063)
  12694.         ,helpstring("Scales the Graphic objects in the collection.")
  12695.         ,restricted, hidden
  12696.     ]
  12697.     HRESULT  Scale(
  12698.         [in] double XScale, // X scale factor.
  12699.         [in] double YScale, // Y scale factor.
  12700.         [in] double ZScale, // Z scale factor.
  12701.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12702.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12703.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12704.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12705.         );
  12706.  
  12707.         /**
  12708.          * Rotates the Graphic objects in the collection.
  12709.          *
  12710.          * @see TCADAPI TCWSelectionRotate function.
  12711.          */
  12712.     [
  12713.          helpcontext(0x10070064)
  12714.         ,helpstring("Rotates the Graphic objects in the collection.")
  12715.         ,restricted, hidden
  12716.     ]
  12717.     HRESULT  RotateAxis(
  12718.         [in] double Angle, // Angle of rotation in radians.
  12719.         [in, optional] VARIANT* XAxis, // X coordinate of axis direction.
  12720.         [in, optional] VARIANT* YAxis, // Y coordinate of axis direction.
  12721.         [in, optional] VARIANT* ZAxis, // Z coordinate of axis direction.
  12722.         [in, optional] VARIANT* X, // X coordinate of the rotation center.
  12723.         [in, optional] VARIANT* Y, // Y coordinate of the rotation center.
  12724.         [in, optional] VARIANT* Z, // Z coordinate of the rotation center.
  12725.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12726.         );
  12727.  
  12728.         /**
  12729.          * Rotates the Graphic objects in the collection.
  12730.          *
  12731.          * @see TCADAPI TCWSelectionRotate function.
  12732.          */
  12733.     [
  12734.          helpcontext(0x10070065)
  12735.         ,helpstring("Rotates the Graphic objects in the collection.")
  12736.         ,restricted, hidden
  12737.     ]
  12738.     HRESULT  RotateAbsolute(
  12739.         [in] VARIANT* XTo, // X coordinate of the point to rotate to.
  12740.         [in] VARIANT* YTo, // Y coordinate of the point to rotate to.
  12741.         [in] VARIANT* ZTo, // Z coordinate of the point to rotate to.
  12742.         [in] VARIANT* XFrom, // X coordinate of the point to rotate from.
  12743.         [in] VARIANT* YFrom, // Y coordinate of the point to rotate from.
  12744.         [in] VARIANT* ZFrom, // Z coordinate of the point to rotate from.
  12745.         [in, optional] VARIANT* XRef, // X coordinate of the rotation center.
  12746.         [in, optional] VARIANT* YRef, // Y coordinate of the rotation center.
  12747.         [in, optional] VARIANT* ZRef, // Z coordinate of the rotation center.
  12748.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12749.         );
  12750.  
  12751.         /**
  12752.          * Moves the Graphic objects in the collection to a new location.
  12753.          *
  12754.          * @see TCADAPI TCWSelectionMove function.
  12755.          */
  12756.     [
  12757.          helpcontext(0x10070066)
  12758.         ,helpstring("Moves the Graphic objects in the collection to a new location.")
  12759.         ,restricted, hidden
  12760.     ]
  12761.     HRESULT  MoveAbsolute(
  12762.         [in] double X, // X coordinate to move to.
  12763.         [in] double Y, // Y coordinate to move to.
  12764.         [in] double Z, // Z coordinate to move to.
  12765.         [in, optional] VARIANT* XRef, // X coordinate of the reference point.
  12766.         [in, optional] VARIANT* YRef, // Y coordinate of the reference point.
  12767.         [in, optional] VARIANT* ZRef, // Z coordinate of the reference point.
  12768.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12769.         );
  12770.  
  12771.         /**
  12772.          * Moves the Graphic objects in the collection by a specified offset.
  12773.          *
  12774.          * @see TCADAPI TCWSelectionMove function.
  12775.          */
  12776.     [
  12777.          helpcontext(0x10070067)
  12778.         ,helpstring("Moves the Graphic objects in the collection by a specified offset.")
  12779.         ,restricted, hidden
  12780.     ]
  12781.     HRESULT  MoveRelative(
  12782.         [in] double X, // X offset.
  12783.         [in] double Y, // Y offset.
  12784.         [in] double Z, // Z offset.
  12785.         [out, retval] IMatrix** prop // The matrix that was calculated.
  12786.         );
  12787.  
  12788.         /**
  12789.          * Transforms the Graphic objects in the collection.
  12790.          */
  12791.     [
  12792.          helpcontext(0x10070068)
  12793.         ,helpstring("Transforms the Graphic object.")
  12794.         ,restricted, hidden
  12795.     ]
  12796.     HRESULT  Transform(
  12797.         [in] IMatrix* Transform // The matrix to perform transformation.
  12798.         );
  12799.  
  12800.         ////////////////////// Miscellaneous Edit Methods \\\\\\\\\\\\\\\\\\\\
  12801.  
  12802.         /**
  12803.          * Aligns the Graphic objects in the collection.
  12804.          *
  12805.          * @see TCADAPI TCWAlignXXX functions.
  12806.          */
  12807.     [
  12808.          helpcontext(0x10070069)
  12809.         ,helpstring("Aligns the Graphic objects in the collection.")
  12810.         ,restricted, hidden
  12811.     ]
  12812.     HRESULT  Align(
  12813.         [in] ImsiAlignType AlignType // Bottom, middle, etc.
  12814.         );
  12815.  
  12816.         /**
  12817.          * Aligns the Graphic objects in the collection along a line.
  12818.          */
  12819.     [
  12820.          helpcontext(0x1007006A)
  12821.         ,helpstring("Aligns the Graphic objects in the collection along a line.")
  12822.         ,restricted, hidden
  12823.     ]
  12824.     HRESULT  AlignAlongLine(
  12825.         [in] double X0, // X coordinate of the first point.
  12826.         [in] double Y0, // Y coordinate of the first point.
  12827.         [in] double Z0, // Z coordinate of the first point.
  12828.         [in] double X1, // X coordinate of the second point.
  12829.         [in] double Y1, // Y coordinate of the second point.
  12830.         [in] double Z1 // Z coordinate of the second point.
  12831.         );
  12832.  
  12833.         /**
  12834.          * Returns the index within the Graphics collection of the specified graphic handle.
  12835.          * Private.
  12836.          */
  12837.         [
  12838.              restricted
  12839.             ,helpcontext(0x1007006B)
  12840.             ,helpstring("Private.  Returns the index within the Graphics collection of the specified graphic handle.")
  12841.         ]
  12842.         HRESULT  _FindIndex(
  12843.             [in] long g, // The graphic handle.
  12844.             [out, retval] long* prop // The index.
  12845.             );
  12846.  
  12847.         /**
  12848.          * Returns the Graphic objects in the collection that match a query string.
  12849.          *
  12850.          * @see TCADAPI TCWSelectByQuery function.
  12851.          */
  12852.         [
  12853.              helpcontext(0x1007006C)
  12854.             ,helpstring("Returns the Graphic objects in the collection that match a query string.")
  12855.             ,restricted, hidden
  12856.         ]
  12857.         HRESULT  QuerySet(
  12858.             [in] BSTR Query, // The query string.
  12859.             [out, retval] GraphicSet** prop // The matching Graphic objects, as a GraphicSet__Object.
  12860.             );
  12861.  
  12862.         /**
  12863.          * Creates and adds a group of polylines or polygons to the collection.
  12864.          */
  12865.     [
  12866.          helpcontext(0x1007006D)
  12867.         ,helpstring("Creates and adds a group of polylines or polygons to the collection.")
  12868.         ,restricted, hidden
  12869.     ]
  12870.     HRESULT  AddPolys(
  12871.         [in] ImsiPolyType Type, // Type of poly(s) to be added.
  12872.         [in] VARIANT* Coords,   // Array of (X, Y, Z) poly coordinates.
  12873.         [out, retval] GraphicSet** NewPolys // The newly created Graphic objects.
  12874.         );
  12875.  
  12876.         /**
  12877.          * Generates a bounding polygon array to use in drag operations.
  12878.          *
  12879.          * @see View::DragOutline
  12880.          */
  12881.     [
  12882.          helpcontext(0x1007006E)
  12883.         ,helpstring("Generates a bounding polygon array to use in drag operations.")
  12884.         ,restricted, hidden
  12885.     ]
  12886.     HRESULT  CreateDragOutline(
  12887.         [in, out] VARIANT* Coords // Array of (X, Y, Z) polygon coordinates.
  12888.         );
  12889.  
  12890.         /**
  12891.          * Creates and adds a bunch of polylines to the collection.
  12892.          * The returned Graphics object contains a set with freshly created
  12893.          * polygons. The user can set properties, etc.
  12894.          */
  12895.     [
  12896.          helpcontext(0x1007006F)
  12897.         ,helpstring("Creates and adds a bunch of polylines to the collection.")
  12898.         ,restricted, hidden
  12899.     ]
  12900.     HRESULT  AddPolylines(
  12901.         [in] long NumberOfPolylines, // number of polylines to create
  12902.         [in] VARIANT* Coords,   // SafeArray of triplets of coordinates.
  12903.         [in] IMSI_BOOL closed, // whether each polyline is closed
  12904.         [out, retval] GraphicSet** NewPolys // The newly created set of Graphic objects.
  12905.         );
  12906.  
  12907.         /**
  12908.          * Finds the Graphic object in the collection with the given ID.
  12909.          */
  12910.     [
  12911.          helpcontext(0x10070070)
  12912.         ,helpstring("Finds the Graphic object in the collection with the given ID.")
  12913.     ]
  12914.     HRESULT  GraphicFromID(
  12915.         [in] long ID, // ID of Graphic object.
  12916.         [out, retval] IGraphic** prop // The Graphic object.
  12917.         );
  12918.  
  12919.         /**
  12920.          * Creates and adds an attribute definition Graphic object to the collection.  
  12921.          */
  12922.     [
  12923.          helpcontext(0x10070071)
  12924.         ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  12925.         ,restricted, hidden
  12926.     ]
  12927.     HRESULT  AddAttributeDefinition(
  12928.         [in] BSTR Tag, // The text string for the attribute definition tag.
  12929.         [in] double X0, // X coordinate of attdef's starting point.
  12930.         [in] double Y0, // Y coordinate of attdef's starting point.
  12931.         [in] double Z0, // Z coordinate of attdef's starting point.
  12932.         [in] double Height, // Height of attdef object.
  12933.         [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  12934.         [in, optional] VARIANT* Width, // Width of attdef object.
  12935.         [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  12936.         [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  12937.         [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  12938.         [in, optional] VARIANT* Default, // Default value of attribute.
  12939.         [in, optional] VARIANT* Prompt, // Prompt for attribute.
  12940.         [out, retval] IGraphic** prop // The newly created Graphic object.
  12941.         );
  12942.  
  12943.         /////////////////////////////////////////////////////////////////////////////
  12944.         // GraphicSet methods
  12945.  
  12946.         /**
  12947.          * Returns the index of the item in the collection.
  12948.          */
  12949.         [
  12950.              propget
  12951.             ,hidden, restricted
  12952.             ,helpcontext(0x10070072)
  12953.             ,helpstring("Returns the index of the item in the collection.")
  12954.         ]
  12955.         HRESULT  Index(
  12956.             [out, retval] long* prop // The index.
  12957.             );
  12958.  
  12959.         /**
  12960.          * Returns the name of the object, as a string.
  12961.          */
  12962.         [
  12963.              propget
  12964.             ,helpcontext(0x10070073)
  12965.             ,helpstring("Returns the name of the object, as a string.")
  12966.         ]
  12967.         HRESULT  Name(
  12968.             [out, retval] BSTR* prop // The name of the object.
  12969.             );
  12970.  
  12971.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  12972.  
  12973.         /**
  12974.          * Deletes the object.
  12975.          */
  12976.         [
  12977.              helpcontext(0x10070074)
  12978.             ,helpstring("Deletes the object.")
  12979.         ]
  12980.         HRESULT  Delete(
  12981.             );
  12982.  
  12983.         /**
  12984.          * Duplicates the object and returns a reference to the new copy.
  12985.          */
  12986.         [
  12987.              helpcontext(0x10070075)
  12988.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  12989.             ,hidden, restricted
  12990.         ]
  12991.         HRESULT  Duplicate(
  12992.             [in] BSTR Name, // The name for the new GraphicSet object.
  12993.             [out, retval] GraphicSet** prop // The duplicated GraphicSet object.
  12994.             );
  12995.  
  12996.         /**
  12997.          * Sets the specific property for all graphics in the set.
  12998.          */
  12999.         [
  13000.              helpcontext(0x10070076)
  13001.             ,helpstring("Sets the specific property for all graphics in the set.")
  13002.         ]
  13003.         HRESULT  SetForAll(
  13004.             [in] VARIANT* PropertyName, // The name of property to set.
  13005.             [in] VARIANT* prop      // The Property value.
  13006.             );
  13007.  
  13008.     };
  13009.  
  13010.  
  13011.  
  13012.     /**
  13013.      * The collection of GraphicSet objects in a Drawing object.
  13014.      */
  13015.     [
  13016.          object
  13017.         ,uuid(6A481135-E531-11CF-A115-00A024158DAF)
  13018.         ,oleautomation
  13019.         ,dual
  13020.         ,helpcontext(0x10080000)
  13021.         ,helpstring("The collection of GraphicSet objects in a Drawing object.")
  13022.     ]
  13023.     interface GraphicSets : IDispatch
  13024.     {
  13025.  
  13026.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13027.  
  13028.         /**
  13029.          * Returns an Application object that represents the owner of the specified object.
  13030.          */
  13031.         [
  13032.              propget
  13033.             ,helpcontext(0x10080001)
  13034.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13035.         ]
  13036.         HRESULT  Application(
  13037.             [out, retval] IApplication** prop // The Application object.
  13038.             );
  13039.  
  13040.         /**
  13041.          * Returns the number of items in the collection.
  13042.          */
  13043.         [
  13044.              propget
  13045.             ,helpcontext(0x10080002)
  13046.             ,helpstring("Returns the number of items in the collection.")
  13047.         ]
  13048.         HRESULT  Count(
  13049.             [out, retval] long* prop // The number of items.
  13050.             );
  13051.  
  13052.         /**
  13053.          * Returns the Drawing object that owns the object.
  13054.          */
  13055.         [
  13056.              propget
  13057.             ,helpcontext(0x10080003)
  13058.             ,helpstring("Returns the Drawing object that owns the object.")
  13059.         ]
  13060.         HRESULT  Drawing(
  13061.             [out, retval] IDrawing** prop // The Drawing object.
  13062.             );
  13063.  
  13064.         /**
  13065.          * Returns part of a collection.
  13066.          */
  13067.         [
  13068.              propget
  13069.             ,id(DISPID_VALUE)
  13070.             ,helpcontext(0x10080004)
  13071.             ,helpstring("Returns part of a collection.")
  13072.         ]
  13073.         HRESULT  Item(
  13074.             [in] VARIANT* Index, // Index of item to return.
  13075.             [out, retval] GraphicSet** prop // The item.
  13076.             );
  13077.  
  13078.         /**
  13079.          * Returns the parent object for the specified object.
  13080.          */
  13081.         [
  13082.              propget
  13083.             ,helpcontext(0x10080005)
  13084.             ,helpstring("Returns the parent object for the specified object.")
  13085.         ]
  13086.         HRESULT  Parent(
  13087.             [out, retval] IDrawing** prop // The parent object.
  13088.             );
  13089.  
  13090.         /**
  13091.          * Creates an enumeration object.
  13092.          */
  13093.         [
  13094.              propget
  13095.             ,restricted
  13096.             ,id(DISPID_NEWENUM)
  13097.             ,helpcontext(0x10080006)
  13098.             ,helpstring("Private.  Creates an enumeration object.")
  13099.         ]
  13100.         HRESULT  _NewEnum(
  13101.             [out, retval] IUnknown** prop // The enumeration object.
  13102.             );
  13103.  
  13104.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13105.  
  13106.         /**
  13107.          * Creates an empty GraphicSet object.
  13108.          */
  13109.         [
  13110.              helpcontext(0x10080007)
  13111.             ,helpstring("Creates an empty GraphicSet object.")
  13112.         ]
  13113.         HRESULT  Add(
  13114.             [in, optional] VARIANT* Name, // The name of the GraphicSet object.
  13115.             [in, optional] VARIANT* Temporary, // True if the new GraphicSet object deletes on release.
  13116.             [out, retval] GraphicSet** prop // The new GraphicSet object.
  13117.             );
  13118.     };
  13119.  
  13120.  
  13121.  
  13122.     /**
  13123.      * A point in three dimensional space.
  13124.      * <p>
  13125.      * Vertex objects can be standaolone, or contained by a Graphic object.
  13126.      * Modifying a Vertex object allows for the reshaping of the parent Graphic
  13127.      * object.
  13128.      */
  13129.     [
  13130.          object
  13131.         ,uuid(6A48110C-E531-11CF-A115-00A024158DAF)
  13132.         ,oleautomation
  13133.         ,dual
  13134.         ,helpcontext(0x10090000)
  13135.         ,helpstring("A point in three dimension space.")
  13136.     ]
  13137.     interface IVertex : IDispatch
  13138.     {
  13139.  
  13140.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13141.  
  13142.         /**
  13143.          * Returns an Application object that represents the owner of the specified object.
  13144.          */
  13145.         [
  13146.              propget
  13147.             ,helpcontext(0x10090001)
  13148.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13149.         ]
  13150.         HRESULT  Application(
  13151.             [out, retval] IApplication** prop // The Application object.
  13152.             );
  13153.  
  13154.         /**
  13155.          * True if the Vertex object is recalculated by the RegenMethod.
  13156.          */
  13157.         [
  13158.              propget
  13159.             ,helpcontext(0x10090002)
  13160.             ,helpstring("True if the Vertex object is recalculated by the RegenMethod.")
  13161.         ]
  13162.         HRESULT  Calculated(
  13163.         [out, retval] IMSI_BOOL* prop // True if the Vertex object is recalculated by the RegenMethod.
  13164.             );
  13165.  
  13166.         /**
  13167.          * True if the Vertex object is recalculated by the RegenMethod.
  13168.          */
  13169.         [
  13170.              propput
  13171.             ,helpcontext(0x10090002)
  13172.             ,helpstring("True if the Vertex object is recalculated by the RegenMethod.")
  13173.         ]
  13174.         HRESULT  Calculated(
  13175.         [in] IMSI_BOOL prop // True if the Vertex object is recalculated by the RegenMethod.
  13176.             );
  13177.  
  13178.         /**
  13179.          * True if the Vertex object can be edited in the user interface.
  13180.          */
  13181.         [
  13182.              propget
  13183.             ,helpcontext(0x10090003)
  13184.             ,helpstring("True if the Vertex object can be edited in the user interface.")
  13185.         ]
  13186.         HRESULT  Editable(
  13187.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be edited in the user interface.
  13188.             );
  13189.  
  13190.         /**
  13191.          * True if the Vertex object can be edited in the user interface.
  13192.          */
  13193.         [
  13194.              propput
  13195.             ,helpcontext(0x10090003)
  13196.             ,helpstring("True if the Vertex object can be edited in the user interface.")
  13197.         ]
  13198.         HRESULT  Editable(
  13199.             [in] IMSI_BOOL prop // True if the Vertex object can be edited in the user interface.
  13200.             );
  13201.  
  13202.         /**
  13203.          * Returns the index of the item in the collection.
  13204.          */
  13205.         [
  13206.              propget
  13207.             ,helpcontext(0x10090004)
  13208.             ,helpstring("Returns the index of the item in the collection.")
  13209.         ]
  13210.         HRESULT  Index(
  13211.             [out, retval] long* prop // The index.
  13212.             );
  13213.  
  13214.         /**
  13215.          * True if the Vertex object can be linked to other Vertices.
  13216.          */
  13217.         [
  13218.              propget
  13219.             ,helpcontext(0x10090005)
  13220.             ,helpstring("True if the Vertex object can be linked to other Vertices.")
  13221.         ]
  13222.         HRESULT  Linkable(
  13223.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be linked to other Vertices.
  13224.             );
  13225.  
  13226.         /**
  13227.          * True if the Vertex object can be linked to other Vertices.
  13228.          */
  13229.         [
  13230.              propput
  13231.             ,helpcontext(0x10090005)
  13232.             ,helpstring("True if the Vertex object can be linked to other Vertices.")
  13233.         ]
  13234.         HRESULT  Linkable(
  13235.             [in] IMSI_BOOL prop // True if the Vertex object can be linked to other Vertices.
  13236.             );
  13237.  
  13238.         /**
  13239.          * Returns the parent object for the specified object.
  13240.          */
  13241.         [
  13242.              propget
  13243.             ,helpcontext(0x10090006)
  13244.             ,helpstring("Returns the parent object for the specified object.")
  13245.         ]
  13246.         HRESULT  Parent(
  13247.             [out, retval] IDispatch** prop // The parent object.
  13248.             );
  13249.  
  13250.         /**
  13251.          * True if the segment from the previous Vertex object to this one should be drawn.
  13252.          */
  13253.         [
  13254.              propget
  13255.             ,helpcontext(0x10090007)
  13256.             ,helpstring("True if the segment from the previous Vertex object to this one should be drawn.")
  13257.         ]
  13258.         HRESULT  PenDown(
  13259.             [out, retval] IMSI_BOOL* prop // True if the segment from the previous Vertex object to this one should be drawn.
  13260.             );
  13261.  
  13262.         /**
  13263.          * True if the segment from the previous Vertex object to this one should be drawn.
  13264.          */
  13265.         [
  13266.              propput
  13267.             ,helpcontext(0x10090007)
  13268.             ,helpstring("True if the segment from the previous Vertex object to this one should be drawn.")
  13269.         ]
  13270.         HRESULT  PenDown(
  13271.             [in] IMSI_BOOL prop // True if the segment from the previous Vertex object to this one should be drawn.
  13272.             );
  13273.  
  13274.         /**
  13275.          * True if the Vertex object can be selected in the user interface.
  13276.          */
  13277.         [
  13278.              propget
  13279.             ,helpcontext(0x10090008)
  13280.             ,helpstring("True if the Vertex object can be selected in the user interface.")
  13281.         ]
  13282.         HRESULT  Selectable(
  13283.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be selected in the user interface.
  13284.             );
  13285.  
  13286.         /**
  13287.          * True if the Vertex object can be selected in the user interface.
  13288.          */
  13289.         [
  13290.              propput
  13291.             ,helpcontext(0x10090008)
  13292.             ,helpstring("True if the Vertex object can be selected in the user interface.")
  13293.         ]
  13294.         HRESULT  Selectable(
  13295.             [in] IMSI_BOOL prop // True if the Vertex object can be selected in the user interface.
  13296.             );
  13297.  
  13298.         /**
  13299.          * True if the Vertex object can be snapped to in the user interface.
  13300.          */
  13301.         [
  13302.              propget
  13303.             ,helpcontext(0x10090009)
  13304.             ,helpstring("True if the Vertex object can be snapped to in the user interface.")
  13305.         ]
  13306.         HRESULT  Snappable(
  13307.             [out, retval] IMSI_BOOL* prop // True if the Vertex object can be snapped to in the user interface.
  13308.             );
  13309.  
  13310.         /**
  13311.          * True if the Vertex object can be snapped to in the user interface.
  13312.          */
  13313.         [
  13314.              propput
  13315.             ,helpcontext(0x10090009)
  13316.             ,helpstring("True if the Vertex object can be snapped to in the user interface.")
  13317.         ]
  13318.         HRESULT  Snappable(
  13319.             [in] IMSI_BOOL prop // True if the Vertex object can be snapped to in the user interface.
  13320.             );
  13321.  
  13322.         /**
  13323.          * The x component of the Vertex object's location.
  13324.          */
  13325.         [
  13326.              propget
  13327.             ,helpcontext(0x1009000A)
  13328.             ,helpstring("The x component of the Vertex object's location.")
  13329.         ]
  13330.         HRESULT  X(
  13331.             [out, retval] double* prop // The x component of the Vertex object's location.
  13332.             );
  13333.  
  13334.         /**
  13335.          * The x component of the Vertex object's location.
  13336.          */
  13337.         [
  13338.              propput
  13339.             ,helpcontext(0x1009000A)
  13340.             ,helpstring("The x component of the Vertex object's location.")
  13341.         ]
  13342.         HRESULT  X(
  13343.             [in] double prop // The x component of the Vertex object's location.
  13344.             );
  13345.  
  13346.         /**
  13347.          * The y component of the Vertex object's location.
  13348.          */
  13349.         [
  13350.              propget
  13351.             ,helpcontext(0x1009000B)
  13352.             ,helpstring("The y component of the Vertex object's location.")
  13353.         ]
  13354.         HRESULT  Y(
  13355.             [out, retval] double* prop // The y component of the Vertex object's location.
  13356.             );
  13357.  
  13358.         /**
  13359.          * The y component of the Vertex object's location.
  13360.          */
  13361.         [
  13362.              propput
  13363.             ,helpcontext(0x1009000B)
  13364.             ,helpstring("The y component of the Vertex object's location.")
  13365.         ]
  13366.         HRESULT  Y(
  13367.             [in] double prop // The y component of the Vertex object's location.
  13368.             );
  13369.  
  13370.         /**
  13371.          * The z component of the Vertex object's location.
  13372.          */
  13373.         [
  13374.              propget
  13375.             ,helpcontext(0x1009000C)
  13376.             ,helpstring("The z component of the Vertex object's location.")
  13377.         ]
  13378.         HRESULT  Z(
  13379.             [out, retval] double* prop // The z component of the Vertex object's location.
  13380.             );
  13381.  
  13382.         /**
  13383.          * The z component of the Vertex object's location.
  13384.          */
  13385.         [
  13386.              propput
  13387.             ,helpcontext(0x1009000C)
  13388.             ,helpstring("The z component of the Vertex object's location.")
  13389.         ]
  13390.         HRESULT  Z(
  13391.             [in] double prop // The z component of the Vertex object's location.
  13392.             );
  13393.  
  13394.         /**
  13395.          * Returns the internal handle associated with the Vertex object.
  13396.          * Private.
  13397.          */
  13398.         [
  13399.              propget
  13400.             ,restricted
  13401.             ,helpcontext(0x1009000D)
  13402.             ,helpstring("Private.  Returns the internal handle associated with the Vertex object.")
  13403.         ]
  13404.         HRESULT  _Handle(
  13405.             [out, retval] long* prop // The internal handle.
  13406.             );
  13407.  
  13408.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13409.  
  13410.         /**
  13411.          * Deletes the object.
  13412.          */
  13413.         [
  13414.              helpcontext(0x1009000E)
  13415.             ,helpstring("Deletes the object.")
  13416.         ]
  13417.         HRESULT  Delete(
  13418.             );
  13419.  
  13420.         /**
  13421.          * Duplicates the object and returns a reference to the new copy.
  13422.          */
  13423.         [
  13424.              helpcontext(0x1009000F)
  13425.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  13426.         ]
  13427.         HRESULT  Duplicate(
  13428.             [out, retval] IVertex** prop // The duplicated Vertex object.
  13429.             );
  13430.  
  13431.  
  13432.         [
  13433.              propget
  13434.             ,helpcontext(0x10090010)
  13435.             ,helpstring("True if the vertex is Bulge (belong to bulge polyline")
  13436.         ]
  13437.         
  13438.         HRESULT  Bulge(
  13439.             [out, retval] IMSI_BOOL *pVal
  13440.             );
  13441.  
  13442.         [
  13443.              propput
  13444.             ,helpcontext(0x10090010)
  13445.             ,helpstring("True if the vertex is Bulge (belong to bulge polyline")
  13446.         ]
  13447.         HRESULT  Bulge(
  13448.             [in] IMSI_BOOL newVal
  13449.             );
  13450.     };
  13451.         //%page
  13452.  
  13453.     /**
  13454.      * The collection of Vertex objects contained in a Graphic object.
  13455.      * <p>
  13456.      * Enumerates the Vertex objects in the collection.
  13457.      * Every Graphic object owns a Vertices collection, which define the geometry
  13458.      * of the Graphic object.
  13459.      */
  13460.     [
  13461.          object
  13462.         ,uuid(6A48110D-E531-11CF-A115-00A024158DAF)
  13463.         ,oleautomation
  13464.         ,dual
  13465.         ,helpcontext(0x100A0000)
  13466.         ,helpstring("A collection of Vertex objects.")
  13467.     ]
  13468.     interface Vertices : IDispatch
  13469.     {
  13470.  
  13471.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13472.  
  13473.         /**
  13474.          * Returns an Application object that represents the owner of the specified object.
  13475.          */
  13476.         [
  13477.              propget
  13478.             ,helpcontext(0x100A0001)
  13479.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13480.         ]
  13481.         HRESULT  Application(
  13482.             [out, retval] IApplication** prop // The Application object.
  13483.             );
  13484.  
  13485.         /**
  13486.          * Returns the number of items in the collection.
  13487.          */
  13488.         [
  13489.              propget
  13490.             ,helpcontext(0x100A0002)
  13491.             ,helpstring("Returns the number of items in the collection.")
  13492.         ]
  13493.         HRESULT  Count(
  13494.             [out, retval] long* prop // The number of items.
  13495.             );
  13496.  
  13497.         /**
  13498.          * Returns part of a collection.
  13499.          */
  13500.         [
  13501.              propget
  13502.             ,id(DISPID_VALUE)
  13503.             ,helpcontext(0x100A0003)
  13504.             ,helpstring("Returns part of a collection.")
  13505.         ]
  13506.         HRESULT  Item(
  13507.             [in] VARIANT* Index, // Index of item to return.
  13508.             [out, retval] IVertex** prop // The item.
  13509.             );
  13510.  
  13511.         /**
  13512.          * Returns the parent object for the specified object.
  13513.          */
  13514.         [
  13515.              propget
  13516.             ,helpcontext(0x100A0004)
  13517.             ,helpstring("Returns the parent object for the specified object.")
  13518.         ]
  13519.         HRESULT  Parent(
  13520.             [out, retval] IDispatch** prop // The parent object.
  13521.             );
  13522.  
  13523.         /**
  13524.          * Creates an enumeration object.
  13525.          */
  13526.         [
  13527.              propget
  13528.             ,restricted
  13529.             ,id(DISPID_NEWENUM)
  13530.             ,helpcontext(0x100A0005)
  13531.             ,helpstring("Private.  Creates an enumeration object.")
  13532.         ]
  13533.         HRESULT  _NewEnum(
  13534.             [out, retval] IUnknown** prop // The enumeration object.
  13535.             );
  13536.  
  13537.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13538.  
  13539.         /*
  13540.          * Creates a new Vertex object and adds it to the collection.
  13541.          */
  13542.         [
  13543.              helpcontext(0x100A0006)
  13544.             ,helpstring("Creates a new Vertex object and adds it to the collection.")
  13545.         ]
  13546.         HRESULT  Add(
  13547.             [in, optional] VARIANT* X, // X coordinate of the vertex.
  13548.             [in, optional] VARIANT* Y, // Y coordinate of the vertex.
  13549.             [in, optional] VARIANT* Z, // Z coordinate of the vertex.
  13550.             [in, optional] VARIANT* PenDown, // True if the segment to this vertex is drawn.
  13551.             [in, optional] VARIANT* Selectable, // True if the vertex can be selected.
  13552.             [in, optional] VARIANT* Snappable, // True if the vertex can be snapped to.
  13553.             [in, optional] VARIANT* Editable, // True if the vertex can be edited.
  13554.             [in, optional] VARIANT* Linkable, // True if the vertex can be linked to.
  13555.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  13556.             [in, optional] VARIANT* Before, // Vertex object or index to follow this one.
  13557.             [in, optional] VARIANT* After, // Vertex object or index to precede this one.
  13558.             [out, retval] IVertex** prop // The newly created Vertex object.
  13559.             );
  13560.  
  13561.         /**
  13562.          * Creates a new Vertex object and closes the collection's Graphic object.
  13563.          */
  13564.         [
  13565.              helpcontext(0x100A0007)
  13566.             ,helpstring("Creates a new Vertex object and closes the collection's Graphic object.")
  13567.         ]
  13568.         HRESULT  AddClose(
  13569.             [in, optional] VARIANT* PenDown, // True if the segment to this vertex is drawn.
  13570.             [in, optional] VARIANT* Selectable, // True if the vertex can be selected.
  13571.             [in, optional] VARIANT* Snappable, // True if the vertex can be snapped to.
  13572.             [in, optional] VARIANT* Editable, // True if the vertex can be edited.
  13573.             [in, optional] VARIANT* Linkable, // True if the vertex can be linked to.
  13574.             [in, optional] VARIANT* Calculated, // True if the Vertex object is recalculated by the RegenMethod.
  13575.             [out, retval] IVertex** prop // The newly created Vertex object.
  13576.             );
  13577.  
  13578.         /**
  13579.          * Adds an existing Vertex object to the collection.
  13580.          */
  13581.         [
  13582.              helpcontext(0x100A0008)
  13583.             ,helpstring("Adds an existing Vertex object to the collection.")
  13584.         ]
  13585.         HRESULT  AddVertex(
  13586.             [in] IVertex* Vertex, // The Vertex object to be added.
  13587.             [in, optional] VARIANT* Before, // Vertex object or index to follow this one.
  13588.             [in, optional] VARIANT* After // Vertex object or index to precede this one.
  13589.             );
  13590.  
  13591.         /**
  13592.          * Deletes the collection's Vertex objects.
  13593.          */
  13594.         [
  13595.              helpcontext(0x100A0009)
  13596.             ,helpstring("Deletes the collection's Vertex objects.")
  13597.         ]
  13598.         HRESULT  Clear(
  13599.             [in, optional] VARIANT* Types // If supplied, the types of Vertex objects to delete.
  13600.             );
  13601.  
  13602.         /**
  13603.          * Removes an item from the collection.
  13604.          */
  13605.         [
  13606.              helpcontext(0x100A000A)
  13607.             ,helpstring("Removes a Vertex object from the collection.")
  13608.         ]
  13609.         HRESULT  Remove(
  13610.             [in] VARIANT* Index, // The index of item to be removed.
  13611.             [out, retval] IVertex** prop // The Vertex object that was removed.
  13612.             );
  13613.  
  13614.         /**
  13615.          * Returns the index within the Vertices collection of the specified Vertex.
  13616.          * Private.
  13617.          */
  13618.         [
  13619.              restricted
  13620.             ,helpcontext(0x100A000B)
  13621.             ,helpstring("Private.  Returns the index within the Vertices collection of the specified Vertex.")
  13622.         ]
  13623.         HRESULT  _FindIndex(
  13624.             [in] long v, // The internal handle.
  13625.             [out, retval] long* prop // The index.
  13626.             );
  13627.  
  13628.         /*
  13629.          * Returns the current coordinate system for items.
  13630.          */
  13631.         [
  13632.              propput
  13633.             ,helpcontext(0x100A000C)
  13634.             ,helpstring("True if items should be tronsform to world coordinate system for items.")
  13635.         ]
  13636.         HRESULT  UseWorldCS(
  13637.             [in] IMSI_BOOL bUseWorldCS
  13638.             );
  13639.  
  13640.  
  13641.         /*
  13642.          * Sets the world coordinate system for items.
  13643.          */
  13644.         [
  13645.              propget
  13646.             ,helpcontext(0x100A000C)
  13647.             ,helpstring("True if items are transforming to world coordinate system for items."
  13648.         )
  13649.         ]
  13650.         HRESULT  UseWorldCS(
  13651.             [out, retval] IMSI_BOOL* pbUseWorldCS
  13652.             );
  13653.  
  13654.     };
  13655.  
  13656.     /**
  13657.      * A named attribute of an object.
  13658.      * Can be an attribute of an Application object, a Drawing object, a Graphic object.
  13659.      * <P>
  13660.      * See the following pages for information on the names for standard properties:
  13661.      * <UL>
  13662.      * <LI><A HREF="appprops.html">Application Properties</A>
  13663.      * <LI><A HREF="dwgprops.html">Drawing Properties</A>
  13664.      * <LI><A HREF="grfprops.html">Graphic Properties</A>
  13665.      * </UL>
  13666.      */
  13667.     [
  13668.          object
  13669.         ,uuid(6A48110E-E531-11CF-A115-00A024158DAF)
  13670.         ,oleautomation
  13671.         ,dual
  13672.         ,helpcontext(0x100B0000)
  13673.         ,helpstring("A named attribute of an object.")
  13674.     ]
  13675.     interface Property : IDispatch
  13676.     {
  13677.  
  13678.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13679.  
  13680.         /**
  13681.          * Returns an Application object that represents the owner of the specified object.
  13682.          */
  13683.         [
  13684.              propget
  13685.             ,helpcontext(0x100B0001)
  13686.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13687.         ]
  13688.         HRESULT  Application(
  13689.             [out, retval] IApplication** prop // The Application object.
  13690.             );
  13691.  
  13692.         /**
  13693.          * True if the object is built-in.
  13694.          */
  13695.         [
  13696.              propget
  13697.             ,helpcontext(0x100B0002)
  13698.             ,helpstring("True if the object is built-in.")
  13699.         ]
  13700.         HRESULT  Builtin(
  13701.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  13702.             );
  13703.  
  13704.         /**
  13705.          * Returns the type of the Property object's container.
  13706.          */
  13707.         [
  13708.              propget
  13709.             ,helpcontext(0x100B0003)
  13710.             ,helpstring("Returns the type of the Property object's container.")
  13711.         ]
  13712.         HRESULT  Domain(
  13713.             [out, retval] ImsiDomain* prop // The type of the container.
  13714.             );
  13715.  
  13716.         /**
  13717.          * Returns the Property object's internal ID number.
  13718.          */
  13719.         [
  13720.              propget
  13721.             ,helpcontext(0x100B0004)
  13722.             ,helpstring("Returns the Property object's internal ID number.")
  13723.         ]
  13724.         HRESULT  ID(
  13725.             [out, retval] long* prop // The internal ID number.
  13726.             );
  13727.  
  13728.         /**
  13729.          * Returns the index of the item in the collection.
  13730.          */
  13731.         [
  13732.              propget
  13733.             ,helpcontext(0x100B0005)
  13734.             ,helpstring("Returns the index of the item in the collection.")
  13735.         ]
  13736.         HRESULT  Index(
  13737.             [out, retval] long* prop // The index.
  13738.             );
  13739.  
  13740.         /**
  13741.          * Returns the name of the object, as a string.
  13742.          */
  13743.         [
  13744.              propget
  13745.             ,helpcontext(0x100B0006)
  13746.             ,helpstring("Returns the name of the object, as a string.")
  13747.         ]
  13748.         HRESULT  Name(
  13749.             [out, retval] BSTR* prop // The name of the object.
  13750.             );
  13751.  
  13752.         /**
  13753.          * Returns the parent object for the specified object.
  13754.          */
  13755.         [
  13756.              propget
  13757.             ,helpcontext(0x100B0007)
  13758.             ,helpstring("Returns the parent object for the specified object.")
  13759.         ]
  13760.         HRESULT  Parent(
  13761.             [out, retval] IDispatch** prop // The parent object.
  13762.             );
  13763.  
  13764.         /**
  13765.          * True if the value of the Property object cannot be modified.
  13766.          */
  13767.         [
  13768.              propget
  13769.             ,helpcontext(0x100B0008)
  13770.             ,helpstring("True if the value of the Property object cannot be modified.")
  13771.             ,restricted, hidden
  13772.         ]
  13773.         HRESULT  ReadOnly(
  13774.             [out, retval] IMSI_BOOL* prop // True if the value of the Property object cannot be modified.
  13775.             );
  13776.  
  13777.         /**
  13778.          * True if the value of the Property object cannot be modified.
  13779.          */
  13780.         [
  13781.              propput
  13782.             ,helpcontext(0x100B0008)
  13783.             ,helpstring("True if the value of the Property object cannot be modified.")
  13784.             ,restricted, hidden
  13785.         ]
  13786.         HRESULT  ReadOnly(
  13787.             [in] IMSI_BOOL prop // True if the value of the Property object cannot be modified.
  13788.             );
  13789.  
  13790.         /**
  13791.          * Returns the type of the Property object.
  13792.          * The value is specified as a VARTYPE enumeration.
  13793.          */
  13794.         [
  13795.              propget
  13796.             ,helpcontext(0x100B0009)
  13797.             ,helpstring("Returns the type of the Property object.")
  13798.         ]
  13799.         HRESULT  Type(
  13800.             [out, retval] SHORT* prop // Returns the type of the Property object.
  13801.             );
  13802.  
  13803.         /**
  13804.          * Returns the value of the Property object.
  13805.          */
  13806.         [
  13807.              propget
  13808.             ,id(DISPID_VALUE)
  13809.             ,helpcontext(0x100B000A)
  13810.             ,helpstring("Returns the value of the Property object.")
  13811.         ]
  13812.         HRESULT  Value(
  13813. //             [in, lcid] long lcid // The locale ID.
  13814.              [in, optional]    long lcid
  13815.             ,[out, retval] VARIANT* prop // The value, as a variant.
  13816.             );
  13817.  
  13818.         /**
  13819.          * Sets the value of the Property object.
  13820.          */
  13821.         [
  13822.              propput
  13823.             ,id(DISPID_VALUE)
  13824.             ,helpcontext(0x100B000A)
  13825.             ,helpstring("Sets the value of the Property object.")
  13826.         ]
  13827.         HRESULT  Value(
  13828. //             [in, lcid] long lcid // The locale ID.
  13829.              [in, optional]    long lcid
  13830.             ,[in] VARIANT* prop // The value, set by reference.
  13831.             );
  13832.  
  13833.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13834.  
  13835.         /**
  13836.          * Deletes the object.
  13837.          */
  13838.         [
  13839.              helpcontext(0x100B000B)
  13840.             ,helpstring("Deletes the object.")
  13841.         ]
  13842.         HRESULT  Delete(
  13843.             );
  13844.  
  13845.         /**
  13846.          * Duplicates the object and returns a reference to the new copy.
  13847.          */
  13848.         [
  13849.              helpcontext(0x100B000C)
  13850.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  13851.             ,restricted, hidden
  13852.         ]
  13853.         HRESULT  Duplicate(
  13854.             [in] BSTR Name, // A name for the new Property object.
  13855.             [out, retval] Property** prop // The duplicated Property object.
  13856.             );
  13857.  
  13858.         /**
  13859.          * True if the object is an attribute.
  13860.          */
  13861.         [
  13862.              propget
  13863.             ,helpcontext(0x100B000D)
  13864.             ,helpstring("True if the object is an attribute.")
  13865.         ]
  13866.         HRESULT  IsAttribute(
  13867.             [out, retval] IMSI_BOOL* prop // True if the object is an attribute.
  13868.             );
  13869.     };
  13870.  
  13871.  
  13872.  
  13873.     /**
  13874.      * A collection of Property objects.
  13875.      * <P>
  13876.      * See the following pages for information on the names for standard properties:
  13877.      * <UL>
  13878.      * <LI><A HREF="appprops.html">Application Properties</A>
  13879.      * <LI><A HREF="dwgprops.html">Drawing Properties</A>
  13880.      * <LI><A HREF="grfprops.html">Graphic Properties</A>
  13881.      * </UL>
  13882.      */
  13883.     [
  13884.          object
  13885.         ,uuid(6A48110F-E531-11CF-A115-00A024158DAF)
  13886.         ,oleautomation
  13887.         ,dual
  13888.         ,helpcontext(0x100C0000)
  13889.         ,helpstring("A collection of TurboCAD properties.")
  13890.     ]
  13891.     interface Properties : IDispatch
  13892.     {
  13893.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13894.  
  13895.         /**
  13896.          * Returns an Application object that represents the owner of the specified object.
  13897.          */
  13898.         [
  13899.              propget
  13900.             ,helpcontext(0x100C0001)
  13901.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  13902.         ]
  13903.         HRESULT  Application(
  13904.             [out, retval] IApplication** prop // The Application object.
  13905.             );
  13906.  
  13907.         /**
  13908.          * Returns the number of items in the collection.
  13909.          */
  13910.         [
  13911.              propget
  13912.             ,helpcontext(0x100C0002)
  13913.             ,helpstring("Returns the number of items in the collection.")
  13914.         ]
  13915.         HRESULT  Count(
  13916.             [out, retval] long* prop // The number of items.
  13917.             );
  13918.  
  13919.         /**
  13920.          * Returns part of a collection.
  13921.          */
  13922.         [
  13923.              propget
  13924.             ,id(DISPID_VALUE)
  13925.             ,helpcontext(0x100C0003)
  13926.         ,
  13927.         helpstring("Returns part of a collection.")]
  13928.         HRESULT  Item(
  13929.             [in] VARIANT* Index, // Index of item to return.
  13930.             [out, retval] Property** prop // The item.
  13931.             );
  13932.  
  13933.         /**
  13934.          * Returns the parent object for the specified object.
  13935.          */
  13936.         [
  13937.              propget
  13938.             ,helpcontext(0x100C0004)
  13939.             ,helpstring("Returns the parent object for the specified object.")
  13940.         ]
  13941.         HRESULT  Parent(
  13942.             [out, retval] IDispatch** prop // The parent object.
  13943.             );
  13944.  
  13945.         /**
  13946.          * Creates an enumeration object.
  13947.          */
  13948.         [
  13949.              propget
  13950.             ,restricted
  13951.             ,id(DISPID_NEWENUM)
  13952.             ,helpcontext(0x100C0005)
  13953.             ,helpstring("Private.  Creates an enumeration object.")
  13954.         ]
  13955.         HRESULT  _NewEnum(
  13956.             [out, retval] IUnknown** prop // The enumeration object.
  13957.             );
  13958.  
  13959.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  13960.  
  13961.         /**
  13962.          * Creates a new Property object and adds it to the collection, optionally setting a value.
  13963.          */
  13964.         [
  13965.              helpcontext(0x100C0006)
  13966.             ,helpstring("Creates a new Property object and adds it to the collection, optionally setting a value.")
  13967.         ]
  13968.         HRESULT  Add(
  13969.             [in] BSTR Name, // Name of the new Property object.
  13970.             [in, optional] VARIANT* Value, // The value of the new Property object, by reference.
  13971.             [in, optional] VARIANT* ReadOnly, // True if the new Property object's value cannot be modified.
  13972.             [in, optional] VARIANT* ID, // Internal ID.
  13973.             [out, retval] Property** prop // The newly created Property object.
  13974.             );
  13975.  
  13976.         /**
  13977.          * Display property editing dialog or browser.
  13978.          * Only implemented on Graphic properties.
  13979.          */
  13980.         [
  13981.              helpcontext(0x100C0007)
  13982.             ,helpstring("Display property editing dialog or browser.")
  13983.             ,restricted, hidden
  13984.         ]
  13985.         HRESULT  Edit(
  13986.             );
  13987.  
  13988.         /**
  13989.          * Returns the ids, names and types of the collection.
  13990.          * Some remarks.
  13991.          */
  13992.         [
  13993.              helpcontext(0x100C0008)
  13994.             ,helpstring("Returns the ids, names and types of the collection.")
  13995.         ]
  13996.         HRESULT  Enumerate(
  13997.             [out] VARIANT* IDs, // An array of longs.
  13998.             [out] VARIANT* Names, // An array of strings.
  13999.             [out] VARIANT* Types // An array of longs.
  14000.             );
  14001.     };
  14002.  
  14003.  
  14004.  
  14005.     /**
  14006.      * An object which controls the mapping from view space to the client area of a Window.
  14007.      */
  14008.     [
  14009.          object
  14010.         ,uuid(6A481110-E531-11CF-A115-00A024158DAF)
  14011.         ,oleautomation
  14012.         ,dual
  14013.         ,helpcontext(0x100D0000)
  14014.         ,helpstring("An object which controls the mapping from view space to the client area of a Window.")
  14015.     ]
  14016.     interface View : IDispatch
  14017.     {
  14018.  
  14019.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14020.  
  14021.         /**
  14022.          * Returns an Application object that represents the owner of the specified object.
  14023.          */
  14024.         [
  14025.              propget
  14026.             ,helpcontext(0x100D0001)
  14027.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  14028.         ]
  14029.         HRESULT  Application(
  14030.             [out, retval] IApplication** prop // The Application object.
  14031.             );
  14032.  
  14033.         /**
  14034.          * Returns the camera that controls the View object.
  14035.          */
  14036.         [
  14037.              propget
  14038.             ,helpcontext(0x100D0002)
  14039.             ,helpstring("Returns the Camera object that controls the View object.")
  14040.         ]
  14041.         HRESULT  Camera(
  14042.             [out, retval] ICamera** prop // The Camera object.
  14043.             );
  14044.  
  14045.         /**
  14046.          * Sets the camera that controls the View object.
  14047.          */
  14048.         [
  14049.              propput
  14050.             ,helpcontext(0x100D0002)
  14051.             ,helpstring("Sets the Camera object that controls the View object.")
  14052.         ]
  14053.         HRESULT  Camera(
  14054.             [in] ICamera* prop // The Camera object.
  14055.             );
  14056.  
  14057.         /**
  14058.          * True if the View object's extents are centered within the Window.
  14059.          */
  14060.         [
  14061.              propget
  14062.             ,helpcontext(0x100D0003)
  14063.             ,helpstring("True if the View object's extents are centered within the Window.")
  14064.         ]
  14065.         HRESULT  CenterOnExtents(
  14066.             [out, retval] IMSI_BOOL* prop // True if extents are centered.
  14067.             );
  14068.  
  14069.         /**
  14070.          * True if the View object's extents are centered within the Window.
  14071.          */
  14072.         [
  14073.              propput
  14074.             ,helpcontext(0x100D0003)
  14075.             ,helpstring("True if the View object's extents are centered within the Window.")
  14076.         ]
  14077.         HRESULT  CenterOnExtents(
  14078.             [in] IMSI_BOOL prop // True if extents are centered.
  14079.             );
  14080.  
  14081.         /**
  14082.          * Returns the DC associated with this View object.
  14083.          */
  14084.         [
  14085.              propget
  14086.             ,helpcontext(0x100D0004)
  14087.             ,helpstring("Returns the DC associated with this View object.")
  14088.         ]
  14089.         HRESULT  DC(
  14090.             [out, retval] long* prop // The DC.
  14091.             );
  14092.  
  14093.         /**
  14094.          * Sets the DC associated with this View object.
  14095.          */
  14096.         [
  14097.              propput
  14098.             ,helpcontext(0x100D0004)
  14099.             ,helpstring("Sets the DC associated with this View object.")
  14100.         ]
  14101.         HRESULT  DC(
  14102.             [in] long prop // The DC.
  14103.             );
  14104.  
  14105.         /**
  14106.          * Returns the Drawing object that owns the object.
  14107.          */
  14108.         [
  14109.              propget
  14110.             ,helpcontext(0x100D0005)
  14111.             ,helpstring("Returns the Drawing object that owns the object.")
  14112.         ]
  14113.         HRESULT  Drawing(
  14114.             [out, retval] IDrawing** prop // The Drawing object.
  14115.             );
  14116.  
  14117.         /**
  14118.          * True if the View object's mapping is isotropic.
  14119.          */
  14120.         [
  14121.              propget
  14122.             ,helpcontext(0x100D0006)
  14123.             ,helpstring("True if the View object's mapping is isotropic.")
  14124.         ]
  14125.         HRESULT  FixedAspectRatio(
  14126.             [out, retval] IMSI_BOOL* prop // True if mapping is isotropic.
  14127.             );
  14128.  
  14129.         /**
  14130.          * True if the View object's mapping is isotropic.
  14131.          */
  14132.         [
  14133.              propput
  14134.             ,helpcontext(0x100D0006)
  14135.             ,helpstring("True if the View object's mapping is isotropic.")
  14136.         ]
  14137.         HRESULT  FixedAspectRatio(
  14138.             [in] IMSI_BOOL prop // True if mapping is isotropic.
  14139.             );
  14140.  
  14141.         /**
  14142.          * The HWND value of the View object's display Window.
  14143.          */
  14144.         [
  14145.              propget
  14146.             ,helpcontext(0x100D0007)
  14147.             ,helpstring("The HWND value of the View object's display Window.")
  14148.         ]
  14149.         HRESULT  HWND(
  14150.             [out, retval] long* prop // The HWND value.
  14151.             );
  14152.  
  14153.         /**
  14154.          * The HWND value of the View object's display Window.
  14155.          */
  14156.         [
  14157.              propput
  14158.             ,helpcontext(0x100D0007)
  14159.             ,helpstring("The HWND value of the View object's display Window.")
  14160.         ]
  14161.         HRESULT  HWND(
  14162.             [in] long prop // The HWND value.
  14163.             );
  14164.  
  14165.         /**
  14166.          * Returns the index of the item in the collection.
  14167.          */
  14168.         [
  14169.              propget
  14170.             ,helpcontext(0x100D0008)
  14171.             ,helpstring("Returns the index of the item in the collection.")
  14172.         ]
  14173.         HRESULT  Index(
  14174.             [out, retval] long* prop // The index.
  14175.             );
  14176.  
  14177.         /**
  14178.          * Returns the mapping mode of the View object's display Window.
  14179.          */
  14180.         [
  14181.              propget
  14182.             ,helpcontext(0x100D0009)
  14183.             ,helpstring("Returns the mapping mode of the View object's display Window.")
  14184.         ]
  14185.         HRESULT  MappingMode(
  14186.             [out, retval] long* prop // The Windows mapping mode.
  14187.             );
  14188.  
  14189.         /**
  14190.          * Sets the mapping mode of the View object's display Window.
  14191.          */
  14192.         [
  14193.              propput
  14194.             ,helpcontext(0x100D0009)
  14195.             ,helpstring("Sets the mapping mode of the View object's display Window.")
  14196.         ]
  14197.         HRESULT  MappingMode(
  14198.             [in] long prop // The Windows mapping mode.
  14199.             );
  14200.  
  14201.         /**
  14202.          * True if the View object's display window is inset within its client rectangle.
  14203.          */
  14204.         [
  14205.              propget
  14206.             ,helpcontext(0x100D000A)
  14207.             ,helpstring("True if the View object's display window is inset within its client rectangle.")
  14208.         ]
  14209.         HRESULT  Margins(
  14210.             [out, retval] IMSI_BOOL* prop // True if window is inset.
  14211.             );
  14212.  
  14213.         /**
  14214.          * True if the View object's display window is inset within its client rectangle.
  14215.          */
  14216.         [
  14217.              propput
  14218.             ,helpcontext(0x100D000A)
  14219.             ,helpstring("True if the View object's display window is inset within its client rectangle.")
  14220.         ]
  14221.         HRESULT  Margins(
  14222.             [in] IMSI_BOOL prop // True if window is inset.
  14223.             );
  14224.  
  14225.         /**
  14226.          * Returns the name of the object, as a string.
  14227.          */
  14228.         [
  14229.              propget
  14230.             ,helpcontext(0x100D000B)
  14231.             ,helpstring("Returns the name of the object, as a string.")
  14232.             ,restricted, hidden
  14233.         ]
  14234.         HRESULT  Name(
  14235.             [out, retval] BSTR* prop // The name of the object.
  14236.             );
  14237.  
  14238.         /**
  14239.          * Sets the name of the object.
  14240.          */
  14241.         [
  14242.              propput
  14243.             ,helpcontext(0x100D000B)
  14244.             ,helpstring("Sets the name of the object.")
  14245.             ,restricted, hidden
  14246.         ]
  14247.         HRESULT  Name(
  14248.             [in] BSTR prop // The name of the object.
  14249.             );
  14250.  
  14251.         /**
  14252.          * The height in the View object's screen space.
  14253.          */
  14254.         [
  14255.              propget
  14256.             ,helpcontext(0x100D000C)
  14257.             ,helpstring("The height in the View object's screen space.")
  14258.         ]
  14259.         HRESULT  ScreenHeight(
  14260.             [out, retval] double* prop // Height of screen space.
  14261.             );
  14262.  
  14263.         /**
  14264.          * The height in the View object's screen space.
  14265.          */
  14266.         [
  14267.              propput
  14268.             ,helpcontext(0x100D000C)
  14269.             ,helpstring("The height in the View object's screen space.")
  14270.         ]
  14271.         HRESULT  ScreenHeight(
  14272.             [in] double prop // Height of screen space.
  14273.             );
  14274.  
  14275.         /**
  14276.          * The x coordinate of the left hand side of the View object's screen space.
  14277.          */
  14278.         [
  14279.              propget
  14280.             ,helpcontext(0x100D000D)
  14281.             ,helpstring("The x coordinate of the left hand side of the View object's screen space.")
  14282.         ]
  14283.         HRESULT  ScreenLeft(
  14284.             [out, retval] double* prop // Left side of screen space.
  14285.             );
  14286.  
  14287.         /**
  14288.          * The x coordinate of the left hand side of the View object's screen space.
  14289.          */
  14290.         [
  14291.              propput
  14292.             ,helpcontext(0x100D000D)
  14293.             ,helpstring("The x coordinate of the left hand side of the View object's screen space.")
  14294.         ]
  14295.         HRESULT  ScreenLeft(
  14296.             [in] double prop // Left side of screen space.
  14297.             );
  14298.  
  14299.         /**
  14300.          * The y coordinate of the top of the View object's screen space.
  14301.          */
  14302.         [
  14303.              propget
  14304.             ,helpcontext(0x100D000E)
  14305.             ,helpstring("The y coordinate of the top of the View object's screen space.")
  14306.         ]
  14307.         HRESULT  ScreenTop(
  14308.             [out, retval] double* prop // Top of screen space.
  14309.             );
  14310.  
  14311.         /**
  14312.          * The y coordinate of the top of the View object's screen space.
  14313.          */
  14314.         [
  14315.              propput
  14316.             ,helpcontext(0x100D000E)
  14317.             ,helpstring("The y coordinate of the top of the View object's screen space.")
  14318.         ]
  14319.         HRESULT  ScreenTop(
  14320.             [in] double prop // Top of screen space.
  14321.             );
  14322.  
  14323.         /**
  14324.          * The width in the View object's screen space.
  14325.          */
  14326.         [
  14327.              propget
  14328.             ,helpcontext(0x100D000F)
  14329.             ,helpstring("The width in the View object's screen space.")
  14330.         ]
  14331.         HRESULT  ScreenWidth(
  14332.             [out, retval] double* prop // Width of screen space.
  14333.             );
  14334.  
  14335.         /**
  14336.          * The width in the View object's screen space.
  14337.          */
  14338.         [
  14339.              propput
  14340.             ,helpcontext(0x100D000F)
  14341.             ,helpstring("The width in the View object's screen space.")
  14342.         ]
  14343.         HRESULT  ScreenWidth(
  14344.             [in] double prop // Width of screen space.
  14345.             );
  14346.  
  14347.         /**
  14348.          * Returns the parent object for the specified object.
  14349.          */
  14350.         [
  14351.              propget
  14352.             ,helpcontext(0x100D0010)
  14353.             ,helpstring("Returns the parent object for the specified object.")
  14354.         ]
  14355.         HRESULT  Parent(
  14356.             [out, retval] IDrawing** prop // The parent object.
  14357.             );
  14358.  
  14359.         /**
  14360.          * True if changes to the View object parameters will be immmediately reflected.
  14361.          */
  14362.         [
  14363.              propget
  14364.             ,helpcontext(0x100D0011)
  14365.             ,helpstring("True if changes to the View object parameters will be immmediately reflected.")
  14366.         ]
  14367.         HRESULT  Update(
  14368.             [out, retval] IMSI_BOOL* prop // True if parameters are updated immediately.
  14369.             );
  14370.  
  14371.         /**
  14372.          * True if changes to the View object parameters will be immmediately reflected.
  14373.          */
  14374.         [
  14375.              propput
  14376.             ,helpcontext(0x100D0011)
  14377.             ,helpstring("True if changes to the View object parameters will be immmediately reflected.")
  14378.         ]
  14379.         HRESULT  Update(
  14380.             [in] IMSI_BOOL prop // True if parameters are updated immediately.
  14381.             );
  14382.  
  14383.         /**
  14384.          * The height in the View object's view space.
  14385.          */
  14386.         [
  14387.              propget
  14388.             ,helpcontext(0x100D0012)
  14389.             ,helpstring("The height in the View object's view space.")
  14390.         ]
  14391.         HRESULT  ViewHeight(
  14392.             [out, retval] double* prop // Height of view space.
  14393.             );
  14394.  
  14395.         /**
  14396.          * The height in the View object's view space.
  14397.          */
  14398.         [
  14399.              propput
  14400.             ,helpcontext(0x100D0012)
  14401.             ,helpstring("The height in the View object's view space.")
  14402.         ]
  14403.         HRESULT  ViewHeight(
  14404.             [in] double prop // Height of view space.
  14405.             );
  14406.  
  14407.         /**
  14408.          * The x coordinate of the left hand side of the View object's view space.
  14409.          */
  14410.         [
  14411.              propget
  14412.             ,helpcontext(0x100D0013)
  14413.             ,helpstring("The x coordinate of the left hand side of the View object's view space.")
  14414.         ]
  14415.         HRESULT  ViewLeft(
  14416.             [out, retval] double* prop // Left side of view space.
  14417.             );
  14418.  
  14419.         /**
  14420.          * The x coordinate of the left hand side of the View object's view space.
  14421.          */
  14422.         [
  14423.              propput
  14424.             ,helpcontext(0x100D0013)
  14425.             ,helpstring("The x coordinate of the left hand side of the View object's view space.")
  14426.         ]
  14427.         HRESULT  ViewLeft(
  14428.             [in] double prop // Left side of view space.
  14429.             );
  14430.  
  14431.         /**
  14432.          * The y coordinate of the top of the View object's view space.
  14433.          */
  14434.         [
  14435.              propget
  14436.             ,helpcontext(0x100D0014)
  14437.             ,helpstring("The y coordinate of the top of the View object's view space.")
  14438.         ]
  14439.         HRESULT  ViewTop(
  14440.             [out, retval] double* prop // Top of view space.
  14441.             );
  14442.  
  14443.         /**
  14444.          * The y coordinate of the top of the View object's view space.
  14445.          */
  14446.         [
  14447.              propput
  14448.             ,helpcontext(0x100D0014)
  14449.             ,helpstring("The y coordinate of the top of the View object's view space.")
  14450.         ]
  14451.         HRESULT  ViewTop(
  14452.             [in] double prop // Top of view space.
  14453.             );
  14454.  
  14455.         /**
  14456.          * The width in the View object's view space.
  14457.          */
  14458.         [
  14459.              propget
  14460.             ,helpcontext(0x100D0015)
  14461.             ,helpstring("The width in the View object's view space.")]
  14462.         HRESULT  ViewWidth(
  14463.             [out, retval] double* prop // Width of view space.
  14464.             );
  14465.  
  14466.         /**
  14467.          * The width in the View object's view space.
  14468.          */
  14469.         [
  14470.              propput
  14471.             ,helpcontext(0x100D0015)
  14472.             ,helpstring("The width in the View object's view space.")
  14473.         ]
  14474.         HRESULT  ViewWidth(
  14475.             [in] double prop // Width of view space.
  14476.             );
  14477.  
  14478.         /**
  14479.          * Returns the internal handle associated with the View object.
  14480.          * Private.
  14481.          */
  14482.         [
  14483.              propget
  14484.             ,restricted
  14485.             ,helpcontext(0x100D0016)
  14486.             ,helpstring("Private.  Returns the internal handle associated with the View object.")
  14487.         ]
  14488.         HRESULT  _Handle(
  14489.             [out, retval] long* prop // The internal handle.
  14490.             );
  14491.  
  14492.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14493.  
  14494.         /**
  14495.          * Closes the bitmap DC, and returns a bitmap handle.
  14496.          */
  14497.         [
  14498.              helpcontext(0x100D0017)
  14499.             ,helpstring("Closes the bitmap DC, and returns a bitmap handle.")
  14500.         ]
  14501.         HRESULT  CloseBitmapDC(
  14502.             [out, retval] long* prop // The bitmap handle.
  14503.             );
  14504.  
  14505.         /**
  14506.          * Closes the metafile DC, and returns a metafile handle.
  14507.          */
  14508.         [
  14509.              helpcontext(0x100D0018)
  14510.             ,helpstring("Closes the metafile DC, and returns a metafile handle.")
  14511.         ]
  14512.         HRESULT  CloseMetafileDC(
  14513.             [out, retval] long* prop // The metafile handle.
  14514.             );
  14515.  
  14516.         /**
  14517.          * Deletes the object.
  14518.          */
  14519.         [
  14520.              helpcontext(0x100D0019)
  14521.             ,helpstring("Deletes the object.")
  14522.         ]
  14523.         HRESULT  Delete(
  14524.             );
  14525.  
  14526.         /**
  14527.          * Opens a DC for bitmap drawing.
  14528.          */
  14529.         [
  14530.              helpcontext(0x100D001A)
  14531.             ,helpstring("Opens a DC for bitmap drawing.")
  14532.         ]
  14533.         HRESULT  OpenBitmapDC(
  14534.             [out, retval] long* prop // The bitmap DC.
  14535.             );
  14536.  
  14537.         /**
  14538.          * Opens a DC for metafile drawing.
  14539.          */
  14540.         [
  14541.              helpcontext(0x100D001B)
  14542.             ,helpstring("Opens a DC for metafile drawing.")
  14543.         ]
  14544.         HRESULT  OpenMetafileDC(
  14545.             [out, retval] long* prop // The metafile DC.
  14546.             );
  14547.  
  14548.         /**
  14549.          * Pick Graphic objects at a point in view coordinate system.
  14550.          */
  14551.         [
  14552.              helpcontext(0x100D001C)
  14553.             ,helpstring("Pick Graphic objects at a point in view coordinate system.")
  14554.         ]
  14555.         HRESULT     PickPoint(
  14556.             [in] double X, // X coordinate of point in view coordinate system.
  14557.             [in] double Y, // Y coordinate of point in view coordinate system.
  14558.             [in, optional] VARIANT* Aperture, // Size of aperture in pixels.
  14559.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14560.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14561.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14562.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14563.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14564.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14565.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14566.             );
  14567.  
  14568.         /**
  14569.          * Pick Graphic objects within a rectangle in the view coordinate system.
  14570.          */
  14571.         [
  14572.              helpcontext(0x100D001D)
  14573.             ,helpstring("Pick Graphic objects within a rectangle in the view coordinate system.")
  14574.         ]
  14575.         HRESULT     PickRect(
  14576.             [in] double Left, // X coordinate of left side of rectangle in the view coordinate system.
  14577.             [in] double Top, // Y coordinate of top of rectangle in the view coordinate system.
  14578.             [in] double Right, // X coordinate of right side of rectangle in the view coordinate system.
  14579.             [in] double Bottom, // Y coordinate of bottom of rectangle in the view coordinate system.
  14580.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14581.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14582.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14583.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14584.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14585.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14586.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14587.             );
  14588.  
  14589.         /**
  14590.          * Pick Graphic objects within a screen polygon.
  14591.          */
  14592.         [
  14593.              helpcontext(0x100D001E)
  14594.             ,helpstring("Pick Graphic objects within a screen polygon.")
  14595.             ,restricted, hidden
  14596.         ]
  14597.         HRESULT     PickPolygon(
  14598.             [in] IGraphic* Polygon, // The polygon specified in screen coordinates, Z ignored.
  14599.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14600.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14601.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14602.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14603.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14604.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14605.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14606.             );
  14607.  
  14608.         /**
  14609.          * Pick Graphic objects within a three dimensional bounding box.
  14610.          */
  14611.         [
  14612.              helpcontext(0x100D001F)
  14613.             ,helpstring("Pick Graphic objects within a three dimensional bounding box.")
  14614.             ,restricted, hidden
  14615.         ]
  14616.         HRESULT     PickCube(
  14617.             [in] double XMin, // Minimum x coordinate of bounding box.
  14618.             [in] double YMin, // Minimum y coordinate of bounding box.
  14619.             [in] double ZMin, // Minimum z coordinate of bounding box.
  14620.             [in] double XMax, // Maximum x coordinate of bounding box.
  14621.             [in] double YMax, // Maximum y coordinate of bounding box.
  14622.             [in] double ZMax, // Maximum z coordinate of bounding box.
  14623.             [in, optional] VARIANT* TopLevel, // True if only top level Graphic object's are to be picked.
  14624.             [in, optional] VARIANT* Arcs, // True if arcs should be returned in pick.
  14625.             [in, optional] VARIANT* Text, // True if text should be returned in pick.
  14626.             [in, optional] VARIANT* Segments, // True if only segments should be returned in pick.
  14627.             [in, optional] VARIANT* Blocks, // True if segments in blocks should be returned in pick.
  14628.             [in, optional] VARIANT* Invisible, // True if invisible segements can be picked.
  14629.             [out, retval] PickResult** prop // The sorted results of the pick operation.
  14630.             );
  14631.  
  14632.         /**
  14633.          * Repaint the Drawing object in this View object.
  14634.          */
  14635.         [
  14636.              helpcontext(0x100D0020)
  14637.             ,helpstring("Repaint the drawing on the View object.")
  14638.         ]
  14639.         HRESULT  Refresh(
  14640.             );
  14641.  
  14642.         /**
  14643.          * Transforms (2D) coordinates from screen space to view space.
  14644.          */
  14645.         [
  14646.              helpcontext(0x100D0021)
  14647.             ,helpstring("Transforms (2D) coordinates from screen space to view space.")
  14648.         ]
  14649.         HRESULT  ScreenToView(
  14650.             [in] double XScreen, // X coordinate in screen space.
  14651.             [in] double YScreen, // Y coordinate in screen space.
  14652.             [out] double* XView, // X coordinate in view space.
  14653.             [out] double* YView // Y coordinate in view space.
  14654.             );
  14655.  
  14656.         /**
  14657.          * Transforms (2D) coordinates from view space to screen space.
  14658.          */
  14659.         [
  14660.              helpcontext(0x100D0022)
  14661.             ,helpstring("Transforms (2D) coordinates from view space to screen space.")
  14662.         ]
  14663.         HRESULT  ViewToScreen(
  14664.             [in] double XView, // X coordinate in view space.
  14665.             [in] double YView, // Y coordinate in view space.
  14666.             [out] double* XScreen, // X coordinate in screen space.
  14667.             [out] double* YScreen, // Y coordinate in screen space.
  14668.             [out, retval] IMSI_BOOL* prop // TRUE if transformed point is within Screen rectangle.
  14669.             );
  14670.  
  14671.         /**
  14672.          * Set the View object's extents to those of the drawing.
  14673.          */
  14674.         [
  14675.              helpcontext(0x100D0023)
  14676.             ,helpstring("Set the View object's extents to those of the drawing.")
  14677.         ]
  14678.         HRESULT  ZoomToExtents(
  14679.             );
  14680.  
  14681.         /**
  14682.          * Return coordinates of a point in view coordinate system.
  14683.          */
  14684.         [
  14685.              helpcontext(0x100D0024)
  14686.             ,helpstring("Return coordinates of a point in view coordinate system.")
  14687.         ]
  14688.         HRESULT  GetMouseClick(
  14689.             [out] double* X, // X coordinate of point in view coordinate system.
  14690.             [out] double* Y // Y coordinate of point in view coordinate system.
  14691.             );
  14692.         [
  14693.              helpcontext(0x100D0025)
  14694.             ,helpstring("Private pick method.")
  14695.         ]
  14696.         HRESULT  _PickPoint(
  14697.             [in] double X,
  14698.             [in] double Y,
  14699.             [in] double Aperture,
  14700.             [in] long Snap,
  14701.             [in] long GGD,
  14702.             [in] IMSI_BOOL bTopLevel,
  14703.             [in] IMSI_BOOL bInvisible,
  14704.             [out, retval] PickResult** prop
  14705.             );
  14706.         [
  14707.              helpcontext(0x100D0026)
  14708.             ,helpstring("Private pick method.")
  14709.         ]
  14710.         HRESULT  _PickRect(
  14711.             [in] double Left,
  14712.             [in] double Top,
  14713.             [in] double Right,
  14714.             [in] double Bottom,
  14715.             [in] long Snap,
  14716.             [in] long GGD,
  14717.             [in] IMSI_BOOL bTopLevel,
  14718.             [in] IMSI_BOOL bInvisible,
  14719.             [out, retval] PickResult** prop
  14720.             );
  14721.         [
  14722.              helpcontext(0x100D0027)
  14723.             ,helpstring("Private pick method.")
  14724.         ]
  14725.         HRESULT  _VirtualIntersection(
  14726.             [in] long v,
  14727.             [in] long g1,
  14728.             [in] long g2,
  14729.             [out, retval] PickResult** prop
  14730.             );
  14731.  
  14732.         /**
  14733.          * Begin, continue or end a drag operation.
  14734.          */
  14735.         [
  14736.              helpcontext(0x100D0028)
  14737.             ,helpstring("Begin, continue or end a drag operation.")
  14738.         ]
  14739.         HRESULT  DragOutline(
  14740.             [in] VARIANT* Coords, // Array of (X, Y, Z) polygon coordinates.
  14741.             [in] double XScreen, // X coordinate of point in screen coordinate system.
  14742.             [in] double YScreen, // Y coordinate of point in screen coordinate system.
  14743.             [in, optional] VARIANT* DragState // Begin, continue or end of drag operation
  14744.             );
  14745.  
  14746.         /**
  14747.          * Repaint the Drawing object in this View object.
  14748.          */
  14749.         [
  14750.              helpcontext(0x100D0029)
  14751.             ,helpstring("Invalidate the extents of a Graphic object or Graphics Collection")
  14752.         ]
  14753.         HRESULT  InvalidateObject(
  14754.             [in] IDispatch* Object
  14755.             );
  14756.         [
  14757.              helpcontext(0x100D002A)
  14758.             ,helpstring("Invalidate a part of the View object.")
  14759.         ]
  14760.         HRESULT  InvalidateScreenRect(
  14761.             [in] double Left,
  14762.             [in] double Top,
  14763.             [in] double Width,
  14764.             [in] double Height
  14765.             );
  14766.         [
  14767.              helpcontext(0x100D002B)
  14768.             ,helpstring("Invalidate a part of the View object.")
  14769.         ]
  14770.         HRESULT  InvalidateViewRect(
  14771.             [in] double Left,
  14772.             [in] double Top,
  14773.             [in] double Width,
  14774.             [in] double Height
  14775.             );
  14776.         [
  14777.              propget
  14778.             ,helpcontext(0x100D002C)
  14779.             ,helpstring("True if the View object's redraws the entire view on Refresh.")
  14780.         ]
  14781.         HRESULT  AutoRedraw(
  14782.             [out, retval] IMSI_BOOL* prop // True to redraw the entire view.
  14783.             );
  14784.  
  14785.         [
  14786.              propput
  14787.             ,helpcontext(0x100D002C)
  14788.             ,helpstring("True if the View object's redraws the entire view on Refresh.")
  14789.         ]
  14790.         HRESULT  AutoRedraw(
  14791.             [in] IMSI_BOOL prop // True to redraw the entire view.
  14792.             );
  14793.  
  14794.         /**
  14795.         *    Zooms the View object to a NamedView object
  14796.         */
  14797.         [
  14798.              helpcontext(0x100D002D)
  14799.             ,helpstring("Zooms the View object to a NamedView object")
  14800.         ]
  14801.         HRESULT  ZoomToNamedView(
  14802.             VARIANT* NamedView // NamedView object or its name or index.
  14803.             );
  14804.         [
  14805.              helpcontext(0x100D002E)
  14806.             ,helpstring("Continue or end a rotating drag operation.")
  14807.         ]
  14808.         HRESULT  RotateDragOutline(
  14809.             [in] VARIANT* Coords, // Array of (X, Y, Z) polygon coordinates.
  14810.             [in] double Angle, // Angle of rotation in radians, counterclockwise positive.
  14811.             [in, optional] VARIANT* DragState // Continue or end of drag operation
  14812.             );
  14813.  
  14814.         [
  14815.              propget,
  14816.             ,restricted
  14817.             ,helpcontext(0x100D002F)
  14818.             ,helpstring("Private, Returns the View object's matrix.")
  14819.         ]
  14820.         HRESULT  _Matrix(
  14821.             [out, retval] IMatrix** prop // True to redraw the entire view.
  14822.             );
  14823.         [
  14824.              propput
  14825.             ,restricted
  14826.             ,helpcontext(0x100D002F)
  14827.             ,helpstring("Private, sets theView's object's matrix")
  14828.         ]
  14829.         HRESULT  _Matrix(
  14830.             [in] IMatrix *prop
  14831.             );
  14832.         
  14833.         [
  14834.              propget
  14835.             ,helpcontext(0x100D0030)
  14836.             ,helpstring("property SpaceMode")
  14837.         ]
  14838.         HRESULT SpaceMode(
  14839.             [out, retval] ImsiSpaceModeType *pVal
  14840.             );
  14841.         
  14842.         [
  14843.              propput
  14844.             ,helpcontext(0x100D0030)
  14845.             ,helpstring("property SpaceMode")
  14846.         ]
  14847.         HRESULT SpaceMode(
  14848.             [in] ImsiSpaceModeType newVal
  14849.             );
  14850.         
  14851.         [
  14852.              propget
  14853.             ,helpcontext(0x100D0031)
  14854.             ,helpstring("property ExternalView")
  14855.         ] 
  14856.         HRESULT ExternalView(
  14857.             [out, retval] IMSI_BOOL *pVal
  14858.             );
  14859.         
  14860.         [
  14861.              propput
  14862.             ,helpcontext(0x100D0031)
  14863.             ,helpstring("property ExternalView")
  14864.         ]
  14865.         HRESULT ExternalView(
  14866.             [in] IMSI_BOOL newVal
  14867.             );
  14868.  
  14869.         /**
  14870.          * Transforms (3D) coordinates from world CS to view CS.
  14871.          */
  14872.         [
  14873.                  helpcontext(0x100D0032)
  14874.                 ,helpstring("Transforms (3D) coordinates from world CS to view CS.")
  14875.         ]
  14876.         HRESULT  WorldToView(
  14877.             [in] double XWorld, // X coordinate in screen space.
  14878.             [in] double YWorld, // Y coordinate in screen space.
  14879.             [in] double ZWorld, // Z coordinate in screen space.
  14880.             [out] double* XView, // X coordinate in view space.
  14881.             [out] double* YView, // Y coordinate in view space.
  14882.             [out] double* ZView // Z coordinate in view space.
  14883.             );
  14884.  
  14885.         /**
  14886.          * Transforms (3D) coordinates from view CS to  world CS.
  14887.          */
  14888.         [
  14889.              helpcontext(0x100D0033)
  14890.             ,helpstring("Transforms (3D) coordinates from view CS to  world CS.")
  14891.         ]
  14892.         HRESULT  ViewToWorld(
  14893.             [in] double XView, // X coordinate in view space.
  14894.             [in] double YView, // Y coordinate in view space.
  14895.             [in] double ZView, // Y coordinate in view space.
  14896.             [out] double* XWorld, // X coordinate in screen space.
  14897.             [out] double* YWorld, // Y coordinate in screen space.
  14898.             [out] double* ZWorld // Z coordinate in screen space.
  14899.             );
  14900.  
  14901.         /////////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
  14902.         /**
  14903.          * Returns the RenderView that controls the View object.
  14904.          */
  14905.         [
  14906.              propget
  14907.             ,helpcontext(0x100D0034)
  14908.             ,helpstring("Returns the RenderView object that controls the View object.")
  14909.         ]
  14910.         HRESULT  RenderView(
  14911.             [out, retval] IDispatch** prop // The RenderView object.
  14912.             );
  14913.  
  14914.         /**
  14915.          * Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.
  14916.          */
  14917.         [
  14918.              helpcontext(0x100D0035)
  14919.             ,helpstring("Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.")
  14920.         ]
  14921.         HRESULT  CloseBitmapBitsDC(
  14922.             [out, retval] VARIANT* prop // The bitmap bits as SAFEARRA.
  14923.             );
  14924.  
  14925.         /**
  14926.          * Closes the metafile DC, and returns a metafile bits in SAFEARRAY.
  14927.          */
  14928.         [
  14929.              helpcontext(0x100D0036)
  14930.             ,helpstring("Closes the metafile DC, and returns a metafile bits in SAFEARRAY.")
  14931.         ]
  14932.         HRESULT  CloseMetafileBitsDC(
  14933.             [out, retval] VARIANT* prop // The metafile  bits in SAFEARRAY
  14934.             );
  14935.  
  14936.         /**
  14937.          * Closes the bitmap DC, and returns a bitmap bits in SAFEARRAY.
  14938.          */
  14939.         [
  14940.              helpcontext(0x100D0037)
  14941.             ,helpstring("Closes the bitmap DC, and returns a a Picture object.")
  14942.         ]
  14943.         HRESULT  CloseBitmapPictDC(
  14944.             [out, retval] IDispatch** prop // The Picture object.
  14945.             );
  14946.  
  14947.         /**
  14948.          * Closes the metafile DC, and returns a metafile bits in SAFEARRAY.
  14949.          */
  14950.         [
  14951.              helpcontext(0x100D0038)
  14952.             ,helpstring("Closes the metafile DC, and returns a Picture object.")
  14953.         ]
  14954.         HRESULT  CloseMetafilePictDC(
  14955.             [out, retval] IDispatch** prop // The Picture object.
  14956.             );
  14957.     };
  14958.  
  14959.  
  14960.  
  14961.     /**
  14962.      * The collection of View objects in a Drawing object.
  14963.      */
  14964.     [
  14965.          object
  14966.         ,uuid(6A481111-E531-11CF-A115-00A024158DAF)
  14967.         ,oleautomation
  14968.         ,dual
  14969.         ,helpcontext(0x100E0000)
  14970.         ,helpstring("A collection of TurboCAD viewports.")
  14971.     ]
  14972.     interface Views : IDispatch
  14973.     {
  14974.  
  14975.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  14976.  
  14977.         /**
  14978.          * Returns an Application object that represents the owner of the specified object.
  14979.          */
  14980.         [
  14981.              propget
  14982.             ,helpcontext(0x100E0001)
  14983.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  14984.         ]
  14985.         HRESULT  Application(
  14986.             [out, retval] IApplication** prop // The Application object.
  14987.             );
  14988.  
  14989.         /**
  14990.          * Returns the number of items in the collection.
  14991.          */
  14992.         [
  14993.              propget
  14994.             ,helpcontext(0x100E0002)
  14995.             ,helpstring("Returns the number of items in the collection.")
  14996.         ]
  14997.         HRESULT  Count(
  14998.             [out, retval] long* prop // The number of items.
  14999.             );
  15000.  
  15001.         /**
  15002.          * Returns part of a collection.
  15003.          */
  15004.         [
  15005.              propget
  15006.             ,id(DISPID_VALUE)
  15007.             ,helpcontext(0x100E0003)
  15008.             ,helpstring("Returns part of a collection.")
  15009.         ]
  15010.         HRESULT  Item(
  15011.             [in] VARIANT* Index, // Index of item to return.
  15012.             [out, retval] View** prop // The item.
  15013.             );
  15014.  
  15015.         /**
  15016.          * Returns the parent object for the specified object.
  15017.          */
  15018.         [
  15019.              propget
  15020.             ,helpcontext(0x100E0004)
  15021.             ,helpstring("Returns the parent object for the specified object.")
  15022.         ]
  15023.         HRESULT  Parent(
  15024.             [out, retval] IDrawing** prop // The parent object.
  15025.             );
  15026.  
  15027.         /**
  15028.          * Creates an enumeration object.
  15029.          */
  15030.         [
  15031.              propget
  15032.             ,restricted
  15033.             ,id(DISPID_NEWENUM)
  15034.             ,helpcontext(0x100E0005)
  15035.             ,helpstring("Private.  Creates an enumeration object.")
  15036.         ]
  15037.         HRESULT  _NewEnum(
  15038.             [out, retval] IUnknown** prop // The enumeration object.
  15039.             );
  15040.  
  15041.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15042.  
  15043.         /**
  15044.          * Adds a View object to the collection.
  15045.          */
  15046.         [
  15047.              helpcontext(0x100E0006)
  15048.             ,helpstring("Adds a View object to the collection.")
  15049.         ]
  15050.         HRESULT  Add(
  15051.             [in, optional] VARIANT* hWnd, // A window handle to attach to the View object.
  15052.             [in, optional] VARIANT* hDC, // A DC to attach to the View object.
  15053.             [out, retval] View** prop // The newly created View object.
  15054.             );
  15055.  
  15056.         /**
  15057.          * Repaint the Drawing object on all the View objects in the collection.
  15058.          */
  15059.         [
  15060.              helpcontext(0x100E0007)
  15061.             ,helpstring("Repaint the drawing on the all the View objects in the collection.")
  15062.         ]
  15063.         HRESULT  Refresh(
  15064.             );
  15065.  
  15066.         /**
  15067.          * Returns the index within the Views collection of the specified viewport handle.
  15068.          * Private.
  15069.          */
  15070.         [
  15071.              restricted
  15072.             ,helpcontext(0x100E0008)
  15073.             ,helpstring("Private.  Returns the index within the Views collection of the specified viewport handle.")
  15074.         ]
  15075.         HRESULT  _FindIndex(
  15076.             [in] long vp, // The viewport handle.
  15077.             [out, retval] long* prop // The index.
  15078.             );
  15079.         [
  15080.              helpcontext(0x100E0009)
  15081.             ,helpstring("Invalidate the extents of a Graphic object or Graphics Collection.")
  15082.             ,restricted, hidden
  15083.         ]
  15084.         HRESULT  InvalidateObject(
  15085.             [in] IDispatch* Object
  15086.             );
  15087.  
  15088.     };
  15089.  
  15090.     /** 
  15091.      * A TurboCAD camera.
  15092.      */
  15093.     [
  15094.          object
  15095.         ,uuid(6A481112-E531-11CF-A115-00A024158DAF)
  15096.         ,oleautomation
  15097.         ,dual
  15098.         ,helpcontext(0x100F0000)
  15099.         ,helpstring("A TurboCAD camera.")
  15100.     ]
  15101.     interface ICamera : IDispatch
  15102.     {
  15103.  
  15104.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15105.  
  15106.         /**
  15107.          * Returns an Application object that represents the owner of the specified object.
  15108.          */
  15109.         [
  15110.              propget
  15111.             ,helpcontext(0x100F0001)
  15112.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15113.         ]
  15114.         HRESULT  Application(
  15115.             [out, retval] IApplication** prop // The Application object.
  15116.             );
  15117.  
  15118.         /**
  15119.          * Returns the Camera object's back clipping distance.
  15120.          */
  15121.         [
  15122.              propget
  15123.             ,helpcontext(0x100F0002)
  15124.             ,helpstring("Returns the Camera object's back clipping distance.")
  15125.             ,restricted, hidden
  15126.         ]
  15127.         HRESULT  BackClip(
  15128.             [out, retval] double* prop // The back clipping distance.
  15129.             );
  15130.  
  15131.         /**
  15132.          * Sets the Camera object's back clipping distance.
  15133.          */
  15134.         [
  15135.              propput
  15136.             ,helpcontext(0x100F0002)
  15137.             ,helpstring("Sets the Camera object's back clipping distance.")
  15138.             ,restricted, hidden
  15139.         ]
  15140.         HRESULT  BackClip(
  15141.             [in] double prop // The back clipping distance.
  15142.             );
  15143.  
  15144.         /**
  15145.          * Returns the Camera object's direction vector.
  15146.          */
  15147.         [
  15148.              propget
  15149.             ,helpcontext(0x100F0003)
  15150.             ,helpstring("Returns the Camera object's direction vector.")
  15151.         ]
  15152.         HRESULT  Direction(
  15153.             [out, retval] IVertex** prop // The normalized direction vector, as a Vertex object.
  15154.             );
  15155.  
  15156.         /**
  15157.          * Sets the Camera object's direction vector.
  15158.          */
  15159.         [
  15160.              propput
  15161.             ,helpcontext(0x100F0003)
  15162.             ,helpstring("Sets the Camera object's direction vector.")
  15163.         ]
  15164.         HRESULT  Direction(
  15165.             [in] IVertex* prop // The direction vector, as a Vertex object.
  15166.             );
  15167.  
  15168.         /**
  15169.          * Returns the Camera object's field of view.
  15170.          */
  15171.         [
  15172.              propget
  15173.             ,helpcontext(0x100F0004)
  15174. //            ,helpstring("Returns the Camera object's field of view.")
  15175.             ,helpstring("Returns the Camera object's perspective angle.")
  15176.         ]
  15177.         HRESULT  PerspectiveAngle(
  15178.             [out, retval] double* prop // The perspective angle of camera.
  15179.             );
  15180.  
  15181.         /**
  15182.          * Sets the Camera object's field of view.
  15183.          */
  15184.         [
  15185.              propput
  15186.             ,helpcontext(0x100F0004)
  15187. //            ,helpstring("Sets the Camera object's field of view.")
  15188.             ,helpstring("Returns the Camera object's perspective angle.")
  15189.         ]
  15190.         HRESULT  PerspectiveAngle(
  15191.             [in] double prop // The perspective angle of camera.
  15192.             );
  15193.  
  15194.         /**
  15195.          * Returns the Camera object's front clipping distance.
  15196.          */
  15197.         [
  15198.              propget
  15199.             ,helpcontext(0x100F0005)
  15200.             ,helpstring("Returns the Camera object's front clipping distance.")
  15201.             ,restricted, hidden
  15202.         ]
  15203.         HRESULT  FrontClip(
  15204.             [out, retval] double* prop // The front clipping distance.
  15205.             );
  15206.  
  15207.         /**
  15208.          * Sets the Camera object's front clipping distance.
  15209.          */
  15210.         [
  15211.              propput
  15212.             ,helpcontext(0x100F0005)
  15213.             ,helpstring("Sets the Camera object's front clipping distance.")
  15214.             ,restricted, hidden
  15215.         ]
  15216.         HRESULT  FrontClip(
  15217.             [in] double prop // The front clipping distance.
  15218.             );
  15219.  
  15220.         /**
  15221.          * Returns the Camera object's location.
  15222.          */
  15223.         [
  15224.              propget
  15225.             ,helpcontext(0x100F0006)
  15226.             ,helpstring("Returns the Camera object's location.")
  15227.         ]
  15228.         HRESULT  Location(
  15229.             [out, retval] IVertex** prop // The location, as a Vertex object.
  15230.             );
  15231.  
  15232.         /**
  15233.          * Sets the Camera object's location.
  15234.          */
  15235.         [
  15236.              propput
  15237.             ,helpcontext(0x100F0006)
  15238.             ,helpstring("Sets the Camera object's location.")
  15239.         ]
  15240.         HRESULT  Location(
  15241.             [in] IVertex* prop // The location, as a Vertex object.
  15242.             );
  15243.  
  15244.         /**
  15245.          * Returns the Camera object's point of interest.
  15246.          */
  15247.         [
  15248.              propget
  15249.             ,helpcontext(0x100F0007)
  15250.             ,helpstring("Returns the Camera object's point of interest.")
  15251.         ]
  15252.         HRESULT  LookAt(
  15253.             [out, retval] IVertex** prop // The point of interest, as a Vertex object.
  15254.             );
  15255.  
  15256.         /**
  15257.          * Sets the Camera object's point of interest.
  15258.          */
  15259.         [
  15260.              propput
  15261.             ,helpcontext(0x100F0007)
  15262.             ,helpstring("Sets the Camera object's point of interest.")
  15263.         ]
  15264.         HRESULT  LookAt(
  15265.             [in] IVertex* prop // The point of interest, as a Vertex object.
  15266.             );
  15267.  
  15268.         /**
  15269.          * Returns the name of the object, as a string.
  15270.          */
  15271.         [
  15272.              propget
  15273.             ,helpcontext(0x100F0008)
  15274.             ,helpstring("Returns the name of the object, as a string.")
  15275.             ,restricted, hidden
  15276.         ]
  15277.         HRESULT  Name(
  15278.             [out, retval] BSTR* prop // The name of the object.
  15279.             );
  15280.  
  15281.         /**
  15282.          * Returns the parent object for the specified object.
  15283.          */
  15284.         [
  15285.              propget
  15286.             ,helpcontext(0x100F0009)
  15287.             ,helpstring("Returns the parent object for the specified object.")
  15288.         ]
  15289.         HRESULT  Parent(
  15290.             [out, retval] IDispatch** prop // The parent object.
  15291.             );
  15292.  
  15293.         /**
  15294.          * Returns the Camera object's projection type.
  15295.          */
  15296.         [
  15297.              propget
  15298.             ,helpcontext(0x100F000A)
  15299.             ,helpstring("Returns the Camera object's projection type.")
  15300.             ,restricted, hidden
  15301.         ]
  15302.         HRESULT  ProjectionType(
  15303.             [out, retval] ImsiProjection* prop // The projection type.
  15304.             );
  15305.  
  15306.         /**
  15307.          * Sets the Camera object's projection type.
  15308.          */
  15309.         [
  15310.              propput
  15311.             ,helpcontext(0x100F000A)
  15312.             ,helpstring("Sets the Camera object's projection type.")
  15313.             ,restricted, hidden
  15314.         ]
  15315.         HRESULT  ProjectionType(
  15316.             [in] ImsiProjection prop // The projection type.
  15317.             );
  15318.  
  15319.         /**
  15320.          * Returns the Camera object's right vector.
  15321.          */
  15322.         [
  15323.              propget
  15324.             ,helpcontext(0x100F000B)
  15325.             ,helpstring("Returns the Camera object's right vector.")
  15326.         ]
  15327.         HRESULT  Right(
  15328.             [out, retval] IVertex** prop // The normalized right vector, as a Vertex object.
  15329.             );
  15330.  
  15331.         /**
  15332.          * Sets the Camera object's right vector.
  15333.          */
  15334.         [
  15335.              propput
  15336.             ,helpcontext(0x100F000B)
  15337.             ,helpstring("Sets the Camera object's right vector.")
  15338.         ]
  15339.         HRESULT  Right(
  15340.             [in] IVertex* prop // The right vector, as a Vertex object.
  15341.             );
  15342.  
  15343.         /**
  15344.          * Returns the Camera object's up vector.
  15345.          */
  15346.         [
  15347.              propget
  15348.             ,helpcontext(0x100F000C)
  15349.             ,helpstring("Returns the Camera object's up vector.")
  15350.         ]
  15351.         HRESULT  Up(
  15352.             [out, retval] IVertex** prop // The normalized up vector, as a Vertex object.
  15353.             );
  15354.  
  15355.         /**
  15356.          * Sets the Camera object's up vector.
  15357.          */
  15358.         [
  15359.              propput
  15360.             ,helpcontext(0x100F000C)
  15361.             ,helpstring("Sets the Camera object's up vector.")
  15362.         ]
  15363.         HRESULT  Up(
  15364.             [in] IVertex* prop // The up vector, as a Vertex object.
  15365.             );
  15366.  
  15367.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15368.  
  15369.         /**
  15370.          * Duplicates the object and returns a reference to the new copy.
  15371.          */
  15372.         [
  15373.              helpcontext(0x100F000D)
  15374.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  15375.             ,restricted, hidden
  15376.         ]
  15377.         HRESULT  Duplicate(
  15378.             [out, retval] ICamera** prop // The duplicated Camera object.
  15379.             );
  15380.  
  15381.         /**
  15382.          * Orbits the Camera object about the point of interest.
  15383.          */
  15384.         [
  15385.              helpcontext(0x100F000E)
  15386.             ,helpstring("Orbits the Camera object about the point of interest.")
  15387.         ]
  15388.         HRESULT  Orbit(
  15389.             [in] double Angle, // The rotation angle in radians.
  15390.             [in, optional] VARIANT* CameraCoordinates, // True to use camera's coordinate system.
  15391.             [in, optional] VARIANT* XOrRight, // The x or right coordinate of the rotation axis.
  15392.             [in, optional] VARIANT* YOrUp, // The y or up coordinate of the rotation axis.
  15393.             [in, optional] VARIANT* ZOrDirection // The z or direction coordinate of the rotation axis.
  15394.             );
  15395.  
  15396.         /**
  15397.          * Tilts the Camera object left or right.
  15398.          */
  15399.         [
  15400.              helpcontext(0x100F000F)
  15401.             ,helpstring("Tilts the Camera object left or right.")
  15402.         ]
  15403.         HRESULT  Pan(
  15404.             [in] double AngleRight // The angle to tilt to the right in radians.
  15405.             );
  15406.  
  15407.         /**
  15408.          * Rotates the Camera object about an arbitrary axis.
  15409.          */
  15410.         [
  15411.              helpcontext(0x100F0010)
  15412.             ,helpstring("Rotates the Camera object about an arbitrary axis.")
  15413.         ]
  15414.         HRESULT  Rotate(
  15415.             [in] double Angle, // The rotation angle in radians.
  15416.             [in, optional] VARIANT* CameraCoordinates, // True to use camera's coordinate system.
  15417.             [in, optional] VARIANT* XOrRight, // The x or right coordinate of the rotation axis.
  15418.             [in, optional] VARIANT* YOrUp, // The y or up coordinate of the rotation axis.
  15419.             [in, optional] VARIANT* ZOrDirection // The z or direction coordinate of the rotation axis.
  15420.             );
  15421.  
  15422.         /**
  15423.          * Slides the Camera object perpendicular to its direction vector.
  15424.          */
  15425.         [
  15426.              helpcontext(0x100F0011)
  15427.             ,helpstring("Slides the Camera object perpendicular to its direction vector.")
  15428.         ]
  15429.         HRESULT  Slide(
  15430.             [in] double DistanceUp, // The distance to slide in the up direction.
  15431.             [in] double DistanceRight // The distance to slide in the right direction.
  15432.             );
  15433.  
  15434.         /**
  15435.          * Tilts the Camera object up or down.
  15436.          */
  15437.         [
  15438.              helpcontext(0x100F0012)
  15439.             ,helpstring("Tilts the Camera object up or down.")
  15440.         ]
  15441.         HRESULT  Tilt(
  15442.             [in] double AngleUp // The angle to tilt up in radians.
  15443.             );
  15444.  
  15445.         /**
  15446.          * Moves the Camera object along its direction vector.
  15447.          */
  15448.         [
  15449.              helpcontext(0x100F0013)
  15450.             ,helpstring("Moves the Camera object along its direction vector.")
  15451.         ]
  15452.         HRESULT  Track(
  15453.             [in] double DistanceForward // The distance to move.
  15454.             );
  15455.  
  15456.         /**
  15457.          * Zooms the focal length of the Camera object.
  15458.          */
  15459.         [
  15460.              helpcontext(0x100F0014)
  15461.             ,helpstring("Zooms the focal length of the Camera object.")
  15462.         ]
  15463.         HRESULT  Zoom(
  15464.             [in] double ZoomFactor // The amount of zoom.
  15465.             );
  15466.  
  15467.         /**
  15468.          * Set All camera vectors : Pos, Look, Up.
  15469.          */
  15470.         [
  15471.              helpcontext(0x100F0015)
  15472.             ,helpstring("Set all camera vectors : Pos, Look, Up.")
  15473.         ]
  15474.  
  15475.         HRESULT CameraSetSpaceParameters(
  15476.              [in] IVertex *pvPos
  15477.             ,[in] IVertex *pvLook
  15478.             ,[in] IVertex *pvU
  15479.             );
  15480.  
  15481.         [
  15482.              propget
  15483.             ,helpcontext(0x100F0016)
  15484.             ,helpstring("property Perspective.")
  15485.         ]
  15486.         HRESULT Perspective(
  15487.             [out, retval] IMSI_BOOL* pVal
  15488.             );
  15489.  
  15490.         [
  15491.              propput
  15492.             ,helpcontext(0x100F0016)
  15493.             ,helpstring("property Perspective.")
  15494.         ]
  15495.         HRESULT Perspective(
  15496.             [in] IMSI_BOOL newVal
  15497.             );
  15498.     };
  15499.  
  15500.  
  15501.  
  15502.     /**
  15503.      * An object that maintains custom Graphic objects.
  15504.      */
  15505.     [
  15506.          object
  15507.         ,uuid(6A481113-E531-11CF-A115-00A024158DAF)
  15508.         ,oleautomation
  15509.         ,dual
  15510.         ,helpcontext(0x10100000)
  15511.         ,helpstring("An object that maintains custom Graphic objects.")
  15512.     ]
  15513.     interface RegenMethod : IDispatch
  15514.     {
  15515.  
  15516.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15517.  
  15518.         /**
  15519.          * Returns an Application object that represents the owner of the specified object.
  15520.          */
  15521.         [
  15522.              propget
  15523.             ,helpcontext(0x10100001)
  15524.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15525.         ]
  15526.         HRESULT  Application(
  15527.             [out, retval] IApplication** prop // The Application object.
  15528.             );
  15529.  
  15530.         /**
  15531.          * Returns the RegenMethod object that this RegenMethod object is based on.
  15532.          */
  15533.         [
  15534.              propget
  15535.             ,helpcontext(0x10100002)
  15536.             ,helpstring("Returns the RegenMethod object that this RegenMethod object is based on.")
  15537.             ,restricted, hidden
  15538.         ]
  15539.         HRESULT  BasedOn(
  15540.             [out, retval] RegenMethod** prop // The RegenMethod object that this RegenMethod object is based on.
  15541.             );
  15542.  
  15543.         /**
  15544.          * Returns a description of the specified object, as a string.
  15545.          */
  15546.         [
  15547.              propget
  15548.             ,helpcontext(0x10100003)
  15549.             ,helpstring("Returns a description of the specified object, as a string.")
  15550.         ]
  15551.         HRESULT  Description(
  15552.             [out, retval] BSTR* prop // A string describing the object.
  15553.             );
  15554.  
  15555.         /**
  15556.          * Returns the RegenMethod object's detail level.
  15557.          */
  15558.         [
  15559.              propget
  15560.             ,helpcontext(0x10100004)
  15561.             ,helpstring("Returns the RegenMethod object's detail level.")
  15562.             ,restricted, hidden
  15563.         ]
  15564.         HRESULT  Detail(
  15565.             [out, retval] SHORT* prop // The detail level of the RegenMethod object.
  15566.             );
  15567.  
  15568.         /**
  15569.          * Sets the RegenMethod object's detail level.
  15570.          */
  15571.         [
  15572.              propput
  15573.             ,helpcontext(0x10100004)
  15574.             ,helpstring("Sets the RegenMethod object's detail level.")
  15575.             ,restricted, hidden
  15576.         ]
  15577.         HRESULT  Detail(
  15578.             [in] SHORT detail // The detail level.
  15579.             );
  15580.  
  15581.         /**
  15582.          * Returns the index of the item in the collection.
  15583.          */
  15584.         [
  15585.              propget
  15586.             ,helpcontext(0x10100005)
  15587.             ,helpstring("Returns the index of the item in the collection.")
  15588.         ]
  15589.         HRESULT  Index(
  15590.             [out, retval] long* prop // The index.
  15591.             );
  15592.  
  15593.         /**
  15594.          * Returns the name of the object, as a string.
  15595.          */
  15596.         [
  15597.              propget
  15598.             ,helpcontext(0x10100006)
  15599.             ,helpstring("Returns the name of the object, as a string.")
  15600.         ]
  15601.         HRESULT  Name(
  15602.             [out, retval] BSTR* prop // The name of the object.
  15603.             );
  15604.  
  15605.         /**
  15606.          * Returns the parent object for the specified object.
  15607.          */
  15608.         [
  15609.              propget
  15610.             ,helpcontext(0x10100007)
  15611.             ,helpstring("Returns the parent object for the specified object.")
  15612.         ]
  15613.         HRESULT  Parent(
  15614.             [out, retval] IDispatch** prop // The parent object.
  15615.             );
  15616.  
  15617.         /**
  15618.          * Returns a Properties collection of the properties supported by the RegenMethod object.
  15619.          */
  15620.         [
  15621.              propget
  15622.             ,helpcontext(0x10100008)
  15623.             ,helpstring("Returns a Properties collection of the properties supported by the RegenMethod object.")
  15624.             ,restricted, hidden
  15625.         ]
  15626.         HRESULT  Properties(
  15627.             [out, retval] Properties** props // The Properties collection.
  15628.             );
  15629.  
  15630.         /**
  15631.          * Returns the name of a RegenMethod object's property page.
  15632.          */
  15633.         [
  15634.              propget
  15635.             ,helpcontext(0x10100009)
  15636.             ,helpstring("Returns the name of a RegenMethod object's property page.")
  15637.             ,restricted, hidden
  15638.         ]
  15639.         HRESULT  PropertyPage(
  15640.             [in] long Index, // The index of the property page.
  15641.             [out, retval] BSTR* prop // The name of the property page.
  15642.             );
  15643.  
  15644.         /**
  15645.          * Returns the number of property pages supported by the RegenMethod object.
  15646.          */
  15647.         [
  15648.              propget
  15649.             ,helpcontext(0x1010000A)
  15650.             ,helpstring("Returns the number of property pages supported by the RegenMethod object.")
  15651.             ,restricted, hidden
  15652.         ]
  15653.         HRESULT  PropertyPageCount(
  15654.             [out, retval] long* prop // The number of property pages.
  15655.             );
  15656.  
  15657.         /**
  15658.          * Returns the type of the RegenMethod object.
  15659.          */
  15660.         [
  15661.              propget
  15662.             ,helpcontext(0x1010000B)
  15663.             ,helpstring("Returns the type of the RegenMethod object.")
  15664.         ]
  15665.         HRESULT  Type(
  15666.             [out, retval] ImsiRegenMethodType* prop // The type of the RegenMethod object.
  15667.             );
  15668.  
  15669.         /**
  15670.          * Returns the name of a RegenMethod object's wizard.
  15671.          */
  15672.         [
  15673.              propget
  15674.             ,helpcontext(0x1010000C)
  15675.             ,helpstring("Returns the name of a RegenMethod object's wizard.")
  15676.             ,restricted, hidden
  15677.         ]
  15678.         HRESULT  Wizard(
  15679.             [in] long Index, // The index of the wizard.
  15680.             [out, retval] BSTR* prop // The name of the wizard.
  15681.             );
  15682.  
  15683.         /**
  15684.          * Returns the number of wizards supported by the RegenMethod object.
  15685.          */
  15686.         [
  15687.              propget
  15688.             ,helpcontext(0x1010000D)
  15689.             ,helpstring("Returns the number of wizards supported by the RegenMethod object.")
  15690.             ,restricted, hidden
  15691.         ]
  15692.         HRESULT  WizardCount(
  15693.             [out, retval] long* prop // The number of wizards.
  15694.             );
  15695.  
  15696.         /**
  15697.          * Returns the internal table entry ID.
  15698.          * Private.
  15699.          */
  15700.         [
  15701.              propget
  15702.             ,restricted
  15703.             ,helpcontext(0x1010000E)
  15704.             ,helpstring("Private.  Returns the internal table entry ID.")
  15705.         ]
  15706.         HRESULT  _TableEntryID(
  15707.             [out, retval] long* prop // The table entry ID.
  15708.             );
  15709.  
  15710.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15711.  
  15712.         /**
  15713.          * Deletes the object.
  15714.          */
  15715.         [
  15716.              helpcontext(0x1010000F)
  15717.             ,helpstring("Deletes the object.")
  15718.             ,restricted, hidden
  15719.         ]
  15720.         HRESULT  Delete(
  15721.             );
  15722.  
  15723.         /**
  15724.          * Run a property page for the RegenMethod object.
  15725.          */
  15726.         [
  15727.              helpcontext(0x10100010)
  15728.             ,helpstring("Run a wizard for the RegenMethod object.")
  15729.             ,restricted, hidden
  15730.         ]
  15731.         HRESULT  RunPropertyPage(
  15732.             [in] Graphics* Objects, // The collection of Graphic objects that the property page will modify.
  15733.             [in, optional] VARIANT* Index, // A name or index specifying which property page to run.
  15734.             [out, retval] IMSI_BOOL* GraphicsWereChanged // True if the Graphics collection was added to.
  15735.             );
  15736.  
  15737.         /**
  15738.          * Run a wizard for the RegenMethod object.
  15739.          */
  15740.         [
  15741.              helpcontext(0x10100011)
  15742.             ,helpstring("Run a wizard for the RegenMethod object.")
  15743.             ,restricted, hidden
  15744.         ]
  15745.         HRESULT  RunWizard(
  15746.             [in] Graphics* Objects, // The collection of Graphic objects that the wizard will add to.
  15747.             [in, optional] VARIANT* Name, // A name or index specifying which wizard to run.
  15748.             [out, retval] IMSI_BOOL* GraphicsWereAdded // True if the Graphics collection was added to.
  15749.             );
  15750.  
  15751.     };
  15752.  
  15753.     /**
  15754.      * A collection of RegenMethod objects.
  15755.      */
  15756.     [
  15757.          object
  15758.         ,uuid(6A481114-E531-11CF-A115-00A024158DAF)
  15759.         ,oleautomation
  15760.         ,dual
  15761.         ,helpcontext(0x10110000)
  15762.         ,helpstring("A collection of RegenMethod objects.")
  15763.     ]
  15764.     interface RegenMethods : IDispatch
  15765.     {
  15766.  
  15767.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15768.  
  15769.         /**
  15770.          * Returns an Application object that represents the owner of the specified object.
  15771.          */
  15772.         [
  15773.              propget
  15774.             ,helpcontext(0x10110001)
  15775.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15776.         ]
  15777.         HRESULT  Application(
  15778.             [out, retval] IApplication** prop // The Application object.
  15779.             );
  15780.  
  15781.         /**
  15782.          * Returns the number of items in the collection.
  15783.          */
  15784.         [
  15785.              propget
  15786.             ,helpcontext(0x10110002)
  15787.             ,helpstring("Returns the number of items in the collection.")
  15788.         ]
  15789.         HRESULT  Count(
  15790.             [out, retval] long* prop // The number of items.
  15791.             );
  15792.  
  15793.         /**
  15794.          * Returns part of a collection.
  15795.          */
  15796.         [
  15797.              propget
  15798.             ,id(DISPID_VALUE)
  15799.             ,helpcontext(0x10110003)
  15800.             ,helpstring("Returns part of a collection.")
  15801.         ]
  15802.         HRESULT  Item(
  15803.             [in] VARIANT* Index, // Index of item to return.
  15804.             [out, retval] RegenMethod** prop // The item.
  15805.             );
  15806.  
  15807.         /**
  15808.          * Returns the parent object for the specified object.
  15809.          */
  15810.         [
  15811.              propget
  15812.             ,helpcontext(0x10110004)
  15813.             ,helpstring("Returns the parent object for the specified object.")
  15814.         ]
  15815.         HRESULT  Parent(
  15816.             [out, retval] IDispatch** prop // The parent object.
  15817.             );
  15818.  
  15819.         /**
  15820.          * Creates an enumeration object.
  15821.          */
  15822.         [
  15823.              propget
  15824.             ,restricted
  15825.             ,id(DISPID_NEWENUM)
  15826.             ,helpcontext(0x10110005)
  15827.             ,helpstring("Private.  Creates an enumeration object.")
  15828.         ]
  15829.         HRESULT  _NewEnum(
  15830.             [out, retval] IUnknown** prop // The enumeration object.
  15831.             );
  15832.  
  15833.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15834.  
  15835.         /**
  15836.          * Adds one or more RegenMethod objects to the collection.
  15837.          */
  15838.         [
  15839.              helpcontext(0x10110006)
  15840.             ,helpstring("Adds one or more RegenMethod objects to the collection.")
  15841.             ,restricted, hidden
  15842.         ]
  15843.         HRESULT  Add(
  15844.             [in] BSTR FileName, // The file containing the RegenMethod objects.
  15845.             [in, out, optional] VARIANT* RegensAdded // An array of RegenMethod objects added.
  15846.             );
  15847.  
  15848.         /**
  15849.          * Returns the index within the table collection of the specified table entry.
  15850.          * Private.
  15851.          */
  15852.         [
  15853.              restricted
  15854.             ,helpcontext(0x10110007)
  15855.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  15856.         ]
  15857.         HRESULT  _FindIndex(
  15858.             [in] long TableEntryID, // The internal table ID.
  15859.             [out, retval] long* prop // The zero based index.
  15860.             );
  15861.  
  15862.         /**
  15863.          * Returns an object from the table collection for the specified table entry.
  15864.          * Private.
  15865.          */
  15866.         [
  15867.              restricted
  15868.             ,helpcontext(0x10110008)
  15869.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  15870.         ]
  15871.         HRESULT  _ObjectFromID(
  15872.             [in] long TableEntryID, // The internal table ID.
  15873.             [out, retval] RegenMethod** prop // The object.
  15874.             );
  15875.     };
  15876.  
  15877.  
  15878.     /**
  15879.      * An object which controls the loading and saving of objects to and from disk.
  15880.      */
  15881.     [
  15882.          object
  15883.         ,uuid(6A48111B-E531-11CF-A115-00A024158DAF)
  15884.         ,oleautomation
  15885.         ,dual
  15886.         ,helpcontext(0x10120000)
  15887.         ,helpstring("An object which controls the loading and saving of objects to and from disk.")
  15888.     ]
  15889.     interface Filter : IDispatch
  15890.     {
  15891.  
  15892.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  15893.  
  15894.         /**
  15895.          * Returns an Application object that represents the owner of the specified object.
  15896.          */
  15897.         [
  15898.              propget
  15899.             ,helpcontext(0x10120001)
  15900.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  15901.         ]
  15902.         HRESULT  Application(
  15903.             [out, retval] IApplication** prop // The Application object.
  15904.             );
  15905.  
  15906.         /**
  15907.          * Returns a description of the specified object, as a string.
  15908.          */
  15909.         [
  15910.              propget
  15911.             ,helpcontext(0x10120002)
  15912.             ,helpstring("Returns a description of the specified object, as a string.")
  15913.         ]
  15914.         HRESULT  Description(
  15915.             [out, retval] BSTR* prop // A string describing the object.
  15916.             );
  15917.  
  15918.         /**
  15919.          * Returns the last error encountered, as a string.
  15920.          */
  15921.         [
  15922.              propget
  15923.             ,helpcontext(0x10120003)
  15924.             ,helpstring("Returns the last error encountered, as a string.")
  15925.             ,restricted, hidden
  15926.         ]
  15927.         HRESULT  Error(
  15928.             [out, retval] BSTR* prop // The error string.
  15929.             );
  15930.  
  15931.         /**
  15932.          * Returns a file extension supported by the Filter object.
  15933.          */
  15934.         [
  15935.              propget
  15936.             ,helpcontext(0x10120004)
  15937.             ,helpstring("Returns a of file extension supported by the Filter object.")
  15938.         ]
  15939.         HRESULT  Extension(
  15940.             [in, optional] VARIANT* Index, // The index of the extension.
  15941.             [out, retval] BSTR* prop // The file extension, as a string.
  15942.             );
  15943.  
  15944.         /**
  15945.          * Returns the number of file extensions supported by the Filter object.
  15946.          */
  15947.         [
  15948.              propget
  15949.             ,helpcontext(0x10120005)
  15950.             ,helpstring("Returns the number of file extensions supported by the Filter object.")
  15951.         ]
  15952.         HRESULT  ExtensionCount(
  15953.             [out, retval] long* prop // The number of extensions supported.
  15954.             );
  15955.  
  15956.         /**
  15957.          * Returns a the Windows Common Dialog filter string.
  15958.          */
  15959.         [
  15960.              propget
  15961.             ,helpcontext(0x10120006)
  15962.             ,helpstring("Returns the Windows Common Dialog filter string.")
  15963.         ]
  15964.         HRESULT  FilterString(
  15965.             [out, retval] BSTR* prop // The filter string.
  15966.             );
  15967.  
  15968.         /**
  15969.          * Returns the index of the item in the collection.
  15970.          */
  15971.         [
  15972.              propget
  15973.             ,helpcontext(0x10120007)
  15974.             ,helpstring("Returns the index of the item in the collection.")
  15975.         ]
  15976.         HRESULT  Index(
  15977.             [out, retval] long* prop // The index.
  15978.             );
  15979.  
  15980.         /**
  15981.          * Returns True if the Filter object can load from a flat file.
  15982.          */
  15983.         [
  15984.              propget
  15985.             ,helpcontext(0x10120008)
  15986.             ,helpstring("Returns True if the Filter object can load from a flat file.")
  15987.         ]
  15988.         HRESULT  OpenFlat(
  15989.             [out, retval] IMSI_BOOL* prop // True if the Filter object can load from a flat file.
  15990.             );
  15991.  
  15992.         /**
  15993.          * Returns True if the Filter object can load from an OLE stream.
  15994.          */
  15995.         [
  15996.              propget
  15997.             ,helpcontext(0x10120009)
  15998.             ,helpstring("Returns True if the Filter object can load from an OLE stream.")
  15999.         ]
  16000.         HRESULT  OpenStream(
  16001.             [out, retval] IMSI_BOOL* prop // True if the Filter object can load from an OLE stream.
  16002.             );
  16003.  
  16004.         /**
  16005.          * Returns the name of the object, as a string.
  16006.          */
  16007.         [
  16008.              propget
  16009.             ,helpcontext(0x1012000A)
  16010.             ,helpstring("Returns the name of the object, as a string.")
  16011.         ]
  16012.         HRESULT  Name(
  16013.             [out, retval] BSTR* prop // The name of the object.
  16014.             );
  16015.  
  16016.         /**
  16017.          * Returns the parent object for the specified object.
  16018.          */
  16019.         [
  16020.              propget
  16021.             ,helpcontext(0x1012000B)
  16022.             ,helpstring("Returns the parent object for the specified object.")
  16023.         ]
  16024.         HRESULT  Parent(
  16025.             [out, retval] IDispatch** prop // The parent object.
  16026.             );
  16027.  
  16028.         /**
  16029.          * Returns the Filter object's priority.
  16030.          */
  16031.         [
  16032.              propget
  16033.             ,helpcontext(0x1012000C)
  16034.             ,helpstring("Returns the Filter object's priority.")
  16035.         ]
  16036.         HRESULT  Priority(
  16037.             [out, retval] SHORT* prop // The priority.
  16038.             );
  16039.  
  16040.         /**
  16041.          * Sets the Filter object's priority.
  16042.          */
  16043.         [
  16044.              propput
  16045.             ,helpcontext(0x1012000C)
  16046.             ,helpstring("Sets the Filter object's priority.")
  16047.         ]
  16048.         HRESULT  Priority(
  16049.             [in] SHORT prop // The priority.
  16050.             );
  16051.  
  16052.         /**
  16053.          * Returns True if the Filter object can save to a flat file.
  16054.          */
  16055.         [
  16056.              propget
  16057.             ,helpcontext(0x1012000D)
  16058.             ,helpstring("Returns True if the Filter object can save to a flat file.")
  16059.         ]
  16060.         HRESULT  SaveFlat(
  16061.             [out, retval] IMSI_BOOL* prop // True if the Filter object can save to a flat file.
  16062.             );
  16063.  
  16064.         /**
  16065.          * Returns True if the Filter object can save to an OLE stream.
  16066.          */
  16067.         [
  16068.              propget
  16069.             ,helpcontext(0x1012000E)
  16070.             ,helpstring("Returns True if the Filter object can save to an OLE stream.")
  16071.         ]
  16072.         HRESULT  SaveStream(
  16073.             [out, retval] IMSI_BOOL* prop // True if the Filter object can save to an OLE stream.
  16074.             );
  16075.  
  16076.         /**
  16077.          * Returns the internal table entry ID.
  16078.          * Private.
  16079.          */
  16080.         [
  16081.              propget
  16082.             ,restricted
  16083.             ,helpcontext(0x1012000F)
  16084.             ,helpstring("Private.  Returns the internal table entry ID.")
  16085.         ]
  16086.         HRESULT  _TableEntryID(
  16087.             [out, retval] long* prop // The table entry ID.
  16088.             );
  16089.  
  16090.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16091.  
  16092.         /**
  16093.          * Check that the Filter object can read a file or stream.
  16094.          */
  16095.         [
  16096.              helpcontext(0x10120010)
  16097.             ,helpstring("Check that the Filter object can read a file or stream into a Graphics collection.")
  16098.             ,restricted, hidden
  16099.         ]
  16100.         HRESULT  Check(
  16101.             [in, optional] VARIANT* FileName, // A flat file name.
  16102.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16103.             [out, retval] IMSI_BOOL* prop // True if the file has the correct format.            );
  16104.             );
  16105.  
  16106.         /**
  16107.          * Deletes the object.
  16108.          */
  16109.         [
  16110.              helpcontext(0x10120011)
  16111.             ,helpstring("Deletes the object.")
  16112.         ]
  16113.         HRESULT  Delete(
  16114.             );
  16115.  
  16116.         /**
  16117.          * Open the graphics from a file or stream into a Graphics collection.
  16118.          */
  16119.         [
  16120.              helpcontext(0x10120012)
  16121.             ,helpstring("Open the graphics from a file or stream into a Graphics collection.")
  16122.             ,restricted, hidden
  16123.         ]
  16124.         HRESULT  Open(
  16125.             [in] Graphics* Dest, // Where to load the new Graphic objects.
  16126.             [in, optional] VARIANT* FileName, // A flat file name.
  16127.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16128.             [out, retval] IMSI_BOOL* prop // True if the file was opened.
  16129.             );
  16130.  
  16131.         /**
  16132.          * Runs the setup dialog for loading from a file or stream.
  16133.          */
  16134.         [
  16135.              helpcontext(0x10120013)
  16136.             ,helpstring("Runs the setup dialog for loading from a file or stream.")
  16137.             ,restricted, hidden
  16138.         ]
  16139.         HRESULT  OpenSetupDialog(
  16140.             [out, retval] IMSI_BOOL* prop // True if the dialog was run.
  16141.             );
  16142.  
  16143.         /**
  16144.          * Save the graphics in a Graphics collection to a file or stream.
  16145.          */
  16146.         [
  16147.              helpcontext(0x10120014)
  16148.             ,helpstring("Save the graphics in a Graphics collection to a file or stream.")
  16149.             ,restricted, hidden
  16150.         ]
  16151.         HRESULT  Save(
  16152.             [in] Graphics* Source, // Where to obtain the Graphic objects to save.
  16153.             [in, optional] VARIANT* FileName, // A flat file name.
  16154.             [in, optional] VARIANT* IStreamContents, // An OLE stream.
  16155.             [out, retval] IMSI_BOOL* prop // True if the file was saved.
  16156.             );
  16157.  
  16158.         /**
  16159.          * Runs the setup dialog for saving to a file or stream.
  16160.          */
  16161.         [
  16162.              helpcontext(0x10120015)
  16163.             ,helpstring("Runs the setup dialog for saving to a file or stream.")
  16164.             ,restricted, hidden
  16165.         ]
  16166.         HRESULT  SaveSetupDialog(
  16167.             [out, retval] IMSI_BOOL* prop // True if the dialog was run.
  16168.             );
  16169.  
  16170.         [
  16171.              propget
  16172.             ,helpcontext(0x10120016)
  16173.             ,helpstring("return (set) the filter object capability (is this filter READ, WRITE or READWRITE")
  16174.         ]
  16175.         HRESULT  Capability(
  16176.                                 [out, retval] ImsiFilterCapability *pVal
  16177.                                 );
  16178.         [
  16179.              propput
  16180.             ,helpcontext(0x10120016)
  16181.             ,helpstring("return (set) the filter object capability (is this filter READ, WRITE or READWRITE")
  16182.         ]
  16183.         HRESULT  Capability(
  16184.                         [in] ImsiFilterCapability newVal
  16185.                         );
  16186.         [
  16187.              propget
  16188.             ,helpcontext(0x10120017)
  16189.             ,helpstring("property Hidden")
  16190.         ]
  16191.         HRESULT  Hidden(
  16192.                         [out, retval] IMSI_BOOL *pVal
  16193.                         );
  16194.         [
  16195.               propput
  16196.              ,helpcontext(0x10120017)
  16197.              ,helpstring("property Hidden")
  16198.         ]
  16199.         HRESULT  Hidden(
  16200.                         [in] IMSI_BOOL newVal
  16201.                         );
  16202.     };
  16203.  
  16204.  
  16205.     /**
  16206.      * The collection of objects that control loading from and saving to storage.
  16207.      */
  16208.     [
  16209.          object
  16210.         ,uuid(6A48111C-E531-11CF-A115-00A024158DAF)
  16211.         ,oleautomation
  16212.         ,dual
  16213.         ,helpcontext(0x10130000)
  16214.         ,helpstring("The collection of objects that control loading from and saving to storage.")
  16215.     ]
  16216.     interface Filters : IDispatch
  16217.     {
  16218.  
  16219.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16220.  
  16221.         /**
  16222.          * Returns an Application object that represents the owner of the specified object.
  16223.          */
  16224.         [
  16225.              propget
  16226.             ,helpcontext(0x10130001)
  16227.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16228.         ]
  16229.         HRESULT  Application(
  16230.             [out, retval] IApplication** prop // The Application object.
  16231.             );
  16232.  
  16233.         /**
  16234.          * Returns the number of items in the collection.
  16235.          */
  16236.         [
  16237.              propget
  16238.             ,helpcontext(0x10130002)
  16239.             ,helpstring("Returns the number of items in the collection.")
  16240.         ]
  16241.         HRESULT  Count(
  16242.             [out, retval] long* prop // The number of items.
  16243.             );
  16244.  
  16245.         /**
  16246.          * Returns part of a collection.
  16247.          */
  16248.         [
  16249.              propget
  16250.             ,id(DISPID_VALUE)
  16251.             ,helpcontext(0x10130003)
  16252.             ,helpstring("Returns part of a collection.")
  16253.         ]
  16254.         HRESULT  Item(
  16255.             [in] VARIANT* Index, // Index of item to return.
  16256.             [out, retval] Filter** prop // The item.
  16257.             );
  16258.  
  16259.         /**
  16260.          * Returns the parent object for the specified object.
  16261.          */
  16262.         [
  16263.              propget
  16264.             ,helpcontext(0x10130004)
  16265.             ,helpstring("Returns the parent object for the specified object.")
  16266.         ]
  16267.         HRESULT  Parent(
  16268.             [out, retval] IDispatch** prop // The parent object.
  16269.             );
  16270.  
  16271.         /**
  16272.          * Creates an enumeration object.
  16273.          */
  16274.         [
  16275.              propget
  16276.             ,restricted
  16277.             ,id(DISPID_NEWENUM)
  16278.             ,helpcontext(0x10130005)
  16279.             ,helpstring("Private.  Creates an enumeration object.")
  16280.         ]
  16281.         HRESULT  _NewEnum(
  16282.             [out, retval] IUnknown** prop // The enumeration object.
  16283.             );
  16284.  
  16285.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16286.  
  16287.         /**
  16288.          * Add all the Filter objects in the specified file to the collection.
  16289.          */
  16290.         [
  16291.              helpcontext(0x10130006)
  16292.             ,helpstring("Add all the Filter objects in the specified file to the collection.")
  16293.             ,restricted, hidden
  16294.         ]
  16295.         HRESULT  Add(
  16296.             [in] BSTR FileName, // The full path name of the file containing Filter objects.
  16297.             [in, out, optional] VARIANT* FiltersAdded // An array of Filter objects.
  16298.             );
  16299.  
  16300.         /**
  16301.          * Returns the index within the table collection of the specified table entry.
  16302.          * Private.
  16303.          */
  16304.         [
  16305.              restricted
  16306.             ,helpcontext(0x10130007)
  16307.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16308.         ]
  16309.         HRESULT  _FindIndex(
  16310.             [in] long TableEntryID, // The internal table ID.
  16311.             [out, retval] long* prop // The zero based index.
  16312.             );
  16313.  
  16314.         /**
  16315.          * Returns an object from the table collection for the specified table entry.
  16316.          * Private.
  16317.          */
  16318.         [
  16319.              restricted
  16320.             ,helpcontext(0x10130008)
  16321.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16322.         ]
  16323.         HRESULT  _ObjectFromID(
  16324.             [in] long TableEntryID, // The internal table ID.
  16325.             [out, retval] Filter** prop // The object.
  16326.             );
  16327.     };
  16328.  
  16329.     /**
  16330.      * The collection of layers in a TurboCAD drawing.
  16331.      */
  16332.     [
  16333.          object
  16334.         ,uuid(6A481116-E531-11CF-A115-00A024158DAF)
  16335.         ,oleautomation
  16336.         ,dual
  16337.         ,helpcontext(0x10140000)
  16338.         ,helpstring("The collection of layers in a TurboCAD drawing.")
  16339.     ]
  16340.     interface Layers : IDispatch
  16341.     {
  16342.  
  16343.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16344.  
  16345.         /**
  16346.          * Returns an Application object that represents the owner of the specified object.
  16347.          */
  16348.         [
  16349.              propget
  16350.             ,helpcontext(0x10140001)
  16351.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16352.         ]
  16353.         HRESULT  Application(
  16354.             [out, retval] IApplication** prop // The Application object.
  16355.             );
  16356.  
  16357.         /**
  16358.          * Returns the number of items in the collection.
  16359.          */
  16360.         [
  16361.              propget
  16362.             ,helpcontext(0x10140002)
  16363.             ,helpstring("Returns the number of items in the collection.")
  16364.         ]
  16365.         HRESULT  Count(
  16366.             [out, retval] long* prop // The number of items.
  16367.             );
  16368.  
  16369.         /**
  16370.          * Returns part of a collection.
  16371.          */
  16372.         [
  16373.              propget
  16374.             ,id(DISPID_VALUE)
  16375.             ,helpcontext(0x10140003)
  16376.             ,helpstring("Returns part of a collection.")
  16377.         ]
  16378.         HRESULT  Item(
  16379.             [in] VARIANT* Index, // Index of item to return.
  16380.             [out, retval] Layer** prop // The item.
  16381.             );
  16382.  
  16383.         /**
  16384.          * Returns the parent object for the specified object.
  16385.          */
  16386.         [
  16387.              propget
  16388.             ,helpcontext(0x10140004)
  16389.             ,helpstring("Returns the parent object for the specified object.")
  16390.         ]
  16391.         HRESULT  Parent(
  16392.             [out, retval] IDispatch** prop // The parent object.
  16393.             );
  16394.  
  16395.         /**
  16396.          * Creates an enumeration object.
  16397.          */
  16398.         [
  16399.              propget
  16400.             ,restricted
  16401.             ,id(DISPID_NEWENUM)
  16402.             ,helpcontext(0x10140005)
  16403.             ,helpstring("Private.  Creates an enumeration object.")
  16404.         ]
  16405.         HRESULT  _NewEnum(
  16406.             [out, retval] IUnknown** prop // The enumeration object.
  16407.             );
  16408.  
  16409.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16410.  
  16411.         /**
  16412.          * Adds a new layer to the collection.
  16413.          */
  16414.         [
  16415.              helpcontext(0x10140006)
  16416.             ,helpstring("Adds a new layer to the collection.")
  16417.         ]
  16418.         HRESULT  Add(
  16419.             [in] BSTR Name, // The name of the Layer object.
  16420.             [in, optional] VARIANT* Visible, // True if Graphic objects on the Layer object are visible.
  16421.             [in, optional] VARIANT* Editable, // True if Graphic objects on the Layer object can be edited.
  16422.             [in, optional] VARIANT* Frozen, // True if Graphic objects on the Layer object cannot be edited or selected.
  16423.             [in, optional] VARIANT* Color, // The color of the Layer object.
  16424.             [in, optional] VARIANT* LineStyle, // The LineStyle object name or object for the Layer object.
  16425.             [in, optional] VARIANT* BrushStyle, // The BrushStyle object name or object for the Layer object.
  16426.             [in, optional] VARIANT* GraphicStyle, // The Style object name or object for the Layer object.
  16427.             [in, optional] VARIANT* ZOrder, // The z order for the Layer object.
  16428.             [out, retval] Layer** prop // The newly created Layer object.
  16429.             );
  16430.  
  16431.         /**
  16432.          * Returns the index within the table collection of the specified table entry.
  16433.          * Private.
  16434.          */
  16435.         [
  16436.              restricted
  16437.             ,helpcontext(0x10140007)
  16438.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16439.         ]
  16440.         HRESULT  _FindIndex(
  16441.             [in] long TableEntryID, // The internal table ID.
  16442.             [out, retval] long* prop // The zero based index.
  16443.             );
  16444.  
  16445.         /**
  16446.          * Returns an object from the table collection for the specified table entry.
  16447.          * Private.
  16448.          */
  16449.         [
  16450.              restricted
  16451.             ,helpcontext(0x10140008)
  16452.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16453.         ]
  16454.         HRESULT  _ObjectFromID(
  16455.             [in] long TableEntryID, // The internal table ID.
  16456.             [out, retval] Layer** prop // The object.
  16457.             );
  16458.     };
  16459.  
  16460.  
  16461.  
  16462.     /**
  16463.      * A TurboCAD line style object.
  16464.      */
  16465.     [
  16466.          object
  16467.         ,uuid(6A481117-E531-11CF-A115-00A024158DAF)
  16468.         ,oleautomation
  16469.         ,dual
  16470.         ,helpcontext(0x10150000)
  16471.         ,helpstring("A TurboCAD line style object.")
  16472.     ]
  16473.     interface LineStyle : IDispatch
  16474.     {
  16475.  
  16476.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16477.  
  16478.         /**
  16479.          * Returns an Application object that represents the owner of the specified object.
  16480.          */
  16481.         [
  16482.              propget
  16483.             ,helpcontext(0x10150001)
  16484.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16485.         ]
  16486.         HRESULT  Application(
  16487.             [out, retval] IApplication** prop // The Application object.
  16488.             );
  16489.  
  16490.         /**
  16491.          * Returns the LineStyle object's description string.
  16492.          */
  16493.         [
  16494.              propget
  16495.             ,helpcontext(0x10150002)
  16496.             ,helpstring("Returns the LineStyle object's description string.")
  16497.         ]
  16498.         HRESULT  Description(
  16499.             [out, retval] BSTR* prop // The description.
  16500.             );
  16501.  
  16502.         /**
  16503.          * Sets the the LineStyle object's description string.
  16504.          */
  16505.         [
  16506.              propput
  16507.             ,helpcontext(0x10150002)
  16508.             ,helpstring("Sets the LineStyle object's description string.")
  16509.         ]
  16510.         HRESULT  Description(
  16511.             [in] BSTR prop // The description.
  16512.             );
  16513.  
  16514.         /**
  16515.          * Returns the Drawing object that owns the object.
  16516.          */
  16517.         [
  16518.              propget
  16519.             ,helpcontext(0x10150003)
  16520.             ,helpstring("Returns the Drawing object that owns the object.")
  16521.             ,restricted, hidden
  16522.         ]
  16523.         HRESULT  Drawing(
  16524.             [out, retval] IDrawing** prop // The Drawing object.
  16525.             );
  16526.  
  16527.         /**
  16528.          * Returns the index of the item in the collection.
  16529.          */
  16530.         [
  16531.              propget
  16532.             ,helpcontext(0x10150004)
  16533.             ,helpstring("Returns the index of the item in the collection.")
  16534.         ]
  16535.         HRESULT  Index(
  16536.             [out, retval] long* prop // The index.
  16537.             );
  16538.  
  16539.         /**
  16540.          * Returns the name of the object, as a string.
  16541.          */
  16542.         [
  16543.              propget
  16544.             ,helpcontext(0x10150005)
  16545.             ,helpstring("Returns the name of the object, as a string.")
  16546.         ]
  16547.         HRESULT  Name(
  16548.             [out, retval] BSTR* prop // The name of the object.
  16549.             );
  16550.  
  16551.         /**
  16552.          * Returns the parent object for the specified object.
  16553.          */
  16554.         [
  16555.              propget
  16556.             ,helpcontext(0x10150006)
  16557.             ,helpstring("Returns the parent object for the specified object.")
  16558.         ]
  16559.         HRESULT  Parent(
  16560.             [out, retval] IDispatch** prop // The parent object.
  16561.             );
  16562.  
  16563.         /**
  16564.          * Returns the total pattern length.
  16565.          */
  16566.         [
  16567.              propget
  16568.             ,helpcontext(0x10150007)
  16569.             ,helpstring("Returns the total pattern length.")
  16570.             ,restricted, hidden
  16571.         ]
  16572.         HRESULT  PatternLength(
  16573.             [out, retval] double* prop // The total pattern length.
  16574.             );
  16575.  
  16576.         /**
  16577.          * Returns the internal table entry ID.
  16578.          * Private.
  16579.          */
  16580.         [
  16581.              propget
  16582.             ,restricted
  16583.             ,helpcontext(0x10150008)
  16584.             ,helpstring("Private.  Returns the internal table entry ID.")
  16585.         ]
  16586.         HRESULT  _TableEntryID(
  16587.             [out, retval] long* prop // The table entry ID.
  16588.             );
  16589.  
  16590.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16591.  
  16592.         /**
  16593.          * Deletes the object.
  16594.          */
  16595.         [
  16596.              helpcontext(0x10150009)
  16597.             ,helpstring("Deletes the object.")
  16598.             ,hidden, restricted
  16599.         ]
  16600.         HRESULT  Delete(
  16601.             );
  16602.  
  16603.         /**
  16604.          * Fills an array with dash lengths that make up the LineStyle object.
  16605.          */
  16606.         [
  16607.              helpcontext(0x1015000A)
  16608.             ,helpstring("Fills an array with dash lengths that make up the LineStyle object.")
  16609.             ,restricted, hidden
  16610.         ]
  16611.         HRESULT  SetDashes(
  16612.             [in] VARIANT* Dashes // An array of doubles.
  16613.             );
  16614.  
  16615.         /**
  16616.          * Fills an array with dash lengths that make up the LineStyle object.
  16617.          */
  16618.         [
  16619.              helpcontext(0x1015000B)
  16620.             ,helpstring("Fills an array with dash lengths that make up the LineStyle object.")
  16621.         ]
  16622.         HRESULT  GetDashes(
  16623.             [out] VARIANT* Dashes // An array of doubles.
  16624.             );
  16625.  
  16626.         /**
  16627.          * Duplicates the object and returns a reference to the new copy.
  16628.          */
  16629.         [
  16630.              helpcontext(0x1015000C)
  16631.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  16632.             ,restricted, hidden
  16633.         ]
  16634.         HRESULT  Duplicate(
  16635.             [out, retval] LineStyle** prop // The duplicated LineStyle object.
  16636.             );
  16637.  
  16638.     };
  16639.  
  16640.  
  16641.     /**
  16642.      * The collection of LineStyle objects within a Drawing object.
  16643.      */
  16644.     [
  16645.          object
  16646.         ,uuid(6A481118-E531-11CF-A115-00A024158DAF)
  16647.         ,oleautomation
  16648.         ,dual
  16649.         ,helpcontext(0x10160000)
  16650.         ,helpstring("The collection of LineStyle objects within a Drawing object.")
  16651.     ]
  16652.     interface LineStyles : IDispatch
  16653.     {
  16654.  
  16655.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16656.  
  16657.         /**
  16658.          * Returns an Application object that represents the owner of the specified object.
  16659.          */
  16660.         [
  16661.              propget
  16662.             ,helpcontext(0x10160001)
  16663.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16664.         ]
  16665.         HRESULT  Application(
  16666.             [out, retval] IApplication** prop // The Application object.
  16667.             );
  16668.  
  16669.         /**
  16670.          * Returns the number of items in the collection.
  16671.          */
  16672.         [
  16673.              propget
  16674.             ,helpcontext(0x10160002)
  16675.             ,helpstring("Returns the number of items in the collection.")
  16676.         ]
  16677.         HRESULT  Count(
  16678.             [out, retval] long* prop // The number of items.
  16679.             );
  16680.  
  16681.         /**
  16682.          * Returns part of a collection.
  16683.          */
  16684.         [
  16685.              propget
  16686.             ,id(DISPID_VALUE)
  16687.             ,helpcontext(0x10160003)
  16688.             ,helpstring("Returns part of a collection.")
  16689.         ]
  16690.         HRESULT  Item(
  16691.             [in] VARIANT* Index, // Index of item to return.
  16692.             [out, retval] LineStyle** prop // The item.
  16693.             );
  16694.  
  16695.         /**
  16696.          * Returns the parent object for the specified object.
  16697.          */
  16698.         [
  16699.              propget
  16700.             ,helpcontext(0x10160004)
  16701.             ,helpstring("Returns the parent object for the specified object.")
  16702.         ]
  16703.         HRESULT  Parent(
  16704.             [out, retval] IDispatch** prop // The parent object.
  16705.             );
  16706.  
  16707.         /**
  16708.          * Creates an enumeration object.
  16709.          */
  16710.         [
  16711.              propget
  16712.             ,restricted
  16713.             ,id(DISPID_NEWENUM)
  16714.             ,helpcontext(0x10160005)
  16715.             ,helpstring("Private.  Creates an enumeration object.")
  16716.         ]
  16717.         HRESULT  _NewEnum(
  16718.             [out, retval] IUnknown** prop // The enumeration object.
  16719.             );
  16720.  
  16721.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16722.  
  16723.         /**
  16724.          * Adds a new LineStyle object to the collection.
  16725.          */
  16726.         [
  16727.              helpcontext(0x10160006)
  16728.             ,helpstring("Adds a new LineStyle object to the collection.")
  16729.         ]
  16730.         HRESULT  Add(
  16731.             [in] BSTR Name, // The name of the LineStyle object.
  16732.             [in] VARIANT* Dashes, // An array of dash lengths.
  16733.             [in, optional] VARIANT* Description, // A description string.
  16734.             [out, retval] LineStyle** prop // The newly created LineStyle object.
  16735.             );
  16736.  
  16737.         /**
  16738.          * Returns the index within the table collection of the specified table entry.
  16739.          * Private.
  16740.          */
  16741.         [
  16742.              restricted
  16743.             ,helpcontext(0x10160007)
  16744.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  16745.         ]
  16746.         HRESULT  _FindIndex(
  16747.             [in] long TableEntryID, // The internal table ID.
  16748.             [out, retval] long* prop // The zero based index.
  16749.             );
  16750.  
  16751.         /**
  16752.          * Returns an object from the table collection for the specified table entry.
  16753.          * Private.
  16754.          */
  16755.         [
  16756.              restricted
  16757.             ,helpcontext(0x10160008)
  16758.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  16759.         ]
  16760.         HRESULT  _ObjectFromID(
  16761.             [in] long TableEntryID, // The internal table ID.
  16762.             [out, retval] LineStyle** prop // The object.
  16763.             );
  16764.  
  16765.     };
  16766.  
  16767.     /**
  16768.      * A TurboCAD brush style object.
  16769.      */
  16770.     [
  16771.          object
  16772.         ,uuid(6A481119-E531-11CF-A115-00A024158DAF)
  16773.         ,oleautomation
  16774.         ,dual
  16775.         ,helpcontext(0x10170000)
  16776.         ,helpstring("A TurboCAD brush style object.")
  16777.     ]
  16778.     interface BrushStyle : IDispatch
  16779.     {
  16780.  
  16781.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16782.  
  16783.         /**
  16784.          * Returns an Application object that represents the owner of the specified object.
  16785.          */
  16786.         [
  16787.              propget
  16788.             ,helpcontext(0x10170001)
  16789.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  16790.         ]
  16791.         HRESULT  Application(
  16792.             [out, retval] IApplication** prop // The Application object.
  16793.             );
  16794.  
  16795.         /**
  16796.          * Returns the BrushStyle object's bitmap file name.
  16797.          */
  16798.         [
  16799.              propget
  16800.             ,helpcontext(0x10170002)
  16801.             ,helpstring("Returns the BrushStyle object's bitmap file name.")
  16802.             ,restricted, hidden
  16803.         ]
  16804.         HRESULT  Bitmap(
  16805.             [out, retval] BSTR* prop // The bitmap file name.
  16806.             );
  16807.  
  16808.         /**
  16809.          * Sets the BrushStyle object's bitmap file name.
  16810.          */
  16811.         [
  16812.              propput
  16813.             ,helpcontext(0x10170002)
  16814.             ,helpstring("Sets the BrushStyle object's bitmap file name.")
  16815.             ,restricted, hidden
  16816.         ]
  16817.         HRESULT  Bitmap(
  16818.             [in] BSTR prop // The bitmap file name.
  16819.             );
  16820.  
  16821.         /**
  16822.          * Returns the BrushStyle object's color.
  16823.          */
  16824.         [
  16825.              propget
  16826.             ,helpcontext(0x10170003)
  16827.             ,helpstring("Returns the BrushStyle object's color.")
  16828.             ,restricted, hidden
  16829.         ]
  16830.         HRESULT  Color(
  16831.             [out, retval] IMSI_COLOR* prop // The color.
  16832.             );
  16833.  
  16834.         /**
  16835.          * Sets the BrushStyle object's color.
  16836.          */
  16837.         [
  16838.              propput
  16839.             ,helpcontext(0x10170003)
  16840.             ,helpstring("Sets the BrushStyle object's color.")
  16841.             ,restricted, hidden
  16842.         ]
  16843.         HRESULT  Color(
  16844.             [in] IMSI_COLOR prop // The color.
  16845.             );
  16846.  
  16847.         /**
  16848.          * Returns the BrushStyle object's description string.
  16849.          */
  16850.         [
  16851.              propget
  16852.             ,helpcontext(0x10170004)
  16853.             ,helpstring("Returns the BrushStyle object's description string.")
  16854.         ]
  16855.         HRESULT  Description(
  16856.             [out, retval] BSTR* prop // The description.
  16857.             );
  16858.  
  16859.         /**
  16860.          * Sets the the BrushStyle object's description string.
  16861.          */
  16862.         [
  16863.              propput
  16864.             ,helpcontext(0x10170004)
  16865.             ,helpstring("Sets the BrushStyle object's description string.")
  16866.         ]
  16867.         HRESULT  Description(
  16868.             [in] BSTR prop // The description.
  16869.             );
  16870.  
  16871.         /**
  16872.          * Returns the Drawing object that owns the object.
  16873.          */
  16874.         [
  16875.              propget
  16876.             ,helpcontext(0x10170005)
  16877.             ,helpstring("Returns the Drawing object that owns the object.")
  16878.             ,restricted, hidden
  16879.         ]
  16880.         HRESULT  Drawing(
  16881.             [out, retval] IDrawing** prop // The Drawing object.
  16882.             );
  16883.  
  16884.         /**
  16885.          * Returns the BrushStyle object's Windows hatch style.
  16886.          */
  16887.         [
  16888.              propget
  16889.             ,helpcontext(0x10170006)
  16890.             ,helpstring("Returns the BrushStyle object's Windows hatch style.")
  16891.             ,restricted, hidden
  16892.         ]
  16893.         HRESULT  HatchStyle(
  16894.             [out, retval] ImsiHatchStyle* prop // The hatch style.
  16895.             );
  16896.  
  16897.         /**
  16898.          * Sets the BrushStyle object's Windows hatch style.
  16899.          */
  16900.         [
  16901.              propput
  16902.             ,helpcontext(0x10170006)
  16903.             ,helpstring("Sets the BrushStyle object's Windows hatch style.")
  16904.             ,restricted, hidden
  16905.         ]
  16906.         HRESULT  HatchStyle(
  16907.             [in] ImsiHatchStyle prop // The hatch style.
  16908.             );
  16909.  
  16910.         /**
  16911.          * Returns the index of the item in the collection.
  16912.          */
  16913.         [
  16914.              propget
  16915.             ,helpcontext(0x10170007)
  16916.             ,helpstring("Returns the index of the item in the collection.")
  16917.         ]
  16918.         HRESULT  Index(
  16919.             [out, retval] long* prop // The index.
  16920.             );
  16921.  
  16922.         /**
  16923.          * Returns the name of the object, as a string.
  16924.          */
  16925.         [
  16926.              propget
  16927.             ,helpcontext(0x10170008)
  16928.             ,helpstring("Returns the name of the object, as a string.")
  16929.         ]
  16930.         HRESULT  Name(
  16931.             [out, retval] BSTR* prop // The name of the object.
  16932.             );
  16933.  
  16934.         /**
  16935.          * Returns the parent object for the specified object.
  16936.          */
  16937.         [
  16938.              propget
  16939.             ,helpcontext(0x10170009)
  16940.             ,helpstring("Returns the parent object for the specified object.")
  16941.         ]
  16942.         HRESULT  Parent(
  16943.             [out, retval] IDispatch** prop // The parent object.
  16944.             );
  16945.  
  16946.         /**
  16947.          * Returns the BrushStyle object's BrushPatterns collection.
  16948.          */
  16949.         [
  16950.              propget
  16951.             ,restricted, hidden
  16952.             ,helpcontext(0x1017000A)
  16953.             ,helpstring("Returns the BrushStyle object's BrushPatterns collection.")
  16954.         ]
  16955.         HRESULT  Patterns(
  16956.             [out, retval] BrushPatterns** Patterns // The BrushStyle object's BrushPatterns collection.
  16957.             );
  16958.  
  16959.         /**
  16960.          * Returns the type of the BrushStyle object.
  16961.          */
  16962.         [
  16963.              propget
  16964.             ,helpcontext(0x1017000B)
  16965.             ,helpstring("Returns the type of the BrushStyle object.")
  16966.         ]
  16967.         HRESULT  Type(
  16968.             [out, retval] ImsiBrushType* prop // The type.
  16969.             );
  16970.  
  16971.         /**
  16972.          * Returns the internal table entry ID.
  16973.          * Private.
  16974.          */
  16975.         [
  16976.              propget
  16977.             ,restricted
  16978.             ,helpcontext(0x1017000C)
  16979.             ,helpstring("Private.  Returns the internal table entry ID.")
  16980.         ]
  16981.         HRESULT  _TableEntryID(
  16982.             [out, retval] long* prop // The table entry ID.
  16983.             );
  16984.  
  16985.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16986.  
  16987.         /**
  16988.          * Deletes the object.
  16989.          */
  16990.         [
  16991.              helpcontext(0x1017000D)
  16992.             ,helpstring("Deletes the object.")
  16993.             ,hidden, restricted
  16994.         ]
  16995.         HRESULT  Delete(
  16996.             );
  16997.  
  16998.     };
  16999.  
  17000.     /**
  17001.      * The collection of BrushStyle objects within a Drawing object.
  17002.      */
  17003.     [
  17004.          object
  17005.         ,uuid(6A48111A-E531-11CF-A115-00A024158DAF)
  17006.         ,oleautomation
  17007.         ,dual
  17008.         ,helpcontext(0x10180000)
  17009.         ,helpstring("The collection of BrushStyle objects within a Drawing object.")
  17010.     ]
  17011.     interface BrushStyles : IDispatch
  17012.     {
  17013.  
  17014.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17015.  
  17016.         /**
  17017.          * Returns an Application object that represents the owner of the specified object.
  17018.          */
  17019.         [
  17020.              propget
  17021.             ,helpcontext(0x10180001)
  17022.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17023.         ]
  17024.         HRESULT  Application(
  17025.             [out, retval] IApplication** prop // The Application object.
  17026.             );
  17027.  
  17028.         /**
  17029.          * Returns the number of items in the collection.
  17030.          */
  17031.         [
  17032.              propget
  17033.             ,helpcontext(0x10180002)
  17034.             ,helpstring("Returns the number of items in the collection.")
  17035.         ]
  17036.         HRESULT  Count(
  17037.             [out, retval] long* prop // The number of items.
  17038.             );
  17039.  
  17040.         /**
  17041.          * Returns part of a collection.
  17042.          */
  17043.         [
  17044.              propget
  17045.             ,id(DISPID_VALUE)
  17046.             ,helpcontext(0x10180003)
  17047.             ,helpstring("Returns part of a collection.")
  17048.         ]
  17049.         HRESULT  Item(
  17050.             [in] VARIANT* Index, // Index of item to return.
  17051.             [out, retval] BrushStyle** prop // The item.
  17052.             );
  17053.  
  17054.         /**
  17055.          * Returns the parent object for the specified object.
  17056.          */
  17057.         [
  17058.              propget
  17059.             ,helpcontext(0x10180004)
  17060.             ,helpstring("Returns the parent object for the specified object.")
  17061.         ]
  17062.         HRESULT  Parent(
  17063.             [out, retval] IDispatch** prop // The parent object.
  17064.             );
  17065.  
  17066.         /**
  17067.          * Creates an enumeration object.
  17068.          */
  17069.         [
  17070.              propget
  17071.             ,restricted
  17072.             ,id(DISPID_NEWENUM)
  17073.             ,helpcontext(0x10180005)
  17074.             ,helpstring("Private.  Creates an enumeration object.")
  17075.         ]
  17076.         HRESULT  _NewEnum(
  17077.             [out, retval] IUnknown** prop // The enumeration object.
  17078.             );
  17079.  
  17080.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17081.  
  17082.         /**
  17083.          * Adds a new BrushStyle object to the collection.
  17084.          */
  17085.         [
  17086.              helpcontext(0x10180006)
  17087.             ,helpstring("Adds a new BrushStyle object to the collection.")
  17088.             ,restricted, hidden
  17089.         ]
  17090.         HRESULT  Add(
  17091.             [in] BSTR Name, // The name of the BrushStyle object.
  17092.             [in, optional] VARIANT* HatchStyle, // A Windows hatch style.
  17093.             [in, optional] VARIANT* BitmapFileName, // A bitmap file.
  17094.             [in, optional] VARIANT* Patterns, // An array of BrushPattern objects.
  17095.             [in, optional] VARIANT* Description, // A description string.
  17096.             [out, retval] BrushStyle** prop // The newly created BrushStyle object.
  17097.             );
  17098.  
  17099.         /**
  17100.          * Returns the index within the table collection of the specified table entry.
  17101.          * Private.
  17102.          */
  17103.         [
  17104.              restricted
  17105.             ,helpcontext(0x10180007)
  17106.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  17107.         ]
  17108.         HRESULT  _FindIndex(
  17109.             [in] long TableEntryID, // The internal table ID.
  17110.             [out, retval] long* prop // The zero based index.
  17111.             );
  17112.  
  17113.         /**
  17114.          * Returns an object from the table collection for the specified table entry.
  17115.          * Private.
  17116.          */
  17117.         [
  17118.              restricted
  17119.             ,helpcontext(0x10180008)
  17120.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  17121.         ]
  17122.         HRESULT  _ObjectFromID(
  17123.             [in] long TableEntryID, // The internal table ID.
  17124.             [out, retval] BrushStyle** prop // The object.
  17125.             );
  17126.         };
  17127.  
  17128.  
  17129.  
  17130.     /**
  17131.      * A vector brush pattern, part of a BrushStyle object.
  17132.      */
  17133.     [
  17134.          object
  17135.         ,uuid(6A481145-E531-11CF-A115-00A024158DAF)
  17136.         ,oleautomation
  17137.         ,dual
  17138.         ,helpcontext(0x10190000)
  17139.         ,helpstring("A vector brush pattern, part of a BrushStyle object.")
  17140.         ,restricted, hidden
  17141.     ]
  17142.     interface IBrushPattern : IDispatch
  17143.     {
  17144.  
  17145.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17146.  
  17147.         /**
  17148.          * Returns an Application object that represents the owner of the specified object.
  17149.          */
  17150.         [
  17151.              propget
  17152.             ,helpcontext(0x10190001)
  17153.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17154.         ]
  17155.         HRESULT  Application(
  17156.             [out, retval] IApplication** prop // The Application object.
  17157.             );
  17158.  
  17159.         /**
  17160.          * Returns the number of items in the BrushPattern object.
  17161.          */
  17162.         [
  17163.              propget
  17164.             ,helpcontext(0x10190002)
  17165.             ,helpstring("Returns the number of items in the BrushPattern object.")
  17166.         ]
  17167.         HRESULT  Count(
  17168.             [out, retval] long* prop // The number of items.
  17169.             );
  17170.  
  17171.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17172.  
  17173.         /**
  17174.          * Adds an item to the BrushPattern object.
  17175.          */
  17176.         [
  17177.              helpcontext(0x10190003)
  17178.             ,helpstring("Adds an item to the BrushPattern object.")
  17179.         ]
  17180.         HRESULT  AddItem(
  17181.             [in] VARIANT* Dashes, // The line style.
  17182.             [in] double XOrigin, // The x coordinate of the pattern's origin.
  17183.             [in] double YOrigin, // The y coordinate of the pattern's origin.
  17184.             [in] double Angle // The angle of the line in radians.
  17185.             );
  17186.  
  17187.         /**
  17188.          * Returns an item in the BrushPattern object.
  17189.          */
  17190.         [
  17191.              helpcontext(0x10190004)
  17192.             ,helpstring("Returns an item in the BrushPattern object.")
  17193.         ]
  17194.         HRESULT  GetItem(
  17195.             [in] long Index, // Index of item to return.
  17196.             [out] VARIANT* Dashes, // The line style.
  17197.             [out] double* XOrigin, // The x coordinate of the pattern's origin.
  17198.             [out] double* YOrigin, // The y coordinate of the pattern's origin.
  17199.             [out] double* Width, // The width (x axis) of the pattern's origin.
  17200.             [out] double* Height, // The height (y axis) of the pattern's origin.
  17201.             [out] double* Angle // The angle of the line in radians.
  17202.             );
  17203.  
  17204.         /**
  17205.          * Sets an item in the BrushPattern object.
  17206.          */
  17207.         [
  17208.              helpcontext(0x10190005)
  17209.             ,helpstring("Sets an item in the BrushPattern object.")
  17210.         ]
  17211.         HRESULT  SetItem(
  17212.             [in] long Index, // Index of item to set.
  17213.             [in] VARIANT* Dashes, // The line style.
  17214.             [in] double XOrigin, // The x coordinate of the pattern's origin.
  17215.             [in] double YOrigin, // The y coordinate of the pattern's origin.
  17216.             [in] double Width, // The width (x axis) of the pattern's origin.
  17217.             [in] double Height, // The height (y axis) of the pattern's origin.
  17218.             [in] double Angle // The angle of the line in radians.
  17219.             );
  17220.     };
  17221.  
  17222.  
  17223.  
  17224.     /**
  17225.      * A collection of vector brush patterns, part of a BrushStyle object.
  17226.      */
  17227.     [
  17228.          object
  17229.         ,restricted, hidden
  17230.         ,uuid(6A481146-E531-11CF-A115-00A024158DAF)
  17231.         ,oleautomation
  17232.         ,dual
  17233.         ,helpcontext(0x101A0000)
  17234.         ,helpstring("A collection of vector brush patterns, part of a BrushStyle object.")
  17235.     ]
  17236.     interface BrushPatterns : IDispatch
  17237.     {
  17238.  
  17239.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17240.  
  17241.         /**
  17242.          * Returns an Application object that represents the owner of the specified object.
  17243.          */
  17244.         [
  17245.              propget
  17246.             ,helpcontext(0x101A0001)
  17247.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17248.         ]
  17249.         HRESULT  Application(
  17250.             [out, retval] IApplication** prop // The Application object.
  17251.             );
  17252.  
  17253.         /**
  17254.          * Returns the number of items in the collection.
  17255.          */
  17256.         [
  17257.              propget
  17258.             ,helpcontext(0x101A0002)
  17259.             ,helpstring("Returns the number of items in the collection.")
  17260.         ]
  17261.         HRESULT  Count(
  17262.             [out, retval] long* prop // The number of items.
  17263.             );
  17264.  
  17265.         /**
  17266.          * Returns an item in the collection.
  17267.          * Index can be specified as a long integer or as a string (Drawing name).
  17268.          */
  17269.         [
  17270.              propget
  17271.             ,id(DISPID_VALUE)
  17272.             ,helpcontext(0x101A0003)
  17273.             ,helpstring("Returns an item in the collection.")
  17274.         ]
  17275.         HRESULT  Item(
  17276.             [in] VARIANT* Index, // Index of item to return.
  17277.             [out, retval] IDrawing** prop // The item.
  17278.             );
  17279.  
  17280.         /**
  17281.          * Returns the parent object for the specified object.
  17282.          */
  17283.         [
  17284.              propget
  17285.             ,helpcontext(0x101A0004)
  17286.             ,helpstring("Returns the parent object for the specified object.")
  17287.         ]
  17288.         HRESULT  Parent(
  17289.             [out, retval] IDispatch** prop // The parent object.
  17290.             );
  17291.  
  17292.         /**
  17293.          * Creates an enumeration object.
  17294.          */
  17295.         [
  17296.              propget
  17297.             ,restricted
  17298.             ,id(DISPID_NEWENUM)
  17299.             ,helpcontext(0x101A0005)
  17300.             ,helpstring("Private.  Creates an enumeration object.")
  17301.         ]
  17302.         HRESULT  _NewEnum(
  17303.             [out, retval] IUnknown** prop // The enumeration object.
  17304.             );
  17305.  
  17306.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17307.  
  17308.     };
  17309.  
  17310.  
  17311.  
  17312.     /**
  17313.      * An object that allows looking up colors by name.
  17314.      */
  17315.     [
  17316.          object
  17317.         ,uuid(6A48111D-E531-11CF-A115-00A024158DAF)
  17318.         ,oleautomation
  17319.         ,dual
  17320.         ,helpcontext(0x101B0000)
  17321.         ,helpstring("An object that allows looking up colors by name.")
  17322.     ]
  17323.     interface NamedColor : IDispatch
  17324.     {
  17325.     
  17326.      ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17327.  
  17328.          /**
  17329.         * Returns an Application object that represents the owner of the specified object.
  17330.         */
  17331.         [
  17332.              propget
  17333.             ,helpcontext(0x101B0001)
  17334.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17335.         ]
  17336.         HRESULT  Application(
  17337.             [out, retval] IApplication** prop // The Application object.
  17338.             );
  17339.  
  17340.         /**
  17341.          * Returns the blue value of the color.
  17342.          */
  17343.         [
  17344.              propget
  17345.             ,helpcontext(0x101B0002)
  17346.             ,helpstring("Returns the blue value of the color.")
  17347.         ]
  17348.         HRESULT  Blue(
  17349.             [out, retval] double* prop // The blue value, in the range 0..1.
  17350.             );
  17351.  
  17352.         /**
  17353.          * Sets the blue value of the color.
  17354.          */
  17355.         [
  17356.              propput
  17357.             ,helpcontext(0x101B0002)
  17358.             ,helpstring("Sets the blue value of the color.")
  17359.         ]
  17360.         HRESULT  Blue(
  17361.             [in] double prop // The blue value, in the range 0..1.
  17362.             );
  17363.  
  17364.         /**
  17365.          * Returns the brightness value of the color.
  17366.          */
  17367.         [
  17368.              propget
  17369.             ,helpcontext(0x101B0003)
  17370.             ,helpstring("Returns the brightness value of the color.")
  17371.         ]
  17372.         HRESULT  Brightness(
  17373.             [out, retval] double* prop // The brightness value, in the range 0..1.
  17374.             );
  17375.  
  17376.         /**
  17377.          * Sets the brightness value of the color.
  17378.          */
  17379.         [
  17380.              propput
  17381.             ,helpcontext(0x101B0003)
  17382.             ,helpstring("Sets the brightness value of the color.")
  17383.         ]
  17384.         HRESULT  Brightness(
  17385.             [in] double prop // The brightness value, in the range 0..1.
  17386.             );
  17387.  
  17388.         /**
  17389.          * Returns the RGB value of the color.
  17390.          */
  17391.         [
  17392.              propget, id(DISPID_VALUE)
  17393.             ,helpcontext(0x101B0004)
  17394.             ,helpstring("Returns the RGB value of the color.")
  17395.         ]
  17396.         HRESULT  Color(
  17397.             [out, retval] IMSI_COLOR* prop // The RGB color.
  17398.             );
  17399.  
  17400.         /**
  17401.          * Sets the RGB value of the color.
  17402.          */
  17403.         [
  17404.              propput, id(DISPID_VALUE)
  17405.             ,helpcontext(0x101B0004)
  17406.             ,helpstring("Sets the RGB value of the color.")
  17407.         ]
  17408.         HRESULT  Color(
  17409.             [in] IMSI_COLOR prop // The RGB color.
  17410.             );
  17411.  
  17412.         /**
  17413.          * Returns the green value of the color.
  17414.          */
  17415.         [
  17416.              propget
  17417.             ,helpcontext(0x101B0005)
  17418.             ,helpstring("Returns the green value of the color.")
  17419.         ]
  17420.         HRESULT  Green(
  17421.             [out, retval] double* prop // The green value, in the range 0..1.
  17422.             );
  17423.  
  17424.         /**
  17425.          * Sets the green value of the color.
  17426.          */
  17427.         [
  17428.              propput
  17429.             ,helpcontext(0x101B0005)
  17430.             ,helpstring("Sets the green value of the color.")
  17431.         ]
  17432.         HRESULT  Green(
  17433.             [in] double prop // The green value, in the range 0..1.
  17434.             );
  17435.  
  17436.         /**
  17437.          * Returns the hue of the color.
  17438.          */
  17439.         [
  17440.              propget
  17441.             ,helpcontext(0x101B0006)
  17442.             ,helpstring("Returns the hue of the color.")
  17443.         ]
  17444.         HRESULT  Hue(
  17445.             [out, retval] double* prop // The hue, in the range 0..1.
  17446.             );
  17447.  
  17448.         /**
  17449.          * Sets the hue of the color.
  17450.          */
  17451.         [
  17452.              propput
  17453.             ,helpcontext(0x101B0006)
  17454.             ,helpstring("Sets the hue of the color.")
  17455.         ]
  17456.         HRESULT  Hue(
  17457.             [in] double prop // The hue, in the range 0..1.
  17458.             );
  17459.  
  17460.         /**
  17461.          * Returns the index of the item in the collection.
  17462.          */
  17463.         [
  17464.              propget
  17465.             ,helpcontext(0x101B0007)
  17466.             ,helpstring("Returns the index of the item in the collection.")
  17467.         ]
  17468.         HRESULT  Index(
  17469.             [out, retval] long* prop // The index.
  17470.             );
  17471.  
  17472.         /**
  17473.          * Returns the name of the object, as a string.
  17474.          */
  17475.         [
  17476.              propget
  17477.             ,helpcontext(0x101B0008)
  17478.             ,helpstring("Returns the name of the object, as a string.")
  17479.         ]
  17480.         HRESULT  Name(
  17481.             [out, retval] BSTR* prop // The name of the object.
  17482.             );
  17483.  
  17484.         /**
  17485.          * Sets the name of the object.
  17486.          */
  17487.         [
  17488.              propput
  17489.             ,helpcontext(0x101B0008)
  17490.             ,helpstring("Sets the name of the object.")
  17491.         ]
  17492.         HRESULT  Name(
  17493.             [in] BSTR prop // The name of the object.
  17494.             );
  17495.  
  17496.         /**
  17497.          * Returns the parent object for the specified object.
  17498.          */
  17499.         [
  17500.              propget
  17501.             ,helpcontext(0x101B0009)
  17502.             ,helpstring("Returns the parent object for the specified object.")
  17503.         ]
  17504.         HRESULT  Parent(
  17505.             [out, retval] IDispatch** prop // The parent object.
  17506.             );
  17507.  
  17508.         /**
  17509.          * Returns the red value of the color.
  17510.          */
  17511.         [
  17512.              propget
  17513.             ,helpcontext(0x101B000A)
  17514.             ,helpstring("Returns the red value of the color.")
  17515.         ]
  17516.         HRESULT  Red(
  17517.             [out, retval] double* prop // The red value, in the range 0..1.
  17518.             );
  17519.  
  17520.         /**
  17521.          * Sets the red value of the color.
  17522.          */
  17523.         [
  17524.              propput
  17525.             ,helpcontext(0x101B000A)
  17526.             ,helpstring("Sets the red value of the color.")
  17527.         ]
  17528.         HRESULT  Red(
  17529.             [in] double prop // The red value, in the range 0..1.
  17530.             );
  17531.  
  17532.         /**
  17533.          * Returns the saturation value of the color.
  17534.          */
  17535.         [
  17536.              propget
  17537.             ,helpcontext(0x101B000B)
  17538.             ,helpstring("Returns the saturation value of the color.")
  17539.         ]
  17540.         HRESULT  Saturation(
  17541.             [out, retval] double* prop // The saturation value, in the range 0..1.
  17542.             );
  17543.  
  17544.         /**
  17545.          * Sets the saturation value of the color.
  17546.          */
  17547.         [
  17548.              propput
  17549.             ,helpcontext(0x101B000B)
  17550.             ,helpstring("Sets the saturation value of the color.")
  17551.         ]
  17552.         HRESULT  Saturation(
  17553.             [in] double prop // The saturation value, in the range 0..1.
  17554.             );
  17555.  
  17556.         /**
  17557.          * Returns the internal table entry ID.
  17558.          * Private.
  17559.          */
  17560.         [
  17561.              propget
  17562.             ,restricted
  17563.             ,helpcontext(0x101B000C)
  17564.             ,helpstring("Private.  Returns the internal table entry ID.")
  17565.         ]
  17566.         HRESULT  _TableEntryID(
  17567.             [out, retval] long* prop // The table entry ID.
  17568.             );
  17569.  
  17570.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17571.  
  17572.         /**
  17573.          * Deletes the object.
  17574.          */
  17575.         [
  17576.              helpcontext(0x101B000D)
  17577.             ,helpstring("Deletes the object.")
  17578.         ]
  17579.         HRESULT  Delete(
  17580.             );
  17581.  
  17582.         /**
  17583.          * Duplicates the object and returns a reference to the new copy.
  17584.          */
  17585.         [
  17586.              helpcontext(0x101B000E)
  17587.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  17588.         ]
  17589.         HRESULT  Duplicate(
  17590.             [in] BSTR Name, // The name of the NamedColor object.
  17591.             [out, retval] NamedColor** prop // The duplicated NamedColor object.
  17592.             );
  17593.  
  17594.     };
  17595.  
  17596.     /**
  17597.      * The collection of NamedColor objects.
  17598.      */
  17599.     [
  17600.          object
  17601.         ,uuid(6A48111E-E531-11CF-A115-00A024158DAF)
  17602.         ,oleautomation
  17603.         ,dual
  17604.         ,helpcontext(0x101C0000)
  17605.         ,helpstring("The collection of NamedColor objects.")
  17606.     ]
  17607.     interface NamedColors : IDispatch
  17608.     {
  17609.  
  17610.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17611.  
  17612.         /**
  17613.          * Returns an Application object that represents the owner of the specified object.
  17614.          */
  17615.         [
  17616.              propget
  17617.             ,helpcontext(0x101C0001)
  17618.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17619.         ]
  17620.         HRESULT  Application(
  17621.             [out, retval] IApplication** prop // The Application object.
  17622.             );
  17623.  
  17624.         /**
  17625.          * Returns the number of items in the collection.
  17626.          */
  17627.         [
  17628.              propget
  17629.             ,helpcontext(0x101C0002)
  17630.             ,helpstring("Returns the number of items in the collection.")
  17631.         ]
  17632.         HRESULT  Count(
  17633.             [out, retval] long* prop // The number of items.
  17634.             );
  17635.  
  17636.         /**
  17637.          * Returns part of a collection.
  17638.          */
  17639.         [
  17640.              propget
  17641.             ,id(DISPID_VALUE)
  17642.             ,helpcontext(0x101C0003)
  17643.             ,helpstring("Returns part of a collection.")
  17644.         ]
  17645.         HRESULT  Item(
  17646.             [in] VARIANT* Index, // Index of item to return.
  17647.             [out, retval] NamedColor** prop // The item.
  17648.             );
  17649.  
  17650.         /**
  17651.          * Returns the parent object for the specified object.
  17652.          */
  17653.         [
  17654.              propget
  17655.             ,helpcontext(0x101C0004)
  17656.             ,helpstring("Returns the parent object for the specified object.")
  17657.         ]
  17658.         HRESULT  Parent(
  17659.             [out, retval] IDispatch** prop // The parent object.
  17660.             );
  17661.  
  17662.         /**
  17663.          * Creates an enumeration object.
  17664.          */
  17665.         [
  17666.              propget
  17667.             ,restricted
  17668.             ,id(DISPID_NEWENUM)
  17669.             ,helpcontext(0x101C0005)
  17670.             ,helpstring("Private.  Creates an enumeration object.")
  17671.         ]
  17672.         HRESULT  _NewEnum(
  17673.             [out, retval] IUnknown** prop // The enumeration object.
  17674.             );
  17675.  
  17676.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17677.  
  17678.         /**
  17679.          * Adds a new NamedColor object to the collection.
  17680.          */
  17681.         [
  17682.              helpcontext(0x101C0006)
  17683.             ,helpstring("Adds a new NamedColor object to the collection.")
  17684.         ]
  17685.         HRESULT  Add(
  17686.             [in] BSTR Name, // The name of the NamedColor object.
  17687.             [in] IMSI_COLOR Color, // The RGB value of the NamedColor object.
  17688.             [out, retval] NamedColor** prop // The newly created NamedColor object.
  17689.             );
  17690.  
  17691.         /**
  17692.          * Returns the index within the table collection of the specified table entry.
  17693.          * Private.
  17694.          */
  17695.         [
  17696.              restricted
  17697.             ,helpcontext(0x101C0007)
  17698.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  17699.         ]
  17700.         HRESULT  _FindIndex(
  17701.             [in] long TableEntryID, // The internal table ID.
  17702.             [out, retval] long* prop // The zero based index.
  17703.             );
  17704.  
  17705.         /**
  17706.          * Returns an object from the table collection for the specified table entry.
  17707.          * Private.
  17708.          */
  17709.         [
  17710.              restricted
  17711.             ,helpcontext(0x101C0008)
  17712.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  17713.         ]
  17714.         HRESULT  _ObjectFromID(
  17715.             [in] long TableEntryID, // The internal table ID.
  17716.             [out, retval] NamedColor** prop // The object.
  17717.             );
  17718.     };
  17719.  
  17720.     /**
  17721.      * A collection of drawing scales.
  17722.      */
  17723.     [
  17724.          object
  17725.         ,restricted, hidden
  17726.         ,uuid(6A481130-E531-11CF-A115-00A024158DAF)
  17727.         ,oleautomation
  17728.         ,dual
  17729.         ,helpcontext(0x101D0000)
  17730.         ,helpstring("A collection of drawing scales.")
  17731.     ]
  17732.     interface ScaleSystem : IDispatch
  17733.     {
  17734.  
  17735.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17736.  
  17737.         /**
  17738.          * Returns an Application object that represents the owner of the specified object.
  17739.          */
  17740.         [
  17741.              propget
  17742.             ,helpcontext(0x101D0001)
  17743.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17744.         ]
  17745.         HRESULT  Application(
  17746.             [out, retval] IApplication** prop // The Application object.
  17747.             );
  17748.  
  17749.         /**
  17750.          * Returns the number of items in the collection.
  17751.          */
  17752.         [
  17753.              propget
  17754.             ,helpcontext(0x101D0002)
  17755.             ,helpstring("Returns the number of items in the collection.")
  17756.         ]
  17757.         HRESULT  Count(
  17758.             [out, retval] long* prop // The number of items.
  17759.             );
  17760.  
  17761.         /**
  17762.          * Returns the index of the item in the collection.
  17763.          */
  17764.         [
  17765.              propget
  17766.             ,helpcontext(0x101D0003)
  17767.             ,helpstring("Returns the index of the item in the collection.")
  17768.         ]
  17769.         HRESULT  Index(
  17770.             [out, retval] long* prop // The index.
  17771.             );
  17772.  
  17773.         /**
  17774.          * Returns part of a collection.
  17775.          */
  17776.         [
  17777.              propget
  17778.             ,id(DISPID_VALUE)
  17779.             ,helpcontext(0x101D0004)
  17780.             ,helpstring("Returns part of a collection.")
  17781.         ]
  17782.         HRESULT  Item(
  17783.             [in] VARIANT* Index, // Index of item to return.
  17784.             [out, retval] BSTR* prop // The item.
  17785.             );
  17786.  
  17787.         /**
  17788.          * Returns the name of the object, as a string.
  17789.          */
  17790.         [
  17791.              propget
  17792.             ,helpcontext(0x101D0005)
  17793.             ,helpstring("Returns the name of the object, as a string.")
  17794.         ]
  17795.         HRESULT  Name(
  17796.             [out, retval] BSTR* prop // The name of the object.
  17797.             );
  17798.  
  17799.         /**
  17800.          * Returns the parent object for the specified object.
  17801.          */
  17802.         [
  17803.              propget
  17804.             ,helpcontext(0x101D0006)
  17805.             ,helpstring("Returns the parent object for the specified object.")
  17806.         ]
  17807.         HRESULT  Parent(
  17808.             [out, retval] IDispatch** prop // The parent object.
  17809.             );
  17810.  
  17811.         /**
  17812.          * Returns the internal table entry ID.
  17813.          * Private.
  17814.          */
  17815.         [
  17816.              propget
  17817.             ,restricted
  17818.             ,helpcontext(0x101D0007)
  17819.             ,helpstring("Private.  Returns the internal table entry ID.")
  17820.         ]
  17821.         HRESULT  _TableEntryID(
  17822.             [out, retval] long* prop // The table entry ID.
  17823.             );
  17824.  
  17825.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17826.  
  17827.         /**
  17828.          * Deletes the object.
  17829.          */
  17830.         [
  17831.              helpcontext(0x101D0008)
  17832.             ,helpstring("Deletes the object.")
  17833.         ]
  17834.         HRESULT  Delete(
  17835.             );
  17836.  
  17837.     };
  17838.  
  17839.     /**
  17840.      * The collection of ScaleSystem objects.
  17841.      */
  17842.     [
  17843.          object
  17844.         ,restricted, hidden
  17845.         ,uuid(6A481131-E531-11CF-A115-00A024158DAF)
  17846.         ,oleautomation
  17847.         ,dual
  17848.         ,helpcontext(0x101E0000)
  17849.         ,helpstring("The collection of ScaleSystem objects.")
  17850.     ]
  17851.     interface ScaleSystems : IDispatch
  17852.     {
  17853.  
  17854.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17855.  
  17856.         /**
  17857.          * Returns an Application object that represents the owner of the specified object.
  17858.          */
  17859.         [
  17860.              propget
  17861.             ,helpcontext(0x101E0001)
  17862.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  17863.         ]
  17864.         HRESULT  Application(
  17865.             [out, retval] IApplication** prop // The Application object.
  17866.             );
  17867.  
  17868.         /**
  17869.          * Returns the number of items in the collection.
  17870.          */
  17871.         [
  17872.              propget
  17873.             ,helpcontext(0x101E0002)
  17874.             ,helpstring("Returns the number of items in the collection.")
  17875.         ]
  17876.         HRESULT  Count(
  17877.             [out, retval] long* prop // The number of items.
  17878.             );
  17879.  
  17880.         /**
  17881.          * Returns part of a collection.
  17882.          */
  17883.         [
  17884.              propget
  17885.             ,id(DISPID_VALUE)
  17886.             ,helpcontext(0x101E0003)
  17887.             ,helpstring("Returns part of a collection.")
  17888.         ]
  17889.         HRESULT  Item(
  17890.             [in] VARIANT* Index, // Index of item to return.
  17891.             [out, retval] ScaleSystem** prop // The item.
  17892.             );
  17893.  
  17894.         /**
  17895.          * Returns the parent object for the specified object.
  17896.          */
  17897.         [
  17898.              propget
  17899.             ,helpcontext(0x101E0004)
  17900.             ,helpstring("Returns the parent object for the specified object.")
  17901.         ]
  17902.         HRESULT  Parent(
  17903.             [out, retval] IDispatch** prop // The parent object.
  17904.             );
  17905.  
  17906.         /**
  17907.          * Creates an enumeration object.
  17908.          */
  17909.         [
  17910.              propget
  17911.             ,restricted
  17912.             ,id(DISPID_NEWENUM)
  17913.             ,helpcontext(0x101E0005)
  17914.             ,helpstring("Private.  Creates an enumeration object.")
  17915.         ]
  17916.         HRESULT  _NewEnum(
  17917.             [out, retval] IUnknown** prop // The enumeration object.
  17918.             );
  17919.  
  17920.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17921.  
  17922.     };
  17923.  
  17924.     /**
  17925.      * A TurboCAD grid.
  17926.      */
  17927.     [
  17928.          object
  17929.         ,restricted, hidden
  17930.         ,uuid(6A481132-E531-11CF-A115-00A024158DAF)
  17931.         ,oleautomation
  17932.         ,dual
  17933.         ,helpcontext(0x101F0000)
  17934.         ,helpstring("A TurboCAD grid.")
  17935.     ]
  17936.     interface IGrid : IDispatch
  17937.     {
  17938.  
  17939.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17940.  
  17941.         /**
  17942.          * Returns the Grid object's type.
  17943.          */
  17944.         [
  17945.              propget
  17946.             ,helpcontext(0x101F0001)
  17947.             ,helpstring("Returns the Grid object's type.")
  17948.         ]
  17949.         HRESULT  Type(
  17950.             [out, retval] ImsiGridType* prop // The type.
  17951.             );
  17952.  
  17953.         /**
  17954.          * Sets the Grid object's type.
  17955.          */
  17956.         [
  17957.              propput
  17958.             ,helpcontext(0x101F0001)
  17959.             ,helpstring("Sets the Grid object's type.")
  17960.         ]
  17961.         HRESULT  Type(
  17962.             [in] ImsiGridType prop // The type.
  17963.             );
  17964.  
  17965.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17966.  
  17967.         /**
  17968.          * Duplicates the object and returns a reference to the new copy.
  17969.          */
  17970.         [
  17971.              helpcontext(0x101F0002)
  17972.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  17973.         ]
  17974.         HRESULT  Duplicate(
  17975.             [out, retval] IGrid** prop // The duplicated Grid object.
  17976.             );
  17977.  
  17978.     };
  17979.  
  17980.     /**
  17981.      * An object that holds the page setup settings for a Drawing object.
  17982.      */
  17983.     [
  17984.          object
  17985.         ,uuid(6A481133-E531-11CF-A115-00A024158DAF)
  17986.         ,oleautomation
  17987.         ,dual
  17988.         ,helpcontext(0x10200000)
  17989.         ,helpstring("An object that holds the page setup settings for a Drawing object.")
  17990.     ]
  17991.     interface PageSetup : IDispatch
  17992.     {
  17993.  
  17994.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  17995.  
  17996.         /**
  17997.          * Returns an Application object that represents the owner of the specified object.
  17998.          */
  17999.         [
  18000.              propget
  18001.             ,helpcontext(0x10200001)
  18002.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18003.         ]
  18004.         HRESULT  Application(
  18005.             [out, retval] IApplication** prop // The Application object.
  18006.             );
  18007.  
  18008.         /**
  18009.          * Returns the size of the bottom margin, in millimeters.
  18010.          */
  18011.         [
  18012.              propget
  18013.             ,helpcontext(0x10200002)
  18014.             ,helpstring("Returns the size of the bottom margin, in millimeters.")
  18015.         ]
  18016.         HRESULT  BottomMargin(
  18017.             [out, retval] double* prop // The bottom margin, in millimeters.
  18018.             );
  18019.  
  18020.         /**
  18021.          * Sets the size of the bottom margin, in millimeters.
  18022.          */
  18023.         [
  18024.              propput
  18025.             ,helpcontext(0x10200002)
  18026.             ,helpstring("Sets the size of the bottom margin, in millimeters.")
  18027.         ]
  18028.         HRESULT  BottomMargin(
  18029.             [in] double prop // The bottom margin, in millimeters.
  18030.             );
  18031.  
  18032.         /**
  18033.          * Returns the number of columns necessary to tile the sheet height.
  18034.          */
  18035.         [
  18036.              propget
  18037.             ,helpcontext(0x10200003)
  18038.             ,helpstring("Returns the number of columns necessary to tile the sheet height.")
  18039.         ]
  18040.         HRESULT  Columns(
  18041.             [out, retval] SHORT* prop // The number of columns.
  18042.             );
  18043.  
  18044.         /**
  18045.          * Sets the number of columns necessary to tile the sheet height.
  18046.          */
  18047.         [
  18048.              propput
  18049.             ,helpcontext(0x10200003)
  18050.             ,helpstring("Sets the number of columns necessary to tile the sheet height.")
  18051.         ]
  18052.         HRESULT  Columns(
  18053.             [in] SHORT prop // The number of columns.
  18054.             );
  18055.  
  18056.         /**
  18057.          * Returns the Drawing object that owns the object.
  18058.          */
  18059.         [
  18060.              propget
  18061.             ,helpcontext(0x10200004)
  18062.             ,helpstring("Returns the Drawing object that owns the object.")
  18063.         ]
  18064.         HRESULT  Drawing(
  18065.             [out, retval] IDrawing** prop // The Drawing object.
  18066.             );
  18067.  
  18068.         /**
  18069.          * Returns the size of the left margin, in millimeters.
  18070.          */
  18071.         [
  18072.              propget
  18073.             ,helpcontext(0x10200005)
  18074.             ,helpstring("Returns the size of the left margin, in millimeters.")
  18075.         ]
  18076.         HRESULT  LeftMargin(
  18077.             [out, retval] double* prop // The left margin, in millimeters.
  18078.             );
  18079.  
  18080.         /**
  18081.          * Sets the size of the left margin, in millimeters.
  18082.          */
  18083.         [
  18084.              propput
  18085.             ,helpcontext(0x10200005)
  18086.             ,helpstring("Sets the size of the left margin, in millimeters.")
  18087.         ]
  18088.         HRESULT  LeftMargin(
  18089.             [in] double prop // The left margin, in millimeters.
  18090.             );
  18091.  
  18092.         /**
  18093.          * Returns the parent object for the specified object.
  18094.          */
  18095.         [
  18096.              propget
  18097.             ,helpcontext(0x10200006)
  18098.             ,helpstring("Returns the parent object for the specified object.")
  18099.         ]
  18100.         HRESULT  Parent(
  18101.             [out, retval] IDrawing** prop // The parent object.
  18102.             );
  18103.  
  18104.         /**
  18105.          * Returns the printer paper height, in millimeters.
  18106.          */
  18107.         [
  18108.              propget
  18109.             ,helpcontext(0x10200007)
  18110.             ,helpstring("Returns the printer paper height, in millimeters.")
  18111.         ]
  18112.         HRESULT  PrinterHeight(
  18113.             [out, retval] double* prop // The height, in millimeters.
  18114.             );
  18115.  
  18116.         /**
  18117.          * Sets the printer paper height, in millimeters.
  18118.          */
  18119.         [
  18120.              propput
  18121.             ,helpcontext(0x10200007)
  18122.             ,helpstring("Sets the printer paper height, in millimeters.")
  18123.         ]
  18124.         HRESULT  PrinterHeight(
  18125.             [in] double prop // The height, in millimeters.
  18126.             );
  18127.  
  18128.         /**
  18129.          * Returns the printer paper orientation.
  18130.          */
  18131.         [
  18132.              propget
  18133.             ,helpcontext(0x10200008)
  18134.             ,helpstring("Returns the printer paper orientation.")
  18135.         ]
  18136.         HRESULT  PrinterOrientation(
  18137.             [out, retval] ImsiOrientation* prop // The orientation.
  18138.             );
  18139.  
  18140.         /**
  18141.          * Sets the printer paper orientation.
  18142.          */
  18143.         [
  18144.              propput
  18145.             ,helpcontext(0x10200008)
  18146.             ,helpstring("Sets the printer paper orientation.")
  18147.         ]
  18148.         HRESULT  PrinterOrientation(
  18149.             [in] ImsiOrientation prop // The orientation.
  18150.             );
  18151.  
  18152.         /**
  18153.          * Sets the printer paper size from a string.
  18154.          */
  18155.         [
  18156.              propput
  18157.             ,helpcontext(0x10200009)
  18158.             ,helpstring("Sets the printer paper size from a string.")
  18159.             ,restricted, hidden
  18160.         ]
  18161.         HRESULT  PrinterSize(
  18162.             [in] BSTR prop // The size string.
  18163.             );
  18164.  
  18165.         /**
  18166.          * Returns the printer paper width, in millimeters.
  18167.          */
  18168.         [
  18169.              propget
  18170.             ,helpcontext(0x1020000A)
  18171.             ,helpstring("Returns the printer paper width, in millimeters.")
  18172.         ]
  18173.         HRESULT  PrinterWidth(
  18174.             [out, retval] double* prop // The width, in millimeters.
  18175.             );
  18176.  
  18177.         /**
  18178.          * Sets the printer paper width, in millimeters.
  18179.          */
  18180.         [
  18181.              propput
  18182.             ,helpcontext(0x1020000A)
  18183.             ,helpstring("Sets the printer paper width, in millimeters.")
  18184.         ]
  18185.         HRESULT  PrinterWidth(
  18186.             [in] double prop // The width, in millimeters.
  18187.             );
  18188.  
  18189.         /**
  18190.          * Returns the size of the right margin, in millimeters.
  18191.          */
  18192.         [
  18193.              propget
  18194.             ,helpcontext(0x1020000B)
  18195.             ,helpstring("Returns the size of the right margin, in millimeters.")
  18196.         ]
  18197.         HRESULT  RightMargin(
  18198.             [out, retval] double* prop // The right margin, in millimeters.
  18199.             );
  18200.  
  18201.         /**
  18202.          * Sets the size of the right margin, in millimeters.
  18203.          */
  18204.         [
  18205.              propput
  18206.             ,helpcontext(0x1020000B)
  18207.             ,helpstring("Sets the size of the right margin, in millimeters.")
  18208.         ]
  18209.         HRESULT  RightMargin(
  18210.             [in] double prop // The right margin, in millimeters.
  18211.             );
  18212.  
  18213.         /**
  18214.          * Returns the number of rows necessary to tile the sheet width.
  18215.          */
  18216.         [
  18217.              propget
  18218.             ,helpcontext(0x1020000C)
  18219.             ,helpstring("Returns the number of rows necessary to tile the sheet width.")
  18220.         ]
  18221.         HRESULT  Rows(
  18222.             [out, retval] SHORT* prop // The number of rows.
  18223.             );
  18224.  
  18225.         /**
  18226.          * Sets the number of rows necessary to tile the sheet width.
  18227.          */
  18228.         [
  18229.              propput
  18230.             ,helpcontext(0x1020000C)
  18231.             ,helpstring("Sets the number of rows necessary to tile the sheet width.")
  18232.         ]
  18233.         HRESULT  Rows(
  18234.             [in] SHORT prop // The number of rows.
  18235.             );
  18236.  
  18237.         /**
  18238.          * Returns the drawing scale.
  18239.          */
  18240.         [
  18241.              propget
  18242.             ,helpcontext(0x1020000D)
  18243.             ,helpstring("Returns the dwawing scale.")
  18244.         ]
  18245.         HRESULT  Scale(
  18246.             [out, retval] double* prop // The drawing scale.
  18247.             );
  18248.  
  18249.         /**
  18250.          * Sets the drawing scale, as a number or string.
  18251.          */
  18252.         [
  18253.              propput
  18254.             ,helpcontext(0x1020000D)
  18255.             ,helpstring("Sets the drawing scale, as a number or string.")
  18256.         ]
  18257.         HRESULT  Scale(
  18258.             [in] VARIANT* prop // The drawing scale, as a number or string.
  18259.             );
  18260.  
  18261.         /**
  18262.          * Returns the sheet height, in millimeters.
  18263.          */
  18264.         [
  18265.              propget
  18266.             ,helpcontext(0x1020000E)
  18267.             ,helpstring("Returns the sheet height, in millimeters.")
  18268.         ]
  18269.         HRESULT  SheetHeight(
  18270.             [out, retval] double* prop // The height, in millimeters.
  18271.             );
  18272.  
  18273.         /**
  18274.          * Sets the sheet height, in millimeters.
  18275.          */
  18276.         [
  18277.              propput
  18278.             ,helpcontext(0x1020000E)
  18279.             ,helpstring("Sets the sheet height, in millimeters.")
  18280.         ]
  18281.         HRESULT  SheetHeight(
  18282.             [in] double prop // The height, in millimeters.
  18283.             );
  18284.  
  18285.         /**
  18286.          * Returns the sheet orientation.
  18287.          */
  18288.         [
  18289.              propget
  18290.             ,helpcontext(0x1020000F)
  18291.             ,helpstring("Returns the sheet orientation.")
  18292.         ]
  18293.         HRESULT  SheetOrientation(
  18294.             [out, retval] ImsiOrientation* prop // The orientation.
  18295.             );
  18296.  
  18297.         /**
  18298.          * Sets the sheet orientation.
  18299.          */
  18300.         [
  18301.              propput
  18302.             ,helpcontext(0x1020000F)
  18303.             ,helpstring("Sets the sheet orientation.")
  18304.         ]
  18305.         HRESULT  SheetOrientation(
  18306.             [in] ImsiOrientation prop // The orientation.
  18307.             );
  18308.  
  18309.         /**
  18310.          * Returns the sheet width, in millimeters.
  18311.          */
  18312.         [
  18313.              propget
  18314.             ,helpcontext(0x10200010)
  18315.             ,helpstring("Returns the sheet width, in millimeters.")
  18316.         ]
  18317.         HRESULT  SheetWidth(
  18318.             [out, retval] double* prop // The width, in millimeters.
  18319.             );
  18320.  
  18321.         /**
  18322.          * Sets the sheet width, in millimeters.
  18323.          */
  18324.         [
  18325.              propput
  18326.             ,helpcontext(0x10200010)
  18327.             ,helpstring("Sets the sheet width, in millimeters.")
  18328.         ]
  18329.         HRESULT  SheetWidth(
  18330.             [in] double prop // The width, in millimeters.
  18331.             );
  18332.  
  18333.         /**
  18334.          * Returns the size of the top margin, in millimeters.
  18335.          */
  18336.         [
  18337.              propget
  18338.             ,helpcontext(0x10200011)
  18339.             ,helpstring("Returns the size of the top margin, in millimeters.")
  18340.         ]
  18341.         HRESULT  TopMargin(
  18342.             [out, retval] double* prop // The top margin, in millimeters.
  18343.             );
  18344.  
  18345.         /**
  18346.          * Sets the size of the top margin, in millimeters.
  18347.          */
  18348.         [
  18349.              propput
  18350.             ,helpcontext(0x10200011)
  18351.             ,helpstring("Sets the size of the top margin, in millimeters.")
  18352.         ]
  18353.         HRESULT  TopMargin(
  18354.             [in] double prop // The top margin, in millimeters.
  18355.             );
  18356.  
  18357.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18358.  
  18359.         /**
  18360.          * Adjusts the scale to fit the specified area on one page.
  18361.          */
  18362.         [
  18363.              helpcontext(0x10200012)
  18364.             ,helpstring("Adjusts the scale to fit the specified area on one page.")
  18365.             ,restricted, hidden
  18366.         ]
  18367.         HRESULT  FitOnOnePage(
  18368.             [in] double Width, // Width of object in world coordinates.
  18369.             [in] double Height // Height of object in world coordinates.
  18370.             );
  18371.  
  18372.         /**
  18373.          * Gets the available printer paper sizes.
  18374.          */
  18375.         [
  18376.              helpcontext(0x10200013)
  18377.             ,helpstring("Gets the available printer paper sizes.")
  18378.             ,restricted, hidden
  18379.         ]
  18380.         HRESULT  GetPrinterSizes(
  18381.             [out] VARIANT* Sizes // An array of strings.
  18382.             );
  18383.     };
  18384.  
  18385.     /**
  18386.      * An open undo record in a Drawing object.
  18387.      */
  18388.     [
  18389.          object
  18390.         ,uuid(6A481136-E531-11CF-A115-00A024158DAF)
  18391.         ,oleautomation
  18392.         ,dual
  18393.         ,helpcontext(0x10210000)
  18394.         ,helpstring("An open undo record in a Drawing object.")
  18395.     ]
  18396.     interface UndoRecord : IDispatch
  18397.     {
  18398.  
  18399.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18400.  
  18401.         /**
  18402.          * Returns an Application object that represents the owner of the specified object.
  18403.          */
  18404.         [
  18405.              propget
  18406.             ,helpcontext(0x10210001)
  18407.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18408.         ]
  18409.         HRESULT  Application(
  18410.             [out, retval] IApplication** prop // The Application object.
  18411.             );
  18412.  
  18413.         /**
  18414.          * Returns the Drawing object that owns the object.
  18415.          */
  18416.         [
  18417.              propget
  18418.             ,helpcontext(0x10210002)
  18419.             ,helpstring("Returns the Drawing object that owns the object.")
  18420.         ]
  18421.         HRESULT  Drawing(
  18422.             [out, retval] IDrawing** prop // The Drawing object.
  18423.             );
  18424.  
  18425.         /**
  18426.          * Returns the string that will appear in the Undo menu item.
  18427.          */
  18428.         [
  18429.              propget
  18430.             ,helpcontext(0x10210003)
  18431.             ,helpstring("Returns the string that will appear in the Undo menu item.")
  18432.         ]
  18433.         HRESULT  MenuText(
  18434.             [out, retval] BSTR* prop // The menu string.
  18435.             );
  18436.  
  18437.         /**
  18438.          * Sets the string that will appear in the Undo menu item.
  18439.          */
  18440.         [
  18441.              propput
  18442.             ,helpcontext(0x10210003)
  18443.             ,helpstring("Returns the string that will appear in the Undo menu item.")
  18444.         ]
  18445.         HRESULT  MenuText(
  18446.             [in] BSTR prop // The menu string.
  18447.             );
  18448.  
  18449.         /**
  18450.          * Returns the parent object for the specified object.
  18451.          */
  18452.         [
  18453.              propget
  18454.             ,helpcontext(0x10210004)
  18455.             ,helpstring("Returns the parent object for the specified object.")
  18456.         ]
  18457.         HRESULT  Parent(
  18458.             [out, retval] IDispatch** prop // The parent object.
  18459.             );
  18460.  
  18461.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18462.  
  18463.         /**
  18464.          * Adds a Graphic object reference to the URecObj.
  18465.          */
  18466.  
  18467.         /**
  18468.          * TCADAPI UndoRecordAddGraphic function.
  18469.          */
  18470.         [
  18471.              helpcontext(0x10210005)
  18472.             ,helpstring("Adds a Graphic object reference to the URecObj.")
  18473.         ]
  18474.         HRESULT  AddGraphic(
  18475.             [in] IGraphic* Graphic // The Graphic object to delete when Undo is called.
  18476.             );
  18477.  
  18478.         /**
  18479.          * Adds a purged reference to the Graphic object to the URecObj.
  18480.          */
  18481.  
  18482.         [
  18483.              helpcontext(0x10210006)
  18484.             ,helpstring("Adds a purged reference to the Graphic object to the URecObj.")
  18485.         ]
  18486.         HRESULT  AddGraphicForModify(
  18487.             [in] IGraphic* Graphic // The Graphic object to restore when Undo is called.
  18488.             );
  18489.  
  18490.         /**
  18491.          * Closes the URecObj and adds it to the Drawing object's Undo stack.
  18492.          */
  18493.  
  18494.         /**
  18495.          * TCADAPI UndoRecordEnd function.
  18496.          */
  18497.         [
  18498.              helpcontext(0x10210007)
  18499.             ,helpstring("Closes the URecObj and adds it to the Drawing object's Undo stack.")
  18500.         ]
  18501.         HRESULT  Close(
  18502.             );
  18503.  
  18504.         /**
  18505.          * Deletes the object.
  18506.          */
  18507.         [
  18508.              helpcontext(0x10210008)
  18509.             ,helpstring("Deletes the object.")
  18510.         ]
  18511.         HRESULT  Delete(
  18512.             );
  18513.  
  18514.         /**
  18515.          * Deletes the Graphic object, adding a purged reference to the URecObj.
  18516.          */
  18517.  
  18518.         [
  18519.              helpcontext(0x10210009)
  18520.             ,helpstring("Deletes the Graphic object, adding a purged reference to the URecObj.")
  18521.         ]
  18522.         HRESULT  DeleteGraphic(
  18523.             [in] IGraphic* Graphic // The Graphic object to add when Undo is called.
  18524.             );
  18525.  
  18526.         /**
  18527.          * Deletes the Graphics collection, adding a purged references to the URecObj.
  18528.          */
  18529.  
  18530.         [
  18531.              helpcontext(0x10210009)
  18532.             ,helpstring("Deletes the Graphics collection, adding a purged references to the URecObj.")
  18533.         ]
  18534.         HRESULT  DeleteGraphics(
  18535.              [in]            Graphics* pGrs // The Graphics collection to add when Undo is called.
  18536.             ,[in, optional]    VARIANT* pvarFlags
  18537.             );
  18538.     };
  18539.  
  18540.     /**
  18541.      * A transformation matrix.
  18542.      */
  18543.     [
  18544.          object
  18545.         ,uuid(6A481137-E531-11CF-A115-00A024158DAF)
  18546.         ,oleautomation
  18547.         ,dual
  18548.         ,helpcontext(0x10220000)
  18549.         ,helpstring("A transformation matrix.")
  18550.     ]
  18551.     interface IMatrix : IDispatch
  18552.     {
  18553.  
  18554.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18555.  
  18556.         /**
  18557.          * Returns the entry 'e' whith indexes 'i'(row), 'j'(col)
  18558.          */
  18559.         [
  18560.              helpcontext(0x10220001)
  18561.             ,helpstring("Returns the entry whith indexes i(row),j(col).")
  18562.         ]
  18563.         HRESULT  GetEntry(
  18564.             [in] int i, // The x scale factor.
  18565.             [in] int j, // The y scale factor.
  18566.             [out, retval] double* e // The entry value.
  18567.             );
  18568.  
  18569.         /**
  18570.          * Set the entry 'e' whith indexes 'i'(row), 'j'(col)
  18571.          */
  18572.         [
  18573.              helpcontext(0x10220002)
  18574.             ,helpstring("set the entry whith indexes i(row),j(col).")
  18575.         ]
  18576.         HRESULT  SetEntry(
  18577.             [in] int i, // The x scale factor.
  18578.             [in] int j, // The y scale factor.
  18579.             [in] double e // New entry value.
  18580.             );
  18581.  
  18582.  
  18583.         /**
  18584.          * Returns the all entries
  18585.          */
  18586.         [
  18587.              helpcontext(0x10220003)
  18588.             ,helpstring("Returns all entries.")
  18589.         ]
  18590.         HRESULT  GetEntries(
  18591.             [out] double* e00, // The entry value.
  18592.             [out] double* e01, // The entry value.
  18593.             [out] double* e02, // The entry value.
  18594.             [out] double* e03, // The entry value.
  18595.  
  18596.             [out] double* e10, // The entry value.
  18597.             [out] double* e11, // The entry value.
  18598.             [out] double* e12, // The entry value.
  18599.             [out] double* e13, // The entry value.
  18600.  
  18601.             [out] double* e20, // The entry value.
  18602.             [out] double* e21, // The entry value.
  18603.             [out] double* e22, // The entry value.
  18604.             [out] double* e23, // The entry value.
  18605.  
  18606.             [out] double* e30, // The entry value.
  18607.             [out] double* e31, // The entry value.
  18608.             [out] double* e32, // The entry value.
  18609.             [out] double* e33 // The entry value.
  18610.             );
  18611.  
  18612.  
  18613.         /**
  18614.          * Set the all entries
  18615.          */
  18616.         [
  18617.              helpcontext(0x10220004)
  18618.             ,helpstring("Set the all entries.")
  18619.         ]
  18620.         HRESULT  SetEntries(
  18621.             [in] double e00, // The entry value.
  18622.             [in] double e01, // The entry value.
  18623.             [in] double e02, // The entry value.
  18624.             [in] double e03, // The entry value.
  18625.  
  18626.             [in] double e10, // The entry value.
  18627.             [in] double e11, // The entry value.
  18628.             [in] double e12, // The entry value.
  18629.             [in] double e13, // The entry value.
  18630.  
  18631.             [in] double e20, // The entry value.
  18632.             [in] double e21, // The entry value.
  18633.             [in] double e22, // The entry value.
  18634.             [in] double e23, // The entry value.
  18635.  
  18636.             [in] double e30, // The entry value.
  18637.             [in] double e31, // The entry value.
  18638.             [in] double e32,  // The entry value.
  18639.             [in] double e33 // The entry value.
  18640.             );
  18641.  
  18642. //////////////////////////////////////////////
  18643.  
  18644.         /**
  18645.          * Returns the internal handle associated with the Drawing object.
  18646.          * Private.
  18647.          */
  18648.         [
  18649.              propget
  18650.             ,restricted
  18651.             ,helpcontext(0x10220005)
  18652.             ,helpstring("Private.  Returns the internal handle associated with the Drawing object.")
  18653.         ]
  18654.         HRESULT  _Handle(
  18655.             [out, retval] long* prop // The internal handle.
  18656.             );
  18657.  
  18658.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18659.  
  18660.         /**
  18661.          * Duplicates the object and returns a reference to the new copy.
  18662.          */
  18663.         [
  18664.              helpcontext(0x10220006)
  18665.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  18666.         ]
  18667.         HRESULT  Duplicate(
  18668.             [out, retval] IMatrix** prop // The duplicated Matrix object.
  18669.             );
  18670.  
  18671.         /**
  18672.          * Fills an array with the values of a 4x4 matrix.
  18673.          */
  18674.         [
  18675.              helpcontext(0x10220007)
  18676.             ,helpstring("Fills an array with the values of a 4x4 matrix.")
  18677.         ]
  18678.         HRESULT  GetArray(
  18679.             [in, out] VARIANT* ArrayEntries // An array of 16 doubles.
  18680.             );
  18681.  
  18682.         /**
  18683.          * Sets the Matrix object to an identity matrix.
  18684.          */
  18685.         [
  18686.              helpcontext(0x10220008)
  18687.             ,helpstring("Sets the Matrix object to an identity matrix.")
  18688.         ]
  18689.         HRESULT  Identity(
  18690.             );
  18691.  
  18692.         /**
  18693.          * Inverts the Matrix object.
  18694.          */
  18695.         [
  18696.              helpcontext(0x10220009)
  18697.             ,helpstring("Inverts the Matrix object.")
  18698.         ]
  18699.         HRESULT  Invert(
  18700.             );
  18701.  
  18702.         /**
  18703.          * Sets the Matrix object to, or transforms the Matrix object by, a rotation.
  18704.          */
  18705.         [
  18706.              helpcontext(0x1022000A)
  18707.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, a rotation.")
  18708.         ]
  18709.         HRESULT  Rotate(
  18710.             [in] double XAxis, // The x coordinate of the rotation axis.
  18711.             [in] double YAxis, // The y coordinate of the rotation axis.
  18712.             [in] double ZAxis, // The z coordinate of the rotation axis.
  18713.             [in] double Angle, // The rotation angle in radians.
  18714.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of rotation.
  18715.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of rotation.
  18716.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of rotation.
  18717.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  18718.             );
  18719.  
  18720.         /**
  18721.          * Sets the Matrix object to, or transforms the Matrix object by, scale factors.
  18722.          */
  18723.         [
  18724.              helpcontext(0x1022000B)
  18725.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, scale factors.")
  18726.         ]
  18727.         HRESULT  Scale(
  18728.             [in] double XScale, // The x scale factor.
  18729.             [in] double YScale, // The y scale factor.
  18730.             [in] double ZScale, // The z scale factor.
  18731.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of scaling.
  18732.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of scaling.
  18733.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of scaling.
  18734.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  18735.             );
  18736.  
  18737.         /**
  18738.          * Sets the Matrix object from an array with the values of a 4x4 matrix.
  18739.          */
  18740.         [
  18741.              helpcontext(0x1022000C)
  18742.             ,helpstring("Sets the Matrix object from an array with the values of a 4x4 matrix.")
  18743.         ]
  18744.         HRESULT  SetArray(
  18745.             [in] VARIANT* ArrayEntries // An array of 16 doubles.
  18746.             );
  18747.  
  18748.         /**
  18749.          * Sets the Matrix object to, or transforms the Matrix object by, a translation.
  18750.          */
  18751.         [
  18752.              helpcontext(0x1022000D)
  18753.             ,helpstring("Sets the Matrix object to, or transforms the Matrix object by, a translation.")
  18754.         ]
  18755.         HRESULT  Translate(
  18756.             [in] double X, // The x coordinate of the translation.
  18757.             [in] double Y, // The y coordinate of the translation.
  18758.             [in] double Z, // The z coordinate of the translation.
  18759.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  18760.             );
  18761.  
  18762.         /**
  18763.          * Transposes the Matrix object.
  18764.          */
  18765.         [
  18766.              helpcontext(0x1022000E)
  18767.             ,helpstring("Transposes the Matrix object.")
  18768.         ]
  18769.         HRESULT  Transpose(
  18770.             );
  18771.  
  18772.         /**
  18773.          * Translates, scales, and rotates around z axis.
  18774.          */
  18775.         [
  18776.              helpcontext(0x1022000F)
  18777.             ,helpstring("Translates, scales, and rotates around z axis.")
  18778.         ]
  18779.         HRESULT  TranslateScaleAndRotateZ(
  18780.             [in] double X, // X coordinate of the translation.
  18781.             [in] double Y, // Y coordinate of the translation.
  18782.             [in] double Z, // Z coordinate of the translation.
  18783.             [in] double XScale, // X scale factor.
  18784.             [in] double YScale, // Y scale factor.
  18785.             [in] double ZScale, // Z scale factor.
  18786.             [in] double Angle, // Angle of rotation around z axis in radians.
  18787.             [in, optional] VARIANT* XCenter, // The x coordinate of the center of rotation.
  18788.             [in, optional] VARIANT* YCenter, // The y coordinate of the center of rotation.
  18789.             [in, optional] VARIANT* ZCenter, // The z coordinate of the center of rotation.
  18790.             [in, optional] VARIANT* Concat // True to concatenate this to the existing transform.
  18791.             );
  18792.  
  18793.         [
  18794.              helpcontext(0x10220010)
  18795.             ,helpstring("check if matrix equal to another")
  18796.         ]
  18797.         HRESULT  IsEqual(
  18798.              [in] IDispatch* pIDisp
  18799.             ,[out, retval] IMSI_BOOL* pbRet
  18800.             );
  18801.     };
  18802.  
  18803.     /**
  18804.      * An object that describes a cube in three dimensional space.
  18805.      */
  18806.     [
  18807.          object
  18808.         ,uuid(6A48111F-E531-11CF-A115-00A024158DAF)
  18809.         ,oleautomation
  18810.         ,dual
  18811.         ,helpcontext(0x10230000)
  18812.         ,helpstring("An object that describes a cube in three dimensional space.")
  18813.     ]
  18814.     interface BoundingBox : IDispatch
  18815.     {
  18816.  
  18817.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18818.  
  18819.         /**
  18820.          * Returns True if the BoundingBox object empty.
  18821.          */
  18822.         [
  18823.              propget
  18824.             ,helpcontext(0x10230001)
  18825.             ,helpstring("Returns True if the BoundingBox object is empty.")
  18826.         ]
  18827.         HRESULT  Empty(
  18828.             [out, retval] IMSI_BOOL* prop // True if the BoundingBox object is empty.
  18829.             );
  18830.  
  18831.         /**
  18832.          * Returns the maximum Vertex object of the BoundingBox object.
  18833.          */
  18834.         [
  18835.              propget
  18836.             ,helpcontext(0x10230002)
  18837.             ,helpstring("Returns the maximum Vertex object of the BoundingBox object.")
  18838.         ]
  18839.         HRESULT  Max(
  18840.             [out, retval] IVertex** max // The maximum Vertex object.
  18841.             );
  18842.  
  18843.         /**
  18844.          * Returns the minimum Vertex object of the BoundingBox object.
  18845.          */
  18846.         [
  18847.              propget
  18848.             ,helpcontext(0x10230003)
  18849.             ,helpstring("Returns the minimum Vertex object of the BoundingBox object.")
  18850.         ]
  18851.         HRESULT  Min(
  18852.             [out, retval] IVertex** min // The minimum Vertex object.
  18853.             );
  18854.  
  18855.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18856.  
  18857.         /**
  18858.          * Returns the direction to the nearest face of the box.
  18859.          */
  18860.         [
  18861.              helpcontext(0x10230004)
  18862.             ,helpstring("Returns the direction from a Vertex object to the nearest face of the BoundingBox object.")
  18863.         ]
  18864.         HRESULT  DirToNearestFace(
  18865.             [in] IVertex* Vertex, // The Vertex object to test.
  18866.             [in] IMSI_BOOL IgnoreZAxis, // True to ignore the z axis.
  18867.             [in, optional] VARIANT* OtherVertex, // Another Vertex object in case the answer is ambiguous.
  18868.             [out, retval] ImsiDirection* prop // The direction.
  18869.             );
  18870.  
  18871.         /**
  18872.          * Inflates (or deflates) the BoundingBox object by the specified distance.
  18873.          */
  18874.         [
  18875.              helpcontext(0x10230005)
  18876.             ,helpstring("Inflates (or deflates) the BoundingBox object by the specified distance.")
  18877.         ]
  18878.         HRESULT  Inflate(
  18879.             [in] double InflateBy // The amount to inflate by (positive) or deflate by (negative).
  18880.             );
  18881.  
  18882.         /**
  18883.          * Sets the BoundingBox object to a point or cube around a specified vertex.
  18884.          */
  18885.         [
  18886.              helpcontext(0x10230006)
  18887.             ,helpstring("Sets the BoundingBox object to a point or cube around a specified vertex.")
  18888.         ]
  18889.         HRESULT  Set(
  18890.             [in, optional] VARIANT* Center, // A Vertex object specifying the center of the BoundingBox object.
  18891.             [in, optional] VARIANT* Size // The size of the BoundingBox object.
  18892.             );
  18893.  
  18894.     };
  18895.  
  18896.     /**
  18897.      * A named container for Graphic objects that can be inserted into a Drawing object.
  18898.      */
  18899.     [
  18900.          object
  18901.         ,uuid(6A481120-E531-11CF-A115-00A024158DAF)
  18902.         ,oleautomation
  18903.         ,dual
  18904.         ,helpcontext(0x10240000)
  18905.         ,helpstring("A named container for Graphic objects that can be inserted into a Drawing object.")
  18906.     ]
  18907.     interface Block : IDispatch
  18908.     {
  18909.  
  18910.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  18911.  
  18912.         /**
  18913.          * Returns the anchor point for insertions.
  18914.          */
  18915.         [
  18916.              propget
  18917.             ,helpcontext(0x10240001)
  18918.             ,helpstring("Returns the anchor point for insertions.")
  18919.         ]
  18920.         HRESULT  Anchor(
  18921.             [out, retval] IVertex** prop // The anchor, as a Vertex object.
  18922.             );
  18923.  
  18924.         /**
  18925.          * Sets the anchor point for insertions.
  18926.          */
  18927.         [
  18928.              propput
  18929.             ,helpcontext(0x10240001)
  18930.             ,helpstring("Sets the anchor point for insertions.")
  18931.         ]
  18932.         HRESULT  Anchor(
  18933.             [in] IVertex* prop // The anchor, as a Vertex object.
  18934.             );
  18935.  
  18936.         /**
  18937.          * Returns an Application object that represents the owner of the specified object.
  18938.          */
  18939.         [
  18940.              propget
  18941.             ,helpcontext(0x10240002)
  18942.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  18943.         ]
  18944.         HRESULT  Application(
  18945.             [out, retval] IApplication** prop // The Application object.
  18946.             );
  18947.  
  18948.         /**
  18949.          * Returns the Drawing object that owns the object.
  18950.          */
  18951.         [
  18952.              propget
  18953.             ,helpcontext(0x10240003)
  18954.             ,helpstring("Returns the Drawing object that owns the object.")
  18955.         ]
  18956.         HRESULT  Drawing(
  18957.             [out, retval] IDrawing** prop // The Drawing object.
  18958.             );
  18959.  
  18960.         /**
  18961.          * Returns the Graphics collection that the Block object contains.
  18962.          */
  18963.         [
  18964.              propget, id(DISPID_VALUE)
  18965.             ,helpcontext(0x10240004)
  18966.             ,helpstring("Returns the Graphics collection that the Block object contains.")
  18967.         ]
  18968.         HRESULT  Graphics(
  18969.             [out, retval] Graphics** prop // The Graphics collection.
  18970.             );
  18971.  
  18972.         /**
  18973.          * Returns the index of the item in the collection.
  18974.          */
  18975.         [
  18976.              propget
  18977.             ,helpcontext(0x10240005)
  18978.             ,helpstring("Returns the index of the item in the collection.")
  18979.         ]
  18980.         HRESULT  Index(
  18981.             [out, retval] long* prop // The index.
  18982.             );
  18983.  
  18984.         /**
  18985.          * Returns the name of the object, as a string.
  18986.          */
  18987.         [
  18988.              propget
  18989.             ,helpcontext(0x10240006)
  18990.             ,helpstring("Returns the name of the object, as a string.")
  18991.         ]
  18992.         HRESULT  Name(
  18993.             [out, retval] BSTR* prop // The name of the object.
  18994.             );
  18995.  
  18996.         /**
  18997.          * Returns the parent object for the specified object.
  18998.          */
  18999.         [
  19000.              propget
  19001.             ,helpcontext(0x10240007)
  19002.             ,helpstring("Returns the parent object for the specified object.")
  19003.         ]
  19004.         HRESULT  Parent(
  19005.             [out, retval] IDispatch** prop // The parent object.
  19006.             );
  19007.  
  19008.         /**
  19009.          * Returns the internal table entry ID.
  19010.          * Private.
  19011.          */
  19012.         [
  19013.              propget
  19014.             ,restricted
  19015.             ,helpcontext(0x10240008)
  19016.             ,helpstring("Private.  Returns the internal table entry ID.")
  19017.         ]
  19018.         HRESULT  _TableEntryID(
  19019.             [out, retval] long* prop // The table entry ID.
  19020.             );
  19021.  
  19022.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19023.  
  19024.         /**
  19025.          * Deletes the object.
  19026.          */
  19027.         [
  19028.              helpcontext(0x10240009)
  19029.             ,helpstring("Deletes the object.")
  19030.         ]
  19031.         HRESULT  Delete(
  19032.             );
  19033.  
  19034.         /**
  19035.          * Duplicates the object and returns a reference to the new copy.
  19036.          */
  19037.         [
  19038.              helpcontext(0x1024000A)
  19039.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  19040.             ,restricted, hidden
  19041.         ]
  19042.         HRESULT  Duplicate(
  19043.             [in] BSTR Name, // The name of the new Block object.
  19044.             [out, retval] Block** prop // The duplicated Block object.
  19045.             );
  19046.  
  19047.         /**
  19048.          * Returns the anchor point for insertions.
  19049.          */
  19050.         [
  19051.              propget
  19052.             ,helpcontext(0x1024000B)
  19053.             ,helpstring("Returns TRUE if Block is eXternal Reference.")
  19054.         ]
  19055.         HRESULT  XRef(
  19056.             [out, retval] IMSI_BOOL* prop // The anchor, as a Vertex object.
  19057.             );
  19058.  
  19059.         /**
  19060.             Sets the path to the referencing file if Block is eXternal Reference.
  19061.         **/
  19062.         [
  19063.              propput
  19064.             ,helpcontext(0x1024000C)
  19065.             ,helpstring("Sets the path to the referencing file if Block is eXternal Reference.")
  19066.             ,restricted, hidden
  19067.         ]
  19068.         HRESULT  XRefPath(
  19069.             [in] BSTR prop // The path to the referencing file .
  19070.             );
  19071.  
  19072.         /**
  19073.             Returns the path to the referencing file if Block is eXternal Reference.
  19074.         **/
  19075.  
  19076.         [
  19077.              propget
  19078.             ,helpcontext(0x1024000C)
  19079.             ,helpstring("Returns the path to the referencing file if Block is eXternal Reference.")
  19080.         ]
  19081.         HRESULT  XRefPath(
  19082.             [out, retval] BSTR* prop // The path to the referencing file .
  19083.             );
  19084.  
  19085.         /**
  19086.          * Creates and adds an attribute definition Graphic object to the collection.  
  19087.          */
  19088.         [
  19089.              helpcontext(0x10040071)
  19090.             ,helpstring("Creates and adds an attribute definition Graphic object to the collection.")
  19091.         ]
  19092.         HRESULT  AddAttributeDefinition(
  19093.             [in] BSTR Tag, // The text string for the attribute definition tag.
  19094.             [in] double X0, // X coordinate of attdef's starting point.
  19095.             [in] double Y0, // Y coordinate of attdef's starting point.
  19096.             [in] double Z0, // Z coordinate of attdef's starting point.
  19097.             [in] double Height, // Height of attdef object.
  19098.             [in, optional] VARIANT* Angle, // Rotation angle of attdef in radians.
  19099.             [in, optional] VARIANT* Width, // Width of attdef object.
  19100.             [in, optional] VARIANT* Offset, // An ImsiTextOffset.
  19101.             [in, optional] VARIANT* Justification, // An ImsiTextJustification.
  19102.             [in, optional] VARIANT* AttFlags, // ImsiAttFlag values.
  19103.             [in, optional] VARIANT* Default, // Default value of attribute.
  19104.             [in, optional] VARIANT* Prompt, // Prompt for attribute.
  19105.             [out, retval] IGraphic** prop // The newly created Graphic object.
  19106.             );
  19107.     };
  19108.  
  19109.     /**
  19110.      * The Drawing object's collection of Block objects.
  19111.      */
  19112.     [
  19113.          object
  19114.         ,uuid(6A481121-E531-11CF-A115-00A024158DAF)
  19115.         ,oleautomation
  19116.         ,dual
  19117.         ,helpcontext(0x10250000)
  19118.         ,helpstring("The Drawing object's collection of Block objects.")
  19119.     ]
  19120.     interface Blocks : IDispatch
  19121.     {
  19122.  
  19123.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19124.  
  19125.         /**
  19126.          * Returns an Application object that represents the owner of the specified object.
  19127.          */
  19128.         [
  19129.              propget
  19130.             ,helpcontext(0x10250001)
  19131.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19132.         ]
  19133.         HRESULT  Application(
  19134.             [out, retval] IApplication** prop // The Application object.
  19135.             );
  19136.  
  19137.         /**
  19138.          * Returns the number of items in the collection.
  19139.          */
  19140.         [
  19141.              propget
  19142.             ,helpcontext(0x10250002)
  19143.             ,helpstring("Returns the number of items in the collection.")
  19144.         ]
  19145.         HRESULT  Count(
  19146.             [out, retval] long* prop // The number of items.
  19147.             );
  19148.  
  19149.         /**
  19150.          * Returns part of a collection.
  19151.          */
  19152.         [
  19153.              propget
  19154.             ,id(DISPID_VALUE)
  19155.             ,helpcontext(0x10250003)
  19156.             ,helpstring("Returns part of a collection.")
  19157.         ]
  19158.         HRESULT  Item(
  19159.             [in] VARIANT* Index, // Index of item to return.
  19160.             [out, retval] Block** prop // The item.
  19161.             );
  19162.  
  19163.         /**
  19164.          * Returns the parent object for the specified object.
  19165.          */
  19166.         [
  19167.              propget
  19168.             ,helpcontext(0x10250004)
  19169.             ,helpstring("Returns the parent object for the specified object.")
  19170.         ]
  19171.         HRESULT  Parent(
  19172.             [out, retval] IDispatch** prop // The parent object.
  19173.             );
  19174.  
  19175.         /**
  19176.          * Creates an enumeration object.
  19177.          */
  19178.         [
  19179.              propget
  19180.             ,restricted
  19181.             ,id(DISPID_NEWENUM)
  19182.             ,helpcontext(0x10250005)
  19183.             ,helpstring("Private.  Creates an enumeration object.")
  19184.         ]
  19185.         HRESULT  _NewEnum(
  19186.             [out, retval] IUnknown** prop // The enumeration object.
  19187.             );
  19188.  
  19189.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19190.  
  19191.         /**
  19192.          * Adds a new Block object to the collection.
  19193.          */
  19194.         [
  19195.              helpcontext(0x10250006)
  19196.             ,helpstring("Adds a new Block object to the collection.")
  19197.         ]
  19198.         HRESULT  Add(
  19199.             [in] BSTR Name, // The name of the new Block object.
  19200.             [in] IGraphic* Graphic, // The Graphic object that the Block object will contain.
  19201.             [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  19202.             [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  19203.             [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  19204.             [in, optional] VARIANT* CopyGraphic, // True to make the block using copies of the Graphic object.
  19205.             [in, optional] VARIANT* InsertBlock, // True to insert the new block in the Drawing object.
  19206.             [in, out, optional] VARIANT* Insert, // The Insert Graphic object if InsertBlock was true
  19207.             [out, retval] Block** prop // The newly created Block object.
  19208.             );
  19209.  
  19210.         /**
  19211.          * Returns the index within the table collection of the specified table entry.
  19212.          * Private.
  19213.          */
  19214.         [
  19215.              restricted
  19216.             ,helpcontext(0x10250007)
  19217.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  19218.         ]
  19219.         HRESULT  _FindIndex(
  19220.             [in] long TableEntryID, // The internal table ID.
  19221.             [out, retval] long* prop // The zero based index.
  19222.             );
  19223.  
  19224.         /**
  19225.          * Returns an object from the table collection for the specified table entry.
  19226.          * Private.
  19227.          */
  19228.         [
  19229.              restricted
  19230.             ,helpcontext(0x10250008)
  19231.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  19232.         ]
  19233.         HRESULT  _ObjectFromID(
  19234.             [in] long TableEntryID, // The internal table ID.
  19235.             [out, retval] Block** prop // The object.
  19236.             );
  19237.  
  19238.         /**
  19239.          * Adds a new Block object to the collection.
  19240.          */
  19241.         [
  19242.              helpcontext(0x10250009)
  19243.             ,helpstring("Adds a new eXternal Reference Block object to the collection.")
  19244.         ]
  19245.         HRESULT  AddXRef(
  19246.             [in] BSTR Name, // The name of the new Block object.
  19247.             [in] BSTR path, // path to the eXternal Reference file
  19248.             [in, optional] VARIANT* XRef, // X coordinate of the block reference point.
  19249.             [in, optional] VARIANT* YRef, // Y coordinate of the block reference point.
  19250.             [in, optional] VARIANT* ZRef, // Z coordinate of the block reference point.
  19251.             [out, retval] Block** prop // The newly created Block object.
  19252.             );
  19253.     };
  19254.  
  19255.     /**
  19256.      * A generic TurboCAD table.
  19257.      */
  19258.     [
  19259.          object
  19260.         ,restricted, hidden
  19261.         ,uuid(6A481138-E531-11CF-A115-00A024158DAF)
  19262.         ,oleautomation
  19263.         ,dual
  19264.         ,helpcontext(0x10260000)
  19265.         ,helpstring("A generic TurboCAD table.")
  19266.     ]
  19267.     interface Table : IDispatch
  19268.     {
  19269.  
  19270.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19271.  
  19272.         /**
  19273.          * Returns an Application object that represents the owner of the specified object.
  19274.          */
  19275.         [
  19276.              propget
  19277.             ,helpcontext(0x10260001)
  19278.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19279.         ]
  19280.         HRESULT  Application(
  19281.             [out, retval] IApplication** prop // The Application object.
  19282.             );
  19283.  
  19284.         /**
  19285.          * Returns the number of entries in the Table.
  19286.          */
  19287.         [
  19288.              propget
  19289.             ,helpcontext(0x10260002)
  19290.             ,helpstring("Returns the number of entries in the Table.")
  19291.         ]
  19292.         HRESULT  Count(
  19293.             [out, retval] long* prop // The number of items.
  19294.             );
  19295.  
  19296.         /**
  19297.          * Returns the name of the entry at a specified index.
  19298.          */
  19299.         [
  19300.              propget
  19301.             ,helpcontext(0x10260003)
  19302.             ,helpstring("Returns the name of the entry at a specified index.")
  19303.         ]
  19304.         HRESULT  EntryName(
  19305.             [in] long Index, // The index.
  19306.             [out, retval] BSTR* prop // The name of the entry.
  19307.             );
  19308.  
  19309.         /**
  19310.          * Returns the value of the entry at a specified index.
  19311.          */
  19312.         [
  19313.              propget
  19314.             ,helpcontext(0x10260004)
  19315.             ,helpstring("Returns the value of the entry at a specified index.")
  19316.         ]
  19317.         HRESULT  EntryValue(
  19318.             [in] long Index, // The index.
  19319.             [out, retval] BSTR* prop // The value of the entry, as a string.
  19320.             );
  19321.  
  19322.         /**
  19323.          * Returns the index of the item in the collection.
  19324.          */
  19325.         [
  19326.              propget
  19327.             ,helpcontext(0x10260005)
  19328.             ,helpstring("Returns the index of the item in the collection.")
  19329.         ]
  19330.         HRESULT  Index(
  19331.             [out, retval] long* prop // The index.
  19332.             );
  19333.  
  19334.         /**
  19335.          * Returns the name of the object, as a string.
  19336.          */
  19337.         [
  19338.              propget
  19339.             ,helpcontext(0x10260006)
  19340.             ,helpstring("Returns the name of the object, as a string.")
  19341.         ]
  19342.         HRESULT  Name(
  19343.             [out, retval] BSTR* prop // The name of the object.
  19344.             );
  19345.  
  19346.         /**
  19347.          * Returns the parent object for the specified object.
  19348.          */
  19349.         [
  19350.              propget
  19351.             ,helpcontext(0x10260007)
  19352.             ,helpstring("Returns the parent object for the specified object.")
  19353.         ]
  19354.         HRESULT  Parent(
  19355.             [out, retval] IDispatch** prop // The parent object.
  19356.             );
  19357.  
  19358.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19359.  
  19360.         /**
  19361.          * Clears the Table object's entries.
  19362.          */
  19363.         [
  19364.              helpcontext(0x10260008)
  19365.             ,helpstring("Clears the Table object's entries.")
  19366.         ]
  19367.         HRESULT  Clear(
  19368.             );
  19369.  
  19370.         /**
  19371.          * Deletes the object.
  19372.          */
  19373.         [
  19374.              helpcontext(0x10260009)
  19375.             ,helpstring("Deletes the object.")
  19376.         ]
  19377.         HRESULT  Delete(
  19378.             );
  19379.  
  19380.         /**
  19381.          * Reads the Table object in from the profile section.
  19382.          */
  19383.         [
  19384.              helpcontext(0x1026000A)
  19385.             ,helpstring("Reads the Table object in from the profile section.")
  19386.         ]
  19387.         HRESULT  Open(
  19388.             [in, optional] VARIANT* ProfileSection, // The section name.
  19389.             [in, optional] VARIANT* ProfileName // The file name.
  19390.             );
  19391.  
  19392.         /**
  19393.          * Writes the Table object out to the profile section.
  19394.          */
  19395.         [
  19396.              helpcontext(0x1026000B)
  19397.             ,helpstring("Writes the Table object out to the profile section.")
  19398.         ]
  19399.         HRESULT  Save(
  19400.             [in, optional] VARIANT* ProfileSection, // The section name.
  19401.             [in, optional] VARIANT* ProfileName // The file name.
  19402.             );
  19403.  
  19404.         /**
  19405.          * Returns the index within the table collection of the specified table entry.
  19406.          * Private.
  19407.          */
  19408.         [
  19409.              restricted
  19410.             ,helpcontext(0x1026000C)
  19411.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  19412.         ]
  19413.         HRESULT  _FindIndex(
  19414.             [in] long TableEntryID, // The internal table ID.
  19415.             [out, retval] long* prop // The zero based index.
  19416.             );
  19417.  
  19418.         /**
  19419.          * Returns an object from the table collection for the specified table entry.
  19420.          * Private.
  19421.          */
  19422.         [
  19423.              restricted
  19424.             ,helpcontext(0x1026000D)
  19425.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  19426.         ]
  19427.         HRESULT  _ObjectFromID(
  19428.             [in] long TableEntryID, // The internal table ID.
  19429.             [out, retval] IDispatch** prop // The object.
  19430.             );
  19431.     };
  19432.  
  19433.     /**
  19434.      * A collection of TurboCAD tables.
  19435.      */
  19436.     [
  19437.          object
  19438.         ,restricted, hidden
  19439.         ,uuid(6A481139-E531-11CF-A115-00A024158DAF)
  19440.         ,oleautomation
  19441.         ,dual
  19442.         ,helpcontext(0x10270000)
  19443.         ,helpstring("A collection of TurboCAD tables.")
  19444.     ]
  19445.     interface Tables : IDispatch
  19446.     {
  19447.  
  19448.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19449.  
  19450.         /**
  19451.          * Returns an Application object that represents the owner of the specified object.
  19452.          */
  19453.         [
  19454.              propget
  19455.             ,helpcontext(0x10270001)
  19456.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19457.         ]
  19458.         HRESULT  Application(
  19459.             [out, retval] IApplication** prop // The Application object.
  19460.             );
  19461.  
  19462.         /**
  19463.          * Returns the number of items in the collection.
  19464.          */
  19465.         [
  19466.              propget
  19467.             ,helpcontext(0x10270002)
  19468.             ,helpstring("Returns the number of items in the collection.")
  19469.         ]
  19470.         HRESULT  Count(
  19471.             [out, retval] long* prop // The number of items.
  19472.             );
  19473.  
  19474.         /**
  19475.          * Returns part of a collection.
  19476.          */
  19477.         [
  19478.              propget
  19479.             ,id(DISPID_VALUE)
  19480.             ,helpcontext(0x10270003)
  19481.             ,helpstring("Returns part of a collection.")
  19482.         ]
  19483.         HRESULT  Item(
  19484.             [in] VARIANT* Index, // Index of item to return.
  19485.             [out, retval] Table** prop // The item.
  19486.             );
  19487.  
  19488.         /**
  19489.          * Returns the parent object for the specified object.
  19490.          */
  19491.         [
  19492.              propget
  19493.             ,helpcontext(0x10270004)
  19494.             ,helpstring("Returns the parent object for the specified object.")
  19495.         ]
  19496.         HRESULT  Parent(
  19497.             [out, retval] IDispatch** prop // The parent object.
  19498.             );
  19499.  
  19500.         /**
  19501.          * Creates an enumeration object.
  19502.          */
  19503.         [
  19504.              propget
  19505.             ,restricted
  19506.             ,id(DISPID_NEWENUM)
  19507.             ,helpcontext(0x10270005)
  19508.             ,helpstring("Private.  Creates an enumeration object.")
  19509.         ]
  19510.         HRESULT  _NewEnum(
  19511.             [out, retval] IUnknown** prop // The enumeration object.
  19512.             );
  19513.  
  19514.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19515.  
  19516.     };
  19517.  
  19518.     /**
  19519.      * A TurboCAD style.
  19520.      */
  19521.     [
  19522.          object
  19523.         ,restricted, hidden
  19524.         ,uuid(6A48113A-E531-11CF-A115-00A024158DAF)
  19525.         ,oleautomation
  19526.         ,dual
  19527.         ,helpcontext(0x10280000)
  19528.         ,helpstring("A TurboCAD style.")
  19529.     ]
  19530.     interface Style : IDispatch
  19531.     {
  19532.  
  19533.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19534.  
  19535.         /**
  19536.          * Returns an Application object that represents the owner of the specified object.
  19537.          */
  19538.         [
  19539.              propget
  19540.             ,helpcontext(0x10280001)
  19541.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19542.         ]
  19543.         HRESULT  Application(
  19544.             [out, retval] IApplication** prop // The Application object.
  19545.             );
  19546.  
  19547.         /**
  19548.          * Returns the Style object that this Style object is based on.
  19549.          */
  19550.         [
  19551.              propget
  19552.             ,helpcontext(0x10280002)
  19553.             ,helpstring("Returns the Style object that this Style object is based on.")
  19554.         ]
  19555.         HRESULT  BasedOn(
  19556.             [out, retval] Style** prop // The Style object that this Style object is based on.
  19557.             );
  19558.  
  19559.         /**
  19560.          * Sets the Style object that this Style object is based on.
  19561.          */
  19562.         [
  19563.              propput
  19564.             ,helpcontext(0x10280002)
  19565.             ,helpstring("Sets the Style object that this Style object is based on.")
  19566.         ]
  19567.         HRESULT  BasedOn(
  19568.             [in] Style* prop // The Style object that this Style object is based on.
  19569.             );
  19570.  
  19571.         /**
  19572.          * Returns the index of the item in the collection.
  19573.          */
  19574.         [
  19575.              propget
  19576.             ,helpcontext(0x10280003)
  19577.             ,helpstring("Returns the index of the item in the collection.")
  19578.         ]
  19579.         HRESULT  Index(
  19580.             [out, retval] long* prop // The index.
  19581.             );
  19582.  
  19583.         /**
  19584.          * Returns the name of the object, as a string.
  19585.          */
  19586.         [
  19587.              propget
  19588.             ,helpcontext(0x10280004)
  19589.             ,helpstring("Returns the name of the object, as a string.")
  19590.         ]
  19591.         HRESULT  Name(
  19592.             [out, retval] BSTR* prop // The name of the object.
  19593.             );
  19594.  
  19595.         /**
  19596.          * Returns the parent object for the specified object.
  19597.          */
  19598.         [
  19599.              propget
  19600.             ,helpcontext(0x10280005)
  19601.             ,helpstring("Returns the parent object for the specified object.")
  19602.         ]
  19603.         HRESULT  Parent(
  19604.             [out, retval] IDispatch** prop // The parent object.
  19605.             );
  19606.  
  19607.         /**
  19608.          * Returns the Style object's Properties collection.
  19609.          */
  19610.         [
  19611.              propget
  19612.             ,helpcontext(0x10280006)
  19613.             ,helpstring("Returns the Style object's Properties collection.")
  19614.         ]
  19615.         HRESULT  Properties(
  19616.             [out, retval] Properties** prop // The Properties collection.
  19617.             );
  19618.  
  19619.         /**
  19620.          * Returns the Style object's defaults graphic.
  19621.          * Private.
  19622.          */
  19623.         [
  19624.              propget
  19625.             ,restricted, hidden
  19626.             ,helpcontext(0x10280007)
  19627.             ,helpstring("Private.  Returns the Style object's defaults graphic.")
  19628.         ]
  19629.         HRESULT  _Defaults(
  19630.             [out, retval] long* prop // The defaults graphic.
  19631.             );
  19632.  
  19633.         /**
  19634.          * Returns the internal table entry ID.
  19635.          * Private.
  19636.          */
  19637.         [
  19638.              propget
  19639.             ,restricted
  19640.             ,helpcontext(0x10280008)
  19641.             ,helpstring("Private.  Returns the internal table entry ID.")
  19642.         ]
  19643.         HRESULT  _TableEntryID(
  19644.             [out, retval] long* prop // The table entry ID.
  19645.             );
  19646.  
  19647.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19648.  
  19649.         /**
  19650.          * Adds a Graphic object's properties to the style.
  19651.          */
  19652.         [
  19653.              helpcontext(0x10280009)
  19654.             ,helpstring("Adds a Graphic object's properties to the style.")
  19655.         ]
  19656.         HRESULT  AddGraphicProperties(
  19657.             [in] IGraphic* GraphicToAdd // The Graphic object.
  19658.             );
  19659.  
  19660.         /**
  19661.          * Deletes the object.
  19662.          */
  19663.         [
  19664.              helpcontext(0x1028000A)
  19665.             ,helpstring("Deletes the object.")
  19666.         ]
  19667.         HRESULT  Delete(
  19668.             );
  19669.  
  19670.         /**
  19671.          * Duplicates the object and returns a reference to the new copy.
  19672.          */
  19673.         [
  19674.              helpcontext(0x1028000B)
  19675.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  19676.         ]
  19677.         HRESULT  Duplicate(
  19678.             [in] BSTR Name, // The name for the new Style object.
  19679.             [out, retval] Style** prop // The duplicated Style object.
  19680.             );
  19681.     };
  19682.  
  19683.     /**
  19684.      * The collection of TurboCAD styles.
  19685.      */
  19686.     [
  19687.          object
  19688.         ,restricted, hidden
  19689.         ,uuid(6A48113B-E531-11CF-A115-00A024158DAF)
  19690.         ,oleautomation
  19691.         ,dual
  19692.         ,helpcontext(0x10290000)
  19693.         ,helpstring("The collection of TurboCAD styles.")
  19694.     ]
  19695.     interface Styles : IDispatch
  19696.     {
  19697.  
  19698.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19699.  
  19700.         /**
  19701.          * Returns an Application object that represents the owner of the specified object.
  19702.          */
  19703.         [
  19704.              propget
  19705.             ,helpcontext(0x10290001)
  19706.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19707.         ]
  19708.         HRESULT  Application(
  19709.             [out, retval] IApplication** prop // The Application object.
  19710.             );
  19711.  
  19712.         /**
  19713.          * Returns the number of items in the collection.
  19714.          */
  19715.         [
  19716.              propget
  19717.             ,helpcontext(0x10290002)
  19718.             ,helpstring("Returns the number of items in the collection.")
  19719.         ]
  19720.         HRESULT  Count(
  19721.             [out, retval] long* prop // The number of items.
  19722.             );
  19723.  
  19724.         /**
  19725.          * Returns part of a collection.
  19726.          */
  19727.         [
  19728.              propget
  19729.             ,id(DISPID_VALUE)
  19730.             ,helpcontext(0x10290003)
  19731.             ,helpstring("Returns part of a collection.")
  19732.         ]
  19733.         HRESULT  Item(
  19734.             [in] VARIANT* Index, // Index of item to return.
  19735.             [out, retval] Style** prop // The item.
  19736.             );
  19737.  
  19738.         /**
  19739.          * Returns the parent object for the specified object.
  19740.          */
  19741.         [
  19742.              propget
  19743.             ,helpcontext(0x10290004)
  19744.             ,helpstring("Returns the parent object for the specified object.")
  19745.         ]
  19746.         HRESULT  Parent(
  19747.             [out, retval] IDispatch** prop // The parent object.
  19748.             );
  19749.  
  19750.         /**
  19751.          * Creates an enumeration object.
  19752.          */
  19753.         [
  19754.              propget
  19755.             ,restricted
  19756.             ,id(DISPID_NEWENUM)
  19757.             ,helpcontext(0x10290005)
  19758.             ,helpstring("Private.  Creates an enumeration object.")
  19759.         ]
  19760.         HRESULT  _NewEnum(
  19761.             [out, retval] IUnknown** prop // The enumeration object.
  19762.             );
  19763.  
  19764.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19765.  
  19766.         /**
  19767.          * Adds a new Style object to the collection.
  19768.          */
  19769.         [
  19770.              helpcontext(0x10290006)
  19771.             ,helpstring("Adds a new Style object to the collection.")
  19772.         ]
  19773.         HRESULT  Add(
  19774.             [in] BSTR Name, // A name for the new Style object.
  19775.             [in, optional] VARIANT* BasedOn, // Style object to base on.
  19776.             [in, optional] VARIANT* Properties, // Properties for the new Style object.
  19777.             [out, retval] Style** prop // The new Style object.
  19778.             );
  19779.     };
  19780.  
  19781.     /**
  19782.      * A named TurboCAD view.
  19783.      */
  19784.     [
  19785.          object
  19786.         ,uuid(6A48113C-E531-11CF-A115-00A024158DAF)
  19787.         ,oleautomation
  19788.         ,dual
  19789.         ,helpcontext(0x102A0000)
  19790.         ,helpstring("A named TurboCAD view.")
  19791.     ]
  19792.     interface NamedView : IDispatch
  19793.     {
  19794.  
  19795.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19796.  
  19797.         /**
  19798.          * Returns an Application object that represents the owner of the specified object.
  19799.          */
  19800.         [
  19801.              propget
  19802.             ,helpcontext(0x102A0001)
  19803.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19804.         ]
  19805.         HRESULT  Application(
  19806.             [out, retval] IApplication** prop // The Application object.
  19807.             );
  19808.  
  19809.         /**
  19810.          * Returns the index of the item in the collection.
  19811.          */
  19812.         [
  19813.              propget
  19814.             ,helpcontext(0x102A0002)
  19815.             ,helpstring("Returns the index of the item in the collection.")
  19816.         ]
  19817.         HRESULT  Index(
  19818.             [out, retval] long* prop // The index.
  19819.             );
  19820.  
  19821.         /**
  19822.          * Returns the name of the object, as a string.
  19823.          */
  19824.         [
  19825.              propget
  19826.             ,helpcontext(0x102A0003)
  19827.             ,helpstring("Returns the name of the object, as a string.")
  19828.         ]
  19829.         HRESULT  Name(
  19830.             [out, retval] BSTR* prop // The name of the object.
  19831.             );
  19832.  
  19833.         /**
  19834.          * Returns the parent object for the specified object.
  19835.          */
  19836.         [
  19837.              propget
  19838.             ,helpcontext(0x102A0004)
  19839.             ,helpstring("Returns the parent object for the specified object.")
  19840.         ]
  19841.         HRESULT  Parent(
  19842.             [out, retval] IDispatch** prop // The parent object.
  19843.             );
  19844.  
  19845.         /**
  19846.          * Returns the internal table entry ID.
  19847.          * Private.
  19848.          */
  19849.         [
  19850.              propget
  19851.             ,restricted
  19852.             ,helpcontext(0x102A0005)
  19853.             ,helpstring("Private.  Returns the internal table entry ID.")
  19854.         ]
  19855.         HRESULT  _TableEntryID(
  19856.             [out, retval] long* prop // The table entry ID.
  19857.             );
  19858.  
  19859.  
  19860.         /**
  19861.          * Returns the Drawing object that owns the object.
  19862.          */
  19863.         [
  19864.              propget
  19865.             ,helpcontext(0x102A0006)
  19866.             ,helpstring("Returns the Drawing object that owns the object.")
  19867.         ]
  19868.         HRESULT  Drawing(
  19869.             [out, retval] IDrawing** prop // The Drawing object.
  19870.             );
  19871.  
  19872.         /**
  19873.          * Returns the NamedView object's BoundingBox object.
  19874.          */
  19875.         [
  19876.              propget
  19877.             ,helpcontext(0x102A0007)
  19878.             ,helpstring("Returns the NamedView object's BoundingBox object.")
  19879.         ]
  19880.         HRESULT  BoundingBox(
  19881.             [out, retval] BoundingBox** prop // The BoundingBox object.
  19882.             );
  19883.  
  19884.         /**
  19885.          * Sets the NamedView object's BoundingBox object.
  19886.          */
  19887.         [
  19888.              propput
  19889.             ,helpcontext(0x102A0007)
  19890.             ,helpstring("Sets the NamedView object's BoundingBox object.")
  19891.         ]
  19892.         HRESULT  BoundingBox(
  19893.             [in] BoundingBox* prop // The BoundingBox object.
  19894.             );
  19895.  
  19896.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19897.  
  19898.         /**
  19899.          * Deletes the object.
  19900.          */
  19901.         [
  19902.              helpcontext(0x102A0008)
  19903.             ,helpstring("Deletes the object.")
  19904.         ]
  19905.         HRESULT  Delete(
  19906.             );
  19907.  
  19908.         /**
  19909.          * Duplicates the object and returns a reference to the new copy.
  19910.          */
  19911.         [
  19912.              helpcontext(0x102A0009)
  19913.             ,helpstring("Duplicates the object and returns a reference to the new copy.")
  19914.             ,restricted, hidden
  19915.         ]
  19916.         HRESULT  Duplicate(
  19917.             [in] BSTR Name, // The name for the new NamedView object
  19918.             [out, retval] NamedView** prop // The duplicated NamedView object.
  19919.             );
  19920.     };
  19921.  
  19922.  
  19923.     /**
  19924.      * A collection of NamedView objects.
  19925.      */
  19926.     [
  19927.          object
  19928.         ,uuid(6A48113D-E531-11CF-A115-00A024158DAF)
  19929.         ,oleautomation
  19930.         ,dual
  19931.         ,helpcontext(0x102B0000)
  19932.         ,helpstring("A collection of NamedView objects.")
  19933.     ]
  19934.     interface NamedViews : IDispatch
  19935.     {
  19936.  
  19937.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  19938.  
  19939.         /**
  19940.          * Returns an Application object that represents the owner of the specified object.
  19941.          */
  19942.         [
  19943.              propget
  19944.             ,helpcontext(0x102B0001)
  19945.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  19946.         ]
  19947.         HRESULT  Application(
  19948.             [out, retval] IApplication** prop // The Application object.
  19949.             );
  19950.  
  19951.         /**
  19952.          * Returns the number of items in the collection.
  19953.          */
  19954.         [
  19955.              propget
  19956.             ,helpcontext(0x102B0002)
  19957.             ,helpstring("Returns the number of items in the collection.")
  19958.         ]
  19959.         HRESULT  Count(
  19960.             [out, retval] long* prop // The number of items.
  19961.             );
  19962.  
  19963.         /**
  19964.          * Returns part of a collection.
  19965.          */
  19966.         [
  19967.              propget
  19968.             ,id(DISPID_VALUE)
  19969.             ,helpcontext(0x102B0003)
  19970.             ,helpstring("Returns part of a collection.")
  19971.         ]
  19972.         HRESULT  Item(
  19973.             [in] VARIANT* Index, // Index of item to return.
  19974.             [out, retval] NamedView** prop // The item.
  19975.             );
  19976.  
  19977.         /**
  19978.          * Returns the parent object for the specified object.
  19979.          */
  19980.         [
  19981.              propget
  19982.             ,helpcontext(0x102B0004)
  19983.             ,helpstring("Returns the parent object for the specified object.")
  19984.         ]
  19985.         HRESULT  Parent(
  19986.             [out, retval] IDispatch** prop // The parent object.
  19987.             );
  19988.  
  19989.         /**
  19990.          * Creates an enumeration object.
  19991.          */
  19992.         [
  19993.              propget
  19994.             ,restricted
  19995.             ,id(DISPID_NEWENUM)
  19996.             ,helpcontext(0x102B0005)
  19997.             ,helpstring("Private.  Creates an enumeration object.")
  19998.         ]
  19999.         HRESULT  _NewEnum(
  20000.             [out, retval] IUnknown** prop // The enumeration object.
  20001.             );
  20002.  
  20003.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20004.  
  20005.         /**
  20006.          * Adds a new NamedView object to the collection.
  20007.          */
  20008.         [
  20009.              helpcontext(0x102B0006)
  20010.             ,helpstring("Adds a new NamedView object to the collection.")
  20011.         ]
  20012.         HRESULT  Add(
  20013.             [in] BSTR Name, // The name of the new NamedView object.
  20014.             [in] double XMin, // The x coordinate of one corner (in viewport coordinates).
  20015.             [in] double YMin, // The y coordinate of one corner (in viewport coordinates).
  20016.             [in] double XMax, // The x coordinate of the other corner (in viewport coordinates).
  20017.             [in] double YMax, // The y coordinate of the other corner (in viewport coordinates).
  20018.             [out, retval] NamedView** prop // The newly created NamedView object.
  20019.             );
  20020.  
  20021.         /**
  20022.          * Returns the index within the table collection of the specified table entry.
  20023.          * Private.
  20024.          */
  20025.         [
  20026.              restricted
  20027.             ,helpcontext(0x102B0007)
  20028.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  20029.         ]
  20030.         HRESULT  _FindIndex(
  20031.             [in] long TableEntryID, // The internal table ID.
  20032.             [out, retval] long* prop // The zero based index.
  20033.             );
  20034.  
  20035.         /**
  20036.          * Returns an object from the table collection for the specified table entry.
  20037.          * Private.
  20038.          */
  20039.         [
  20040.              restricted
  20041.             ,helpcontext(0x102B0008)
  20042.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  20043.         ]
  20044.         HRESULT  _ObjectFromID(
  20045.             [in] long TableEntryID, // The internal table ID.
  20046.             [out, retval] NamedView** prop // The object.
  20047.             );
  20048.     };
  20049.  
  20050.     /**
  20051.      * A single entity in a pick operation.
  20052.      */
  20053.     [
  20054.          object
  20055.         ,uuid(6A481122-E531-11CF-A115-00A024158DAF)
  20056.         ,oleautomation
  20057.         ,dual
  20058.         ,helpcontext(0x102C0000)
  20059.         ,helpstring("A single entity in a pick operation.")
  20060.     ]
  20061.     interface PickEntry : IDispatch
  20062.     {
  20063.  
  20064.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20065.  
  20066.         /**
  20067.          * Returns an Application object that represents the owner of the specified object.
  20068.          */
  20069.         [
  20070.              propget
  20071.             ,helpcontext(0x102C0001)
  20072.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20073.         ]
  20074.         HRESULT  Application(
  20075.             [out, retval] IApplication** prop // The Application object.
  20076.             );
  20077.  
  20078.         /**
  20079.          * Returns the closest child Graphic object in the Graphic object.
  20080.          */
  20081.         [
  20082.              propget
  20083.             ,helpcontext(0x102C0002)
  20084.             ,helpstring("Returns the closest child Graphic object in the Graphic object.")
  20085.         ]
  20086.         HRESULT  ClosestChildGraphic(
  20087.             [out, retval] IGraphic** prop // The closest child Graphic object.
  20088.             );
  20089.  
  20090.         /**
  20091.          * Returns the closest face on the entity.
  20092.          */
  20093.         [
  20094.              propget
  20095.             ,helpcontext(0x102C0003)
  20096.             ,helpstring("Returns the closest face on the entity.")
  20097.             ,restricted, hidden
  20098.         ]
  20099.         HRESULT  ClosestFace(
  20100.             [out, retval] IGraphic** prop // The face on the entity, as a Graphic object.
  20101.             );
  20102.  
  20103.         /**
  20104.          * Returns the closest point on the entity.
  20105.          */
  20106.         [
  20107.              propget
  20108.             ,helpcontext(0x102C0004)
  20109.             ,helpstring("Returns the closest point on the entity.")
  20110.         ]
  20111.         HRESULT  ClosestVertex(
  20112.             [out, retval] IVertex** prop // The closest point on the entity, as a Vertex object.
  20113.             );
  20114.  
  20115.         /**
  20116.          * Returns the closest Vertex object on the closest segment of the entity.
  20117.          */
  20118.         [
  20119.              propget
  20120.             ,helpcontext(0x102C0005)
  20121.             ,helpstring("Returns the closest Vertex object on the closest segment of the entity.")
  20122.         ]
  20123.         HRESULT  ClosestSegmentVertex(
  20124.             [out, retval] IVertex** prop // The closest Vertex object on the closest segment of the entity.
  20125.             );
  20126.  
  20127.         /**
  20128.          * Returns the depth of the closest point on the entity.
  20129.          */
  20130.         [
  20131.              propget
  20132.             ,helpcontext(0x102C0006)
  20133.             ,helpstring("Returns the depth of the closest point on the entity.")
  20134.             ,restricted, hidden
  20135.         ]
  20136.         HRESULT  Depth(
  20137.             [out, retval] double* prop // The depth of the closest point on the entity.
  20138.             );
  20139.  
  20140.         /**
  20141.          * Returns the distance from the pick ray to the closest point on the entity.
  20142.          */
  20143.         [
  20144.              propget
  20145.             ,helpcontext(0x102C0007)
  20146.             ,helpstring("Returns the distance from the pick ray to the closest point on the entity.")
  20147.         ]
  20148.         HRESULT  Distance(
  20149.             [out, retval] double* prop // The distance from the pick ray to the closest point on the entity.
  20150.             );
  20151.  
  20152.         /**
  20153.          * Returns the Drawing object that owns the object.
  20154.          */
  20155.         [
  20156.              propget
  20157.             ,helpcontext(0x102C0008)
  20158.             ,helpstring("Returns the Drawing object that owns the object.")
  20159.         ]
  20160.         HRESULT  Drawing(
  20161.             [out, retval] IDrawing** prop // The Drawing object.
  20162.             );
  20163.  
  20164.         /**
  20165.          * Returns the PickEntry object's Graphic object.
  20166.          */
  20167.         [
  20168.              propget
  20169.             ,helpcontext(0x102C0009)
  20170.             ,helpstring("Returns the PickEntry object's Graphic object.")
  20171.         ]
  20172.         HRESULT  Graphic(
  20173.             [out, retval] IGraphic** prop // The Graphic object.
  20174.             );
  20175.  
  20176.         /**
  20177.          * Returns the index of the item in the collection.
  20178.          */
  20179.         [
  20180.              propget
  20181.             ,helpcontext(0x102C000A)
  20182.             ,helpstring("Returns the index of the item in the collection.")
  20183.             ,restricted, hidden
  20184.         ]
  20185.         HRESULT  Index(
  20186.             [out, retval] long* prop // The index.
  20187.             );
  20188.  
  20189.         /**
  20190.          * Returns the other Vertex object on the closest segment of the entity.
  20191.          */
  20192.         [
  20193.              propget
  20194.             ,helpcontext(0x102C000B)
  20195.             ,helpstring("Returns the other Vertex object on the closest segment of the entity.")
  20196.             ,restricted, hidden
  20197.         ]
  20198.         HRESULT  OtherSegmentVertex(
  20199.             [out, retval] IVertex** prop // The other Vertex object on the closest segment of the entity.
  20200.             );
  20201.  
  20202.         /**
  20203.          * Returns the parent object for the specified object.
  20204.          */
  20205.         [
  20206.              propget
  20207.             ,helpcontext(0x102C000C)
  20208.             ,helpstring("Returns the parent object for the specified object.")
  20209.         ]
  20210.         HRESULT  Parent(
  20211.             [out, retval] IDispatch** prop // The parent object.
  20212.             );
  20213.  
  20214.         /**
  20215.          * Returns the ray point closest to the closest point on the entity.
  20216.          */
  20217.         [
  20218.              propget
  20219.             ,helpcontext(0x102C000D)
  20220.             ,helpstring("Returns the ray point closest to the closest point on the entity.")
  20221.             ,restricted, hidden
  20222.         ]
  20223.         HRESULT  RayPoint(
  20224.             [out, retval] IVertex** prop // The ray point, as a Vertex object.
  20225.             );
  20226.  
  20227.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20228.  
  20229.     };
  20230.  
  20231.     /**
  20232.      * The result of a pick operation.
  20233.      */
  20234.     [
  20235.          object
  20236.         ,uuid(6A481123-E531-11CF-A115-00A024158DAF)
  20237.         ,oleautomation
  20238.         ,dual
  20239.         ,helpcontext(0x102D0000)
  20240.         ,helpstring("The result of a pick operation.")
  20241.     ]
  20242.     interface PickResult : IDispatch
  20243.     {
  20244.  
  20245.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20246.  
  20247.         /**
  20248.          * Returns an Application object that represents the owner of the specified object.
  20249.          */
  20250.         [
  20251.              propget
  20252.             ,helpcontext(0x102D0001)
  20253.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20254.         ]
  20255.         HRESULT  Application(
  20256.             [out, retval] IApplication** prop // The Application object.
  20257.             );
  20258.  
  20259.         /**
  20260.          * Returns the number of items in the collection.
  20261.          */
  20262.         [
  20263.              propget
  20264.             ,helpcontext(0x102D0002)
  20265.             ,helpstring("Returns the number of items in the collection.")
  20266.         ]
  20267.         HRESULT  Count(
  20268.             [out, retval] long* prop // The number of items.
  20269.             );
  20270.  
  20271.         /**
  20272.          * Returns part of a collection.
  20273.          */
  20274.         [
  20275.              propget
  20276.             ,id(DISPID_VALUE)
  20277.             ,helpcontext(0x102D0003)
  20278.             ,helpstring("Returns part of a collection.")
  20279.         ]
  20280.         HRESULT  Item(
  20281.             [in] VARIANT* Index, // Index of item to return.
  20282.             [out, retval] PickEntry** prop // The item.
  20283.             );
  20284.  
  20285.         /**
  20286.          * Returns the parent object for the specified object.
  20287.          */
  20288.         [
  20289.              propget
  20290.             ,helpcontext(0x102D0004)
  20291.             ,helpstring("Returns the parent object for the specified object.")
  20292.         ]
  20293.         HRESULT  Parent(
  20294.             [out, retval] IDispatch** prop // The parent object.
  20295.             );
  20296.  
  20297.         /**
  20298.          * Returns the active snap modes at the time the pick was made.
  20299.          * <p>
  20300.          * A long integer that can be tested against the ImsiSnapMode enumerated values.
  20301.          */
  20302.         [
  20303.              propget
  20304.             ,helpcontext(0x102D0005)
  20305.             ,helpstring("Returns the active snap modes at the time the pick was made.")
  20306.         ]
  20307.         HRESULT  SnapModes(
  20308.             [out, retval] long* prop // The active snap modes.
  20309.             );
  20310.  
  20311.         /**
  20312.          * Returns the active snap modes at the time the pick was made.
  20313.          * <p>
  20314.          * Returns a Vertices collection which contains the vertex or vertices which defined the pick.
  20315.          */
  20316.         [
  20317.              propget
  20318.             ,helpcontext(0x102D0006)
  20319.             ,helpstring("Returns a Vertices collection which contains the vertex or vertices which defined the pick.")
  20320.         ]
  20321.         HRESULT  Vertices(
  20322.             [out, retval] Vertices** prop // The Vertices collection
  20323.             );
  20324.  
  20325.         /**
  20326.          * Creates an enumeration object.
  20327.          */
  20328.         [
  20329.              propget
  20330.             ,restricted, hidden
  20331.             ,id(DISPID_NEWENUM)
  20332.             ,helpcontext(0x102D0007)
  20333.             ,helpstring("Private.  Creates an enumeration object.")
  20334.         ]
  20335.         HRESULT  _NewEnum(
  20336.             [out, retval] IUnknown** prop // The enumeration object.
  20337.             );
  20338.  
  20339.         /**
  20340.          * Returns the actual vertex of the mouse click
  20341.          * 
  20342.          */
  20343.  
  20344.         [
  20345.              propget
  20346.             ,helpcontext(0x102D0008)
  20347.             ,helpstring("Returns the actual vertex of the mouse click.")
  20348.         ]
  20349.         HRESULT  PickVertex(
  20350.             [out, retval] IVertex** prop // The mouse click
  20351.             );
  20352.  
  20353.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20354.  
  20355.     };
  20356.  
  20357.     /**
  20358.      * A TurboCAD window object.
  20359.      */
  20360.     [
  20361.          object
  20362.         ,uuid(6A481124-E531-11CF-A115-00A024158DAF)
  20363.         ,oleautomation
  20364.         ,dual
  20365.         ,helpcontext(0x102E0000)
  20366.         ,helpstring("A TurboCAD window object.")
  20367.     ]
  20368.     interface Window : IDispatch
  20369.     {
  20370.  
  20371.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20372.  
  20373.         /**
  20374.          * True if the Window object is active.
  20375.          */
  20376.         [
  20377.              propget
  20378.             ,helpcontext(0x102E0001)
  20379.             ,helpstring("True if the Window object is active.")
  20380.         ]
  20381.         HRESULT  Active(
  20382.             [out, retval] IMSI_BOOL* prop // True if the Window object is active.
  20383.             );
  20384.  
  20385.         /**
  20386.          * Returns an Application object that represents the owner of the specified object.
  20387.          */
  20388.         [
  20389.              propget
  20390.             ,helpcontext(0x102E0002)
  20391.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20392.         ]
  20393.         HRESULT  Application(
  20394.             [out, retval] IApplication** prop // The Application object.
  20395.             );
  20396.  
  20397.         /**
  20398.          * Returns the text that appears in the title bar of the Window object.
  20399.          */
  20400.         [
  20401.              propget
  20402.             ,helpcontext(0x102E0003)
  20403.             ,helpstring("Returns the text that appears in the title bar of the Window object.")
  20404.         ]
  20405.         HRESULT  Caption(
  20406.             [out, retval] BSTR* prop // The title bar caption, as a string.
  20407.             );
  20408.  
  20409.         /**
  20410.          * Sets the text that appears in the title bar of the Window object.
  20411.          */
  20412.         [
  20413.              propput
  20414.             ,helpcontext(0x102E0003)
  20415.             ,helpstring("Sets the text that appears in the title bar of the Window object.")
  20416.         ]
  20417.         HRESULT  Caption(
  20418.             [in] BSTR prop // The title bar caption, as a string.
  20419.             );
  20420.  
  20421.         /**
  20422.          * True if rulers are visible.
  20423.          */
  20424.         [
  20425.              propget
  20426.             ,helpcontext(0x102E0004)
  20427.             ,helpstring("True if rulers are visible.")
  20428.             ,restricted, hidden
  20429.         ]
  20430.         HRESULT  DisplayRulers(
  20431.             [out, retval] IMSI_BOOL* prop // True if rulers are visible.
  20432.             );
  20433.  
  20434.         /**
  20435.          * True if rulers are visible.
  20436.          */
  20437.         [
  20438.              propput
  20439.             ,helpcontext(0x102E0004)
  20440.             ,helpstring("True if rulers are visible.")
  20441.             ,restricted, hidden
  20442.         ]
  20443.         HRESULT  DisplayRulers(
  20444.             [in] IMSI_BOOL prop // True if rulers are visible.
  20445.             );
  20446.  
  20447.         /**
  20448.          * True if scroll bars are visible.
  20449.          */
  20450.         [
  20451.              propget
  20452.             ,helpcontext(0x102E0005)
  20453.             ,helpstring("True if scroll bars are visible.")
  20454.             ,restricted, hidden
  20455.         ]
  20456.         HRESULT  DisplayScrollBars(
  20457.             [out, retval] IMSI_BOOL* prop // True if scroll bars are visible.
  20458.             );
  20459.  
  20460.         /**
  20461.          * True if scroll bars are visible.
  20462.          */
  20463.         [
  20464.              propput
  20465.             ,helpcontext(0x102E0005)
  20466.             ,helpstring("True if scroll bars are visible.")
  20467.             ,restricted, hidden
  20468.         ]
  20469.         HRESULT  DisplayScrollBars(
  20470.             [in] IMSI_BOOL prop // True if scroll bars are visible.
  20471.             );
  20472.  
  20473.         /**
  20474.          * Returns the height of the Window object.
  20475.          */
  20476.         [
  20477.              propget
  20478.             ,helpcontext(0x102E0006)
  20479.             ,helpstring("Returns the height of the Window object.")
  20480.         ]
  20481.         HRESULT  Height(
  20482.             [out, retval] double* prop // The height of the Window object.
  20483.             );
  20484.  
  20485.         /**
  20486.          * Sets the height of the Window object.
  20487.          */
  20488.         [
  20489.              propput
  20490.             ,helpcontext(0x102E0006)
  20491.             ,helpstring("Sets the height of the Window object.")
  20492.         ]
  20493.         HRESULT  Height(
  20494.             [in] double prop // The height of the Window object.
  20495.             );
  20496.  
  20497.         /**
  20498.          * Returns the index of the item in the collection.
  20499.          */
  20500.         [
  20501.              propget
  20502.             ,helpcontext(0x102E0007)
  20503.             ,helpstring("Returns the index of the item in the collection.")
  20504.             ,restricted, hidden
  20505.         ]
  20506.         HRESULT  Index(
  20507.             [out, retval] long* prop // The index.
  20508.             );
  20509.  
  20510.         /**
  20511.          * Returns the distance from the left edge of the physical screen to the left edge of the Window object, in points.
  20512.          */
  20513.         [
  20514.              propget
  20515.             ,helpcontext(0x102E0008)
  20516.             ,helpstring("Returns the distance from the left edge of the physical screen to the left edge of the Window object, in points.")
  20517.         ]
  20518.         HRESULT  Left(
  20519.             [out, retval] double* prop // The Window object's left edge distance.
  20520.             );
  20521.  
  20522.         /**
  20523.          * Sets the distance from the left edge of the physical screen to the left edge of the Window object, in points.
  20524.          */
  20525.         [
  20526.              propput
  20527.             ,helpcontext(0x102E0008)
  20528.             ,helpstring("Sets the distance from the left edge of the physical screen to the left edge of the Window object, in points.")
  20529.         ]
  20530.         HRESULT  Left(
  20531.             [in] double prop // The Window object's left edge distance.
  20532.             );
  20533.  
  20534.         /**
  20535.          * Returns the parent object for the specified object.
  20536.          */
  20537.         [
  20538.              propget
  20539.             ,helpcontext(0x102E0009)
  20540.             ,helpstring("Returns the parent object for the specified object.")
  20541.             ,restricted, hidden
  20542.         ]
  20543.         HRESULT  Parent(
  20544.             [out, retval] IDispatch** prop // The parent object.
  20545.             );
  20546.  
  20547.         /**
  20548.          * The distance from the top edge of the physical screen to the top edge of the Window object, in points.
  20549.          */
  20550.         [
  20551.              propget
  20552.             ,helpcontext(0x102E000A)
  20553.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the Window object, in points.")
  20554.         ]
  20555.         HRESULT  Top(
  20556.             [out, retval] double* prop // The Window object's top edge distance.
  20557.             );
  20558.  
  20559.         /**
  20560.          * The distance from the top edge of the physical screen to the top edge of the Window object, in points.
  20561.          */
  20562.         [
  20563.              propput
  20564.             ,helpcontext(0x102E000A)
  20565.             ,helpstring("The distance from the top edge of the physical screen to the top edge of the Window object, in points.")
  20566.         ]
  20567.         HRESULT  Top(
  20568.             [in] double prop // The Window object's top edge distance.
  20569.             );
  20570.  
  20571.         /**
  20572.          * Returns the type of the Window object.
  20573.          */
  20574.         [
  20575.              propget
  20576.             ,helpcontext(0x102E000B)
  20577.             ,helpstring("Returns the type of the Window object.")
  20578.         ]
  20579.         HRESULT  Type(
  20580.             [out, retval] ImsiWindowType* prop // The type of the Window object.
  20581.             );
  20582.  
  20583.         /**
  20584.          * Returns the height of the space that can be used in the Window object area (the window is not maximized).
  20585.          */
  20586.         [
  20587.              propget
  20588.             ,helpcontext(0x102E000C)
  20589.             ,helpstring("Returns the height of the space that can be used in the Window object area (the window is not maximized).")
  20590.         ]
  20591.         HRESULT  UsableHeight(
  20592.             [out, retval] double* prop // The usable height.
  20593.             );
  20594.  
  20595.         /**
  20596.          * Returns the width of the space that can be used in the Window object area (the window is not maximized).
  20597.          */
  20598.         [
  20599.              propget
  20600.             ,helpcontext(0x102E000D)
  20601.             ,helpstring("Returns the width of the space that can be used in the Window object area (the window is not maximized).")
  20602.         ]
  20603.         HRESULT  UsableWidth(
  20604.             [out, retval] double* prop // The usable width.
  20605.             );
  20606.  
  20607.         /**
  20608.          * True if the Window object is visible.
  20609.          */
  20610.         [
  20611.              propget
  20612.             ,helpcontext(0x102E000E)
  20613.             ,helpstring("True if the Window object is visible.")
  20614.         ]
  20615.         HRESULT  Visible(
  20616.             [out, retval] IMSI_BOOL* prop // True if the Window object is visible.
  20617.             );
  20618.  
  20619.         /**
  20620.          * True if the Window object is visible.
  20621.          */
  20622.         [
  20623.              propput
  20624.             ,helpcontext(0x102E000E)
  20625.             ,helpstring("True if the Window object is visible.")
  20626.         ]
  20627.         HRESULT  Visible(
  20628.             [in] IMSI_BOOL prop // True if the Window object is visible.
  20629.             );
  20630.  
  20631.         /**
  20632.          * The distance from the left edge of the application window to the right edge of the application window.
  20633.          */
  20634.         [
  20635.              propget
  20636.             ,helpcontext(0x102E000F)
  20637.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  20638.         ]
  20639.         HRESULT  Width(
  20640.             [out, retval] double* prop // The width of the Window object.
  20641.             );
  20642.  
  20643.         /**
  20644.          * The distance from the left edge of the application window to the right edge of the application window.
  20645.          */
  20646.         [
  20647.              propput
  20648.             ,helpcontext(0x102E000F)
  20649.             ,helpstring("The distance from the left edge of the application window to the right edge of the application window.")
  20650.         ]
  20651.         HRESULT  Width(
  20652.             [in] double prop // The width of the Window object.
  20653.             );
  20654.  
  20655.         /**
  20656.          * Returns the number of the window.
  20657.          */
  20658.         [
  20659.              propget
  20660.             ,helpcontext(0x102E0010)
  20661.             ,helpstring("Returns the number of the window.")
  20662.             ,restricted, hidden
  20663.         ]
  20664.         HRESULT  WindowNumber(
  20665.             [out, retval] long* prop // The window number
  20666.             );
  20667.  
  20668.         /**
  20669.          * Returns the state of the window.
  20670.          */
  20671.         [
  20672.              propget
  20673.             ,helpcontext(0x102E0011)
  20674.             ,helpstring("Returns the state of the window.")
  20675.             ,restricted, hidden
  20676.         ]
  20677.         HRESULT  WindowState(
  20678.             [out, retval] ImsiWindowState* prop // The window state.
  20679.             );
  20680.  
  20681.         /**
  20682.          * Sets the state of the window.
  20683.          */
  20684.         [
  20685.              propput
  20686.             ,helpcontext(0x102E0011)
  20687.             ,helpstring("Sets the state of the window.")
  20688.             ,restricted, hidden
  20689.         ]
  20690.         HRESULT  WindowState(
  20691.             [in] ImsiWindowState prop // The window state.
  20692.             );
  20693.  
  20694.         /**
  20695.          * Returns the zoom level as a percentage of actual size.
  20696.          */
  20697.         [
  20698.              propget
  20699.             ,helpcontext(0x102E0012)
  20700.             ,helpstring("Returns the zoom level as a percentage of actual size.")
  20701.             ,restricted, hidden
  20702.         ]
  20703.         HRESULT  Zoom(
  20704.             [out, retval] double* prop // The zoom level.
  20705.             );
  20706.  
  20707.         /**
  20708.          * Sets the zoom level as a percentage of actual size.
  20709.          */
  20710.         [
  20711.              propput
  20712.             ,helpcontext(0x102E0012)
  20713.             ,helpstring("Sets the zoom level as a percentage of actual size.")
  20714.             ,restricted, hidden
  20715.         ]
  20716.         HRESULT  Zoom(
  20717.             [in] double prop // The zoom level.
  20718.             );
  20719.  
  20720.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20721.  
  20722.         /**
  20723.          * Makes this object the active Window object.
  20724.          *
  20725.          * @see TCADAPI TCWDrawingActivate function
  20726.          */
  20727.         [
  20728.              helpcontext(0x102E0013)
  20729.             ,helpstring("Makes this object the active Window object.")
  20730.             ,restricted, hidden
  20731.         ]
  20732.         HRESULT  Activate(
  20733.             );
  20734.  
  20735.         /**
  20736.          * Closes the Window object.
  20737.          *
  20738.          * @see TCADAPI TCWDrawingClose function.
  20739.          */
  20740.         [
  20741.              helpcontext(0x102E0014)
  20742.             ,helpstring("Closes the Window object.")
  20743.             ,restricted, hidden
  20744.         ]
  20745.         HRESULT  Close(
  20746.             [in, optional] VARIANT* SaveChanges, // True to save changes.
  20747.             [in, optional] VARIANT* FileName, // Alternate file name to save as.
  20748.             [in, optional] VARIANT* Filter // Name or index of preferred filter.
  20749.             );
  20750.  
  20751.         /**
  20752.          * Scrolls a large amount.
  20753.          */
  20754.         [
  20755.              helpcontext(0x102E0015)
  20756.             ,helpstring("Scrolls a large amount.")
  20757.             ,restricted, hidden
  20758.         ]
  20759.         HRESULT  LargeScroll(
  20760.             [in, optional] VARIANT* Down, // Number of pages to scroll down.
  20761.             [in, optional] VARIANT* Up, // Number of pages to scroll up.
  20762.             [in, optional] VARIANT* ToRight, // Number of pages to scroll right.
  20763.             [in, optional] VARIANT* ToLeft // Number of pages to scroll left.
  20764.             );
  20765.  
  20766.         /**
  20767.          * Creates another Window object on this Window object's Drawing object.
  20768.          */
  20769.         [
  20770.              helpcontext(0x102E0016)
  20771.             ,helpstring("Creates another Window object on this Window object's Drawing object.")
  20772.             ,restricted, hidden
  20773.         ]
  20774.         HRESULT  NewWindow(
  20775.             [out, retval] Window** prop // The newly created Window object.
  20776.             );
  20777.  
  20778.         /**
  20779.          * Scrolls a small amount.
  20780.          */
  20781.         [
  20782.              helpcontext(0x102E0017)
  20783.             ,helpstring("Scrolls a small amount.")
  20784.             ,restricted, hidden
  20785.         ]
  20786.         HRESULT  SmallScroll(
  20787.             [in, optional] VARIANT* Down, // Number of lines to scroll down.
  20788.             [in, optional] VARIANT* Up, // Number of lines to scroll up.
  20789.             [in, optional] VARIANT* ToRight, // Number of lines to scroll right.
  20790.             [in, optional] VARIANT* ToLeft // Number of lines to scroll left.
  20791.             );
  20792.     };
  20793.  
  20794.     /**
  20795.      * The collection of TurboCAD windows.
  20796.      */
  20797.     [
  20798.          object
  20799.         ,restricted, hidden
  20800.         ,uuid(6A481125-E531-11CF-A115-00A024158DAF)
  20801.         ,oleautomation
  20802.         ,dual
  20803.         ,helpcontext(0x102F0000)
  20804.         ,helpstring("The collection of TurboCAD windows.")
  20805.     ]
  20806.     interface Windows : IDispatch
  20807.     {
  20808.  
  20809.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20810.  
  20811.         /**
  20812.          * Returns an Application object that represents the owner of the specified object.
  20813.          */
  20814.         [
  20815.              propget
  20816.             ,helpcontext(0x102F0001)
  20817.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20818.         ]
  20819.         HRESULT  Application(
  20820.             [out, retval] IApplication** prop // The Application object.
  20821.             );
  20822.  
  20823.         /**
  20824.          * Returns the number of items in the collection.
  20825.          */
  20826.         [
  20827.              propget
  20828.             ,restricted, hidden
  20829.             ,helpcontext(0x102F0002)
  20830.             ,helpstring("Returns the number of items in the collection.")
  20831.         ]
  20832.         HRESULT  Count(
  20833.             [out, retval] long* prop // The number of items.
  20834.             );
  20835.  
  20836.         /**
  20837.          * Returns part of a collection.
  20838.          */
  20839.         [
  20840.              propget
  20841.             ,restricted, hidden
  20842.             ,id(DISPID_VALUE)
  20843.             ,helpcontext(0x102F0003)
  20844.             ,helpstring("Returns part of a collection.")
  20845.         ]
  20846.         HRESULT  Item(
  20847.             [in] VARIANT* Index, // Index of item to return.
  20848.             [out, retval] Window** prop // The item.
  20849.             );
  20850.  
  20851.         /**
  20852.          * Returns the parent object for the specified object.
  20853.          */
  20854.         [
  20855.              propget
  20856.             ,restricted, hidden
  20857.             ,helpcontext(0x102F0004)
  20858.             ,helpstring("Returns the parent object for the specified object.")
  20859.         ]
  20860.         HRESULT  Parent(
  20861.             [out, retval] IDispatch** prop // The parent object.
  20862.             );
  20863.  
  20864.         /**
  20865.          * Creates an enumeration object.
  20866.          */
  20867.         [
  20868.              propget
  20869.             ,restricted, hidden
  20870.             ,id(DISPID_NEWENUM)
  20871.             ,helpcontext(0x102F0005)
  20872.             ,helpstring("Private.  Creates an enumeration object.")
  20873.         ]
  20874.         HRESULT  _NewEnum(
  20875.             [out, retval] IUnknown** prop // The enumeration object.
  20876.             );
  20877.  
  20878.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20879.  
  20880.         /**
  20881.          * Arranges all the Window objects.
  20882.          */
  20883.         [
  20884.              helpcontext(0x102F0006)
  20885.             ,helpstring("Arranges all the Window objects.")
  20886.             ,restricted, hidden
  20887.         ]
  20888.         HRESULT  Arrange(
  20889.             [in] ImsiArrangeStyle ArrangeStyle // The style to arrange.
  20890.             );
  20891.     };
  20892.  
  20893.     /**
  20894.      * An accelerator key binding.
  20895.      */
  20896.     [
  20897.          object
  20898.         ,restricted, hidden
  20899.         ,uuid(6A481126-E531-11CF-A115-00A024158DAF)
  20900.         ,oleautomation
  20901.         ,dual
  20902.         ,helpcontext(0x10300000)
  20903.         ,helpstring("An accelerator key binding.")
  20904.     ]
  20905.     interface KeyBinding : IDispatch
  20906.     {
  20907.  
  20908.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  20909.  
  20910.         /**
  20911.          * Returns an Application object that represents the owner of the specified object.
  20912.          */
  20913.         [
  20914.              propget
  20915.             ,helpcontext(0x10300001)
  20916.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  20917.         ]
  20918.         HRESULT  Application(
  20919.             [out, retval] IApplication** prop // The Application object.
  20920.             );
  20921.  
  20922.         /**
  20923.          * Returns the command associated with the key, as a string.
  20924.          */
  20925.         [
  20926.              propget
  20927.             ,helpcontext(0x10300002)
  20928.             ,helpstring("Returns the command associated with the key, as a string.")
  20929.         ]
  20930.         HRESULT  Command(
  20931.             [out, retval] BSTR* prop // The command associated with the key.
  20932.             );
  20933.  
  20934.         /**
  20935.          * Returns the command parameter associated with the key, as a string.
  20936.          */
  20937.         [
  20938.              propget
  20939.             ,helpcontext(0x10300003)
  20940.             ,helpstring("Returns the command parameter associated with the key, as a string.")
  20941.         ]
  20942.         HRESULT  CommandParameter(
  20943.             [out, retval] BSTR* prop // The command parameter associated with the key.
  20944.             );
  20945.  
  20946.         /**
  20947.          * True if the object is enabled.
  20948.          */
  20949.         [
  20950.              propget
  20951.             ,helpcontext(0x10300004)
  20952.             ,helpstring("True if the object is enabled.")
  20953.         ]
  20954.         HRESULT  Enabled(
  20955.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  20956.             );
  20957.  
  20958.         /**
  20959.          * True if the object is enabled.
  20960.          */
  20961.         [
  20962.              propput
  20963.             ,helpcontext(0x10300004)
  20964.             ,helpstring("True if the object is enabled.")
  20965.         ]
  20966.         HRESULT  Enabled(
  20967.             [in] IMSI_BOOL prop // True if the object is enabled.
  20968.             );
  20969.  
  20970.         /**
  20971.          * Returns the index of the item in the collection.
  20972.          */
  20973.         [
  20974.              propget
  20975.             ,helpcontext(0x10300005)
  20976.             ,helpstring("Returns the index of the item in the collection.")
  20977.         ]
  20978.         HRESULT  Index(
  20979.             [out, retval] long* prop // The index.
  20980.             );
  20981.  
  20982.         /**
  20983.          * Returns the category of the key.
  20984.          */
  20985.         [
  20986.              propget
  20987.             ,helpcontext(0x10300006)
  20988.             ,helpstring("Returns the category of the key.")
  20989.         ]
  20990.         HRESULT  KeyCategory(
  20991.             [out, retval] ImsiKeyCategory* prop // The category of the key.
  20992.             );
  20993.  
  20994.         /**
  20995.          * Returns the first code value of the key.
  20996.          */
  20997.         [
  20998.              propget
  20999.             ,helpcontext(0x10300007)
  21000.             ,helpstring("Returns the first code value of the key.")
  21001.         ]
  21002.         HRESULT  KeyCode(
  21003.             [out, retval] long* prop // The first code value.
  21004.             );
  21005.  
  21006.         /**
  21007.          * Returns the second code value of the key.
  21008.          */
  21009.         [
  21010.              propget
  21011.             ,helpcontext(0x10300008)
  21012.             ,helpstring("Returns the second code value of the key.")
  21013.         ]
  21014.         HRESULT  KeyCode2(
  21015.             [out, retval] long* prop // The second code value.
  21016.             );
  21017.  
  21018.         /**
  21019.          * Returns the user visible string associated with the key, as a string.
  21020.          */
  21021.         [
  21022.              propget
  21023.             ,helpcontext(0x10300009)
  21024.             ,helpstring("Returns the user visible string associated with the key, as a string.")
  21025.         ]
  21026.         HRESULT  KeyString(
  21027.             [out, retval] BSTR* prop // The user visible string associated with the key.
  21028.             );
  21029.  
  21030.         /**
  21031.          * Returns the parent object for the specified object.
  21032.          */
  21033.         [
  21034.              propget
  21035.             ,helpcontext(0x1030000A)
  21036.             ,helpstring("Returns the parent object for the specified object.")
  21037.         ]
  21038.         HRESULT  Parent(
  21039.             [out, retval] IDispatch** prop // The parent object.
  21040.             );
  21041.  
  21042.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21043.  
  21044.         /**
  21045.          * Deletes the object.
  21046.          */
  21047.         [
  21048.              helpcontext(0x1030000B)
  21049.             ,helpstring("Deletes the object.")
  21050.         ]
  21051.         HRESULT  Delete(
  21052.             );
  21053.  
  21054.         /**
  21055.          * Performs the action specified by the KeyBinding object.
  21056.          */
  21057.         [
  21058.              helpcontext(0x1030000C)
  21059.             ,helpstring("Performs the action specified by the KeyBinding object.")
  21060.         ]
  21061.         HRESULT  Execute(
  21062.             );
  21063.  
  21064.         /**
  21065.          * Binds the key to a new command.
  21066.          */
  21067.         [
  21068.              helpcontext(0x1030000D)
  21069.             ,helpstring("Binds the key to a new command.")
  21070.         ]
  21071.         HRESULT  Rebind(
  21072.             [in] ImsiKeyCategory KeyCategory, // Category of the key.
  21073.             [in] BSTR Command, // Name of the command associate with the key.
  21074.             [in, optional] VARIANT* CommandParameter // Command parameter string.
  21075.             );
  21076.     };
  21077.  
  21078.     /**
  21079.      * The collection of accelerator key bindings.
  21080.      */
  21081.     [
  21082.          object
  21083.         ,restricted, hidden
  21084.         ,uuid(6A481127-E531-11CF-A115-00A024158DAF)
  21085.         ,oleautomation
  21086.         ,dual
  21087.         ,helpcontext(0x10310000)
  21088.         ,helpstring("The collection of accelerator key bindings.")
  21089.     ]
  21090.     interface KeyBindings : IDispatch
  21091.     {
  21092.  
  21093.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21094.  
  21095.         /**
  21096.          * Returns an Application object that represents the owner of the specified object.
  21097.          */
  21098.         [
  21099.              propget
  21100.             ,helpcontext(0x10310001)
  21101.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21102.         ]
  21103.         HRESULT  Application(
  21104.             [out, retval] IApplication** prop // The Application object.
  21105.             );
  21106.  
  21107.         /**
  21108.          * Returns the number of items in the collection.
  21109.          */
  21110.         [
  21111.              propget
  21112.             ,helpcontext(0x10310002)
  21113.             ,helpstring("Returns the number of items in the collection.")
  21114.         ]
  21115.         HRESULT  Count(
  21116.             [out, retval] long* prop // The number of items.
  21117.             );
  21118.  
  21119.         /**
  21120.          * Returns part of a collection.
  21121.          */
  21122.         [
  21123.              propget
  21124.             ,id(DISPID_VALUE)
  21125.             ,helpcontext(0x10310003)
  21126.             ,helpstring("Returns part of a collection.")
  21127.         ]
  21128.         HRESULT  Item(
  21129.             [in] VARIANT* Index, // Index of item to return.
  21130.             [out, retval] KeyBinding** prop // The item.
  21131.             );
  21132.  
  21133.         /**
  21134.          * Returns the parent object for the specified object.
  21135.          */
  21136.         [
  21137.              propget
  21138.             ,helpcontext(0x10310004)
  21139.             ,helpstring("Returns the parent object for the specified object.")
  21140.         ]
  21141.         HRESULT  Parent(
  21142.             [out, retval] IDispatch** prop // The parent object.
  21143.             );
  21144.  
  21145.         /**
  21146.          * Creates an enumeration object.
  21147.          */
  21148.         [
  21149.              propget
  21150.             ,restricted
  21151.             ,id(DISPID_NEWENUM)
  21152.             ,helpcontext(0x10310005)
  21153.             ,helpstring("Private.  Creates an enumeration object.")
  21154.         ]
  21155.         HRESULT  _NewEnum(
  21156.             [out, retval] IUnknown** prop // The enumeration object.
  21157.             );
  21158.  
  21159.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21160.  
  21161.         /**
  21162.          * Adds a KeyBinding object to the collection.
  21163.          */
  21164.         [
  21165.              helpcontext(0x10310006)
  21166.             ,helpstring("Adds a KeyBinding object to the collection.")
  21167.         ]
  21168.         HRESULT  Add(
  21169.             [in] ImsiKeyCategory KeyCategory, // Category of the new key.
  21170.             [in] BSTR Command, // Command associated with the key.
  21171.             [in] long KeyCode, // First key code value.
  21172.             [in] VARIANT* KeyCode2, // Second key code value.
  21173.             [in, optional] VARIANT* CommandParameter, // Command parameter associated with the key.
  21174.             [out, retval] KeyBinding** prop // New KeyBinding object created.
  21175.             );
  21176.  
  21177.         /**
  21178.          * Removes all KeyBinding objects from the collection.
  21179.          */
  21180.         [
  21181.              helpcontext(0x10310007)
  21182.             ,helpstring("Removes all KeyBinding objects from the collection.")
  21183.         ]
  21184.         HRESULT  ClearAll(
  21185.             );
  21186.  
  21187.         /**
  21188.          * Sets the current configuration of the KeyBindings collection to a file.
  21189.          */
  21190.         [
  21191.              helpcontext(0x10310008)
  21192.             ,helpstring("Sets the current configuration of the KeyBindings collection to a file.")
  21193.         ]
  21194.         HRESULT  Open(
  21195.             [in] BSTR FileName // The name of the file.
  21196.             );
  21197.  
  21198.         /**
  21199.          * Finds a KeyBinding object within the collection.
  21200.          */
  21201.         [
  21202.              helpcontext(0x10310009)
  21203.             ,helpstring("Finds a KeyBinding object within the collection.")
  21204.         ]
  21205.         HRESULT  Key(
  21206.             [in] long KeyCode, // First key value.
  21207.             [in] VARIANT* KeyCode2, // Second key value.
  21208.             [out, retval] KeyBinding** prop // KeyBinding object found.
  21209.             );
  21210.  
  21211.         /**
  21212.          * Saves the current configuration of the KeyBindings collection to a file.
  21213.          */
  21214.         [
  21215.              helpcontext(0x1031000A)
  21216.             ,helpstring("Saves the current configuration of the KeyBindings collection to a file.")
  21217.         ]
  21218.         HRESULT  Save(
  21219.             [in] BSTR FileName // The name of the file.
  21220.             );
  21221.  
  21222.     };
  21223.  
  21224.     /**
  21225.      * A customizable command bar.
  21226.      */
  21227.     [
  21228.          object
  21229.         ,restricted, hidden
  21230.         ,uuid(6A48112A-E531-11CF-A115-00A024158DAF)
  21231.         ,oleautomation
  21232.         ,dual
  21233.         ,helpcontext(0x10320000)
  21234.         ,helpstring("A customizable command bar.")
  21235.     ]
  21236.     interface CommandBar : IDispatch
  21237.     {
  21238.  
  21239.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21240.  
  21241.         /**
  21242.          * Returns an Application object that represents the owner of the specified CommandBar object.
  21243.          */
  21244.         [
  21245.              propget
  21246.             ,helpcontext(0x10320001)
  21247.             ,helpstring("Returns an Application object that represents the creator of the specified CommandBar object.")
  21248.         ]
  21249.         HRESULT  Application(
  21250.             [out, retval] IApplication** prop // The Application object.
  21251.             );
  21252.  
  21253.         /**
  21254.          * True if the CommandBar object is built-in.
  21255.          */
  21256.         [
  21257.              propget
  21258.             ,helpcontext(0x10320002)
  21259.             ,helpstring("True if the CommandBar object is built-in.")
  21260.         ]
  21261.         HRESULT  Builtin(
  21262.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is built-in.
  21263.             );
  21264.  
  21265.         /**
  21266.          * Returns the CommandBarControls collection.
  21267.          */
  21268.         [
  21269.              propget
  21270.             ,helpcontext(0x10320003)
  21271.             ,helpstring("Returns the CommandBarControls collection.")
  21272.         ]
  21273.         HRESULT  Controls(
  21274.             [out, retval] CommandBarControls** prop // The CommandBarControls collection.
  21275.             );
  21276.  
  21277.         /**
  21278.          * True if the CommandBar object is enabled.
  21279.          */
  21280.         [
  21281.              propget
  21282.             ,helpcontext(0x10320004)
  21283.             ,helpstring("True if the CommandBar object is enabled.")
  21284.         ]
  21285.         HRESULT  Enabled(
  21286.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is enabled.
  21287.             );
  21288.  
  21289.         /**
  21290.          * True if the CommandBar object is enabled.
  21291.          */
  21292.         [
  21293.              propput
  21294.             ,helpcontext(0x10320004)
  21295.             ,helpstring("True if the CommandBar object is enabled.")
  21296.         ]
  21297.         HRESULT  Enabled(
  21298.             [in] IMSI_BOOL prop // True if the CommandBar object is enabled.
  21299.             );
  21300.  
  21301.         /**
  21302.          * Returns the height of the CommandBar object.
  21303.          */
  21304.         [
  21305.              propget
  21306.             ,helpcontext(0x10320005)
  21307.             ,helpstring("Returns the height of the CommandBar object.")
  21308.         ]
  21309.         HRESULT  Height(
  21310.             [out, retval] double* prop // The height of the CommandBar object.
  21311.             );
  21312.  
  21313.         /**
  21314.          * Sets the height of the CommandBar object.
  21315.          */
  21316.         [
  21317.              propput
  21318.             ,helpcontext(0x10320005)
  21319.             ,helpstring("Sets the height of the CommandBar object.")
  21320.         ]
  21321.         HRESULT  Height(
  21322.             [in] double prop // The height of the CommandBar object.
  21323.             );
  21324.  
  21325.         /**
  21326.          * Returns the index of the item in the collection.
  21327.          */
  21328.         [
  21329.              propget
  21330.             ,helpcontext(0x10320006)
  21331.             ,helpstring("Returns the index of the item in the collection.")
  21332.         ]
  21333.         HRESULT  Index(
  21334.             [out, retval] long* prop // The index.
  21335.             );
  21336.  
  21337.         /**
  21338.          * Returns the horizontal position of the CommandBar object.
  21339.          */
  21340.         [
  21341.              propget
  21342.             ,helpcontext(0x10320007)
  21343.             ,helpstring("Returns the horizontal position of the CommandBar object.")
  21344.         ]
  21345.         HRESULT  Left(
  21346.             [out, retval] double* prop // The horizontal position of the CommandBar object.
  21347.             );
  21348.  
  21349.         /**
  21350.          * Sets the horizontal position of the CommandBar object.
  21351.          */
  21352.         [
  21353.              propput
  21354.             ,helpcontext(0x10320007)
  21355.             ,helpstring("Sets the horizontal position of the CommandBar object.")
  21356.         ]
  21357.         HRESULT  Left(
  21358.             [in] double prop // The horizontal position of the CommandBar object.
  21359.             );
  21360.  
  21361.         /**
  21362.          * Returns the name of the CommandBar object, as a string.
  21363.          */
  21364.         [
  21365.              propget
  21366.             ,helpcontext(0x10320008)
  21367.             ,helpstring("Returns the name of the CommandBar object, as a string.")
  21368.         ]
  21369.         HRESULT  Name(
  21370.             [out, retval] BSTR* prop // The name of the CommandBar object.
  21371.             );
  21372.  
  21373.         /**
  21374.          * Sets the name of the CommandBar object.
  21375.          */
  21376.         [
  21377.              propput
  21378.             ,helpcontext(0x10320008)
  21379.             ,helpstring("Sets the name of the CommandBar object.")
  21380.         ]
  21381.         HRESULT  Name(
  21382.             [in] BSTR prop // The name of the CommandBar object.
  21383.             );
  21384.  
  21385.         /**
  21386.          * Returns the parent of the specified CommandBar object.
  21387.          */
  21388.         [
  21389.              propget
  21390.             ,helpcontext(0x10320009)
  21391.             ,helpstring("Returns the parent of the specified CommandBar object.")
  21392.         ]
  21393.         HRESULT  Parent(
  21394.             [out, retval] IDispatch** prop // The parent object.
  21395.             );
  21396.  
  21397.         /**
  21398.          * Returns the position of the CommandBar object.
  21399.          */
  21400.         [
  21401.              propget
  21402.             ,helpcontext(0x1032000A)
  21403.             ,helpstring("Returns the position of the CommandBar object.")
  21404.         ]
  21405.         HRESULT  Position(
  21406.             [out, retval] ImsiBarPosition* prop // The position of the CommandBar object.
  21407.             );
  21408.  
  21409.         /**
  21410.          * Sets the position of the CommandBar object.
  21411.          */
  21412.         [
  21413.              propput
  21414.             ,helpcontext(0x1032000A)
  21415.             ,helpstring("Sets the position of the CommandBar object.")
  21416.         ]
  21417.         HRESULT  Position(
  21418.             [in] ImsiBarPosition prop // The position of the CommandBar object.
  21419.             );
  21420.  
  21421.         /**
  21422.          * Returns the CommandBar object's protection mask.
  21423.          */
  21424.         [
  21425.              propget
  21426.             ,helpcontext(0x1032000B)
  21427.             ,helpstring("Returns the CommandBar object's protection mask.")
  21428.         ]
  21429.         HRESULT  Protection(
  21430.             [out, retval] ImsiBarProtection* prop // The CommandBar object's protection mask.
  21431.             );
  21432.  
  21433.         /**
  21434.          * Sets the CommandBar object's protection mask.
  21435.          */
  21436.         [
  21437.              propput
  21438.             ,helpcontext(0x1032000B)
  21439.             ,helpstring("Sets the CommandBar object's protection mask.")
  21440.         ]
  21441.         HRESULT  Protection(
  21442.             [in] ImsiBarProtection prop // The CommandBar object's protection mask.
  21443.             );
  21444.  
  21445.         /**
  21446.          * Returns the row number of the CommandBar object's location.
  21447.          */
  21448.         [
  21449.              propget
  21450.             ,helpcontext(0x1032000C)
  21451.             ,helpstring("Returns the row number of the CommandBar object's location.")
  21452.         ]
  21453.         HRESULT  RowIndex(
  21454.             [out, retval] long* prop // The row number of the CommandBar object's location.
  21455.             );
  21456.  
  21457.         /**
  21458.          * Sets the row number of the CommandBar object's location.
  21459.          */
  21460.         [
  21461.              propput
  21462.             ,helpcontext(0x1032000C)
  21463.             ,helpstring("Sets the row number of the CommandBar object's location.")
  21464.         ]
  21465.         HRESULT  RowIndex(
  21466.             [in] long prop // The row number of the CommandBar object's location.
  21467.             );
  21468.  
  21469.         /**
  21470.          * Returns the tab number of the CommandBar object's location.
  21471.          */
  21472.         [
  21473.              propget
  21474.             ,helpcontext(0x1032000D)
  21475.             ,helpstring("Returns the tab number of the CommandBar object's location.")
  21476.         ]
  21477.         HRESULT  TabIndex(
  21478.             [out, retval] long* prop // The tab number of the CommandBar object's location.
  21479.             );
  21480.  
  21481.         /**
  21482.          * Sets the tab number of the CommandBar object's location.
  21483.          */
  21484.         [
  21485.              propput
  21486.             ,helpcontext(0x1032000D)
  21487.             ,helpstring("Sets the tab number of the CommandBar object's location.")
  21488.         ]
  21489.         HRESULT  TabIndex(
  21490.             [in] long prop // The tab number of the CommandBar object's location.
  21491.             );
  21492.  
  21493.         /**
  21494.          * Returns the CommandBars collection.
  21495.          */
  21496.         [
  21497.              propget
  21498.             ,helpcontext(0x1032000E)
  21499.             ,helpstring("Returns the CommandBars collection.")
  21500.         ]
  21501.         HRESULT  Tabs(
  21502.             [out, retval] CommandBars** prop // The CommandBars collection.
  21503.             );
  21504.  
  21505.         /**
  21506.          * True if the CommandBar object is temporary.
  21507.          */
  21508.         [
  21509.              propget
  21510.             ,helpcontext(0x1032000F)
  21511.             ,helpstring("True if the CommandBar object is temporary.")
  21512.         ]
  21513.         HRESULT  Temporary(
  21514.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is temporary.
  21515.             );
  21516.  
  21517.         /**
  21518.          * True if the CommandBar object is temporary.
  21519.          */
  21520.         [
  21521.              propput
  21522.             ,helpcontext(0x1032000F)
  21523.             ,helpstring("True if the CommandBar object is temporary.")
  21524.         ]
  21525.         HRESULT  Temporary(
  21526.             [in] IMSI_BOOL prop // True if the CommandBar object is temporary.
  21527.             );
  21528.  
  21529.         /**
  21530.          * Returns the vertical position of the CommandBar object.
  21531.          */
  21532.         [
  21533.              propget
  21534.             ,helpcontext(0x10320010)
  21535.             ,helpstring("Returns the vertical position of the CommandBar object.")
  21536.         ]
  21537.         HRESULT  Top(
  21538.             [out, retval] double* prop // The vertical position of the CommandBar object.
  21539.             );
  21540.  
  21541.         /**
  21542.          * Sets the vertical position of the CommandBar object.
  21543.          */
  21544.         [
  21545.              propput
  21546.             ,helpcontext(0x10320010)
  21547.             ,helpstring("Sets the vertical position of the CommandBar object.")
  21548.         ]
  21549.         HRESULT  Top(
  21550.             [in] double prop // The vertical position of the CommandBar object.
  21551.             );
  21552.  
  21553.         /**
  21554.          * Returns the type of the CommandBar object.
  21555.          */
  21556.         [
  21557.              propget
  21558.             ,helpcontext(0x10320011)
  21559.             ,helpstring("Returns the type of the CommandBar object.")
  21560.         ]
  21561.         HRESULT  Type(
  21562.             [out, retval] ImsiBarType* prop // The type of the CommandBar object.
  21563.             );
  21564.  
  21565.         /**
  21566.          * True if the CommandBar object is visible.
  21567.          */
  21568.         [
  21569.              propget
  21570.             ,helpcontext(0x10320012)
  21571.             ,helpstring("True if the CommandBar object is visible.")
  21572.         ]
  21573.         HRESULT  Visible(
  21574.             [out, retval] IMSI_BOOL* prop // True if the CommandBar object is visible.
  21575.             );
  21576.  
  21577.         /**
  21578.          * True if the CommandBar object is visible.
  21579.          */
  21580.         [
  21581.              propput
  21582.             ,helpcontext(0x10320012)
  21583.             ,helpstring("True if the CommandBar object is visible.")
  21584.         ]
  21585.         HRESULT  Visible(
  21586.             [in] IMSI_BOOL prop // True if the CommandBar object is visible.
  21587.             );
  21588.  
  21589.         /**
  21590.          * Returns the width of the CommandBar object.
  21591.          */
  21592.         [
  21593.              propget
  21594.             ,helpcontext(0x10320013)
  21595.             ,helpstring("Returns the width of the CommandBar object.")
  21596.         ]
  21597.         HRESULT  Width(
  21598.             [out, retval] double* prop // The width of the CommandBar object.
  21599.             );
  21600.  
  21601.         /**
  21602.          * Sets the width of the CommandBar object.
  21603.          */
  21604.         [
  21605.              propput
  21606.             ,helpcontext(0x10320013)
  21607.             ,helpstring("Sets the width of the CommandBar object.")
  21608.         ]
  21609.         HRESULT  Width(
  21610.             [in] double prop // The width of the CommandBar object.
  21611.             );
  21612.  
  21613.         /**
  21614.          * Private.  Returns information about the __CommandBar object.
  21615.          */
  21616.         [
  21617.              propget
  21618.             ,restricted
  21619.             ,helpcontext(0x10320014)
  21620.             ,helpstring("Private.  Returns information about the __CommandBar object.")
  21621.         ]
  21622.         HRESULT  _Info(
  21623.             [out, retval] long* prop // Private information.
  21624.             );
  21625.  
  21626.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21627.  
  21628.         /**
  21629.          * Deletes the object.
  21630.          */
  21631.         [
  21632.              helpcontext(0x10320015)
  21633.             ,helpstring("Deletes the object.")
  21634.         ]
  21635.         HRESULT  Delete(
  21636.             );
  21637.  
  21638.         /**
  21639.          * Finds a CommandBarControl object within the collection.
  21640.          */
  21641.         [
  21642.              helpcontext(0x10320016)
  21643.             ,helpstring("Finds a CommandBarControl object within the collection.")
  21644.         ]
  21645.         HRESULT  FindControl(
  21646.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  21647.             [in, optional] VARIANT* Id, // The ID of the CommandBarControl object.
  21648.             [in, optional] VARIANT* Tag, // The name of the CommandBarControl object.
  21649.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  21650.             [in, optional] VARIANT* Recursive, // True to search all descendant CommandBar objects.
  21651.             [out, retval] CommandBarControl** prop // The CommandBarControl object found.
  21652.             );
  21653.  
  21654.         /**
  21655.          * Resets the CommandBar object to its initial state.
  21656.          */
  21657.         [
  21658.              helpcontext(0x10320017)
  21659.             ,helpstring("Resets the CommandBar object to its initial state.")
  21660.         ]
  21661.         HRESULT  Reset(
  21662.             );
  21663.  
  21664.     };
  21665.  
  21666.     /**
  21667.      * The collection of customizable command bars.
  21668.      */
  21669.     [
  21670.          object
  21671.         ,restricted, hidden
  21672.         ,uuid(6A48112B-E531-11CF-A115-00A024158DAF)
  21673.         ,oleautomation
  21674.         ,dual
  21675.         ,helpcontext(0x10330000)
  21676.         ,helpstring("The collection of customizable command bars.")
  21677.     ]
  21678.     interface CommandBars : IDispatch
  21679.     {
  21680.  
  21681.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21682.  
  21683.         /**
  21684.          * Returns the active menu bar.
  21685.          */
  21686.         [
  21687.              propget
  21688.             ,helpcontext(0x10330001)
  21689.             ,helpstring("Returns the active menu bar.")
  21690.         ]
  21691.         HRESULT  ActiveMenuBar(
  21692.             [out, retval] CommandBar** prop // The active menu bar.
  21693.             );
  21694.  
  21695.         /**
  21696.          * Returns an Application object that represents the owner of the specified object.
  21697.          */
  21698.         [
  21699.              propget
  21700.             ,helpcontext(0x10330002)
  21701.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21702.         ]
  21703.         HRESULT  Application(
  21704.             [out, retval] IApplication** prop // The Application object.
  21705.             );
  21706.  
  21707.         /**
  21708.          * Returns the number of items in the collection.
  21709.          */
  21710.         [
  21711.              propget
  21712.             ,helpcontext(0x10330003)
  21713.             ,helpstring("Returns the number of items in the collection.")
  21714.         ]
  21715.         HRESULT  Count(
  21716.             [out, retval] long* prop // The number of items.
  21717.             );
  21718.  
  21719.         /**
  21720.          * Returns part of a collection.
  21721.          */
  21722.         [
  21723.              propget
  21724.             ,id(DISPID_VALUE)
  21725.             ,helpcontext(0x10330004)
  21726.             ,helpstring("Returns part of a collection.")
  21727.         ]
  21728.         HRESULT  Item(
  21729.             [in] VARIANT* Index, // Index of item to return.
  21730.             [out, retval] CommandBar** prop // The item.
  21731.             );
  21732.  
  21733.         /**
  21734.          * Returns the parent object for the specified object.
  21735.          */
  21736.         [
  21737.              propget
  21738.             ,helpcontext(0x10330005)
  21739.             ,helpstring("Returns the parent object for the specified object.")
  21740.         ]
  21741.         HRESULT  Parent(
  21742.             [out, retval] IDispatch** prop // The parent object.
  21743.             );
  21744.  
  21745.         /**
  21746.          * Creates an enumeration object.
  21747.          */
  21748.         [
  21749.              propget
  21750.             ,restricted
  21751.             ,id(DISPID_NEWENUM)
  21752.             ,helpcontext(0x10330006)
  21753.             ,helpstring("Private.  Creates an enumeration object.")
  21754.         ]
  21755.         HRESULT  _NewEnum(
  21756.             [out, retval] IUnknown** prop // The enumeration object.
  21757.             );
  21758.  
  21759.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21760.  
  21761.         /**
  21762.          * Adds a new CommandBar object to the collection.
  21763.          */
  21764.         [
  21765.              helpcontext(0x10330007)
  21766.             ,helpstring("Adds a new CommandBar object to the collection.")
  21767.         ]
  21768.         HRESULT  Add(
  21769.             [in] BSTR Name, // The name of the new CommandBar object.
  21770.             [in, optional] VARIANT* Position, // The index of the new CommandBar object.
  21771.             [in, optional] VARIANT* MenuBar, // Which bar to add the object to.
  21772.             [in, optional] VARIANT* Temporary, // True if the CommandBar object is temporary.
  21773.             [out, retval] CommandBar** prop // The new CommandBar object object.
  21774.             );
  21775.  
  21776.         /**
  21777.          * Adds an existing CommandBar object to the collection.
  21778.          */
  21779.         [
  21780.              helpcontext(0x10330008)
  21781.             ,helpstring("Adds an existing CommandBar object to the collection.")
  21782.         ]
  21783.         HRESULT  AddTabbedBar(
  21784.             [in] CommandBar* prop, // The CommandBar object object.
  21785.             [in, optional] VARIANT* Position // The index of the CommandBar object.
  21786.             );
  21787.  
  21788.         /**
  21789.          * Finds a CommandBarControl object within the collection.
  21790.          */
  21791.         [
  21792.              helpcontext(0x10330009)
  21793.             ,helpstring("Finds a CommandBarControl object within the collection.")
  21794.         ]
  21795.         HRESULT  FindControl(
  21796.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  21797.             [in, optional] VARIANT* Id, // The ID of the CommandBarControl object.
  21798.             [in, optional] VARIANT* Tag, // The user-defined tag of the CommandBarControl object.
  21799.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  21800.             [out, retval] CommandBarControl** prop // The CommandBarControl object found.
  21801.             );
  21802.  
  21803.         /**
  21804.          * Finds the ID of a CommandBarControl object within the collection.
  21805.          */
  21806.         [
  21807.              helpcontext(0x1033000A)
  21808.             ,helpstring("Finds the ID of a CommandBarControl object within the collection.")
  21809.         ]
  21810.         HRESULT  FindControlId(
  21811.             [in] ImsiControlType Type, // The type of the CommandBarControl object.
  21812.             [in, optional] VARIANT* CommandName, // The command name of the CommandBarControl object.
  21813.             [in, optional] VARIANT* Caption, // The name of the CommandBarControl object.
  21814.             [in, optional] VARIANT* Tag, // The user-defined tag of the CommandBarControl object.
  21815.             [in, optional] VARIANT* Visible, // True if the CommandBarControl object is visible.
  21816.             [out, retval] long* prop // The ID of the CommandBarControl object.
  21817.             );
  21818.  
  21819.         /**
  21820.          * Sets the current configuration of the CommandBars collection to a file.
  21821.          */
  21822.         [
  21823.              helpcontext(0x1033000B)
  21824.             ,helpstring("Sets the current configuration of the CommandBars collection to a file.")
  21825.         ]
  21826.         HRESULT  Open(
  21827.             [in] BSTR FileName, // The name of the file.
  21828.             [in, optional] VARIANT* Sections // Which sections of the file to open.
  21829.             );
  21830.  
  21831.         /**
  21832.          * Saves the current configuration of the CommandBars collection to a file.
  21833.          */
  21834.         [
  21835.              helpcontext(0x1033000C)
  21836.             ,helpstring("Saves the current configuration of the CommandBars collection to a file.")
  21837.         ]
  21838.         HRESULT  Save(
  21839.             [in] BSTR FileName, // The name of the file.
  21840.             [in, optional] VARIANT* Sections // Which sections of the file to save.
  21841.             );
  21842.     };
  21843.  
  21844.     /**
  21845.      * A command bar control.
  21846.      */
  21847.     [
  21848.          object
  21849.         ,restricted, hidden
  21850.         ,uuid(6A48113F-E531-11CF-A115-00A024158DAF)
  21851.         ,oleautomation
  21852.         ,dual
  21853.         ,helpcontext(0x10340000)
  21854.         ,helpstring("A command bar control.")
  21855.     ]
  21856.     interface CommandBarControl : IDispatch
  21857.     {
  21858.  
  21859.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  21860.  
  21861.         /**
  21862.          * Returns an Application object that represents the owner of the specified object.
  21863.          */
  21864.         [
  21865.              propget
  21866.             ,helpcontext(0x10340001)
  21867.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  21868.         ]
  21869.         HRESULT  Application(
  21870.             [out, retval] IApplication** prop // The Application object.
  21871.             );
  21872.  
  21873.         /**
  21874.          * True if the CommandBarControl object is the first in a group.
  21875.          */
  21876.         [
  21877.              propget
  21878.             ,helpcontext(0x10340002)
  21879.             ,helpstring("True if the CommandBarControl object is the first in a group.")
  21880.         ]
  21881.         HRESULT  BeginGroup(
  21882.             [out, retval] IMSI_BOOL* prop // True if the CommandBarControl object is the first in a group.
  21883.             );
  21884.  
  21885.         /**
  21886.          * True if the CommandBarControl object is the first in a group.
  21887.          */
  21888.         [
  21889.              propput
  21890.             ,helpcontext(0x10340002)
  21891.             ,helpstring("True if the CommandBarControl object is the first in a group.")
  21892.         ]
  21893.         HRESULT  BeginGroup(
  21894.             [in] IMSI_BOOL prop // True if the CommandBarControl object is the first in a group.
  21895.             );
  21896.  
  21897.         /**
  21898.          * True if the object is built-in.
  21899.          */
  21900.         [
  21901.              propget
  21902.             ,helpcontext(0x10340003)
  21903.             ,helpstring("True if the object is built-in.")
  21904.         ]
  21905.         HRESULT  Builtin(
  21906.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  21907.             );
  21908.  
  21909.         /**
  21910.          * Returns the caption of the object, as a string.
  21911.          */
  21912.         [
  21913.              propget
  21914.             ,helpcontext(0x10340004)
  21915.             ,helpstring("Returns the caption of the object, as a string.")
  21916.         ]
  21917.         HRESULT  Caption(
  21918.             [out, retval] BSTR* prop // The caption of the object.
  21919.             );
  21920.  
  21921.         /**
  21922.          * Sets the caption of the object.
  21923.          */
  21924.         [
  21925.              propput
  21926.             ,helpcontext(0x10340004)
  21927.             ,helpstring("Sets the caption of the object.")
  21928.         ]
  21929.         HRESULT  Caption(
  21930.             [in] BSTR prop // The caption of the object.
  21931.             );
  21932.  
  21933.         /**
  21934.          * Returns the CommandBar object of a popup control.
  21935.          */
  21936.         [
  21937.              propget
  21938.             ,helpcontext(0x10340005)
  21939.             ,helpstring("Returns the CommandBar object of a popup control.")
  21940.         ]
  21941.         HRESULT  CommandBar(
  21942.             [out, retval] CommandBar** prop // The CommandBar object.
  21943.             );
  21944.  
  21945.         /**
  21946.          * Returns the CommandBarControls collection of a popup control.
  21947.          */
  21948.         [
  21949.              propget
  21950.             ,helpcontext(0x10340006)
  21951.             ,helpstring("Returns the CommandBarControls collection of a popup control.")
  21952.         ]
  21953.         HRESULT  Controls(
  21954.             [out, retval] CommandBarControls** prop // The CommandBarControls collection.
  21955.             );
  21956.  
  21957.         /**
  21958.          * Returns the description of the object, as a string.
  21959.          */
  21960.         [
  21961.              propget
  21962.             ,helpcontext(0x10340007)
  21963.             ,helpstring("Returns the description of the object, as a string.")
  21964.         ]
  21965.         HRESULT  Description(
  21966.             [out, retval] BSTR* prop // The description of the object.
  21967.             );
  21968.  
  21969.         /**
  21970.          * Sets the description of the object.
  21971.          */
  21972.         [
  21973.              propput
  21974.             ,helpcontext(0x10340007)
  21975.             ,helpstring("Sets the description of the object.")
  21976.         ]
  21977.         HRESULT  Description(
  21978.             [in] BSTR prop // The description of the object.
  21979.             );
  21980.  
  21981.         /**
  21982.          * True if the object is enabled.
  21983.          */
  21984.         [
  21985.              propget
  21986.             ,helpcontext(0x10340008)
  21987.             ,helpstring("True if the object is enabled.")
  21988.         ]
  21989.         HRESULT  Enabled(
  21990.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  21991.             );
  21992.  
  21993.         /**
  21994.          * True if the object is enabled.
  21995.          */
  21996.         [
  21997.              propput
  21998.             ,helpcontext(0x10340008)
  21999.             ,helpstring("True if the object is enabled.")
  22000.         ]
  22001.         HRESULT  Enabled(
  22002.             [in] IMSI_BOOL prop // True if the object is enabled.
  22003.             );
  22004.  
  22005.         /**
  22006.          * Returns the height of the object.
  22007.          */
  22008.         [
  22009.              propget
  22010.             ,helpcontext(0x10340009)
  22011.             ,helpstring("Returns the height of the object.")
  22012.         ]
  22013.         HRESULT  Height(
  22014.             [out, retval] double* prop // The height of the object.
  22015.             );
  22016.  
  22017.         /**
  22018.          * Sets the height of the object.
  22019.          */
  22020.         [
  22021.              propput
  22022.             ,helpcontext(0x10340009)
  22023.             ,helpstring("Sets the height of the object.")
  22024.         ]
  22025.         HRESULT  Height(
  22026.             [in] double prop // The height of the object.
  22027.             );
  22028.  
  22029.         /**
  22030.          * Returns the ID of the CommandBarControl object.
  22031.          */
  22032.         [
  22033.              propget
  22034.             ,helpcontext(0x1034000A)
  22035.             ,helpstring("Returns the ID of the CommandBarControl object.")
  22036.         ]
  22037.         HRESULT  Id(
  22038.             [out, retval] long* prop // The ID of the CommandBarControl object.
  22039.             );
  22040.  
  22041.         /**
  22042.          * Returns the index of the item in the collection.
  22043.          */
  22044.         [
  22045.              propget
  22046.             ,helpcontext(0x1034000B)
  22047.             ,helpstring("Returns the index of the item in the collection.")
  22048.         ]
  22049.         HRESULT  Index(
  22050.             [out, retval] long* prop // The index.
  22051.             );
  22052.  
  22053.         /**
  22054.          * Returns the horizontal position of the object.
  22055.          */
  22056.         [
  22057.              propget
  22058.             ,helpcontext(0x1034000C)
  22059.             ,helpstring("Returns the horizontal position of the object.")
  22060.         ]
  22061.         HRESULT  Left(
  22062.             [out, retval] double* prop // The horizontal position of the object.
  22063.             );
  22064.  
  22065.         /**
  22066.          * Returns the menu group.
  22067.          */
  22068.         [
  22069.              propget
  22070.             ,helpcontext(0x1034000D)
  22071.             ,helpstring("Returns the menu group.")
  22072.         ]
  22073.         HRESULT  OLEMenuGroup(
  22074.             [out, retval] ImsiOleMenuGroup* prop // The menu group.
  22075.             );
  22076.  
  22077.         /**
  22078.          * Sets the menu group.
  22079.          */
  22080.         [
  22081.              propput
  22082.             ,helpcontext(0x1034000D)
  22083.             ,helpstring("Sets the menu group.")
  22084.         ]
  22085.         HRESULT  OLEMenuGroup(
  22086.             [in] ImsiOleMenuGroup prop // The menu group.
  22087.             );
  22088.  
  22089.         /**
  22090.          * Returns the object or macro performed when the CommandBarControl object is executed.
  22091.          */
  22092.         [
  22093.              propget
  22094.             ,helpcontext(0x1034000E)
  22095.             ,helpstring("Returns the object or macro performed when the CommandBarControl object is executed.")
  22096.         ]
  22097.         HRESULT  OnAction(
  22098.             [out, retval] VARIANT* prop // An object or macro name.
  22099.             );
  22100.  
  22101.         /**
  22102.          * Sets the object or macro performed when the CommandBarControl object is executed.
  22103.          */
  22104.         [
  22105.              propput
  22106.             ,helpcontext(0x1034000E)
  22107.             ,helpstring("Sets the object or macro performed when the CommandBarControl object is executed.")
  22108.         ]
  22109.         HRESULT  OnAction(
  22110.             [in] VARIANT* prop // An object or macro name.
  22111.             );
  22112.  
  22113.         /**
  22114.          * Returns the text parameter of the object, as a string.
  22115.          */
  22116.         [
  22117.              propget
  22118.             ,helpcontext(0x1034000F)
  22119.             ,helpstring("Returns the text parameter of the object, as a string.")
  22120.         ]
  22121.         HRESULT  Parameter(
  22122.             [out, retval] BSTR* prop // The text parameter of the object.
  22123.             );
  22124.  
  22125.         /**
  22126.          * Sets the text parameter of the object.
  22127.          */
  22128.         [
  22129.              propput
  22130.             ,helpcontext(0x1034000F)
  22131.             ,helpstring("Sets the text parameter of the object.")
  22132.         ]
  22133.         HRESULT  Parameter(
  22134.             [in] BSTR prop // The text parameter of the object.
  22135.             );
  22136.  
  22137.         /**
  22138.          * Returns the parent object for the specified object.
  22139.          */
  22140.         [
  22141.              propget
  22142.             ,helpcontext(0x10340010)
  22143.             ,helpstring("Returns the parent object for the specified object.")
  22144.         ]
  22145.         HRESULT  Parent(
  22146.             [out, retval] IDispatch** prop // The parent object.
  22147.             );
  22148.  
  22149.         /**
  22150.          * Returns the text tag of the object, as a string.
  22151.          */
  22152.         [
  22153.              propget
  22154.             ,helpcontext(0x10340011)
  22155.             ,helpstring("Returns the text tag of the object, as a string.")
  22156.         ]
  22157.         HRESULT  Tag(
  22158.             [out, retval] BSTR* prop // The text tag of the object.
  22159.             );
  22160.  
  22161.         /**
  22162.          * Sets the text tag of the object.
  22163.          */
  22164.         [
  22165.              propput
  22166.             ,helpcontext(0x10340011)
  22167.             ,helpstring("Sets the text tag of the object.")
  22168.         ]
  22169.         HRESULT  Tag(
  22170.             [in] BSTR prop // The text tag of the object.
  22171.             );
  22172.  
  22173.         /**
  22174.          * True if the object is temporary.
  22175.          */
  22176.         [
  22177.              propget
  22178.             ,helpcontext(0x10340012)
  22179.             ,helpstring("True if the object is temporary.")
  22180.         ]
  22181.         HRESULT  Temporary(
  22182.             [out, retval] IMSI_BOOL* prop // True if the object is temporary.
  22183.             );
  22184.  
  22185.         /**
  22186.          * True if the object is temporary.
  22187.          */
  22188.         [
  22189.              propput
  22190.             ,helpcontext(0x10340012)
  22191.             ,helpstring("True if the object is temporary.")
  22192.         ]
  22193.         HRESULT  Temporary(
  22194.             [in] IMSI_BOOL prop // True if the object is temporary.
  22195.             );
  22196.  
  22197.         /**
  22198.          * Returns the tooltip text of the object, as a string.
  22199.          */
  22200.         [
  22201.              propget
  22202.             ,restricted, hidden
  22203.             ,helpcontext(0x10340013)
  22204.             ,helpstring("Returns the tooltip text of the object, as a string.")
  22205.         ]
  22206.         HRESULT  TooltipText(
  22207. //             [in, lcid]    long lcid
  22208.              [in, optional]    long lcid
  22209.             ,[out, retval] BSTR* prop // The tooltip text of the object.
  22210.             );
  22211.  
  22212.         /**
  22213.          * Sets the tooltip text of the object.
  22214.          */
  22215.         [
  22216.              propput
  22217.             ,restricted, hidden
  22218.             ,helpcontext(0x10340013)
  22219.             ,helpstring("Sets the tooltip text of the object.")
  22220.         ]
  22221.         HRESULT  TooltipText(
  22222. //             [in, lcid]    long lcid
  22223.              [in, optional]    long lcid
  22224.             ,[in] BSTR prop // The tooltip text of the object.
  22225.             );
  22226.  
  22227.         /**
  22228.          * Returns the vertical position of the object.
  22229.          */
  22230.         [
  22231.              propget
  22232.             ,helpcontext(0x10340014)
  22233.             ,helpstring("Returns the vertical position of the object.")
  22234.         ]
  22235.         HRESULT  Top(
  22236.             [out, retval] double* prop // The vertical position of the object.
  22237.             );
  22238.  
  22239.         /**
  22240.          * Returns the type of the CommandBarControl object.
  22241.          */
  22242.         [
  22243.              propget
  22244.             ,helpcontext(0x10340015)
  22245.             ,helpstring("Returns the type of the CommandBarControl object.")
  22246.         ]
  22247.         HRESULT  Type(
  22248.             [out, retval] ImsiControlType* prop // The type of the CommandBarControl object.
  22249.             );
  22250.  
  22251.         /**
  22252.          * True if the CommandBarControl object is visible.
  22253.          */
  22254.         [
  22255.              propget
  22256.             ,helpcontext(0x10340016)
  22257.             ,helpstring("True if the CommandBarControl object is visible.")
  22258.         ]
  22259.         HRESULT  Visible(
  22260.             [out, retval] IMSI_BOOL* prop // True if the CommandBarControl object is visible.
  22261.             );
  22262.  
  22263.         /**
  22264.          * True if the CommandBarControl object is visible.
  22265.          */
  22266.         [
  22267.              propput
  22268.             ,helpcontext(0x10340016)
  22269.             ,helpstring("True if the CommandBarControl object is visible.")
  22270.         ]
  22271.         HRESULT  Visible(
  22272.             [in] IMSI_BOOL prop // True if the CommandBarControl object is visible.
  22273.             );
  22274.  
  22275.         /**
  22276.          * Returns the width of the object.
  22277.          */
  22278.         [
  22279.              propget
  22280.             ,helpcontext(0x10340017)
  22281.             ,helpstring("Returns the width of the object.")
  22282.         ]
  22283.         HRESULT  Width(
  22284.             [out, retval] double* prop // The width of the object.
  22285.             );
  22286.  
  22287.         /**
  22288.          * Sets the width of the object.
  22289.          */
  22290.         [
  22291.              propput
  22292.             ,helpcontext(0x10340017)
  22293.             ,helpstring("Sets the width of the object.")
  22294.         ]
  22295.         HRESULT  Width(
  22296.             [in] double prop // The width of the object.
  22297.             );
  22298.  
  22299.         /**
  22300.          * Private.  Returns information about the __CommandBarControl object.
  22301.          */
  22302.         [
  22303.              propget
  22304.             ,restricted
  22305.             ,helpcontext(0x10340018)
  22306.             ,helpstring("Private.  Returns information about the __CommandBarControl object.")
  22307.         ]
  22308.         HRESULT  _Info(
  22309.             [out, retval] long* prop // Private information.
  22310.             );
  22311.  
  22312.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22313.  
  22314.         /**
  22315.          * Copies the object to another location.
  22316.          */
  22317.         [
  22318.              helpcontext(0x10340019)
  22319.             ,helpstring("Copies the object to another location.")
  22320.         ]
  22321.         HRESULT  Copy(
  22322.             [in] CommandBar *Bar, // The bar to copy to.
  22323.             [in, optional] VARIANT* Before, // The location within the bar.
  22324.             [out, retval] CommandBarControl** prop // The new copy.
  22325.             );
  22326.  
  22327.         /**
  22328.          * Deletes the object.
  22329.          */
  22330.         [
  22331.              helpcontext(0x1034001A)
  22332.             ,helpstring("Deletes the object.")
  22333.         ]
  22334.         HRESULT  Delete(
  22335.             [in, optional] VARIANT* Temporary // True if the deletion is temporary.
  22336.             );
  22337.  
  22338.         /**
  22339.          * Performs the action specified by the CommandBarControl object.
  22340.          */
  22341.         [
  22342.              helpcontext(0x1034001B)
  22343.             ,helpstring("Performs the action specified by the CommandBarControl object.")
  22344.         ]
  22345.         HRESULT  Execute(
  22346.             );
  22347.  
  22348.         /**
  22349.          * Moves the object to another location.
  22350.          */
  22351.         [
  22352.              helpcontext(0x1034001C)
  22353.             ,helpstring("Moves the object to another location.")
  22354.         ]
  22355.         HRESULT  Move(
  22356.             [in] CommandBar *Bar, // The bar to copy to.
  22357.             [in, optional] VARIANT* Before, // The location within the bar.
  22358.             [out, retval] CommandBarControl** prop // The moved object.
  22359.             );
  22360.  
  22361.         /**
  22362.          * Resets the CommandBarControl object to its initial state.
  22363.          */
  22364.         [
  22365.              helpcontext(0x1034001D)
  22366.             ,helpstring("Resets the CommandBarControl object to its initial state.")
  22367.         ]
  22368.         HRESULT  Reset(
  22369.             );
  22370.  
  22371.         /**
  22372.          * Sets the input focus to this CommandBarControl object.
  22373.          */
  22374.         [
  22375.              helpcontext(0x1034001E)
  22376.             ,helpstring("Sets the input focus to this CommandBarControl object.")
  22377.         ]
  22378.         HRESULT  SetFocus(
  22379.             );
  22380.  
  22381.     };
  22382.  
  22383.     /**
  22384.      * A collection of command bar controls.
  22385.      */
  22386.     [
  22387.          object
  22388.         ,restricted, hidden
  22389.         ,uuid(6A481140-E531-11CF-A115-00A024158DAF)
  22390.         ,oleautomation
  22391.         ,dual
  22392.         ,helpcontext(0x10350000)
  22393.         ,helpstring("A collection of command bar controls.")
  22394.     ]
  22395.     interface CommandBarControls : IDispatch
  22396.     {
  22397.  
  22398.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22399.  
  22400.         /**
  22401.          * Returns an Application object that represents the owner of the specified object.
  22402.          */
  22403.         [
  22404.              propget
  22405.             ,helpcontext(0x10350001)
  22406.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22407.         ]
  22408.         HRESULT  Application(
  22409.             [out, retval] IApplication** prop // The Application object.
  22410.             );
  22411.  
  22412.         /**
  22413.          * Returns the number of items in the collection.
  22414.          */
  22415.         [
  22416.              propget
  22417.             ,helpcontext(0x10350002)
  22418.             ,helpstring("Returns the number of items in the collection.")
  22419.         ]
  22420.         HRESULT  Count(
  22421.             [out, retval] long* prop // The number of items.
  22422.             );
  22423.  
  22424.         /**
  22425.          * Returns part of a collection.
  22426.          */
  22427.         [
  22428.              propget
  22429.             ,id(DISPID_VALUE)
  22430.             ,helpcontext(0x10350003)
  22431.             ,helpstring("Returns part of a collection.")
  22432.         ]
  22433.         HRESULT  Item(
  22434.             [in] VARIANT* Index, // Index of item to return.
  22435.             [out, retval] CommandBarControl** prop // The item.
  22436.             );
  22437.  
  22438.         /**
  22439.          * Returns the parent object for the specified object.
  22440.          */
  22441.         [
  22442.              propget
  22443.             ,helpcontext(0x10350004)
  22444.             ,helpstring("Returns the parent object for the specified object.")
  22445.         ]
  22446.         HRESULT  Parent(
  22447.             [out, retval] IDispatch** prop // The parent object.
  22448.             );
  22449.  
  22450.         /**
  22451.          * Creates an enumeration object.
  22452.          */
  22453.         [
  22454.              propget
  22455.             ,restricted
  22456.             ,id(DISPID_NEWENUM)
  22457.             ,helpcontext(0x10350005)
  22458.             ,helpstring("Private.  Creates an enumeration object.")
  22459.         ]
  22460.         HRESULT  _NewEnum(
  22461.             [out, retval] IUnknown** prop // The enumeration object.
  22462.             );
  22463.  
  22464.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22465.  
  22466.         /**
  22467.          * Adds a new CommandBarControl object to the collection.
  22468.          */
  22469.         [
  22470.              helpcontext(0x10350006)
  22471.             ,helpstring("Adds a new CommandBarControl object to the collection.")
  22472.         ]
  22473.         HRESULT  Add(
  22474.             [in] ImsiControlType Type, // The type of the new CommandBarControl object.
  22475.             [in, optional] VARIANT* Id, // The id of the new CommandBarControl object.
  22476.             [in, optional] VARIANT* Parameter, // Which bar to add the object to.
  22477.             [in, optional] VARIANT* Before, // Where to add the new CommandBarControl object.
  22478.             [in, optional] VARIANT* Temporary, // True if the CommandBarControl object is temporary.
  22479.             [out, retval] CommandBarControl** prop // The new CommandBarControl object object.
  22480.             );
  22481.     };
  22482.  
  22483.     /**
  22484.      * A TurboCAD drawing or editing tool.
  22485.      */
  22486.     [
  22487.          object
  22488.         ,uuid(6A48112C-E531-11CF-A115-00A024158DAF)
  22489.         ,oleautomation
  22490.         ,dual
  22491.         ,helpcontext(0x10360000)
  22492.         ,helpstring("A TurboCAD drawing or editing tool.")
  22493.     ]
  22494.     interface Tool : IDispatch
  22495.     {
  22496.  
  22497.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22498.  
  22499.         /**
  22500.          * True if the object is active.
  22501.          */
  22502.         [
  22503.              propget
  22504.             ,helpcontext(0x10360001)
  22505.             ,helpstring("True if the object is active.")
  22506.         ]
  22507.         HRESULT  Active(
  22508.             [out, retval] IMSI_BOOL* prop // True if the object is active.
  22509.             );
  22510.  
  22511.         /**
  22512.          * Returns an Application object that represents the owner of the specified object.
  22513.          */
  22514.         [
  22515.              propget
  22516.             ,helpcontext(0x10360002)
  22517.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22518.         ]
  22519.         HRESULT  Application(
  22520.             [out, retval] IApplication** prop // The Application object.
  22521.             );
  22522.  
  22523.         /**
  22524.          * True if the object is built-in.
  22525.          */
  22526.         [
  22527.              propget
  22528.             ,helpcontext(0x10360003)
  22529.             ,helpstring("True if the object is built-in.")
  22530.             ,restricted, hidden
  22531.         ]
  22532.         HRESULT  Builtin(
  22533.             [out, retval] IMSI_BOOL* prop // True if the object is built-in.
  22534.             );
  22535.  
  22536.         /**
  22537.          * Returns the name of the Tool object's category, as a string.
  22538.          */
  22539.         [
  22540.              propget
  22541.             ,helpcontext(0x10360004)
  22542.             ,helpstring("Returns the name of the Tool object's category, as a string.")
  22543.         ]
  22544.         HRESULT  Category(
  22545. //             [in, lcid] long lcid // The locale ID.
  22546.              [in, optional]    long lcid
  22547.             ,[out, retval] BSTR* prop // The name of the Tool object's category.
  22548.             );
  22549.  
  22550.         /**
  22551.          * Sets the name of the Tool object's category, as a string.
  22552.          */
  22553.         [
  22554.              propput
  22555.             ,helpcontext(0x10360004)
  22556.             ,helpstring("Sets the name of the Tool object's category, as a string.")
  22557.         ]
  22558.         HRESULT  Category(
  22559. //             [in, lcid] long lcid // The locale ID.
  22560.              [in, optional]    long lcid
  22561.             ,[in] BSTR prop // The name of the Tool object's category.
  22562.             );
  22563.  
  22564.         /**
  22565.          * Returns the name of the object, as a string.
  22566.          */
  22567.         [
  22568.              propget
  22569.             ,helpcontext(0x10360005)
  22570.             ,helpstring("Returns the name of the object, as a string.")
  22571.         ]
  22572.         HRESULT  CommandName(
  22573. //             [in, lcid] long lcid // The locale ID.
  22574.              [in, optional]    long lcid
  22575.             ,[out, retval] BSTR* prop // The name of the object.
  22576.             );
  22577.  
  22578.         /**
  22579.          * Sets the name of the object, as a string.
  22580.          */
  22581.         [
  22582.              propput
  22583.             ,helpcontext(0x10360005)
  22584.             ,helpstring("Sets the name of the object, as a string.")
  22585.         ]
  22586.         HRESULT  CommandName(
  22587. //             [in, lcid] long lcid // The locale ID.
  22588.              [in, optional]    long lcid
  22589.             ,[in] BSTR prop // The name of the object.
  22590.             );
  22591.  
  22592.         /**
  22593.          * True if the object is enabled.
  22594.          */
  22595.         [
  22596.              propget
  22597.             ,helpcontext(0x10360006)
  22598.             ,helpstring("True if the object is enabled.")
  22599.         ]
  22600.         HRESULT  Enabled(
  22601.             [out, retval] IMSI_BOOL* prop // True if the object is enabled.
  22602.             );
  22603.  
  22604.         /**
  22605.          * True if the object is enabled.
  22606.          */
  22607.         [
  22608.              propput
  22609.             ,helpcontext(0x10360006)
  22610.             ,helpstring("True if the object is enabled.")
  22611.         ]
  22612.         HRESULT  Enabled(
  22613.             [in] IMSI_BOOL prop // True if the object is enabled.
  22614.             );
  22615.  
  22616.         /**
  22617.          * Returns the command identifier.
  22618.          */
  22619.         [
  22620.              propget
  22621.             ,helpcontext(0x10360007)
  22622.             ,helpstring("Returns the command identifier.")
  22623.         ]
  22624.         HRESULT  Id(
  22625.             [out, retval] long* prop // The command identifier.
  22626.             );
  22627.  
  22628.         /**
  22629.          * Returns the index of the item in the collection.
  22630.          */
  22631.         [
  22632.              propget
  22633.             ,helpcontext(0x10360008)
  22634.             ,helpstring("Returns the index of the item in the collection.")
  22635.         ]
  22636.         HRESULT  Index(
  22637.             [out, retval] long* prop // The index.
  22638.             );
  22639.  
  22640.         /**
  22641.          * Returns the string that will appear in the menu.
  22642.          */
  22643.         [
  22644.              propget
  22645.             ,helpcontext(0x10360009)
  22646.             ,helpstring("Returns the string that will appear in the menu.")
  22647.         ]
  22648.         HRESULT  MenuText(
  22649. //             [in, lcid] long lcid // The locale ID.
  22650.              [in, optional]    long lcid
  22651.             ,[out, retval] BSTR* prop // The string that will appear in the menu.
  22652.             );
  22653.  
  22654.         /**
  22655.          * Sets the string that will appear in the menu.
  22656.          */
  22657.         [
  22658.              propput
  22659.             ,helpcontext(0x10360009)
  22660.             ,helpstring("Sets the string that will appear in the menu.")
  22661.         ]
  22662.         HRESULT  MenuText(
  22663. //             [in, lcid] long lcid // The locale ID.
  22664.              [in, optional]    long lcid
  22665.             ,[in] BSTR prop // The string that will appear in the menu.
  22666.             );
  22667.  
  22668.         /**
  22669.          * Returns the parent object for the specified object.
  22670.          */
  22671.         [
  22672.              propget
  22673.             ,helpcontext(0x1036000A)
  22674.             ,helpstring("Returns the parent object for the specified object.")
  22675.         ]
  22676.         HRESULT  Parent(
  22677.             [out, retval] IApplication** prop // The parent object.
  22678.             );
  22679.  
  22680.         /**
  22681.          * Returns the string that will appear in the status bar.
  22682.          */
  22683.         [
  22684.              propget
  22685.             ,helpcontext(0x1036000B)
  22686.             ,helpstring("Returns the string that will appear in the status bar.")
  22687.         ]
  22688.         HRESULT  Prompt(
  22689. //             [in, lcid] long lcid // The locale ID.
  22690.              [in, optional]    long lcid
  22691.             ,[out, retval] BSTR* prop // The string that will appear in the status bar.
  22692.             );
  22693.  
  22694.         /**
  22695.          * Sets the string that will appear in the status bar.
  22696.          */
  22697.         [
  22698.              propput
  22699.             ,helpcontext(0x1036000B)
  22700.             ,helpstring("Sets the string that will appear in the status bar.")
  22701.         ]
  22702.         HRESULT  Prompt(
  22703. //             [in, lcid] long lcid // The locale ID.
  22704.              [in, optional]    long lcid
  22705.             ,[in] BSTR prop // The string that will appear in the status bar.
  22706.             );
  22707.  
  22708.         /**
  22709.          * Returns the string that will appear in the menu.
  22710.          */
  22711.         [
  22712.              propget
  22713.             ,helpcontext(0x1036000C)
  22714.             ,helpstring("Returns the string that will appear in tool tips.")
  22715.         ]
  22716.         HRESULT  TooltipText(
  22717. //             [in, lcid] long lcid // The locale ID.
  22718.              [in, optional]    long lcid
  22719.             ,[out, retval] BSTR* prop // The string that will appear in tool tips.
  22720.             );
  22721.  
  22722.         /**
  22723.          * Sets the string that will appear in tool tips.
  22724.          */
  22725.         [
  22726.              propput
  22727.             ,helpcontext(0x1036000C)
  22728.             ,helpstring("Sets the string that will appear in tool tips.")
  22729.         ]
  22730.         HRESULT  TooltipText(
  22731. //             [in, lcid] long lcid // The locale ID.
  22732.              [in, optional]    long lcid
  22733.             ,[in] BSTR prop // The string that will appear in tool tips.
  22734.             );
  22735.  
  22736.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22737.  
  22738.         /**
  22739.          * Activates the object.
  22740.          */
  22741.         [
  22742.              helpcontext(0x1036000D)
  22743.             ,helpstring("Activates the object.")
  22744.         ]
  22745.         HRESULT  Activate(
  22746.             );
  22747.  
  22748.         /**
  22749.          * Deletes the object.
  22750.          */
  22751.         [
  22752.              helpcontext(0x1036000E)
  22753.             ,helpstring("Deletes the object.")
  22754.             ,restricted, hidden
  22755.         ]
  22756.         HRESULT  Delete(
  22757.             );
  22758.  
  22759.     };
  22760.     /**
  22761.      * The collection of TurboCAD drawing or editing tool.
  22762.      */
  22763.     [
  22764.          object
  22765.         ,hidden, restricted
  22766.         ,uuid(6A48112D-E531-11CF-A115-00A024158DAF)
  22767.         ,oleautomation
  22768.         ,dual
  22769.         ,helpcontext(0x10370000)
  22770.         ,helpstring("The collection of TurboCAD drawing or editing tool.")
  22771.     ]
  22772.     interface Tools : IDispatch
  22773.     {
  22774.  
  22775.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22776.  
  22777.         /**
  22778.          * Returns the currently active Tool object.
  22779.          */
  22780.         [
  22781.              propget
  22782.             ,helpcontext(0x10370001)
  22783.             ,helpstring("Returns the currently active Tool object.")
  22784.             ,restricted, hidden
  22785.         ]
  22786.         HRESULT  ActiveTool(
  22787.             [out, retval] Tool** prop // The currently active Tool object.
  22788.             );
  22789.  
  22790.         /**
  22791.          * Returns an Application object that represents the owner of the specified object.
  22792.          */
  22793.         [
  22794.              propget
  22795.             ,helpcontext(0x10370002)
  22796.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22797.         ]
  22798.         HRESULT  Application(
  22799.             [out, retval] IApplication** prop // The Application object.
  22800.             );
  22801.  
  22802.         /**
  22803.          * Returns the number of items in the collection.
  22804.          */
  22805.         [
  22806.              propget
  22807.             ,helpcontext(0x10370003)
  22808.             ,helpstring("Returns the number of items in the collection.")
  22809.             ,restricted, hidden
  22810.         ]
  22811.         HRESULT  Count(
  22812.             [out, retval] long* prop // The number of items.
  22813.             );
  22814.  
  22815.         /**
  22816.          * Returns part of a collection.
  22817.          */
  22818.         [
  22819.              propget
  22820.             ,id(DISPID_VALUE)
  22821.             ,helpcontext(0x10370004)
  22822.             ,helpstring("Returns part of a collection.")
  22823.             ,restricted, hidden
  22824.         ]
  22825.         HRESULT  Item(
  22826.             [in] VARIANT* Index, // Index of item to return.
  22827.             [out, retval] Tool** prop // The item.
  22828.             );
  22829.  
  22830.         /**
  22831.          * Returns the parent object for the specified object.
  22832.          */
  22833.         [
  22834.              propget
  22835.             ,helpcontext(0x10370005)
  22836.             ,helpstring("Returns the parent object for the specified object.")
  22837.         ]
  22838.         HRESULT  Parent(
  22839.             [out, retval] IApplication** prop // The parent object.
  22840.             );
  22841.  
  22842.         /**
  22843.          * Creates an enumeration object.
  22844.          */
  22845.         [
  22846.              propget
  22847.             ,restricted
  22848.             ,id(DISPID_NEWENUM)
  22849.             ,helpcontext(0x10370006)
  22850.             ,helpstring("Private.  Creates an enumeration object.")
  22851.             ,restricted, hidden
  22852.         ]
  22853.         HRESULT  _NewEnum(
  22854.             [out, retval] IUnknown** prop // The enumeration object.
  22855.             );
  22856.  
  22857.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22858.  
  22859.     };
  22860.  
  22861.     /**
  22862.      * An external procedure that can be executed from within TurboCAD.
  22863.      */
  22864.     [
  22865.          object
  22866.         ,restricted, hidden
  22867.         ,uuid(6A48112E-E531-11CF-A115-00A024158DAF)
  22868.         ,oleautomation
  22869.         ,dual
  22870.         ,helpcontext(0x10380000)
  22871.         ,helpstring("An external procedure that can be executed from within TurboCAD.")
  22872.     ]
  22873.     interface AddIn : IDispatch
  22874.     {
  22875.  
  22876.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22877.  
  22878.         /**
  22879.          * Returns an Application object that represents the owner of the specified object.
  22880.          */
  22881.         [
  22882.              propget
  22883.             ,helpcontext(0x10380001)
  22884.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22885.         ]
  22886.         HRESULT  Application(
  22887.             [out, retval] IApplication** prop // The Application object.
  22888.             );
  22889.  
  22890.         /**
  22891.          * Returns the index of the item in the collection.
  22892.          */
  22893.         [
  22894.              propget
  22895.             ,helpcontext(0x10380002)
  22896.             ,helpstring("Returns the index of the item in the collection.")
  22897.         ]
  22898.         HRESULT  Index(
  22899.             [out, retval] long* prop // The index.
  22900.             );
  22901.  
  22902.         /**
  22903.          * Returns the name of the object, as a string.
  22904.          */
  22905.         [
  22906.              propget
  22907.             ,helpcontext(0x10380003)
  22908.             ,helpstring("Returns the name of the object, as a string.")
  22909.         ]
  22910.         HRESULT  Name(
  22911.             [out, retval] BSTR* prop // The name of the object.
  22912.             );
  22913.  
  22914.         /**
  22915.          * Returns the parent object for the specified object.
  22916.          */
  22917.         [
  22918.              propget
  22919.             ,helpcontext(0x10380004)
  22920.             ,helpstring("Returns the parent object for the specified object.")
  22921.         ]
  22922.         HRESULT  Parent(
  22923.             [out, retval] IDispatch** prop // The parent object.
  22924.             );
  22925.  
  22926.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22927.  
  22928.         /**
  22929.          * Deletes the object.
  22930.          */
  22931.         [
  22932.              helpcontext(0x10380005)
  22933.             ,helpstring("Deletes the object.")
  22934.         ]
  22935.         HRESULT  Delete(
  22936.             );
  22937.  
  22938.     };
  22939.  
  22940.     /**
  22941.      * The collection of external procedures.
  22942.      */
  22943.     [
  22944.          object
  22945.         ,restricted, hidden
  22946.         ,uuid(6A48112F-E531-11CF-A115-00A024158DAF)
  22947.         ,oleautomation
  22948.         ,dual
  22949.         ,helpcontext(0x10390000)
  22950.         ,helpstring("The collection of external procedures.")
  22951.     ]
  22952.     interface AddIns : IDispatch
  22953.     {
  22954.  
  22955.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  22956.  
  22957.         /**
  22958.          * Returns an Application object that represents the owner of the specified object.
  22959.          */
  22960.         [
  22961.              propget
  22962.             ,helpcontext(0x10390001)
  22963.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  22964.         ]
  22965.         HRESULT  Application(
  22966.             [out, retval] IApplication** prop // The Application object.
  22967.             );
  22968.  
  22969.         /**
  22970.          * Returns the number of items in the collection.
  22971.          */
  22972.         [
  22973.              propget
  22974.             ,helpcontext(0x10390002)
  22975.             ,helpstring("Returns the number of items in the collection.")
  22976.         ]
  22977.         HRESULT  Count(
  22978.             [out, retval] long* prop // The number of items.
  22979.             );
  22980.  
  22981.         /**
  22982.          * Returns part of a collection.
  22983.          */
  22984.         [
  22985.              propget
  22986.             ,id(DISPID_VALUE)
  22987.             ,helpcontext(0x10390003)
  22988.             ,helpstring("Returns part of a collection.")
  22989.         ]
  22990.         HRESULT  Item(
  22991.             [in] VARIANT* Index, // Index of item to return.
  22992.             [out, retval] AddIn** prop // The item.
  22993.             );
  22994.  
  22995.         /**
  22996.          * Returns the parent object for the specified object.
  22997.          */
  22998.         [
  22999.              propget
  23000.             ,helpcontext(0x10390004)
  23001.             ,helpstring("Returns the parent object for the specified object.")
  23002.         ]
  23003.         HRESULT  Parent(
  23004.             [out, retval] IDispatch** prop // The parent object.
  23005.             );
  23006.  
  23007.         /**
  23008.          * Creates an enumeration object.
  23009.          */
  23010.         [
  23011.              propget
  23012.             ,restricted
  23013.             ,id(DISPID_NEWENUM)
  23014.             ,helpcontext(0x10390005)
  23015.             ,helpstring("Private.  Creates an enumeration object.")
  23016.         ]
  23017.         HRESULT  _NewEnum(
  23018.             [out, retval] IUnknown** prop // The enumeration object.
  23019.             );
  23020.  
  23021.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23022.  
  23023.     };
  23024.  
  23025.     /**
  23026.      * Options that change session (Application object) behavior.
  23027.      */
  23028.     [
  23029.          object
  23030.         ,restricted, hidden
  23031.         ,uuid(6A481102-E531-11CF-A115-00A024158DAF)
  23032.         ,oleautomation
  23033.         ,dual
  23034.         ,helpcontext(0x103A0000)
  23035.         ,helpstring("Options that change session (Application object) behavior.")
  23036.     ]
  23037.     interface ApplicationOptions : IDispatch
  23038.     {
  23039.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23040.  
  23041.         /**
  23042.          * True if toolbars are displayed using colored faces.
  23043.          */
  23044.         [
  23045.              propget
  23046.             ,helpcontext(0x103A0001)
  23047.             ,helpstring("True if toolbars are displayed using colored faces.")
  23048.         ]
  23049.         HRESULT  ColorButtons(
  23050.             [out, retval] IMSI_BOOL* colorButtons // True if toolbars are displayed using colored faces.
  23051.             );
  23052.  
  23053.         /**
  23054.          * True if toolbars are displayed using colored faces.
  23055.          */
  23056.         [
  23057.              propput
  23058.             ,helpcontext(0x103A0001)
  23059.             ,helpstring("True if toolbars are displayed using colored faces.")
  23060.         ]
  23061.         HRESULT  ColorButtons(
  23062.             [in] IMSI_BOOL colorButtons // True if toolbars are displayed using colored faces.
  23063.             );
  23064.  
  23065.         /**
  23066.          * Returns how TurboCAD displays coordinates in the status bar.
  23067.          */
  23068.         [
  23069.              propget
  23070.             ,helpcontext(0x103A0002)
  23071.             ,helpstring("Returns how TurboCAD displays coordinates in the status bar.")
  23072.         ]
  23073.         HRESULT  CoordinateStyle(
  23074.             [out, retval] ImsiCoordinateStyle* prop // Enumerated value.
  23075.             );
  23076.  
  23077.         /**
  23078.          * Sets how TurboCAD displays coordinates in the status bar.
  23079.          */
  23080.         [
  23081.              propput
  23082.             ,helpcontext(0x103A0002)
  23083.             ,helpstring("Sets how TurboCAD displays coordinates in the status bar.")
  23084.         ]
  23085.         HRESULT  CoordinateStyle(
  23086.             [in] ImsiCoordinateStyle prop // Enumerated value.
  23087.             );
  23088.  
  23089.         /**
  23090.          * True if backup files will be created.
  23091.          */
  23092.         [
  23093.              propget
  23094.             ,helpcontext(0x103A0003)
  23095.             ,helpstring("True if backup files will be created.")
  23096.         ]
  23097.         HRESULT  CreateBackup(
  23098.             [out, retval] IMSI_BOOL* prop // True if backup files will be created.
  23099.             );
  23100.  
  23101.         /**
  23102.          * True if backup files will be created.
  23103.          */
  23104.         [
  23105.              propput
  23106.             ,helpcontext(0x103A0003)
  23107.             ,helpstring("True if backup files will be created.")
  23108.         ]
  23109.     HRESULT  CreateBackup(
  23110.             [in] IMSI_BOOL prop // True if backup files will be created.
  23111.             );
  23112.  
  23113.         /**
  23114.          * Returns the default path TurboCAD uses when it opens files.
  23115.          */
  23116.         [
  23117.              propget
  23118.             ,helpcontext(0x103A0004)
  23119.             ,helpstring("Returns the default path TurboCAD uses when it opens files.")
  23120.         ]
  23121.         HRESULT  DefaultFilePath(
  23122.             [out, retval] BSTR* prop // The path, as a string.
  23123.             );
  23124.  
  23125.         /**
  23126.          * Sets the default path TurboCAD uses when it opens files.
  23127.          */
  23128.         [
  23129.              propput
  23130.             ,helpcontext(0x103A0004)
  23131.             ,helpstring("Sets the default path TurboCAD uses when it opens files.")
  23132.         ]
  23133.         HRESULT  DefaultFilePath(
  23134.             [in] BSTR prop // The path, as a string.
  23135.             );
  23136.  
  23137.         /**
  23138.          * True if TurboCAD displays certain alerts and messages while a macro is running.
  23139.          */
  23140.         [
  23141.              propget
  23142.             ,helpcontext(0x103A0005)
  23143.             ,helpstring("True if TurboCAD displays certain alerts and messages while a macro is running.")
  23144.         ]
  23145.         HRESULT  DisplayAlerts(
  23146.             [out, retval] IMSI_BOOL* prop // True if TurboCAD displays certain alerts and messages while a macro is running.
  23147.             );
  23148.  
  23149.         /**
  23150.          * True if TurboCAD displays certain alerts and messages while a macro is running.
  23151.          */
  23152.         [
  23153.              propput
  23154.             ,helpcontext(0x103A0005)
  23155.             ,helpstring("True if TurboCAD displays certain alerts and messages while a macro is running.")
  23156.         ]
  23157.         HRESULT  DisplayAlerts(
  23158.             [in] IMSI_BOOL prop // True if TurboCAD displays certain alerts and messages while a macro is running.
  23159.             );
  23160.  
  23161.         /**
  23162.          * True if TurboCAD is using large toolbar buttons.
  23163.          */
  23164.         [
  23165.              propget
  23166.             ,helpcontext(0x103A0006)
  23167.             ,helpstring("True if TurboCAD is using large toolbar buttons.")
  23168.         ]
  23169.         HRESULT  LargeButtons(
  23170.             [out, retval] IMSI_BOOL* prop // True if TurboCAD is using large toolbar buttions.
  23171.             );
  23172.  
  23173.         /**
  23174.          * True if TurboCAD is using large toolbar buttons.
  23175.          */
  23176.         [
  23177.              propput
  23178.             ,helpcontext(0x103A0006)
  23179.             ,helpstring("True if TurboCAD is using large toolbar buttons.")
  23180.         ]
  23181.         HRESULT  LargeButtons(
  23182.             [in] IMSI_BOOL prop // True if TurboCAD is using large toolbar buttons.
  23183.             );
  23184.  
  23185.         /**
  23186.          * True if a prompt will appear when Drawing objects are saved.
  23187.          */
  23188.         [
  23189.              propget
  23190.             ,helpcontext(0x103A0007)
  23191.             ,helpstring("True if a prompt will appear when Drawing objects are saved.")
  23192.         ]
  23193.         HRESULT  PromptForSummaryInfo(
  23194.             [out, retval] IMSI_BOOL* prop
  23195.             );
  23196.  
  23197.         /**
  23198.          * True if a prompt will appear when Drawing objects are saved.
  23199.          */
  23200.         [
  23201.              propput
  23202.             ,helpcontext(0x103A0007)
  23203.             ,helpstring("True if a prompt will appear when Drawing objects are saved.")
  23204.         ]
  23205.         HRESULT  PromptForSummaryInfo(
  23206.             [in] IMSI_BOOL prop
  23207.             );
  23208.  
  23209.         /**
  23210.          * True if selection methods will replace, rather than add to, the Selection object.
  23211.          */
  23212.         [
  23213.              propget
  23214.             ,helpcontext(0x103A0008)
  23215.             ,helpstring("True if selection methods will replace, rather than add to, the Selection object.")
  23216.         ]
  23217.         HRESULT  ReplaceSelection(
  23218.             [out, retval] IMSI_BOOL* prop
  23219.             );
  23220.  
  23221.         /**
  23222.          * True if selection methods will replace, rather than add to, the Selection object.
  23223.          */
  23224.         [
  23225.              propput
  23226.             ,helpcontext(0x103A0008)
  23227.             ,helpstring("True if selection methods will replace, rather than add to, the Selection object.")
  23228.         ]
  23229.         HRESULT  ReplaceSelection(
  23230.             [in] IMSI_BOOL prop
  23231.             );
  23232.  
  23233.         /**
  23234.          * True if all links in a Drawing object will be updated at Open time.
  23235.          */
  23236.         [
  23237.              propget
  23238.             ,helpcontext(0x103A0009)
  23239.             ,helpstring("True if all links in a Drawing object will be updated at Open time.")
  23240.         ]
  23241.         HRESULT  UpdateLinksAtOpen(
  23242.             [out, retval] IMSI_BOOL* prop
  23243.             );
  23244.  
  23245.         /**
  23246.          * True if all links in a Drawing object will be updated at Open time.
  23247.          */
  23248.         [
  23249.              propput
  23250.             ,helpcontext(0x103A0009)
  23251.             ,helpstring("True if all links in a Drawing object will be updated at Open time.")
  23252.         ]
  23253.         HRESULT  UpdateLinksAtOpen(
  23254.             [in] IMSI_BOOL prop
  23255.             );
  23256.  
  23257.         /**
  23258.          * True if all links in a Drawing object will be updated at Print time.
  23259.          */
  23260.         [
  23261.              propget
  23262.             ,helpcontext(0x103A000A)
  23263.             ,helpstring("True if all links in a Drawing object will be updated at Print time.")
  23264.         ]
  23265.         HRESULT  UpdateLinksAtPrint(
  23266.             [out, retval] IMSI_BOOL* prop
  23267.             );
  23268.  
  23269.         /**
  23270.          * True if all links in a Drawing object will be updated at Print time.
  23271.          */
  23272.         [
  23273.              propput
  23274.             ,helpcontext(0x103A000A)
  23275.             ,helpstring("True if all links in a Drawing object will be updated at Print time.")
  23276.         ]
  23277.         HRESULT  UpdateLinksAtPrint(
  23278.             [in] IMSI_BOOL prop
  23279.             );
  23280.  
  23281.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23282.  
  23283.     };
  23284.  
  23285.     /**
  23286.      * Options that affect Drawing object behavior.
  23287.      */
  23288.     [
  23289.          object
  23290.         ,restricted, hidden
  23291.         ,uuid(6A481106-E531-11CF-A115-00A024158DAF)
  23292.         ,oleautomation
  23293.         ,dual
  23294.         ,helpcontext(0x103B0000)
  23295.         ,helpstring("Options that affect Drawing object behavior.")
  23296.     ]
  23297.     interface DrawingOptions : IDispatch
  23298.     {
  23299.     };
  23300.  
  23301.     /**
  23302.      * Procedures triggered by Application object actions.
  23303.      */
  23304.     [
  23305.          object
  23306.         ,restricted, hidden
  23307.         ,uuid(6A481104-E531-11CF-A115-00A024158DAF)
  23308.         ,oleautomation
  23309.         ,dual
  23310.         ,helpcontext(0x103C0000)
  23311.         ,helpstring("Procedures triggered by Application object actions.")
  23312.     ]
  23313.     interface ApplicationCallbacks : IDispatch
  23314.     {
  23315.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23316.  
  23317.         /**
  23318.          * OnData.
  23319.          */
  23320.         [
  23321.              propget
  23322.             ,helpcontext(0x103C0001)
  23323.             ,helpstring("OnData.")
  23324.         ]
  23325.         HRESULT  OnData(
  23326.             [out, retval] BSTR* prop
  23327.             );
  23328.  
  23329.         /**
  23330.          * OnData.
  23331.          */
  23332.         [
  23333.              propput
  23334.             ,helpcontext(0x103C0001)
  23335.             ,helpstring("OnData.")
  23336.         ]
  23337.         HRESULT  OnData(
  23338.             [in] BSTR prop
  23339.             );
  23340.  
  23341.         /**
  23342.          * Returns the name of the macro that runs whenever you double-click anywhere on a drawing.
  23343.          */
  23344.         [
  23345.              propget
  23346.             ,helpcontext(0x103C0002)
  23347.             ,helpstring("Returns the name of the macro that runs whenever you double-click anywhere on a drawing.")
  23348.         ]
  23349.         HRESULT  OnDoubleClick(
  23350.             [out, retval] BSTR* prop
  23351.             );
  23352.  
  23353.         /**
  23354.          * Sets the name of the macro that runs whenever you double-click anywhere on a drawing.
  23355.          */
  23356.         [
  23357.              propput
  23358.             ,helpcontext(0x103C0002)
  23359.             ,helpstring("Sets the name of the macro that runs whenever you double-click anywhere on a drawing.")
  23360.         ]
  23361.         HRESULT  OnDoubleClick(
  23362.             [in] BSTR prop
  23363.             );
  23364.  
  23365.         /**
  23366.          * Returns the name of the macro that runs when the user activates any drawing.
  23367.          */
  23368.         [
  23369.              propget
  23370.             ,helpcontext(0x103C0003)
  23371.             ,helpstring("Returns the name of the macro that runs when the user activates any drawing.")
  23372.         ]
  23373.         HRESULT  OnDrawingActivate(
  23374.             [out, retval] BSTR* prop
  23375.             );
  23376.  
  23377.         /**
  23378.          * Sets the name of the macro that runs when the user activates any drawing.
  23379.          */
  23380.         [
  23381.              propput
  23382.             ,helpcontext(0x103C0003)
  23383.             ,helpstring("Sets the name of the macro that runs when the user activates any drawing.")
  23384.         ]
  23385.         HRESULT  OnDrawingActivate(
  23386.             [in] BSTR prop
  23387.             );
  23388.  
  23389.         /**
  23390.          * Returns the name of the macro that runs when the user deactivates any drawing.
  23391.          */
  23392.         [
  23393.              propget
  23394.             ,helpcontext(0x103C0004)
  23395.             ,helpstring("Returns the name of the macro that runs when the user deactivates any drawing.")
  23396.         ]
  23397.         HRESULT  OnDrawingDeactivate(
  23398.             [out, retval] BSTR* prop
  23399.             );
  23400.  
  23401.         /**
  23402.          * Sets the name of the macro that runs when the user deactivates any drawing.
  23403.          */
  23404.         [
  23405.              propput
  23406.             ,helpcontext(0x103C0004)
  23407.             ,helpstring("Sets the name of the macro that runs when the user deactivates any drawing.")
  23408.         ]
  23409.         HRESULT  OnDrawingDeactivate(
  23410.             [in] BSTR prop
  23411.             );
  23412.  
  23413.         /**
  23414.          * OnEntry.
  23415.          */
  23416.         [
  23417.              propget
  23418.             ,helpcontext(0x103C0005)
  23419.             ,helpstring("OnEntry.")
  23420.         ]
  23421.         HRESULT  OnEntry(
  23422.             [out, retval] BSTR* prop
  23423.             );
  23424.  
  23425.         /**
  23426.          * OnEntry.
  23427.          */
  23428.         [
  23429.              propput
  23430.             ,helpcontext(0x103C0005)
  23431.             ,helpstring("OnEntry.")
  23432.         ]
  23433.         HRESULT  OnEntry(
  23434.             [in] BSTR prop
  23435.             );
  23436.  
  23437.         /**
  23438.          * Runs a specified procedure when a particular key or key combination is pressed.
  23439.          */
  23440.         [
  23441.              helpcontext(0x103C0006)
  23442.             ,helpstring("Runs a specified procedure when a particular key or key combination is pressed.")
  23443.         ]
  23444.         HRESULT  OnKey(
  23445.             [in] BSTR Key,
  23446.             [in, optional] VARIANT* Procedure
  23447.             );
  23448.  
  23449.         /**
  23450.          * Sets the Repeat menu item and the name of the procedure that will run if you choose Repeat from the Edit menu after running the procedure that sets this property.
  23451.          */
  23452.         [
  23453.              helpcontext(0x103C0007)
  23454.             ,helpstring("Sets the Repeat menu item and the name of the procedure that will run if you choose Repeat from the Edit menu after running the procedure that sets this property.")
  23455.         ]
  23456.         HRESULT  OnRepeat(
  23457.             [in] BSTR Text,
  23458.             [in] BSTR Procedure
  23459.             );
  23460.  
  23461.         /**
  23462.          * Schedules a procedure to run at a specified time in the future (either at a specific time of day or after a specific period has passed).
  23463.          */
  23464.         [
  23465.              helpcontext(0x103C0008)
  23466.             ,helpstring("Schedules a procedure to run at a specified time in the future (either at a specific time of day or after a specific period has passed).")
  23467.         ]
  23468.         HRESULT  OnTime(
  23469.             [in] VARIANT* EarliestTime,
  23470.             [in] BSTR Procedure,
  23471.             [in, optional] VARIANT* LatestTime,
  23472.             [in, optional] VARIANT* Schedule
  23473.             );
  23474.  
  23475.         /**
  23476.          * Sets the Undo menu item and the name of the procedure that will run if you choose Undo from the Edit menu after running the procedure that sets this property.
  23477.          */
  23478.         [
  23479.              helpcontext(0x103C0009)
  23480.             ,helpstring("Sets the Undo menu item and the name of the procedure that will run if you choose Undo from the Edit menu after running the procedure that sets this property.")
  23481.         ]
  23482.         HRESULT  OnUndo(
  23483.             [in] BSTR Text,
  23484.             [in] BSTR Procedure
  23485.             );
  23486.  
  23487.         /**
  23488.          * Returns the name of the procedure that runs whenever you switch to a window.
  23489.          */
  23490.         [
  23491.              propget
  23492.             ,helpcontext(0x103C000A)
  23493.             ,helpstring("Returns the name of the procedure that runs whenever you switch to a window.")
  23494.         ]
  23495.         HRESULT  OnWindow(
  23496.             [out, retval] BSTR* prop
  23497.             );
  23498.  
  23499.         /**
  23500.          * Sets the name of the procedure that runs whenever you switch to a window.
  23501.          */
  23502.         [
  23503.              propput
  23504.             ,helpcontext(0x103C000A)
  23505.             ,helpstring("Sets the name of the procedure that runs whenever you switch to a window.")
  23506.         ]
  23507.         HRESULT  OnWindow(
  23508.             [in] BSTR prop
  23509.             );
  23510.  
  23511.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23512.  
  23513.     };
  23514.  
  23515.     /**
  23516.      * Procedures triggered by Drawing object actions.
  23517.      */
  23518.     [
  23519.          object
  23520.         ,restricted, hidden
  23521.         ,uuid(6A481105-E531-11CF-A115-00A024158DAF)
  23522.         ,oleautomation
  23523.         ,dual
  23524.         ,helpcontext(0x103D0000)
  23525.         ,helpstring("Procedures triggered by Drawing object actions.")
  23526.     ]
  23527.     interface DrawingCallbacks : IDispatch
  23528.     {
  23529.  
  23530.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23531.  
  23532.         /**
  23533.          * OnData.
  23534.          * Unimplemented.
  23535.          * <p>
  23536.          */
  23537.         [
  23538.              propget
  23539.             ,helpcontext(0x103D0001)
  23540.             ,helpstring("Unimplemented.  OnData.")
  23541.         ]
  23542.         HRESULT  OnData(
  23543.             [out, retval] BSTR* retval
  23544.             );
  23545.  
  23546.         /**
  23547.          * OnData.
  23548.          * Unimplemented.
  23549.          * <p>
  23550.          */
  23551.         [
  23552.              propput
  23553.             ,helpcontext(0x103D0001)
  23554.             ,helpstring("Unimplemented.  OnData.")
  23555.         ]
  23556.         HRESULT  OnData(
  23557.             [in] BSTR prop
  23558.             );
  23559.  
  23560.         /**
  23561.          * OnDoubleClick.
  23562.          * Unimplemented.
  23563.          * <p>
  23564.          */
  23565.         [
  23566.              propget
  23567.             ,helpcontext(0x103D0002)
  23568.             ,helpstring("Unimplemented.  OnDoubleClick.")
  23569.         ]
  23570.         HRESULT  OnDoubleClick(
  23571.             [out, retval] BSTR* retval
  23572.             );
  23573.  
  23574.         /**
  23575.          * OnDoubleClick.
  23576.          * Unimplemented.
  23577.          * <p>
  23578.          */
  23579.         [
  23580.              propput
  23581.             ,helpcontext(0x103D0002)
  23582.             ,helpstring("Unimplemented.  OnDoubleClick.")
  23583.         ]
  23584.         HRESULT  OnDoubleClick(
  23585.             [in] BSTR prop
  23586.             );
  23587.  
  23588.         /**
  23589.          * OnEntry.
  23590.          * Unimplemented.
  23591.          * <p>
  23592.          */
  23593.         [
  23594.              propget
  23595.             ,helpcontext(0x103D0003)
  23596.             ,helpstring("Unimplemented.  OnEntry.")
  23597.         ]
  23598.         HRESULT  OnEntry(
  23599.             [out, retval] BSTR* retval
  23600.             );
  23601.  
  23602.         /**
  23603.          * OnEntry.
  23604.          * Unimplemented.
  23605.          * <p>
  23606.          */
  23607.         [
  23608.              propput
  23609.             ,helpcontext(0x103D0003)
  23610.             ,helpstring("Unimplemented.  OnEntry.")
  23611.         ]
  23612.         HRESULT  OnEntry(
  23613.             [in] BSTR prop
  23614.             );
  23615.  
  23616.         /**
  23617.          * OnSave.
  23618.          * Unimplemented.
  23619.          * <p>
  23620.          */
  23621.         [
  23622.              propget
  23623.             ,helpcontext(0x103D0004)
  23624.             ,helpstring("Unimplemented.  OnSave.")
  23625.         ]
  23626.         HRESULT  OnSave(
  23627.             [out, retval] VARIANT* retval
  23628.             );
  23629.  
  23630.         /**
  23631.          * OnSave.
  23632.          * Unimplemented.
  23633.          * <p>
  23634.          */
  23635.         [
  23636.              propput
  23637.             ,helpcontext(0x103D0004)
  23638.             ,helpstring("Unimplemented.  OnSave.")
  23639.         ]
  23640.         HRESULT  OnSave(
  23641.             [in] VARIANT* prop
  23642.             );
  23643.  
  23644.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23645.  
  23646.     };
  23647.  
  23648.     /**
  23649.      * Procedures triggered by Graphic object actions.
  23650.      */
  23651.     [
  23652.          object
  23653.         ,restricted, hidden
  23654.         ,uuid(6A48113E-E531-11CF-A115-00A024158DAF)
  23655.         ,oleautomation
  23656.         ,dual
  23657.         ,helpcontext(0x103E0000)
  23658.         ,helpstring("Procedures triggered by Graphic object actions.")
  23659.     ]
  23660.     interface GraphicCallbacks : IDispatch
  23661.     {
  23662.  
  23663.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23664.  
  23665.         /**
  23666.          * OnAction.
  23667.          * Unimplemented.
  23668.          */
  23669.         [
  23670.              propget
  23671.             ,helpcontext(0x103E0001)
  23672.             ,helpstring("Unimplemented.  OnAction.")
  23673.         ]
  23674.         HRESULT  OnAction(
  23675.             [out, retval] VARIANT* retval
  23676.             );
  23677.  
  23678.         /**
  23679.          * OnAction.
  23680.          * Unimplemented.
  23681.          */
  23682.         [
  23683.              propput
  23684.             ,helpcontext(0x103E0001)
  23685.             ,helpstring("Unimplemented.  OnAction.")
  23686.         ]
  23687.         HRESULT  OnAction(
  23688.             [in] VARIANT* prop
  23689.             );
  23690.  
  23691.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23692.  
  23693.     };
  23694.  
  23695.     /**
  23696.      * Events sent by Application object.
  23697.      * Implement these events in your controlling application (as an IDispatch object).
  23698.      * Then, pass a pointer to the object to TurboCAD using the IApplication::ConnectEvents
  23699.      * method.  Set the mask parameter of IApplication::ConnectEvents to only receive
  23700.      * a subset of the full event set.
  23701.      *
  23702.      * @see IApplication::ConnectEvents
  23703.      * @see IApplication::DisconnectEvents
  23704.      */
  23705.     [
  23706.          object
  23707.         ,uuid(6A481301-E531-11CF-A115-00A024158DAF)
  23708.         ,helpcontext(0x103F0000)
  23709.         ,helpstring("TurboCAD Events.")
  23710.         ,pointer_default(unique)
  23711.     ]
  23712.     interface IAppEvents : IDispatch
  23713.     {
  23714.  
  23715.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  23716.  
  23717.         /**
  23718.          * Event fired by TurboCAD before the Application object quits.")]
  23719.          */
  23720.         [
  23721.              id(1)
  23722.             ,helpcontext(0x103F0001)
  23723.             ,helpstring("Event fired by TurboCAD before the Application object quits.")
  23724.         ]
  23725.          HRESULT  BeforeExit(
  23726.             [in] IApplication* TheApp, // The Application object.
  23727.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the quit operation.
  23728.             );
  23729.  
  23730.         /**
  23731.          * Event fired by TurboCAD after a new Drawing object is created.")]
  23732.          */
  23733.         [    
  23734.              id(2)
  23735.             ,helpcontext(0x103F0002)
  23736.             ,helpstring("Event fired by TurboCAD after a new Drawing object is created.")
  23737.         ]
  23738.         HRESULT  DrawingNew(
  23739.             [in] IDrawing* WhichDrawing // The Drawing object that was created.
  23740.             );
  23741.  
  23742.         /**
  23743.          * Event fired by TurboCAD after an existing Drawing object was opened.")]
  23744.          */
  23745.         [
  23746.              id(3)
  23747.             ,helpcontext(0x103F0003)
  23748.             ,helpstring("Event fired by TurboCAD after an existing Drawing object was opened.")
  23749.         ]
  23750.         HRESULT  DrawingOpen(
  23751.             [in] IDrawing* WhichDrawing // The Drawing object that was created.
  23752.             );
  23753.  
  23754.         /**
  23755.          * Event fired by TurboCAD after a Drawing object was activated.")]
  23756.          */
  23757.         [    
  23758.              id(4)
  23759.             ,helpcontext(0x103F0004)
  23760.             ,helpstring("Event fired by TurboCAD after a Drawing object was activated.")
  23761.         ]
  23762.         HRESULT  DrawingActivate(
  23763.             [in] IDrawing* WhichDrawing  // The Drawing object that was activated.
  23764.             );
  23765.  
  23766.         /**
  23767.          * Event fired by TurboCAD when a Drawing object will be deactivated.")]
  23768.          */
  23769.         [
  23770.              id(5)
  23771.             ,helpcontext(0x103F0005)
  23772.             ,helpstring("Event fired by TurboCAD when a Drawing object will be deactivated.")
  23773.         ]
  23774.         HRESULT  DrawingDeactivate(
  23775.             [in] IDrawing* WhichDrawing // The Drawing object that will be dactivated.
  23776.             );
  23777.  
  23778.         /**
  23779.          * Event fired by TurboCAD before a Drawing object is closed.")]
  23780.          */
  23781.         [
  23782.              id(6)
  23783.             ,helpcontext(0x103F0006)
  23784.             ,helpstring("Event fired by TurboCAD before a Drawing object is closed.")
  23785.         ]
  23786.         HRESULT  DrawingBeforeClose(
  23787.             [in] IDrawing* WhichDrawing, // The Drawing object that will be closed.
  23788.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the close operation.
  23789.             );
  23790.  
  23791.         /**
  23792.          * Event fired by TurboCAD before a Drawing object is saved.")]
  23793.          */
  23794.         [
  23795.              id(7)
  23796.             ,helpcontext(0x103F0007)
  23797.             ,helpstring("Event fired by TurboCAD before a Drawing object is saved.")
  23798.         ]
  23799.         HRESULT  DrawingBeforeSave(
  23800.             [in] IDrawing* WhichDrawing, // The Drawing object that will be saved.
  23801.             [in, out] IMSI_BOOL* SaveAs, // Set to True to save the Drawing object under a different name.
  23802.             [in, out] IMSI_BOOL* Cancel // Set to True to cancel the save operation.
  23803.             );
  23804.  
  23805.         /**
  23806.          * Event fired by TurboCAD when a Window object was resized.")]
  23807.          */
  23808.         [
  23809.              id(8)
  23810.             ,helpcontext(0x103F0008)
  23811.             ,helpstring("Event fired by TurboCAD when a Window object was resized.")
  23812.         ]
  23813.         HRESULT  WindowResize(
  23814.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23815.             [in] View* WhichView, // The View object in which the action occurred.
  23816.             [in] Window* WhichWindow // The Window object that was resized.
  23817.             );
  23818.  
  23819.         /**
  23820.          * Event fired by TurboCAD when a Window object was activated.
  23821.          */
  23822.         [
  23823.              id(0x9)
  23824.             ,helpcontext(0x103F0009)
  23825.             ,helpstring("Event fired by TurboCAD when a Window object was activated.")
  23826.         ]
  23827.         HRESULT  WindowActivate(
  23828.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23829.             [in] View* WhichView, // The View object in which the action occurred.
  23830.             [in] Window* WhichWindow // The Window object that was activated.
  23831.             );
  23832.  
  23833.         /**
  23834.          * Event fired by TurboCAD before a Window object is deactivated.
  23835.          */
  23836.         [
  23837.              id(0xa)
  23838.             ,helpcontext(0x103F000A)
  23839.             ,helpstring("Event fired by TurboCAD before a Window object is deactivated.")
  23840.         ]
  23841.         HRESULT  WindowDeactivate(
  23842.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23843.             [in] View* WhichView, // The View object in which the action occurred.
  23844.             [in] Window* WhichWindow // The Window object that will be deactivated.
  23845.             );
  23846.  
  23847.         /**
  23848.          * Event fired by TurboCAD when a mouse button was pressed.
  23849.          */
  23850.         [
  23851.              id(0xb)
  23852.             ,helpcontext(0x103F000B)
  23853.             ,helpstring("Event fired by TurboCAD when a mouse button was pressed.")
  23854.         ]
  23855.     HRESULT  MouseDown(
  23856.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23857.             [in] View* WhichView, // The View object in which the action occurred.
  23858.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23859.       [in] ImsiMouseButton Button, // Which button was pressed.
  23860.       [in] long Shift, // Which modifier keys were down when the action occurred.
  23861.       [in] long X, // The x window coordinate where the action occurred.
  23862.       [in] long Y, // The y window coordinate where the action occurred.
  23863.       [in, out] IMSI_BOOL* Cancel // True to cancel the mouse down operation.
  23864.             );
  23865.  
  23866.         /**
  23867.          * Event fired by TurboCAD when a mouse button was released.
  23868.          */
  23869.         [
  23870.              id(0xc)
  23871.             ,helpcontext(0x103F000C)
  23872.             ,helpstring("Event fired by TurboCAD when a mouse button was released.")
  23873.         ]
  23874.     HRESULT  MouseUp(
  23875.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23876.             [in] View* WhichView, // The View object in which the action occurred.
  23877.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23878.       [in] ImsiMouseButton Button, // Which button was released.
  23879.       [in] long Shift, // Which modifier keys were down when the action occurred.
  23880.       [in] long X, // The x window coordinate where the action occurred.
  23881.       [in] long Y, // The y window coordinate where the action occurred.
  23882.       [in, out] IMSI_BOOL* Cancel // True to cancel the mouse up operation.
  23883.             );
  23884.  
  23885.         /**
  23886.          * Event fired by TurboCAD when the mouse was moved.
  23887.          */
  23888.         [
  23889.              id(0xd)
  23890.             ,helpcontext(0x103F000D)
  23891.             ,helpstring("Event fired by TurboCAD when the mouse was moved.")
  23892.         ]
  23893.     HRESULT  MouseMove(
  23894.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23895.             [in] View* WhichView, // The View object in which the action occurred.
  23896.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23897.       [in] long Shift, // Which modifier keys were down when the action occurred.
  23898.       [in] long X, // The x window coordinate where the action occurred.
  23899.       [in] long Y, // The y window coordinate where the action occurred.
  23900.       [in, out] IMSI_BOOL* Cancel // True to cancel the move operation.
  23901.             );
  23902.  
  23903.         /**
  23904.          * Event fired by TurboCAD before a double click action is taken.
  23905.          */
  23906.         [
  23907.              id(0xe)
  23908.             ,helpcontext(0x103F000E)
  23909.             ,helpstring("Event fired by TurboCAD before a double click action is taken.")
  23910.         ]
  23911.         HRESULT  BeforeDoubleClick(
  23912.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23913.             [in] View* WhichView, // The View object in which the action occurred.
  23914.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23915.             [in] Selection* Sel, // The active Selection object.
  23916.             [in, out] IMSI_BOOL* Cancel // True to cancel the double click operation.
  23917.             );
  23918.  
  23919.         /**
  23920.          * Event fired by TurboCAD before a right click action is taken.
  23921.          */
  23922.         [
  23923.              id(0xf)
  23924.             ,helpcontext(0x103F000F)
  23925.             ,helpstring("Event fired by TurboCAD before a right click action is taken.")
  23926.         ]
  23927.         HRESULT  BeforeRightClick(
  23928.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23929.             [in] View* WhichView, // The View object in which the action occurred.
  23930.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23931.             [in] Selection* Sel, // The active Selection object.
  23932.             [in, out] IMSI_BOOL* Cancel // True to cancel the right click operation.
  23933.             );
  23934.  
  23935.         /**
  23936.          * Event fired by TurboCAD after the Selection object has changed.
  23937.          */
  23938.         [
  23939.              id(0x10)
  23940.             ,helpcontext(0x103F0010)
  23941.             ,helpstring("Event fired by TurboCAD after the Selection object has changed.")
  23942.         ]
  23943.          HRESULT  SelectionChange(
  23944.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23945.             [in] View* WhichView, // The View object in which the action occurred.
  23946.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  23947.             [in] Selection* Sel // The new active Selection object.
  23948.             );
  23949.  
  23950.         /**
  23951.          * Event fired by TurboCAD when a CommandBarControl object was hit.
  23952.          */
  23953.         [
  23954.              id(0x11)
  23955.             ,helpcontext(0x103F0011)
  23956.             ,helpstring("Event fired by TurboCAD when a CommandBarControl object was hit.")
  23957.         ]
  23958.          HRESULT  CommandBarControlHit(
  23959.             [in] CommandBarControl* WhichControl, // The CommandBarControl object.
  23960.             [in, out] IMSI_BOOL* Cancel // True to cancel the operation.
  23961.             );
  23962.  
  23963.         /**
  23964.          * Event fired by TurboCAD to inquire on the status of a CommandBarControl object.
  23965.          */
  23966.         [
  23967.              id(0x12)
  23968.             ,helpcontext(0x103F0012)
  23969.             ,helpstring("Event fired by TurboCAD to inquire on the status of a CommandBarControl object.")
  23970.         ]
  23971.          HRESULT  CommandBarControlStatus(
  23972.             [in] CommandBarControl* WhichControl // The CommandBarControl object.
  23973.             );
  23974.  
  23975.         /**
  23976.          * Event fired by TurboCAD when a Tool object is activated.
  23977.          */
  23978.         [
  23979.              id(0x13)
  23980.             ,helpcontext(0x103F0013)
  23981.             ,helpstring("Event fired by TurboCAD when a Tool object is activated.")
  23982.         ]
  23983.          HRESULT  RunTool(
  23984.             [in] Tool* WhichTool // The Tool object that was activated.
  23985.             );
  23986.  
  23987.         /**
  23988.          * Event fired by TurboCAD when a point was picked in a View object.
  23989.          */
  23990.         [
  23991.              id(0x14)
  23992.             ,helpcontext(0x103F0014)
  23993.             ,helpstring("Event fired by TurboCAD when a point was picked in a View object.")
  23994.         ]
  23995.         HRESULT  PointSnapped(
  23996.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  23997.             [in] View* WhichView, // The View object in which the action occurred.
  23998.       [in] long X, // The x window coordinate where the action occurred.
  23999.       [in] long Y, // The y window coordinate where the action occurred.
  24000.             [in] IVertex* PointRaw, // A Vertex object that gives the location of the pick action.
  24001.             [in] IVertex* PointSnapped // A Vertex object that gives the snapped location.
  24002.             );
  24003.  
  24004.         /**
  24005.          * Event fired by TurboCAD when a point pick operation was completed or canceled.
  24006.          */
  24007.         [
  24008.              id(0x15)
  24009.             ,helpcontext(0x103F0015)
  24010.             ,helpstring("Event fired by TurboCAD when a point pick operation was completed or canceled.")
  24011.         ]
  24012.          HRESULT  PointPick(
  24013.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24014.             [in] View* WhichView, // The View object in which the action occurred.
  24015.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24016.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24017.             );
  24018.  
  24019.         /**
  24020.          * Event fired by TurboCAD when a rectangle pick operation was completed or canceled.
  24021.          */
  24022.         [
  24023.              id(0x16)
  24024.             ,helpcontext(0x103F0016)
  24025.             ,helpstring("Event fired by TurboCAD when a rectangle pick operation was completed or canceled.")
  24026.         ]
  24027.          HRESULT  RectanglePick(
  24028.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24029.             [in] View* WhichView, // The View object in which the action occurred.
  24030.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24031.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24032.             );
  24033.  
  24034.         /**
  24035.          * Event fired by TurboCAD when a polygon pick operation was completed or canceled.
  24036.          */
  24037.         [
  24038.              id(0x17)
  24039.             ,helpcontext(0x103F0017)
  24040.             ,helpstring("Event fired by TurboCAD when a polygon pick operation was completed or canceled.")
  24041.         ]
  24042.          HRESULT  PolygonPick(
  24043.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24044.             [in] View* WhichView, // The View object in which the action occurred.
  24045.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24046.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24047.             );
  24048.  
  24049.         /**
  24050.          * Event fired by TurboCAD before a View object is redrawn.
  24051.          */
  24052.         [
  24053.              id(0x18)
  24054.             ,helpcontext(0x103F0018)
  24055.             ,helpstring("Event fired by TurboCAD before a View object is redrawn.")
  24056.         ]
  24057.          HRESULT  ViewBeforeRedraw(
  24058.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24059.             [in] View* WhichView // The View object in which the action occurred.
  24060.             );
  24061.  
  24062.         /**
  24063.          * Event fired by TurboCAD after a View object was redrawn.
  24064.          */
  24065.         [
  24066.              id(0x19)
  24067.             ,helpcontext(0x103F0019)
  24068.             ,helpstring("Event fired by TurboCAD after a View object was redrawn.")
  24069.         ]
  24070.          HRESULT  ViewAfterRedraw(
  24071.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24072.             [in] View* WhichView // The View object in which the action occurred.
  24073.             );
  24074.  
  24075.         /**
  24076.          * Event fired by TurboCAD when a virtual intersection pick operation was completed or canceled.
  24077.          */
  24078.         [
  24079.              id(0x1a)
  24080.             ,helpcontext(0x103F001A)
  24081.             ,helpstring("Event fired by TurboCAD when a virtual intersection pick operation was completed or canceled.")
  24082.         ]
  24083.          HRESULT  VirtualIntersectionPick(
  24084.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24085.             [in] View* WhichView, // The View object in which the action occurred.
  24086.             [in] PickResult* Result, // The PickResult object describing what was picked.
  24087.             [in] IMSI_BOOL PickWasCanceled // True if the pick operation was canceled by the user.
  24088.             );
  24089.  
  24090.         /**
  24091.          * Event fired by TurboCAD after the command has finished.
  24092.          */
  24093.         [
  24094.              id(0x1b)
  24095.             ,helpcontext(0x103F001B)
  24096.             ,helpstring("Event fired by TurboCAD after the command has finished.")
  24097.         ]
  24098.          HRESULT  CommandBarControlDone(
  24099.             [in] CommandBarControl* WhichControl // The CommandBarControl object.
  24100.             );
  24101.  
  24102.         /**
  24103.          * Event fired by TurboCAD after something was dropped into a drawing.
  24104.          */
  24105.         [
  24106.              id(0x1c)
  24107.             ,helpcontext(0x103F001C)
  24108.             ,helpstring("Event fired by TurboCAD after something was dropped into a drawing.")
  24109.         ]
  24110.         HRESULT  Drop(
  24111.             [in] IDrawing* WhichDrawing, // The Drawing object that owns the View object.
  24112.             [in] View* WhichView, // The View object in which the action occurred.
  24113.             [in] Window* WhichWindow, // The Window object in which the action occurred.
  24114.             [in] Selection* Sel // The active Selection object.
  24115.             );
  24116.  
  24117.         /**
  24118.          * Event fired by TurboCAD after a Drawing object is saved.")]
  24119.          */
  24120.         [
  24121.              id(0x1d)
  24122.             ,helpcontext(0x103F001D)
  24123.             ,helpstring("Event fired by TurboCAD after a Drawing object is saved.")
  24124.         ]
  24125.         HRESULT  DrawingAfterSave(
  24126.             [in] IDrawing* WhichDrawing // The Drawing object that will be saved.
  24127.             );
  24128.     };
  24129.  
  24130.     /**
  24131.      * A TurboCAD macros.
  24132.      */
  24133.     [
  24134.          object, uuid(D04FB7F0-8D02-11d2-8DAF-000021452DB6)
  24135.         ,oleautomation
  24136.         ,dual
  24137.         ,helpcontext(0x10400000)
  24138.         ,helpstring("A TurboCAD Macro project.")
  24139.         ]
  24140.     interface Macro : IDispatch
  24141.     {
  24142.  
  24143.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24144.  
  24145.         /**
  24146.          * Returns an Application object that represents the owner of the specified object.
  24147.          */
  24148.         [
  24149.              propget
  24150.             ,helpcontext(0x10400001)
  24151.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  24152.         ]
  24153.         HRESULT  Application(
  24154.             [out, retval] IApplication** prop // The Application object.
  24155.             );
  24156.  
  24157.         /**
  24158.          * Returns the index of the item in the collection.
  24159.          */
  24160.         [
  24161.              propget
  24162.             ,helpcontext(0x10400002)
  24163.             ,helpstring("Returns the index of the item in the collection.")
  24164.         ]
  24165.         HRESULT  Index(
  24166.             [out, retval] long* prop // The index.
  24167.             );
  24168.  
  24169.         /**
  24170.          * Returns the name of the object, as a string.
  24171.          */
  24172.         [
  24173.              propget
  24174.             ,helpcontext(0x10400003)
  24175.             ,helpstring("Returns the name of the object, as a string.")
  24176.         ]
  24177.         HRESULT  Name(
  24178.             [out, retval] BSTR* prop // The name of the object.
  24179.             );
  24180.  
  24181.         /**
  24182.          * Sets the name of the object, as a string.
  24183.          */
  24184.         [
  24185.              propput
  24186.             ,helpcontext(0x10400003)
  24187.             ,helpstring("Sets the name of the object, as a string.")
  24188.         ]
  24189.         HRESULT  Name(
  24190.             [in] BSTR prop // The name of the object.
  24191.             );
  24192.  
  24193.         /**
  24194.          * Returns the parent object for the specified object.
  24195.          */
  24196.         [
  24197.              propget
  24198.             ,helpcontext(0x10400004)
  24199.             ,helpstring("Returns the parent object for the specified object.")
  24200.         ]
  24201.         HRESULT  Parent(
  24202.             [out, retval] IDispatch** prop // The parent object.
  24203.             );
  24204.  
  24205.         /**
  24206.          * Returns the internal table entry ID.
  24207.          * Private.
  24208.          */
  24209.         [
  24210.              propget
  24211.             ,restricted
  24212.             ,helpcontext(0x10400005)
  24213.             ,helpstring("Private.  Returns the internal table entry ID.")
  24214.         ]
  24215.         HRESULT  _TableEntryID(
  24216.             [out, retval] long* prop // The table entry ID.
  24217.             );
  24218.  
  24219.  
  24220.         /**
  24221.          * Returns the Drawing object that owns the object.
  24222.          */
  24223.         [
  24224.              propget
  24225.             ,helpcontext(0x10400006)
  24226.             ,helpstring("Returns the Drawing object that owns the object.")
  24227.         ]
  24228.         HRESULT  Drawing(
  24229.             [out, retval] IDrawing** prop // The Drawing object.
  24230.             );
  24231.  
  24232.         /**
  24233.          * Returns the Macro's project object's path.
  24234.          */
  24235.         [
  24236.              propget
  24237.             ,helpcontext(0x10400007)
  24238.             ,helpstring("Returns the Macro's project object's path.")
  24239.         ]
  24240.         HRESULT  Path(
  24241.             [out, retval] BSTR* prop // path.
  24242.             );
  24243.  
  24244.         /**
  24245.          * Sets the Macro's project object's path.
  24246.          */
  24247.         [
  24248.              propput
  24249.             ,helpcontext(0x10400007)
  24250.             ,helpstring("Sets the Macro's project object's path.")
  24251.         ]
  24252.          
  24253.         HRESULT  Path(
  24254.             [in] BSTR prop // path.
  24255.             );
  24256.  
  24257.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24258.  
  24259.         /**
  24260.          * Deletes the object.
  24261.          */
  24262.         [
  24263.              helpcontext(0x10400008)
  24264.             ,helpstring("Deletes the object.")
  24265.         ]
  24266.         HRESULT  Delete(
  24267.             );
  24268.     };
  24269.  
  24270.     /**
  24271.      * A collection of Macro objects.
  24272.      */
  24273.     [
  24274.          object
  24275.         ,uuid(D04FB7F1-8D02-11d2-8DAF-000021452DB6)
  24276.         ,oleautomation
  24277.         ,dual
  24278.         ,helpcontext(0x10410000)
  24279.         ,helpstring("A collection of Macro projects objects.")
  24280.     ]
  24281.     interface Macros : IDispatch
  24282.     {
  24283.  
  24284.         ///////////////////////////// Properties \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24285.  
  24286.         /**
  24287.          * Returns an Application object that represents the owner of the specified object.
  24288.          */
  24289.         [
  24290.              propget
  24291.             ,helpcontext(0x10410001)
  24292.             ,helpstring("Returns an Application object that represents the creator of the specified object.")
  24293.         ]
  24294.         HRESULT  Application(
  24295.             [out, retval] IApplication** prop // The Application object.
  24296.             );
  24297.  
  24298.         /**
  24299.          * Returns the number of items in the collection.
  24300.          */
  24301.         [
  24302.              propget
  24303.             ,helpcontext(0x10410002)
  24304.             ,helpstring("Returns the number of items in the collection.")
  24305.         ]
  24306.         HRESULT  Count(
  24307.             [out, retval] long* prop // The number of items.
  24308.             );
  24309.  
  24310.         /**
  24311.          * Returns part of a collection.
  24312.          */
  24313.         [
  24314.              propget
  24315.             ,id(DISPID_VALUE)
  24316.             ,helpcontext(0x10410003)
  24317.             ,helpstring("Returns part of a collection.")
  24318.         ]
  24319.         HRESULT  Item(
  24320.             [in] VARIANT* Index, // Index of item to return.
  24321.             [out, retval] Macro** prop // The item.
  24322.             );
  24323.  
  24324.         /**
  24325.          * Returns the parent object for the specified object.
  24326.          */
  24327.         [
  24328.              propget
  24329.             ,helpcontext(0x10410004)
  24330.             ,helpstring("Returns the parent object for the specified object.")
  24331.         ]
  24332.         HRESULT  Parent(
  24333.             [out, retval] IDispatch** prop // The parent object.
  24334.             );
  24335.  
  24336.         /**
  24337.          * Creates an enumeration object.
  24338.          */
  24339.         [
  24340.              propget
  24341.             ,restricted
  24342.             ,id(DISPID_NEWENUM)
  24343.             ,helpcontext(0x10410005)
  24344.             ,helpstring("Private.  Creates an enumeration object.")
  24345.         ]
  24346.         HRESULT  _NewEnum(
  24347.             [out, retval] IUnknown** prop // The enumeration object.
  24348.             );
  24349.  
  24350.         /////////////////////////////// Methods \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  24351.  
  24352.         /**
  24353.          * Adds a new Macro object to the collection.
  24354.          */
  24355.         [
  24356.              helpcontext(0x10410006)
  24357.             ,helpstring("Adds a new Macro object to the collection.")
  24358.         ]
  24359.         HRESULT  Add(
  24360.             [in] BSTR Name, // The name of the new Macro object.
  24361.             [in] BSTR Path,
  24362.             [out, retval] Macro** prop // The newly created NamedView object.
  24363.             );
  24364.  
  24365.         /**
  24366.          * Returns the index within the table collection of the specified table entry.
  24367.          * Private.
  24368.          */
  24369.         [
  24370.              restricted
  24371.             ,helpcontext(0x10410007)
  24372.             ,helpstring("Private.  Returns the index within the table collection of the specified table entry.")
  24373.         ]
  24374.         HRESULT  _FindIndex(
  24375.             [in] long TableEntryID, // The internal table ID.
  24376.             [out, retval] long* prop // The zero based index.
  24377.             );
  24378.  
  24379.         /**
  24380.          * Returns an object from the table collection for the specified table entry.
  24381.          * Private.
  24382.          */
  24383.         [
  24384.              restricted
  24385.             ,helpcontext(0x10410008)
  24386.             ,helpstring("Private.  Returns an object from the table collection for the specified table entry.")
  24387.         ]
  24388.         HRESULT  _ObjectFromID(
  24389.             [in] long TableEntryID, // The internal table ID.
  24390.             [out, retval] Macro** prop // The object.
  24391.             );
  24392.     };
  24393.  
  24394.  
  24395.  
  24396. ////////////////////////////////////////////////////////////////////////////
  24397. // TypeLibrary
  24398.  
  24399. [
  24400.      uuid(6A481400-E531-11CF-A115-00A024158DAF)
  24401.     ,version(4.0)
  24402.     ,helpfile("tcsdk.chm")
  24403.     ,helpcontext(0x12345678)
  24404.     ,helpstring("TurboCAD v4.1 Programmable Objects.")
  24405. ]
  24406. library IMSIGX
  24407. {
  24408.     importlib("stdole32.tlb");
  24409.  
  24410.     /**
  24411.      * Enumerated values for event mask.
  24412.      */
  24413.     [
  24414.          helpcontext(0x12345678)
  24415.         ,helpstring("Enumerated values for event mask.")
  24416.     ]
  24417.     typedef enum ImsiEventMask {
  24418.         imsiEventBeforeExit = 1L << 0,
  24419.         imsiEventDrawingNew = 1L << 1,
  24420.         imsiEventDrawingOpen = 1L << 2,
  24421.         imsiEventDrawingActivate = 1L << 3,
  24422.         imsiEventDrawingDeactivate = 1L << 4,
  24423.         imsiEventDrawingBeforeClose = 1L << 5,
  24424.         imsiEventDrawingBeforeSave = 1L << 6,
  24425.         imsiEventWindowResize = 1L << 7,
  24426.         imsiEventWindowActivate = 1L << 8,
  24427.         imsiEventWindowDeactivate = 1L << 9,
  24428.         imsiEventMouseDown = 1L << 10,
  24429.         imsiEventMouseUp = 1L << 11,
  24430.         imsiEventMouseMove = 1L << 12,
  24431.         imsiEventBeforeDoubleClick = 1L << 13,
  24432.         imsiEventBeforeRightClick = 1L << 14,
  24433.         imsiEventSelectionChange = 1L << 15,
  24434.         imsiEventCommandBarControlHit = 1L << 16,
  24435.         imsiEventCommandBarControlStatus = 1L << 17,
  24436.         imsiEventRunTool = 1L << 18,
  24437.         imsiEventPointSnapped = 1L << 19,
  24438.         imsiEventPointPick = 1L << 20,
  24439.         imsiEventRectanglePick = 1L << 21,
  24440.         imsiEventPolygonPick = 1L << 22,
  24441.         imsiEventViewBeforeRedraw = 1L << 23,
  24442.         imsiEventViewAfterRedraw = 1L << 24,
  24443.         imsiEventVirtualIntersectionPick = 1L << 25,
  24444.         imsiEventCommandBarControlDone = 1L << 26,
  24445.         imsiEventDrop = 1L << 27,
  24446.         imsiEventCancel = 1L << 28,
  24447.         imsiEventUpdateUndo = 1L << 29,
  24448.         imsiEventDrawingAfterSave = 1L << 30
  24449.     } ImsiEventMask;
  24450. ///////////////////////////////////////////////////////////////////////////
  24451. // TurboCAD coclasses (EXE server)
  24452.     [
  24453.          uuid(6A481000-E531-11CF-A115-00A024158DAF)
  24454.     // NSAM & LVR 012899 
  24455.     //appobject,
  24456.      /*predeclid,*/
  24457.         ,hidden
  24458.         ,version(4.0)
  24459.         ,helpcontext(0x10420000)
  24460.         ,helpstring("The TurboCAD application.")
  24461.     ]
  24462.     coclass Global {
  24463.         [default] interface IGlobal;
  24464.     }
  24465.     [
  24466.          uuid(6A481001-E531-11CF-A115-00A024158DAF)
  24467.     // NSAM & LVR 012899 
  24468.     //appobject,
  24469.         ,version(4.0)
  24470.         ,helpcontext(0x10430000)
  24471.         ,helpstring("The TurboCAD application.")
  24472.     ]
  24473.     coclass Application
  24474.     {
  24475.         [default] interface IApplication;
  24476.         [default, source] dispinterface IAppEvents;
  24477.     }
  24478.     // Note: this is the same magic CLSID used by TurboCAD 3.0!
  24479.     [
  24480.          uuid(6A481002-E531-11CF-A115-00A024158DAF)
  24481.         ,version(4.0)
  24482.         ,helpcontext(0x10440000)
  24483.         ,helpstring("A TurboCAD drawing.")
  24484.     ]
  24485.     coclass Drawing
  24486.     {
  24487.         [default] interface IDrawing;
  24488.         [default, source] dispinterface IAppEvents;
  24489.     }
  24490.     [
  24491.          uuid(6A481003-E531-11CF-A115-00A024158DAF)
  24492.         ,version(4.0)
  24493.         ,helpcontext(0x10450000)
  24494.         ,helpstring("A TurboCAD graphic.")
  24495.     ]
  24496.     coclass Graphic
  24497.     {
  24498.         [default] interface IGraphic;
  24499.     }
  24500.     [
  24501.          uuid(6A481004-E531-11CF-A115-00A024158DAF)
  24502.         ,version(4.0)
  24503.         ,helpcontext(0x10460000)
  24504.         ,helpstring("A TurboCAD vertex.")
  24505.     ]
  24506.     coclass Vertex
  24507.     {
  24508.         [default] interface IVertex;
  24509.     }
  24510.     
  24511.     [
  24512.          uuid(6A481005-E531-11CF-A115-00A024158DAF)
  24513.         ,version(4.0)
  24514.         ,helpcontext(0x10470000)
  24515.         ,helpstring("A transformation matrix.")
  24516.     ]
  24517.     coclass Matrix
  24518.     {
  24519.         [default] interface IMatrix;
  24520.     }
  24521.     [
  24522.          uuid(6A481006-E531-11CF-A115-00A024158DAF)
  24523.         ,version(4.0)
  24524.         ,helpcontext(0x10480000)
  24525.         ,helpstring("A TurboCAD camera.")
  24526.     ]
  24527.     coclass Camera
  24528.     {
  24529.         [default] interface ICamera;
  24530.     }
  24531.     
  24532.     [
  24533.          uuid(6A481007-E531-11CF-A115-00A024158DAF)
  24534.         ,restricted, hidden
  24535.         ,version(4.0)
  24536.         ,helpcontext(0x10490000)
  24537.         ,helpstring("A TurboCAD grid.")
  24538.     ]
  24539.     coclass Grid
  24540.     {
  24541.         [default] interface IGrid;
  24542.     }
  24543.     [
  24544.          uuid(6A481009-E531-11CF-A115-00A024158DAF)
  24545.         ,version(4.0)
  24546.         ,restricted, hidden
  24547.         ,helpcontext(0x104A0000)
  24548.         ,helpstring("A brush pattern.")
  24549.     ]
  24550.     coclass BrushPattern
  24551.     {
  24552.         [default] interface IBrushPattern;
  24553.     }
  24554.  
  24555.         ///////////////////////////////////////////////////////////////////////////
  24556.         // IMSIGX coclasses (DLL server)
  24557.     [
  24558.          uuid(6A481800-E531-11CF-A115-00A024158DAF)
  24559.         ,appobject
  24560.         /*predeclid,*/
  24561.         ,hidden
  24562.         ,version(4.0)
  24563.         ,helpcontext(0x104B0000)
  24564.         ,helpstring("The TurboCAD application.")
  24565.     ]
  24566.     coclass XGlobal {
  24567.         [default] interface IGlobal;
  24568.     }
  24569.  
  24570.  
  24571.     [
  24572.          uuid(6A481801-E531-11CF-A115-00A024158DAF)
  24573.         //appobject,
  24574.         ,version(4.0)
  24575.         ,helpcontext(0x104C0000)
  24576.         ,helpstring("The TurboCAD application.")
  24577.     ]
  24578.     coclass XApplication
  24579.     {
  24580.         [default] interface IApplication;
  24581.         interface IGlobal;
  24582.     }
  24583.     [
  24584.          uuid(6A481802-E531-11CF-A115-00A024158DAF)
  24585.         ,version(4.0)
  24586.         ,helpcontext(0x104D0000)
  24587.         ,helpstring("A TurboCAD drawing.")
  24588.     ]
  24589.     coclass XDrawing
  24590.     {
  24591.         [default] interface IDrawing;
  24592.     }
  24593.     [
  24594.          uuid(6A481803-E531-11CF-A115-00A024158DAF)
  24595.         ,version(4.0)
  24596.         ,helpcontext(0x104E0000)
  24597.         ,helpstring("A TurboCAD graphic.")
  24598.     ]
  24599.     coclass XGraphic
  24600.     {
  24601.         [default] interface IGraphic;
  24602.     }
  24603.  
  24604.     [
  24605.          uuid(6A481804-E531-11CF-A115-00A024158DAF)
  24606.         ,version(4.0)
  24607.         ,helpcontext(0x104F0000)
  24608.         ,helpstring("A TurboCAD vertex.")
  24609.     ]
  24610.     coclass XVertex
  24611.     {
  24612.         [default] interface IVertex;
  24613.     }
  24614.     [
  24615.          uuid(6A481805-E531-11CF-A115-00A024158DAF)
  24616.         ,version(4.0)
  24617.         ,helpcontext(0x10500000)
  24618.         ,helpstring("A transformation matrix.")
  24619.     ]
  24620.     coclass XMatrix
  24621.     {
  24622.         [default] interface IMatrix;
  24623.     }
  24624.     [
  24625.          uuid(6A481806-E531-11CF-A115-00A024158DAF)
  24626.         ,version(4.0)
  24627.         ,helpcontext(0x10510000)
  24628.         ,helpstring("A TurboCAD camera.")
  24629.     ]
  24630.     coclass XCamera
  24631.     {
  24632.         [default] interface ICamera;
  24633.     }
  24634.  
  24635.     [
  24636.          uuid(6A481807-E531-11CF-A115-00A024158DAF)
  24637.         ,restricted, hidden
  24638.         ,version(4.0)
  24639.         ,helpcontext(0x10520000)
  24640.         ,helpstring("A TurboCAD grid.")
  24641.     ]
  24642.     coclass XGrid
  24643.     {
  24644.         [default] interface IGrid;
  24645.     }
  24646.     
  24647.     [
  24648.          uuid(6A481809-E531-11CF-A115-00A024158DAF)
  24649.         ,version(4.0)
  24650.         ,restricted, hidden
  24651.         ,helpcontext(0x10530000)
  24652.         ,helpstring("A brush pattern.")
  24653.     ]
  24654.     coclass XBrushPattern
  24655.     {
  24656.         [default] interface IBrushPattern;
  24657.     }
  24658. }
  24659.  
  24660.