LRESULT CALLBACK CContainer::BookmarksToolbarSubclass(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_MBUTTONUP: { Bookmark_t Bookmark; TBBUTTON tbButton; POINT ptCursor; DWORD dwPos; int iIndex; dwPos = GetMessagePos(); ptCursor.x = GET_X_LPARAM(dwPos); ptCursor.y = GET_Y_LPARAM(dwPos); MapWindowPoints(HWND_DESKTOP,m_hBookmarksToolbar,&ptCursor,1); iIndex = (int)SendMessage(m_hBookmarksToolbar,TB_HITTEST,0,(LPARAM)&ptCursor); if(iIndex >= 0) { SendMessage(m_hBookmarksToolbar,TB_GETBUTTON,iIndex,(LPARAM)&tbButton); m_Bookmark.RetrieveBookmark((void *)tbButton.dwData,&Bookmark); /* If this is a bookmark, open it in a new tab. */ if(Bookmark.Type == BOOKMARK_TYPE_BOOKMARK) { ExpandAndBrowsePath(Bookmark.szLocation,TRUE,TRUE); } } } break; } return DefSubclassProc(hwnd,uMsg,wParam,lParam); }
HRESULT CContainer::ExpandAndBrowsePath(TCHAR *szPath) { return ExpandAndBrowsePath(szPath,FALSE,FALSE); }
HRESULT Explorerplusplus::ExpandAndBrowsePath(TCHAR *szPath) { return ExpandAndBrowsePath(szPath,FALSE,FALSE); }