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

Last change on this file since 8706 was 8614, checked in by sandervl, 23 years ago

compile fixes

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