source: trunk/src/shell32/shell32_main.h

Last change on this file was 21916, checked in by dmik, 14 years ago

Merge branch gcc-kmk to trunk.

File size: 7.0 KB
RevLine 
[1214]1/*
[4121]2 * internal Shell32 Library definitions
[1214]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"
[5618]18#include "wine/obj_oleview.h"
[4121]19#ifdef __WIN32OS2__
20#include <heapstring.h>
21#endif
[1214]22/*******************************************
23* global SHELL32.DLL variables
24*/
[4121]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
[1214]33
34/*******************************************
35* pointer to functions dynamically loaded
36*/
[21916]37extern LPVOID (* WINAPI pCOMCTL32_Alloc) (INT);
38extern BOOL (* WINAPI pCOMCTL32_Free) (LPVOID);
[1214]39
[5618]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
[21916]48#define pDPA_GetPtrCount(hdpa) (*(INT*)(hdpa))
[1214]49
[5618]50#define pLookupIconIdFromDirectoryEx LookupIconIdFromDirectoryEx
51#define pCreateIconFromResourceEx CreateIconFromResourceEx
[1214]52
[21916]53#include <wine/undoccomctl32.h>
[6810]54
55#define pAddMRUData AddMRUData
56#define pFindMRUData FindMRUData
57#define pEnumMRUListA EnumMRUListA
[7814]58#define pFreeMRUListA FreeMRUList
[6810]59#define pCreateMRUListA CreateMRUListA
60
[1214]61/* ole2 */
[4121]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*/
[1214]69BOOL WINAPI Shell_GetImageList(HIMAGELIST * lpBigList, HIMAGELIST * lpSmallList);
[3243]70
[1214]71/* Iconcache */
72#define INVALID_INDEX -1
73BOOL SIC_Initialize(void);
74void SIC_Destroy(void);
[4032]75BOOL PidlToSicIndex (IShellFolder * sh, LPITEMIDLIST pidl, BOOL bBigIcon, UINT uFlags, UINT * pIndex);
[1214]76
77/* Classes Root */
[1543]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);
[1214]81BOOL HCR_GetClassName (REFIID riid, LPSTR szDest, DWORD len);
82BOOL HCR_GetFolderAttributes (REFIID riid, LPDWORD szDest);
83
[4121]84DWORD WINAPI ParseFieldA(LPCSTR src,DWORD field,LPSTR dst,DWORD len);
[1214]85
86/****************************************************************************
87 * Class constructors
88 */
[4121]89LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPITEMIDLIST myPidl, LPITEMIDLIST * apidl, UINT cidl);
90LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT, const FORMATETC []);
[1214]91
[4121]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);
[1214]97
98IShellFolder * ISF_Desktop_Constructor(void);
99
100/* kind of enumidlist */
[4121]101#define EIDL_DESK 0
102#define EIDL_MYCOMP 1
103#define EIDL_FILE 2
[1214]104
[4121]105LPENUMIDLIST IEnumIDList_Constructor(LPCSTR,DWORD,DWORD);
[1214]106
[4121]107LPEXTRACTICONA IExtractIconA_Constructor(LPITEMIDLIST);
[21916]108HRESULT CreateStreamOnFile (LPCSTR pszFilename, IStream ** ppstm);
[1214]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) \
[4121]124 {\
125 (fe).cfFormat=cf;\
126 (fe).dwAspect=DVASPECT_CONTENT;\
127 (fe).ptd=NULL;\
128 (fe).tymed=med;\
129 (fe).lindex=-1;\
130 };
[1214]131
132#define KeyStateToDropEffect(kst)\
[4121]133 (((kst) & MK_CONTROL) ?\
134 (((kst) & MK_SHIFT) ? DROPEFFECT_LINK : DROPEFFECT_COPY):\
135 DROPEFFECT_MOVE)
[1214]136
[3243]137/* Systray */
138BOOL SYSTRAY_Init(void);
[4121]139
[4032]140/* Clipboard */
141void InitShellOle(void);
142void FreeShellOle(void);
143BOOL GetShellOle(void);
[4121]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);
[21916]150extern HRESULT (* WINAPI pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
[4121]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);
[21916]159HRESULT (* WINAPI pDoDragDrop)(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
[4121]160void (* WINAPI pReleaseStgMedium)(STGMEDIUM* pmedium);
161HRESULT (* WINAPI pOleSetClipboard)(IDataObject* pDataObj);
162HRESULT (* WINAPI pOleGetClipboard)(IDataObject** ppDataObj);
163#endif
164
[4032]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);
[3243]172
[4032]173/* Change Notification */
174void InitChangeNotifications(void);
175void FreeChangeNotifications(void);
176
177/* file operation */
[5544]178#define ASK_DELETE_FILE 1
179#define ASK_DELETE_FOLDER 2
180#define ASK_DELETE_MULTIPLE_ITEM 3
[10162]181#define ASK_CREATE_FOLDER 4
[5576]182#define ASK_OVERWRITE_FILE 5
[5544]183
[4032]184BOOL SHELL_DeleteDirectoryA(LPCSTR pszDir, BOOL bShowUI);
[5544]185BOOL SHELL_DeleteFileA(LPCSTR pszFile, BOOL bShowUI);
[5576]186BOOL SHELL_ConfirmDialog(int nKindOfDialog, LPCSTR szDir);
[4032]187
[4082]188#ifdef __WIN32OS2__
[4121]189#ifdef __cplusplus
190extern "C" {
191#endif
[4082]192BOOL SHELL_OsIsUnicode(void);
[4121]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
[4082]202#else
[4032]203inline static BOOL SHELL_OsIsUnicode(void)
204{
[4121]205 /* if high-bit of version is 0, we are emulating NT */
206 return !(GetVersion() & 0x80000000);
[4032]207}
[4082]208#endif
[1214]209
210#endif
[5576]211
Note: See TracBrowser for help on using the repository browser.