mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
FIX: Show file names with extension
This commit is contained in:
parent
9bb276ea1f
commit
b91de2796c
4 changed files with 31 additions and 15 deletions
|
|
@ -97,7 +97,7 @@ begin
|
|||
OleCheck(SHGetDesktopFolder(FDesktopFolder));
|
||||
OleCheck(SHGetFolderLocation(0, CSIDL_DRIVES, 0, 0, {%H-}FDrives));
|
||||
OleCheck(FDesktopFolder.BindToObject(FDrives, nil, IID_IShellFolder2, Pointer(FRootFolder)));
|
||||
FRootPath := GetDisplayName(FDesktopFolder, FDrives, SHGDN_NORMAL);
|
||||
FRootPath := GetDisplayName(FDesktopFolder, FDrives, SHGDN_INFOLDER);
|
||||
FOperationsClasses[fsoMove] := TShellMoveOperation.GetOperationClass;
|
||||
FOperationsClasses[fsoCopy] := TShellCopyOperation.GetOperationClass;
|
||||
FOperationsClasses[fsoCopyIn] := TShellCopyInOperation.GetOperationClass;
|
||||
|
|
@ -142,7 +142,7 @@ var
|
|||
begin
|
||||
OleCheckUTF8(SHGetDesktopFolder(DesktopFolder));
|
||||
OleCheckUTF8(SHGetFolderLocation(0, CSIDL_DRIVES, 0, 0, {%H-}DrivesPIDL));
|
||||
Result:= GetDisplayName(DesktopFolder, DrivesPIDL, SHGDN_NORMAL);
|
||||
Result:= GetDisplayName(DesktopFolder, DrivesPIDL, SHGDN_INFOLDER);
|
||||
end;
|
||||
|
||||
function TShellFileSource.FindObject(const AObject: String; out
|
||||
|
|
@ -186,7 +186,7 @@ begin
|
|||
begin
|
||||
while EnumIDList.Next(1, PIDL, NumIDs) = S_OK do
|
||||
begin
|
||||
AItemName:= GetDisplayName(AParent, PIDL, SHGDN_NORMAL);
|
||||
AItemName:= GetDisplayNameEx(AParent, PIDL, SHGDN_INFOLDER);
|
||||
if AName = AItemName then
|
||||
begin
|
||||
AValue:= PIDL;
|
||||
|
|
@ -215,7 +215,7 @@ function TShellFileSource.FindFolder(const Path: String; out
|
|||
begin
|
||||
while EnumIDList.Next(1, PIDL, NumIDs) = S_OK do
|
||||
try
|
||||
AName:= GetDisplayName(AFolder, PIDL, SHGDN_NORMAL);
|
||||
AName:= GetDisplayNameEx(AFolder, PIDL, SHGDN_INFOLDER);
|
||||
|
||||
if AName = AObject then
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -10,15 +10,6 @@ uses
|
|||
uShellFolder, uShellFileOperation, uFileSourceCopyOperation,
|
||||
uFileSourceDeleteOperation, uFileSourceSetFilePropertyOperation, uGlobs, uLog;
|
||||
|
||||
const
|
||||
SID_SYSTEM = '{B725F130-47EF-101A-A5F1-02608C9EEBAC}';
|
||||
SCID_FileSize: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 12 );
|
||||
SCID_DateModified: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 14 );
|
||||
SCID_DateCreated: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 15 );
|
||||
|
||||
SID_COMPUTER = '{9B174B35-40FF-11D2-A27E-00C04FC30871}';
|
||||
SCID_Capacity: TSHColumnID = ( fmtid: SID_COMPUTER; pid: 3 );
|
||||
|
||||
type
|
||||
|
||||
{ TItemList }
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ begin
|
|||
|
||||
aFile:= TShellFileSource.CreateFile(Path);
|
||||
|
||||
AFile.Name:= GetDisplayName(AFolder, PIDL, SHGDN_INFOLDER);
|
||||
AFile.Name:= GetDisplayNameEx(AFolder, PIDL, SHGDN_INFOLDER);
|
||||
AFile.LinkProperty.LinkTo:= GetDisplayName(AFolder, PIDL, SHGDN_FORPARSING);
|
||||
|
||||
rgfInOut:= SFGAO_HIDDEN or SFGAO_FOLDER;
|
||||
|
|
|
|||
|
|
@ -7,6 +7,18 @@ interface
|
|||
uses
|
||||
Classes, SysUtils, Windows, ShlObj, ActiveX, ComObj, ShlWapi, uShlObjAdditional;
|
||||
|
||||
const
|
||||
SID_SYSTEM = '{B725F130-47EF-101A-A5F1-02608C9EEBAC}';
|
||||
SCID_FileSize: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 12 );
|
||||
SCID_DateModified: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 14 );
|
||||
SCID_DateCreated: TSHColumnID = ( fmtid: SID_SYSTEM; pid: 15 );
|
||||
|
||||
SID_NAME = '{41CF5AE0-F75A-4806-BD87-59C7D9248EB9}';
|
||||
SCID_FileName: TSHColumnID = ( fmtid: SID_NAME; pid: 100 );
|
||||
|
||||
SID_COMPUTER = '{9B174B35-40FF-11D2-A27E-00C04FC30871}';
|
||||
SCID_Capacity: TSHColumnID = ( fmtid: SID_COMPUTER; pid: 3 );
|
||||
|
||||
const
|
||||
FOLDERID_AccountPictures: TGUID = '{008ca0b1-55b4-4c56-b8a8-4de4b299d3be}';
|
||||
FOLDERID_ApplicationShortcuts: TGUID = '{A3918781-E5F2-4890-B3D9-A7E54332328C}';
|
||||
|
|
@ -100,6 +112,7 @@ function MultiFileProperties(pdtobj: IDataObject; dwFlags: DWORD): HRESULT;
|
|||
|
||||
function GetIsFolder(AParent: IShellFolder; PIDL: PItemIDList): Boolean;
|
||||
function GetDisplayName(AFolder: IShellFolder; PIDL: PItemIDList; Flags: DWORD): String;
|
||||
function GetDisplayNameEx(AFolder: IShellFolder2; PIDL: PItemIDList; Flags: DWORD): String;
|
||||
function GetDetails(AFolder: IShellFolder2; PIDL: PItemIDList; const pscid: SHCOLUMNID): OleVariant;
|
||||
|
||||
function CreateDefaultContextMenu(constref pdcm: TDefContextMenu; const riid: REFIID; out ppv): HRESULT;
|
||||
|
|
@ -107,7 +120,7 @@ function CreateDefaultContextMenu(constref pdcm: TDefContextMenu; const riid: RE
|
|||
implementation
|
||||
|
||||
uses
|
||||
ShellApi, LazUTF8, DCConvertEncoding;
|
||||
Variants, ShellApi, LazUTF8, DCConvertEncoding;
|
||||
|
||||
const
|
||||
KF_FLAG_DEFAULT = $00000000;
|
||||
|
|
@ -154,6 +167,18 @@ begin
|
|||
Result := GetDisplayName(AFolder, PIDL, SHGDN_NORMAL);
|
||||
end;
|
||||
|
||||
function GetDisplayNameEx(AFolder: IShellFolder2; PIDL: PItemIDList; Flags: DWORD): String;
|
||||
var
|
||||
AValue: OleVariant;
|
||||
begin
|
||||
AValue:= GetDetails(AFolder, PIDL, SCID_FileName);
|
||||
if VarIsStr(AValue) then
|
||||
Result:= AValue
|
||||
else begin
|
||||
Result:= GetDisplayName(AFolder, PIDL, Flags);
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetDetails(AFolder: IShellFolder2; PIDL: PItemIDList; const pscid: SHCOLUMNID): OleVariant;
|
||||
var
|
||||
AValue: OleVariant;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue