On Wednesday, 9 September 2020 at 07:18:04 UTC, John Chapman
wrote:
On Tuesday, 8 September 2020 at 22:24:22 UTC, FreeSlave wrote:
However if I change the type of recycleBin variable to
IShellFolder (not IShellFolder2), the crash does not happen.
Does IShellFolder2 require some special handling?
The issue is caused by druntime's definition of IShellFolder2.
To fix it temporarily, just redefine it in your module
somewhere:
interface IShellFolder2 : IShellFolder {
HRESULT GetDefaultSearchGUID(GUID*);
HRESULT EnumSearches(IEnumExtraSearch*);
HRESULT GetDefaultColumn(DWORD, ULONG*, ULONG*);
HRESULT GetDefaultColumnState(UINT, SHCOLSTATEF*);
HRESULT GetDetailsEx(LPCITEMIDLIST, const(SHCOLUMNID)*,
VARIANT*);
HRESULT GetDetailsOf(LPCITEMIDLIST, UINT, SHELLDETAILS*);
HRESULT MapColumnToSCID(UINT, SHCOLUMNID*);
}
IShellFolder2 isn't the only culprit - IShellView2 will need
fixing too if you intend to use it. There are probably others
as well.
Redefinition did the trick, thank you.
Btw do you know how to parse a date returned by GetDetailsOf?
Couldn't find any examples in C++. I actually can see digits
representing date and time as a part of the string, but I would
prefer to use some winapi function to translate it into some time
type instead of manually parsing the result.