Ignore:
Timestamp:
Jul 8, 2001, 5:51:43 PM (24 years ago)
Author:
sandervl
Message:

edit control bugfix (selected text); key translation additions; clipboard memory handle translation added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/clipboard.cpp

    r5935 r6254  
    1 /* $Id: clipboard.cpp,v 1.12 2001-06-09 14:50:16 sandervl Exp $ */
     1/* $Id: clipboard.cpp,v 1.13 2001-07-08 15:51:41 sandervl Exp $ */
    22
    33/*
     
    1616
    1717#include <os2win.h>
     18#include <string.h>
    1819#include "win32wbase.h"
    1920#include <unicode.h>
     
    2122#define DBG_LOCALLOG    DBG_clipboard
    2223#include "dbglocal.h"
     24
     25#ifdef USING_OPEN32CLIPBOARD
     26
     27#define FLAG_TO_OPEN32       0
     28#define FLAG_FROM_OPEN32     1
     29
     30//******************************************************************************
     31//******************************************************************************
     32HGLOBAL GlobalCopy(HGLOBAL hDest, HGLOBAL hSource, BOOL fToOpen32)
     33{
     34 LPVOID src;
     35 LPVOID dest;
     36 ULONG  size;
     37
     38      if(fToOpen32 == FLAG_TO_OPEN32) {
     39          src = GlobalLock(hSource);
     40          if(src) {
     41              size = GlobalSize(hSource);
     42              if(hDest == NULL) {
     43                  hDest = O32_GlobalAlloc(GHND, size);
     44              }
     45              dest  = O32_GlobalLock(hDest);
     46              memcpy(dest, src, size);
     47              O32_GlobalUnlock(hDest);
     48          }
     49          GlobalUnlock(hSource);
     50      }
     51      else {
     52          src = O32_GlobalLock(hSource);
     53          if(src) {
     54              size = O32_GlobalSize(hSource);
     55              if(hDest == NULL) {
     56                  hDest = GlobalAlloc(GHND, size);
     57              }
     58              dest  = GlobalLock(hDest);
     59              memcpy(dest, src, size);
     60              GlobalUnlock(hDest);
     61          }
     62          O32_GlobalUnlock(hSource);
     63      }
     64      return hDest;
     65}
     66#endif
    2367
    2468//******************************************************************************
     
    80124//******************************************************************************
    81125//******************************************************************************
    82 HANDLE WIN32API GetClipboardData( UINT arg1)
    83 {
    84     dprintf(("USER32:  GetClipboardData\n"));
    85     return O32_GetClipboardData(arg1);
     126HANDLE WIN32API GetClipboardData( UINT uFormat)
     127{
     128#ifdef USING_OPEN32CLIPBOARD
     129    HANDLE hClipObj = 0, hClipObjOpen32 = 0;
     130
     131    dprintf(("USER32: GetClipboardData %x", uFormat));
     132    hClipObjOpen32 = O32_GetClipboardData(uFormat);
     133    //memory leak
     134    if(hClipObjOpen32) {
     135        hClipObj = GlobalCopy(NULL, hClipObjOpen32, FLAG_FROM_OPEN32);
     136    }
     137    return hClipObj;
     138#else
     139    dprintf(("USER32: GetClipboardData %x", uFormat));
     140    return O32_GetClipboardData(uFormat);
     141#endif
    86142}
    87143//******************************************************************************
     
    217273//******************************************************************************
    218274//******************************************************************************
    219 HANDLE WIN32API SetClipboardData( UINT arg1, HANDLE  arg2)
    220 {
    221     dprintf(("USER32:  SetClipboardData\n"));
    222     return O32_SetClipboardData(arg1, arg2);
     275HANDLE WIN32API SetClipboardData( UINT uFormat, HANDLE hClipObj)
     276{
     277#ifdef USING_OPEN32CLIPBOARD
     278    HANDLE hClipObjOpen32 = 0;
     279
     280    dprintf(("USER32: SetClipboardData %x %x", uFormat, hClipObj));
     281    //memory leak
     282    if(hClipObj) {
     283        hClipObjOpen32 = GlobalCopy(NULL, hClipObj, FLAG_TO_OPEN32);
     284    }
     285    O32_SetClipboardData(uFormat, hClipObjOpen32);
     286
     287    return hClipObj;
     288#else
     289    dprintf(("USER32: SetClipboardData %x %x", uFormat, hClipObj));
     290    return O32_SetClipboardData(uFormat, hClipObj);
     291#endif
    223292}
    224293//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.