123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991 |
- Unit ShellApi;
- {
- $Id$
- This file is part of the Free Pascal run time library.
- This unit contains the record definition for the Win32 API
- Copyright (c) 1999-2002 by Marco van de Voort,
- 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.
- ************************************************************************}
- //+-------------------------------------------------------------------------
- //
- // Microsoft Windows
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //
- // File: shellapi.h
- //
- // Header translation by Marco van de Voort for Free Pascal Platform
- // SDK dl'ed January 2002
- //
- //--------------------------------------------------------------------------
- Interface
- {$PACKRECORDS C}
- {$calling stdcall}
- {$mode Delphi}
- Uses Windows;
- {
- shellapi.h - SHELL.DLL functions, types, and definitions
- Copyright (c) Microsoft Corporation. All rights reserved. }
- Type HDROP = THandle;
- UINT_PTR = ^UINT;
- DWORD_PTR= ^DWORD;
- pHICON = ^HICON;
- pBool = ^BOOL;
- STARTUPINFOW = record // a guess. Omission should get fixed in Windows.
- cb : DWORD;
- lpReserved : LPTSTR;
- lpDesktop : LPTSTR;
- lpTitle : LPTSTR;
- dwX : DWORD;
- dwY : DWORD;
- dwXSize : DWORD;
- dwYSize : DWORD;
- dwXCountChars : DWORD;
- dwYCountChars : DWORD;
- dwFillAttribute : DWORD;
- dwFlags : DWORD;
- wShowWindow : WORD;
- cbReserved2 : WORD;
- lpReserved2 : LPBYTE;
- hStdInput : HANDLE;
- hStdOutput : HANDLE;
- hStdError : HANDLE;
- end;
- LPSTARTUPINFOW = ^STARTUPINFOW;
- _STARTUPINFOW = STARTUPINFOW;
- TSTARTUPINFOW = STARTUPINFOW;
- PSTARTUPINFOW = ^STARTUPINFOW;
- {unicode}
- Function DragQueryFileA(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
- Function DragQueryFileW(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
- {$ifndef Unicode}
- Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPSTR ; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileA';
- {$else}
- Function DragQueryFile(arg1 : HDROP; arg2 : UINT;arg3 : LPWSTR; arg4 : UINT):UINT;external 'shell32.dll' name 'DragQueryFileW';
- {$endif}
- Function DragQueryPoint(arg1 : HDROP; arg2 :LPPOINT):BOOL; external 'shell32.dll' name 'DragQueryPoint';
- Procedure DragFinish(arg1 : HDROP); external 'shell32.dll' name 'DragFinish';
- Procedure DragAcceptFiles(hwnd : HWND;arg2: BOOL); external 'shell32.dll' name 'DragAcceptFiles';
- Function ShellExecuteA(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory: LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
- Function ShellExecuteW(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory: LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
- {$Ifndef Unicode}
- Function ShellExecute(HWND: hwnd;lpOperation : LPCSTR ; lpFile : LPCSTR ; lpParameters : LPCSTR; lpDirectory: LPCSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteA';
- {$Else}
- Function ShellExecute(hwnd: HWND;lpOperation : LPCWSTR ; lpFile : LPCWSTR ; lpParameters : LPCWSTR; lpDirectory: LPCWSTR; nShowCmd:LONGINT):HInst; external 'shell32.dll' name 'ShellExecuteW';
- {$Endif}
- Function FindExecutableA(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
- Function FindExecutableW(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
- {$ifndef Unicode}
- Function FindExecutable(lpFile : LPCSTR ;lpDirectory : LPCSTR ; lpResult : LPSTR):HInst;external 'shell32.dll' name 'FindExecutableA';
- {$else}
- Function FindExecutable(lpFile : LPCWSTR;lpDirectory : LPCWSTR; lpResult : LPWSTR):HInst;external 'shell32.dll' name 'FindExecutableW';
- {$endif}
- Function CommandLineToArgvW(lpCmdLine : LPCWSTR;pNumArgs : plongint):pLPWSTR;external 'shell32.dll' name 'CommandLineToArgvW';
- Function ShellAboutA(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
- Function ShellAboutW(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
- {$ifndef Unicode}
- Function ShellAbout(HWND: hWnd; szApp : LPCSTR; szOtherStuff : LPCSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutA';
- {$else}
- Function ShellAbout(HWND: hWnd; szApp : LPCWSTR; szOtherStuff : LPCWSTR; HICON : hIcon):Longint; external 'shell32.dll' name 'ShellAboutW';
- {$endif}
- Function DuplicateIcon(hinst : HINST; HICON: hIcon):HIcon; external 'shell32.dll' name 'DuplicateIcon';
- Function ExtractAssociatedIconA(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
- Function ExtractAssociatedIconW(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconW';
- {$ifndef UNICODE}
- Function ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPSTR; lpiIcon : LPWORD):HICON;external 'shell32.dll' name 'ExtractAssociatedIconA';
- {$else}
- Function ExtractAssociatedIcon(hInst : HINST; lpIconPath : LPWSTR; lpiIcon : LPWORD):HICONexternal 'shell32.dll' name 'ExtractAssociatedIconW';
- {$endif}
- Function ExtractIconA(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
- Function ExtractIconW(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
- {$ifndef UNICODE}
- Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconA';
- {$else}
- Function ExtractIcon(hInst: HINST; lpszExeFileName :LPCWSTR ; nIconIndex : UINT):HICON;external 'shell32.dll' name 'ExtractIconW';
- {$endif}
- // if(WINVER >= 0x0400)
- Type
- { init with sizeof(DRAGINFO) }
- _DRAGINFOA = Record
- uSize : UINT;
- pt : POINT;
- fNC : BOOL;
- lpFileList : LPSTR;
- grfKeyState : DWORD;
- end;
- DRAGINFOA = _DRAGINFOA;
- TDRAGINFOA = _DRAGINFOA;
- LPDRAGINFOA = ^_DRAGINFOA;
- { init with sizeof(DRAGINFO) }
- _DRAGINFOW = Record
- uSize : UINT;
- pt : POINT;
- fNC : BOOL;
- lpFileList : LPWSTR;
- grfKeyState : DWORD;
- end;
- DRAGINFOW = _DRAGINFOW;
- TDRAGINFOW = _DRAGINFOW;
- LPDRAGINFOW = ^_DRAGINFOW;
- {$ifdef UNICODE}
- DRAGINFO = DRAGINFOW;
- TDRAGINFO = DRAGINFOW;
- LPDRAGINFO = LPDRAGINFOW;
- {$else}
- DRAGINFO = DRAGINFOA;
- TDRAGINFO = DRAGINFOW;
- LPDRAGINFO = LPDRAGINFOA;
- {$endif}
- Const
- ABM_NEW = $00000000;
- ABM_REMOVE = $00000001;
- ABM_QUERYPOS = $00000002;
- ABM_SETPOS = $00000003;
- ABM_GETSTATE = $00000004;
- ABM_GETTASKBARPOS = $00000005;
- ABM_ACTIVATE = $00000006; { lParam == TRUE/FALSE means activate/deactivate }
- ABM_GETAUTOHIDEBAR = $00000007;
- ABM_SETAUTOHIDEBAR = $00000008; { this can fail at any time. MUST check the result }
- { lParam = TRUE/FALSE Set/Unset }
- { uEdge = what edge }
- ABM_WINDOWPOSCHANGED = $0000009;
- ABM_SETSTATE = $0000000a;
- ABN_STATECHANGE = $0000000; { these are put in the wparam of callback messages }
- ABN_POSCHANGED = $0000001;
- ABN_FULLSCREENAPP = $0000002;
- ABN_WINDOWARRANGE = $0000003; { lParam == TRUE means hide }
- { flags for get state }
- ABS_AUTOHIDE = $0000001;
- ABS_ALWAYSONTOP = $0000002;
- ABE_LEFT = 0;
- ABE_TOP = 1;
- ABE_RIGHT = 2;
- ABE_BOTTOM = 3;
- Type
- _AppBarData = Record
- cbSize : DWORD;
- hWnd : HWND;
- uCallbackMessage : UINT;
- uEdge : UINT;
- rc : RECT;
- lParam : LPARAM; { message specific }
- end;
- APPBARDATA = _AppBarData;
- TAPPBARDATA = _AppBarData;
- PAPPBARDATA = ^_AppBarData;
- Function SHAppBarMessage(dwMessage : DWORD; pData : APPBARDATA):UINT_PTR;external 'shell32.dll' name 'SHAppBarMessage';
- //
- // EndAppBar
- //
- Function DoEnvironmentSubstA(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
- Function DoEnvironmentSubstW(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
- {$ifndef UNICODE}
- Function DoEnvironmentSubst(szString: LPSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstA';
- {$else}
- Function DoEnvironmentSubst(szString: LPWSTR; cchString:UINT):DWORD;external 'shell32.dll' name 'DoEnvironmentSubstW';
- {$endif}
- {Macro}
- function EIRESID(x : longint) : longint;
- Function ExtractIconExA(lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
- Function ExtractIconExW(lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW';
- {$ifndef UNICODE}
- Function ExtractIconEx (lpszFile : LPCSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExA';
- {$else}
- Function ExtractIconEx (lpszFile : LPCWSTR; nIconIndex:Longint; phiconLarge:pHICON; phiconSmall:pHIcon; nIcons:UINT):UINT; external 'shell32.dll' name 'ExtractIconExW;
- {$endif}
- //
- // Shell File Operations
- //
- //ifndef FO_MOVE //these need to be kept in sync with the ones in shlobj.h}
- Const
- FO_MOVE = $0001;
- FO_COPY = $0002;
- FO_DELETE = $0003;
- FO_RENAME = $0004;
- FOF_MULTIDESTFILES = $0001;
- FOF_CONFIRMMOUSE = $0002;
- FOF_SILENT = $0004; { don't create progress/report }
- FOF_RENAMEONCOLLISION = $0008;
- FOF_NOCONFIRMATION = $0010; { Don't prompt the user. }
- FOF_WANTMAPPINGHANDLE = $0020; { Fill in SHFILEOPSTRUCT.hNameMappings }
- FOF_ALLOWUNDO = $0040; { Must be freed using SHFreeNameMappings }
- FOF_FILESONLY = $0080; { on *.*, do only files }
- FOF_SIMPLEPROGRESS = $0100; { means don't show names of files }
- FOF_NOCONFIRMMKDIR = $0200; { don't confirm making any needed dirs }
- FOF_NOERRORUI = $0400; { don't put up error UI }
- FOF_NOCOPYSECURITYATTRIBS= $0800; { dont copy NT file Security Attributes }
- FOF_NORECURSION = $1000; { don't recurse into directories. }
- //if (_WIN32_IE >= 0x0500)
- FOF_NO_CONNECTED_ELEMENTS= $2000; { don't operate on connected elements. }
- FOF_WANTNUKEWARNING = $4000; { during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION) }
- //endif
- //if (_WIN32_WINNT >= 0x0501)
- FOF_NORECURSEREPARSE = $8000; { treat reparse points as objects, not containers }
- //endif
- Type
- FILEOP_FLAGS = WORD;
- Const
- PO_DELETE = $0013; { printer is being deleted }
- PO_RENAME = $0014; { printer is being renamed }
- PO_PORTCHANGE = $0020; { port this printer connected to is being changed }
- { if this id is set, the strings received by }
- { the copyhook are a doubly-null terminated }
- { list of strings. The first is the printer }
- { name and the second is the printer port. }
- PO_REN_PORT = $0034; { PO_RENAME and PO_PORTCHANGE at same time. }
- { no POF_ flags currently defined }
- Type
- PRINTEROP_FLAGS = WORD;
- //endif}
- { FO_MOVE }
- { implicit parameters are: }
- { if pFrom or pTo are unqualified names the current directories are }
- { taken from the global current drive/directory settings managed }
- { by Get/SetCurrentDrive/Directory }
- { }
- { the global confirmation settings }
- { only used if FOF_SIMPLEPROGRESS }
- Type
- _SHFILEOPSTRUCTA = Record
- hwnd : HWND;
- wFunc : UINT;
- pFrom : LPCSTR;
- pTo : LPCSTR;
- fFlags : FILEOP_FLAGS;
- fAnyOperationsAborted : BOOL;
- hNameMappings : LPVOID;
- lpszProgressTitle : LPCSTR; { only used if FOF_SIMPLEPROGRESS }
- end;
- SHFILEOPSTRUCTA = _SHFILEOPSTRUCTA;
- TSHFILEOPSTRUCTA = _SHFILEOPSTRUCTA;
- LPSHFILEOPSTRUCTA = ^_SHFILEOPSTRUCTA;
- _SHFILEOPSTRUCTW = record
- hwnd : HWND;
- wFunc : UINT;
- pFrom : LPCWSTR;
- pTo : LPCWSTR;
- fFlags : FILEOP_FLAGS;
- fAnyOperationsAborted : BOOL;
- hNameMappings : LPVOID;
- lpszProgressTitle : LPCWSTR;
- end;
- SHFILEOPSTRUCTW = _SHFILEOPSTRUCTW;
- TSHFILEOPSTRUCTW = _SHFILEOPSTRUCTW;
- LPSHFILEOPSTRUCTW = ^_SHFILEOPSTRUCTW;
- {$ifdef UNICODE}
- SHFILEOPSTRUCT = SHFILEOPSTRUCTW;
- TSHFILEOPSTRUCT = SHFILEOPSTRUCTW;
- LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTW;
- {$else}
- SHFILEOPSTRUCT = SHFILEOPSTRUCTA;
- TSHFILEOPSTRUCT = SHFILEOPSTRUCTA;
- LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTA;
- {$endif}
- Function SHFileOperationA(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
- Function SHFileOperationW(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
- {$ifndef UNICODE }
- Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTA ):Longint;external 'shell32.dll' name 'SHFileOperationA';
- {$else}
- Function SHFileOperation(lpFileOp:LPSHFILEOPSTRUCTW ):Longint;external 'shell32.dll' name 'SHFileOperationW';
- {$endif}
- Procedure SHFreeNameMappings(hNameMappings : THandle);external 'shell32.dll' name 'SHFreeNameMappings';
- Type
- _SHNAMEMAPPINGA = Record
- pszOldPath : LPSTR;
- pszNewPath : LPSTR;
- cchOldPath : longint;
- cchNewPath : longint;
- end;
- SHNAMEMAPPINGA = _SHNAMEMAPPINGA;
- TSHNAMEMAPPINGA = _SHNAMEMAPPINGA;
- LPSHNAMEMAPPINGA = ^_SHNAMEMAPPINGA;
- _SHNAMEMAPPINGW = Record
- pszOldPath : LPWSTR;
- pszNewPath : LPWSTR;
- cchOldPath : longint;
- cchNewPath : longint;
- end;
- SHNAMEMAPPINGW = _SHNAMEMAPPINGW;
- TSHNAMEMAPPINGW = _SHNAMEMAPPINGW;
- LPSHNAMEMAPPINGW = ^_SHNAMEMAPPINGW;
- {$ifndef UNICODE}
- SHNAMEMAPPING = SHNAMEMAPPINGW;
- TSHNAMEMAPPING = SHNAMEMAPPINGW;
- LPSHNAMEMAPPING = LPSHNAMEMAPPINGW;
- {$else}
- SHNAMEMAPPING = SHNAMEMAPPINGA;
- TSHNAMEMAPPING = SHNAMEMAPPINGA;
- LPSHNAMEMAPPING = LPSHNAMEMAPPINGA;
- {$endif}
- //
- // End Shell File Operations
- //
- //
- // Begin ShellExecuteEx and family
- //
- { ShellExecute() and ShellExecuteEx() error codes }
- { regular WinExec() codes }
- const
- SE_ERR_FNF = 2; { file not found }
- SE_ERR_PNF = 3; { path not found }
- SE_ERR_ACCESSDENIED = 5; { access denied }
- SE_ERR_OOM = 8; { out of memory }
- SE_ERR_DLLNOTFOUND = 32;
- // endif WINVER >= 0x0400
- { error values for ShellExecute() beyond the regular WinExec() codes }
- SE_ERR_SHARE = 26;
- SE_ERR_ASSOCINCOMPLETE = 27;
- SE_ERR_DDETIMEOUT = 28;
- SE_ERR_DDEFAIL = 29;
- SE_ERR_DDEBUSY = 30;
- SE_ERR_NOASSOC = 31;
- //if(WINVER >= 0x0400)}
- { Note CLASSKEY overrides CLASSNAME }
- SEE_MASK_CLASSNAME = $00000001;
- SEE_MASK_CLASSKEY = $00000003;
- { Note INVOKEIDLIST overrides IDLIST }
- SEE_MASK_IDLIST = $00000004;
- SEE_MASK_INVOKEIDLIST = $0000000c;
- SEE_MASK_ICON = $00000010;
- SEE_MASK_HOTKEY = $00000020;
- SEE_MASK_NOCLOSEPROCESS = $00000040;
- SEE_MASK_CONNECTNETDRV = $00000080;
- SEE_MASK_FLAG_DDEWAIT = $00000100;
- SEE_MASK_DOENVSUBST = $00000200;
- SEE_MASK_FLAG_NO_UI = $00000400;
- SEE_MASK_UNICODE = $00004000;
- SEE_MASK_NO_CONSOLE = $00008000;
- SEE_MASK_ASYNCOK = $00100000;
- SEE_MASK_HMONITOR = $00200000;
- //if (_WIN32_IE >= 0x0500)
- SEE_MASK_NOQUERYCLASSSTORE= $01000000;
- SEE_MASK_WAITFORINPUTIDLE= $02000000;
- //endif (_WIN32_IE >= 0x500)
- //if (_WIN32_IE >= 0x0560)
- SEE_MASK_FLAG_LOG_USAGE = $04000000;
- //endif
- { (_WIN32_IE >= 0x560) }
- type
- _SHELLEXECUTEINFOA = record
- cbSize : DWORD;
- fMask : ULONG;
- hwnd : HWND;
- lpVerb : LPCSTR;
- lpFile : LPCSTR;
- lpParameters : LPCSTR;
- lpDirectory : LPCSTR;
- nShow : longint;
- hInstApp : HINST;
- lpIDList : LPVOID;
- lpClass : LPCSTR;
- hkeyClass : HKEY;
- dwHotKey : DWORD;
- DUMMYUNIONNAME : record
- case longint of
- 0 : ( hIcon : HANDLE );
- 1 : ( hMonitor : HANDLE );
- end;
- hProcess : HANDLE;
- end;
- SHELLEXECUTEINFOA = _SHELLEXECUTEINFOA;
- TSHELLEXECUTEINFOA = _SHELLEXECUTEINFOA;
- LPSHELLEXECUTEINFOA = ^_SHELLEXECUTEINFOA;
- _SHELLEXECUTEINFOW = record
- cbSize : DWORD;
- fMask : ULONG;
- hwnd : HWND;
- lpVerb : lpcwstr;
- lpFile : lpcwstr;
- lpParameters : lpcwstr;
- lpDirectory : lpcwstr;
- nShow : longint;
- hInstApp : HINST;
- lpIDList : LPVOID;
- lpClass : LPCWSTR;
- hkeyClass : HKEY;
- dwHotKey : DWORD;
- DUMMYUNIONNAME : record
- case longint of
- 0 : ( hIcon : HANDLE );
- 1 : ( hMonitor : HANDLE );
- end;
- hProcess : HANDLE;
- end;
- SHELLEXECUTEINFOW = _SHELLEXECUTEINFOW;
- TSHELLEXECUTEINFOW = _SHELLEXECUTEINFOW;
- LPSHELLEXECUTEINFOW = ^_SHELLEXECUTEINFOW;
- {$ifdef UNICODE}
- SHELLEXECUTEINFO = SHELLEXECUTEINFOW;
- TSHELLEXECUTEINFO = SHELLEXECUTEINFOW;
- LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOW;
- {$else}
- SHELLEXECUTEINFO = SHELLEXECUTEINFOA;
- TSHELLEXECUTEINFO = SHELLEXECUTEINFOA;
- LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOA;
- {$endif}
- Function ShellExecuteExA(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
- Function ShellExecuteExW(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
- {$ifdef UNICODE}
- Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOA):Bool;external 'shell32.dll' name 'ShellExecuteExA';
- {$else}
- Function ShellExecuteEx(lpExecInfo: LPSHELLEXECUTEINFOW):Bool;external 'shell32.dll' name 'ShellExecuteExW';
- {$endif}
- Procedure WinExecErrorA(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR); external 'shell32.dll' name 'WinExecErrorA';
- Procedure WinExecErrorW(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
- {$ifndef UNICODE}
- Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCSTR; lpstrTitle:LPCSTR); external 'shell32.dll' name 'WinExecErrorA';
- {$else}
- Procedure WinExecError(HWND : hwnd; error : Longint;lpstrFileName:LPCWSTR; lpstrTitle:LPCWSTR); external 'shell32.dll' name 'WinExecErrorW';
- {$endif}
- type
- _SHCREATEPROCESSINFOW = record
- cbSize : DWORD;
- fMask : ULONG;
- hwnd : HWND;
- pszFile : LPCWSTR;
- pszParameters : LPCWSTR;
- pszCurrentDirectory : LPCWSTR;
- {in} hUserToken : HANDLE;
- {in} lpProcessAttributes : LPSECURITY_ATTRIBUTES;
- {in} lpThreadAttributes : LPSECURITY_ATTRIBUTES;
- {in} bInheritHandles : BOOL;
- {in} dwCreationFlags : DWORD;
- {in} lpStartupInfo : LPSTARTUPINFOW;
- {out} lpProcessInformation : LPPROCESS_INFORMATION;
- end;
- SHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
- TSHCREATEPROCESSINFOW = _SHCREATEPROCESSINFOW;
- PSHCREATEPROCESSINFOW = ^_SHCREATEPROCESSINFOW;
- Function SHCreateProcessAsUserW(pscpi : PSHCREATEPROCESSINFOW):Bool;external 'shell32.dll' name 'SHCreateProcessAsUserW';
- //
- // End ShellExecuteEx and family }
- //
- //
- // RecycleBin
- //
- { struct for query recycle bin info }
- Type
- _SHQUERYRBINFO = record
- cbSize : DWORD;
- i64Size : int64;
- i64NumItems : int64;
- end;
- SHQUERYRBINFO = _SHQUERYRBINFO;
- TSHQUERYRBINFO = _SHQUERYRBINFO;
- LPSHQUERYRBINFO = ^_SHQUERYRBINFO;
- { flags for SHEmptyRecycleBin }
- const
- SHERB_NOCONFIRMATION = $00000001;
- SHERB_NOPROGRESSUI = $00000002;
- SHERB_NOSOUND = $00000004;
- function SHQueryRecycleBinA(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
- function SHQueryRecycleBinW(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
- {$ifndef UNICODE}
- function SHQueryRecycleBin(pszRootPath:LPCSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinA';
- {$else}
- function SHQueryRecycleBin(pszRootPath:LPCWSTR; pSHQueryRBInfo:LPSHQUERYRBINFO):HRESULT;external 'shell32.dll' name 'SHQueryRecycleBinW';
- {$endif}
- { !UNICODE }
- function SHEmptyRecycleBinA(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
- function SHEmptyRecycleBinW(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
- {$ifdef UNICODE}
- function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinA';
- {$else}
- function SHEmptyRecycleBin(hwnd:HWND; pszRootPath:LPCWSTR; dwFlags:DWORD):HRESULT;external 'shell32.dll' name 'SHEmptyRecycleBinW';
- {$endif}
- //
- // end of RecycleBin
- //
- //
- // Tray notification definitions
- //
- Type
- _NOTIFYICONDATAA = record
- cbSize : DWORD;
- hWnd : HWND;
- uID : UINT;
- uFlags : UINT;
- uCallbackMessage : UINT;
- hIcon : HICON;
- {$ifdef IELower5}
- szTip : array[0..63] of CHAR;
- {$else}
- szTip : array[0..127] of CHAR;
- {$endif}
- {$ifdef IEhigherEqual5}
- dwState : DWORD;
- dwStateMask : DWORD;
- szInfo : array[0..255] of CHAR;
- DUMMYUNIONNAME : record
- case longint of
- 0 : ( uTimeout : UINT );
- 1 : ( uVersion : UINT );
- end;
- szInfoTitle : array[0..63] of CHAR;
- dwInfoFlags : DWORD;
- {$endif}
- {$ifdef IEHighEq6}
- guidItem : GUID;
- {$endif}
- end;
- NOTIFYICONDATAA = _NOTIFYICONDATAA;
- TNOTIFYICONDATAA = _NOTIFYICONDATAA;
- PNOTIFYICONDATAA = ^_NOTIFYICONDATAA;
- _NOTIFYICONDATAW = record
- cbSize : DWORD;
- hWnd : HWND;
- uID : UINT;
- uFlags : UINT;
- uCallbackMessage : UINT;
- hIcon : HICON;
- {$ifdef IELower5}
- szTip : array[0..63] of WCHAR;
- {$else}
- szTip : array[0..127] of WCHAR;
- {$endif}
- {$ifdef IEhigherEqual5}
- dwState : DWORD;
- dwStateMask : DWORD;
- szInfo : array[0..255] of WCHAR;
- DUMMYUNIONNAME : record
- case longint of
- 0 : ( uTimeout : UINT );
- 1 : ( uVersion : UINT );
- end;
- szInfoTitle : array[0..63] of CHAR;
- dwInfoFlags : DWORD;
- {$endif}
- {$ifdef IEHighEq6}
- guidItem : GUID;
- {$endif}
- end;
- NOTIFYICONDATAW = _NOTIFYICONDATAW;
- TNOTIFYICONDATAW = _NOTIFYICONDATAW;
- PNOTIFYICONDATAW = ^_NOTIFYICONDATAW;
- {$ifdef UNICODE}
- NOTIFYICONDATA = NOTIFYICONDATAW;
- TNOTIFYICONDATA = NOTIFYICONDATAW;
- PNOTIFYICONDATA = PNOTIFYICONDATAW;
- {$else}
- NOTIFYICONDATA = NOTIFYICONDATAA;
- TNOTIFYICONDATA = NOTIFYICONDATAA;
- PNOTIFYICONDATA = PNOTIFYICONDATAA;
- {$endif}
- { UNICODE }
- {
- #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
- #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
- #ifdef UNICODE
- #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
- #else
- #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
- #endif
- #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
- #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
- #ifdef UNICODE
- #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
- #else
- #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
- #endif
- }
- const
- NIN_SELECT = WM_USER + 0;
- NINF_KEY = $1;
- NIN_KEYSELECT = NIN_SELECT or NINF_KEY;
- // if (_WIN32_IE >= 0x0501)}
- NIN_BALLOONSHOW = WM_USER + 2;
- NIN_BALLOONHIDE = WM_USER + 3;
- NIN_BALLOONTIMEOUT = WM_USER + 4;
- NIN_BALLOONUSERCLICK = WM_USER + 5;
- NIM_ADD = $00000000;
- NIM_MODIFY = $00000001;
- NIM_DELETE = $00000002;
- //if (_WIN32_IE >= 0x0500)}
- NIM_SETFOCUS = $00000003;
- NIM_SETVERSION = $00000004;
- NOTIFYICON_VERSION = 3;
- NIF_MESSAGE = $00000001;
- NIF_ICON = $00000002;
- NIF_TIP = $00000004;
- // if (_WIN32_IE >= 0x0500)}
- NIF_STATE = $00000008;
- NIF_INFO = $00000010;
- //if (_WIN32_IE >= 0x600)}
- NIF_GUID = $00000020;
- //if (_WIN32_IE >= 0x0500)}
- NIS_HIDDEN = $00000001;
- NIS_SHAREDICON = $00000002;
- { says this is the source of a shared icon }
- { Notify Icon Infotip flags }
- NIIF_NONE = $00000000;
- { icon flags are mutually exclusive }
- { and take only the lowest 2 bits }
- NIIF_INFO = $00000001;
- NIIF_WARNING = $00000002;
- NIIF_ERROR = $00000003;
- NIIF_ICON_MASK = $0000000F;
- //if (_WIN32_IE >= 0x0501)}
- NIIF_NOSOUND = $00000010;
- Function Shell_NotifyIconA( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
- Function Shell_NotifyIconW( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
- {$ifndef UNICODE}
- Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAA):Bool;external 'shell32.dll' name 'Shell_NotifyIconA';
- {$else}
- Function Shell_NotifyIcon( dwMessage: Dword;lpData: PNOTIFYICONDATAW):Bool;external 'shell32.dll' name 'Shell_NotifyIconW';
- {$endif}
- //
- // End Tray Notification Icons
- //
- //
- // Begin SHGetFileInfo
- //
- {
- The SHGetFileInfo API provides an easy way to get attributes
- for a file given a pathname.
- PARAMETERS
- pszPath file name to get info about
- dwFileAttributes file attribs, only used with SHGFI_USEFILEATTRIBUTES
- psfi place to return file info
- cbFileInfo size of structure
- uFlags flags
- RETURN
- TRUE if things worked
- }
- { out: icon }
- { out: icon index }
- { out: SFGAO_ flags }
- { out: display name (or path) }
- { out: type name }
- type
- _SHFILEINFOA = record
- hIcon : HICON; { out: icon }
- iIcon : longint; { out: icon index }
- dwAttributes : DWORD; { out: SFGAO_ flags }
- szDisplayName : array[0..(MAX_PATH)-1] of CHAR; { out: display name (or path) }
- szTypeName : array[0..79] of CHAR; { out: type name }
- end;
- SHFILEINFOA = _SHFILEINFOA;
- TSHFILEINFOA = _SHFILEINFOA;
- pSHFILEINFOA = ^_SHFILEINFOA;
- _SHFILEINFOW = record
- hIcon : HICON; { out: icon }
- iIcon : longint; { out: icon index }
- dwAttributes : DWORD; { out: SFGAO_ flags }
- szDisplayName : array[0..(MAX_PATH)-1] of WCHAR;{ out: display name (or path) }
- szTypeName : array[0..79] of WCHAR; { out: type name }
- end;
- SHFILEINFOW = _SHFILEINFOW;
- TSHFILEINFOW = _SHFILEINFOW;
- pSHFILEINFOW = ^_SHFILEINFOW;
- {$ifndef UNICODE}
- SHFILEINFO = SHFILEINFOW;
- TSHFILEINFO = SHFILEINFOW;
- pFILEINFO = SHFILEINFOW;
- {$else}
- SHFILEINFO = SHFILEINFOA;
- TSHFILEINFO = SHFILEINFOA;
- pFILEINFO = SHFILEINFOA;
- {$endif}
- { NOTE: This is also in shlwapi.h. Please keep in synch. }
- const
- SHGFI_ICON = $000000100; { get Icon}
- SHGFI_DISPLAYNAME = $000000200; { get display name }
- SHGFI_TYPENAME = $000000400; { get type name }
- SHGFI_ATTRIBUTES = $000000800; { get attributes }
- SHGFI_ICONLOCATION = $000001000; { get icon location}
- SHGFI_EXETYPE = $000002000; { return exe type }
- SHGFI_SYSICONINDEX = $000004000; { get system icon index }
- SHGFI_LINKOVERLAY = $000008000; { put a link overlay on icon }
- SHGFI_SELECTED = $000010000; { show icon in selected state }
- SHGFI_ATTR_SPECIFIED = $000020000; { get only specified attributes }
- SHGFI_LARGEICON = $000000000; { get large icon }
- SHGFI_SMALLICON = $000000001; { get small icon }
- SHGFI_OPENICON = $000000002; { get open icon }
- SHGFI_SHELLICONSIZE = $000000004; { get shell size icon }
- SHGFI_PIDL = $000000008; { pszPath is a pidl }
- SHGFI_USEFILEATTRIBUTES = $000000010; { use passed dwFileAttribute }
- //if (_WIN32_IE >= 0x0500)}
- SHGFI_ADDOVERLAYS = $000000020; { apply the appropriate overlays }
- SHGFI_OVERLAYINDEX = $000000040; { Get the index of the overlay }
- { in the upper 8 bits of the iIcon }
- Function SHGetFileInfoA(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD_PTR;external 'shell32.dll' name 'SHGetFileInfoA';
- Function SHGetFileInfoW(pszPath: LPCWSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD_PTR;external 'shell32.dll' name 'SHGetFileInfoW';
- {$ifndef UNICODE}
- Function SHGetFileInfo(pszPath: LPCSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOA; cbFileInfo,UFlags: UINT):DWORD_PTR;external 'shell32.dll' name 'SHGetFileInfoA';
- {$else}
- Function SHGetFileInfo(pszPath: LPCWSTR; dwFileAttributes : DWORD; psfi: pSHFILEINFOW; cbFileInfo,UFlags: UINT):DWORD_PTR;external 'shell32.dll' name 'SHGetFileInfoW';
- {$endif}
- Function SHGetDiskFreeSpaceExA( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
- Function SHGetDiskFreeSpaceExW( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
- {$ifndef UNICODE}
- Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
- Function SHGetDiskFreeSpace( pszDirectoryName : LPCSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGER):Bool;external 'shell32.dll' name 'SHGetDiskFreeSpaceExA';
- {$else}
- Function SHGetDiskFreeSpaceEx( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGERexternal 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
- Function SHGetDiskFreeSpace( pszDirectoryName : LPCWSTR; pulFreeBytesAvailableToCaller : pULARGE_INTEGER; pulTotalNumberOfBytes : pULARGE_INTEGER;pulTotalNumberOfFreeBytes: pULARGE_INTEGERexternal 'shell32.dll' name 'SHGetDiskFreeSpaceExW';
- {$endif}
- Function SHGetNewLinkInfoA(pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
- Function SHGetNewLinkInfoW(pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
- {$ifdef UNICODE}
- Function SHGetNewLinkInfo (pszLinkTo:LPCSTR;pszDir:LPCSTR; pszName:LPSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoA';
- {$else}
- Function SHGetNewLinkInfo (pszLinkTo:LPCWSTR;pszDir:LPCWSTR; pszName:LPWSTR; pfMustCopy: pBool; uFlags:UINT):Bool;external 'shell32.dll' name 'SHGetNewLinkInfoW';
- {$endif}
- const
- SHGNLI_PIDL = $000000001; { pszLinkTo is a pidl }
- SHGNLI_PREFIXNAME = $000000002; { Make name "Shortcut to xxx" }
- SHGNLI_NOUNIQUE = $000000004; { don't do the unique name generation }
- {$if (_WIN32_IE >= 0x0501)}
- SHGNLI_NOLNK = $000000008; { don't add ".lnk" extension }
- {$endif}
- { _WIN2_IE >= 0x0501 }
- //
- // End SHGetFileInfo
- //
- { Printer stuff }
- PRINTACTION_OPEN = 0;
- PRINTACTION_PROPERTIES = 1;
- PRINTACTION_NETINSTALL = 2;
- PRINTACTION_NETINSTALLLINK = 3;
- PRINTACTION_TESTPAGE = 4;
- PRINTACTION_OPENNETPRN = 5;
- {$ifdef WINNT}
- PRINTACTION_DOCUMENTDEFAULTS = 6;
- PRINTACTION_SERVERPROPERTIES = 7;
- {$endif}
- Function SHInvokePrinterCommandA(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
- Function SHInvokePrinterCommandW(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
- {$ifndef UNICODE}
- Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCSTR; lpBuf2: LPCSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandA';
- {$else}
- Function SHInvokePrinterCommand(HWND: hwnd; uAction:UINT; lpBuf1: LPCWSTR; lpBuf2: LPCWSTR; fModal:Bool):Bool;external 'shell32.dll' name 'SHInvokePrinterCommandW';
- {$endif}
- // WINVER >= 0x0400
- //if (_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0500)
- //
- // The SHLoadNonloadedIconOverlayIdentifiers API causes the shell's
- // icon overlay manager to load any registered icon overlay
- // identifers that are not currently loaded. This is useful if an
- // overlay identifier did not load at shell startup but is needed
- // and can be loaded at a later time. Identifiers already loaded
- // are not affected. Overlay identifiers implement the
- // IShellIconOverlayIdentifier interface.
- //
- // Returns:
- // S_OK
- //
- function SHLoadNonloadedIconOverlayIdentifiers:HResult; external 'shell32.dll' name 'SHInvokePrinterCommandW';
- //
- // The SHIsFileAvailableOffline API determines whether a file
- // or folder is available for offline use.
- //
- // Parameters:
- // pwszPath file name to get info about
- // pdwStatus (optional) OFFLINE_STATUS_* flags returned here
- //
- // Returns:
- // S_OK File/directory is available offline, unless
- // OFFLINE_STATUS_INCOMPLETE is returned.
- // E_INVALIDARG Path is invalid, or not a net path
- // E_FAIL File/directory is not available offline
- //
- // Notes:
- // OFFLINE_STATUS_INCOMPLETE is never returned for directories.
- // Both OFFLINE_STATUS_LOCAL and OFFLINE_STATUS_REMOTE may be returned,
- // indicating "open in both places." This is common when the server is online.
- //
- function SHIsFileAvailableOffline(pwszPath:LPCWSTR; pdwStatus:LPDWORD):HRESULT; external 'shell32.dll' name 'SHIsFileAvailableOffline';
- const
- OFFLINE_STATUS_LOCAL = $0001; { If open, it's open locally }
- OFFLINE_STATUS_REMOTE = $0002; { If open, it's open remotely }
- OFFLINE_STATUS_INCOMPLETE = $0004; { The local copy is currently incomplete. }
- { The file will not be available offline }
- { until it has been synchronized. }
- { sets the specified path to use the string resource }
- { as the UI instead of the file system name }
- function SHSetLocalizedName(pszPath:LPWSTR; pszResModule:LPCWSTR; idsRes:longint):HRESULT;external 'shell32.dll' name 'SHSetLocalizedName';
- //if _WIN32_IE >= 0x0600}
- function SHEnumerateUnreadMailAccountsA(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsA';
- function SHEnumerateUnreadMailAccountsW(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
- {$ifndef UNICODE}
- function SHEnumerateUnreadMailAccounts(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsA';
- {$else}
- function SHEnumerateUnreadMailAccounts(hKeyUser:HKEY; dwIndex:DWORD; pszMailAddress:LPWSTR; cchMailAddress:longint):HRESULT;external 'shell32.dll' name 'SHEnumerateUnreadMailAccountsW';
- {$endif}
- function SHGetUnreadMailCountA(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
- function SHGetUnreadMailCountW(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
- {$ifdef UNICODE}
- function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountA';
- {$else}
- function SHGetUnreadMailCount(hKeyUser:HKEY; pszMailAddress:LPCWSTR; pdwCount:PDWORD; pFileTime:PFILETIME; pszShellExecuteCommand:LPWSTR;cchShellExecuteCommand:longint):HRESULT;external 'shell32.dll' name 'SHGetUnreadMailCountW';
- {$endif}
- function SHSetUnreadMailCountA(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
- function SHSetUnreadMailCountW(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
- {$ifndef UNICODE}
- function SHSetUnreadMailCount(pszMailAddress:LPCSTR; dwCount:DWORD; pszShellExecuteCommand:LPCSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountA';
- {$else}
- function SHSetUnreadMailCount(pszMailAddress:LPCWSTR; dwCount:DWORD; pszShellExecuteCommand:LPCWSTR):HRESULT;external 'shell32.dll' name 'SHSetUnreadMailCountW';
- {$endif}
- // _WIN32_IE >= 0x0600 }
- // if _WIN32_IE >= 0x0600}
- function SHGetImageList(iImageList:longint;CONST riid:TIID; ppvObj:Ppointer):HRESULT;external 'shell32.dll' name 'SHGetImageList';
- Const
- SHIL_LARGE = 0; { normally 32x32 }
- SHIL_SMALL = 1; { normally 16x16 }
- SHIL_EXTRALARGE = 2;
- SHIL_SYSSMALL = 3; { like SHIL_SMALL, but tracks system small icon metric correctly }
- SHIL_LAST = SHIL_SYSSMALL;
- { Function call types for ntshrui folder sharing helpers }
- //typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCSTR pszPath);
- //typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW)(IN HWND hwndParent, IN LPCWSTR pszPath);
- implementation
- function EIRESID(x : longint) : longint;
- Begin
- EIRESID:=-x;
- End;
- end.
|