Author: ssawant
Date: Thu Jun 29 12:23:13 2017
New Revision: 75231
URL:
http://svn.reactos.org/svn/reactos?rev=75231&view=rev
Log:
[QCKLNCH]
-Created menu resource in qcklnch.rc
-Added resource.h to manage menu resources and all.
-Added IContextMenu.
-Implemented QueryContextMenu and stubbed other methods.
-Handled WM_RBUTTONUP for folder context menus.
-Minor code corrections.
-Tested working of some menu functions in winXP VM, though further testing is required.
Added:
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/resource.h (with props)
Modified:
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.cpp
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.h
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.cpp
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.h
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/precomp.h
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/qcklnch.rc
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
--- branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.cpp [iso-8859-1]
(original)
+++ branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.cpp [iso-8859-1] Thu
Jun 29 12:23:13 2017
@@ -41,6 +41,54 @@
return 0;
}
+LRESULT CISFBand::OnRButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&
bHandled)
+{
+ HRESULT hr;
+ CComPtr<IContextMenu> picm;
+ HMENU fmenu = CreatePopupMenu();
+ TBBUTTON tb;
+ POINT pt;
+ DWORD pos = GetMessagePos();
+ pt.x = GET_X_LPARAM(pos);
+ pt.y = GET_Y_LPARAM(pos);
+ ScreenToClient(&pt);
+
+ int index = SendMessage(m_hWndTb, TB_HITTEST, 0, (LPARAM)&pt);
+ bool chk = SendMessage(m_hWndTb, TB_GETBUTTON, abs(index), (LPARAM)&tb);
+ LPITEMIDLIST pidl = (LPITEMIDLIST)tb.dwData;
+
+ if (chk)
+ {
+ ClientToScreen(&pt);
+ hr = m_pISF->GetUIObjectOf(m_hWndTb, 1, &pidl, IID_IContextMenu, NULL,
(void**)&picm);
+ hr = picm->QueryContextMenu(fmenu, 0, 1, 0x7FFF, CMF_DEFAULTONLY);
+ int id = TrackPopupMenuEx(fmenu, TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_RETURNCMD,
pt.x, pt.y, m_hWndTb, 0);
+ if (id > 0)
+ {
+ CMINVOKECOMMANDINFOEX info = { 0 };
+ info.cbSize = sizeof(info);
+ info.fMask = CMIC_MASK_UNICODE | CMIC_MASK_PTINVOKE;
+ if (GetKeyState(VK_CONTROL) < 0)
+ {
+ info.fMask |= CMIC_MASK_CONTROL_DOWN;
+ }
+ if (GetKeyState(VK_SHIFT) < 0)
+ {
+ info.fMask |= CMIC_MASK_SHIFT_DOWN;
+ }
+ info.hwnd = m_hWndTb;
+ info.lpVerb = MAKEINTRESOURCEA(id - 1);
+ info.lpVerbW = MAKEINTRESOURCEW(id - 0x7FFF);
+ info.nShow = SW_SHOWNORMAL;
+ info.ptInvoke = pt;
+ picm->InvokeCommand((LPCMINVOKECOMMANDINFO)&info);
+ }
+ }
+
+ DestroyMenu(fmenu);
+ return 0;
+}
+
//ToolbarTest
HWND CISFBand::CreateSimpleToolbar(HWND hWndParent, HINSTANCE hInst)
{
@@ -49,41 +97,38 @@
// Create the toolbar.
HWND hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
- WS_CHILD | TBSTYLE_FLAT | TBSTYLE_LIST | CCS_NORESIZE, CW_USEDEFAULT,
CW_USEDEFAULT, 0, 0,
+ WS_CHILD | TBSTYLE_FLAT | TBSTYLE_LIST | CCS_NORESIZE | CCS_NODIVIDER,
CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
hWndParent, NULL, hInst, NULL);
if (hWndToolbar == NULL)
return NULL;
// Set the image list.
HIMAGELIST* piml;
- HRESULT hr1 = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml);
+ HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml);
+ if (FAILED_UNEXPECTEDLY(hr)) return NULL;
SendMessage(hWndToolbar, TB_SETIMAGELIST, 0, (LPARAM)piml);
//Enumerate objects
- CComPtr<IEnumIDList> pedl;
- HRESULT hr2 = m_pISF->EnumObjects(0, SHCONTF_FOLDERS, &pedl);
+ CComPtr<IEnumIDList> pedl;
LPITEMIDLIST pidl = NULL;
- STRRET stret;
-
- if (SUCCEEDED(hr1) && SUCCEEDED(hr2))
- {
- ULONG count = 0;
- for (int i=0; pedl->Next(MAX_PATH, &pidl, 0) != S_FALSE; i++, count++)
- {
- WCHAR sz[MAX_PATH];
- int index = SHMapPIDLToSystemImageListIndex(m_pISF, pidl, NULL);
- m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret);
- StrRetToBuf(&stret, pidl, sz, sizeof(sz));
-
- TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 },
(DWORD_PTR)pidl, (INT_PTR)sz };
- SendMessage(hWndToolbar, TB_INSERTBUTTONW, 0, (LPARAM)&tb);
- }
- }
- else return NULL;
+ STRRET stret;
+ ULONG count = 0;
+ hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS, &pedl);
+ if (FAILED_UNEXPECTEDLY(hr)) return NULL;
+
+ for (int i=0; pedl->Next(1, &pidl, 0) != S_FALSE; i++, count++)
+ {
+ WCHAR sz[MAX_PATH];
+ int index = SHMapPIDLToSystemImageListIndex(m_pISF, pidl, NULL);
+ m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret);
+ StrRetToBuf(&stret, pidl, sz, sizeof(sz));
+
+ TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 },
(DWORD_PTR)pidl, (INT_PTR)sz };
+ SendMessage(hWndToolbar, TB_INSERTBUTTONW, 0, (LPARAM)&tb);
+ }
// Resize the toolbar, and then show it.
- SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
- ::ShowWindow(hWndToolbar, TRUE);
+ SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
CoTaskMemFree((void*)pidl);
return hWndToolbar;
@@ -94,21 +139,22 @@
// *** IObjectWithSite ***
HRESULT STDMETHODCALLTYPE CISFBand::SetSite(IUnknown *pUnkSite)
{
- HRESULT hRet;
+ HRESULT hr;
HWND hwndParent;
TRACE("CISFBand::SetSite(0x%p)\n", pUnkSite);
- hRet = IUnknown_GetWindow(pUnkSite, &hwndParent);
- if (FAILED(hRet))
- {
- TRACE("Querying site window failed: 0x%x\n", hRet);
- return hRet;
+ hr = IUnknown_GetWindow(pUnkSite, &hwndParent);
+ if (FAILED(hr))
+ {
+ TRACE("Querying site window failed: 0x%x\n", hr);
+ return hr;
}
m_Site = pUnkSite;
m_hWndTb = CreateSimpleToolbar(hwndParent, m_hInstance);
- SubclassWindow(m_hWndTb);
+ hr = SubclassWindow(m_hWndTb);
+ if (FAILED_UNEXPECTEDLY(hr)) return hr;
return S_OK;
}
@@ -415,6 +461,117 @@
}
/*****************************************************************************/
+// *** IContextMenu ***
+ HRESULT STDMETHODCALLTYPE CISFBand::GetCommandString(UINT_PTR idCmd, UINT uFlags,
UINT *pwReserved, LPSTR pszName, UINT cchMax)
+ {
+ /*HRESULT hr = E_INVALIDARG;
+
+ if (idCmd == IDM_DISPLAY)
+ {
+ switch (uFlags)
+ {
+ case GCS_HELPTEXTW:
+ // Only useful for pre-Vista versions of Windows that
+ // have a Status bar.
+ hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName),
+ cchMax,
+ L"Display File Name");
+ break;
+
+ case GCS_VERBW:
+ // GCS_VERBW is an optional feature that enables a caller
+ // to discover the canonical name for the verb that is passed in
+ // through idCommand.
+ hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName),
+ cchMax,
+ L"DisplayFileName");
+ break;
+ }
+ }
+ return hr; */
+
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE CISFBand::InvokeCommand(LPCMINVOKECOMMANDINFO pici)
+ {
+ /* BOOL fEx = FALSE;
+ BOOL fUnicode = FALSE;
+
+ if (pici->cbSize == sizeof(CMINVOKECOMMANDINFOEX))
+ {
+ fEx = TRUE;
+ if ((pici->fMask & CMIC_MASK_UNICODE))
+ {
+ fUnicode = TRUE;
+ }
+ }
+
+ if (!fUnicode && HIWORD(pici->lpVerb))
+ {
+ if (StrCmpIA(pici->lpVerb, m_pszVerb))
+ {
+ return E_FAIL;
+ }
+ }
+
+ else if (fUnicode && HIWORD(((CMINVOKECOMMANDINFOEX
*)pici)->lpVerbW))
+ {
+ if (StrCmpIW(((CMINVOKECOMMANDINFOEX *)pici)->lpVerbW, m_pwszVerb))
+ {
+ return E_FAIL;
+ }
+ }
+
+ else if (LOWORD(pici->lpVerb) != IDM_DISPLAY)
+ {
+ return E_FAIL;
+ }
+
+ else
+ {
+ ::MessageBox(pici->hwnd,
+ L"The File Name",
+ L"File Name",
+ MB_OK | MB_ICONINFORMATION);
+ }*/
+
+ if (!HIWORD(pici->lpVerb))
+ {
+ switch (LOWORD(pici->lpVerb) /*- m_idCmdFirst*/)
+ {
+ case IDM_LARGE_ICONS:
+ {
+ ::MessageBox(0, L"IDM_LARGE_ICONS", L"Test",
MB_OK | MB_ICONINFORMATION);
+ break;
+ }
+ case IDM_SMALL_ICONS:
+ {
+ ::MessageBox(0, L"IDM_SMALL_ICONS", L"Test",
MB_OK | MB_ICONINFORMATION);
+ break;
+ }
+ case IDM_SHOW_TEXT:
+ {
+ ::MessageBox(0, L"IDM_SHOW_TEXT", L"Test", MB_OK
| MB_ICONINFORMATION);
+ break;
+ }
+ }
+ }
+
+ return S_OK;
+ }
+
+ HRESULT STDMETHODCALLTYPE CISFBand::QueryContextMenu(HMENU hmenu, UINT indexMenu,
UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
+ {
+ m_idCmdFirst = idCmdFirst;
+ m_qMenu = LoadMenu(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(IDR_POPUPMENU));
+ m_qMenu = GetSubMenu(m_qMenu, 0);
+ UINT idMax = Shell_MergeMenus(hmenu, m_qMenu, indexMenu, idCmdFirst, idCmdLast,
MM_SUBMENUSHAVEIDS);
+
+ return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(idMax - idCmdFirst +1));
+ }
+
+/*****************************************************************************/
//C Constructor
extern "C"
HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv)
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
--- branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.h [iso-8859-1]
(original)
+++ branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CISFBand.h [iso-8859-1] Thu
Jun 29 12:23:13 2017
@@ -18,14 +18,22 @@
public IPersistStream,
public IWinEventHandler,
public IOleCommandTarget,
- public IShellFolderBand
+ public IShellFolderBand,
+ public IContextMenu
{
+ //band
+ DWORD m_BandID;
+ CComPtr<IUnknown> m_Site;
+
+ //Toolbar
+ HWND m_hWndTb;
HINSTANCE m_hInstance;
- CComPtr<IUnknown> m_Site;
CComPtr<IShellFolder> m_pISF;
- PCIDLIST_ABSOLUTE m_pidl;
- HWND m_hWndTb;
- DWORD m_BandID;
+ PCIDLIST_ABSOLUTE m_pidl;
+
+ //Menu
+ HMENU m_qMenu;
+ UINT m_idCmdFirst;
public:
@@ -35,6 +43,7 @@
//Personal Methods
HWND CreateSimpleToolbar(HWND hWndParent, HINSTANCE hInst);
LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+ LRESULT OnRButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
//IObjectWithSite
@@ -168,10 +177,32 @@
virtual HRESULT STDMETHODCALLTYPE SetBandInfoSFB(
PBANDINFOSFB pbi
);
+
+//IContextMenu
+ virtual HRESULT STDMETHODCALLTYPE GetCommandString(
+ UINT_PTR idCmd,
+ UINT uFlags,
+ UINT *pwReserved,
+ LPSTR pszName,
+ UINT cchMax
+ );
+
+ virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
+ LPCMINVOKECOMMANDINFO pici
+ );
+
+ virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
+ HMENU hmenu,
+ UINT indexMenu,
+ UINT idCmdFirst,
+ UINT idCmdLast,
+ UINT uFlags
+ );
//*****************************************************************************************************
- BEGIN_MSG_MAP(CStartButton)
+ BEGIN_MSG_MAP(CISFBand)
MESSAGE_HANDLER(WM_LBUTTONUP, OnLButtonUp)
+ MESSAGE_HANDLER(WM_RBUTTONUP, OnRButtonUp)
END_MSG_MAP()
DECLARE_NOT_AGGREGATABLE(CISFBand)
@@ -186,6 +217,7 @@
COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
COM_INTERFACE_ENTRY_IID(IID_IShellFolderBand, IShellFolderBand)
+ COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
END_COM_MAP()
};
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.cpp
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
---
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.cpp [iso-8859-1]
(original)
+++
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.cpp [iso-8859-1]
Thu Jun 29 12:23:13 2017
@@ -73,22 +73,20 @@
HRESULT CQuickLaunchBand::FinalConstruct()
{
HRESULT hr = CISFBand_CreateInstance(IID_IUnknown, (void**) &m_punkISFB);
- if (SUCCEEDED(hr))
- {
- CComPtr<IShellFolderBand> pISFB;
- hr = m_punkISFB->QueryInterface(IID_IShellFolderBand, (void**)
&pISFB);
- if (SUCCEEDED(hr))
- {
- CComPtr<IShellFolder> pISF;
- hr = SHGetDesktopFolder(&pISF);
- if (SUCCEEDED(hr))
- {
- LPITEMIDLIST pidl = PidlBrowse(m_hWndBro, CSIDL_DESKTOP);
- if (pidl == NULL) return E_FAIL;
- pISFB->InitializeSFB(pISF, pidl);
- }
- }
- }
+ if (FAILED_UNEXPECTEDLY(hr)) return hr;
+
+ CComPtr<IShellFolderBand> pISFB;
+ hr = m_punkISFB->QueryInterface(IID_IShellFolderBand, (void**) &pISFB);
+ if (FAILED_UNEXPECTEDLY(hr)) return hr;
+
+ CComPtr<IShellFolder> pISF;
+ hr = SHGetDesktopFolder(&pISF);
+ if (FAILED_UNEXPECTEDLY(hr)) return hr;
+
+ LPITEMIDLIST pidl = PidlBrowse(m_hWndBro, CSIDL_DESKTOP);
+ if (pidl == NULL) return E_FAIL;
+
+ pISFB->InitializeSFB(pISF, pidl);
return hr;
}
@@ -359,3 +357,34 @@
return pOCT->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
}
+/*****************************************************************************/
+// *** IContextMenu ***
+ HRESULT STDMETHODCALLTYPE CQuickLaunchBand::GetCommandString(UINT_PTR idCmd, UINT
uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax)
+ {
+ //Internal CISFBand Calls
+ CComPtr<IContextMenu> pICM;
+ HRESULT hr = m_punkISFB->QueryInterface(IID_IContextMenu, (void**)&pICM);
+ if (FAILED(hr)) return hr;
+
+ return pICM->GetCommandString(idCmd, uFlags, pwReserved, pszName, cchMax);
+ }
+
+ HRESULT STDMETHODCALLTYPE CQuickLaunchBand::InvokeCommand(LPCMINVOKECOMMANDINFO
pici)
+ {
+ //Internal CISFBand Calls
+ CComPtr<IContextMenu> pICM;
+ HRESULT hr = m_punkISFB->QueryInterface(IID_IContextMenu, (void**)&pICM);
+ if (FAILED(hr)) return hr;
+
+ return pICM->InvokeCommand(pici);
+ }
+
+ HRESULT STDMETHODCALLTYPE CQuickLaunchBand::QueryContextMenu(HMENU hmenu, UINT
indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
+ {
+ //Internal CISFBand Calls
+ CComPtr<IContextMenu> pICM;
+ HRESULT hr = m_punkISFB->QueryInterface(IID_IContextMenu, (void**)&pICM);
+ if (FAILED(hr)) return hr;
+
+ return pICM->QueryContextMenu(hmenu, indexMenu, idCmdFirst, idCmdLast,
uFlags);
+ }
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
---
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.h [iso-8859-1]
(original)
+++
branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/CQuickLaunchBand.h [iso-8859-1]
Thu Jun 29 12:23:13 2017
@@ -22,7 +22,8 @@
public IDeskBar,
public IPersistStream,
public IWinEventHandler,
- public IOleCommandTarget
+ public IOleCommandTarget,
+ public IContextMenu
{
HWND m_hWndBro;
CComPtr<IUnknown> m_punkISFB;
@@ -155,9 +156,30 @@
/*[in, out]*/ OLECMDTEXT *pCmdText
);
+//IContextMenu
+ virtual HRESULT STDMETHODCALLTYPE GetCommandString(
+ UINT_PTR idCmd,
+ UINT uFlags,
+ UINT *pwReserved,
+ LPSTR pszName,
+ UINT cchMax
+ );
+
+ virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
+ LPCMINVOKECOMMANDINFO pici
+ );
+
+ virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
+ HMENU hmenu,
+ UINT indexMenu,
+ UINT idCmdFirst,
+ UINT idCmdLast,
+ UINT uFlags
+ );
+
//*****************************************************************************************************
- DECLARE_REGISTRY_RESOURCEID(1001)
+ DECLARE_REGISTRY_RESOURCEID(IDR_QCKLNCH)
DECLARE_NOT_AGGREGATABLE(CQuickLaunchBand)
DECLARE_PROTECT_FINAL_CONSTRUCT()
@@ -169,5 +191,6 @@
COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream)
COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
+ COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
END_COM_MAP()
};
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/precomp.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
--- branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/precomp.h [iso-8859-1]
(original)
+++ branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/precomp.h [iso-8859-1] Thu
Jun 29 12:23:13 2017
@@ -35,6 +35,8 @@
#include <wine/debug.h>
#include <wine/unicode.h>
+#include "resource.h"
+
#undef DbgPrint
#include "CQuickLaunchBand.h"
Modified: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/qcklnch.rc
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
--- branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/qcklnch.rc [iso-8859-1]
(original)
+++ branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/qcklnch.rc [iso-8859-1] Thu
Jun 29 12:23:13 2017
@@ -1,10 +1,24 @@
#include <windef.h>
#include <winuser.h>
#include <commctrl.h>
+#include "resource.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-1001 REGISTRY "rgs/qcklnch.rgs"
+IDR_QCKLNCH REGISTRY "rgs/qcklnch.rgs"
+
+IDR_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>
Added: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/resource.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2017/shellext/reactos/dll/…
==============================================================================
--- branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/resource.h (added)
+++ branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/resource.h [iso-8859-1] Thu
Jun 29 12:23:13 2017
@@ -0,0 +1,8 @@
+#pragma once
+
+#define IDR_QCKLNCH 1001
+#define IDR_POPUPMENU 2000
+#define IDM_LARGE_ICONS 1
+#define IDM_SMALL_ICONS 2
+#define IDM_SHOW_TEXT 3
+#define IDM_VIEW_MENU 4
Propchange: branches/GSoC_2017/shellext/reactos/dll/shellext/qcklnch/resource.h
------------------------------------------------------------------------------
svn:eol-style = native