Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 1 | /* |
| 2 | * Shell Library definitions |
| 3 | */ |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 4 | #ifndef __WINE_SHELL_H |
| 5 | #define __WINE_SHELL_H |
| 6 | |
Marcus Meissner | 317af32 | 1999-02-17 13:51:06 +0000 | [diff] [blame] | 7 | #include "windef.h" |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 8 | |
Patrik Stridvall | 14da7b1 | 1999-06-12 10:53:06 +0000 | [diff] [blame] | 9 | #ifdef __cplusplus |
| 10 | extern "C" { |
| 11 | #endif /* defined(__cplusplus) */ |
Alexandre Julliard | 2c69f6d | 1996-09-28 18:11:01 +0000 | [diff] [blame] | 12 | |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 13 | /**************************************************************************** |
| 14 | * shell 16 |
| 15 | */ |
Marcus Meissner | 7ed9441 | 1998-10-11 11:27:05 +0000 | [diff] [blame] | 16 | extern void SHELL_LoadRegistry(void); |
Alexandre Julliard | e2991ea | 1995-07-29 13:09:43 +0000 | [diff] [blame] | 17 | |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 18 | /* global functions used from shell32 */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 19 | extern HINSTANCE SHELL_FindExecutable(LPCSTR,LPCSTR ,LPSTR); |
| 20 | extern HGLOBAL16 WINAPI InternalExtractIcon16(HINSTANCE16,LPCSTR,UINT16,WORD); |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 21 | |
| 22 | /**************************************************************************** |
| 23 | * shell 32 |
| 24 | */ |
| 25 | /**************************************************************************** |
| 26 | * common return codes |
| 27 | */ |
Alexandre Julliard | d7d4fdf | 1995-12-26 15:05:24 +0000 | [diff] [blame] | 28 | #define SHELL_ERROR_SUCCESS 0L |
| 29 | #define SHELL_ERROR_BADDB 1L |
| 30 | #define SHELL_ERROR_BADKEY 2L |
| 31 | #define SHELL_ERROR_CANTOPEN 3L |
| 32 | #define SHELL_ERROR_CANTREAD 4L |
| 33 | #define SHELL_ERROR_CANTWRITE 5L |
| 34 | #define SHELL_ERROR_OUTOFMEMORY 6L |
| 35 | #define SHELL_ERROR_INVALID_PARAMETER 7L |
| 36 | #define SHELL_ERROR_ACCESS_DENIED 8L |
Alexandre Julliard | 5819953 | 1994-04-21 01:20:00 +0000 | [diff] [blame] | 37 | |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 38 | /**************************************************************************** |
| 39 | * common shell file structures |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 40 | */ |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 41 | /****************************** |
Kai Morich | 0913cdf | 1998-10-24 12:02:54 +0000 | [diff] [blame] | 42 | * DRAG&DROP API |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 43 | */ |
Alexandre Julliard | d471965 | 1995-12-12 18:49:11 +0000 | [diff] [blame] | 44 | typedef struct { /* structure for dropped files */ |
Alexandre Julliard | af0bae5 | 1995-10-03 17:06:08 +0000 | [diff] [blame] | 45 | WORD wSize; |
Alexandre Julliard | e2bfa4c | 1996-05-16 18:21:06 +0000 | [diff] [blame] | 46 | POINT16 ptMousePos; |
Alexandre Julliard | 75d86e1 | 1996-11-17 18:59:11 +0000 | [diff] [blame] | 47 | BOOL16 fInNonClientArea; |
Alexandre Julliard | af0bae5 | 1995-10-03 17:06:08 +0000 | [diff] [blame] | 48 | /* memory block with filenames follows */ |
Kai Morich | 0913cdf | 1998-10-24 12:02:54 +0000 | [diff] [blame] | 49 | } DROPFILESTRUCT16, *LPDROPFILESTRUCT16; |
| 50 | |
| 51 | typedef struct { /* structure for dropped files */ |
| 52 | DWORD lSize; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 53 | POINT ptMousePos; |
| 54 | BOOL fInNonClientArea; |
| 55 | BOOL fWideChar; |
Kai Morich | 0913cdf | 1998-10-24 12:02:54 +0000 | [diff] [blame] | 56 | /* memory block with filenames follows */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 57 | } DROPFILESTRUCT, *LPDROPFILESTRUCT; |
Kai Morich | 0913cdf | 1998-10-24 12:02:54 +0000 | [diff] [blame] | 58 | |
Kai Morich | 0913cdf | 1998-10-24 12:02:54 +0000 | [diff] [blame] | 59 | |
Alexandre Julliard | 85ed45e | 1998-08-22 19:03:56 +0000 | [diff] [blame] | 60 | /**************************************************************************** |
| 61 | * SHITEMID, ITEMIDLIST, PIDL API |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 62 | */ |
Patrik Stridvall | c7a8dde | 1999-04-25 12:36:53 +0000 | [diff] [blame] | 63 | #include "pshpack1.h" |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 64 | typedef struct |
Juergen Schmied | 6acd059 | 1998-10-11 15:50:14 +0000 | [diff] [blame] | 65 | { WORD cb; /* nr of bytes in this item */ |
| 66 | BYTE abID[1];/* first byte in this item */ |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 67 | } SHITEMID,*LPSHITEMID; |
Juergen Schmied | 51c74d8 | 2000-04-28 20:23:46 +0000 | [diff] [blame] | 68 | typedef LPSHITEMID const LPCSHITEMID; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 69 | |
| 70 | typedef struct |
| 71 | { SHITEMID mkid; /* first itemid in list */ |
| 72 | } ITEMIDLIST,*LPITEMIDLIST,*LPCITEMIDLIST; |
Patrik Stridvall | c7a8dde | 1999-04-25 12:36:53 +0000 | [diff] [blame] | 73 | #include "poppack.h" |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 74 | |
Juergen Schmied | 565b2e0 | 1999-07-25 12:26:05 +0000 | [diff] [blame] | 75 | BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath); |
| 76 | BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath); |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 77 | #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList) |
| 78 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 79 | /**************************************************************************** |
| 80 | * SHAddToRecentDocs API |
| 81 | */ |
| 82 | #define SHARD_PIDL 0x00000001L |
| 83 | #define SHARD_PATH 0x00000002L |
| 84 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 85 | DWORD WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv); |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 86 | |
| 87 | /**************************************************************************** |
| 88 | * other functions |
| 89 | */ |
Juergen Schmied | 72b76d1 | 1998-11-15 13:28:00 +0000 | [diff] [blame] | 90 | |
Patrik Stridvall | 14da7b1 | 1999-06-12 10:53:06 +0000 | [diff] [blame] | 91 | #ifdef __cplusplus |
| 92 | } /* extern "C" */ |
| 93 | #endif /* defined(__cplusplus) */ |
| 94 | |
Alexandre Julliard | 7e56f68 | 1996-01-31 19:02:28 +0000 | [diff] [blame] | 95 | #endif /* __WINE_SHELL_H */ |