16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:長いファイル名(フルパス)を取得5?"
この発言は #01188 Fermion さんの長いファイル名(フルパス)を取得5? に対するコメントです
dwAttributes の初期化を忘れていました。m(_"_)m
{**************************************************************************
Short path --> Long path Function
//************************************************************************}
function GetLongPath( ShortPath: WideString ): String;
var
pIMalloc : IMalloc;
pIShFDskTp : IShellFolder;
pidl : PItemIDList;
pchEaten,
dwAttributes: Cardinal;
Buffer : array[0..MAX_PATH] of Char;
begin
Result := ShortPath;
OleCheck( SHGetDeskTopFolder( pIShFDskTp ));
try
pchEaten := 0; dwAttributes := 0; // ← 追加して下さい。
OleCheck( pIShFDskTp.ParseDisplayName( 0, nil, PWideChar(ShortPath),
pchEaten, pidl, dwAttributes ));
try
if SHGetPathFromIDList( pidl, Buffer ) then Result := Buffer;
finally
OleCheck( CoGetMalloc( MEMCTX_TASK, pIMalloc ));
pIMalloc.Free( pidl );
// pIMalloc._Release;
end;{try..finally..}
finally
// pIShFDskTp._Release;
end;
end;
{*************************************************************************}
01/03/18(Sun) 01:45pm Fermion [KHF03264]
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/03/19 -
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|