* some enhancements to shlobj

git-svn-id: trunk@10123 -
This commit is contained in:
marco 2008-01-31 11:30:10 +00:00
parent d808830304
commit 1917253073

View File

@ -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)