mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 15:50:26 +02:00
* some enhancements to shlobj
git-svn-id: trunk@10123 -
This commit is contained in:
parent
d808830304
commit
1917253073
@ -21,15 +21,88 @@ unit shlobj;
|
||||
uses
|
||||
windows,activex,shellapi;
|
||||
|
||||
type
|
||||
IEnumIDList = interface(IUnknown)
|
||||
Const
|
||||
IID_IShellFolder : TGUID ='{000214E6-0000-0000-C000-000000000046}';
|
||||
IID_IEnumList : TGUID ='{000214F2-0000-0000-C000-000000000046}';
|
||||
IID_IAutoComplete : TGUID ='{00bb2762-6a77-11d0-a535-00c04fd7d062}';
|
||||
IID_IAutoComplete2 : TGUID ='{EAC04BC0-3791-11d2-BB95-0060977B464C}';
|
||||
IID_IContextMenu : TGUID ='{000214E4-0000-0000-c000-000000000046}';
|
||||
IID_IContextMenu2 : TGUID ='{000214f4-0000-0000-c000-000000000046}';
|
||||
IID_IContextMenu3 : TGUID ='{bcfce0a0-ec17-11d0-8d10-00a0c90f2719}';
|
||||
IID_IPersistFolder : TGUID ='{000214EA-0000-0000-C000-000000000046}';
|
||||
IID_IPersistFolder2 : TGUID ='{1AC3D9F0-175C-11d1-95BE-00609797EA4F}';
|
||||
IID_IPersistIDListr : TGUID ='{1079acfc-29bd-11d3-8e0d-00c04f6837d5}';
|
||||
IID_IEnumExtraSearch: TGUID ='{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}';
|
||||
IID_IShellFolder2 : TGUID ='{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}';
|
||||
|
||||
Type
|
||||
_SHELLDETAILS = record
|
||||
fmt,
|
||||
cxChar : longint;
|
||||
str : TSTRRET;
|
||||
end;
|
||||
TShellDetails = _SHELLDETAILS;
|
||||
SHELLDETAILS = _SHELLDETAILS;
|
||||
PShellDetails = ^TShellDetails;
|
||||
LPSHELLDETAILS = PSHELLDETAILS;
|
||||
|
||||
TShellDetailsEx = record
|
||||
Index: UINT;
|
||||
Detail: TShellDetails;
|
||||
end;
|
||||
tagEXTRASEARCH = packed record
|
||||
guidSearch : TGUID;
|
||||
wszFriendlyName : array[0..80-1] of WideChar;
|
||||
wszUrl : array[0..2084-1] of WideChar;
|
||||
end;
|
||||
EXTRASEARCH = TagEXTRASEARCH;
|
||||
TEXTRASEARCH = TagEXTRASEARCH;
|
||||
LPEXTRASEARCH = ^EXTRASEARCH;
|
||||
PEXTRASEARCH = ^EXTRASEARCH;
|
||||
|
||||
SHCOLSTATEF = DWORD;
|
||||
PSHCOLSTATEF = ^SHCOLSTATEF;
|
||||
TSHCOLSTATEF = SHCOLSTATEF;
|
||||
|
||||
SHColumnID = packed record
|
||||
fmtid : TGUID;
|
||||
pid : DWORD;
|
||||
end;
|
||||
LPSHColumnID = SHColumnID;
|
||||
TSHColumnid = SHColumnID;
|
||||
pSHColumnID = LPSHColumnID;
|
||||
|
||||
IPersistFolder = Interface(IPersist)
|
||||
['{000214EA-0000-0000-C000-000000000046}']
|
||||
function Initialize (pild : LPCITEMIDLIST): HResult; StdCall;
|
||||
end;
|
||||
|
||||
IPersistFolder2 = Interface(IPersistFolder)
|
||||
['{1AC3D9F0-175C-11d1-95BE-00609797EA4F}']
|
||||
function GetCurFolder(Out ppidl : LPITEMIDLIST):HResult; StdCall;
|
||||
end;
|
||||
|
||||
IPersistIDList = Interface(IPersist)
|
||||
['{1079acfc-29bd-11d3-8e0d-00c04f6837d5}']
|
||||
function SetIdList(pid:LPCITEMIDLIST):HResult;StdCall;
|
||||
function GetIdList(out pid:LPCITEMIDLIST):HResult;StdCall;
|
||||
end;
|
||||
|
||||
IEnumIDList = interface(IUnknown)
|
||||
['{000214F2-0000-0000-C000-000000000046}']
|
||||
function Next(celt: ULONG; out rgelt: PItemIDList; var pceltFetched: ULONG): HRESULT; stdcall;
|
||||
function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
|
||||
function Clone(out ppenum: IEnumIDList): HRESULT; stdcall;
|
||||
end;
|
||||
|
||||
IShellFolder = interface(IUnknown)
|
||||
IEnumExtraSearch = Interface(IUnknown)
|
||||
['{0E700BE1-9DB6-11d1-A1CE-00C04FD75D13}']
|
||||
function Next(celt: ULONG; out rgelt: EXTRASEARCH; var pceltFetched: ULONG): HRESULT; stdcall;
|
||||
function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
|
||||
function Clone(out ppenum: IEnumExtraSearch): HRESULT; stdcall;
|
||||
end;
|
||||
|
||||
IShellFolder = interface(IUnknown)
|
||||
['{000214E6-0000-0000-C000-000000000046}']
|
||||
function ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HRESULT; stdcall;
|
||||
function EnumObjects(hwndOwner: HWND; grfFlags: DWORD; out EnumIDList: IEnumIDList): HRESULT; stdcall;
|
||||
@ -43,7 +116,18 @@ unit shlobj;
|
||||
function SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr; uFlags: DWORD; var ppidlOut: PItemIDList): HRESULT; stdcall;
|
||||
end;
|
||||
|
||||
IAutoComplete = interface(IUnknown)
|
||||
IShellFolder2 = interface(IShellFolder)
|
||||
['{93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}']
|
||||
function GetDefaultSearchGUID(out guid:TGUID):HResult;StdCall;
|
||||
function EnumSearches(out ppenum:IEnumExtraSearch):HResult;StdCall;
|
||||
function GetDefaultColumn(dwres:DWORD;psort :pulong; pdisplay:pulong):HResult;StdCall;
|
||||
function GetDefaultColumnStart(icolumn:UINT;pscflag:PSHCOLSTATEF):HResult;StdCall;
|
||||
function GetDetailsEx(pidl:LPCITEMIDLIST;pscid:PSHCOLUMNID; pv : pOLEvariant):HResult;StdCall;
|
||||
function GetDetailsOf(pidl:LPCITEMIDLIST;iColumn:UINT;psd:PSHELLDETAILS):HResult;StdCall;
|
||||
function MapColumnToSCID(iColumn:UINT;pscid:PSHCOLUMNID):HResult;StdCall;
|
||||
end;
|
||||
|
||||
IAutoComplete = interface(IUnknown)
|
||||
['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
|
||||
function Init(hwndEdit: HWND; punkACL: IUnknown; pwszRegKeyPath: LPCWSTR; pwszQuickComplete: LPCWSTR): HRESULT; stdcall;
|
||||
function Enable(fEnable: BOOL): HRESULT; stdcall;
|
||||
@ -87,7 +171,7 @@ unit shlobj;
|
||||
IContextMenu = interface(IUnknown)
|
||||
['{000214E4-0000-0000-c000-000000000046}']
|
||||
function QueryContextMenu(hmenu:HMENU;indexMenu:UINT;idCmdFirst:UINT;idCmdLast:UINT;UFlags:uint):HRESULT;StdCall;
|
||||
function InvokeCommand(lpici : LPCMINVOKECOMMANDINFO):HResult; StdCall;
|
||||
function InvokeCommand(var lpici : TCMINVOKECOMMANDINFO):HResult; StdCall;
|
||||
function GetCommandString(idcmd:UINT_Ptr;uType:UINT;pwreserved:puint;pszName:LPStr;cchMax:uint):HResult;StdCall;
|
||||
end;
|
||||
IContextMenu2 = interface(IContextMenu)
|
||||
|
Loading…
Reference in New Issue
Block a user