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

Last change on this file since 4121 was 4121, checked in by sandervl, 25 years ago

complete merge with shell32 from wine 20000801

File size: 7.7 KB
Line 
1/* $Id: shell32_main.h,v 1.6 2000-08-30 13:50:57 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#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 void (* WINAPI pDLLInitComctl)(LPVOID);
38extern INT (* WINAPI pImageList_AddIcon) (HIMAGELIST himl, HICON hIcon);
39extern INT (* WINAPI pImageList_ReplaceIcon) (HIMAGELIST, INT, HICON);
40extern HIMAGELIST (* WINAPI pImageList_Create) (INT,INT,UINT,INT,INT);
41extern BOOL (* WINAPI pImageList_Draw) (HIMAGELIST himl, int i, HDC hdcDest, int x, int y, UINT fStyle);
42extern HICON (* WINAPI pImageList_GetIcon) (HIMAGELIST, INT, UINT);
43extern INT (* WINAPI pImageList_GetImageCount)(HIMAGELIST);
44extern COLORREF (* WINAPI pImageList_SetBkColor)(HIMAGELIST, COLORREF);
45
46extern LPVOID (* WINAPI pCOMCTL32_Alloc) (INT);
47extern BOOL (* WINAPI pCOMCTL32_Free) (LPVOID);
48
49extern HDPA (* WINAPI pDPA_Create) (INT);
50extern INT (* WINAPI pDPA_InsertPtr) (const HDPA, INT, LPVOID);
51extern BOOL (* WINAPI pDPA_Sort) (const HDPA, PFNDPACOMPARE, LPARAM);
52extern LPVOID (* WINAPI pDPA_GetPtr) (const HDPA, INT);
53extern BOOL (* WINAPI pDPA_Destroy) (const HDPA);
54extern INT (* WINAPI pDPA_Search) (const HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
55extern LPVOID (* WINAPI pDPA_DeletePtr) (const HDPA hdpa, INT i);
56#define pDPA_GetPtrCount(hdpa) (*(INT*)(hdpa))
57
58extern HICON (* WINAPI pLookupIconIdFromDirectoryEx)(LPBYTE dir, BOOL bIcon, INT width, INT height, UINT cFlag);
59extern HICON (* WINAPI pCreateIconFromResourceEx)(LPBYTE bits,UINT cbSize, BOOL bIcon, DWORD dwVersion, INT width, INT height,UINT cFlag);
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
71HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
72HRESULT WINAPI StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
73HRESULT WINAPI StrRetToStrN (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
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 */
182BOOL SHELL_DeleteDirectoryA(LPCSTR pszDir, BOOL bShowUI);
183
184#ifdef __WIN32OS2__
185#ifdef __cplusplus
186extern "C" {
187#endif
188BOOL SHELL_OsIsUnicode(void);
189
190#include <peexe.h>
191PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY resdirptr,
192 LPCWSTR name,DWORD root,
193 BOOL allowdefault);
194
195#ifdef __cplusplus
196}
197#endif
198#else
199inline static BOOL SHELL_OsIsUnicode(void)
200{
201 /* if high-bit of version is 0, we are emulating NT */
202 return !(GetVersion() & 0x80000000);
203}
204#endif
205
206#endif
Note: See TracBrowser for help on using the repository browser.