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

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1992, 1994 by Borland International, All Rights Reserved
  4. //
  5. //   OWL clipboard Encapsulation
  6. //----------------------------------------------------------------------------
  7. #if !defined(OWL_CLIPBOAR_H)
  8. #define OWL_CLIPBOAR_H
  9.  
  10. #if !defined(OWL_OWLDEFS_H)
  11. # include <owl/owldefs.h>
  12. #endif
  13. #if !defined(INC_OLE2) && !defined(__OLE_H) && !defined(_INC_OLE)
  14. //# include <ole.h>
  15. #endif
  16.  
  17. class _OWLCLASS TClipboard {
  18.  public:
  19.     // Constructors / destructor
  20.     TClipboard(HWND hWnd) {OpenClipboard(hWnd);}  // aquire & open the clipboard
  21.     ~TClipboard() {if (IsOpen) ::CloseClipboard();}
  22.  
  23.     bool        OpenClipboard(HWND hWnd)
  24.                     {return IsOpen = (bool)::OpenClipboard(hWnd);}
  25.     void        CloseClipboard()
  26.                     {if (IsOpen) {::CloseClipboard(); IsOpen = false;}}
  27.  
  28.     operator    bool() const {return IsOpen;}
  29.     HANDLE      GetClipboardData(uint format) const;
  30.     HWND        GetOpenClipboardWindow() const;
  31.     HWND        GetClipboardOwner() const;
  32.     HWND        GetClipboardViewer() const;
  33.     int         GetClipboardFormatName(uint format, char far* formatName, int maxCount) const;
  34.     int         GetPriorityClipboardFormat(uint far* priorityList, int count) const;
  35.     int         CountClipboardFormats() const;
  36.     bool        IsClipboardFormatAvailable(uint format) const;
  37.     bool        EmptyClipboard();
  38.     uint        RegisterClipboardFormat(const char far* formatName) const;
  39.     HANDLE      SetClipboardData(uint format, HANDLE handle);
  40.     HWND        SetClipboardViewer(HWND hWnd) const;
  41.  
  42.     static const char* DefaultProtocol;
  43.  
  44.   #if defined(__OLE_H) || defined(_INC_OLE)
  45.     bool        QueryCreate(const char far* protocol = DefaultProtocol,
  46.                             OLEOPT_RENDER   renderopt= olerender_draw,
  47.                             OLECLIPFORMAT   format   = 0);
  48.     bool        QueryLink(const char far* protocol = DefaultProtocol,
  49.                           OLEOPT_RENDER   renderopt= olerender_draw,
  50.                           OLECLIPFORMAT   format   = 0);
  51.   #endif
  52.  
  53.     //
  54.     // obsolete way to retrieve the global clipboard object. The recomended
  55.     // way is to construct a TClipboard object using the TClipboard(HWND) ctor
  56.     //
  57.     static TClipboard& GetClipboard() {return TheClipboard;}
  58.  
  59.   protected:
  60.     static TClipboard TheClipboard;
  61.     bool              IsOpen;
  62.  
  63.     TClipboard() {IsOpen = false;}  // used by the global object
  64. };
  65.  
  66. class _OWLCLASS TClipboardFormatIterator {
  67.   public:
  68.     TClipboardFormatIterator();
  69.  
  70.     uint          current();
  71.                   operator int();
  72.     uint          operator ++();
  73.     uint          operator ++(int);
  74.     void          restart();
  75.  
  76.   private:
  77.     uint          _Current;
  78. };
  79.  
  80. //----------------------------------------------------------------------------
  81. // Inline
  82. //----------------------------------------------------------------------------
  83.  
  84. inline HANDLE TClipboard::GetClipboardData(uint Format) const {
  85.   return ::GetClipboardData(Format);
  86. }
  87.  
  88. inline HWND TClipboard::GetOpenClipboardWindow() const {
  89.   return ::GetOpenClipboardWindow();
  90. }
  91.  
  92. inline HWND TClipboard::GetClipboardOwner() const {
  93.   return ::GetClipboardOwner();
  94. }
  95.  
  96. inline HWND TClipboard::GetClipboardViewer() const {
  97.   return ::GetClipboardViewer();
  98. }
  99.  
  100. inline int TClipboard::GetClipboardFormatName(uint Format, char far* FormatName, int MaxCount) const {
  101.   return ::GetClipboardFormatName(Format, FormatName, MaxCount);
  102. }
  103.  
  104. inline int TClipboard::GetPriorityClipboardFormat(uint far* priorityList, int count) const {
  105.   return ::GetPriorityClipboardFormat(priorityList, count);
  106. }
  107.  
  108. inline int TClipboard::CountClipboardFormats() const {
  109.   return ::CountClipboardFormats();
  110. }
  111.  
  112. inline bool TClipboard::IsClipboardFormatAvailable(uint format) const {
  113.   return ::IsClipboardFormatAvailable(format);
  114. }
  115.  
  116. inline bool TClipboard::EmptyClipboard() {
  117.   return ::EmptyClipboard();
  118. }
  119.  
  120. inline uint TClipboard::RegisterClipboardFormat(const char far* formatName) const {
  121.   return ::RegisterClipboardFormat(formatName);
  122. }
  123.  
  124. inline HANDLE TClipboard::SetClipboardData(uint Format, HANDLE Handle) {
  125.   return ::SetClipboardData(Format,Handle);
  126. }
  127.  
  128. inline HWND TClipboard::SetClipboardViewer(HWND Wnd) const {
  129.   return ::SetClipboardViewer(Wnd);
  130. }
  131.  
  132. #if defined(__OLE_H) || defined(_INC_OLE)
  133. inline bool TClipboard::QueryCreate(
  134.                 const char far* protocol,
  135.                 OLEOPT_RENDER   renderopt,
  136.                 OLECLIPFORMAT   format
  137.               )
  138. {
  139.   return ::OleQueryCreateFromClip(protocol, renderopt, format) == OLE_OK;
  140. }
  141.  
  142. inline bool TClipboard::QueryLink(
  143.                 const char far* protocol,
  144.                 OLEOPT_RENDER   renderopt,
  145.                 OLECLIPFORMAT   format
  146.               )
  147. {
  148.   return ::OleQueryLinkFromClip(protocol, renderopt, format) == OLE_OK;
  149. }
  150. #endif
  151.  
  152. #endif  // OWL_CLIPBOAR_H
  153.