ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

shellapi.h
Go to the documentation of this file.
00001 #ifndef _SHELLAPI_H
00002 #define _SHELLAPI_H
00003 
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007 #ifdef _MSC_VER
00008 #pragma warning(push)
00009 #pragma warning(disable:4201)
00010 #endif
00011 
00012 #if !defined(_WIN64)
00013 #include <pshpack1.h>
00014 #endif
00015 
00016 #define WINSHELLAPI DECLSPEC_IMPORT
00017 #define ABE_LEFT    0
00018 #define ABE_TOP 1
00019 #define ABE_RIGHT   2
00020 #define ABE_BOTTOM  3
00021 #define ABS_AUTOHIDE    1
00022 #define ABS_ALWAYSONTOP 2
00023 #define SEE_MASK_CLASSNAME  1
00024 #define SEE_MASK_CLASSKEY   3
00025 #define SEE_MASK_IDLIST 4
00026 #define SEE_MASK_INVOKEIDLIST   12
00027 #define SEE_MASK_ICON   0x10
00028 #define SEE_MASK_HOTKEY 0x20
00029 #define SEE_MASK_NOCLOSEPROCESS 0x40
00030 #define SEE_MASK_CONNECTNETDRV  0x80
00031 #define SEE_MASK_NOASYNC    0x00000100
00032 #define SEE_MASK_FLAG_DDEWAIT   SEE_MASK_NOASYNC
00033 #define SEE_MASK_DOENVSUBST 0x200
00034 #define SEE_MASK_FLAG_NO_UI 0x400
00035 #define SEE_MASK_NO_CONSOLE 0x8000
00036 #define SEE_MASK_UNICODE    0x10000
00037 #define SEE_MASK_ASYNCOK    0x100000
00038 #define SEE_MASK_HMONITOR   0x200000
00039 #define SEE_MASK_NOZONECHECKS   0x00800000
00040 #define ABM_NEW 0
00041 #define ABM_REMOVE  1
00042 #define ABM_QUERYPOS    2
00043 #define ABM_SETPOS  3
00044 #define ABM_GETSTATE    4
00045 #define ABM_GETTASKBARPOS   5
00046 #define ABM_ACTIVATE    6
00047 #define ABM_GETAUTOHIDEBAR  7
00048 #define ABM_SETAUTOHIDEBAR  8
00049 #define ABM_WINDOWPOSCHANGED    9
00050 #define ABN_STATECHANGE     0
00051 #define ABN_POSCHANGED      1
00052 #define ABN_FULLSCREENAPP   2
00053 #define ABN_WINDOWARRANGE   3
00054 #define NIM_ADD 0
00055 #define NIM_MODIFY  1
00056 #define NIM_DELETE  2
00057 #if _WIN32_IE >= 0x0500
00058 #define NOTIFYICON_VERSION 3
00059 #define NIM_SETFOCUS    3
00060 #define NIM_SETVERSION  4
00061 #endif
00062 #define NIF_MESSAGE 1
00063 #define NIF_ICON    2
00064 #define NIF_TIP 4
00065 #define NIF_STATE   8
00066 #if _WIN32_IE >= 0x0500
00067 #define NIF_INFO    16
00068 #define NIS_HIDDEN  1
00069 #define NIS_SHAREDICON  2
00070 #define NIIF_NONE   0
00071 #define NIIF_INFO   1
00072 #define NIIF_WARNING    2
00073 #define NIIF_ERROR  3
00074 #define NIIF_USER   4
00075 #if _WIN32_IE >= 0x0600
00076 #define NIIF_ICON_MASK  0xf
00077 #define NIIF_NOSOUND    0x10
00078 #endif /* _WIN32_IE >= 0x0600 */
00079 #endif /* _WIN32_IE >= 0x0500 */
00080 #define SE_ERR_FNF  2
00081 #define SE_ERR_PNF  3
00082 #define SE_ERR_ACCESSDENIED 5
00083 #define SE_ERR_OOM  8
00084 #define SE_ERR_DLLNOTFOUND  32
00085 #define SE_ERR_SHARE    26
00086 #define SE_ERR_ASSOCINCOMPLETE  27
00087 #define SE_ERR_DDETIMEOUT   28
00088 #define SE_ERR_DDEFAIL  29
00089 #define SE_ERR_DDEBUSY  30
00090 #define SE_ERR_NOASSOC  31
00091 #define FO_MOVE 1
00092 #define FO_COPY 2
00093 #define FO_DELETE   3
00094 #define FO_RENAME   4
00095 
00096 #define FOF_MULTIDESTFILES         0x0001
00097 #define FOF_CONFIRMMOUSE           0x0002
00098 #define FOF_SILENT                 0x0004
00099 #define FOF_RENAMEONCOLLISION      0x0008
00100 #define FOF_NOCONFIRMATION         0x0010
00101 #define FOF_WANTMAPPINGHANDLE      0x0020
00102 #define FOF_ALLOWUNDO              0x0040
00103 #define FOF_FILESONLY              0x0080
00104 #define FOF_SIMPLEPROGRESS         0x0100
00105 #define FOF_NOCONFIRMMKDIR         0x0200
00106 #define FOF_NOERRORUI              0x0400
00107 #define FOF_NOCOPYSECURITYATTRIBS  0x0800
00108 #define FOF_NORECURSION            0x1000  /* don't do recursion into directories */
00109 #define FOF_NO_CONNECTED_ELEMENTS  0x2000  /* don't do connected files */
00110 #define FOF_WANTNUKEWARNING        0x4000  /* during delete operation, warn if delete instead
00111                                               of recycling (even if FOF_NOCONFIRMATION) */
00112 #define FOF_NORECURSEREPARSE       0x8000  /* don't do recursion into reparse points */
00113 
00114 #define PO_DELETE 19
00115 #define PO_RENAME 20
00116 #define PO_PORTCHANGE 32
00117 #define PO_REN_PORT 52
00118 #define SHGFI_ADDOVERLAYS   32
00119 #define SHGFI_OVERLAYINDEX  64
00120 #define SHGFI_ICON  256
00121 #define SHGFI_DISPLAYNAME   512
00122 #define SHGFI_TYPENAME  1024
00123 #define SHGFI_ATTRIBUTES    2048
00124 #define SHGFI_ICONLOCATION  4096
00125 #define SHGFI_EXETYPE 8192
00126 #define SHGFI_SYSICONINDEX 16384
00127 #define SHGFI_LINKOVERLAY 32768
00128 #define SHGFI_SELECTED 65536
00129 #define SHGFI_ATTR_SPECIFIED 131072
00130 #define SHGFI_LARGEICON 0
00131 #define SHGFI_SMALLICON 1
00132 #define SHGFI_OPENICON  2
00133 #define SHGFI_SHELLICONSIZE 4
00134 #define SHGFI_PIDL  8
00135 #define SHGFI_USEFILEATTRIBUTES 16
00136 
00137 #if (NTDDI_VERSION >= NTDDI_WINXP)
00138 #define SHIL_LARGE        0x0
00139 #define SHIL_SMALL        0x1
00140 #define SHIL_EXTRALARGE   0x2
00141 #define SHIL_SYSSMALL     0x3
00142 #if (NTDDI_VERSION >= NTDDI_VISTA)
00143 #define SHIL_JUMBO        0x4
00144 #define SHIL_LAST         SHIL_JUMBO
00145 #else
00146 #define SHIL_LAST         SHIL_SYSSMALL
00147 #endif
00148 #endif
00149 
00150 typedef struct _SHCREATEPROCESSINFOW
00151 {
00152     DWORD cbSize;
00153     ULONG fMask;
00154     HWND hwnd;
00155     LPCWSTR pszFile;
00156     LPCWSTR pszParameters;
00157     LPCWSTR pszCurrentDirectory;
00158     IN HANDLE hUserToken;
00159     IN LPSECURITY_ATTRIBUTES lpProcessAttributes;
00160     IN LPSECURITY_ATTRIBUTES lpThreadAttributes;
00161     IN BOOL bInheritHandles;
00162     IN DWORD dwCreationFlags;
00163     IN LPSTARTUPINFOW lpStartupInfo;
00164     OUT LPPROCESS_INFORMATION lpProcessInformation;
00165 } SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
00166 
00167 typedef WORD FILEOP_FLAGS;
00168 typedef WORD PRINTEROP_FLAGS;
00169 
00170 typedef struct _AppBarData {
00171     DWORD   cbSize;
00172     HWND    hWnd;
00173     UINT    uCallbackMessage;
00174     UINT    uEdge;
00175     RECT    rc;
00176     LPARAM lParam;
00177 } APPBARDATA,*PAPPBARDATA;
00178 DECLARE_HANDLE(HDROP);
00179 
00180 typedef struct _NOTIFYICONDATAA {
00181     DWORD cbSize;
00182     HWND hWnd;
00183     UINT uID;
00184     UINT uFlags;
00185     UINT uCallbackMessage;
00186     HICON hIcon;
00187 #if _WIN32_IE >= 0x0500
00188     CHAR szTip[128];
00189     DWORD dwState;
00190     DWORD dwStateMask;
00191     CHAR szInfo[256];
00192     _ANONYMOUS_UNION union {
00193         UINT uTimeout;
00194         UINT uVersion;
00195     } DUMMYUNIONNAME;
00196     CHAR szInfoTitle[64];
00197     DWORD dwInfoFlags;
00198 #else
00199     CHAR szTip[64];
00200 #endif
00201 #if _WIN32_IE >= 0x600
00202     GUID guidItem;
00203 #endif
00204 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
00205 
00206 typedef struct _NOTIFYICONDATAW {
00207     DWORD cbSize;
00208     HWND hWnd;
00209     UINT uID;
00210     UINT uFlags;
00211     UINT uCallbackMessage;
00212     HICON hIcon;
00213 #if _WIN32_IE >= 0x0500
00214     WCHAR szTip[128];
00215     DWORD dwState;
00216     DWORD dwStateMask;
00217     WCHAR szInfo[256];
00218     _ANONYMOUS_UNION union {
00219         UINT uTimeout;
00220         UINT uVersion;
00221     } DUMMYUNIONNAME;
00222     WCHAR szInfoTitle[64];
00223     DWORD dwInfoFlags;
00224 #else
00225     WCHAR szTip[64];
00226 #endif
00227 #if _WIN32_IE >= 0x600
00228     GUID guidItem;
00229 #endif
00230 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
00231 
00232 #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
00233 #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
00234 #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
00235 #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
00236 
00237 #if WINVER >= 0x400
00238 typedef struct _DRAGINFOA {
00239     UINT uSize;
00240     POINT pt;
00241     BOOL fNC;
00242     LPSTR lpFileList;
00243     DWORD grfKeyState;
00244 } DRAGINFOA,*LPDRAGINFOA;
00245 typedef struct _DRAGINFOW {
00246     UINT uSize;
00247     POINT pt;
00248     BOOL fNC;
00249     LPWSTR lpFileList;
00250     DWORD grfKeyState;
00251 } DRAGINFOW,*LPDRAGINFOW;
00252 #endif
00253 
00254 typedef struct _SHELLEXECUTEINFOA {
00255     DWORD cbSize;
00256     ULONG fMask;
00257     HWND hwnd;
00258     LPCSTR lpVerb;
00259     LPCSTR lpFile;
00260     LPCSTR lpParameters;
00261     LPCSTR lpDirectory;
00262     int nShow;
00263     HINSTANCE hInstApp;
00264     PVOID lpIDList;
00265     LPCSTR lpClass;
00266     HKEY hkeyClass;
00267     DWORD dwHotKey;
00268     HANDLE hIcon;
00269     HANDLE hProcess;
00270 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
00271 typedef struct _SHELLEXECUTEINFOW {
00272     DWORD cbSize;
00273     ULONG fMask;
00274     HWND hwnd;
00275     LPCWSTR lpVerb;
00276     LPCWSTR lpFile;
00277     LPCWSTR lpParameters;
00278     LPCWSTR lpDirectory;
00279     int nShow;
00280     HINSTANCE hInstApp;
00281     PVOID lpIDList;
00282     LPCWSTR lpClass;
00283     HKEY hkeyClass;
00284     DWORD dwHotKey;
00285     HANDLE hIcon;
00286     HANDLE hProcess;
00287 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
00288 typedef struct _SHFILEOPSTRUCTA {
00289     HWND hwnd;
00290     UINT wFunc;
00291     LPCSTR pFrom;
00292     LPCSTR pTo;
00293     FILEOP_FLAGS fFlags;
00294     BOOL fAnyOperationsAborted;
00295     PVOID hNameMappings;
00296     LPCSTR lpszProgressTitle;
00297 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
00298 typedef struct _SHFILEOPSTRUCTW {
00299     HWND hwnd;
00300     UINT wFunc;
00301     LPCWSTR pFrom;
00302     LPCWSTR pTo;
00303     FILEOP_FLAGS fFlags;
00304     BOOL fAnyOperationsAborted;
00305     PVOID hNameMappings;
00306     LPCWSTR lpszProgressTitle;
00307 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
00308 typedef struct _SHFILEINFOA {
00309     HICON hIcon;
00310     int iIcon;
00311     DWORD dwAttributes;
00312     CHAR szDisplayName[MAX_PATH];
00313     CHAR szTypeName[80];
00314 } SHFILEINFOA;
00315 typedef struct _SHFILEINFOW {
00316     HICON hIcon;
00317     int iIcon;
00318     DWORD dwAttributes;
00319     WCHAR szDisplayName[MAX_PATH];
00320     WCHAR szTypeName[80];
00321 } SHFILEINFOW;
00322 typedef struct _SHQUERYRBINFO {
00323     DWORD   cbSize;
00324     __int64 i64Size;
00325     __int64 i64NumItems;
00326 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
00327 typedef struct _SHNAMEMAPPINGA {
00328     LPSTR   pszOldPath;
00329     LPSTR   pszNewPath;
00330     int cchOldPath;
00331     int cchNewPath;
00332 } SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
00333 typedef struct _SHNAMEMAPPINGW {
00334     LPWSTR  pszOldPath;
00335     LPWSTR  pszNewPath;
00336     int cchOldPath;
00337     int cchNewPath;
00338 } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
00339 
00340 #define SHERB_NOCONFIRMATION 0x1
00341 #define SHERB_NOPROGRESSUI   0x2
00342 #define SHERB_NOSOUND        0x4
00343 
00344 /******************************************
00345  * Links
00346  */
00347 
00348 #define SHGNLI_PIDL        0x01
00349 #define SHGNLI_PREFIXNAME  0x02
00350 #define SHGNLI_NOUNIQUE    0x04
00351 #define SHGNLI_NOLNK       0x08
00352 
00353 BOOL WINAPI SHGetNewLinkInfoA(LPCSTR,LPCSTR,LPSTR,BOOL*,UINT);
00354 BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR,LPCWSTR,LPWSTR,BOOL*,UINT);
00355 
00356 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
00357 void WINAPI DragAcceptFiles(HWND,BOOL);
00358 void WINAPI DragFinish(HDROP);
00359 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
00360 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
00361 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
00362 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,PWORD);
00363 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,PWORD);
00364 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
00365 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
00366 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
00367 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
00368 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
00369 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
00370 UINT_PTR WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
00371 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
00372 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
00373 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
00374 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
00375 int WINAPI ShellMessageBoxA(HINSTANCE,HWND,LPCSTR,LPCSTR,UINT,...);
00376 int WINAPI ShellMessageBoxW(HINSTANCE,HWND,LPCWSTR,LPCWSTR,UINT,...);
00377 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
00378 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
00379 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
00380 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
00381 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
00382 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
00383 void WINAPI SHFreeNameMappings(HANDLE);
00384 DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
00385 DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
00386 BOOL WINAPI SHGetNewLinkInfoA(LPCSTR,LPCSTR,LPSTR,BOOL*,UINT);
00387 BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR,LPCWSTR,LPWSTR,BOOL*,UINT);
00388 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
00389 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
00390 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
00391 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
00392 BOOL WINAPI SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW);
00393 
00394 #ifdef UNICODE
00395 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
00396 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
00397 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
00398 typedef DRAGINFOW DRAGINFO,*LPDRAGINFO;
00399 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
00400 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
00401 typedef SHFILEINFOW SHFILEINFO;
00402 typedef SHNAMEMAPPINGW SHNAMEMAPPING;
00403 typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING;
00404 #define DragQueryFile DragQueryFileW
00405 #define ExtractAssociatedIcon ExtractAssociatedIconW
00406 #define ExtractIcon ExtractIconW
00407 #define ExtractIconEx ExtractIconExW
00408 #define FindExecutable FindExecutableW
00409 #define Shell_NotifyIcon Shell_NotifyIconW
00410 #define ShellAbout ShellAboutW
00411 #define ShellExecute ShellExecuteW
00412 #define ShellExecuteEx ShellExecuteExW
00413 #define ShellMessageBox ShellMessageBoxW
00414 #define SHFileOperation SHFileOperationW
00415 #define SHGetFileInfo SHGetFileInfoW
00416 #define SHGetNewLinkInfo SHGetNewLinkInfoW
00417 #define SHQueryRecycleBin SHQueryRecycleBinW
00418 #define SHEmptyRecycleBin SHEmptyRecycleBinW
00419 #define SHGetNewLinkInfo SHGetNewLinkInfoW
00420 
00421 #else
00422 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
00423 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
00424 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
00425 typedef DRAGINFOA DRAGINFO,*LPDRAGINFO;
00426 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
00427 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
00428 typedef SHFILEINFOA SHFILEINFO;
00429 typedef SHNAMEMAPPINGA SHNAMEMAPPING;
00430 typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING;
00431 #define DragQueryFile DragQueryFileA
00432 #define ExtractAssociatedIcon ExtractAssociatedIconA
00433 #define ExtractIcon ExtractIconA
00434 #define ExtractIconEx ExtractIconExA
00435 #define FindExecutable FindExecutableA
00436 #define Shell_NotifyIcon Shell_NotifyIconA
00437 #define ShellAbout ShellAboutA
00438 #define ShellExecute ShellExecuteA
00439 #define ShellExecuteEx ShellExecuteExA
00440 #define ShellMessageBox ShellMessageBoxA
00441 #define SHFileOperation SHFileOperationA
00442 #define SHGetFileInfo SHGetFileInfoA
00443 #define SHGetNewLinkInfo SHGetNewLinkInfoA
00444 #define SHQueryRecycleBin SHQueryRecycleBinA
00445 #define SHEmptyRecycleBin SHEmptyRecycleBinA
00446 #define SHGetNewLinkInfo SHGetNewLinkInfoA
00447 #endif
00448 
00449 #if !defined(_WIN64)
00450 #include <poppack.h>
00451 #endif
00452 
00453 #ifdef _MSC_VER
00454 #pragma warning(pop)
00455 #endif
00456 #ifdef __cplusplus
00457 }
00458 #endif
00459 #endif

Generated on Mon May 28 2012 04:32:11 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.