Release 980517
[wine] / include / shell.h
1 /*
2  *                              Shell Library definitions
3  */
4 #ifndef __WINE_SHELL_H
5 #define __WINE_SHELL_H
6
7 #include "windows.h"
8 #include "winreg.h"
9
10 #ifndef MAX_PATH
11 #define MAX_PATH 260
12 #endif
13
14 extern void SHELL_LoadRegistry();
15 extern void SHELL_SaveRegistry();
16 extern void SHELL_Init();
17
18 #define SHELL_ERROR_SUCCESS           0L
19 #define SHELL_ERROR_BADDB             1L
20 #define SHELL_ERROR_BADKEY            2L
21 #define SHELL_ERROR_CANTOPEN          3L
22 #define SHELL_ERROR_CANTREAD          4L
23 #define SHELL_ERROR_CANTWRITE         5L
24 #define SHELL_ERROR_OUTOFMEMORY       6L
25 #define SHELL_ERROR_INVALID_PARAMETER 7L
26 #define SHELL_ERROR_ACCESS_DENIED     8L
27
28 typedef struct {           /* structure for dropped files */ 
29         WORD            wSize;
30         POINT16         ptMousePos;   
31         BOOL16          fInNonClientArea;
32         /* memory block with filenames follows */     
33 } DROPFILESTRUCT, *LPDROPFILESTRUCT; 
34
35 typedef struct _NOTIFYICONDATA {
36         DWORD cbSize;
37         HWND32 hWnd;
38         UINT32 uID;
39         UINT32 uFlags;
40         UINT32 uCallbackMessage;
41         HICON32 hIcon;
42         CHAR szTip[64];
43 } NOTIFYICONDATA, *PNOTIFYICONDATA;
44
45 typedef struct tagSHFILEINFO32A {
46         HICON32 hIcon;                  /* icon */
47         int     iIcon;                  /* icon index */
48         DWORD   dwAttributes;           /* SFGAO_ flags */
49         CHAR    szDisplayName[MAX_PATH];/* display name (or path) */
50         CHAR    szTypeName[80];         /* type name */
51 } SHFILEINFO32A;
52
53 typedef struct tagSHFILEINFO32W {
54         HICON32 hIcon;                  /* icon */
55         int     iIcon;                  /* icon index */
56         DWORD   dwAttributes;           /* SFGAO_ flags */
57         WCHAR   szDisplayName[MAX_PATH];/* display name (or path) */
58         WCHAR   szTypeName[80];         /* type name */
59 } SHFILEINFO32W;
60
61 DECL_WINELIB_TYPE_AW(SHFILEINFO);
62
63 typedef struct _AppBarData {
64         DWORD   cbSize;
65         HWND32  hWnd;
66         UINT32  uCallbackMessage;
67         UINT32  uEdge;
68         RECT32  rc;
69         LPARAM  lParam;
70 } APPBARDATA, *PAPPBARDATA;
71
72 #define SHGFI_ICON              0x000000100     /* get icon */
73 #define SHGFI_DISPLAYNAME       0x000000200     /* get display name */
74 #define SHGFI_TYPENAME          0x000000400     /* get type name */
75 #define SHGFI_ATTRIBUTES        0x000000800     /* get attributes */
76 #define SHGFI_ICONLOCATION      0x000001000     /* get icon location */
77 #define SHGFI_EXETYPE           0x000002000     /* return exe type */
78 #define SHGFI_SYSICONINDEX      0x000004000     /* get system icon index */
79 #define SHGFI_LINKOVERLAY       0x000008000     /* put a link overlay on icon */
80 #define SHGFI_SELECTED          0x000010000     /* show icon in selected state */
81 #define SHGFI_LARGEICON         0x000000000     /* get large icon */
82 #define SHGFI_SMALLICON         0x000000001     /* get small icon */
83 #define SHGFI_OPENICON          0x000000002     /* get open icon */
84 #define SHGFI_SHELLICONSIZE     0x000000004     /* get shell size icon */
85 #define SHGFI_PIDL              0x000000008     /* pszPath is a pidl */
86 #define SHGFI_USEFILEATTRIBUTES 0x000000010     /* use passed dwFileAttribute */
87 DWORD    WINAPI SHGetFileInfo32A(LPCSTR,DWORD,SHFILEINFO32A*,UINT32,UINT32);
88 DWORD    WINAPI SHGetFileInfo32W(LPCWSTR,DWORD,SHFILEINFO32W*,UINT32,UINT32);
89 #define  SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
90
91 #define SE_ERR_SHARE            26
92 #define SE_ERR_ASSOCINCOMPLETE  27
93 #define SE_ERR_DDETIMEOUT       28
94 #define SE_ERR_DDEFAIL          29
95 #define SE_ERR_DDEBUSY          30
96 #define SE_ERR_NOASSOC          31
97
98 #define CSIDL_DESKTOP           0x0000
99 #define CSIDL_PROGRAMS          0x0002
100 #define CSIDL_CONTROLS          0x0003
101 #define CSIDL_PRINTERS          0x0004
102 #define CSIDL_PERSONAL          0x0005
103 #define CSIDL_FAVORITES         0x0006
104 #define CSIDL_STARTUP           0x0007
105 #define CSIDL_RECENT            0x0008
106 #define CSIDL_SENDTO            0x0009
107 #define CSIDL_BITBUCKET         0x000a
108 #define CSIDL_STARTMENU         0x000b
109 #define CSIDL_DESKTOPDIRECTORY  0x0010
110 #define CSIDL_DRIVES            0x0011
111 #define CSIDL_NETWORK           0x0012
112 #define CSIDL_NETHOOD           0x0013
113 #define CSIDL_FONTS             0x0014
114 #define CSIDL_TEMPLATES         0x0015
115
116 #endif  /* __WINE_SHELL_H */