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

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

restored old version

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