LINES.ODL
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:7k
源码类别:

Windows编程

开发平台:

Visual C++

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