On Tuesday, 16 June 2015 at 12:42:16 UTC, C2D wrote:
On Tuesday, 16 June 2015 at 12:31:23 UTC, John Chapman wrote:
On Tuesday, 16 June 2015 at 12:26:45 UTC, C2D wrote:
BOOL result = SHGetFolderPath(null, 0x23, null, 0, cache.ptr);

That should be:

BOOL result = SHGetFolderPath(null, 0x23, null, 0, buf.ptr);

Thanks, but I'm still getting the same error -

Here's a working version:

import core.sys.windows.windows;

extern(Windows)
HRESULT SHGetFolderPathW(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath);

string getFolderPath(int folder) {
  import core.stdc.wchar_ : wcslen;
  import std.utf : toUTF8;

  wchar[MAX_PATH] buffer;
  if (SHGetFolderPathW(null, folder, null, 0, buffer.ptr) >= 0)
    return buffer[0 .. wcslen(buffer.ptr)].toUTF8();
  return null;
}

void main() {
  writeln(getFolderPath(0x23));
}

Reply via email to