Fix CSIDL_CONTROLS and CSIDL_PRINTERS PIDL types, and update tests now
that they pass.
This commit is contained in:
parent
568a91dfd1
commit
535679aec7
|
@ -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 },
|
||||
|
|
Loading…
Reference in New Issue