diff options
author | George Hazan <george.hazan@gmail.com> | 2013-03-01 16:51:48 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-03-01 16:51:48 +0000 |
commit | 779136b83154801010b848fadc2fce4011ecd16d (patch) | |
tree | 1ff4931ece25817b3b1518d93532c05298287588 /plugins/Utils.pas | |
parent | 15858ed4002eabbe921dc56c8bbfbf7a639c48cb (diff) |
minor optimization for pascal
git-svn-id: http://svn.miranda-ng.org/main/trunk@3821 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Utils.pas')
-rw-r--r-- | plugins/Utils.pas/mComObj.pas | 209 | ||||
-rw-r--r-- | plugins/Utils.pas/shlobj.pp | 186 |
2 files changed, 302 insertions, 93 deletions
diff --git a/plugins/Utils.pas/mComObj.pas b/plugins/Utils.pas/mComObj.pas new file mode 100644 index 0000000000..9b435ebc5c --- /dev/null +++ b/plugins/Utils.pas/mComObj.pas @@ -0,0 +1,209 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2006 by Florian Klaempfl + member of the Free Pascal development team. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} +{$mode objfpc} +{$H+} +{$inline on} +unit mcomobj; + + interface + +{ $define DEBUG_COM} + + uses + Windows,Sysutils,classes; + + const + CLSCTX_INPROC_SERVER = $0001; // server dll (runs in same process as caller) + CLSCTX_INPROC_HANDLER = $0002; // handler dll (runs in same process as caller) + CLSCTX_LOCAL_SERVER = $0004; // server exe (runs on same machine; diff proc) + CLSCTX_INPROC_SERVER16 = $0008; // 16-bit server dll (runs in same process as caller) + CLSCTX_REMOTE_SERVER = $0010; // remote server exe (runs on different machine) + CLSCTX_INPROC_HANDLER16 = $0020; // 16-bit handler dll (runs in same process as caller) + CLSCTX_INPROC_SERVERX86 = $0040; // Wx86 server dll (runs in same process as caller) + CLSCTX_INPROC_HANDLERX86 = $0080; // Wx86 handler dll (runs in same process as caller) + CLSCTX_ESERVER_HANDLER = $0100; // handler dll (runs in the server process) + CLSCTX_RESERVED =$0200; // reserved + CLSCTX_NO_CODE_DOWNLOAD = $0400; // disallow code download from the Directory Service (if any) or the internet -rahulth + CLSCTX_NO_WX86_TRANSLATION = $0800; + CLSCTX_NO_CUSTOM_MARSHAL = $1000; + CLSCTX_ENABLE_CODE_DOWNLOAD = $2000; // allow code download from the Directory Service (if any) or the internet + CLSCTX_NO_FAILURE_LOG = $04000; // do not log messages about activation failure (should one occur) to Event Log + CLSCTX_DISABLE_AAA = $08000; // Disable EOAC_DISABLE_AAA capability for this activation only + CLSCTX_ENABLE_AAA = $10000; // Enable EOAC_DISABLE_AAA capability for this activation only + CLSCTX_FROM_DEFAULT_CONTEXT = $20000; // Begin this activation from the default context of the current apartment + CLSCTX_INPROC = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER); + CLSCTX_ALL = (CLSCTX_INPROC_SERVER OR CLSCTX_INPROC_HANDLER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif}); + CLSCTX_SERVER = (CLSCTX_INPROC_SERVER OR CLSCTX_LOCAL_SERVER {$ifdef Remote} OR CLSCTX_REMOTE_SERVER {$endif}); + + MEMCTX_TASK = 1; // task (private) memory + MEMCTX_SHARED = 2; // shared memory (between processes) + MEMCTX_MACSYSTEM = 3; // on the mac, the system heap + // these are mostly for internal use... + MEMCTX_UNKNOWN = -1; // unknown context (when asked about it) + MEMCTX_SAME = -2; // same context (as some other pointer) + + type + TOleChar = WideChar; + POleStr = PWideChar; + PPOleStr = ^POleStr; + + OleChar = WChar; + LPOLESTR = ^OLECHAR; + POLECHAR = LPOLESTR; + PLPOLESTR = ^LPOLESTR; + TClassInstancing = (ciInternal, ciSingleInstance, ciMultiInstance); + TThreadingModel = (tmSingle, tmApartment, tmFree, tmBoth, tmNeutral); + + function CreateComObject(const ClassID: TGUID) : IUnknown; + function CreateOleObject(const ClassName : string) : IDispatch; + function GetActiveOleObject(const ClassName: string) : IDispatch; + + procedure OleCheck(Value : HResult);inline; + procedure OleError(Code: HResult); + + function ProgIDToClassID(const id : string) : TGUID; + function ClassIDToProgID(const classID: TGUID): string; + + type + TCoInitializeExProc = function (pvReserved: Pointer; + coInit: DWORD): HResult; stdcall; + TCoAddRefServerProcessProc = function : ULONG; stdcall; + TCoReleaseServerProcessProc = function : ULONG; stdcall; + TCoResumeClassObjectsProc = function : HResult; stdcall; + TCoSuspendClassObjectsProc = function : HResult; stdcall; + + _COSERVERINFO = Record + dwReserved1 : DWord; + pwszName : LPWSTR; + pAuthInfo : Pointer; + dwReserved2 : DWord; + end; + TCOSERVERINFO = _COSERVERINFO; + PCOSERVERINFO = ^TCOSERVERINFO; + + IMalloc = Interface(IUnknown) + ['{00000002-0000-0000-C000-000000000046}'] + Function Alloc(cb :size_t):Pointer; Stdcall; + Function Realloc (pv :pointer;cb:size_t):Pointer;stdcall; + Procedure Free({[in]} pv: pointer); Stdcall; + Function GetSize(pv:pointer):size_t;stdcall; + Function DidAlloc(pv:pointer):Longint;stdcall; + procedure HeapMinimize; stdcall; + End; + + const + CoInitializeEx : TCoInitializeExProc = nil; + CoAddRefServerProcess : TCoAddRefServerProcessProc = nil; + CoReleaseServerProcess : TCoReleaseServerProcessProc = nil; + CoResumeClassObjects : TCoResumeClassObjectsProc = nil; + CoSuspendClassObjects : TCoSuspendClassObjectsProc = nil; + CoInitFlags : Longint = -1; + + function CLSIDFromProgID(_para1:POLESTR; _para2:LPCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID'; + function CLSIDFromProgID(_para1:POLESTR; out _para2:TCLSID):HRESULT;stdcall; external 'ole32.dll' name 'CLSIDFromProgID'; + function CoInitialize(_para1:PVOID):HRESULT;stdcall; external 'ole32.dll' name 'CoInitialize'; + function CoCreateInstance(const _para1:TCLSID; _para2:IUnknown; _para3:DWORD;const _para4:TIID;out _para5):HRESULT;stdcall; external 'ole32.dll' name 'CoCreateInstance'; + function GetActiveObject(const clsid: TCLSID; pvReserved: Pointer; out unk: IUnknown) : HResult; stdcall; external 'oleaut32.dll' name 'GetActiveObject'; + function ProgIDFromCLSID(para:PCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID'; + function ProgIDFromCLSID(const _para1:TCLSID; out _para2:POLESTR):HRESULT;stdcall; external 'ole32.dll' name 'ProgIDFromCLSID'; + procedure CoTaskMemFree(_para1:PVOID);stdcall; external 'ole32.dll' name 'CoTaskMemFree'; + function CoGetMalloc(_para1:DWORD; out _para2:IMalloc):HRESULT;stdcall; external 'ole32.dll' name 'CoGetMalloc'; + procedure CoUninitialize;stdcall; external 'ole32.dll' name 'CoUninitialize'; + +implementation + + uses + ComConst, Ole2, RtlConsts; + + function CreateComObject(const ClassID : TGUID) : IUnknown; + begin + OleCheck(CoCreateInstance(ClassID,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,IUnknown,result)); + end; + + function CreateOleObject(const ClassName : string) : IDispatch; + var + id : TCLSID; + begin + id:=ProgIDToClassID(ClassName); + OleCheck(CoCreateInstance(id,nil,CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,IDispatch,result)); + end; + + function GetActiveOleObject(const ClassName : string) : IDispatch; +{$ifndef wince} + var + intf : IUnknown; + id : TCLSID; + begin + id:=ProgIDToClassID(ClassName); + OleCheck(GetActiveObject(id,nil,intf)); + OleCheck(intf.QueryInterface(IDispatch,Result)); + end; +{$else} + begin + Result:=nil; + end; +{$endif wince} + + procedure OleError(Code: HResult); + begin + end; + + procedure OleCheck(Value : HResult);inline; + begin + if not(Succeeded(Value)) then + OleError(Value); + end; + + function ProgIDToClassID(const id : string) : TGUID; + begin + OleCheck(CLSIDFromProgID(PWideChar(WideString(id)),result)); + end; + + function ClassIDToProgID(const classID: TGUID): string; + var + progid : LPOLESTR; + begin + OleCheck(ProgIDFromCLSID(@classID,progid)); + result:=progid; + CoTaskMemFree(progid); + end; + +const + Initialized : boolean = false; +var + Ole32Dll : HModule; + +initialization + Ole32Dll:=GetModuleHandle('ole32.dll'); + if Ole32Dll<>0 then + begin + Pointer(CoInitializeEx):=GetProcAddress(Ole32Dll,'CoInitializeEx'); + Pointer(CoAddRefServerProcess):=GetProcAddress(Ole32Dll,'CoAddRefServerProcess'); + Pointer(CoReleaseServerProcess):=GetProcAddress(Ole32Dll,'CoReleaseServerProcess'); + Pointer(CoResumeClassObjects):=GetProcAddress(Ole32Dll,'CoResumeClassObjects'); + Pointer(CoSuspendClassObjects):=GetProcAddress(Ole32Dll,'CoSuspendClassObjects'); + end; + + if not(IsLibrary) then +{$ifndef wince} + if (CoInitFlags=-1) or not(assigned(mcomobj.CoInitializeEx)) then + Initialized:=Succeeded(CoInitialize(nil)) + else +{$endif wince} + Initialized:=Succeeded(mcomobj.CoInitializeEx(nil, CoInitFlags)); + +finalization + if Initialized then + CoUninitialize; +end. diff --git a/plugins/Utils.pas/shlobj.pp b/plugins/Utils.pas/shlobj.pp index 197a0bf882..e98ce0566f 100644 --- a/plugins/Utils.pas/shlobj.pp +++ b/plugins/Utils.pas/shlobj.pp @@ -21,7 +21,7 @@ unit shlobj; uses windows,activex,shellapi,commctrl; -Const +Const IID_IShellExtInit ='{000214E8-0000-0000-C000-000000000046}'; IID_IShellFolder : TGUID ='{000214E6-0000-0000-C000-000000000046}'; IID_IEnumList : TGUID ='{000214F2-0000-0000-C000-000000000046}'; @@ -509,9 +509,9 @@ Const SHCNF_DWORD = $0003; // DWORD SHCNF_PATHW = $0005; // path name SHCNF_PRINTERW = $0006; // printer friendly name - SHCNF_TYPE = $00FF; - SHCNF_FLUSH = $1000; - SHCNF_FLUSHNOWAIT = $2000; + SHCNF_TYPE = $00FF; + SHCNF_FLUSH = $1000; + SHCNF_FLUSHNOWAIT = $2000; QITIPF_DEFAULT = $00000000; QITIPF_USENAME = $00000001; QITIPF_LINKNOTARGET = $00000002; @@ -561,8 +561,8 @@ Const OPENPROPS_INHIBITPIF = $8000; GETPROPS_NONE = $0000; SETPROPS_NONE = $0000; - CLOSEPROPS_NONE = $0000; - CLOSEPROPS_DISCARD = $0001; + CLOSEPROPS_NONE = $0000; + CLOSEPROPS_DISCARD = $0001; TBIF_DEFAULT = $00000000; TBIF_INTERNETBAR = $00010000; TBIF_STANDARDTOOLBAR = $00020000; @@ -620,7 +620,7 @@ Const PUIFFDF_FRIENDLYDATE = $00000008; // "Today", "Yesterday", etc PUIFFDF_NOUNITS = $00000010; // don't do "KB", "MB", "KHz" CATINFO_NORMAL = $00000000; // Apply default properties to this category - CATINFO_COLLAPSED = $00000001; // This category should appear collapsed. useful for the "None" category. + CATINFO_COLLAPSED = $00000001; // This category should appear collapsed. useful for the "None" category. CATINFO_HIDDEN = $00000002; // This category should follow the "Hidden" files setting for being displayed CATSORT_DEFAULT = $00000000; // Default Sort order CATSORT_NAME = $00000001; // Sort by name @@ -639,17 +639,17 @@ Const SPINITF_NORMAL = $00000000; // default normal progress behavior SPINITF_MODAL = $00000001; // call punkSite->EnableModeless() or EnableWindow() SPINITF_NOMINIMIZE = $00000008; // Do not have a minimize button in the caption bar. - ARCONTENT_AUTORUNINF = $00000002; // That's the one we have today, and always had - ARCONTENT_AUDIOCD = $00000004; // Audio CD (not MP3 and the like, the stuff you buy at the store) - ARCONTENT_DVDMOVIE = $00000008; // DVD Movie (not MPEGs, the stuff you buy at the store) - ARCONTENT_BLANKCD = $00000010; // Blank CD-R/CD-RW - ARCONTENT_BLANKDVD = $00000020; // Blank DVD-R/DVD-RW + ARCONTENT_AUTORUNINF = $00000002; // That's the one we have today, and always had + ARCONTENT_AUDIOCD = $00000004; // Audio CD (not MP3 and the like, the stuff you buy at the store) + ARCONTENT_DVDMOVIE = $00000008; // DVD Movie (not MPEGs, the stuff you buy at the store) + ARCONTENT_BLANKCD = $00000010; // Blank CD-R/CD-RW + ARCONTENT_BLANKDVD = $00000020; // Blank DVD-R/DVD-RW ARCONTENT_UNKNOWNCONTENT= $00000040; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYPIX = $00000080; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYMUSIC = $00000100; // Whatever files. Mean that it's formatted. ARCONTENT_AUTOPLAYVIDEO = $00000200; // Whatever files. Mean that it's formatted. SPBEGINF_NORMAL = $00000000; // default normal progress behavior - SPBEGINF_AUTOTIME = $00000002; // automatically updates the "time remaining" text + SPBEGINF_AUTOTIME = $00000002; // automatically updates the "time remaining" text SPBEGINF_NOPROGRESSBAR = $00000010; // Don't display the progress bar (SetProgress() wont be called) SPBEGINF_MARQUEEPROGRESS= $00000020; // use marquee progress (comctl32 v6 required) EXPPS_FILETYPES = $00000001; @@ -755,9 +755,9 @@ Const SIGDN_DESKTOPABSOLUTEEDITING = $8004c000; SIGDN_FILESYSPATH = $80058000; SIGDN_URL = $80068000; - SICHINT_DISPLAY = $00000000; - SICHINT_ALLFIELDS = $80000000; - SICHINT_CANONICAL = $10000000; + SICHINT_DISPLAY = $00000000; + SICHINT_ALLFIELDS = $80000000; + SICHINT_CANONICAL = $10000000; BFO_NONE = $00000000; // Do nothing. BFO_BROWSER_PERSIST_SETTINGS = $00000001; // Does this item want the browser stream? (Same window position as IE browser windows?) BFO_RENAME_FOLDER_OPTIONS_TOINTERNET= $00000002; // Rename "Folder Options" to "Internet Options" in the Tools or View menu? @@ -822,19 +822,19 @@ Const SMC_PROMOTE = $00000012; // Promote an item, wParam = SMINV_* flag SMC_DEFAULTICON = $00000016; // Returns Default icon location in wParam, index in lParam SMC_NEWITEM = $00000017; // Notifies item is not in the order stream. - SMC_CHEVRONEXPAND = $00000019; // Notifies of a expansion via the chevron - SMC_DISPLAYCHEVRONTIP = $0000002A; // S_OK display, S_FALSE not. + SMC_CHEVRONEXPAND = $00000019; // Notifies of a expansion via the chevron + SMC_DISPLAYCHEVRONTIP = $0000002A; // S_OK display, S_FALSE not. SMC_SETSFOBJECT = $0000002D; // Called to save the passed object SMC_SHCHANGENOTIFY = $0000002E; // Called when a Change notify is received. lParam points to SMCSHCHANGENOTIFYSTRUCT SMC_CHEVRONGETTIP = $0000002F; // Called to get the chevron tip text. wParam = Tip title, Lparam = TipText Both MAX_PATH SMC_SFDDRESTRICTED = $00000030; // Called requesting if it's ok to drop. wParam = IDropTarget. ATTACHMENT_PROMPT_NONE = $0000; ATTACHMENT_PROMPT_SAVE = $0001; - ATTACHMENT_PROMPT_EXEC = $0002; - ATTACHMENT_PROMPT_EXEC_OR_SAVE = $0003; - ATTACHMENT_ACTION_CANCEL= $0000; + ATTACHMENT_PROMPT_EXEC = $0002; + ATTACHMENT_PROMPT_EXEC_OR_SAVE = $0003; + ATTACHMENT_ACTION_CANCEL= $0000; ATTACHMENT_ACTION_SAVE = $0001; - ATTACHMENT_ACTION_EXEC = $0002; + ATTACHMENT_ACTION_EXEC = $0002; SMINIT_DEFAULT = $00000000; // No Options SMINIT_RESTRICT_DRAGDROP= $00000002; // Don't allow Drag and Drop SMINIT_TOPLEVEL = $00000004; // This is the top band. @@ -876,7 +876,7 @@ Const FOS_FORCESHOWHIDDEN = $10000000; FOS_DEFAULTNOMINIMODE = $20000000; FOS_FORCEPREVIEWPANEON = $40000000; - + Type SFGAOF = ULONG; TSFGAOF = SFGAOF; @@ -889,7 +889,7 @@ Type PSIGDN = ^SIGDN; SICHINTF = longint; TSICHINTF = SICHINTF; - PSICHINTF = ^SICHINTF; + PSICHINTF = ^SICHINTF; PROPERTYUI_NAME_FLAGS = DWord; // enum @@ -990,7 +990,7 @@ Type PNT_CONSOLE_PROPS = ^NT_CONSOLE_PROPS; NT_CONSOLE_PROPS = record - dbh : DATABLOCK_HEADER; + dbh : DATABLOCK_HEADER; wFillAttribute : WORD; { fill attribute for console } wPopupFillAttribute : WORD; { fill attribute for console popups } dwScreenBufferSize : COORD; { screen buffer size for console } @@ -1068,19 +1068,19 @@ Type punkRel : IUnknown; { Relese this interface when window is visible } { Stuff that might be returned from viewer (out) } strNewFile : array[0..(MAX_PATH)-1] of OLECHAR; { New File to view. } - end; + end; TFVSHOWINFO = FVSHOWINFO; LPFVSHOWINFO = PFVSHOWINFO; PLPFVSHOWINFO = ^LPFVSHOWINFO; PSHFOLDERCUSTOMSETTINGSA = ^SHFOLDERCUSTOMSETTINGSA; SHFOLDERCUSTOMSETTINGSA = record - dwSize : DWORD; - dwMask : DWORD; { IN/OUT Which Attributes to Get/Set } + dwSize : DWORD; + dwMask : DWORD; { IN/OUT Which Attributes to Get/Set } pvid : PSHELLVIEWID; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } { The folder's WebView template path } - pszWebViewTemplate : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } - cchWebViewTemplate : DWORD; { IN - Specifies the size of the buffer pointed to by pszWebViewTemplate } + pszWebViewTemplate : LPSTR; { OUT - if dwReadWrite is FCS_READ, IN - otherwise } + cchWebViewTemplate : DWORD; { IN - Specifies the size of the buffer pointed to by pszWebViewTemplate } pszWebViewTemplateVersion : LPSTR; { Ignored if dwReadWrite is FCS_READ } pszInfoTip : LPSTR; { currently IN only } cchInfoTip : DWORD; { Infotip for the folder } @@ -1131,7 +1131,7 @@ Type pszDisplayName : LPSTR; { Return display name of item selected. } lpszTitle : LPCSTR; { text to go in the banner over the tree. } ulFlags : UINT; { Flags that control the return stuff } - lpfn : BFFCALLBACK; + lpfn : BFFCALLBACK; lParam : LPARAM; { extra info that's passed back in callbacks } iImage : longint; { output var: where to return the Image index. } end; @@ -1148,7 +1148,7 @@ Type pszDisplayName : LPWSTR; { Return display name of item selected. } lpszTitle : LPCWSTR; { text to go in the banner over the tree. } ulFlags : UINT; { Flags that control the return stuff } - lpfn : BFFCALLBACK; + lpfn : BFFCALLBACK; lParam : LPARAM; { extra info that's passed back in callbacks } iImage : longint; { output var: where to return the Image index. } end; @@ -1231,7 +1231,7 @@ Type PLPCCOMPPOS = ^LPCCOMPPOS; LPCCOMPPOS = COMPPOS; - + _tagCOMPSTATEINFO = record dwSize : DWORD; { Size of this structure. } iLeft : longint; { Left of the top-left corner in screen co-ordinates. } @@ -1249,7 +1249,7 @@ Type LPCCOMPSTATEINFO = COMPSTATEINFO; _tagIE4COMPONENT = record - dwSize : DWORD; {Size of this structure } + dwSize : DWORD; {Size of this structure } dwID : DWORD; {Reserved: Set it always to zero. } iComponentType : longint; {One of COMP_TYPE_* } fChecked : BOOL; { Is this component enabled? } @@ -1308,7 +1308,7 @@ Type PLPSHCOLUMNINFO = ^LPSHCOLUMNINFO; PSHCOLUMNINIT = ^SHCOLUMNINIT; - SHCOLUMNINIT = record + SHCOLUMNINIT = record dwFlags : ULONG; { initialization flags } dwReserved : ULONG; { reserved for future use. } wszFolder : array[0..(MAX_PATH)-1] of WCHAR; { fully qualified folder path (or empty if multiple folders) } @@ -1334,7 +1334,7 @@ Type PLPCSHCOLUMNDATA = ^LPCSHCOLUMNDATA; LPCSHCOLUMNDATA = SHCOLUMNDATA; - + PSHDRAGIMAGE = ^SHDRAGIMAGE; SHDRAGIMAGE = record sizeDragImage : SIZE; { OUT - The length and Width of the rendered image } @@ -1424,7 +1424,7 @@ Type PFILEGROUPDESCRIPTORW = ^FILEGROUPDESCRIPTORW; LPFILEGROUPDESCRIPTORW = PFILEGROUPDESCRIPTORW; PLPFILEGROUPDESCRIPTORW = ^LPFILEGROUPDESCRIPTORW; - + _DROPFILES = record pFiles : DWORD; { offset of file list } pt : POINT; { drop point (client coords) } @@ -1496,7 +1496,7 @@ Type PLPSHDESCRIPTIONID = ^LPSHDESCRIPTIONID; const - NUM_POINTS = 3; + NUM_POINTS = 3; { asd } type @@ -1512,7 +1512,7 @@ Type TAUTO_SCROLL_DATA = AUTO_SCROLL_DATA; PCABINETSTATE = ^CABINETSTATE; - CABINETSTATE = record + CABINETSTATE = record cLength : WORD; { NT: Show compressed volumes in a different colour } nVersion : WORD; { NT: Do 8.3 name conversion, or not! } flag0 : word; { NT: Administrators create comon groups } @@ -1524,7 +1524,7 @@ Type - FOLDERSettings = Packed Record + FOLDERSettings = Packed Record ViewMode : UINT; // View mode (FOLDERVIEWMODE values) fFlags : UINT; // View options (FOLDERFLAGS bits) end; @@ -1532,7 +1532,7 @@ Type PFOLDERSettings = ^FOLDERSettings; LPFOLDERSettings= PFOLDERSettings; LPCFOLDERSettings= LPFOLDERSettings; - PSV2CVW2_PARAMS = ^TSV2CVW2_PARAMS; + PSV2CVW2_PARAMS = ^TSV2CVW2_PARAMS; TSV2CVW2_PARAMS = packed record // actually <pshpack8.h>") cbSize : DWORD; psvPrev : IShellView; @@ -1769,7 +1769,7 @@ Type PFDE_OVERWRITE_RESPONSE = ^longint; FDE_SHAREVIOLATION_RESPONSE = longint; TFDE_SHAREVIOLATION_RESPONSE = FDE_SHAREVIOLATION_RESPONSE; - PFDE_SHAREVIOLATION_RESPONSE = ^FDE_SHAREVIOLATION_RESPONSE; + PFDE_SHAREVIOLATION_RESPONSE = ^FDE_SHAREVIOLATION_RESPONSE; FILEOPENDIALOGOPTIONS = longint; TFILEOPENDIALOGOPTIONS = FILEOPENDIALOGOPTIONS; PFILEOPENDIALOGOPTIONS = ^TFILEOPENDIALOGOPTIONS; @@ -1785,7 +1785,7 @@ Type TCOMDLG_FILTERSPEC = _COMDLG_FILTERSPEC; PCOMDLG_FILTERSPEC = ^_COMDLG_FILTERSPEC; - + IPersistFolder = Interface(IPersist) ['{000214EA-0000-0000-C000-000000000046}'] function Initialize (pild : LPCITEMIDLIST): HResult; StdCall; @@ -1798,7 +1798,7 @@ Type IPersistIDList = Interface(IPersist) ['{1079acfc-29bd-11d3-8e0d-00c04f6837d5}'] - function SetIdList(pid:LPCITEMIDLIST):HResult;StdCall; + function SetIdList(pid:LPCITEMIDLIST):HResult;StdCall; function GetIdList(out pid:LPCITEMIDLIST):HResult;StdCall; end; @@ -1815,7 +1815,7 @@ Type 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; @@ -1833,12 +1833,12 @@ Type 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 GetDefaultColumnState(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; + function EnumSearches(out ppenum:IEnumExtraSearch):HResult;StdCall; + function GetDefaultColumn(dwres:DWORD;psort :pulong; pdisplay:pulong):HResult;StdCall; + function GetDefaultColumnState(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) @@ -1854,11 +1854,11 @@ Type function UIActivate(uState:UINT):HResult; StdCall; function Refresh:HResult; StdCall; function CreateViewWindow(psvPrevious:IShellView;pfs:LPCFOLDERSETTINGS;psb:IShellBrowser;prcview:prect;var ph:HWND):HResult;StdCall; - function DestroyViewWindow:HResult; StdCall; - function GetCurrentInfo(pfs: LPFOLDERSETTINGS):HResult; StdCall; - function AddPropertySheetPages(dwreserved : DWORD;pfn:pointer{LPFNSVADDPROPSHEETPAGE};lp:lparam):HResult; StdCall; - function SaveViewState:HResult; StdCall; - function SelectItem( pidlItem: LPCITEMIDLIST;uflags:TSVSIF):HResult; StdCall; + function DestroyViewWindow:HResult; StdCall; + function GetCurrentInfo(pfs: LPFOLDERSETTINGS):HResult; StdCall; + function AddPropertySheetPages(dwreserved : DWORD;pfn:pointer{LPFNSVADDPROPSHEETPAGE};lp:lparam):HResult; StdCall; + function SaveViewState:HResult; StdCall; + function SelectItem( pidlItem: LPCITEMIDLIST;uflags:TSVSIF):HResult; StdCall; function GetItemObject(uitem:UINT;const riid:TGUID;out ppv :PPOinter):HResult;StdCall; end; @@ -1872,21 +1872,21 @@ Type IFolderView = Interface(IUnknown) ['{cde725b0-ccc9-4519-917e-325d72fab4ce}'] - function GetCurrentViewMode(pViewMode:PUINT):HResult; StdCall; - function SetCurrentViewMode(ViewMode:UINT):HResult; StdCall; - function GetFolder(const riid:TGUID;ppv:pointer):HResult; StdCall; - function Item(iItemIndex:longint;ppidl:LPITEMIDLIST):HResult; StdCall; - function ItemCount(uflags:uint;pcitems:plongint):HResult; StdCall; - function Items (uflags:uint;const id :TGUID;out ppv: pointer):HResult; StdCall; - function GetSelectionMarkedItem(piItem:pint):HResult; StdCall; - function GetFocussedItem(piItem:pint):HResult; StdCall; - function GetItemPosition(pidl:LPCITEMIDLIST;ppt:PPOINT):HResult; StdCall; - function GetSpacing(ppt:ppoint):HResult; StdCall; - function GetDefaultSpacing(ppt:ppoint):HResult; StdCall; - function GetAutoArrange:HResult; StdCall; - function SelectItem(iItem : longint;dwflags:Dword) :HResult; StdCall; - function SelectAndPositionItems(cild:uint;var apid: LPCITEMIDLIST ;apt:PPOINT;dwflags:DWord):HResult; StdCall; - end; + function GetCurrentViewMode(pViewMode:PUINT):HResult; StdCall; + function SetCurrentViewMode(ViewMode:UINT):HResult; StdCall; + function GetFolder(const riid:TGUID;ppv:pointer):HResult; StdCall; + function Item(iItemIndex:longint;ppidl:LPITEMIDLIST):HResult; StdCall; + function ItemCount(uflags:uint;pcitems:plongint):HResult; StdCall; + function Items (uflags:uint;const id :TGUID;out ppv: pointer):HResult; StdCall; + function GetSelectionMarkedItem(piItem:pint):HResult; StdCall; + function GetFocussedItem(piItem:pint):HResult; StdCall; + function GetItemPosition(pidl:LPCITEMIDLIST;ppt:PPOINT):HResult; StdCall; + function GetSpacing(ppt:ppoint):HResult; StdCall; + function GetDefaultSpacing(ppt:ppoint):HResult; StdCall; + function GetAutoArrange:HResult; StdCall; + function SelectItem(iItem : longint;dwflags:Dword) :HResult; StdCall; + function SelectAndPositionItems(cild:uint;var apid: LPCITEMIDLIST ;apt:PPOINT;dwflags:DWord):HResult; StdCall; + end; IFolderFilterSite = Interface(IUnknown) ['{C0A651F5-B48B-11d2-B5ED-006097C686F6}'] function SetFilter(punk:IUnknown):HResult; StdCall; @@ -1915,7 +1915,7 @@ Type function QueryActiveShellView(out ppsh :IShellView): HResult;StdCall; function OnViewWindowActive(psh :IShellView): HResult;StdCall; function SetToolBarItems(lpButtons:LPTBBUTTONSB;nButtons:UINT;uFlags:uint): HResult;StdCall; - end; + end; const CLSID_AutoComplete: TGUID = '{00BB2763-6A77-11D0-A535-00C04FD7D062}'; @@ -1955,7 +1955,7 @@ Type IContextMenu = interface(IUnknown) ['{000214E4-0000-0000-c000-000000000046}'] function QueryContextMenu(hmenu:HMENU;indexMenu:UINT;idCmdFirst:UINT;idCmdLast:UINT;UFlags:uint):HRESULT;StdCall; - function InvokeCommand(var lpici : TCMINVOKECOMMANDINFO):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) @@ -1997,7 +1997,7 @@ Type function GetDefaultWidth(const fmtid:FMTID; pid:PROPID; pcxChars:pULONG):HRESULT;StdCall; function GetFlags(const fmtid:FMTID; pid:PROPID; pFlags:pPROPERTYUI_FLAGS):HRESULT;StdCall; function FormatForDisplay(const fmtid:FMTID; pid:PROPID; pvar:pPROPVARIANT; flags:PROPERTYUI_FORMAT_FLAGS;wszText:LPWSTR;cchText:DWORD):HRESULT;StdCall; - function GetHelpInfo(const fmtid:FMTID; pid:PROPID; pwszHelpFile:LPWSTR; cch:DWORD; puHelpID:pUINT):HRESULT;StdCall; + function GetHelpInfo(const fmtid:FMTID; pid:PROPID; pwszHelpFile:LPWSTR; cch:DWORD; puHelpID:pUINT):HRESULT;StdCall; end; } ICategoryProvider =interface(IUnknown) @@ -2152,7 +2152,7 @@ type function GetCount(out pcElem: UINT): HResult; stdcall; function GetAt(iElem: UINT; const riid: REFIID; out ppv): HResult; stdcall; end; - + IShellLinkA = Interface(IUnknown) ['{000214EE-0000-0000-C000-000000000046}'] function GetPath(pszFile:LPSTR; cch:longint;var pfd:WIN32_FIND_DATA; fFlags:DWORD):HRESULT;StdCall; @@ -2173,8 +2173,8 @@ type function SetRelativePath(pszPathRel:LPCSTR; dwReserved:DWORD):HRESULT;StdCall; function Resolve(hwnd:HWND; fFlags:DWORD):HRESULT;StdCall; function SetPath(pszFile:LPCSTR):HRESULT;StdCall; - end; - + end; + IShellLinkW = interface (IUnknown) ['{000214F9-0000-0000-C000-000000000046}'] function GetPath(pszFile:LPWSTR; cch:longint; pfd:pWIN32_FIND_DATAW; fFlags:DWORD):HRESULT;StdCall; @@ -2201,7 +2201,7 @@ type PIShellItem= ^IShellItem; IShellItem = interface(IUnknown) ['{43826d1e-e718-42ee-bc55-a1e261c37bfe}'] - function BindToHandler(pbc:IBindCTX;bhid:PGUID;RIID:PIID;ppv:ppointer):HResult;Stdcall; + function BindToHandler(pbc:IBindCTX;bhid:PGUID;RIID:PIID;ppv:ppointer):HResult;Stdcall; function GetParent(ppsi:PISHellItem):HResult;Stdcall; function GetDisplayName(sigdnname:SIGDN;ppszName:LPWSTR):HResult; Stdcall; function GetAttributes(sfgaomask:SFGAOF;psfgaoAttribs:PSFGAOF):HResult;Stdcall; @@ -2241,14 +2241,14 @@ type ['{b4db1657-70d7-485e-8e3e-6fcb5a5c1802}'] function Show(hwndparent:HWND):HResult;StdCall; end; - + IShellItemFilter = Interface(IUnknown) ['{2659B475-EEB8-48b7-8F07-B378810F48CF}'] function IncludeItem(psi:IShellItem):HResult;StdCall; function GetEnumFlagsForItem(psi:IShellItem;pgrfflags :PSHCONTF):HRESULT;Stdcall; - end; + end; - IFileDialog = Interface; + IFileDialog = Interface; IFileDialogEvents = Interface(IUnknown) ['{973510db-7d7f-452b-8975-74a85828d354}'] function OnFileOk (pfd:IFileDialog):HResult; Stdcall; @@ -2260,7 +2260,7 @@ type function OnOverwrite (pfd:IFileDialog;psi:IShellItem;pResponse :pFDE_OVERWRITE_RESPONSE):HResult; Stdcall; end; - IFileDialog = Interface(IModalWindow) + IFileDialog = Interface(IModalWindow) ['{42f85136-db7e-439c-85f1-e4075d135fc8}'] function SetFileTypes(cFileTypes:UINT;rgFilterSpec:pCOMDLG_FILTERSPEC):HRESULT;Stdcall; function SetFileTypeIndex(iFileType:UINT):HRESULT;Stdcall; @@ -2428,7 +2428,7 @@ Const External_Library = 'shell32'; function SHHandleUpdateImage(pidlExtra:LPCITEMIDLIST):Longint;StdCall;external External_library name 'SHHandleUpdateImage'; procedure SHUpdateImageA(pszHashItem:lpcstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageA'; procedure SHUpdateImageW(pszHashItem:lpcwstr; iIndex:Longint; uFlags:UINT; iImageIndex:Longint);StdCall;external External_library name 'SHUpdateImageW'; - function SHChangeNotifyRegister(hwnd:HWND; fSources:Longint; fEvents:LONG; wMsg:UINT; cEntries:Longint; + function SHChangeNotifyRegister(hwnd:HWND; fSources:Longint; fEvents:LONG; wMsg:UINT; cEntries:Longint; pshcne:PSHChangeNotifyEntry):ULONG;StdCall;external External_library name 'SHChangeNotifyRegister'; function SHChangeNotifyDeregister(ulID:ulong):BOOL;StdCall;external External_library name 'SHChangeNotifyDeregister'; function SHChangeNotification_Lock(hChangeNotification:THANDLE; dwProcessId:DWord; var pppidl:PLPITEMIDLIST; plEvent:PLONG):THANDLE;StdCall;external External_library name 'SHChangeNotification_Lock'; @@ -2459,12 +2459,12 @@ Const External_Library = 'shell32'; function PathIsSlowW(pszFile:lpcwstr; dwAttr:DWord):BOOL;StdCall;external External_library name 'PathIsSlowW'; function PathCleanupSpec(pszDir:lpcwstr; pszSpec:LPWStr):Longint;StdCall;external External_library name 'PathCleanupSpec'; function PathResolve(pszPath:LPWStr; dirs:array of lpcwstr; fFlags:UINT):Longint;StdCall;external External_library name 'PathResolve'; - function GetFileNameFromBrowse(hwnd:HWND; pszFilePath:LPWStr; cbFilePath:UINT; pszWorkingDir:lpcwstr; pszDefExt:lpcwstr; + function GetFileNameFromBrowse(hwnd:HWND; pszFilePath:LPWStr; cbFilePath:UINT; pszWorkingDir:lpcwstr; pszDefExt:lpcwstr; pszFilters:lpcwstr; pszTitle:lpcwstr):BOOL;StdCall;external External_library name 'GetFileNameFromBrowse'; function DriveType(iDrive:Longint):Longint;StdCall;external External_library name 'DriveType'; function RealDriveType(iDrive:Longint; fOKToHitNet:BOOL):Longint;StdCall;external External_library name 'RealDriveType'; function IsNetDrive(iDrive:Longint):Longint;StdCall;external External_library name 'IsNetDrive'; - function Shell_MergeMenus(hmDst:HMENU; hmSrc:HMENU; uInsert:UINT; uIDAdjust:UINT; uIDAdjustMax:UINT; + function Shell_MergeMenus(hmDst:HMENU; hmSrc:HMENU; uInsert:UINT; uIDAdjust:UINT; uIDAdjustMax:UINT; uFlags:ULONG):UINT;StdCall;external External_library name 'Shell_MergeMenus'; function SHObjectProperties(hwnd:HWND; dwType:DWord; lpObject:lpcwstr; lpPage:lpcwstr):BOOL;StdCall;external External_library name 'SHObjectProperties'; function SHFormatDrive(hwnd:HWND; drive:UINT; fmtID:UINT; options:UINT):DWord;StdCall;external External_library name 'SHFormatDrive'; @@ -2498,9 +2498,9 @@ Const External_Library = 'shell32'; function SHLoadOLE(lParam:lparam):HRESULT;StdCall;external External_library name 'SHLoadOLE'; function SHStartNetConnectionDialogA(hwnd:HWND; pszRemoteName:lpcstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogA'; function SHStartNetConnectionDialogW(hwnd:HWND; pszRemoteName:lpcwstr; dwType:DWord):HRESULT;StdCall;external External_library name 'SHStartNetConnectionDialogW'; - function SHDefExtractIconA(pszIconFile:lpcstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; + function SHDefExtractIconA(pszIconFile:lpcstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconA'; - function SHDefExtractIconW(pszIconFile:lpcwstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; + function SHDefExtractIconW(pszIconFile:lpcwstr; iIndex:Longint; uFlags:UINT; phiconLarge:PHICON; phiconSmall:PHICON; nIconSize:UINT):HRESULT;StdCall;external External_library name 'SHDefExtractIconW'; function Shell_GetImageLists(var phiml:HIMAGELIST; var phimlSmall:HIMAGELIST):BOOL;StdCall;external External_library name 'Shell_GetImageLists'; function Shell_GetCachedImageIndex(pszIconPath:lpcwstr; iIconIndex:Longint; uIconFlags:UINT):Longint;StdCall;external External_library name 'Shell_GetCachedImageIndex'; @@ -2513,11 +2513,11 @@ Const External_Library = 'shell32'; function IsUserAnAdmin:BOOL;StdCall;external External_library name 'IsUserAnAdmin'; function SHShellFolderView_Message(hwndMain:HWND; uMsg:UINT; lParam:lparam):lresult;StdCall;external External_library name 'SHShellFolderView_Message'; function SHCreateShellFolderView(pcsfv:PSFV_CREATE; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderView'; - function CDefFolderMenu_Create2(pidlFolder:LPCITEMIDLIST; hwnd:HWND; cidl:UINT;var apidl:LPCITEMIDLIST; psf:IShellFolder; + function CDefFolderMenu_Create2(pidlFolder:LPCITEMIDLIST; hwnd:HWND; cidl:UINT;var apidl:LPCITEMIDLIST; psf:IShellFolder; lpfn:LPFNDFMCALLBACK; nKeys:UINT; ahkeyClsKeys:PHKEY; out ppcm:IContextMenu):HRESULT;StdCall;external External_library name 'CDefFolderMenu_Create2'; - function SHOpenPropSheetA(pszCaption:lpcstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; + function SHOpenPropSheetA(pszCaption:lpcstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; psb:IShellBrowser; pStartPage:lpcstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetA'; - function SHOpenPropSheetW(pszCaption:lpcwstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; + function SHOpenPropSheetW(pszCaption:lpcwstr; ahkeys:array of HKEY; cikeys:UINT; pclsidDefault:PCLSID; pdtobj:IDataObject; psb:IShellBrowser; pStartPage:lpcwstr):BOOL;StdCall;external External_library name 'SHOpenPropSheetW'; function SHFind_InitMenuPopup(hmenu:HMENU; hwndOwner:HWND; idCmdFirst:UINT; idCmdLast:UINT):IContextMenu;StdCall;external External_library name 'SHFind_InitMenuPopup'; function SHCreateShellFolderViewEx(pcsfv:LPCSFV; out ppsv:IShellView):HRESULT;StdCall;external External_library name 'SHCreateShellFolderViewEx'; @@ -2527,17 +2527,17 @@ Const External_Library = 'shell32'; function SHParseDisplayName(pszName:PCWSTR; pbc:IBindCtx; var ppidl:LPITEMIDLIST; sfgaoIn:TSFGAOF; psfgaoOut:PSFGAOF):HRESULT;StdCall;external External_library name 'SHParseDisplayName'; function SHPathPrepareForWriteA(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteA'; function SHPathPrepareForWriteW(hwnd:HWND; punkEnableModless:IUnknown; pszPath:lpcwstr; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHPathPrepareForWriteW'; -{ function SHPropStgCreate(psstg:IPropertySetStorage; fmtid:TREFFMTID; pclsid:PCLSID; grfFlags:DWord; grfMode:DWord; +{ function SHPropStgCreate(psstg:IPropertySetStorage; fmtid:TREFFMTID; pclsid:PCLSID; grfFlags:DWord; grfMode:DWord; dwDisposition:DWord; out ppstg:IPropertyStorage; puCodePage:PUINT):HRESULT;StdCall;external External_library name 'SHPropStgCreate'; function SHPropStgReadMultiple(pps:IPropertyStorage; uCodePage:UINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT):HRESULT;StdCall;external External_library name 'SHPropStgReadMultiple'; - function SHPropStgWriteMultiple(pps:IPropertyStorage; puCodePage:PUINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT; + function SHPropStgWriteMultiple(pps:IPropertyStorage; puCodePage:PUINT; cpspec:ULONG; rgpspec:array of TPROPSPEC; rgvar:array of TPROPVARIANT; propidNameFirst:TPROPID):HRESULT;StdCall;external External_library name 'SHPropStgWriteMultiple'; } function SHCreateFileExtractIconA(pszFile:lpcstr; dwFileAttributes:DWord; riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconA'; function SHCreateFileExtractIconW(pszFile:lpcwstr; dwFileAttributes:DWord; riid:TREFIID; ppv:Ppointer):HRESULT;StdCall;external External_library name 'SHCreateFileExtractIconW'; function SHLimitInputEdit(hwndEdit:HWND; psf:IShellFolder):HRESULT;StdCall;external External_library name 'SHLimitInputEdit'; function SHMultiFileProperties(pdtobj:IDataObject; dwFlags:DWord):HRESULT;StdCall;external External_library name 'SHMultiFileProperties'; -// function SHMapIDListToImageListIndexAsync(pts:IShellTaskScheduler; psf:IShellFolder; pidl:LPCITEMIDLIST; flags:UINT; pfn:TPFNASYNCICONTASKBALLBACK; +// function SHMapIDListToImageListIndexAsync(pts:IShellTaskScheduler; psf:IShellFolder; pidl:LPCITEMIDLIST; flags:UINT; pfn:TPFNASYNCICONTASKBALLBACK; // pvData:pointer; pvHint:pointer; piIndex:plongint; piIndexSel:plongint):HRESULT;StdCall;external External_library name 'SHMapIDListToImageListIndexAsync'; function SHMapPIDLToSystemImageListIndex(pshf:IShellFolder; pidl:LPCITEMIDLIST; piIndexSel:plongint):Longint;StdCall;external External_library name 'SHMapPIDLToSystemImageListIndex'; |