« ■TMS Advanced ToolBars & Menusアップデート | トップページ | ☆Docuworksプラグインを作成してみる。 »

☆特殊フォルダのパス名を取得する。

SHGetFolderPathを使って特殊フォルダのパス名を取得してみます。
この関数は、SHFolder名前空間に定義されていますが、なぜか第4パラメーターdwFlagsのフラグが定義されていません。 又、SHFolder.dllからの呼び出しになっていますが、MSDNによると現在は、shell32.dllで実装されているとのことです。 但し、下位互換のためSHFolder.dllは含まれているとのことで特に問題はなさそうです。

下記のコードでMy Documentsフォルダが取得できました。
uses SHFolder;

const
  // dwFlags用フラグ
  SHGFP_TYPE_CURRENT = 0;
  SHGFP_TYPE_DEFAULT = 1;

procedure TForm1.Button1Click(Sender: TObject);
var
  Path: String;
begin
  SetLength(Path, MAX_PATH);
  if Succeeded(SHGetFolderPath(0, CSIDL_PERSONAL, 0,
    SHGFP_TYPE_CURRENT,PChar(Path))) then
  begin
    SetLength(Path, Pred(Pos(#0, Path)));
    ShowMessage(Path);
  end;
end;



MSDN
SHGetFolderPath Function
http://msdn2.microsoft.com/en-us/library/bb762181.aspx

|

« ■TMS Advanced ToolBars & Menusアップデート | トップページ | ☆Docuworksプラグインを作成してみる。 »