VirtualBox

Ignore:
Timestamp:
Feb 26, 2010 10:51:22 AM (15 years ago)
Author:
vboxsync
Message:

VBoxTray/Clipboard: Formatting, error checking.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxClipboard.cpp

    r26742 r26826  
    6666        while ((format = EnumClipboardFormats (format)) != 0)
    6767        {
    68             Log (("vboxClipboardChanged: format = 0x%08X\n", format));
     68            Log(("vboxClipboardChanged: format = 0x%08X\n", format));
    6969            switch (format)
    7070            {
     
    114114            HWND hwndNext    = (HWND)lParam;
    115115
    116             Log (("vboxClipboardProcessMsg: WM_CHANGECBCHAIN: hwndRemoved %p, hwndNext %p, hwnd %p\n", hwndRemoved, hwndNext, pCtx->hwnd));
     116            Log(("vboxClipboardProcessMsg: WM_CHANGECBCHAIN: hwndRemoved %p, hwndNext %p, hwnd %p\n", hwndRemoved, hwndNext, pCtx->hwnd));
    117117
    118118            if (hwndRemoved == pCtx->hwndNextInChain)
    119119            {
    120120                /* The window that was next to our in the chain is being removed.
    121                  * Relink to the new next window.
    122                  */
     121                 * Relink to the new next window. */
    123122                pCtx->hwndNextInChain = hwndNext;
    124123            }
     
    135134        case WM_DRAWCLIPBOARD:
    136135        {
    137             Log (("vboxClipboardProcessMsg: WM_DRAWCLIPBOARD, hwnd %p\n", pCtx->hwnd));
     136            Log(("vboxClipboardProcessMsg: WM_DRAWCLIPBOARD, hwnd %p\n", pCtx->hwnd));
    138137
    139138            if (GetClipboardOwner () != hwnd)
    140139            {
    141140                /* Clipboard was updated by another application. */
    142                 vboxClipboardChanged(pCtx); /** @todo r=andy Check for return code! */
     141                rc = vboxClipboardChanged(pCtx);
    143142            }
    144143
    145144            /* Pass the message to next windows in the clipboard chain. */
    146             rc = SendMessage(pCtx->hwndNextInChain, msg, wParam, lParam);
     145            if (RT_SUCCESS(rc))
     146                rc = SendMessage(pCtx->hwndNextInChain, msg, wParam, lParam);
    147147        } break;
    148148
     
    158158            UINT format = (UINT)wParam;
    159159
    160             Log (("vboxClipboardProcessMsg: WM_RENDERFORMAT, format = %x\n", format));
     160            Log(("vboxClipboardProcessMsg: WM_RENDERFORMAT, format = %x\n", format));
    161161            switch (format)
    162162            {
     
    175175
    176176                        int cActual = GetClipboardFormatName(format, szFormatName, sizeof(szFormatName)/sizeof (TCHAR));
    177 
    178177                        if (cActual)
    179178                        {
     
    219218                                /* 0 bytes returned means the clipboard is empty.
    220219                                 * Deallocate the memory and set hMem to NULL to get to
    221                                  * the clipboard empty code path.
    222                                  */
     220                                 * the clipboard empty code path. */
    223221                                GlobalUnlock(hMem);
    224222                                GlobalFree(hMem);
     
    301299                                {
    302300                                    /* 'hMem' contains the host clipboard data.
    303                                      * size is 'cb' and format is 'format'.
    304                                      */
    305                                     HANDLE hClip = SetClipboardData (format, hMem);
     301                                     * size is 'cb' and format is 'format'. */
     302                                    HANDLE hClip = SetClipboardData(format, hMem);
    306303                                    Log(("vboxClipboardProcessMsg: WM_RENDERFORMAT hClip = %p\n", hClip));
    307304
     
    316313                            }
    317314                        }
    318 
    319315                        if (hMem)
    320                         {
    321316                            GlobalUnlock(hMem);
    322                         }
    323317                    }
    324 
    325318                    if (hMem)
    326                     {
    327319                        GlobalFree(hMem);
    328                     }
    329320                }
    330321
     
    339330             * windows is to be destroyed and therefore the guest side becomes inactive.
    340331             */
    341             if (OpenClipboard (hwnd))
     332            if (OpenClipboard(hwnd))
    342333            {
    343334                EmptyClipboard();
     
    351342            uint32_t u32Formats = (uint32_t)lParam;
    352343
    353             if (FALSE == OpenClipboard (hwnd))
    354             {
    355                 Log(("vboxClipboardProcessMsg: WM_USER: Failed to open clipboard! Last error = %ld\n", GetLastError()));
     344            if (FALSE == OpenClipboard(hwnd))
     345            {
     346                DWORD dwErr = GetLastError();
     347                Log(("vboxClipboardProcessMsg: WM_USER: Failed to open clipboard! Last error = %ld\n", dwErr));
     348                rc = RTErrConvertFromWin32(dwErr);
    356349            }
    357350            else
     
    392385            /* Send data in the specified format to the host. */
    393386            uint32_t u32Formats = (uint32_t)lParam;
    394 
    395387            HANDLE hClip = NULL;
    396388
    397389            if (FALSE == OpenClipboard(hwnd))
    398390            {
     391                DWORD dwErr = GetLastError();
     392                Log(("vboxClipboardProcessMsg: WM_USER + 1: Failed to open clipboard! Last error = %ld\n", dwErr));
     393                rc = RTErrConvertFromWin32(dwErr);
    399394            }
    400395            else
     
    427422                    if (hClip != NULL)
    428423                    {
    429                         LPWSTR uniString = (LPWSTR)GlobalLock (hClip);
     424                        LPWSTR uniString = (LPWSTR)GlobalLock(hClip);
    430425
    431426                        if (uniString != NULL)
     
    447442                    if (format != 0)
    448443                    {
    449                         hClip = GetClipboardData (format);
     444                        hClip = GetClipboardData(format);
    450445                        if (hClip != NULL)
    451446                        {
    452                             LPVOID lp = GlobalLock (hClip);
     447                            LPVOID lp = GlobalLock(hClip);
    453448
    454449                            if (lp != NULL)
     
    467462                }
    468463
    469                 CloseClipboard ();
     464                CloseClipboard();
    470465            }
    471466
     
    479474        default:
    480475        {
    481             rc = DefWindowProc (hwnd, msg, wParam, lParam);
     476            rc = DefWindowProc(hwnd, msg, wParam, lParam);
    482477        }
    483478    }
    484479
     480    Log(("vboxClipboardProcessMsg returned with rc = %ld\n", rc));
    485481    return rc;
    486482}
     
    536532}
    537533
    538 static void vboxClipboardDestroy (VBOXCLIPBOARDCONTEXT *pCtx)
     534static void vboxClipboardDestroy(VBOXCLIPBOARDCONTEXT *pCtx)
    539535{
    540536    if (pCtx->hwnd)
     
    560556{
    561557    /* Forward with proper context. */
    562     return vboxClipboardProcessMsg (&gCtx, hwnd, msg, wParam, lParam);
     558    return vboxClipboardProcessMsg(&gCtx, hwnd, msg, wParam, lParam);
    563559}
    564560
    565561int VBoxClipboardInit(const VBOXSERVICEENV *pEnv, void **ppInstance, bool *pfStartThread)
    566562{
    567     Log (("VboxClipboardInit\n"));
     563    Log(("VboxClipboardInit\n"));
    568564    if (gCtx.pEnv)
    569565    {
     
    590586    }
    591587
    592     if (RT_SUCCESS (rc))
     588    if (RT_SUCCESS(rc))
    593589        *ppInstance = &gCtx;
    594590    return rc;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette