Pierwszy parametr - czyli hwndOwner jest według dokumentacji zarezerwowany;
Argument lpszPath przyjmuje pobraną ścieżkę, o ile system taką określi (funkcja może zwrócić w rezultacie False, jeśli nie uda się określić ścieżki); Jest to parametr zwrotny - w nim należy podać zmienną, z reguły stosuje się tablicę znaków o długości MAX_PATH
(Edit: lub 255
wpisane na sztywno, choć MAX_PATH
przyjmuje wartość 260
);
csidl przyjmuje jeden z numerów odpowiednich dla danej lokalizacji, np. CSIDL_PROGRAM_FILES
(katalog Program Files
, w zależności od systemu lub bitowości aplikacji), czy CSIDL_LOCAL_APP_DATA
, jako ścieżka do katalogu z ustawieniami lokalnymi (te dwie używam sam, więc podaję jako przykład);
fCreate przyjmuje wartość logiczną, określającą, czy funkcja ma utworzyć katalog, jeżeli katalog ten nie istnieje; Tu zazwyczaj podaje się False, bo przyjmuje się za pewnik, że systemowe katalogi zawsze istnieją;
Przy okazji - funkcja ta pozostawiona jest dla wstecznej kompatybilności; W nowszych systemach niż WinXP, zaleca się używanie jej nowszej wersji, czyli SHGetKnownFolderPath; Jeżeli piszesz aplikację, która ma także działać na WinXP i starszych - użyj tej o którą pytasz; W przeciwnym razie skorzystaj z SHGetKnownFolderPath
.