blob: df5f509230c574fa8adf7c03155185b38cf69e67 [file] [log] [blame]
Alexandre Julliard58199531994-04-21 01:20:00 +00001/*
2 * Shell Library definitions
3 */
Alexandre Julliard7e56f681996-01-31 19:02:28 +00004#ifndef __WINE_SHELL_H
5#define __WINE_SHELL_H
6
Marcus Meissner317af321999-02-17 13:51:06 +00007#include "windef.h"
Alexandre Julliard58199531994-04-21 01:20:00 +00008
Patrik Stridvall14da7b11999-06-12 10:53:06 +00009#ifdef __cplusplus
10extern "C" {
11#endif /* defined(__cplusplus) */
Alexandre Julliard2c69f6d1996-09-28 18:11:01 +000012
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000013/****************************************************************************
14* shell 16
15*/
Marcus Meissner7ed94411998-10-11 11:27:05 +000016extern void SHELL_LoadRegistry(void);
Alexandre Julliarde2991ea1995-07-29 13:09:43 +000017
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000018/* global functions used from shell32 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000019extern HINSTANCE SHELL_FindExecutable(LPCSTR,LPCSTR ,LPSTR);
20extern HGLOBAL16 WINAPI InternalExtractIcon16(HINSTANCE16,LPCSTR,UINT16,WORD);
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000021
22/****************************************************************************
23* shell 32
24*/
25/****************************************************************************
26* common return codes
27*/
Alexandre Julliardd7d4fdf1995-12-26 15:05:24 +000028#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 Julliard58199531994-04-21 01:20:00 +000037
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000038/****************************************************************************
39* common shell file structures
Alexandre Julliard767e6f61998-08-09 12:47:43 +000040*/
Alexandre Julliard767e6f61998-08-09 12:47:43 +000041/******************************
Kai Morich0913cdf1998-10-24 12:02:54 +000042* DRAG&DROP API
Alexandre Julliard767e6f61998-08-09 12:47:43 +000043*/
Alexandre Julliardd4719651995-12-12 18:49:11 +000044typedef struct { /* structure for dropped files */
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000045 WORD wSize;
Alexandre Julliarde2bfa4c1996-05-16 18:21:06 +000046 POINT16 ptMousePos;
Alexandre Julliard75d86e11996-11-17 18:59:11 +000047 BOOL16 fInNonClientArea;
Alexandre Julliardaf0bae51995-10-03 17:06:08 +000048 /* memory block with filenames follows */
Kai Morich0913cdf1998-10-24 12:02:54 +000049} DROPFILESTRUCT16, *LPDROPFILESTRUCT16;
50
51typedef struct { /* structure for dropped files */
52 DWORD lSize;
Alexandre Julliarda3960291999-02-26 11:11:13 +000053 POINT ptMousePos;
54 BOOL fInNonClientArea;
55 BOOL fWideChar;
Kai Morich0913cdf1998-10-24 12:02:54 +000056 /* memory block with filenames follows */
Alexandre Julliarda3960291999-02-26 11:11:13 +000057} DROPFILESTRUCT, *LPDROPFILESTRUCT;
Kai Morich0913cdf1998-10-24 12:02:54 +000058
Kai Morich0913cdf1998-10-24 12:02:54 +000059
Alexandre Julliard85ed45e1998-08-22 19:03:56 +000060/****************************************************************************
61* SHITEMID, ITEMIDLIST, PIDL API
Alexandre Julliard767e6f61998-08-09 12:47:43 +000062*/
Patrik Stridvallc7a8dde1999-04-25 12:36:53 +000063#include "pshpack1.h"
Alexandre Julliard767e6f61998-08-09 12:47:43 +000064typedef struct
Juergen Schmied6acd0591998-10-11 15:50:14 +000065{ WORD cb; /* nr of bytes in this item */
66 BYTE abID[1];/* first byte in this item */
Alexandre Julliard767e6f61998-08-09 12:47:43 +000067} SHITEMID,*LPSHITEMID;
Juergen Schmied51c74d82000-04-28 20:23:46 +000068typedef LPSHITEMID const LPCSHITEMID;
Alexandre Julliard767e6f61998-08-09 12:47:43 +000069
70typedef struct
71{ SHITEMID mkid; /* first itemid in list */
72} ITEMIDLIST,*LPITEMIDLIST,*LPCITEMIDLIST;
Patrik Stridvallc7a8dde1999-04-25 12:36:53 +000073#include "poppack.h"
Alexandre Julliard767e6f61998-08-09 12:47:43 +000074
Juergen Schmied565b2e01999-07-25 12:26:05 +000075BOOL WINAPI SHGetPathFromIDListA (LPCITEMIDLIST pidl,LPSTR pszPath);
76BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath);
Alexandre Julliard767e6f61998-08-09 12:47:43 +000077#define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
78
Alexandre Julliard767e6f61998-08-09 12:47:43 +000079/****************************************************************************
80* SHAddToRecentDocs API
81*/
82#define SHARD_PIDL 0x00000001L
83#define SHARD_PATH 0x00000002L
84
Alexandre Julliarda3960291999-02-26 11:11:13 +000085DWORD WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv);
Alexandre Julliard767e6f61998-08-09 12:47:43 +000086
87/****************************************************************************
88* other functions
89*/
Juergen Schmied72b76d11998-11-15 13:28:00 +000090
Patrik Stridvall14da7b11999-06-12 10:53:06 +000091#ifdef __cplusplus
92} /* extern "C" */
93#endif /* defined(__cplusplus) */
94
Alexandre Julliard7e56f681996-01-31 19:02:28 +000095#endif /* __WINE_SHELL_H */