source: trunk/src/shell32/shell32_main.h@ 6823

Last change on this file since 6823 was 6810, checked in by sandervl, 24 years ago

wine update

File size: 7.5 KB
Line 
1/*
2 * internal Shell32 Library definitions
3 */
4
5#ifndef __WINE_SHELL_MAIN_H
6#define __WINE_SHELL_MAIN_H
7
8#include "commctrl.h"
9#include "shell.h"
10#include "docobj.h"
11
12#include "wine/obj_shellfolder.h"
13#include "wine/obj_dataobject.h"
14#include "wine/obj_contextmenu.h"
15#include "wine/obj_shellview.h"
16#include "wine/obj_shelllink.h"
17#include "wine/obj_extracticon.h"
18#include "wine/obj_oleview.h"
19#ifdef __WIN32OS2__
20#include <heapstring.h>
21
22#undef FIXME
23#undef TRACE
24#ifdef DEBUG
25#define TRACE WriteLog("SHELL32: %s", __FUNCTION__); WriteLog
26#define FIXME WriteLog("SHELL32: FIXME %s", __FUNCTION__); WriteLog
27#else
28#define TRACE 1 ? (void)0 : (void)((int (*)(char *, ...)) NULL)
29#define FIXME 1 ? (void)0 : (void)((int (*)(char *, ...)) NULL)
30#endif
31
32#endif
33/*******************************************
34* global SHELL32.DLL variables
35*/
36extern HMODULE huser32;
37extern HINSTANCE shell32_hInstance;
38extern LONG shell32_ObjCount;
39extern HIMAGELIST ShellSmallIconList;
40extern HIMAGELIST ShellBigIconList;
41#ifndef __WIN32OS2__
42extern HDPA sic_hdpa;
43#endif
44
45/*******************************************
46* pointer to functions dynamically loaded
47*/
48extern LPVOID (* WINAPI pCOMCTL32_Alloc) (INT);
49extern BOOL (* WINAPI pCOMCTL32_Free) (LPVOID);
50
51#define pDPA_Create DPA_Create
52#define pDPA_InsertPtr DPA_InsertPtr
53#define pDPA_Sort DPA_Sort
54#define pDPA_GetPtr DPA_GetPtr
55#define pDPA_Destroy DPA_Destroy
56#define pDPA_Search DPA_Search
57#define pDPA_DeletePtr DPA_DeletePtr
58
59#define pDPA_GetPtrCount(hdpa) (*(INT*)(hdpa))
60
61#define pLookupIconIdFromDirectoryEx LookupIconIdFromDirectoryEx
62#define pCreateIconFromResourceEx CreateIconFromResourceEx
63
64#include <wine\undoccomctl32.h>
65
66#define pAddMRUData AddMRUData
67#define pFindMRUData FindMRUData
68#define pEnumMRUListA EnumMRUListA
69#define pFreeMRUListA FreeMRUListA
70#define pCreateMRUListA CreateMRUListA
71
72/* ole2 */
73/*
74extern HRESULT (* WINAPI pOleInitialize)(LPVOID reserved);
75extern void (* WINAPI pOleUninitialize)(void);
76extern HRESULT (* WINAPI pDoDragDrop)(IDataObject* pDataObject, IDropSource * pDropSource, DWORD dwOKEffect, DWORD * pdwEffect);
77extern HRESULT (* WINAPI pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
78extern HRESULT (* WINAPI pRevokeDragDrop)(HWND hwnd);
79*/
80BOOL WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList);
81
82/* Iconcache */
83#define INVALID_INDEX -1
84BOOL SIC_Initialize(void);
85void SIC_Destroy(void);
86BOOL PidlToSicIndex (IShellFolder * sh, LPITEMIDLIST pidl, BOOL bBigIcon, UINT uFlags, UINT * pIndex);
87
88/* Classes Root */
89BOOL HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, DWORD len, BOOL bPrependDot);
90BOOL HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len );
91BOOL HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr);
92BOOL HCR_GetClassName (REFIID riid, LPSTR szDest, DWORD len);
93BOOL HCR_GetFolderAttributes (REFIID riid, LPDWORD szDest);
94
95DWORD WINAPI ParseFieldA(LPCSTR src,DWORD field,LPSTR dst,DWORD len);
96
97/****************************************************************************
98 * Class constructors
99 */
100LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPITEMIDLIST myPidl, LPITEMIDLIST * apidl, UINT cidl);
101LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT, const FORMATETC []);
102
103LPCLASSFACTORY IClassFactory_Constructor(REFCLSID);
104IContextMenu * ISvItemCm_Constructor(LPSHELLFOLDER pSFParent, LPCITEMIDLIST pidl, LPCITEMIDLIST *aPidls, UINT uItemCount);
105IContextMenu * ISvBgCm_Constructor(LPSHELLFOLDER pSFParent);
106LPSHELLVIEW IShellView_Constructor(LPSHELLFOLDER);
107LPSHELLLINK IShellLink_Constructor(BOOL);
108
109IShellFolder * ISF_Desktop_Constructor(void);
110
111/* kind of enumidlist */
112#define EIDL_DESK 0
113#define EIDL_MYCOMP 1
114#define EIDL_FILE 2
115
116LPENUMIDLIST IEnumIDList_Constructor(LPCSTR,DWORD,DWORD);
117
118LPEXTRACTICONA IExtractIconA_Constructor(LPITEMIDLIST);
119HRESULT CreateStreamOnFile (LPCSTR pszFilename, IStream ** ppstm);
120
121/* fixme: rename the functions when the shell32.dll has it's own exports namespace */
122HRESULT WINAPI SHELL32_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv);
123HRESULT WINAPI SHELL32_DllCanUnloadNow(void);
124
125/* fixme: move away */
126#define ResultFromShort(i) MAKE_SCODE(SEVERITY_SUCCESS, 0, (USHORT)(i))
127
128/* menu merging */
129#define MM_ADDSEPARATOR 0x00000001L
130#define MM_SUBMENUSHAVEIDS 0x00000002L
131HRESULT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags);
132
133/* initialisation for FORMATETC */
134#define InitFormatEtc(fe, cf, med) \
135 {\
136 (fe).cfFormat=cf;\
137 (fe).dwAspect=DVASPECT_CONTENT;\
138 (fe).ptd=NULL;\
139 (fe).tymed=med;\
140 (fe).lindex=-1;\
141 };
142
143#define KeyStateToDropEffect(kst)\
144 (((kst) & MK_CONTROL) ?\
145 (((kst) & MK_SHIFT) ? DROPEFFECT_LINK : DROPEFFECT_COPY):\
146 DROPEFFECT_MOVE)
147
148/* Systray */
149BOOL SYSTRAY_Init(void);
150
151/* Clipboard */
152void InitShellOle(void);
153void FreeShellOle(void);
154BOOL GetShellOle(void);
155
156#ifdef __WIN32OS2__
157extern HRESULT (* WINAPI pOleInitialize)(LPVOID reserved);
158extern void (* WINAPI pOleUninitialize)(void);
159extern HRESULT (* WINAPI pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
160extern HRESULT (* WINAPI pRevokeDragDrop)(HWND hwnd);
161extern HRESULT (* WINAPI pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
162extern void (* WINAPI pReleaseStgMedium)(STGMEDIUM* pmedium);
163extern HRESULT (* WINAPI pOleSetClipboard)(IDataObject* pDataObj);
164extern HRESULT (* WINAPI pOleGetClipboard)(IDataObject** ppDataObj);
165#else
166HRESULT (* WINAPI pOleInitialize)(LPVOID reserved);
167void (* WINAPI pOleUninitialize)(void);
168HRESULT (* WINAPI pRegisterDragDrop)(HWND hwnd, IDropTarget* pDropTarget);
169HRESULT (* WINAPI pRevokeDragDrop)(HWND hwnd);
170HRESULT (* WINAPI pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
171void (* WINAPI pReleaseStgMedium)(STGMEDIUM* pmedium);
172HRESULT (* WINAPI pOleSetClipboard)(IDataObject* pDataObj);
173HRESULT (* WINAPI pOleGetClipboard)(IDataObject** ppDataObj);
174#endif
175
176HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
177HGLOBAL RenderSHELLIDLIST (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
178HGLOBAL RenderSHELLIDLISTOFFSET (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
179HGLOBAL RenderFILECONTENTS (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
180HGLOBAL RenderFILEDESCRIPTOR (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
181HGLOBAL RenderFILENAME (LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl);
182HGLOBAL RenderPREFEREDDROPEFFECT (DWORD dwFlags);
183
184/* Change Notification */
185void InitChangeNotifications(void);
186void FreeChangeNotifications(void);
187
188/* file operation */
189#define ASK_DELETE_FILE 1
190#define ASK_DELETE_FOLDER 2
191#define ASK_DELETE_MULTIPLE_ITEM 3
192#ifdef __WIN32OS2__
193#define ASK_CREATE FOLDER 4
194#define ASK_OVERWRITE_FILE 5
195#endif
196
197BOOL SHELL_DeleteDirectoryA(LPCSTR pszDir, BOOL bShowUI);
198BOOL SHELL_DeleteFileA(LPCSTR pszFile, BOOL bShowUI);
199#ifdef __WIN32OS2__
200#define SHELL_WarnItemDelete SHELL_ConfirmDialog
201BOOL SHELL_ConfirmDialog(int nKindOfDialog, LPCSTR szDir);
202#else
203BOOL SHELL_WarnItemDelete(int nKindOfDialog, LPCSTR szDir);
204#endif
205
206#ifdef __WIN32OS2__
207#ifdef __cplusplus
208extern "C" {
209#endif
210BOOL SHELL_OsIsUnicode(void);
211
212#include <peexe.h>
213PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY resdirptr,
214 LPCWSTR name,DWORD root,
215 BOOL allowdefault);
216
217#ifdef __cplusplus
218}
219#endif
220#else
221inline static BOOL SHELL_OsIsUnicode(void)
222{
223 /* if high-bit of version is 0, we are emulating NT */
224 return !(GetVersion() & 0x80000000);
225}
226#endif
227
228#endif
229
Note: See TracBrowser for help on using the repository browser.