home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / BOCOLE.PAK / BOLEPICT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  3.5 KB  |  99 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectComponents
  3. // Copyright (c) 1994, 1996 by Borland International, All Rights Reserved
  4. //
  5. // $Revision:   2.3  $
  6. //
  7. //  Implements the Bolero versoin of the OLE2 picture object.
  8. //----------------------------------------------------------------------------
  9. #ifndef _BOLEPICT_H
  10. #define _BOLEPICT_H 
  11.  
  12. #ifndef _BOLECOMP_H
  13. #include "BOleComp.h"
  14. #endif
  15.  
  16. class _ICLASS BEventList;
  17.  
  18. class _ICLASS BOlePicture : public BOleComponent,   public IBPicture, 
  19.                             public IPicture,        public IPictureDisp,
  20.                             public IConnectionPointContainer
  21. // rayk - should also support IPersistStream and IDataObject
  22. {
  23. protected:
  24.   PICTDESC    Pict;
  25.   long        Width;     
  26.   long        Height;     
  27.   bool        KeepOriginalFormat;
  28.   long        Attrib;
  29.   HDC         hdc;
  30.   ITypeLib   *pTL;
  31.   ITypeInfo  *pTI;
  32.   BEventList *pEventList; // ConnectionPoints list
  33.  
  34. public:
  35.    BOlePicture (BOleClassManager *pF, IBUnknownMain * pO);
  36.    ~BOlePicture ();
  37.  
  38.   // IUnknown Methods
  39.   //
  40.   DEFINE_IUNKNOWN(pObjOuter);
  41.   virtual HRESULT _IFUNC QueryInterfaceMain(REFIID iid, LPVOID FAR* pif);
  42.  
  43.   // IPicture methods
  44.   //
  45.   HRESULT _IFUNC get_Handle (OLE_HANDLE FAR* phandle);
  46.   HRESULT _IFUNC get_hPal (OLE_HANDLE FAR* phpal);
  47.   HRESULT _IFUNC get_Type (short FAR* ptype);
  48.   HRESULT _IFUNC get_Width (OLE_XSIZE_HIMETRIC FAR* pwidth);
  49.   HRESULT _IFUNC get_Height (OLE_YSIZE_HIMETRIC FAR* pheight);
  50.   HRESULT _IFUNC Render (HDC hdc, long x, long y, long cx, long cy,
  51.                       OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
  52.                       OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
  53.                       LPCRECT lprcWBounds);
  54.   HRESULT _IFUNC set_hPal (OLE_HANDLE hpal);
  55.   HRESULT _IFUNC get_CurDC (HDC FAR * phdcOut);
  56.   HRESULT _IFUNC SelectPicture (HDC hdcIn, HDC FAR * phdcOut, 
  57.                   OLE_HANDLE FAR * phbmpOut);
  58.   HRESULT _IFUNC get_KeepOriginalFormat (BOOL * pfkeep);
  59.   HRESULT _IFUNC put_KeepOriginalFormat (BOOL fkeep);
  60.   HRESULT _IFUNC PictureChanged ();
  61.   HRESULT _IFUNC SaveAsFile (LPSTREAM lpstream, BOOL fSaveMemCopy,
  62.                       LONG FAR * lpcbSize);
  63.   HRESULT _IFUNC get_Attributes (DWORD FAR * lpdwAttr);
  64.  
  65.  
  66.   // IDispatch methods
  67.   //
  68.   HRESULT _IFUNC GetTypeInfoCount (UINT FAR* pctinfo);
  69.   HRESULT _IFUNC GetTypeInfo (UINT itinfo, LCID lcid,          
  70.                   ITypeInfo FAR* FAR* pptinfo);                     
  71.   HRESULT _IFUNC GetIDsOfNames (REFIID riid, LPOLESTR FAR* rgszNames,
  72.                   UINT cNames, LCID lcid, DISPID FAR* rgdispid);
  73.   HRESULT _IFUNC Invoke (DISPID dispidMember, REFIID riid, LCID lcid,
  74.                   WORD wFlags, DISPPARAMS FAR* pdispparams, 
  75.                   VARIANT FAR* pvarResult, EXCEPINFO FAR* pexcepinfo, 
  76.                   UINT FAR* puArgErr);
  77.  
  78.   // IConnectionPointContainer methods 
  79.   // 
  80.   HRESULT _IFUNC EnumConnectionPoints (LPENUMCONNECTIONPOINTS FAR*);
  81.   HRESULT _IFUNC FindConnectionPoint (REFIID, LPCONNECTIONPOINT FAR*);
  82.  
  83.   // IBPicture method
  84.   // 
  85.   HRESULT _IFUNC GetHandle (HANDLE FAR* phandle);
  86.   HRESULT _IFUNC Draw (HDC hdc, long x, long y, long cx, long cy,
  87.                       long xSrc, long ySrc, long cxSrc, long cySrc,
  88.                       LPCRECT lprcWBounds);
  89.   HRESULT _IFUNC PictChanged ();
  90.   HRESULT _IFUNC SetPictureDesc (LPVOID pPD);  // LPVOID = PICTDESC *
  91.  
  92. protected:
  93.   HRESULT      PropChanged (DISPID dispid);
  94.   HRESULT      PropRequestEdit (DISPID dispid);
  95. };
  96.  
  97.  
  98. #endif 
  99.