mirror of
https://github.com/reactos/reactos.git
synced 2024-07-06 04:35:07 +00:00
[QCKLNCH]
-Added en-US.rc -Localized Menu resource. -Added a string table and localized some strings. -Major fixes like removing IDeskBar. -Minor suggestions fixed. CR-122 (https://code.reactos.org/cru/CR-122#details) PS: Thank you everyone for spending your time and giving a thorough review. :) svn path=/branches/GSoC_2017/shellext/; revision=75276
This commit is contained in:
parent
180321d87a
commit
c8c4bcfa52
|
@ -15,6 +15,13 @@
|
|||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(qcklnch);
|
||||
|
||||
// ***Extras***
|
||||
|
||||
BOOL WINAPI _ILIsDesktop(LPCITEMIDLIST pidl)
|
||||
{
|
||||
return (pidl == NULL || pidl->mkid.cb == 0);
|
||||
}
|
||||
|
||||
//*****************************************************************************************
|
||||
// *** CISFBand ***
|
||||
|
||||
|
@ -64,16 +71,18 @@ LRESULT CISFBand::OnRButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHa
|
|||
|
||||
int index = SendMessage(m_hWnd, TB_HITTEST, 0, (LPARAM)&pt);
|
||||
bool chk = SendMessage(m_hWnd, TB_GETBUTTON, abs(index), (LPARAM)&tb);
|
||||
CComHeapPtr<ITEMIDLIST> pidl((LPITEMIDLIST)tb.dwData);
|
||||
LPITEMIDLIST pidl = (LPITEMIDLIST)tb.dwData;
|
||||
|
||||
if (chk)
|
||||
{
|
||||
ClientToScreen(&pt);
|
||||
hr = m_pISF->GetUIObjectOf(m_hWnd, 1, &pidl, IID_NULL_PPV_ARG(IContextMenu, &picm));
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
hr = picm->QueryContextMenu(fmenu, 0, 1, 0x7FFF, CMF_DEFAULTONLY);
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
int id = TrackPopupMenuEx(fmenu, TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_RETURNCMD, pt.x, pt.y, m_hWnd, 0);
|
||||
if (id > 0)
|
||||
|
@ -111,9 +120,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
// Create the toolbar.
|
||||
m_hWnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
|
||||
WS_CHILD | TBSTYLE_FLAT | TBSTYLE_LIST | CCS_NORESIZE | CCS_NODIVIDER, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
|
||||
hWndParent, NULL, 0, NULL);
|
||||
hWndParent, NULL, 0, NULL);
|
||||
if (m_hWnd == NULL)
|
||||
return E_FAIL;
|
||||
return E_FAIL;
|
||||
|
||||
// Set the image list.
|
||||
HIMAGELIST* piml;
|
||||
|
@ -127,7 +136,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
|
||||
// Enumerate objects
|
||||
CComPtr<IEnumIDList> pEndl;
|
||||
CComHeapPtr<ITEMIDLIST> pidl;
|
||||
LPITEMIDLIST pidl;
|
||||
STRRET stret;
|
||||
ULONG count = 0;
|
||||
hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS, &pEndl);
|
||||
|
@ -149,8 +158,9 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
else
|
||||
StrRetToBuf(&stret, pidl, sz, _countof(sz));
|
||||
|
||||
TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 }, (DWORD_PTR)*&pidl, (INT_PTR)sz };
|
||||
TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 }, (DWORD_PTR)pidl, (INT_PTR)sz };
|
||||
SendMessage(m_hWnd, TB_INSERTBUTTONW, 0, (LPARAM)&tb);
|
||||
//CoTaskMemFree(pidl);
|
||||
}
|
||||
|
||||
// Resize the toolbar, and then show it.
|
||||
|
@ -315,29 +325,6 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
return E_FAIL;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
// *** IDeskBar ***
|
||||
STDMETHODIMP CISFBand::SetClient(IN IUnknown *punkClient)
|
||||
{
|
||||
TRACE("IDeskBar::SetClient(0x%p)\n", punkClient);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
STDMETHODIMP CISFBand::GetClient(OUT IUnknown **ppunkClient)
|
||||
{
|
||||
TRACE("IDeskBar::GetClient(0x%p)\n", ppunkClient);
|
||||
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
STDMETHODIMP CISFBand::OnPosRectChangeDB(IN RECT *prc)
|
||||
{
|
||||
TRACE("IDeskBar::OnPosRectChangeDB(0x%p=(%d,%d,%d,%d))\n", prc, prc->left, prc->top, prc->right, prc->bottom);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
// *** IPersistStream ***
|
||||
STDMETHODIMP CISFBand::GetClassID(OUT CLSID *pClassID)
|
||||
|
@ -400,9 +387,19 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
|
||||
STDMETHODIMP CISFBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
|
||||
return E_NOTIMPL;
|
||||
/* switch (uMsg)
|
||||
{
|
||||
case WM_COMMAND:
|
||||
{
|
||||
MessageBox(L"Button Clicked", L"Test", MB_OKCANCEL | MB_ICONINFORMATION);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
return DefSubclassProc(hWnd, uMsg, wParam, lParam);*/
|
||||
|
||||
UNIMPLEMENTED;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
STDMETHODIMP CISFBand::IsWindowOwner(HWND hWnd)
|
||||
|
@ -445,10 +442,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
|
|||
|
||||
STDMETHODIMP CISFBand::InitializeSFB(IShellFolder *psf, PCIDLIST_ABSOLUTE pidl)
|
||||
{
|
||||
CComHeapPtr<ITEMIDLIST> pidlRoot;
|
||||
SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, &pidlRoot);
|
||||
|
||||
if (pidl == NULL || !psf->CompareIDs(0x80000000L, pidl, pidlRoot))
|
||||
if (_ILIsDesktop(pidl))
|
||||
{
|
||||
m_pISF = psf;
|
||||
m_pidl = ILClone(pidl);
|
||||
|
|
|
@ -13,8 +13,7 @@ class CISFBand :
|
|||
public CComCoClass<CISFBand>,
|
||||
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
||||
public IObjectWithSite,
|
||||
public IDeskBand,
|
||||
public IDeskBar,
|
||||
public IDeskBand,
|
||||
public IPersistStream,
|
||||
public IWinEventHandler,
|
||||
public IOleCommandTarget,
|
||||
|
@ -82,20 +81,6 @@ public:
|
|||
IN DWORD dwBandID,
|
||||
IN DWORD dwViewMode,
|
||||
IN OUT DESKBANDINFO *pdbi
|
||||
);
|
||||
|
||||
// IDeskBar
|
||||
|
||||
virtual STDMETHODIMP GetClient(
|
||||
OUT IUnknown **ppunkClient
|
||||
);
|
||||
|
||||
virtual STDMETHODIMP OnPosRectChangeDB(
|
||||
IN LPRECT prc
|
||||
);
|
||||
|
||||
virtual STDMETHODIMP SetClient(
|
||||
IN OPTIONAL IUnknown *punkClient
|
||||
);
|
||||
|
||||
// IPersistStream
|
||||
|
@ -208,6 +193,7 @@ public:
|
|||
|
||||
BEGIN_COM_MAP(CISFBand)
|
||||
COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDeskBand)
|
||||
COM_INTERFACE_ENTRY2_IID(IID_IDockingWindow, IDockingWindow, IDeskBand)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
|
||||
|
|
|
@ -50,7 +50,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
SHGetSpecialFolderLocation(hwnd, nCSIDL, &pidlRoot);
|
||||
}
|
||||
|
||||
BROWSEINFO bi = { hwnd, pidlRoot, path, L"Choose a folder", 0, NULL, 0, 0 };
|
||||
CString biTitle((LPCSTR)IDS_BROWSEINFO_TITLE);
|
||||
BROWSEINFO bi = { hwnd, pidlRoot, path, biTitle, 0, NULL, 0, 0 };
|
||||
LPITEMIDLIST pidlSelected = SHBrowseForFolder(&bi);
|
||||
|
||||
return pidlSelected;
|
||||
|
@ -68,18 +69,22 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
HRESULT CQuickLaunchBand::FinalConstruct()
|
||||
{
|
||||
HRESULT hr = CISFBand_CreateInstance(IID_PPV_ARG(IUnknown, &m_punkISFB));
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComPtr<IShellFolderBand> pISFB;
|
||||
hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IShellFolderBand, &pISFB));
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComPtr<IShellFolder> pISF;
|
||||
hr = SHGetDesktopFolder(&pISF);
|
||||
if (FAILED_UNEXPECTEDLY(hr)) return hr;
|
||||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
CComHeapPtr<ITEMIDLIST> pidl(PidlBrowse(m_hWndBro, CSIDL_DESKTOP));
|
||||
if (pidl == NULL) return E_FAIL;
|
||||
if (pidl == NULL)
|
||||
return E_FAIL;
|
||||
pISFB->InitializeSFB(pISF, pidl);
|
||||
|
||||
return hr;
|
||||
|
@ -93,7 +98,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IObjectWithSite> pIOWS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IObjectWithSite, &pIOWS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIOWS->SetSite(pUnkSite);
|
||||
}
|
||||
|
@ -105,7 +111,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IObjectWithSite> pIOWS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IObjectWithSite, &pIOWS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIOWS->GetSite(riid, ppvSite);
|
||||
}
|
||||
|
@ -117,7 +124,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->GetWindow(phwnd);
|
||||
}
|
||||
|
@ -127,7 +135,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->ContextSensitiveHelp(fEnterMode);
|
||||
}
|
||||
|
@ -137,7 +146,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->ShowDW(bShow);
|
||||
}
|
||||
|
@ -147,7 +157,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->CloseDW(dwReserved);
|
||||
}
|
||||
|
@ -157,7 +168,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->ResizeBorderDW(prcBorder, punkToolbarSite, fReserved);
|
||||
}
|
||||
|
@ -169,49 +181,12 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBand> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIDB->GetBandInfo(dwBandID, dwViewMode, pdbi);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
// IDeskBar
|
||||
STDMETHODIMP CQuickLaunchBand::SetClient(IN IUnknown *punkClient)
|
||||
{
|
||||
TRACE("IDeskBar::SetClient(0x%p)\n", punkClient);
|
||||
|
||||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBar> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBar, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
|
||||
return pIDB->SetClient(punkClient);
|
||||
}
|
||||
|
||||
STDMETHODIMP CQuickLaunchBand::GetClient(OUT IUnknown **ppunkClient)
|
||||
{
|
||||
TRACE("IDeskBar::GetClient(0x%p)\n", ppunkClient);
|
||||
|
||||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBar> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBar, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
|
||||
return pIDB->GetClient(ppunkClient);
|
||||
}
|
||||
|
||||
STDMETHODIMP CQuickLaunchBand::OnPosRectChangeDB(IN RECT *prc)
|
||||
{
|
||||
TRACE("IDeskBar::OnPosRectChangeDB(0x%p=(%d,%d,%d,%d))\n", prc, prc->left, prc->top, prc->right, prc->bottom);
|
||||
|
||||
// Internal CISFBand Calls
|
||||
CComPtr<IDeskBar> pIDB;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBar, &pIDB));
|
||||
if (FAILED(hr)) return hr;
|
||||
|
||||
return pIDB->OnPosRectChangeDB(prc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
// IPersistStream
|
||||
STDMETHODIMP CQuickLaunchBand::GetClassID(OUT CLSID *pClassID)
|
||||
|
@ -221,7 +196,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IPersistStream> pIPS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIPS->GetClassID(pClassID);
|
||||
}
|
||||
|
@ -231,7 +207,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IPersistStream> pIPS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIPS->IsDirty();
|
||||
}
|
||||
|
@ -243,7 +220,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IPersistStream> pIPS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIPS->Load(pStm);
|
||||
}
|
||||
|
@ -253,7 +231,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IPersistStream> pIPS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIPS->Save(pStm, fClearDirty);
|
||||
}
|
||||
|
@ -265,7 +244,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IPersistStream> pIPS;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pIPS->GetSizeMax(pcbSize);
|
||||
}
|
||||
|
@ -290,7 +270,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IWinEventHandler> pWEH;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IWinEventHandler, &pWEH));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pWEH->OnWinEvent(hWnd, uMsg, wParam, lParam, theResult);
|
||||
}
|
||||
|
@ -300,7 +281,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IWinEventHandler> pWEH;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IWinEventHandler, &pWEH));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pWEH->IsWindowOwner(hWnd);
|
||||
}
|
||||
|
@ -312,7 +294,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IOleCommandTarget> pOCT;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &pOCT));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pOCT->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText);
|
||||
}
|
||||
|
@ -322,7 +305,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IOleCommandTarget> pOCT;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &pOCT));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pOCT->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
|
||||
}
|
||||
|
@ -334,7 +318,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IContextMenu> pICM;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IContextMenu, &pICM));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pICM->GetCommandString(idCmd, uFlags, pwReserved, pszName, cchMax);
|
||||
}
|
||||
|
@ -344,7 +329,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IContextMenu> pICM;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IContextMenu, &pICM));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pICM->InvokeCommand(pici);
|
||||
}
|
||||
|
@ -354,7 +340,8 @@ static const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0,
|
|||
// Internal CISFBand Calls
|
||||
CComPtr<IContextMenu> pICM;
|
||||
HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IContextMenu, &pICM));
|
||||
if (FAILED(hr)) return hr;
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return pICM->QueryContextMenu(hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||
}
|
|
@ -18,8 +18,7 @@ class CQuickLaunchBand :
|
|||
public CComCoClass<CQuickLaunchBand, &CLSID_QuickLaunchBand>,
|
||||
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
||||
public IObjectWithSite,
|
||||
public IDeskBand,
|
||||
public IDeskBar,
|
||||
public IDeskBand,
|
||||
public IPersistStream,
|
||||
public IWinEventHandler,
|
||||
public IOleCommandTarget,
|
||||
|
@ -76,21 +75,7 @@ class CQuickLaunchBand :
|
|||
IN DWORD dwBandID,
|
||||
IN DWORD dwViewMode,
|
||||
IN OUT DESKBANDINFO *pdbi
|
||||
);
|
||||
|
||||
// IDeskBar
|
||||
|
||||
virtual STDMETHODIMP GetClient(
|
||||
OUT IUnknown **ppunkClient
|
||||
);
|
||||
|
||||
virtual STDMETHODIMP OnPosRectChangeDB(
|
||||
IN LPRECT prc
|
||||
);
|
||||
|
||||
virtual STDMETHODIMP SetClient(
|
||||
IN OPTIONAL IUnknown *punkClient
|
||||
);
|
||||
);
|
||||
|
||||
// IPersistStream
|
||||
|
||||
|
@ -185,6 +170,7 @@ class CQuickLaunchBand :
|
|||
|
||||
BEGIN_COM_MAP(CQuickLaunchBand)
|
||||
COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDeskBand)
|
||||
COM_INTERFACE_ENTRY2_IID(IID_IDockingWindow, IDockingWindow, IDeskBand)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
|
||||
|
|
19
reactos/dll/shellext/qcklnch/lang/en-US.rc
Normal file
19
reactos/dll/shellext/qcklnch/lang/en-US.rc
Normal file
|
@ -0,0 +1,19 @@
|
|||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
IDM_POPUPMENU MENUEX DISCARDABLE
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
POPUP "&View", IDM_VIEW_MENU
|
||||
BEGIN
|
||||
MENUITEM "&Large Icons", IDM_LARGE_ICONS
|
||||
MENUITEM "&Small Icons", IDM_SMALL_ICONS
|
||||
END
|
||||
MENUITEM "&Show Text", IDM_SHOW_TEXT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_BROWSEINFO_TITLE "Choose a folder"
|
||||
END
|
|
@ -27,6 +27,7 @@
|
|||
#include <atlbase.h>
|
||||
#include <atlcom.h>
|
||||
#include <atlwin.h>
|
||||
#include <atlstr.h>
|
||||
#include <undocshell.h>
|
||||
#include <shellutils.h>
|
||||
|
||||
|
|
|
@ -7,18 +7,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
|
||||
IDR_QCKLNCH REGISTRY "rgs/qcklnch.rgs"
|
||||
|
||||
IDM_POPUPMENU MENUEX DISCARDABLE
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
POPUP "&View", IDM_VIEW_MENU
|
||||
BEGIN
|
||||
MENUITEM "&Large Icons", IDM_LARGE_ICONS
|
||||
MENUITEM "&Small Icons", IDM_SMALL_ICONS
|
||||
END
|
||||
MENUITEM "&Show Text", IDM_SHOW_TEXT
|
||||
END
|
||||
END
|
||||
|
||||
#include <reactos/manifest_dll.rc>
|
||||
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
#define IDR_QCKLNCH 1001
|
||||
#define IDM_POPUPMENU 2000
|
||||
#define IDM_LARGE_ICONS 1
|
||||
#define IDM_SMALL_ICONS 2
|
||||
#define IDM_SHOW_TEXT 3
|
||||
#define IDM_VIEW_MENU 4
|
||||
#define IDR_QCKLNCH 1001
|
||||
|
||||
#define IDM_POPUPMENU 2000
|
||||
#define IDM_LARGE_ICONS 1
|
||||
#define IDM_SMALL_ICONS 2
|
||||
#define IDM_SHOW_TEXT 3
|
||||
#define IDM_VIEW_MENU 4
|
||||
|
||||
#define IDS_BROWSEINFO_TITLE 100
|
||||
|
|
Loading…
Reference in a new issue