Access violation when using IShellFolder2
John Chapman
johnch_atms at hotmail.com
Thu Sep 10 06:43:35 UTC 2020
On Wednesday, 9 September 2020 at 22:44:50 UTC, FreeSlave wrote:
> 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.
You could look at passing the str.pOleStr field in the
SHELLDETAILS you got from GetDetailsOf to VarDateFromStr. It will
give you a DATE value that VariantTimeToSystemTime will convert
to a SYSTEMTIME from which you can get the years, months, days
etc.
For example:
SHELLDETAILS details;
GetDetailsOf(pidl, 3, &details);
DATE date;
VarDateFromStr(details.str.pOleStr, LOCALE_USER_DEFAULT, 0,
&date);
SYSTEMTIME st;
VariantTimeToSystemTime(date, &st);
auto year = st.wYear;
auto month = st.wMonth;
You can convert that into a more D-friendly SysTime object using
SYSTEMTIMEToSysTime from the std.datetime package.
More information about the Digitalmars-d-learn
mailing list