home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / oleaut / lines / lines.odl < prev    next >
Text File  |  1997-10-02  |  7KB  |  196 lines

  1. /*************************************************************************
  2. **
  3. **    Lines Object.
  4. **
  5. **    lines.odl
  6. **
  7. **    Object Description source file.
  8. **
  9. **     Written by Microsoft Product Support Services, Windows Developer Support
  10. **    (c) Copyright Microsoft Corp. 1994 All Rights Reserved
  11. **
  12. *************************************************************************/ 
  13.  
  14. [
  15.   uuid(3C591B20-1F13-101B-B826-00DD01103DE1),              // LIBID_Lines
  16.   helpstring("Lines 1.0 Type Library"),
  17.   version(1.0)
  18. library Lines
  19. {
  20. #ifdef WIN32
  21.     importlib("stdole2.tlb");
  22. #else
  23.     importlib("stdole.tlb");
  24. #endif
  25.  
  26.     #define DISPID_NEWENUM -4      
  27.     
  28.     [
  29.       uuid(3C591B25-1F13-101B-B826-00DD01103DE1),          // IID_IPoint                 
  30.       helpstring("Point object."),
  31.       oleautomation,
  32.       dual
  33.     ]
  34.     interface IPoint : IDispatch                         
  35.     {                
  36.       [propget, helpstring("Returns and sets x coordinate.")]
  37.       HRESULT x([out, retval] int* retval); 
  38.       [propput, helpstring("Returns and sets x coordinate.")]
  39.       HRESULT x([in] int Value);
  40.         
  41.       [propget, helpstring("Returns and sets y coordinate.")]
  42.       HRESULT y([out, retval] int* retval); 
  43.       [propput, helpstring("Returns and sets y coordinate.")]
  44.       HRESULT y([in] int Value);
  45.     }                  
  46.     
  47.     [
  48.       uuid(3C591B24-1F13-101B-B826-00DD01103DE1),          // IID_ILine                      
  49.       helpstring("Line object."),
  50.       oleautomation,
  51.       dual
  52.     ]
  53.     interface ILine : IDispatch                         
  54.     {
  55.       [propget, helpstring("Returns and sets RGB color.")]
  56.       HRESULT Color([out, retval] long* retval); 
  57.       [propput, helpstring("Returns and sets RGB color.")]
  58.       HRESULT Color([in] long rgb);
  59.         
  60.       [propget, helpstring("Returns and sets EndPoint."), id(1)]   
  61.       HRESULT EndPoint([out, retval] IPoint** retval); 
  62.       [propputref, helpstring("Returns and sets EndPoint."), id(1)]  
  63.       HRESULT EndPoint([in] IPoint* Point);
  64.         
  65.       [propget, helpstring("Returns and sets StartPoint."), id(2)]
  66.       HRESULT StartPoint([out, retval] IPoint** retval); 
  67.       [propputref, helpstring("Returns and sets StartPoint."), id(2)]
  68.       HRESULT StartPoint([in] IPoint* Point);
  69.         
  70.       [propget, helpstring("Returns and sets Thickness.")]  
  71.       HRESULT Thickness([out, retval] int* retval); 
  72.       [propput, helpstring("Returns and sets Thickness.")]  
  73.       HRESULT Thickness([in] int Value);
  74.     }
  75.     
  76.     [
  77.       uuid(3C591B26-1F13-101B-B826-00DD01103DE1),          // IID_ILines                
  78.       helpstring("Lines collection."),
  79.       oleautomation,
  80.       dual
  81.     ]
  82.     interface ILines : IDispatch                         
  83.     {                
  84.       [helpstring("Adds a new line to collection.")] 
  85.       HRESULT Add([in] ILine* NewLine);  
  86.  
  87.       [propget, helpstring("Returns number of lines in collection.")]    
  88.       HRESULT Count([out, retval] long* retval); 
  89.  
  90.       [propget, id(0), helpstring("Given an integer index, returns one of the lines in the collection")]
  91.       HRESULT Item([in] long Index, [out, retval] ILine** retval); 
  92.                         
  93.       [propget, restricted, id(DISPID_NEWENUM)]    // Must be propget.   
  94.       HRESULT _NewEnum([out, retval] IUnknown** retval);        
  95.       
  96.       [helpstring("Given an integer index, removes line from collection.")]
  97.       HRESULT Remove([in] long Index); 
  98.     }
  99.     
  100.     [
  101.       uuid(3C591B27-1F13-101B-B826-00DD01103DE1),          // IID_IPoints                
  102.       helpstring("Points collection."),
  103.       oleautomation,
  104.       dual
  105.     ]
  106.     interface IPoints : IDispatch                         
  107.     {                
  108.       [propget, helpstring("Returns number of points in collection.")]
  109.       HRESULT Count([out, retval] long* retval); 
  110.  
  111.       [propget, id(0), helpstring("Given an integer index, returns one of the points in the collection")]
  112.       HRESULT Item([in] long Index, [out, retval] IPoint** retval);
  113.                         
  114.       [propget, restricted, id(DISPID_NEWENUM)]    // Must be propget.
  115.       HRESULT _NewEnum([out, retval] IUnknown** retval);     
  116.     } 
  117.     
  118.     [
  119.       uuid(3C591B23-1F13-101B-B826-00DD01103DE1),          // IID_IPane                      
  120.       helpstring("Pane object."),
  121.       oleautomation,
  122.       dual
  123.     ]
  124.     interface IPane : IDispatch                         
  125.     {
  126.       [propget, helpstring("Returns a collection of all the Line objects in the drawing.")]
  127.       HRESULT Lines([out, retval] ILines** retval);    
  128.         
  129.       [propget, helpstring("Returns a collection of all the Point objects in the drawing.")]
  130.       HRESULT Points([out, retval] IPoints** retval);    
  131.         
  132.       [propget, helpstring("Returns the maximum visible X coordinate value in twips.")]
  133.       HRESULT MaxX([out, retval] int* retval);    
  134.         
  135.       [propget, helpstring("Returns the maximum visible Y coordinate value in twips.")]
  136.       HRESULT MaxY([out, retval] int* retval);    
  137.         
  138.       [helpstring("Clears drawing in pane and removes all lines and points.")]
  139.       HRESULT Clear();          
  140.         
  141.       [helpstring("Clears drawing area and redraws lines.")]
  142.       HRESULT Refresh();          
  143.     }                 
  144.     
  145.     [
  146.       uuid(3C591B22-1F13-101B-B826-00DD01103DE1),          // IID_IApplication                      
  147.       helpstring("Application object."),
  148.       oleautomation,
  149.       dual
  150.     ]
  151.     interface IApplication : IDispatch                         
  152.     {
  153.       [propget, helpstring("Returns the application of the object.")]  
  154.       HRESULT Application([out, retval] IApplication** retval);
  155.         
  156.       [propget, helpstring("Returns the full name of the application.")]
  157.       HRESULT FullName([out, retval] BSTR* retval);
  158.         
  159.       [propget, id(0), helpstring("Returns the name of the application.")]
  160.       HRESULT Name([out, retval] BSTR* retval);
  161.         
  162.       [propget, helpstring("Returns the parent of the object.")]
  163.       HRESULT Parent([out, retval] IApplication** retval);
  164.         
  165.       [propput]
  166.       HRESULT Visible([in] VARIANT_BOOL VisibleFlag);
  167.  
  168.       [propget, helpstring("Sets or returns whether the main window is visible.")]
  169.       HRESULT Visible([out, retval] VARIANT_BOOL* retval);
  170.         
  171.       [helpstring("Exits the application.")]
  172.       HRESULT Quit();
  173.         
  174.       [propget, helpstring("Returns the pane object.")]
  175.       HRESULT Pane([out, retval] IPane** retval); 
  176.       
  177.       [helpstring("Creates new Line object with no start or end point.")]
  178.       HRESULT CreateLine([out, retval] ILine** retval);     
  179.         
  180.       [helpstring("Creates new Point object initialized to (0,0).")]
  181.       HRESULT CreatePoint([out, retval] IPoint** retval);         
  182.     }
  183.     
  184.     [
  185.       uuid(3C591B21-1F13-101B-B826-00DD01103DE1),          // CLSID_Lines
  186.       helpstring("Lines Class"),
  187.       appobject
  188.     ]                                             
  189.     coclass Lines
  190.     {   
  191.       [default] interface IApplication;   
  192.                 interface IDispatch;
  193.     }
  194. }
  195.