VirtualBox

Ignore:
Timestamp:
Aug 11, 2020 4:30:25 PM (4 years ago)
Author:
vboxsync
Message:

DnD/VBoxTray: Renaming, removed unused functions.

Location:
trunk/src/VBox/Additions/WINNT/VBoxTray
Files:
6 edited

Legend:

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

    r85472 r85694  
    9191
    9292VBoxDnDWnd::VBoxDnDWnd(void)
    93     : hThread(NIL_RTTHREAD),
    94       mEventSem(NIL_RTSEMEVENT),
    95       hWnd(NULL),
    96       dndLstActionsAllowed(VBOX_DND_ACTION_IGNORE),
    97       mfMouseButtonDown(false),
     93    : m_hThread(NIL_RTTHREAD),
     94      m_EvtSem(NIL_RTSEMEVENT),
     95      m_hWnd(NULL),
     96      m_lstActionsAllowed(VBOX_DND_ACTION_IGNORE),
     97      m_fMouseButtonDown(false),
    9898#ifdef VBOX_WITH_DRAG_AND_DROP_GH
    99       pDropTarget(NULL),
     99      m_pDropTarget(NULL),
    100100#endif
    101       mMode(Unknown),
    102       mState(Uninitialized)
    103 {
    104     RT_ZERO(startupInfo);
     101      m_enmMode(Unknown),
     102      m_enmState(Uninitialized)
     103{
     104    RT_ZERO(m_startupInfo);
    105105
    106106    LogFlowFunc(("Supported formats:\n"));
     
    109109    {
    110110        LogFlowFunc(("\t%s\n", arrEntries[i].c_str()));
    111         this->lstFmtSup.append(arrEntries[i]);
     111        this->m_lstFmtSup.append(arrEntries[i]);
    112112    }
    113113}
     
    129129
    130130    /* Save the context. */
    131     this->pCtx = a_pCtx;
    132 
    133     int rc = RTSemEventCreate(&mEventSem);
     131    this->m_pCtx = a_pCtx;
     132
     133    int rc = RTSemEventCreate(&m_EvtSem);
    134134    if (RT_SUCCESS(rc))
    135         rc = RTCritSectInit(&mCritSect);
     135        rc = RTCritSectInit(&m_CritSect);
    136136
    137137    if (RT_SUCCESS(rc))
    138138    {
    139139        /* Message pump thread for our proxy window. */
    140         rc = RTThreadCreate(&hThread, VBoxDnDWnd::Thread, this,
     140        rc = RTThreadCreate(&m_hThread, VBoxDnDWnd::Thread, this,
    141141                            0, RTTHREADTYPE_MSG_PUMP, RTTHREADFLAGS_WAITABLE,
    142142                            "dndwnd"); /** @todo Include ID if there's more than one proxy window. */
    143143        if (RT_SUCCESS(rc))
    144144        {
    145             int rc2 = RTThreadUserWait(hThread, 30 * 1000 /* Timeout in ms */);
     145            int rc2 = RTThreadUserWait(m_hThread, 30 * 1000 /* Timeout in ms */);
    146146            AssertRC(rc2);
    147147
     
    164164void VBoxDnDWnd::Destroy(void)
    165165{
    166     if (hThread != NIL_RTTHREAD)
     166    if (m_hThread != NIL_RTTHREAD)
    167167    {
    168168        int rcThread = VERR_WRONG_ORDER;
    169         int rc = RTThreadWait(hThread, 60 * 1000 /* Timeout in ms */, &rcThread);
     169        int rc = RTThreadWait(m_hThread, 60 * 1000 /* Timeout in ms */, &rcThread);
    170170        LogFlowFunc(("Waiting for thread resulted in %Rrc (thread exited with %Rrc)\n",
    171171                     rc, rcThread));
     
    175175    Reset();
    176176
    177     RTCritSectDelete(&mCritSect);
    178     if (mEventSem != NIL_RTSEMEVENT)
    179     {
    180         RTSemEventDestroy(mEventSem);
    181         mEventSem = NIL_RTSEMEVENT;
    182     }
    183 
    184     if (pCtx->wndClass != 0)
    185     {
    186         UnregisterClass(VBOX_DND_WND_CLASS, pCtx->pEnv->hInstance);
    187         pCtx->wndClass = 0;
     177    RTCritSectDelete(&m_CritSect);
     178    if (m_EvtSem != NIL_RTSEMEVENT)
     179    {
     180        RTSemEventDestroy(m_EvtSem);
     181        m_EvtSem = NIL_RTSEMEVENT;
     182    }
     183
     184    if (m_pCtx->wndClass != 0)
     185    {
     186        UnregisterClass(VBOX_DND_WND_CLASS, m_pCtx->pEnv->hInstance);
     187        m_pCtx->wndClass = 0;
    188188    }
    189189
     
    199199 *                                  is using the thread.
    200200 */
    201 /*static*/ DECLCALLBACK(int) VBoxDnDWnd::Thread(RTTHREAD hThread, void *pvUser)
     201/*static*/ DECLCALLBACK(int) VBoxDnDWnd::Thread(RTTHREAD m_hThread, void *pvUser)
    202202{
    203203    AssertPtrReturn(pvUser, VERR_INVALID_POINTER);
     
    208208    AssertPtr(pThis);
    209209
    210     PVBOXDNDCONTEXT pCtx = pThis->pCtx;
    211     AssertPtr(pCtx);
    212     AssertPtr(pCtx->pEnv);
     210    PVBOXDNDCONTEXT m_pCtx = pThis->m_pCtx;
     211    AssertPtr(m_pCtx);
     212    AssertPtr(m_pCtx->pEnv);
    213213
    214214    int rc = VINF_SUCCESS;
    215215
    216     AssertPtr(pCtx->pEnv);
    217     HINSTANCE hInstance = pCtx->pEnv->hInstance;
     216    AssertPtr(m_pCtx->pEnv);
     217    HINSTANCE hInstance = m_pCtx->pEnv->hInstance;
    218218    Assert(hInstance != 0);
    219219
     
    250250        dwStyle |= WS_VISIBLE; /* Make the window visible. */
    251251#endif
    252         pThis->hWnd = CreateWindowEx(dwExStyle,
     252        pThis->m_hWnd = CreateWindowEx(dwExStyle,
    253253                                     VBOX_DND_WND_CLASS, VBOX_DND_WND_CLASS,
    254254                                     dwStyle,
     
    259259#endif
    260260                                     hInstance, pThis /* lParm */);
    261         if (!pThis->hWnd)
     261        if (!pThis->m_hWnd)
    262262        {
    263263            DWORD dwErr = GetLastError();
     
    268268        {
    269269#ifndef VBOX_DND_DEBUG_WND
    270             SetWindowPos(pThis->hWnd, HWND_TOPMOST, -200, -200, 0, 0,
     270            SetWindowPos(pThis->m_hWnd, HWND_TOPMOST, -200, -200, 0, 0,
    271271                           SWP_NOACTIVATE | SWP_HIDEWINDOW
    272272                         | SWP_NOCOPYBITS | SWP_NOREDRAW | SWP_NOSIZE);
    273             LogFlowFunc(("Proxy window created, hWnd=0x%x\n", pThis->hWnd));
     273            LogFlowFunc(("Proxy window created, hWnd=0x%x\n", pThis->m_hWnd));
    274274#else
    275             LogFlowFunc(("Debug proxy window created, hWnd=0x%x\n", pThis->hWnd));
     275            LogFlowFunc(("Debug proxy window created, hWnd=0x%x\n", pThis->m_hWnd));
    276276
    277277            /*
     
    282282            me.cbSize    = sizeof(TRACKMOUSEEVENT);
    283283            me.dwFlags   = TME_HOVER | TME_LEAVE | TME_NONCLIENT;
    284             me.hwndTrack = pThis->hWnd;
     284            me.hwndTrack = pThis->m_hWnd;
    285285            BOOL fRc = TrackMouseEvent(&me);
    286286            Assert(fRc);
     
    303303
    304304    if (RT_SUCCESS(rc))
    305         pCtx->fStarted = true; /* Set started indicator on success. */
    306 
    307     int rc2 = RTThreadUserSignal(hThread);
     305        m_pCtx->fStarted = true; /* Set started indicator on success. */
     306
     307    int rc2 = RTThreadUserSignal(m_hThread);
    308308    bool fSignalled = RT_SUCCESS(rc2);
    309309
     
    322322            Assert(fRet >= 0);
    323323
    324             if (ASMAtomicReadBool(&pCtx->fShutdown))
     324            if (ASMAtomicReadBool(&m_pCtx->fShutdown))
    325325                fShutdown = true;
    326326
     
    344344    if (!fSignalled)
    345345    {
    346         rc2 = RTThreadUserSignal(hThread);
     346        rc2 = RTThreadUserSignal(m_hThread);
    347347        AssertRC(rc2);
    348348    }
     
    425425        {
    426426            LogFlowThisFunc(("WM_LBUTTONDOWN\n"));
    427             mfMouseButtonDown = true;
     427            m_fMouseButtonDown = true;
    428428            return 0;
    429429        }
     
    432432        {
    433433            LogFlowThisFunc(("WM_LBUTTONUP\n"));
    434             mfMouseButtonDown = false;
     434            m_fMouseButtonDown = false;
    435435
    436436            /* As the mouse button was released, Hide the proxy window again.
     
    454454        {
    455455            LogFlowThisFunc(("WM_MOUSEMOVE: mfMouseButtonDown=%RTbool, mMode=%ld, mState=%ld\n",
    456                              mfMouseButtonDown, mMode, mState));
     456                             m_fMouseButtonDown, m_enmMode, m_enmState));
    457457#ifdef DEBUG_andy
    458458            POINT p;
     
    461461#endif
    462462            int rc = VINF_SUCCESS;
    463             if (mMode == HG) /* Host to guest. */
     463            if (m_enmMode == HG) /* Host to guest. */
    464464            {
    465465                /* Dragging not started yet? Kick it off ... */
    466                 if (   mfMouseButtonDown
    467                     && (mState != Dragging))
     466                if (   m_fMouseButtonDown
     467                    && (m_enmState != Dragging))
    468468                {
    469                     mState = Dragging;
     469                    m_enmState = Dragging;
    470470#if 0
    471471                    /* Delay hiding the proxy window a bit when debugging, to see
     
    476476
    477477                    LogFlowThisFunc(("Starting drag and drop: dndLstActionsAllowed=0x%x, dwOKEffects=0x%x ...\n",
    478                                      dndLstActionsAllowed, startupInfo.dwOKEffects));
    479 
    480                     AssertPtr(startupInfo.pDataObject);
    481                     AssertPtr(startupInfo.pDropSource);
     478                                     m_lstActionsAllowed, m_startupInfo.dwOKEffects));
     479
     480                    AssertPtr(m_startupInfo.pDataObject);
     481                    AssertPtr(m_startupInfo.pDropSource);
    482482                    DWORD dwEffect;
    483                     HRESULT hr = DoDragDrop(startupInfo.pDataObject, startupInfo.pDropSource,
    484                                             startupInfo.dwOKEffects, &dwEffect);
     483                    HRESULT hr = DoDragDrop(m_startupInfo.pDataObject, m_startupInfo.pDropSource,
     484                                            m_startupInfo.dwOKEffects, &dwEffect);
    485485                    LogFlowThisFunc(("hr=%Rhrc, dwEffect=%RI32\n", hr, dwEffect));
    486486                    switch (hr)
    487487                    {
    488488                        case DRAGDROP_S_DROP:
    489                             mState = Dropped;
     489                            m_enmState = Dropped;
    490490                            break;
    491491
    492492                        case DRAGDROP_S_CANCEL:
    493                             mState = Canceled;
     493                            m_enmState = Canceled;
    494494                            break;
    495495
    496496                        default:
    497497                            LogFlowThisFunc(("Drag and drop failed with %Rhrc\n", hr));
    498                             mState = Canceled;
     498                            m_enmState = Canceled;
    499499                            rc = VERR_GENERAL_FAILURE; /** @todo Find a better status code. */
    500500                            break;
    501501                    }
    502502
    503                     int rc2 = RTCritSectEnter(&mCritSect);
     503                    int rc2 = RTCritSectEnter(&m_CritSect);
    504504                    if (RT_SUCCESS(rc2))
    505505                    {
    506                         startupInfo.pDropSource->Release();
    507                         startupInfo.pDataObject->Release();
    508 
    509                         RT_ZERO(startupInfo);
    510 
    511                         rc2 = RTCritSectLeave(&mCritSect);
     506                        m_startupInfo.pDropSource->Release();
     507                        m_startupInfo.pDataObject->Release();
     508
     509                        RT_ZERO(m_startupInfo);
     510
     511                        rc2 = RTCritSectLeave(&m_CritSect);
    512512                        if (RT_SUCCESS(rc))
    513513                            rc = rc2;
    514514                    }
    515515
    516                     mMode = Unknown;
     516                    m_enmMode = Unknown;
    517517                }
    518518            }
    519             else if (mMode == GH) /* Guest to host. */
     519            else if (m_enmMode == GH) /* Guest to host. */
    520520            {
    521521                /* Starting here VBoxDnDDropTarget should
     
    527527
    528528            LogFlowThisFunc(("WM_MOUSEMOVE: mMode=%ld, mState=%ld, rc=%Rrc\n",
    529                              mMode, mState, rc));
     529                             m_enmMode, m_enmState, rc));
    530530            return 0;
    531531        }
     
    674674int VBoxDnDWnd::RegisterAsDropTarget(void)
    675675{
    676     if (pDropTarget) /* Already registered as drop target? */
     676    if (m_pDropTarget) /* Already registered as drop target? */
    677677        return VINF_SUCCESS;
    678678
     
    680680    try
    681681    {
    682         pDropTarget = new VBoxDnDDropTarget(this /* pParent */);
    683         HRESULT hr = CoLockObjectExternal(pDropTarget, TRUE /* fLock */,
     682        m_pDropTarget = new VBoxDnDDropTarget(this /* pParent */);
     683        HRESULT hr = CoLockObjectExternal(m_pDropTarget, TRUE /* fLock */,
    684684                                          FALSE /* fLastUnlockReleases */);
    685685        if (SUCCEEDED(hr))
    686             hr = RegisterDragDrop(hWnd, pDropTarget);
     686            hr = RegisterDragDrop(m_hWnd, m_pDropTarget);
    687687
    688688        if (FAILED(hr))
     
    715715    LogFlowFuncEnter();
    716716
    717     if (!pDropTarget) /* No drop target? Bail out. */
     717    if (!m_pDropTarget) /* No drop target? Bail out. */
    718718        return VINF_SUCCESS;
    719719
    720     HRESULT hr = RevokeDragDrop(hWnd);
     720    HRESULT hr = RevokeDragDrop(m_hWnd);
    721721    if (SUCCEEDED(hr))
    722         hr = CoLockObjectExternal(pDropTarget, FALSE /* fLock */,
     722        hr = CoLockObjectExternal(m_pDropTarget, FALSE /* fLock */,
    723723                                  TRUE /* fLastUnlockReleases */);
    724724    if (SUCCEEDED(hr))
    725725    {
    726         ULONG cRefs = pDropTarget->Release();
     726        ULONG cRefs = m_pDropTarget->Release();
    727727        Assert(cRefs == 0); NOREF(cRefs);
    728         pDropTarget = NULL;
     728        m_pDropTarget = NULL;
    729729    }
    730730
     
    745745{
    746746    LogFlowFuncEnter();
    747     int rc = VbglR3DnDConnect(&mDnDCtx);
     747    int rc = VbglR3DnDConnect(&m_cmdCtx);
    748748    if (RT_FAILURE(rc))
    749749    {
     
    752752    }
    753753
    754     LogFlowThisFunc(("Client ID=%RU32, rc=%Rrc\n", mDnDCtx.uClientID, rc));
     754    LogFlowThisFunc(("Client ID=%RU32, rc=%Rrc\n", m_cmdCtx.uClientID, rc));
    755755    return rc;
    756756}
     
    761761void VBoxDnDWnd::OnDestroy(void)
    762762{
    763     DestroyWindow(hWnd);
    764 
    765     VbglR3DnDDisconnect(&mDnDCtx);
     763    DestroyWindow(m_hWnd);
     764
     765    VbglR3DnDDisconnect(&m_cmdCtx);
    766766    LogFlowThisFuncLeave();
    767767}
     
    774774int VBoxDnDWnd::Abort(void)
    775775{
    776     LogFlowThisFunc(("mMode=%ld, mState=%RU32\n", mMode, mState));
     776    LogFlowThisFunc(("mMode=%ld, mState=%RU32\n", m_enmMode, m_enmState));
    777777    LogRel(("DnD: Drag and drop operation aborted\n"));
    778778
    779     int rc = RTCritSectEnter(&mCritSect);
     779    int rc = RTCritSectEnter(&m_CritSect);
    780780    if (RT_SUCCESS(rc))
    781781    {
    782         if (startupInfo.pDataObject)
    783             startupInfo.pDataObject->Abort();
    784 
    785         RTCritSectLeave(&mCritSect);
     782        if (m_startupInfo.pDataObject)
     783            m_startupInfo.pDataObject->Abort();
     784
     785        RTCritSectLeave(&m_CritSect);
    786786    }
    787787
     
    805805int VBoxDnDWnd::OnHgEnter(const RTCList<RTCString> &a_lstFormats, VBOXDNDACTIONLIST a_fDndLstActionsAllowed)
    806806{
    807     if (mMode == GH) /* Wrong mode? Bail out. */
     807    if (m_enmMode == GH) /* Wrong mode? Bail out. */
    808808        return VERR_WRONG_ORDER;
    809809
     
    826826    {
    827827        /* Save all allowed actions. */
    828         this->dndLstActionsAllowed = a_fDndLstActionsAllowed;
     828        this->m_lstActionsAllowed = a_fDndLstActionsAllowed;
    829829
    830830        /*
    831831         * Check if reported formats from host are compatible with this client.
    832832         */
    833         size_t cFormatsSup    = this->lstFmtSup.size();
     833        size_t cFormatsSup    = this->m_lstFmtSup.size();
    834834        ULONG  cFormatsActive = 0;
    835835
     
    844844        {
    845845            bool fSupported = false;
    846             for (size_t a = 0; a < this->lstFmtSup.size(); a++)
     846            for (size_t a = 0; a < this->m_lstFmtSup.size(); a++)
    847847            {
    848848                const char *pszFormat = a_lstFormats.at(i).c_str();
    849                 LogFlowThisFunc(("\t\"%s\" <=> \"%s\"\n", this->lstFmtSup.at(a).c_str(), pszFormat));
    850 
    851                 fSupported = RTStrICmp(this->lstFmtSup.at(a).c_str(), pszFormat) == 0;
     849                LogFlowThisFunc(("\t\"%s\" <=> \"%s\"\n", this->m_lstFmtSup.at(a).c_str(), pszFormat));
     850
     851                fSupported = RTStrICmp(this->m_lstFmtSup.at(a).c_str(), pszFormat) == 0;
    852852                if (fSupported)
    853853                {
    854                     this->lstFmtActive.append(a_lstFormats.at(i));
     854                    this->m_lstFmtActive.append(a_lstFormats.at(i));
    855855
    856856                    /** @todo Put this into a \#define / struct. */
     
    900900            LogRel2(("DnD: %RU32 supported formats found:\n", cFormatsActive));
    901901            for (size_t i = 0; i < cFormatsActive; i++)
    902                 LogRel2(("DnD: \t%s\n", this->lstFmtActive.at(i).c_str()));
     902                LogRel2(("DnD: \t%s\n", this->m_lstFmtActive.at(i).c_str()));
    903903        }
    904904        else
     
    910910
    911911        /* Translate our drop actions into allowed Windows drop effects. */
    912         startupInfo.dwOKEffects = DROPEFFECT_NONE;
     912        m_startupInfo.dwOKEffects = DROPEFFECT_NONE;
    913913        if (a_fDndLstActionsAllowed)
    914914        {
    915915            if (a_fDndLstActionsAllowed & VBOX_DND_ACTION_COPY)
    916                 startupInfo.dwOKEffects |= DROPEFFECT_COPY;
     916                m_startupInfo.dwOKEffects |= DROPEFFECT_COPY;
    917917            if (a_fDndLstActionsAllowed & VBOX_DND_ACTION_MOVE)
    918                 startupInfo.dwOKEffects |= DROPEFFECT_MOVE;
     918                m_startupInfo.dwOKEffects |= DROPEFFECT_MOVE;
    919919            if (a_fDndLstActionsAllowed & VBOX_DND_ACTION_LINK)
    920                 startupInfo.dwOKEffects |= DROPEFFECT_LINK;
    921         }
    922 
    923         LogRel2(("DnD: Supported drop actions: 0x%x\n", startupInfo.dwOKEffects));
    924 
    925         startupInfo.pDropSource = new VBoxDnDDropSource(this);
    926         startupInfo.pDataObject = new VBoxDnDDataObject(pFormatEtc, pStgMeds, cFormatsActive);
     920                m_startupInfo.dwOKEffects |= DROPEFFECT_LINK;
     921        }
     922
     923        LogRel2(("DnD: Supported drop actions: 0x%x\n", m_startupInfo.dwOKEffects));
     924
     925        m_startupInfo.pDropSource = new VBoxDnDDropSource(this);
     926        m_startupInfo.pDataObject = new VBoxDnDDataObject(pFormatEtc, pStgMeds, cFormatsActive);
    927927
    928928        if (pFormatEtc)
     
    961961
    962962    uint32_t uActionNotify = VBOX_DND_ACTION_IGNORE;
    963     if (mMode == HG)
     963    if (m_enmMode == HG)
    964964    {
    965965        LogFlowThisFunc(("u32xPos=%RU32, u32yPos=%RU32, dndAction=0x%x\n",
     
    969969
    970970        if (RT_SUCCESS(rc))
    971             rc = RTCritSectEnter(&mCritSect);
     971            rc = RTCritSectEnter(&m_CritSect);
    972972        if (RT_SUCCESS(rc))
    973973        {
    974             if (   (Dragging == mState)
    975                 && startupInfo.pDropSource)
    976                 uActionNotify = startupInfo.pDropSource->GetCurrentAction();
    977 
    978             RTCritSectLeave(&mCritSect);
     974            if (   (Dragging == m_enmState)
     975                && m_startupInfo.pDropSource)
     976                uActionNotify = m_startupInfo.pDropSource->GetCurrentAction();
     977
     978            RTCritSectLeave(&m_CritSect);
    979979        }
    980980    }
     
    984984    if (RT_SUCCESS(rc))
    985985    {
    986         rc = VbglR3DnDHGSendAckOp(&mDnDCtx, uActionNotify);
     986        rc = VbglR3DnDHGSendAckOp(&m_cmdCtx, uActionNotify);
    987987        if (RT_FAILURE(rc))
    988988            LogFlowThisFunc(("Acknowledging operation failed with rc=%Rrc\n", rc));
     
    10011001int VBoxDnDWnd::OnHgLeave(void)
    10021002{
    1003     if (mMode == GH) /* Wrong mode? Bail out. */
     1003    if (m_enmMode == GH) /* Wrong mode? Bail out. */
    10041004        return VERR_WRONG_ORDER;
    10051005
     
    10181018int VBoxDnDWnd::OnHgDrop(void)
    10191019{
    1020     if (mMode == GH)
     1020    if (m_enmMode == GH)
    10211021        return VERR_WRONG_ORDER;
    10221022
    1023     LogFlowThisFunc(("mMode=%ld, mState=%RU32\n", mMode, mState));
     1023    LogFlowThisFunc(("mMode=%ld, mState=%RU32\n", m_enmMode, m_enmState));
    10241024
    10251025    int rc = VINF_SUCCESS;
    1026     if (mState == Dragging)
    1027     {
    1028         if (lstFmtActive.size() >= 1)
     1026    if (m_enmState == Dragging)
     1027    {
     1028        if (m_lstFmtActive.size() >= 1)
    10291029        {
    10301030            /** @todo What to do when multiple formats are available? */
    1031             mFormatRequested = lstFmtActive.at(0);
    1032 
    1033             rc = RTCritSectEnter(&mCritSect);
     1031            m_strFmtReq = m_lstFmtActive.at(0);
     1032
     1033            rc = RTCritSectEnter(&m_CritSect);
    10341034            if (RT_SUCCESS(rc))
    10351035            {
    1036                 if (startupInfo.pDataObject)
    1037                     startupInfo.pDataObject->SetStatus(VBoxDnDDataObject::Dropping);
     1036                if (m_startupInfo.pDataObject)
     1037                    m_startupInfo.pDataObject->SetStatus(VBoxDnDDataObject::Status_Dropping);
    10381038                else
    10391039                    rc = VERR_NOT_FOUND;
    10401040
    1041                 RTCritSectLeave(&mCritSect);
     1041                RTCritSectLeave(&m_CritSect);
    10421042            }
    10431043
    10441044            if (RT_SUCCESS(rc))
    10451045            {
    1046                 LogRel(("DnD: Requesting data as '%s' ...\n", mFormatRequested.c_str()));
    1047                 rc = VbglR3DnDHGSendReqData(&mDnDCtx, mFormatRequested.c_str());
     1046                LogRel(("DnD: Requesting data as '%s' ...\n", m_strFmtReq.c_str()));
     1047                rc = VbglR3DnDHGSendReqData(&m_cmdCtx, m_strFmtReq.c_str());
    10481048                if (RT_FAILURE(rc))
    10491049                    LogFlowThisFunc(("Requesting data failed with rc=%Rrc\n", rc));
     
    10681068int VBoxDnDWnd::OnHgDataReceive(PVBGLR3GUESTDNDMETADATA pMeta)
    10691069{
    1070     LogFlowThisFunc(("mState=%ld, enmMetaType=%RU32\n", mState, pMeta->enmType));
    1071 
    1072     int rc = RTCritSectEnter(&mCritSect);
     1070    LogFlowThisFunc(("mState=%ld, enmMetaType=%RU32\n", m_enmState, pMeta->enmType));
     1071
     1072    int rc = RTCritSectEnter(&m_CritSect);
    10731073    if (RT_SUCCESS(rc))
    10741074    {
    1075         mState = Dropped;
    1076 
    1077         if (startupInfo.pDataObject)
     1075        m_enmState = Dropped;
     1076
     1077        if (m_startupInfo.pDataObject)
    10781078        {
    10791079            switch (pMeta->enmType)
     
    10841084                    AssertBreakStmt(pMeta->u.Raw.cbMeta, rc = VERR_INVALID_PARAMETER);
    10851085
    1086                     rc = startupInfo.pDataObject->Signal(mFormatRequested, pMeta->u.Raw.pvMeta, pMeta->u.Raw.cbMeta);
     1086                    rc = m_startupInfo.pDataObject->Signal(m_strFmtReq, pMeta->u.Raw.pvMeta, pMeta->u.Raw.cbMeta);
    10871087                    break;
    10881088                }
     
    11001100                    if (RT_SUCCESS(rc))
    11011101                    {
    1102                         rc = startupInfo.pDataObject->Signal(mFormatRequested, pszBuf, cbBuf);
     1102                        rc = m_startupInfo.pDataObject->Signal(m_strFmtReq, pszBuf, cbBuf);
    11031103                        RTStrFree(pszBuf);
    11041104                    }
     
    11181118            rc = rc2;
    11191119
    1120         RTCritSectLeave(&mCritSect);
     1120        RTCritSectLeave(&m_CritSect);
    11211121    }
    11221122
     
    11601160int VBoxDnDWnd::OnGhIsDnDPending(void)
    11611161{
    1162     LogFlowThisFunc(("mMode=%ld, mState=%ld\n", mMode, mState));
    1163 
    1164     if (mMode == Unknown)
     1162    LogFlowThisFunc(("mMode=%ld, mState=%ld\n", m_enmMode, m_enmState));
     1163
     1164    if (m_enmMode == Unknown)
    11651165        setMode(GH);
    11661166
    1167     if (mMode != GH)
     1167    if (m_enmMode != GH)
    11681168        return VERR_WRONG_ORDER;
    11691169
    1170     if (mState == Uninitialized)
     1170    if (m_enmState == Uninitialized)
    11711171    {
    11721172        /* Nothing to do here yet. */
    1173         mState = Initialized;
     1173        m_enmState = Initialized;
    11741174    }
    11751175
    11761176    int rc;
    1177     if (mState == Initialized)
     1177    if (m_enmState == Initialized)
    11781178    {
    11791179        /* Check if the VM session has changed and reconnect to the HGCM service if necessary. */
     
    11951195                 * own drop target (for the host).
    11961196                 */
    1197                 mState = Dragging;
     1197                m_enmState = Dragging;
    11981198            }
    11991199        }
     
    12131213
    12141214    if (   RT_SUCCESS(rc)
    1215         && mState == Dragging)
     1215        && m_enmState == Dragging)
    12161216    {
    12171217        /** @todo Put this block into a function! */
    12181218        POINT p;
    12191219        GetCursorPos(&p);
    1220         ClientToScreen(hWnd, &p);
     1220        ClientToScreen(m_hWnd, &p);
    12211221#ifdef DEBUG_andy
    12221222        LogFlowThisFunc(("Client to screen curX=%ld, curY=%ld\n", p.x, p.y));
     
    12431243        VBOXDNDACTION dndActionDefault = VBOX_DND_ACTION_IGNORE;
    12441244
    1245         AssertPtr(pDropTarget);
    1246         RTCString strFormats = pDropTarget->Formats();
     1245        AssertPtr(m_pDropTarget);
     1246        RTCString strFormats = m_pDropTarget->Formats();
    12471247        if (!strFormats.isEmpty())
    12481248        {
     
    12501250
    12511251            LogFlowFunc(("Acknowledging pDropTarget=0x%p, dndActionDefault=0x%x, dndLstActionsAllowed=0x%x, strFormats=%s\n",
    1252                          pDropTarget, dndActionDefault, dndLstActionsAllowed, strFormats.c_str()));
     1252                         m_pDropTarget, dndActionDefault, m_lstActionsAllowed, strFormats.c_str()));
    12531253        }
    12541254        else
     
    12591259
    12601260        /** @todo Support more than one action at a time. */
    1261         dndLstActionsAllowed = dndActionDefault;
    1262 
    1263         int rc2 = VbglR3DnDGHSendAckPending(&mDnDCtx,
    1264                                             dndActionDefault, dndLstActionsAllowed,
     1261        m_lstActionsAllowed = dndActionDefault;
     1262
     1263        int rc2 = VbglR3DnDGHSendAckPending(&m_cmdCtx,
     1264                                            dndActionDefault, m_lstActionsAllowed,
    12651265                                            strFormats.c_str(), (uint32_t)strFormats.length() + 1 /* Include termination */);
    12661266        if (RT_FAILURE(rc2))
     
    13161316
    13171317    LogFlowThisFunc(("mMode=%ld, mState=%ld, pDropTarget=0x%p, strFormat=%s, dndActionDefault=0x%x\n",
    1318                      mMode, mState, pDropTarget, strFormat.c_str(), dndActionDefault));
     1318                     m_enmMode, m_enmState, m_pDropTarget, strFormat.c_str(), dndActionDefault));
    13191319    int rc;
    1320     if (mMode == GH)
    1321     {
    1322         if (mState == Dragging)
    1323         {
    1324             AssertPtr(pDropTarget);
    1325             rc = pDropTarget->WaitForDrop(5 * 1000 /* 5s timeout */);
     1320    if (m_enmMode == GH)
     1321    {
     1322        if (m_enmState == Dragging)
     1323        {
     1324            AssertPtr(m_pDropTarget);
     1325            rc = m_pDropTarget->WaitForDrop(5 * 1000 /* 5s timeout */);
    13261326
    13271327            Reset();
    13281328        }
    1329         else if (mState == Dropped)
     1329        else if (m_enmState == Dropped)
    13301330        {
    13311331            rc = VINF_SUCCESS;
     
    13371337        {
    13381338            /** @todo Respect uDefAction. */
    1339             void *pvData    = pDropTarget->DataMutableRaw();
    1340             uint32_t cbData = (uint32_t)pDropTarget->DataSize();
    1341             Assert(cbData == pDropTarget->DataSize());
     1339            void *pvData    = m_pDropTarget->DataMutableRaw();
     1340            uint32_t cbData = (uint32_t)m_pDropTarget->DataSize();
     1341            Assert(cbData == m_pDropTarget->DataSize());
    13421342
    13431343            if (   pvData
    13441344                && cbData)
    13451345            {
    1346                 rc = VbglR3DnDGHSendData(&mDnDCtx, strFormat.c_str(), pvData, cbData);
     1346                rc = VbglR3DnDGHSendData(&m_cmdCtx, strFormat.c_str(), pvData, cbData);
    13471347                LogFlowFunc(("Sent pvData=0x%p, cbData=%RU32, rc=%Rrc\n", pvData, cbData, rc));
    13481348            }
     
    13611361         * not wait for the data it expects from the guest.
    13621362         */
    1363         int rc2 = VbglR3DnDGHSendError(&mDnDCtx, rc);
     1363        int rc2 = VbglR3DnDGHSendError(&m_cmdCtx, rc);
    13641364        AssertRC(rc2);
    13651365    }
     
    13731373{
    13741374    LogFlowFunc(("Posting message %u\n"));
    1375     BOOL fRc = ::PostMessage(hWnd, uMsg, wParam, lParam);
     1375    BOOL fRc = ::PostMessage(m_hWnd, uMsg, wParam, lParam);
    13761376    Assert(fRc); NOREF(fRc);
    13771377}
     
    13891389    AssertPtrReturn(pEvent, VERR_INVALID_POINTER);
    13901390
    1391     BOOL fRc = ::PostMessage(hWnd, WM_VBOXTRAY_DND_MESSAGE,
     1391    BOOL fRc = ::PostMessage(m_hWnd, WM_VBOXTRAY_DND_MESSAGE,
    13921392                             0 /* wParm */, (LPARAM)pEvent /* lParm */);
    13931393    if (!fRc)
     
    14241424    int rc = VbglR3GetSessionId(&uSessionID);
    14251425    if (   RT_SUCCESS(rc)
    1426         && uSessionID != mDnDCtx.uSessionID)
     1426        && uSessionID != m_cmdCtx.uSessionID)
    14271427    {
    14281428        LogFlowThisFunc(("VM session has changed to %RU64\n", uSessionID));
    14291429
    1430         rc = VbglR3DnDDisconnect(&mDnDCtx);
     1430        rc = VbglR3DnDDisconnect(&m_cmdCtx);
    14311431        AssertRC(rc);
    14321432
    1433         rc = VbglR3DnDConnect(&mDnDCtx);
     1433        rc = VbglR3DnDConnect(&m_cmdCtx);
    14341434        AssertRC(rc);
    14351435    }
     
    14491449    LogFlowFunc(("\n"));
    14501450#endif
    1451     ShowWindow(hWnd, SW_HIDE);
     1451    ShowWindow(m_hWnd, SW_HIDE);
    14521452
    14531453    return VINF_SUCCESS;
     
    14961496    if (RT_SUCCESS(rc))
    14971497    {
    1498         LONG lStyle = GetWindowLong(hWnd, GWL_STYLE);
    1499         SetWindowLong(hWnd, GWL_STYLE,
     1498        LONG lStyle = GetWindowLong(m_hWnd, GWL_STYLE);
     1499        SetWindowLong(m_hWnd, GWL_STYLE,
    15001500                      lStyle & ~(WS_CAPTION | WS_THICKFRAME));
    1501         LONG lExStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
    1502         SetWindowLong(hWnd, GWL_EXSTYLE,
     1501        LONG lExStyle = GetWindowLong(m_hWnd, GWL_EXSTYLE);
     1502        SetWindowLong(m_hWnd, GWL_EXSTYLE,
    15031503                      lExStyle & ~(  WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
    15041504                                   | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE));
    15051505
    1506         fRc = SetWindowPos(hWnd, HWND_TOPMOST,
     1506        fRc = SetWindowPos(m_hWnd, HWND_TOPMOST,
    15071507                           r.left,
    15081508                           r.top,
     
    16141614{
    16151615    LogFlowThisFunc(("Resetting, old mMode=%ld, mState=%ld\n",
    1616                      mMode, mState));
     1616                     m_enmMode, m_enmState));
    16171617
    16181618    /*
     
    16221622     */
    16231623
    1624     this->lstFmtActive.clear();
    1625     this->dndLstActionsAllowed = VBOX_DND_ACTION_IGNORE;
     1624    this->m_lstFmtActive.clear();
     1625    this->m_lstActionsAllowed = VBOX_DND_ACTION_IGNORE;
    16261626
    16271627    int rc2 = setMode(Unknown);
     
    16401640{
    16411641    LogFlowThisFunc(("Old mode=%ld, new mode=%ld\n",
    1642                      mMode, enmMode));
    1643 
    1644     mMode = enmMode;
    1645     mState = Initialized;
     1642                     m_enmMode, enmMode));
     1643
     1644    m_enmMode = enmMode;
     1645    m_enmState = Initialized;
    16461646
    16471647    return VINF_SUCCESS;
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnD.h

    r85681 r85694  
    3838    enum Status
    3939    {
    40         Uninitialized = 0,
    41         Initialized,
    42         Dropping,
    43         Dropped,
    44         Aborted
     40        Status_Uninitialized = 0,
     41        Status_Initialized,
     42        Status_Dropping,
     43        Status_Dropped,
     44        Status_Aborted,
     45        Status_32Bit_Hack = 0x7fffffff
    4546    };
    4647
     
    7980
    8081    bool LookupFormatEtc(LPFORMATETC pFormatEtc, ULONG *puIndex);
    81     static HGLOBAL MemDup(HGLOBAL hMemSource);
    8282    void RegisterFormat(LPFORMATETC pFormatEtc, CLIPFORMAT clipFormat, TYMED tyMed = TYMED_HGLOBAL,
    8383                        LONG lindex = -1, DWORD dwAspect = DVASPECT_CONTENT, DVTARGETDEVICE *pTargetDevice = NULL);
    8484
    8585    /** Current drag and drop status. */
    86     Status      mStatus;
     86    Status      m_enmStatus;
    8787    /** Internal reference count of this object. */
    88     LONG        mRefCount;
     88    LONG        m_cRefs;
    8989    /** Number of native formats registered. This can be a different number than supplied with m_lstFormats. */
    90     ULONG       mcFormats;
     90    ULONG       m_cFormats;
    9191    /** Array of registered FORMATETC structs. Matches m_cFormats. */
    92     LPFORMATETC mpFormatEtc;
     92    LPFORMATETC m_paFormatEtc;
    9393    /** Array of registered STGMEDIUM structs. Matches m_cFormats. */
    94     LPSTGMEDIUM mpStgMedium;
     94    LPSTGMEDIUM m_paStgMedium;
    9595    /** Event semaphore used for waiting on status changes. */
    96     RTSEMEVENT  mEventDropped;
     96    RTSEMEVENT  m_EvtDropped;
    9797    /** Format of currently retrieved data. */
    98     RTCString   mstrFormat;
     98    RTCString   m_strFormat;
    9999    /** The retrieved data as a raw buffer. */
    100     void       *mpvData;
     100    void       *m_pvData;
    101101    /** Raw buffer size (in bytes). */
    102     size_t      mcbData;
     102    size_t      m_cbData;
    103103};
    104104
     
    115115public:
    116116
    117     VBOXDNDACTION GetCurrentAction(void) { return mDnDActionCurrent; }
     117    VBOXDNDACTION GetCurrentAction(void) { return m_enmActionCurrent; }
    118118
    119119public: /* IUnknown methods. */
     
    131131
    132132    /** Reference count of this object. */
    133     LONG                  mRefCount;
     133    LONG                  m_cRefs;
    134134    /** Pointer to parent proxy window. */
    135     VBoxDnDWnd           *mpWndParent;
     135    VBoxDnDWnd           *m_pWndParent;
    136136    /** Current drag effect. */
    137     DWORD                 mdwCurEffect;
     137    DWORD                 m_dwCurEffect;
    138138    /** Current action to perform on the host. */
    139     VBOXDNDACTION         mDnDActionCurrent;
     139    VBOXDNDACTION         m_enmActionCurrent;
    140140};
    141141
     
    172172
    173173    /** Returns the data as mutable raw. Use with caution! */
    174     void *DataMutableRaw(void) const { return mpvData; }
     174    void *DataMutableRaw(void) const { return m_pvData; }
    175175
    176176    /** Returns the data size (in bytes). */
    177     size_t DataSize(void) const { return mcbData; }
     177    size_t DataSize(void) const { return m_cbData; }
    178178
    179179    RTCString Formats(void) const;
     
    183183
    184184    /** Reference count of this object. */
    185     LONG                  mRefCount;
     185    LONG                  m_cRefs;
    186186    /** Pointer to parent proxy window. */
    187     VBoxDnDWnd           *mpWndParent;
     187    VBoxDnDWnd           *m_pWndParent;
    188188    /** Current drop effect. */
    189     DWORD                 mdwCurEffect;
     189    DWORD                 m_dwCurEffect;
    190190    /** Copy of the data object's current FORMATETC struct.
    191191     *  Note: We don't keep the pointer of the DVTARGETDEVICE here! */
    192     FORMATETC             mFormatEtc;
    193     /** Stringified data object's formats string.  */
    194     RTCString             mstrFormats;
     192    FORMATETC             m_FormatEtc;
     193    /** Stringified data object's format currently in use.  */
     194    RTCString             m_strFormat;
    195195    /** Pointer to actual format data. */
    196     void                 *mpvData;
     196    void                 *m_pvData;
    197197    /** Size (in bytes) of format data. */
    198     size_t                mcbData;
     198    size_t                m_cbData;
    199199    /** Event for waiting on the "drop" event. */
    200     RTSEMEVENT            hEventDrop;
     200    RTSEMEVENT            m_EvtDrop;
    201201    /** Result of the drop event. */
    202     int                   mDroppedRc;
     202    int                   m_rcDropped;
    203203};
    204204
     
    232232
    233233    /** Reference count of this object. */
    234     LONG        m_lRefCount;
     234    LONG        m_cRefs;
    235235    /** Current index for format iteration. */
    236     ULONG       m_nIndex;
     236    ULONG       m_uIdxCur;
    237237    /** Number of format this object contains. */
    238     ULONG       m_nNumFormats;
    239     /** Array of FORMATETC formats this object contains. Matches m_nNumFormats. */
    240     LPFORMATETC m_pFormatEtc;
     238    ULONG       m_cFormats;
     239    /** Array of FORMATETC formats this object contains. Matches m_cFormats. */
     240    LPFORMATETC m_paFormatEtc;
    241241};
    242242
     
    343343
    344344    /** The window's thread for the native message pump and OLE context. */
    345     static DECLCALLBACK(int) Thread(RTTHREAD hThread, void *pvUser);
     345    static DECLCALLBACK(int) Thread(RTTHREAD m_hThread, void *pvUser);
    346346
    347347public:
     
    366366
    367367    /* Host -> Guest */
    368     int OnHgEnter(const RTCList<RTCString> &formats, VBOXDNDACTIONLIST dndLstActionsAllowed);
     368    int OnHgEnter(const RTCList<RTCString> &formats, VBOXDNDACTIONLIST m_lstActionsAllowed);
    369369    int OnHgMove(uint32_t u32xPos, uint32_t u32yPos, VBOXDNDACTION dndAction);
    370370    int OnHgDrop(void);
     
    396396
    397397    /** Pointer to DnD context. */
    398     PVBOXDNDCONTEXT            pCtx;
     398    PVBOXDNDCONTEXT            m_pCtx;
    399399    /** The proxy window's main thread for processing
    400400     *  window messages. */
    401     RTTHREAD                   hThread;
     401    RTTHREAD                   m_hThread;
    402402    /** Critical section to serialize access. */
    403     RTCRITSECT                 mCritSect;
     403    RTCRITSECT                 m_CritSect;
    404404    /** Event semaphore to wait for new DnD events. */
    405     RTSEMEVENT                 mEventSem;
     405    RTSEMEVENT                 m_EvtSem;
    406406#ifdef RT_OS_WINDOWS
    407407    /** The window's handle. */
    408     HWND                       hWnd;
     408    HWND                       m_hWnd;
    409409    /** List of allowed MIME types this
    410410     *  client can handle. Make this a per-instance
    411411     *  property so that we can selectively allow/forbid
    412412     *  certain types later on runtime. */
    413     RTCList<RTCString>         lstFmtSup;
     413    RTCList<RTCString>         m_lstFmtSup;
    414414    /** List of formats for the current
    415415     *  drag'n drop operation. */
    416     RTCList<RTCString>         lstFmtActive;
     416    RTCList<RTCString>         m_lstFmtActive;
    417417    /** List of all current drag'n drop actions allowed. */
    418     VBOXDNDACTIONLIST          dndLstActionsAllowed;
     418    VBOXDNDACTIONLIST          m_lstActionsAllowed;
    419419    /** The startup information required
    420420     *  for the actual DoDragDrop() call. */
    421     VBOXDNDSTARTUPINFO         startupInfo;
     421    VBOXDNDSTARTUPINFO         m_startupInfo;
    422422    /** Is the left mouse button being pressed
    423423     *  currently while being in this window? */
    424     bool                       mfMouseButtonDown;
     424    bool                       m_fMouseButtonDown;
    425425# ifdef VBOX_WITH_DRAG_AND_DROP_GH
    426426    /** Pointer to IDropTarget implementation for
    427427     *  guest -> host support. */
    428     VBoxDnDDropTarget         *pDropTarget;
     428    VBoxDnDDropTarget         *m_pDropTarget;
    429429# endif /* VBOX_WITH_DRAG_AND_DROP_GH */
    430430#else /* !RT_OS_WINDOWS */
     
    433433
    434434    /** The window's own DnD context. */
    435     VBGLR3GUESTDNDCMDCTX       mDnDCtx;
     435    VBGLR3GUESTDNDCMDCTX       m_cmdCtx;
    436436    /** The current operation mode. */
    437     Mode                       mMode;
     437    Mode                       m_enmMode;
    438438    /** The current state. */
    439     State                      mState;
     439    State                      m_enmState;
    440440    /** Format being requested. */
    441     RTCString                  mFormatRequested;
     441    RTCString                  m_strFmtReq;
    442442};
    443443
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnDDataObject.cpp

    r85681 r85694  
    4242
    4343VBoxDnDDataObject::VBoxDnDDataObject(LPFORMATETC pFormatEtc, LPSTGMEDIUM pStgMed, ULONG cFormats)
    44     : mStatus(Uninitialized),
    45       mRefCount(1),
    46       mcFormats(0),
    47       mpvData(NULL),
    48       mcbData(0)
     44    : m_enmStatus(Status_Uninitialized),
     45      m_cRefs(1),
     46      m_cFormats(0),
     47      m_pvData(NULL),
     48      m_cbData(0)
    4949{
    5050    HRESULT hr;
     
    5555    try
    5656    {
    57         mpFormatEtc = new FORMATETC[cAllFormats];
    58         RT_BZERO(mpFormatEtc, sizeof(FORMATETC) * cAllFormats);
    59         mpStgMedium = new STGMEDIUM[cAllFormats];
    60         RT_BZERO(mpStgMedium, sizeof(STGMEDIUM) * cAllFormats);
     57        m_paFormatEtc = new FORMATETC[cAllFormats];
     58        RT_BZERO(m_paFormatEtc, sizeof(FORMATETC) * cAllFormats);
     59        m_paStgMedium = new STGMEDIUM[cAllFormats];
     60        RT_BZERO(m_paStgMedium, sizeof(STGMEDIUM) * cAllFormats);
    6161
    6262        /*
     
    7373                LogFlowFunc(("Format %RU32: cfFormat=%RI16, tyMed=%RU32, dwAspect=%RU32\n",
    7474                             i, pFormatEtc[i].cfFormat, pFormatEtc[i].tymed, pFormatEtc[i].dwAspect));
    75                 mpFormatEtc[i] = pFormatEtc[i];
    76                 mpStgMedium[i] = pStgMed[i];
     75                m_paFormatEtc[i] = pFormatEtc[i];
     76                m_paStgMedium[i] = pStgMed[i];
    7777            }
    7878        }
     
    8787    if (SUCCEEDED(hr))
    8888    {
    89         int rc2 = RTSemEventCreate(&mEventDropped);
     89        int rc2 = RTSemEventCreate(&m_EvtDropped);
    9090        AssertRC(rc2);
    9191
     
    115115                       RegisterClipboardFormat(CFSTR_SHELLIDLISTOFFSET));
    116116#endif
    117         mcFormats = cFormats;
    118         mStatus   = Initialized;
     117        m_cFormats = cFormats;
     118        m_enmStatus   = Status_Initialized;
    119119    }
    120120
     
    124124VBoxDnDDataObject::~VBoxDnDDataObject(void)
    125125{
    126     if (mpFormatEtc)
    127         delete[] mpFormatEtc;
    128 
    129     if (mpStgMedium)
    130         delete[] mpStgMedium;
    131 
    132     if (mpvData)
    133         RTMemFree(mpvData);
    134 
    135     LogFlowFunc(("mRefCount=%RI32\n", mRefCount));
     126    if (m_paFormatEtc)
     127        delete[] m_paFormatEtc;
     128
     129    if (m_paStgMedium)
     130        delete[] m_paStgMedium;
     131
     132    if (m_pvData)
     133        RTMemFree(m_pvData);
     134
     135    LogFlowFunc(("mRefCount=%RI32\n", m_cRefs));
    136136}
    137137
     
    142142STDMETHODIMP_(ULONG) VBoxDnDDataObject::AddRef(void)
    143143{
    144     return InterlockedIncrement(&mRefCount);
     144    return InterlockedIncrement(&m_cRefs);
    145145}
    146146
    147147STDMETHODIMP_(ULONG) VBoxDnDDataObject::Release(void)
    148148{
    149     LONG lCount = InterlockedDecrement(&mRefCount);
     149    LONG lCount = InterlockedDecrement(&m_cRefs);
    150150    if (lCount == 0)
    151151    {
     
    181181    if (!LookupFormatEtc(pFormatEtc, &lIndex)) /* Format supported? */
    182182        return DV_E_FORMATETC;
    183     if (lIndex >= mcFormats) /* Paranoia. */
     183    if (lIndex >= m_cFormats) /* Paranoia. */
    184184        return DV_E_FORMATETC;
    185185
    186     LPFORMATETC pThisFormat = &mpFormatEtc[lIndex];
     186    LPFORMATETC pThisFormat = &m_paFormatEtc[lIndex];
    187187    AssertPtr(pThisFormat);
    188188
    189     LPSTGMEDIUM pThisMedium = &mpStgMedium[lIndex];
     189    LPSTGMEDIUM pThisMedium = &m_paStgMedium[lIndex];
    190190    AssertPtr(pThisMedium);
    191191
     
    194194    HRESULT hr = DV_E_FORMATETC; /* Play safe. */
    195195
    196     LogFlowFunc(("mStatus=%ld\n", mStatus));
    197     if (mStatus == Dropping)
     196    LogFlowFunc(("mStatus=%ld\n", m_enmStatus));
     197    if (m_enmStatus == Status_Dropping)
    198198    {
    199199        LogRel2(("DnD: Waiting for drop event ...\n"));
    200         int rc2 = RTSemEventWait(mEventDropped, RT_INDEFINITE_WAIT);
    201         LogFlowFunc(("rc2=%Rrc, mStatus=%ld\n", rc2, mStatus)); RT_NOREF(rc2);
    202     }
    203 
    204     if (mStatus == Dropped)
     200        int rc2 = RTSemEventWait(m_EvtDropped, RT_INDEFINITE_WAIT);
     201        LogFlowFunc(("rc2=%Rrc, mStatus=%ld\n", rc2, m_enmStatus)); RT_NOREF(rc2);
     202    }
     203
     204    if (m_enmStatus == Status_Dropped)
    205205    {
    206206        LogRel2(("DnD: Drop event received\n"));
     
    209209                 pThisFormat->tymed, pThisFormat->dwAspect));
    210210        LogRel3(("DnD: Got strFormat=%s, pvData=%p, cbData=%RU32\n",
    211                   mstrFormat.c_str(), mpvData, mcbData));
     211                  m_strFormat.c_str(), m_pvData, m_cbData));
    212212
    213213        /*
     
    220220         * URI list handling.
    221221         */
    222         if (DnDMIMEHasFileURLs(mstrFormat.c_str(), RTSTR_MAX))
     222        if (DnDMIMEHasFileURLs(m_strFormat.c_str(), RTSTR_MAX))
    223223        {
    224224            char **papszFiles;
    225225            size_t cFiles;
    226             int rc = RTStrSplit((const char *)mpvData, mcbData, DND_PATH_SEPARATOR, &papszFiles, &cFiles);
     226            int rc = RTStrSplit((const char *)m_pvData, m_cbData, DND_PATH_SEPARATOR, &papszFiles, &cFiles);
    227227            if (   RT_SUCCESS(rc)
    228228                && cFiles)
     
    263263                    && (pFormatEtc->cfFormat == CF_TEXT))
    264264                {
    265                     pMedium->hGlobal = GlobalAlloc(GHND, mcbData + 1);
     265                    pMedium->hGlobal = GlobalAlloc(GHND, m_cbData + 1);
    266266                    if (pMedium->hGlobal)
    267267                    {
    268268                        char *pcDst  = (char *)GlobalLock(pMedium->hGlobal);
    269                         memcpy(pcDst, mpvData, mcbData);
    270                         pcDst[mcbData] = '\0';
     269                        memcpy(pcDst, m_pvData, m_cbData);
     270                        pcDst[m_cbData] = '\0';
    271271                        GlobalUnlock(pMedium->hGlobal);
    272272
     
    356356         * Plain text handling.
    357357         */
    358         else if (   mstrFormat.equalsIgnoreCase("text/plain")
    359                  || mstrFormat.equalsIgnoreCase("text/html")
    360                  || mstrFormat.equalsIgnoreCase("text/plain;charset=utf-8")
    361                  || mstrFormat.equalsIgnoreCase("text/plain;charset=utf-16")
    362                  || mstrFormat.equalsIgnoreCase("text/richtext")
    363                  || mstrFormat.equalsIgnoreCase("UTF8_STRING")
    364                  || mstrFormat.equalsIgnoreCase("TEXT")
    365                  || mstrFormat.equalsIgnoreCase("STRING"))
     358        else if (   m_strFormat.equalsIgnoreCase("text/plain")
     359                 || m_strFormat.equalsIgnoreCase("text/html")
     360                 || m_strFormat.equalsIgnoreCase("text/plain;charset=utf-8")
     361                 || m_strFormat.equalsIgnoreCase("text/plain;charset=utf-16")
     362                 || m_strFormat.equalsIgnoreCase("text/richtext")
     363                 || m_strFormat.equalsIgnoreCase("UTF8_STRING")
     364                 || m_strFormat.equalsIgnoreCase("TEXT")
     365                 || m_strFormat.equalsIgnoreCase("STRING"))
    366366        {
    367             pMedium->hGlobal = GlobalAlloc(GHND, mcbData + 1);
     367            pMedium->hGlobal = GlobalAlloc(GHND, m_cbData + 1);
    368368            if (pMedium->hGlobal)
    369369            {
    370370                char *pcDst  = (char *)GlobalLock(pMedium->hGlobal);
    371                 memcpy(pcDst, mpvData, mcbData);
    372                 pcDst[mcbData] = '\0';
     371                memcpy(pcDst, m_pvData, m_cbData);
     372                pcDst[m_cbData] = '\0';
    373373                GlobalUnlock(pMedium->hGlobal);
    374374
     
    377377        }
    378378        else
    379             LogRel(("DnD: Error: Format '%s' not implemented\n", mstrFormat.c_str()));
     379            LogRel(("DnD: Error: Format '%s' not implemented\n", m_strFormat.c_str()));
    380380    }
    381381
     
    401401
    402402    if (hr == DV_E_FORMATETC)
    403         LogRel(("DnD: Error handling format '%s' (%RU32 bytes)\n", mstrFormat.c_str(), mcbData));
     403        LogRel(("DnD: Error handling format '%s' (%RU32 bytes)\n", m_strFormat.c_str(), m_cbData));
    404404
    405405    LogFlowFunc(("hr=%Rhrc\n", hr));
     
    438438STDMETHODIMP VBoxDnDDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppEnumFormatEtc)
    439439{
    440     LogFlowFunc(("dwDirection=%RI32, mcFormats=%RI32, mpFormatEtc=%p\n", dwDirection, mcFormats, mpFormatEtc));
     440    LogFlowFunc(("dwDirection=%RI32, mcFormats=%RI32, mpFormatEtc=%p\n", dwDirection, m_cFormats, m_paFormatEtc));
    441441
    442442    HRESULT hr;
    443443    if (dwDirection == DATADIR_GET)
    444         hr = VBoxDnDEnumFormatEtc::CreateEnumFormatEtc(mcFormats, mpFormatEtc, ppEnumFormatEtc);
     444        hr = VBoxDnDEnumFormatEtc::CreateEnumFormatEtc(m_cFormats, m_paFormatEtc, ppEnumFormatEtc);
    445445    else
    446446        hr = E_NOTIMPL;
     
    480480{
    481481    LogFlowFunc(("Aborting ...\n"));
    482     mStatus = Aborted;
    483     return RTSemEventSignal(mEventDropped);
     482    m_enmStatus = Status_Aborted;
     483    return RTSemEventSignal(m_EvtDropped);
    484484}
    485485
     
    585585    /* puIndex is optional. */
    586586
    587     for (ULONG i = 0; i < mcFormats; i++)
    588     {
    589         if(    (pFormatEtc->tymed & mpFormatEtc[i].tymed)
    590             && pFormatEtc->cfFormat == mpFormatEtc[i].cfFormat
    591             && pFormatEtc->dwAspect == mpFormatEtc[i].dwAspect)
     587    for (ULONG i = 0; i < m_cFormats; i++)
     588    {
     589        if(    (pFormatEtc->tymed & m_paFormatEtc[i].tymed)
     590            && pFormatEtc->cfFormat == m_paFormatEtc[i].cfFormat
     591            && pFormatEtc->dwAspect == m_paFormatEtc[i].dwAspect)
    592592        {
    593593            LogRel3(("DnD: Format found: tyMed=%RI32, cfFormat=%RI16, sFormats=%s, dwAspect=%RI32, ulIndex=%RU32\n",
    594                       pFormatEtc->tymed, pFormatEtc->cfFormat, VBoxDnDDataObject::ClipboardFormatToString(mpFormatEtc[i].cfFormat),
     594                      pFormatEtc->tymed, pFormatEtc->cfFormat, VBoxDnDDataObject::ClipboardFormatToString(m_paFormatEtc[i].cfFormat),
    595595                      pFormatEtc->dwAspect, i));
    596596            if (puIndex)
     
    605605
    606606    return false;
    607 }
    608 
    609 /* static */
    610 HGLOBAL VBoxDnDDataObject::MemDup(HGLOBAL hMemSource)
    611 {
    612     DWORD dwLen    = GlobalSize(hMemSource);
    613     AssertReturn(dwLen, NULL);
    614     PVOID pvSource = GlobalLock(hMemSource);
    615     if (pvSource)
    616     {
    617         PVOID pvDest = GlobalAlloc(GMEM_FIXED, dwLen);
    618         if (pvDest)
    619             memcpy(pvDest, pvSource, dwLen);
    620 
    621         GlobalUnlock(hMemSource);
    622         return pvDest;
    623     }
    624 
    625     return NULL;
    626607}
    627608
     
    660641{
    661642    LogFlowFunc(("Setting status to %ld\n", status));
    662     mStatus = status;
     643    m_enmStatus = status;
    663644}
    664645
     
    678659    if (cbData)
    679660    {
    680         mpvData = RTMemAlloc(cbData);
    681         if (mpvData)
     661        m_pvData = RTMemAlloc(cbData);
     662        if (m_pvData)
    682663        {
    683             memcpy(mpvData, pvData, cbData);
    684             mcbData = cbData;
     664            memcpy(m_pvData, pvData, cbData);
     665            m_cbData = cbData;
    685666            rc = VINF_SUCCESS;
    686667        }
     
    693674    if (RT_SUCCESS(rc))
    694675    {
    695         mStatus    = Dropped;
    696         mstrFormat = strFormat;
     676        m_enmStatus    = Status_Dropped;
     677        m_strFormat = strFormat;
    697678    }
    698679    else
    699680    {
    700         mStatus = Aborted;
     681        m_enmStatus = Status_Aborted;
    701682    }
    702683
     
    704685    LogRel2(("DnD: Signalling drop event\n"));
    705686
    706     int rc2 = RTSemEventSignal(mEventDropped);
     687    int rc2 = RTSemEventSignal(m_EvtDropped);
    707688    if (RT_SUCCESS(rc))
    708689        rc = rc2;
    709690
    710     LogFunc(("mStatus=%RU32, rc=%Rrc\n", mStatus, rc));
     691    LogFunc(("mStatus=%RU32, rc=%Rrc\n", m_enmStatus, rc));
    711692    return rc;
    712693}
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnDDropSource.cpp

    r82968 r85694  
    3434
    3535VBoxDnDDropSource::VBoxDnDDropSource(VBoxDnDWnd *pParent)
    36     : mRefCount(1),
    37       mpWndParent(pParent),
    38       mdwCurEffect(0),
    39       mDnDActionCurrent(VBOX_DND_ACTION_IGNORE)
     36    : m_cRefs(1),
     37      m_pWndParent(pParent),
     38      m_dwCurEffect(0),
     39      m_enmActionCurrent(VBOX_DND_ACTION_IGNORE)
    4040{
    4141    LogFlowFuncEnter();
     
    4444VBoxDnDDropSource::~VBoxDnDDropSource(void)
    4545{
    46     LogFlowFunc(("mRefCount=%RI32\n", mRefCount));
     46    LogFlowFunc(("mRefCount=%RI32\n", m_cRefs));
    4747}
    4848
     
    5353STDMETHODIMP_(ULONG) VBoxDnDDropSource::AddRef(void)
    5454{
    55     return InterlockedIncrement(&mRefCount);
     55    return InterlockedIncrement(&m_cRefs);
    5656}
    5757
    5858STDMETHODIMP_(ULONG) VBoxDnDDropSource::Release(void)
    5959{
    60     LONG lCount = InterlockedDecrement(&mRefCount);
     60    LONG lCount = InterlockedDecrement(&m_cRefs);
    6161    if (lCount == 0)
    6262    {
     
    9898#if 1
    9999    LogFlowFunc(("fEscapePressed=%RTbool, dwKeyState=0x%x, mdwCurEffect=%RI32, mDnDActionCurrent=%RU32\n",
    100                  fEscapePressed, dwKeyState, mdwCurEffect, mDnDActionCurrent));
     100                 fEscapePressed, dwKeyState, m_dwCurEffect, m_enmActionCurrent));
    101101#endif
    102102
     
    104104    if (fEscapePressed)
    105105    {
    106         mdwCurEffect = 0;
    107         mDnDActionCurrent = VBOX_DND_ACTION_IGNORE;
     106        m_dwCurEffect = 0;
     107        m_enmActionCurrent = VBOX_DND_ACTION_IGNORE;
    108108
    109109        LogFlowFunc(("Canceled\n"));
     
    145145    }
    146146
    147     mdwCurEffect = dwEffect;
    148     mDnDActionCurrent = uAction;
     147    m_dwCurEffect = dwEffect;
     148    m_enmActionCurrent = uAction;
    149149
    150150    return DRAGDROP_S_USEDEFAULTCURSORS;
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnDDropTarget.cpp

    r85681 r85694  
    3636
    3737VBoxDnDDropTarget::VBoxDnDDropTarget(VBoxDnDWnd *pParent)
    38     : mRefCount(1),
    39       mpWndParent(pParent),
    40       mdwCurEffect(0),
    41       mpvData(NULL),
    42       mcbData(0),
    43       hEventDrop(NIL_RTSEMEVENT)
    44 {
    45     int rc = RTSemEventCreate(&hEventDrop);
     38    : m_cRefs(1),
     39      m_pWndParent(pParent),
     40      m_dwCurEffect(0),
     41      m_pvData(NULL),
     42      m_cbData(0),
     43      m_EvtDrop(NIL_RTSEMEVENT)
     44{
     45    int rc = RTSemEventCreate(&m_EvtDrop);
    4646    LogFlowFunc(("rc=%Rrc\n", rc)); NOREF(rc);
    4747}
     
    5151    reset();
    5252
    53     int rc2 = RTSemEventDestroy(hEventDrop);
     53    int rc2 = RTSemEventDestroy(m_EvtDrop);
    5454    AssertRC(rc2);
    5555
    56     LogFlowFunc(("rc=%Rrc, mRefCount=%RI32\n", rc2, mRefCount));
     56    LogFlowFunc(("rc=%Rrc, mRefCount=%RI32\n", rc2, m_cRefs));
    5757}
    5858
     
    6363STDMETHODIMP_(ULONG) VBoxDnDDropTarget::AddRef(void)
    6464{
    65     return InterlockedIncrement(&mRefCount);
     65    return InterlockedIncrement(&m_cRefs);
    6666}
    6767
    6868STDMETHODIMP_(ULONG) VBoxDnDDropTarget::Release(void)
    6969{
    70     LONG lCount = InterlockedDecrement(&mRefCount);
     70    LONG lCount = InterlockedDecrement(&m_cRefs);
    7171    if (lCount == 0)
    7272    {
     
    158158    if (hr == S_OK)
    159159    {
    160         mstrFormats = "text/uri-list";
     160        m_strFormat = "text/uri-list";
    161161    }
    162162    else
     
    170170        if (hr == S_OK)
    171171        {
    172             mstrFormats = "text/plain;charset=utf-8";
     172            m_strFormat = "text/plain;charset=utf-8";
    173173        }
    174174        else
     
    180180            if (hr == S_OK)
    181181            {
    182                 mstrFormats = "text/plain;charset=utf-8";
     182                m_strFormat = "text/plain;charset=utf-8";
    183183            }
    184184            else
     
    202202         * use this for comparrison and stuff. */
    203203        /** @todo The DVTARGETDEVICE member only is a shallow copy for now! */
    204         memcpy(&mFormatEtc, &fmtEtc, sizeof(FORMATETC));
     204        memcpy(&m_FormatEtc, &fmtEtc, sizeof(FORMATETC));
    205205
    206206        /* Which drop effect we're going to use? */
     
    229229
    230230    LogFlowFunc(("Returning mstrFormats=%s, cfFormat=%RI16, pdwEffect=%ld, hr=%Rhrc\n",
    231                  mstrFormats.c_str(), fmtEtc.cfFormat, *pdwEffect, hr));
     231                 m_strFormat.c_str(), fmtEtc.cfFormat, *pdwEffect, hr));
    232232    return hr;
    233233}
     
    240240#ifdef DEBUG_andy
    241241    LogFlowFunc(("cfFormat=%RI16, grfKeyState=0x%x, x=%ld, y=%ld\n",
    242                  mFormatEtc.cfFormat, grfKeyState, pt.x, pt.y));
     242                 m_FormatEtc.cfFormat, grfKeyState, pt.x, pt.y));
    243243#endif
    244244
    245     if (mFormatEtc.cfFormat)
     245    if (m_FormatEtc.cfFormat)
    246246    {
    247247        /* Note: pt is not used since we don't need to differentiate within our
     
    263263{
    264264#ifdef DEBUG_andy
    265     LogFlowFunc(("cfFormat=%RI16\n", mFormatEtc.cfFormat));
     265    LogFlowFunc(("cfFormat=%RI16\n", m_FormatEtc.cfFormat));
    266266#endif
    267267
    268     if (mpWndParent)
    269         mpWndParent->Hide();
     268    if (m_pWndParent)
     269        m_pWndParent->Hide();
    270270
    271271    return S_OK;
     
    279279
    280280    LogFlowFunc(("mFormatEtc.cfFormat=%RI16 (%s), pDataObject=0x%p, grfKeyState=0x%x, x=%ld, y=%ld\n",
    281                  mFormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(mFormatEtc.cfFormat),
     281                 m_FormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(m_FormatEtc.cfFormat),
    282282                 pDataObject, grfKeyState, pt.x, pt.y));
    283283
    284284    HRESULT hr = S_OK;
    285285
    286     if (mFormatEtc.cfFormat) /* Did we get a supported format yet? */
     286    if (m_FormatEtc.cfFormat) /* Did we get a supported format yet? */
    287287    {
    288288        /* Make sure the data object's data format is still valid. */
    289         hr = pDataObject->QueryGetData(&mFormatEtc);
     289        hr = pDataObject->QueryGetData(&m_FormatEtc);
    290290        AssertMsg(SUCCEEDED(hr),
    291291                  ("Data format changed to invalid between DragEnter() and Drop(), cfFormat=%RI16 (%s), hr=%Rhrc\n",
    292                   mFormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(mFormatEtc.cfFormat), hr));
     292                  m_FormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(m_FormatEtc.cfFormat), hr));
    293293    }
    294294
     
    298298    {
    299299        STGMEDIUM stgMed;
    300         hr = pDataObject->GetData(&mFormatEtc, &stgMed);
     300        hr = pDataObject->GetData(&m_FormatEtc, &stgMed);
    301301        if (SUCCEEDED(hr))
    302302        {
     
    307307            PVOID pvData = NULL; /** @todo Put this in an own union? */
    308308
    309             switch (mFormatEtc.tymed)
     309            switch (m_FormatEtc.tymed)
    310310            {
    311311                case TYMED_HGLOBAL:
     
    322322                default:
    323323                    AssertMsgFailed(("Storage medium type %RI32 supported\n",
    324                                      mFormatEtc.tymed));
     324                                     m_FormatEtc.tymed));
    325325                    rc = VERR_NOT_SUPPORTED;
    326326                    hr = DV_E_TYMED; /* Set special hr for OLE. */
     
    334334                 *               based on the storage medium type.
    335335                 */
    336                 switch (mFormatEtc.cfFormat)
     336                switch (m_FormatEtc.cfFormat)
    337337                {
    338338                    case CF_TEXT:
     
    344344
    345345                        LogRel(("DnD: Got %zu bytes of %s\n", cbSize,
    346                                                                 mFormatEtc.cfFormat == CF_TEXT
     346                                                                m_FormatEtc.cfFormat == CF_TEXT
    347347                                                              ? "ANSI text" : "Unicode text"));
    348348                        if (cbSize)
     
    350350                            char *pszText = NULL;
    351351
    352                             rc = mFormatEtc.cfFormat == CF_TEXT
     352                            rc = m_FormatEtc.cfFormat == CF_TEXT
    353353                               /* ANSI codepage -> UTF-8 */
    354354                               ? RTStrCurrentCPToUtf8(&pszText, (char *)pvData)
     
    362362                                size_t cbText = strlen(pszText) + 1; /* Include termination. */
    363363
    364                                 mpvData = RTMemDup((void *)pszText, cbText);
    365                                 mcbData = cbText;
     364                                m_pvData = RTMemDup((void *)pszText, cbText);
     365                                m_cbData = cbText;
    366366
    367367                                RTStrFree(pszText);
     
    499499                                         cFiles, cchFiles, cbFiles, pszFiles));
    500500
    501                             mpvData = pszFiles;
    502                             mcbData = cbFiles;
     501                            m_pvData = pszFiles;
     502                            m_cbData = cbFiles;
    503503                        }
    504504                        else
     
    516516                        /* Note: Should not happen due to the checks done in DragEnter(). */
    517517                        AssertMsgFailed(("Format of type %RI16 (%s) not supported\n",
    518                                          mFormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(mFormatEtc.cfFormat)));
     518                                         m_FormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(m_FormatEtc.cfFormat)));
    519519                        hr = DV_E_CLIPFORMAT; /* Set special hr for OLE. */
    520520                        break;
     
    524524                 * Third stage: Unlock + release access to the storage medium again.
    525525                 */
    526                 switch (mFormatEtc.tymed)
     526                switch (m_FormatEtc.tymed)
    527527                {
    528528                    case TYMED_HGLOBAL:
     
    540540
    541541            /* Signal waiters. */
    542             mDroppedRc = rc;
    543             RTSemEventSignal(hEventDrop);
     542            m_rcDropped = rc;
     543            RTSemEventSignal(m_EvtDrop);
    544544        }
    545545    }
     
    554554        *pdwEffect = DROPEFFECT_NONE;
    555555
    556     if (mpWndParent)
    557         mpWndParent->Hide();
     556    if (m_pWndParent)
     557        m_pWndParent->Hide();
    558558
    559559    LogFlowFunc(("Returning with hr=%Rhrc (%Rrc), mFormatEtc.cfFormat=%RI16 (%s), *pdwEffect=%RI32\n",
    560                  hr, rc, mFormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(mFormatEtc.cfFormat),
     560                 hr, rc, m_FormatEtc.cfFormat, VBoxDnDDataObject::ClipboardFormatToString(m_FormatEtc.cfFormat),
    561561                 *pdwEffect));
    562562
     
    607607    LogFlowFuncEnter();
    608608
    609     if (mpvData)
    610     {
    611         RTMemFree(mpvData);
    612         mpvData = NULL;
    613     }
    614 
    615     mcbData = 0;
    616 
    617     RT_ZERO(mFormatEtc);
    618     mstrFormats = "";
     609    if (m_pvData)
     610    {
     611        RTMemFree(m_pvData);
     612        m_pvData = NULL;
     613    }
     614
     615    m_cbData = 0;
     616
     617    RT_ZERO(m_FormatEtc);
     618    m_strFormat = "";
    619619}
    620620
     
    626626RTCString VBoxDnDDropTarget::Formats(void) const
    627627{
    628     return mstrFormats;
     628    return m_strFormat;
    629629}
    630630
     
    639639    LogFlowFunc(("msTimeout=%RU32\n", msTimeout));
    640640
    641     int rc = RTSemEventWait(hEventDrop, msTimeout);
     641    int rc = RTSemEventWait(m_EvtDrop, msTimeout);
    642642    if (RT_SUCCESS(rc))
    643         rc = mDroppedRc;
     643        rc = m_rcDropped;
    644644
    645645    LogFlowFuncLeaveRC(rc);
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDnDEnumFormat.cpp

    r82968 r85694  
    3232
    3333VBoxDnDEnumFormatEtc::VBoxDnDEnumFormatEtc(LPFORMATETC pFormatEtc, ULONG cFormats)
    34     : m_lRefCount(1),
    35       m_nIndex(0)
     34    : m_cRefs(1),
     35      m_uIdxCur(0)
    3636{
    3737    HRESULT hr;
     
    4040    {
    4141        LogFlowFunc(("pFormatEtc=%p, cFormats=%RU32\n", pFormatEtc, cFormats));
    42         m_pFormatEtc  = new FORMATETC[cFormats];
     42        m_paFormatEtc  = new FORMATETC[cFormats];
    4343
    4444        for (ULONG i = 0; i < cFormats; i++)
     
    4747                         i, pFormatEtc[i].cfFormat, VBoxDnDDataObject::ClipboardFormatToString(pFormatEtc[i].cfFormat),
    4848                         pFormatEtc[i].tymed, pFormatEtc[i].dwAspect));
    49             VBoxDnDEnumFormatEtc::CopyFormat(&m_pFormatEtc[i], &pFormatEtc[i]);
     49            VBoxDnDEnumFormatEtc::CopyFormat(&m_paFormatEtc[i], &pFormatEtc[i]);
    5050        }
    5151
    52         m_nNumFormats = cFormats;
     52        m_cFormats = cFormats;
    5353        hr = S_OK;
    5454    }
     
    6363VBoxDnDEnumFormatEtc::~VBoxDnDEnumFormatEtc(void)
    6464{
    65     if (m_pFormatEtc)
     65    if (m_paFormatEtc)
    6666    {
    67         for (ULONG i = 0; i < m_nNumFormats; i++)
     67        for (ULONG i = 0; i < m_cFormats; i++)
    6868        {
    69             if(m_pFormatEtc[i].ptd)
    70                 CoTaskMemFree(m_pFormatEtc[i].ptd);
     69            if(m_paFormatEtc[i].ptd)
     70                CoTaskMemFree(m_paFormatEtc[i].ptd);
    7171        }
    7272
    73         delete[] m_pFormatEtc;
    74         m_pFormatEtc = NULL;
     73        delete[] m_paFormatEtc;
     74        m_paFormatEtc = NULL;
    7575    }
    7676
    77     LogFlowFunc(("m_lRefCount=%RI32\n", m_lRefCount));
     77    LogFlowFunc(("m_lRefCount=%RI32\n", m_cRefs));
    7878}
    7979
     
    8484STDMETHODIMP_(ULONG) VBoxDnDEnumFormatEtc::AddRef(void)
    8585{
    86     return InterlockedIncrement(&m_lRefCount);
     86    return InterlockedIncrement(&m_cRefs);
    8787}
    8888
    8989STDMETHODIMP_(ULONG) VBoxDnDEnumFormatEtc::Release(void)
    9090{
    91     LONG lCount = InterlockedDecrement(&m_lRefCount);
     91    LONG lCount = InterlockedDecrement(&m_cRefs);
    9292    if (lCount == 0)
    9393    {
     
    120120        return E_INVALIDARG;
    121121
    122     while (   m_nIndex < m_nNumFormats
     122    while (   m_uIdxCur < m_cFormats
    123123           && ulCopied < cFormats)
    124124    {
    125125        VBoxDnDEnumFormatEtc::CopyFormat(&pFormatEtc[ulCopied],
    126                                          &m_pFormatEtc[m_nIndex]);
     126                                         &m_paFormatEtc[m_uIdxCur]);
    127127        ulCopied++;
    128         m_nIndex++;
     128        m_uIdxCur++;
    129129    }
    130130
     
    137137STDMETHODIMP VBoxDnDEnumFormatEtc::Skip(ULONG cFormats)
    138138{
    139     m_nIndex += cFormats;
    140     return (m_nIndex <= m_nNumFormats) ? S_OK : S_FALSE;
     139    m_uIdxCur += cFormats;
     140    return (m_uIdxCur <= m_cFormats) ? S_OK : S_FALSE;
    141141}
    142142
    143143STDMETHODIMP VBoxDnDEnumFormatEtc::Reset(void)
    144144{
    145     m_nIndex = 0;
     145    m_uIdxCur = 0;
    146146    return S_OK;
    147147}
     
    150150{
    151151    HRESULT hResult =
    152         CreateEnumFormatEtc(m_nNumFormats, m_pFormatEtc, ppEnumFormatEtc);
     152        CreateEnumFormatEtc(m_cFormats, m_paFormatEtc, ppEnumFormatEtc);
    153153
    154154    if (hResult == S_OK)
    155         ((VBoxDnDEnumFormatEtc *) *ppEnumFormatEtc)->m_nIndex = m_nIndex;
     155        ((VBoxDnDEnumFormatEtc *) *ppEnumFormatEtc)->m_uIdxCur = m_uIdxCur;
    156156
    157157    return hResult;
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