mirror of
https://github.com/reactos/reactos.git
synced 2025-07-02 00:41:21 +00:00
[SHELL32]
- Formatting. No code changes. svn path=/trunk/; revision=54845
This commit is contained in:
parent
898071bb08
commit
61e7814932
4 changed files with 725 additions and 776 deletions
|
@ -259,16 +259,15 @@ static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg,
|
||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
Control_WndProc_Create(hWnd, (CREATESTRUCTW*)lParam2);
|
Control_WndProc_Create(hWnd, (CREATESTRUCTW*)lParam2);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
{
|
{
|
||||||
CPlApplet* applet = panel->first;
|
CPlApplet *applet = panel->first;
|
||||||
while (applet)
|
while (applet)
|
||||||
applet = Control_UnloadApplet(applet);
|
applet = Control_UnloadApplet(applet);
|
||||||
|
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
}; break;
|
break;
|
||||||
|
}
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
return Control_WndProc_Paint(panel, lParam1);
|
return Control_WndProc_Paint(panel, lParam1);
|
||||||
case WM_LBUTTONUP:
|
case WM_LBUTTONUP:
|
||||||
|
@ -324,27 +323,26 @@ static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Control_DoWindow(CPanel* panel, HWND hWnd, HINSTANCE hInst)
|
static void Control_DoWindow(CPanel *panel, HWND hWnd, HINSTANCE hInst)
|
||||||
{
|
{
|
||||||
HANDLE h;
|
HANDLE hFind;
|
||||||
WIN32_FIND_DATAW fd;
|
WIN32_FIND_DATAW wfd;
|
||||||
WCHAR buffer[MAX_PATH];
|
WCHAR wszPath[MAX_PATH];
|
||||||
static const WCHAR wszAllCpl[] = {'*','.','c','p','l',0};
|
WCHAR *Ptr = wszPath;
|
||||||
WCHAR *p;
|
|
||||||
|
|
||||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
Ptr += GetSystemDirectoryW(wszPath, MAX_PATH);
|
||||||
p = buffer + wcslen(buffer);
|
*Ptr++ = '\\';
|
||||||
*p++ = '\\';
|
wcscpy(Ptr, L"*.cpl");
|
||||||
wcscpy(p, wszAllCpl);
|
|
||||||
|
|
||||||
if ((h = FindFirstFileW(buffer, &fd)) != INVALID_HANDLE_VALUE)
|
hFind = FindFirstFileW(wszPath, &wfd);
|
||||||
|
if (hFind != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
wcscpy(p, fd.cFileName);
|
wcscpy(Ptr, wfd.cFileName);
|
||||||
Control_LoadApplet(hWnd, buffer, panel);
|
Control_LoadApplet(hWnd, wszPath, panel);
|
||||||
} while (FindNextFileW(h, &fd));
|
} while (FindNextFileW(hFind, &wfd));
|
||||||
FindClose(h);
|
FindClose(hFind);
|
||||||
}
|
}
|
||||||
|
|
||||||
Control_DoInterface(panel, hWnd, hInst);
|
Control_DoInterface(panel, hWnd, hInst);
|
||||||
|
|
|
@ -36,7 +36,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
|
||||||
class CControlPanelEnum :
|
class CControlPanelEnum :
|
||||||
public IEnumIDListImpl
|
public IEnumIDListImpl
|
||||||
{
|
{
|
||||||
private:
|
|
||||||
public:
|
public:
|
||||||
CControlPanelEnum();
|
CControlPanelEnum();
|
||||||
~CControlPanelEnum();
|
~CControlPanelEnum();
|
||||||
|
|
|
@ -77,14 +77,12 @@ GetKeyDescription(LPWSTR szKeyName, LPWSTR szResult)
|
||||||
DWORD dwDesc, dwError;
|
DWORD dwDesc, dwError;
|
||||||
WCHAR szDesc[100];
|
WCHAR szDesc[100];
|
||||||
|
|
||||||
static const WCHAR szFriendlyTypeName[] = { '\\','F','r','i','e','n','d','l','y','T','y','p','e','N','a','m','e',0 };
|
|
||||||
|
|
||||||
TRACE("GetKeyDescription: keyname %s\n", debugstr_w(szKeyName));
|
TRACE("GetKeyDescription: keyname %s\n", debugstr_w(szKeyName));
|
||||||
|
|
||||||
if (RegOpenKeyExW(HKEY_CLASSES_ROOT,szKeyName,0, KEY_READ | KEY_QUERY_VALUE,&hKey) != ERROR_SUCCESS)
|
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, szKeyName, 0, KEY_READ | KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (RegLoadMUIStringW(hKey,szFriendlyTypeName,szResult,MAX_PATH,&dwDesc,0,NULL) == ERROR_SUCCESS)
|
if (RegLoadMUIStringW(hKey, L"\\FriendlyTypeName", szResult, MAX_PATH, &dwDesc, 0, NULL) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
TRACE("result %s\n", debugstr_w(szResult));
|
TRACE("result %s\n", debugstr_w(szResult));
|
||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
|
@ -92,7 +90,7 @@ GetKeyDescription(LPWSTR szKeyName, LPWSTR szResult)
|
||||||
}
|
}
|
||||||
/* fetch default value */
|
/* fetch default value */
|
||||||
dwDesc = sizeof(szDesc);
|
dwDesc = sizeof(szDesc);
|
||||||
dwError = RegGetValueW(hKey,NULL,NULL, RRF_RT_REG_SZ,NULL,szDesc,&dwDesc);
|
dwError = RegGetValueW(hKey, NULL, NULL, RRF_RT_REG_SZ, NULL, szDesc, &dwDesc);
|
||||||
if(dwError == ERROR_SUCCESS)
|
if(dwError == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
if (wcsncmp(szKeyName, szDesc, dwDesc / sizeof(WCHAR)))
|
if (wcsncmp(szKeyName, szDesc, dwDesc / sizeof(WCHAR)))
|
||||||
|
@ -124,66 +122,58 @@ GetKeyDescription(LPWSTR szKeyName, LPWSTR szResult)
|
||||||
CNewMenu::SHELLNEW_ITEM *CNewMenu::LoadItem(LPWSTR szKeyName)
|
CNewMenu::SHELLNEW_ITEM *CNewMenu::LoadItem(LPWSTR szKeyName)
|
||||||
{
|
{
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
DWORD dwIndex;
|
DWORD dwIndex = 0;
|
||||||
WCHAR szName[MAX_PATH];
|
WCHAR szName[MAX_PATH];
|
||||||
WCHAR szCommand[MAX_PATH];
|
WCHAR szCommand[MAX_PATH];
|
||||||
WCHAR szDesc[MAX_PATH] = {0};
|
WCHAR szDesc[MAX_PATH] = L"";
|
||||||
WCHAR szIcon[MAX_PATH] = {0};
|
WCHAR szIcon[MAX_PATH] = L"";
|
||||||
DWORD dwName, dwCommand;
|
DWORD dwName, dwCommand;
|
||||||
LONG result;
|
LONG result;
|
||||||
SHELLNEW_ITEM *pNewItem;
|
SHELLNEW_ITEM *pNewItem = NULL;
|
||||||
|
|
||||||
static const WCHAR szShellNew[] = { '\\','S','h','e','l','l','N','e','w',0 };
|
|
||||||
static const WCHAR szCmd[] = { 'C','o','m','m','a','n','d',0 };
|
|
||||||
static const WCHAR szData[] = { 'D','a','t','a',0 };
|
|
||||||
static const WCHAR szFileName[] = { 'F','i','l','e','N','a','m','e', 0 };
|
|
||||||
static const WCHAR szNullFile[] = { 'N','u','l','l','F','i','l','e', 0 };
|
|
||||||
|
|
||||||
|
|
||||||
wcscpy(szName, szKeyName);
|
wcscpy(szName, szKeyName);
|
||||||
GetKeyDescription(szKeyName, szDesc);
|
GetKeyDescription(szKeyName, szDesc);
|
||||||
wcscat(szName, szShellNew);
|
wcscat(szName, L"\\ShellNew");
|
||||||
result = RegOpenKeyExW(HKEY_CLASSES_ROOT,szName,0,KEY_READ,&hKey);
|
result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szName, 0, KEY_READ, &hKey);
|
||||||
|
|
||||||
//TRACE("LoadItem dwName %d keyname %s szName %s szDesc %s szIcon %s\n", dwName, debugstr_w(szKeyName), debugstr_w(szName), debugstr_w(szDesc), debugstr_w(szIcon));
|
TRACE("LoadItem dwName %d keyname %s szName %s szDesc %s szIcon %s\n", dwName, debugstr_w(szKeyName), debugstr_w(szName), debugstr_w(szDesc), debugstr_w(szIcon));
|
||||||
|
|
||||||
if (result != ERROR_SUCCESS)
|
if (result != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
|
TRACE("Failed to open key\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
dwIndex = 0;
|
|
||||||
pNewItem = NULL;
|
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
dwName = MAX_PATH;
|
dwName = MAX_PATH;
|
||||||
dwCommand = MAX_PATH;
|
dwCommand = MAX_PATH;
|
||||||
result = RegEnumValueW(hKey,dwIndex,szName,&dwName,NULL,NULL,(LPBYTE)szCommand, &dwCommand);
|
result = RegEnumValueW(hKey, dwIndex, szName, &dwName, NULL, NULL, (LPBYTE)szCommand, &dwCommand);
|
||||||
if (result == ERROR_SUCCESS)
|
if (result == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
SHELLNEW_TYPE type = SHELLNEW_TYPE_INVALID;
|
SHELLNEW_TYPE type = SHELLNEW_TYPE_INVALID;
|
||||||
LPWSTR szTarget = szCommand;
|
LPWSTR szTarget = szCommand;
|
||||||
//TRACE("szName %s szCommand %s\n", debugstr_w(szName), debugstr_w(szCommand));
|
|
||||||
if (!wcsicmp(szName, szCmd))
|
TRACE("szName %s szCommand %s\n", debugstr_w(szName), debugstr_w(szCommand));
|
||||||
{
|
|
||||||
|
if (!wcsicmp(szName, L"Command"))
|
||||||
type = SHELLNEW_TYPE_COMMAND;
|
type = SHELLNEW_TYPE_COMMAND;
|
||||||
}else if (!wcsicmp(szName, szData))
|
else if (!wcsicmp(szName, L"Data"))
|
||||||
{
|
|
||||||
type = SHELLNEW_TYPE_DATA;
|
type = SHELLNEW_TYPE_DATA;
|
||||||
}
|
else if (!wcsicmp(szName, L"FileName"))
|
||||||
else if (!wcsicmp(szName, szFileName))
|
|
||||||
{
|
|
||||||
type = SHELLNEW_TYPE_FILENAME;
|
type = SHELLNEW_TYPE_FILENAME;
|
||||||
}
|
else if (!wcsicmp(szName, L"NullFile"))
|
||||||
else if (!wcsicmp(szName, szNullFile))
|
|
||||||
{
|
{
|
||||||
type = SHELLNEW_TYPE_NULLFILE;
|
type = SHELLNEW_TYPE_NULLFILE;
|
||||||
szTarget = NULL;
|
szTarget = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type != SHELLNEW_TYPE_INVALID)
|
if (type != SHELLNEW_TYPE_INVALID)
|
||||||
{
|
{
|
||||||
pNewItem = (SHELLNEW_ITEM *)HeapAlloc(GetProcessHeap(), 0, sizeof(SHELLNEW_ITEM));
|
pNewItem = (SHELLNEW_ITEM *)HeapAlloc(GetProcessHeap(), 0, sizeof(SHELLNEW_ITEM));
|
||||||
|
if (!pNewItem)
|
||||||
|
break;
|
||||||
|
|
||||||
pNewItem->Type = type;
|
pNewItem->Type = type;
|
||||||
if (szTarget)
|
if (szTarget)
|
||||||
pNewItem->szTarget = _wcsdup(szTarget);
|
pNewItem->szTarget = _wcsdup(szTarget);
|
||||||
|
@ -198,12 +188,11 @@ CNewMenu::SHELLNEW_ITEM *CNewMenu::LoadItem(LPWSTR szKeyName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dwIndex++;
|
dwIndex++;
|
||||||
}while(result != ERROR_NO_MORE_ITEMS);
|
} while(result != ERROR_NO_MORE_ITEMS);
|
||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
return pNewItem;
|
return pNewItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
CNewMenu::LoadShellNewItems()
|
CNewMenu::LoadShellNewItems()
|
||||||
{
|
{
|
||||||
|
@ -212,25 +201,23 @@ CNewMenu::LoadShellNewItems()
|
||||||
LONG result;
|
LONG result;
|
||||||
SHELLNEW_ITEM *pNewItem;
|
SHELLNEW_ITEM *pNewItem;
|
||||||
SHELLNEW_ITEM *pCurItem = NULL;
|
SHELLNEW_ITEM *pCurItem = NULL;
|
||||||
static WCHAR szLnk[] = { '.','l','n','k',0 };
|
|
||||||
|
|
||||||
/* insert do new folder action */
|
/* insert do new folder action */
|
||||||
if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szNew, sizeof(szNew) / sizeof(WCHAR)))
|
if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szNew, sizeof(szNew) / sizeof(WCHAR)))
|
||||||
szNew[0] = 0;
|
szNew[0] = 0;
|
||||||
szNew[MAX_PATH-1] = 0;
|
|
||||||
|
|
||||||
UnloadShellItems();
|
UnloadShellItems();
|
||||||
|
|
||||||
dwIndex = 0;
|
dwIndex = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
result = RegEnumKeyW(HKEY_CLASSES_ROOT,dwIndex,szName,MAX_PATH);
|
result = RegEnumKeyW(HKEY_CLASSES_ROOT, dwIndex, szName, MAX_PATH);
|
||||||
if (result == ERROR_SUCCESS)
|
if (result == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
pNewItem = LoadItem(szName);
|
pNewItem = LoadItem(szName);
|
||||||
if (pNewItem)
|
if (pNewItem)
|
||||||
{
|
{
|
||||||
if (!wcsicmp(pNewItem->szExt, szLnk))
|
if (!wcsicmp(pNewItem->szExt, L".lnk"))
|
||||||
{
|
{
|
||||||
if (s_SnHead)
|
if (s_SnHead)
|
||||||
{
|
{
|
||||||
|
@ -257,7 +244,7 @@ CNewMenu::LoadShellNewItems()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dwIndex++;
|
dwIndex++;
|
||||||
}while(result != ERROR_NO_MORE_ITEMS);
|
} while(result != ERROR_NO_MORE_ITEMS);
|
||||||
|
|
||||||
if (s_SnHead == NULL)
|
if (s_SnHead == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -333,7 +320,7 @@ CNewMenu::InsertShellNewItems(HMENU hMenu, UINT idFirst, UINT idMenu)
|
||||||
pCurItem = pCurItem->Next;
|
pCurItem = pCurItem->Next;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
return (i+2);
|
return (i + 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
|
@ -355,9 +342,6 @@ CNewMenu::DoShellNewCmd(LPCMINVOKECOMMANDINFO lpcmi, IShellView *psv)
|
||||||
CComPtr<IShellFolder> parentFolder;
|
CComPtr<IShellFolder> parentFolder;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
|
||||||
static const WCHAR szP1[] = { '%', '1', 0 };
|
|
||||||
static const WCHAR szFormat[] = {'%','s',' ','(','%','d',')','%','s',0 };
|
|
||||||
|
|
||||||
i = 1;
|
i = 1;
|
||||||
target = LOWORD(lpcmi->lpVerb);
|
target = LOWORD(lpcmi->lpVerb);
|
||||||
|
|
||||||
|
@ -413,7 +397,7 @@ CNewMenu::DoShellNewCmd(LPCMINVOKECOMMANDINFO lpcmi, IShellView *psv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr = wcsstr(szBuffer, szP1);
|
ptr = wcsstr(szBuffer, L"%1");
|
||||||
if (ptr)
|
if (ptr)
|
||||||
{
|
{
|
||||||
ptr[1] = 's';
|
ptr[1] = 's';
|
||||||
|
@ -430,7 +414,7 @@ CNewMenu::DoShellNewCmd(LPCMINVOKECOMMANDINFO lpcmi, IShellView *psv)
|
||||||
szCmd = _wcsdup(ptr);
|
szCmd = _wcsdup(ptr);
|
||||||
if (!szCmd)
|
if (!szCmd)
|
||||||
break;
|
break;
|
||||||
if (CreateProcessW(NULL, szCmd, NULL, NULL,FALSE,0,NULL,NULL,&sInfo, &pi))
|
if (CreateProcessW(NULL, szCmd, NULL, NULL, FALSE, 0, NULL, NULL, &sInfo, &pi))
|
||||||
{
|
{
|
||||||
CloseHandle( pi.hProcess );
|
CloseHandle( pi.hProcess );
|
||||||
CloseHandle( pi.hThread );
|
CloseHandle( pi.hThread );
|
||||||
|
@ -458,16 +442,16 @@ CNewMenu::DoShellNewCmd(LPCMINVOKECOMMANDINFO lpcmi, IShellView *psv)
|
||||||
dwError = GetLastError();
|
dwError = GetLastError();
|
||||||
|
|
||||||
TRACE("FileName %s szBuffer %s i %u error %x\n", debugstr_w(szBuffer), debugstr_w(szPath), i, dwError);
|
TRACE("FileName %s szBuffer %s i %u error %x\n", debugstr_w(szBuffer), debugstr_w(szPath), i, dwError);
|
||||||
swprintf(szBuffer, szFormat, szPath, i, pCurItem->szExt);
|
swprintf(szBuffer, L"%s (%d)%s", szPath, i, pCurItem->szExt);
|
||||||
i++;
|
i++;
|
||||||
}while(hFile == INVALID_HANDLE_VALUE && dwError == ERROR_FILE_EXISTS);
|
} while(hFile == INVALID_HANDLE_VALUE && dwError == ERROR_FILE_EXISTS);
|
||||||
|
|
||||||
if (hFile == INVALID_HANDLE_VALUE)
|
if (hFile == INVALID_HANDLE_VALUE)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
if (pCurItem->Type == SHELLNEW_TYPE_DATA)
|
if (pCurItem->Type == SHELLNEW_TYPE_DATA)
|
||||||
{
|
{
|
||||||
i = WideCharToMultiByte(CP_ACP, 0, pCurItem->szTarget, -1, (LPSTR)szTemp, MAX_PATH*2, NULL, NULL);
|
i = WideCharToMultiByte(CP_ACP, 0, pCurItem->szTarget, -1, (LPSTR)szTemp, MAX_PATH * 2, NULL, NULL);
|
||||||
if (i)
|
if (i)
|
||||||
{
|
{
|
||||||
WriteFile(hFile, (LPCVOID)szTemp, i, &dwWritten, NULL);
|
WriteFile(hFile, (LPCVOID)szTemp, i, &dwWritten, NULL);
|
||||||
|
@ -570,7 +554,7 @@ CNewMenu::DoDrawItem(HWND hWnd, DRAWITEMSTRUCT * drawItem)
|
||||||
void CNewMenu::DoNewFolder(
|
void CNewMenu::DoNewFolder(
|
||||||
IShellView *psv)
|
IShellView *psv)
|
||||||
{
|
{
|
||||||
ISFHelper * psfhlp;
|
ISFHelper *psfhlp;
|
||||||
WCHAR wszName[MAX_PATH];
|
WCHAR wszName[MAX_PATH];
|
||||||
CComPtr<IFolderView> folderView;
|
CComPtr<IFolderView> folderView;
|
||||||
CComPtr<IShellFolder> parentFolder;
|
CComPtr<IShellFolder> parentFolder;
|
||||||
|
@ -600,8 +584,8 @@ void CNewMenu::DoNewFolder(
|
||||||
psv->Refresh();
|
psv->Refresh();
|
||||||
/* if we are in a shellview do labeledit */
|
/* if we are in a shellview do labeledit */
|
||||||
psv->SelectItem(
|
psv->SelectItem(
|
||||||
pidl,(SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE
|
pidl, (SVSI_DESELECTOTHERS | SVSI_EDIT | SVSI_ENSUREVISIBLE
|
||||||
|SVSI_FOCUSED|SVSI_SELECT));
|
| SVSI_FOCUSED | SVSI_SELECT));
|
||||||
psv->Refresh();
|
psv->Refresh();
|
||||||
}
|
}
|
||||||
SHFree(pidl);
|
SHFree(pidl);
|
||||||
|
@ -642,11 +626,8 @@ CNewMenu::QueryContextMenu(HMENU hmenu,
|
||||||
TRACE("%p %p %u %u %u %u\n", this,
|
TRACE("%p %p %u %u %u %u\n", this,
|
||||||
hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags );
|
hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags );
|
||||||
|
|
||||||
if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szBuffer, 200))
|
if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szBuffer, _countof(szBuffer)))
|
||||||
{
|
|
||||||
szBuffer[0] = 0;
|
szBuffer[0] = 0;
|
||||||
}
|
|
||||||
szBuffer[199] = 0;
|
|
||||||
|
|
||||||
hSubMenu = CreateMenu();
|
hSubMenu = CreateMenu();
|
||||||
memset( &mii, 0, sizeof(mii) );
|
memset( &mii, 0, sizeof(mii) );
|
||||||
|
@ -655,21 +636,20 @@ CNewMenu::QueryContextMenu(HMENU hmenu,
|
||||||
mii.fType = MFT_STRING;
|
mii.fType = MFT_STRING;
|
||||||
mii.wID = idCmdFirst + id++;
|
mii.wID = idCmdFirst + id++;
|
||||||
mii.dwTypeData = szBuffer;
|
mii.dwTypeData = szBuffer;
|
||||||
mii.cch = wcslen( mii.dwTypeData );
|
mii.cch = wcslen(mii.dwTypeData);
|
||||||
mii.fState = MFS_ENABLED;
|
mii.fState = MFS_ENABLED;
|
||||||
|
|
||||||
if (hSubMenu)
|
if (hSubMenu)
|
||||||
{
|
{
|
||||||
id += InsertShellNewItems( hSubMenu, idCmdFirst, 0);
|
id += InsertShellNewItems(hSubMenu, idCmdFirst, 0);
|
||||||
mii.fMask |= MIIM_SUBMENU;
|
mii.fMask |= MIIM_SUBMENU;
|
||||||
mii.hSubMenu = hSubMenu;
|
mii.hSubMenu = hSubMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!InsertMenuItemW(hmenu, indexMenu, TRUE, &mii))
|
||||||
if (!InsertMenuItemW( hmenu, indexMenu, TRUE, &mii ))
|
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
return MAKE_HRESULT( SEVERITY_SUCCESS, 0, id );
|
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT
|
HRESULT
|
||||||
|
@ -680,7 +660,7 @@ CNewMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
|
||||||
LPSHELLVIEW lpSV = NULL;
|
LPSHELLVIEW lpSV = NULL;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
if((lpSB = (LPSHELLBROWSER)SendMessageA(lpici->hwnd, CWM_GETISHELLBROWSER,0,0)))
|
if((lpSB = (LPSHELLBROWSER)SendMessageA(lpici->hwnd, CWM_GETISHELLBROWSER, 0, 0)))
|
||||||
{
|
{
|
||||||
lpSB->QueryActiveShellView(&lpSV);
|
lpSB->QueryActiveShellView(&lpSV);
|
||||||
}
|
}
|
||||||
|
@ -721,11 +701,10 @@ CNewMenu::HandleMenuMsg(UINT uMsg,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
LPARAM lParam)
|
LPARAM lParam)
|
||||||
{
|
{
|
||||||
DRAWITEMSTRUCT * lpids = (DRAWITEMSTRUCT*) lParam;
|
DRAWITEMSTRUCT *lpids = (DRAWITEMSTRUCT*) lParam;
|
||||||
MEASUREITEMSTRUCT *lpmis = (MEASUREITEMSTRUCT*) lParam;
|
MEASUREITEMSTRUCT *lpmis = (MEASUREITEMSTRUCT*) lParam;
|
||||||
|
|
||||||
TRACE("INewItem_IContextMenu_fnHandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n",this, uMsg, wParam, lParam);
|
TRACE("INewItem_IContextMenu_fnHandleMenuMsg (%p)->(msg=%x wp=%lx lp=%lx)\n", this, uMsg, wParam, lParam);
|
||||||
|
|
||||||
|
|
||||||
switch(uMsg)
|
switch(uMsg)
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue