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