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

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

resync with latest wine

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