VirtualBox

Changeset 2436

Show
Ignore:
Timestamp:
04/30/07 17:11:56 (2 years ago)
Author:
vboxsync
Message:

HTML format for shared clipboard (Windows guest, Windows host).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/include/VBox/HostServices/VBoxClipboardSvc.h

    r1103 r2436  
    4141#define VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT 0x01 
    4242#define VBOX_SHARED_CLIPBOARD_FMT_BITMAP      0x02 
     43#define VBOX_SHARED_CLIPBOARD_FMT_HTML        0x04 
    4344 
    4445/* 
  • trunk/include/VBox/vrdpapi.h

    r2386 r2436  
    545545#define VRDP_CLIPBOARD_FORMAT_UNICODE_TEXT (0x1) 
    546546#define VRDP_CLIPBOARD_FORMAT_BITMAP       (0x2) 
     547#define VRDP_CLIPBOARD_FORMAT_HTML         (0x4) 
    547548 
    548549#define VRDP_CLIPBOARD_FUNCTION_FORMAT_ANNOUNCE (0) 
  • trunk/src/VBox/Additions/WINNT/VBoxService/VBoxClipboard.cpp

    r2386 r2436  
    334334 
    335335                default: 
    336                      break; 
     336                    if (format >= 0xC000) 
     337                    { 
     338                        TCHAR szFormatName[256]; 
     339 
     340                        int cActual = GetClipboardFormatName(format, szFormatName, sizeof(szFormatName)/sizeof (TCHAR)); 
     341                         
     342                        if (cActual) 
     343                        { 
     344                            if (strcmp (szFormatName, "HTML Format") == 0) 
     345                            { 
     346                                u32Formats |= VBOX_SHARED_CLIPBOARD_FMT_HTML; 
     347                            } 
     348                        } 
     349                    } 
     350                    break; 
    337351            } 
    338352        } 
     
    410424 
    411425                default: 
    412                      break; 
     426                    if (format >= 0xC000) 
     427                    { 
     428                        TCHAR szFormatName[256]; 
     429 
     430                        int cActual = GetClipboardFormatName(format, szFormatName, sizeof(szFormatName)/sizeof (TCHAR)); 
     431                         
     432                        if (cActual) 
     433                        { 
     434                            if (strcmp (szFormatName, "HTML Format") == 0) 
     435                            { 
     436                                u32Format |= VBOX_SHARED_CLIPBOARD_FMT_HTML; 
     437                            } 
     438                        } 
     439                    } 
     440                    break; 
    413441            } 
    414442             
     
    568596                } 
    569597 
     598                if (u32Formats & VBOX_SHARED_CLIPBOARD_FMT_HTML) 
     599                { 
     600                    UINT format = RegisterClipboardFormat ("HTML Format"); 
     601                    dprintf(("window proc WM_USER: VBOX_SHARED_CLIPBOARD_FMT_HTML 0x%04X\n", format)); 
     602                    if (format != 0) 
     603                    { 
     604                        hClip = SetClipboardData (format, NULL); 
     605                    } 
     606                } 
     607 
    570608                CloseClipboard(); 
    571609 
     
    632670                        { 
    633671                            hClip = NULL; 
     672                        } 
     673                    } 
     674                } 
     675                else if (u32Formats & VBOX_SHARED_CLIPBOARD_FMT_HTML) 
     676                { 
     677                    UINT format = RegisterClipboardFormat ("HTML Format"); 
     678                     
     679                    if (format != 0) 
     680                    { 
     681                        hClip = GetClipboardData (format); 
     682 
     683                        if (hClip != NULL) 
     684                        { 
     685                            LPVOID lp = GlobalLock (hClip); 
     686 
     687                            if (lp != NULL) 
     688                            { 
     689                                dprintf(("CF_HTML\n")); 
     690 
     691                                vboxClipboardWriteData (pCtx, VBOX_SHARED_CLIPBOARD_FMT_HTML, 
     692                                                        lp, GlobalSize (hClip)); 
     693 
     694                                GlobalUnlock(hClip); 
     695                            } 
     696                            else 
     697                            { 
     698                                hClip = NULL; 
     699                            } 
    634700                        } 
    635701                    } 

© 2008 Sun Microsystems, Inc.
ContactPrivacy policy