home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / ocfinc.pak / OCDATA.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  3KB  |  84 lines

  1. //
  2. //----------------------------------------------------------------------------
  3. // ObjectComponents
  4. // (C) Copyright 1994 by Borland International, All Rights Reserved
  5. //
  6. //   Definition of TOcDataProvider Class
  7. //----------------------------------------------------------------------------
  8. #if !defined(OCF_OCDATA_H)
  9. #define OCF_OCDATA_H
  10.  
  11. #if !defined(OCF_OCVIEW_H)
  12. # include <ocf/ocview.h>
  13. #endif
  14.  
  15. // Callback function for user data clean up
  16. //
  17. typedef void
  18. (*TDeleteUserData)(void* userData);
  19.  
  20. //
  21. // Data Provider object for a server document
  22. //
  23. class _OCFCLASS TOcDataProvider : public TUnknown,
  24.                                   public IBDataProvider {
  25.   public:
  26.     TOcDataProvider(TOcView& ocView, TRegList* regList, IUnknown* outer = 0,
  27.                     void* userData = 0, TDeleteUserData callBack = 0);
  28.  
  29.     // Object reference & lifetime managment
  30.     //
  31.   public:
  32.     ulong   _IFUNC AddRef() {return GetOuter()->AddRef();}
  33.     ulong   _IFUNC Release() {return GetOuter()->Release();}
  34.     HRESULT _IFUNC QueryInterface(const GUID far& iid, void far*far* iface)
  35.                      {return GetOuter()->QueryInterface(iid, iface);}
  36.  
  37.     // Supporting methods
  38.     //
  39.     void    Disconnect();
  40.     void    Rename();
  41.     void*   GetUserData() {return UserData;}
  42.     void    SetUserData(void* userData) {UserData = userData;}
  43.  
  44.   protected:
  45.     // IBDataNegotiator implementation
  46.     //
  47.     UINT     _IFUNC CountFormats();
  48.     HRESULT  _IFUNC GetFormat(uint index, TOcFormatInfo far* fmt);
  49.  
  50.     // IBDataProvider implementation
  51.     //
  52.     HANDLE  _IFUNC  GetFormatData(TOcFormatInfo far* fmt);
  53.     HRESULT _IFUNC  Draw(HDC dc, const RECTL far*  pos, const RECTL far* clip,
  54.                          TOcAspect aspect, TOcDraw bd);
  55.     HRESULT _IFUNC  GetPartSize(TSize far* size);
  56.     HRESULT _IFUNC  Save(IStorage*, BOOL sameAsLoad, BOOL remember);
  57.  
  58. #if defined(BI_DATA_NEAR)
  59.     TPoint&        Origin;  // Origin of view topleft relative to the document
  60.     TSize&         Extent;  // size of the document containing selection
  61. #else
  62.     TPoint         Origin;
  63.     TSize          Extent;
  64. #endif
  65.  
  66.   private:
  67.    ~TOcDataProvider();
  68.  
  69.     // TUnknown overrides
  70.     //
  71.     HRESULT      QueryObject(const IID far& iid, void far* far* iface);
  72.  
  73.     TOcView&        OcView;
  74.     IUnknown*       BSite;           // site helper
  75.     IBSite*         BSiteI;          // Site interface
  76.     IBLinkable*     BLSiteI;         // for item moniker
  77.     void*           UserData;        // pointer to application specific data such as selection
  78.     TDeleteUserData CBDelete;        // Call back function for cleaning up user data
  79. };
  80.  
  81. #endif  // OCF_OCDATA_H
  82.  
  83.  
  84.