Page 1 of 1

Know if there's Rich Text in Clipboard

Posted: Wed Jun 17, 2015 1:12 am
by VB6_to_PBx
is there anyway to tell if there is Rich Text pasted or copied to the Clipboard ???

or anyway to tell if whats in the Clipboard is RichText or plain Text or even a Picture ???

i'm using PB5.31 (86) Windows 7

the only Link i found about this was :
http://forums.purebasic.com/english/vie ... hp?p=87021
but its not able to distinguish between Rich Text and plain Text in the Clipboard

Re: Know if there's Rich Text in Clipboard

Posted: Wed Jun 17, 2015 1:23 am
by juror
windows

cf_RTF=RegisterClipboardFormat_("Rich Text Format")

If IsClipboardFormatAvailable_(CF_RTF)

Image = no need to register = known format
If IsClipboardFormatAvailable_(#CF_BITMAP) ;is an image present?

Text=Known format
If IsClipboardFormatAvailable_(#CF_TEXT)

Standard (known) formats
https://msdn.microsoft.com/en-us/librar ... 2147217396

Re: Know if there's Rich Text in Clipboard

Posted: Wed Jun 17, 2015 4:58 am
by VB6_to_PBx
juror wrote:windows

cf_RTF=RegisterClipboardFormat_("Rich Text Format")

If IsClipboardFormatAvailable_(CF_RTF)

Image = no need to register = known format
If IsClipboardFormatAvailable_(#CF_BITMAP) ;is an image present?

Text=Known format
If IsClipboardFormatAvailable_(#CF_TEXT)

Standard (known) formats
https://msdn.microsoft.com/en-us/librar ... 2147217396

thanks juror ,
works great !!! ( PB5.31 )
:)

Code: Select all

CF_RTF=RegisterClipboardFormat_("Rich Text Format")
Debug  IsClipboardFormatAvailable_(CF_RTF)
;~~~~~ 1 = yes, there is Rich Text copied into Clipboard
;~~~~~ 0 = no 

Re: Know if there's Rich Text in Clipboard

Posted: Wed Jun 17, 2015 6:35 am
by VB6_to_PBx

Code: Select all


CF_RTF = RegisterClipboardFormat_("Rich Text Format")
Debug IsClipboardFormatAvailable_(CF_RTF)
;~~~~~ 1 = yes, there is Rich Text copied into Clipboard
;~~~~~ 0 = no 


CF_HTML=RegisterClipboardFormat_("HTML Format")
Debug IsClipboardFormatAvailable_(CF_HTML)
;~~~~~ 1 = yes, there is HTML Text copied into Clipboard
;~~~~~ 0 = no 


; CF_Bitmap = 2
; Debug IsClipboardFormatAvailable_(CF_Bitmap)
Debug IsClipboardFormatAvailable_(#CF_BITMAP)
;~~~~~ 1 = yes, there is a Picture copied into Clipboard
;~~~~~ 0 = no 


Debug IsClipboardFormatAvailable_(#CF_TEXT)
;~~~~~ 1 = yes, there is plain Text copied into Clipboard
;~~~~~ 0 = no 


Re: Know if there's Rich Text in Clipboard

Posted: Wed Jun 17, 2015 4:22 pm
by juror
Requires EnumClipboardFormats_(j), but will give you an idea.

Code: Select all

Procedure.s GetClipboardFormatName(format)
  Structure CFNAME
    value.l
    name.s
  EndStructure
  Protected fmts=17, fmt$
  Dim CFNames.CFNAME(fmts)
  CFNames(0)\value = 0
  CFNames(0)\name = "Unused"
  CFNames(1)\value = 1
  CFNames(1)\name = "CF_TEXT"
  CFNames(2)\value = 2
  CFNames(2)\name = "CF_BITMAP"
  CFNames(3)\value = 3
  CFNames(3)\name = "CF_METAFILEPICT"
  CFNames(4)\value = 4
  CFNames(4)\name = "CF_SYLK"
  CFNames(5)\value = 5
  CFNames(5)\name = "CF_DIF"
  CFNames(6)\value = 6
  CFNames(6)\name = "CF_TIFF"
  CFNames(7)\value = 7
  CFNames(7)\name = "CF_OEMTEXT"
  CFNames(8)\value = 8
  CFNames(8)\name = "CF_DIB"
  CFNames(9)\value = 9
  CFNames(9)\name = "CF_PALETTE"
  CFNames(10)\value = 10
  CFNames(10)\name = "CF_PENDATA"
  CFNames(11)\value = 11
  CFNames(11)\name = "CF_RIFF"
  CFNames(12)\value = 12
  CFNames(12)\name = "CF_WAVE"
  CFNames(13)\value = 13
  CFNames(13)\name = "CF_UNICODETEXT"
  CFNames(14)\value = 14
  CFNames(14)\name = "CF_ENHMETAFILE"
  CFNames(15)\value = 15
  CFNames(15)\name = "CF_GDROP"
  CFNames(16)\value = 16
  CFNames(16)\name = "CF_LOCALE"
  CFNames(17)\value = 17
  CFNames(17)\name = "CF_DIBV5"
  ;ReturnValue.s = "NOT FOUND"
  If format=0
    ProcedureReturn""
  EndIf
  
  For i = 1 To fmts
    If format = CFNames(i)\value
     fmt$ = CFNames(i)\name
      Break
    EndIf
  Next
  If fmt$=""
    fmt$=Space(128)
    If GetClipboardFormatName_(format,@fmt$,64)
    Else
      fmt$="Unknown"
    EndIf
  EndIf  ;fmt$=""  
  
  ProcedureReturn fmt$
EndProcedure

Re: Know if there's Rich Text in Clipboard

Posted: Thu Jun 18, 2015 4:42 am
by VB6_to_PBx
juror ,

many thanks for adding all those other Clipboard Format Names !!!

much appreciated !