https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ecb3ee54275f6b47d8665…
commit ecb3ee54275f6b47d8665dfb311af4bb0cb12ca8
Author: Suraj K Suresh <kssuraj15(a)gmail.com>
AuthorDate: Mon Dec 23 14:21:51 2019 +0530
Commit: Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Fri Jan 3 22:42:34 2020 +0100
[PSDK] Support STRICT_TYPED_ITEMIDS in shlobj.h. CORE-16385
---
dll/win32/shell32/CShellItem.cpp | 8 +-
dll/win32/shell32/wine/pidl.c | 4 +-
dll/win32/shell32/wine/shellord.c | 6 +-
sdk/include/psdk/shlobj.h | 216 +++++++++++++++++++-------------------
sdk/include/psdk/shobjidl.idl | 32 +++---
5 files changed, 133 insertions(+), 133 deletions(-)
diff --git a/dll/win32/shell32/CShellItem.cpp b/dll/win32/shell32/CShellItem.cpp
index f60da93a3f5..b95eb4cf0f8 100644
--- a/dll/win32/shell32/CShellItem.cpp
+++ b/dll/win32/shell32/CShellItem.cpp
@@ -24,8 +24,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-EXTERN_C HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
- IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi);
+EXTERN_C HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent,
+ IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi);
CShellItem::CShellItem() :
m_pidl(NULL)
@@ -261,8 +261,8 @@ HRESULT WINAPI CShellItem::GetIDList(PIDLIST_ABSOLUTE *ppidl)
return E_OUTOFMEMORY;
}
-HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST pidlParent,
- IShellFolder *psfParent, LPCITEMIDLIST pidl, IShellItem **ppsi)
+HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent,
+ IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
{
HRESULT hr;
CComPtr<IShellItem> newShellItem;
diff --git a/dll/win32/shell32/wine/pidl.c b/dll/win32/shell32/wine/pidl.c
index 4f917e16296..cfe204aa5e8 100644
--- a/dll/win32/shell32/wine/pidl.c
+++ b/dll/win32/shell32/wine/pidl.c
@@ -638,7 +638,7 @@ BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST
pidlChild, BOOL b
* NOTES
* exported by ordinal.
*/
-LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
+PUIDLIST_RELATIVE WINAPI ILFindChild(PIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
{
LPCITEMIDLIST pidltemp1 = pidl1;
LPCITEMIDLIST pidltemp2 = pidl2;
@@ -674,7 +674,7 @@ LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST pidl1, LPCITEMIDLIST
pidl2)
ret = NULL; /* elements of pidl1 left*/
}
TRACE_(shell)("--- %p\n", ret);
- return (LPITEMIDLIST)ret; /* pidl 1 is shorter */
+ return (PUIDLIST_RELATIVE)ret; /* pidl 1 is shorter */
}
/*************************************************************************
diff --git a/dll/win32/shell32/wine/shellord.c b/dll/win32/shell32/wine/shellord.c
index 71f35e4d866..51231c6afc7 100644
--- a/dll/win32/shell32/wine/shellord.c
+++ b/dll/win32/shell32/wine/shellord.c
@@ -743,7 +743,7 @@ void WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv)
if (SUCCEEDED(SHGetSpecialFolderLocation(hwnd, CSIDL_RECENT,
&pidl))) {
SHGetPathFromIDListA(pidl, link_dir);
- IMalloc_Free(ppM, pidl);
+ IMalloc_Free(ppM,pidl);
}
else {
/* serious issues */
@@ -1824,7 +1824,7 @@ HRESULT WINAPI SHCreateStdEnumFmtEtc(
/*************************************************************************
* SHFindFiles (SHELL32.90)
*/
-BOOL WINAPI SHFindFiles( LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlSaveFile )
+BOOL WINAPI SHFindFiles( PCIDLIST_ABSOLUTE pidlFolder, PCIDLIST_ABSOLUTE pidlSaveFile )
{
FIXME("params ignored: %p %p\n", pidlFolder, pidlSaveFile);
if (SHRestricted(REST_NOFIND))
@@ -1870,7 +1870,7 @@ VOID WINAPI SHUpdateImageA(LPCSTR pszHashItem, INT iIndex, UINT
uFlags, INT iIma
FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_a(pszHashItem), iIndex, uFlags,
iImageIndex);
}
-INT WINAPI SHHandleUpdateImage(LPCITEMIDLIST pidlExtra)
+INT WINAPI SHHandleUpdateImage(PCIDLIST_ABSOLUTE pidlExtra)
{
FIXME("%p - stub\n", pidlExtra);
diff --git a/sdk/include/psdk/shlobj.h b/sdk/include/psdk/shlobj.h
index f287ded6412..a425b21bc79 100644
--- a/sdk/include/psdk/shlobj.h
+++ b/sdk/include/psdk/shlobj.h
@@ -135,9 +135,9 @@ HRESULT WINAPI SHCreateQueryCancelAutoPlayMoniker(IMoniker**);
HRESULT
WINAPI
SHCreateShellItem(
- _In_opt_ LPCITEMIDLIST,
+ _In_opt_ PCIDLIST_ABSOLUTE,
_In_opt_ IShellFolder*,
- _In_ LPCITEMIDLIST,
+ _In_ PCUITEMID_CHILD,
_Outptr_ IShellItem**);
DWORD WINAPI SHCLSIDFromStringA(_In_ LPCSTR, _Out_ CLSID*);
@@ -152,7 +152,7 @@ SHCreateStdEnumFmtEtc(
_Outptr_ IEnumFORMATETC**);
void WINAPI SHDestroyPropSheetExtArray(_In_ HPSXA);
-BOOL WINAPI SHFindFiles(_In_opt_ LPCITEMIDLIST, _In_opt_ LPCITEMIDLIST);
+BOOL WINAPI SHFindFiles(_In_opt_ PCIDLIST_ABSOLUTE, _In_opt_ PCIDLIST_ABSOLUTE);
DWORD WINAPI SHFormatDrive(_In_ HWND, UINT, UINT, UINT);
void WINAPI SHFree(_In_opt_ LPVOID);
@@ -196,25 +196,25 @@ _Success_(return != 0)
BOOL
WINAPI
SHGetPathFromIDListA(
- _In_ LPCITEMIDLIST,
+ _In_ PCIDLIST_ABSOLUTE,
_Out_writes_(MAX_PATH) LPSTR);
_Success_(return != 0)
BOOL
WINAPI
SHGetPathFromIDListW(
- _In_ LPCITEMIDLIST,
+ _In_ PCIDLIST_ABSOLUTE,
_Out_writes_(MAX_PATH) LPWSTR);
#define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
-INT WINAPI SHHandleUpdateImage(_In_ LPCITEMIDLIST);
+INT WINAPI SHHandleUpdateImage(_In_ PCIDLIST_ABSOLUTE);
HRESULT
WINAPI
SHILCreateFromPath(
- _In_ LPCWSTR,
- _Outptr_ LPITEMIDLIST*,
+ _In_ PCWSTR,
+ _Outptr_ PIDLIST_ABSOLUTE*,
_Inout_opt_ DWORD*);
HRESULT WINAPI SHLoadOLE(LPARAM);
@@ -222,9 +222,9 @@ HRESULT WINAPI SHLoadOLE(LPARAM);
HRESULT
WINAPI
SHParseDisplayName(
- _In_ LPCWSTR,
+ _In_ PCWSTR,
_In_opt_ IBindCtx*,
- _Outptr_ LPITEMIDLIST*,
+ _Outptr_ PIDLIST_ABSOLUTE*,
_In_ SFGAOF,
_Out_opt_ SFGAOF*);
@@ -252,13 +252,13 @@ SHReplaceFromPropSheetExtArray(
_In_ LPFNADDPROPSHEETPAGE,
LPARAM);
-LPITEMIDLIST WINAPI SHSimpleIDListFromPath(LPCWSTR);
+PIDLIST_ABSOLUTE WINAPI SHSimpleIDListFromPath(PCWSTR);
int
WINAPI
SHMapPIDLToSystemImageListIndex(
_In_ IShellFolder*,
- _In_ LPCITEMIDLIST,
+ _In_ PCUITEMID_CHILD,
_Out_opt_ int*);
HRESULT WINAPI SHStartNetConnectionDialog(HWND,LPCSTR,DWORD);
@@ -1104,25 +1104,25 @@ typedef INT (CALLBACK *BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM);
#include <pshpack8.h>
typedef struct tagBROWSEINFOA {
- HWND hwndOwner;
- LPCITEMIDLIST pidlRoot;
- LPSTR pszDisplayName;
- LPCSTR lpszTitle;
- UINT ulFlags;
- BFFCALLBACK lpfn;
- LPARAM lParam;
- INT iImage;
+ HWND hwndOwner;
+ PCIDLIST_ABSOLUTE pidlRoot;
+ LPSTR pszDisplayName;
+ LPCSTR lpszTitle;
+ UINT ulFlags;
+ BFFCALLBACK lpfn;
+ LPARAM lParam;
+ INT iImage;
} BROWSEINFOA, *PBROWSEINFOA, *LPBROWSEINFOA;
typedef struct tagBROWSEINFOW {
- HWND hwndOwner;
- LPCITEMIDLIST pidlRoot;
- LPWSTR pszDisplayName;
- LPCWSTR lpszTitle;
- UINT ulFlags;
- BFFCALLBACK lpfn;
- LPARAM lParam;
- INT iImage;
+ HWND hwndOwner;
+ PCIDLIST_ABSOLUTE pidlRoot;
+ LPWSTR pszDisplayName;
+ LPCWSTR lpszTitle;
+ UINT ulFlags;
+ BFFCALLBACK lpfn;
+ LPARAM lParam;
+ INT iImage;
} BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW;
#define BROWSEINFO WINELIB_NAME_AW(BROWSEINFO)
@@ -1166,8 +1166,8 @@ typedef struct tagBROWSEINFOW {
#define BFFM_SETOKTEXT (WM_USER+105)
#define BFFM_SETEXPANDED (WM_USER+106)
-LPITEMIDLIST WINAPI SHBrowseForFolderA(_In_ LPBROWSEINFOA lpbi);
-LPITEMIDLIST WINAPI SHBrowseForFolderW(_In_ LPBROWSEINFOW lpbi);
+PIDLIST_ABSOLUTE WINAPI SHBrowseForFolderA(_In_ LPBROWSEINFOA lpbi);
+PIDLIST_ABSOLUTE WINAPI SHBrowseForFolderW(_In_ LPBROWSEINFOW lpbi);
#define SHBrowseForFolder WINELIB_NAME_AW(SHBrowseForFolder)
#define BFFM_SETSTATUSTEXT WINELIB_NAME_AW(BFFM_SETSTATUSTEXT)
@@ -1191,13 +1191,13 @@ typedef HRESULT
typedef struct _CSFV
{
- UINT cbSize;
- IShellFolder* pshf;
- IShellView* psvOuter;
- LPCITEMIDLIST pidl;
- LONG lEvents;
- LPFNVIEWCALLBACK pfnCallback;
- FOLDERVIEWMODE fvm;
+ UINT cbSize;
+ IShellFolder* pshf;
+ IShellView* psvOuter;
+ PCIDLIST_ABSOLUTE pidl;
+ LONG lEvents;
+ LPFNVIEWCALLBACK pfnCallback;
+ FOLDERVIEWMODE fvm;
} CSFV, *LPCSFV;
#include <poppack.h>
@@ -1403,7 +1403,7 @@ HRESULT
WINAPI
SHGetDataFromIDListA(
_In_ LPSHELLFOLDER psf,
- _In_ LPCITEMIDLIST pidl,
+ _In_ PCUITEMID_CHILD pidl,
int nFormat,
_Out_writes_bytes_(cb) LPVOID pv,
int cb);
@@ -1412,14 +1412,14 @@ HRESULT
WINAPI
SHGetDataFromIDListW(
_In_ LPSHELLFOLDER psf,
- _In_ LPCITEMIDLIST pidl,
+ _In_ PCUITEMID_CHILD pidl,
int nFormat,
_Out_writes_bytes_(cb) LPVOID pv,
int cb);
#define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList)
-LPITEMIDLIST
+PIDLIST_ABSOLUTE
WINAPI
SHCloneSpecialIDList(
_Reserved_ HWND hwnd,
@@ -1454,37 +1454,37 @@ _Check_return_ HRESULT WINAPI SHGetMalloc(_Outptr_ LPMALLOC
*lpmal);
typedef struct
{
- BOOL fShowAllObjects : 1;
- BOOL fShowExtensions : 1;
- BOOL fNoConfirmRecycle : 1;
-
- BOOL fShowSysFiles : 1;
- BOOL fShowCompColor : 1;
- BOOL fDoubleClickInWebView : 1;
- BOOL fDesktopHTML : 1;
- BOOL fWin95Classic : 1;
- BOOL fDontPrettyPath : 1;
- BOOL fShowAttribCol : 1;
- BOOL fMapNetDrvBtn : 1;
- BOOL fShowInfoTip : 1;
- BOOL fHideIcons : 1;
- BOOL fWebView : 1;
- BOOL fFilter : 1;
- BOOL fShowSuperHidden : 1;
- BOOL fNoNetCrawling : 1;
-
- UINT :15; /* Required for proper binary layout with gcc */
+ BOOL fShowAllObjects : 1;
+ BOOL fShowExtensions : 1;
+ BOOL fNoConfirmRecycle : 1;
+
+ BOOL fShowSysFiles : 1;
+ BOOL fShowCompColor : 1;
+ BOOL fDoubleClickInWebView : 1;
+ BOOL fDesktopHTML : 1;
+ BOOL fWin95Classic : 1;
+ BOOL fDontPrettyPath : 1;
+ BOOL fShowAttribCol : 1;
+ BOOL fMapNetDrvBtn : 1;
+ BOOL fShowInfoTip : 1;
+ BOOL fHideIcons : 1;
+ BOOL fWebView : 1;
+ BOOL fFilter : 1;
+ BOOL fShowSuperHidden : 1;
+ BOOL fNoNetCrawling : 1;
+
+ UINT :15; /* Required for proper binary layout with gcc */
DWORD dwWin95Unused;
UINT uWin95Unused;
- LONG lParamSort;
- int iSortDirection;
- UINT version;
- UINT uNotUsed;
- BOOL fSepProcess: 1;
- BOOL fStartPanelOn: 1;
- BOOL fShowStartPage: 1;
- UINT fSpareFlags : 13;
- UINT :15; /* Required for proper binary layout with gcc */
+ LONG lParamSort;
+ int iSortDirection;
+ UINT version;
+ UINT uNotUsed;
+ BOOL fSepProcess: 1;
+ BOOL fStartPanelOn: 1;
+ BOOL fShowStartPage: 1;
+ UINT fSpareFlags : 13;
+ UINT :15; /* Required for proper binary layout with gcc */
} SHELLSTATE, *LPSHELLSTATE;
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet);
@@ -1713,7 +1713,7 @@ DWORD WINAPI SHRestricted(RESTRICTIONS rest);
*/
typedef struct _SHChangeNotifyEntry
{
- LPCITEMIDLIST pidl;
+ PCIDLIST_ABSOLUTE pidl;
BOOL fRecursive;
} SHChangeNotifyEntry;
@@ -1824,25 +1824,25 @@ typedef struct tagDATABLOCKHEADER
#ifdef LF_FACESIZE
typedef struct {
DATABLOCK_HEADER dbh;
- WORD wFillAttribute;
- WORD wPopupFillAttribute;
+ WORD wFillAttribute;
+ WORD wPopupFillAttribute;
COORD dwScreenBufferSize;
COORD dwWindowSize;
COORD dwWindowOrigin;
DWORD nFont;
DWORD nInputBufferSize;
COORD dwFontSize;
- UINT uFontFamily;
- UINT uFontWeight;
+ UINT uFontFamily;
+ UINT uFontWeight;
WCHAR FaceName[LF_FACESIZE];
- UINT uCursorSize;
- BOOL bFullScreen;
- BOOL bQuickEdit;
- BOOL bInsertMode;
- BOOL bAutoPosition;
- UINT uHistoryBufferSize;
- UINT uNumberOfHistoryBuffers;
- BOOL bHistoryNoDup;
+ UINT uCursorSize;
+ BOOL bFullScreen;
+ BOOL bQuickEdit;
+ BOOL bInsertMode;
+ BOOL bAutoPosition;
+ UINT uHistoryBufferSize;
+ UINT uNumberOfHistoryBuffers;
+ BOOL bHistoryNoDup;
COLORREF ColorTable[16];
} NT_CONSOLE_PROPS, *LPNT_CONSOLE_PROPS;
#endif
@@ -1875,7 +1875,7 @@ typedef struct {
typedef struct {
DWORD cbSize;
DWORD dwSignature;
- BYTE abPropertyStorage[1];
+ BYTE abPropertyStorage[1];
} EXP_PROPERTYSTORAGE;
#define EXP_SZ_LINK_SIG 0xA0000001 /* EXP_SZ_LINK */
@@ -1919,7 +1919,7 @@ WINAPI
SHChangeNotification_Lock(
_In_ HANDLE hChangeNotification,
DWORD dwProcessId,
- _Outptr_opt_result_buffer_(2)_Outptr_opt_result_buffer_(2) LPITEMIDLIST **pppidl,
+ _Outptr_opt_result_buffer_(2)_Outptr_opt_result_buffer_(2) PIDLIST_ABSOLUTE **pppidl,
_Out_opt_ LONG *plEvent);
BOOL WINAPI SHChangeNotification_Unlock(_In_ HANDLE hLock);
@@ -1928,8 +1928,8 @@ HRESULT
WINAPI
SHGetRealIDL(
_In_ IShellFolder *psf,
- _In_ LPCITEMIDLIST pidlSimple,
- _Outptr_ LPITEMIDLIST * ppidlReal);
+ _In_ PCUITEMID_CHILD pidlSimple,
+ _Outptr_ PITEMID_CHILD * ppidlReal);
/****************************************************************************
* SHCreateDirectory API
@@ -1961,7 +1961,7 @@ WINAPI
SHGetSpecialFolderLocation(
_Reserved_ HWND hwndOwner,
_In_ int nFolder,
- _Outptr_ LPITEMIDLIST *ppidl);
+ _Outptr_ PIDLIST_ABSOLUTE *ppidl);
HRESULT
WINAPI
@@ -1970,7 +1970,7 @@ SHGetFolderLocation(
_In_ int nFolder,
_In_opt_ HANDLE hToken,
_In_ DWORD dwReserved,
- _Outptr_ LPITEMIDLIST *ppidl);
+ _Outptr_ PIDLIST_ABSOLUTE *ppidl);
/****************************************************************************
* SHGetFolderPath API
@@ -2077,10 +2077,10 @@ _Check_return_ HRESULT WINAPI SHGetDesktopFolder(_Outptr_
IShellFolder * *);
HRESULT
WINAPI
SHBindToParent(
- _In_ LPCITEMIDLIST pidl,
+ _In_ PCIDLIST_ABSOLUTE pidl,
_In_ REFIID riid,
_Outptr_ LPVOID *ppv,
- _Outptr_opt_ LPCITEMIDLIST *ppidlLast);
+ _Outptr_opt_ PCUITEMID_CHILD *ppidlLast);
/****************************************************************************
* SHDefExtractIcon API
@@ -2289,25 +2289,25 @@ SHDoDragDrop(
#define PID_IS_COMMENT 13
-LPITEMIDLIST WINAPI ILAppendID(_In_opt_ LPITEMIDLIST, _In_ LPCSHITEMID, BOOL);
-LPITEMIDLIST WINAPI ILClone(_In_ LPCITEMIDLIST);
-LPITEMIDLIST WINAPI ILCloneFirst(_In_ LPCITEMIDLIST);
-LPITEMIDLIST WINAPI ILCreateFromPathA(_In_ LPCSTR);
-LPITEMIDLIST WINAPI ILCreateFromPathW(_In_ LPCWSTR);
+PIDLIST_RELATIVE WINAPI ILAppendID(_In_opt_ PIDLIST_RELATIVE, _In_ LPCSHITEMID, BOOL);
+PIDLIST_RELATIVE WINAPI ILClone(_In_ PCUIDLIST_RELATIVE);
+PITEMID_CHILD WINAPI ILCloneFirst(_In_ PCUIDLIST_RELATIVE);
+PIDLIST_ABSOLUTE WINAPI ILCreateFromPathA(_In_ PCSTR);
+PIDLIST_ABSOLUTE WINAPI ILCreateFromPathW(_In_ PCWSTR);
#define ILCreateFromPath WINELIB_NAME_AW(ILCreateFromPath)
-LPITEMIDLIST WINAPI ILCombine(_In_opt_ LPCITEMIDLIST, _In_opt_ LPCITEMIDLIST);
-LPITEMIDLIST WINAPI ILFindChild(_In_ LPCITEMIDLIST, _In_ LPCITEMIDLIST);
-LPITEMIDLIST WINAPI ILFindLastID(_In_ LPCITEMIDLIST);
-void WINAPI ILFree(_In_opt_ LPITEMIDLIST);
-LPITEMIDLIST WINAPI ILGetNext(_In_opt_ LPCITEMIDLIST);
-UINT WINAPI ILGetSize(_In_opt_ LPCITEMIDLIST);
-BOOL WINAPI ILIsEqual(_In_ LPCITEMIDLIST, _In_ LPCITEMIDLIST);
-BOOL WINAPI ILIsParent(_In_ LPCITEMIDLIST, _In_ LPCITEMIDLIST, BOOL);
-HRESULT WINAPI ILLoadFromStream(_In_ LPSTREAM, _Inout_ LPITEMIDLIST*);
-BOOL WINAPI ILRemoveLastID(_Inout_opt_ LPITEMIDLIST);
-HRESULT WINAPI ILSaveToStream(_In_ LPSTREAM, _In_ LPCITEMIDLIST);
-
-static inline BOOL ILIsEmpty(_In_opt_ LPCITEMIDLIST pidl)
+PIDLIST_ABSOLUTE WINAPI ILCombine(_In_opt_ PCIDLIST_ABSOLUTE, _In_opt_
PCUIDLIST_RELATIVE);
+PUIDLIST_RELATIVE WINAPI ILFindChild(_In_ PIDLIST_ABSOLUTE, _In_ PCIDLIST_ABSOLUTE);
+PUITEMID_CHILD WINAPI ILFindLastID(_In_ PCUIDLIST_RELATIVE);
+void WINAPI ILFree(_In_opt_ PIDLIST_RELATIVE);
+PUIDLIST_RELATIVE WINAPI ILGetNext(_In_opt_ PCUIDLIST_RELATIVE);
+UINT WINAPI ILGetSize(_In_opt_ PCUIDLIST_RELATIVE);
+BOOL WINAPI ILIsEqual(_In_ PCIDLIST_ABSOLUTE, _In_ PCIDLIST_ABSOLUTE);
+BOOL WINAPI ILIsParent(_In_ PCIDLIST_ABSOLUTE, _In_ PCIDLIST_ABSOLUTE, BOOL);
+HRESULT WINAPI ILLoadFromStream(_In_ LPSTREAM, _Inout_ PIDLIST_RELATIVE*);
+BOOL WINAPI ILRemoveLastID(_Inout_opt_ PUIDLIST_RELATIVE);
+HRESULT WINAPI ILSaveToStream(_In_ LPSTREAM, _In_ PCUIDLIST_RELATIVE);
+
+static inline BOOL ILIsEmpty(_In_opt_ PCUIDLIST_RELATIVE pidl)
{
return !(pidl && pidl->mkid.cb);
}
diff --git a/sdk/include/psdk/shobjidl.idl b/sdk/include/psdk/shobjidl.idl
index a94f1a9f4c6..4d5d278dca0 100644
--- a/sdk/include/psdk/shobjidl.idl
+++ b/sdk/include/psdk/shobjidl.idl
@@ -102,7 +102,7 @@ interface IEnumIDList : IUnknown
HRESULT Next(
[in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt,
+ [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip( [in] ULONG celt );
@@ -764,7 +764,7 @@ interface IShellView : IOleWindow
HRESULT SaveViewState();
HRESULT SelectItem(
- [in] LPCITEMIDLIST pidlItem,
+ [in] PCUITEMID_CHILD pidlItem,
[in] SVSIF uFlags);
HRESULT GetItemObject(
[in] UINT uItem,
@@ -801,10 +801,10 @@ cpp_quote("#include <poppack.h>")
[in] LPSV2CVW2_PARAMS view_params
);
HRESULT HandleRename(
- [in] LPCITEMIDLIST new_pidl
+ [in] PCUITEMID_CHILD new_pidl
);
HRESULT SelectAndPositionItem(
- [in] LPCITEMIDLIST item,
+ [in] PCUITEMID_CHILD item,
[in] UINT flags,
[in] POINT *point
);
@@ -1079,7 +1079,7 @@ cpp_quote("#endif")
HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID );
HRESULT BrowseObject(
- [in] LPCITEMIDLIST pidl,
+ [in] PCUIDLIST_RELATIVE pidl,
[in] UINT wFlags);
HRESULT GetViewStateStream(
@@ -1307,7 +1307,7 @@ interface IPersistFolder3 : IPersistFolder2
{
typedef struct
{
- LPITEMIDLIST pidlTargetFolder;
+ PIDLIST_ABSOLUTE pidlTargetFolder;
WCHAR szTargetParsingName[MAX_PATH];
WCHAR szNetworkProvider[MAX_PATH];
DWORD dwAttributes;
@@ -1316,7 +1316,7 @@ interface IPersistFolder3 : IPersistFolder2
HRESULT InitializeEx(
[in] IBindCtx *pbc,
- [in] LPCITEMIDLIST pidlRoot,
+ [in] PCIDLIST_ABSOLUTE pidlRoot,
[in] const PERSIST_FOLDER_TARGET_INFO *ppfti);
HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti );
@@ -1416,7 +1416,7 @@ cpp_quote("#define CDBOSC_STATECHANGE 0x00000004")
HRESULT OnDefaultCommand( [in] IShellView *shv );
HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange );
- HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl );
+ HRESULT IncludeObject( [in] IShellView *shv, [in] PCUITEMID_CHILD pidl );
}
@@ -1988,8 +1988,8 @@ interface IShellChangeNotify : IUnknown
{
HRESULT OnChange(
[in] LONG lEvent,
- [in] LPCITEMIDLIST pidl1,
- [in] LPCITEMIDLIST pidl2);
+ [in] PCIDLIST_ABSOLUTE pidl1,
+ [in] PCIDLIST_ABSOLUTE pidl2);
}
cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind
Data\"")
@@ -2625,8 +2625,8 @@ typedef struct tagSMDATA
UINT uIdParent;
UINT uIdAncestor;
IUnknown *punk;
- LPITEMIDLIST pidlFolder;
- LPITEMIDLIST pidlItem;
+ PIDLIST_ABSOLUTE pidlFolder;
+ PUITEMID_CHILD pidlItem;
IShellFolder *psf;
void *pvUserData;
} SMDATA, *LPSMDATA;
@@ -2646,8 +2646,8 @@ typedef struct tagSMINFO
typedef struct tagSHCSCHANGENOTIFYSTRUCT
{
LONG lEvent;
- LPCITEMIDLIST pidl1;
- LPCITEMIDLIST pidl2;
+ PCIDLIST_ABSOLUTE pidl1;
+ PCIDLIST_ABSOLUTE pidl2;
} SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT;
cpp_quote("#include <poppack.h>")
@@ -2762,13 +2762,13 @@ interface IShellMenu : IUnknown
HRESULT SetShellFolder(
[in] IShellFolder *psf,
- [in] LPCITEMIDLIST pidlFolder,
+ [in] PCIDLIST_ABSOLUTE pidlFolder,
[in] HKEY hKey,
[in] DWORD dwFlags);
HRESULT GetShellFolder(
[out] DWORD *pdwFlags,
- [out] LPITEMIDLIST *ppidl,
+ [out] PIDLIST_ABSOLUTE *ppidl,
[in] REFIID riid,
[out] void **ppv);