home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / atl / circcoll / circcoll.idl < prev    next >
Text File  |  1998-03-26  |  3KB  |  92 lines

  1. // CircColl.idl : IDL source for CircColl.dll
  2. //
  3.  
  4. // This file will be processed by the MIDL tool to
  5. // produce the type library (CircColl.tlb) and marshalling code.
  6.  
  7. [
  8.     object,
  9.     uuid(5f6cb335-97a9-11cf-B058-00A0C90348FA),
  10.     dual,
  11.     helpstring("IMyCircle Interface"),
  12.     pointer_default(unique)
  13. ]
  14. interface IMyCircle : IDispatch
  15. {
  16.     import "oaidl.idl";
  17.     // center coordinates
  18.     [propget, id(1)] HRESULT XCenter([out, retval] double* pXCenter);
  19.     [propput, id(1)] HRESULT XCenter([in] double xCenter);
  20.     [propget, id(2)] HRESULT YCenter([out, retval] double* pYCenter);
  21.     [propput, id(2)] HRESULT YCenter([in] double YCenter);
  22.     // radius
  23.     [propget, id(3)] HRESULT Radius([out, retval] double* pRadius);
  24.     [propput, id(3)] HRESULT Radius([in] double Radius);
  25.     // label
  26.     [propget, id(4)] HRESULT Label([out,retval] BSTR* pbstrLabel);
  27.     [propput, id(4)] HRESULT Label([in] BSTR bstrLabel); 
  28. };
  29.  
  30. ///////////////////////////////////////////////////////
  31. [
  32.     object,
  33.     public,
  34.     uuid(5f6cb325-97a9-11cf-B058-00A0C90348FA),
  35.     dual,
  36.     helpstring("IMyCircleCollection Interface"),
  37.     pointer_default(unique)
  38. ]
  39. interface IMyCircleCollection : IDispatch
  40. {
  41.     import "oaidl.idl";
  42.     [propget, helpstring("Returns number of items in collection.")]
  43.         HRESULT Count([out, retval] long* retval);
  44.  
  45.     [propget, id(DISPID_VALUE), helpstring("Given an index, returns an item in the collection.")]
  46.         HRESULT Item([in] long Index, [out, retval] VARIANT* retval);
  47.  
  48.     [propget, restricted, id(DISPID_NEWENUM),
  49.         helpstring("returns an enumerator for the collection.")]    // Must be propget. 
  50.         HRESULT _NewEnum([out, retval] IUnknown** retval);    
  51. };
  52.  
  53. ///////////////////////////////////////////////////////
  54. [
  55.     object,
  56.     uuid(645C715D-A438-11cf-91E1-00A0C903976F),
  57.     dual,
  58.     helpstring("IMyCircleCollectionCreator Interface"),
  59.     pointer_default(unique)
  60. ]
  61. interface IMyCircleCollectionCreator : IDispatch
  62. {
  63.     import "oaidl.idl";
  64.  
  65.     [id(1), helpstring("Returns a collection of Circles.")]
  66.     HRESULT GetCircles([in] short n, [out, retval] VARIANT* retval);
  67. };
  68.  
  69.  
  70. [
  71.     uuid(5F6CB310-97A9-11CF-B058-00A0C90348FA),
  72.     version(1.0),
  73.     helpstring("CircColl 1.0 Type Library (ATL Sample)")
  74. ]
  75. library CIRCCOLLLib
  76. {
  77.     importlib("stdole32.tlb");
  78.     ///////////////////////////////////////////////////////
  79.     interface IMyCircle;
  80.     interface IMyCircleCollection;
  81.     interface IMyCircleCollectionCreator;
  82.  
  83.     [
  84.         uuid(645C715E-A438-11cf-91E1-00A0C903976F),
  85.         helpstring("MyCircleCollectionCreator Class")
  86.     ]
  87.     coclass MyCircleCollectionCreator
  88.     {
  89.         [default] interface IMyCircleCollectionCreator;
  90.     };
  91. };
  92.