Commit 535679ae authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

Fix CSIDL_CONTROLS and CSIDL_PRINTERS PIDL types, and update tests now

that they pass.
parent 568a91df
......@@ -76,6 +76,7 @@ LPSTR _dbg_ILGetTextPointer(LPCITEMIDLIST pidl)
{
case PT_GUID:
case PT_SHELLEXT:
case PT_YAGUID:
return NULL;
case PT_DRIVE:
......@@ -88,7 +89,6 @@ LPSTR _dbg_ILGetTextPointer(LPCITEMIDLIST pidl)
case PT_FOLDER1:
case PT_VALUE:
case PT_IESPECIAL1:
case PT_RAS_FOLDER:
case PT_IESPECIAL2:
return (LPSTR)&(pdata->u.file.szNames);
......@@ -115,7 +115,6 @@ LPSTR _dbg_ILGetSTextPointer(LPCITEMIDLIST pidl)
case PT_FOLDER:
case PT_VALUE:
case PT_IESPECIAL1:
case PT_RAS_FOLDER:
case PT_IESPECIAL2:
return (LPSTR)(pdata->u.file.szNames + strlen (pdata->u.file.szNames) + 1);
......@@ -250,7 +249,7 @@ BOOL pcheck (LPCITEMIDLIST pidl)
case PT_NETPROVIDER:
case PT_NETWORK:
case PT_IESPECIAL1:
case PT_RAS_FOLDER:
case PT_YAGUID:
case PT_IESPECIAL2:
case PT_SHARE:
break;
......
......@@ -1493,7 +1493,7 @@ LPITEMIDLIST _ILCreateControlPanel()
TRACE("()\n");
if (parent)
{
LPITEMIDLIST cpl = _ILCreateGuid(PT_GUID, &CLSID_ControlPanel);
LPITEMIDLIST cpl = _ILCreateGuid(PT_SHELLEXT, &CLSID_ControlPanel);
if (cpl)
{
......@@ -1512,7 +1512,7 @@ LPITEMIDLIST _ILCreatePrinters()
TRACE("()\n");
if (parent)
{
LPITEMIDLIST printers = _ILCreateGuid(PT_GUID, &CLSID_Printers);
LPITEMIDLIST printers = _ILCreateGuid(PT_YAGUID, &CLSID_Printers);
if (printers)
{
......@@ -1538,7 +1538,7 @@ LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid)
{
LPITEMIDLIST pidlOut;
if (type == PT_SHELLEXT || type == PT_GUID)
if (type == PT_SHELLEXT || type == PT_GUID || type == PT_YAGUID)
{
pidlOut = _ILAlloc(type, sizeof(GUIDStruct));
if (pidlOut)
......@@ -1883,6 +1883,7 @@ LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl)
{
case PT_GUID:
case PT_SHELLEXT:
case PT_YAGUID:
return NULL;
case PT_DRIVE:
......@@ -1895,7 +1896,6 @@ LPSTR _ILGetTextPointer(LPCITEMIDLIST pidl)
case PT_FOLDER1:
case PT_VALUE:
case PT_IESPECIAL1:
case PT_RAS_FOLDER:
case PT_IESPECIAL2:
return (LPSTR)&(pdata->u.file.szNames);
......@@ -1926,7 +1926,6 @@ LPSTR _ILGetSTextPointer(LPCITEMIDLIST pidl)
case PT_FOLDER:
case PT_VALUE:
case PT_IESPECIAL1:
case PT_RAS_FOLDER:
case PT_IESPECIAL2:
return (LPSTR)(pdata->u.file.szNames + strlen (pdata->u.file.szNames) + 1);
......
......@@ -71,6 +71,7 @@
* net provider 0x46 network
* whole network 0x47 network (5)
* MSITStore 0x61 htmlhlp (7)
* printers/ras connections 0x70 guid
* history/favorites 0xb1 file
* share 0xc3 network (6)
*
......@@ -101,7 +102,7 @@
#define PT_NETPROVIDER 0x46
#define PT_NETWORK 0x47
#define PT_IESPECIAL1 0x61
#define PT_RAS_FOLDER 0x70
#define PT_YAGUID 0x70 /* yet another guid.. */
#define PT_IESPECIAL2 0xb1
#define PT_SHARE 0xc3
......@@ -200,8 +201,8 @@ BOOL _ILIsCPanelStruct (LPCITEMIDLIST pidl);
*/
LPITEMIDLIST _ILAlloc(PIDLTYPE type, size_t size);
/* Creates a PIDL with guid format and type type, which must be either PT_GUID
* or PT_SHELLEXT.
/* Creates a PIDL with guid format and type type, which must be one of PT_GUID,
* PT_SHELLEXT, or PT_YAGUID.
*/
LPITEMIDLIST _ILCreateGuid(PIDLTYPE type, REFIID guid);
......
......@@ -53,8 +53,8 @@
#ifndef PT_WORKGRP
#define PT_WORKGRP 0x41 /* no path */
#endif
#ifndef PT_PRINTERS
#define PT_PRINTERS 0x70 /* no path */
#ifndef PT_YAGUID
#define PT_YAGUID 0x70 /* no path */
#endif
/* FIXME: this is used for history/favorites folders; what's a better name? */
#ifndef PT_IESPECIAL2
......@@ -81,9 +81,7 @@ static DLLVERSIONINFO shellVersion = { 0 };
static LPMALLOC pMalloc;
static const struct shellExpectedValues requiredShellValues[] = {
{ CSIDL_BITBUCKET, PT_GUID },
/* FIXME: the following fails in Wine, returns type PT_FOLDER
{ CSIDL_CONTROLS, PT_SHELLEXT },
*/
{ CSIDL_COOKIES, PT_FOLDER },
{ CSIDL_DESKTOPDIRECTORY, PT_FOLDER },
{ CSIDL_DRIVES, PT_GUID },
......@@ -95,9 +93,7 @@ static const struct shellExpectedValues requiredShellValues[] = {
{ CSIDL_INTERNET, PT_GUID },
{ CSIDL_NETHOOD, PT_FOLDER },
{ CSIDL_NETWORK, PT_GUID },
/* FIXME: the following fails in Wine, returns type PT_FOLDER
{ CSIDL_PRINTERS, PT_PRINTERS },
*/
{ CSIDL_PRINTERS, PT_YAGUID },
{ CSIDL_PRINTHOOD, PT_FOLDER },
{ CSIDL_PROGRAMS, PT_FOLDER },
{ CSIDL_RECENT, PT_FOLDER },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment