1 #ifndef _PRECOMP_H__ 2 #define _PRECOMP_H__ 3 4 #if DBG && !defined(_DEBUG) 5 #define _DEBUG // CORE-17505 6 #endif 7 8 #include <stdarg.h> 9 #include <assert.h> 10 11 #define COBJMACROS 12 #define WIN32_NO_STATUS 13 #define _INC_WINDOWS 14 #define COM_NO_WINDOWS_H 15 #define NTOS_MODE_USER 16 17 #include <windef.h> 18 #include <winbase.h> 19 #include <winreg.h> 20 #include <winuser.h> 21 #include <wincon.h> 22 #include <commdlg.h> 23 #include <ddeml.h> 24 #include <userenv.h> 25 26 #include <shlwapi.h> 27 #include <wininet.h> 28 #include <shlobj.h> 29 #include <shobjidl.h> 30 #include <ndk/rtlfuncs.h> 31 #include <fmifs/fmifs.h> 32 #include <tchar.h> 33 #include <strsafe.h> 34 #include <atlbase.h> 35 #include <atlcom.h> 36 #include <atlwin.h> 37 #include <atlstr.h> 38 #include <atlsimpcoll.h> 39 #include <atlcoll.h> 40 #include <powrprof.h> 41 #include <winnetwk.h> 42 #include <objsafe.h> 43 44 #include <comctl32_undoc.h> 45 #include <shlguid_undoc.h> 46 #include <shlobj_undoc.h> 47 #include <shlwapi_undoc.h> 48 49 #include <shellapi.h> 50 #undef ShellExecute 51 #include <undocshell.h> 52 53 /* 54 * For versions < Vista+, redefine ShellMessageBoxW to ShellMessageBoxWrapW 55 * (this is needed to avoid a linker error). On Vista+ onwards, shell32.ShellMessageBoxW 56 * redirects to shlwapi.ShellMessageBoxW so the #define should not be needed. 57 * 58 * However our shell32 is built with _WIN32_WINNT set to 0x600 (Vista+), 59 * yet its exports (especially regarding ShellMessageBoxA/W) are Win2003 60 * compatible. So the #define is still needed, and the check be disabled. 61 */ 62 // #if (_WIN32_WINNT < 0x0600) 63 #define ShellMessageBoxW ShellMessageBoxWrapW 64 // #endif 65 66 #include <browseui_undoc.h> 67 68 #include <shellutils.h> 69 70 #include "shellrecyclebin/recyclebin.h" 71 #include "wine/pidl.h" 72 #include "debughlp.h" 73 #include "wine/shell32_main.h" 74 #include "shresdef.h" 75 #include "wine/cpanel.h" 76 #include "CActiveDesktop.h" 77 #include "CEnumIDListBase.h" 78 #include "shfldr.h" 79 #include "CShellItem.h" 80 #include "CShellLink.h" 81 #include "CFolderItemVerbs.h" 82 #include "CFolderItems.h" 83 #include "CFolder.h" 84 #include "CShellDispatch.h" 85 #include "CDropTargetHelper.h" 86 #include "CFolderOptions.h" 87 #include "folders/CFSFolder.h" 88 #include "folders/CDrivesFolder.h" 89 #include "folders/CDesktopFolder.h" 90 #include "folders/CControlPanelFolder.h" 91 #include "folders/CMyDocsFolder.h" 92 #include "folders/CNetFolder.h" 93 #include "folders/CFontsFolder.h" 94 #include "folders/CPrinterFolder.h" 95 #include "folders/CAdminToolsFolder.h" 96 #include "folders/CRecycleBin.h" 97 #include "droptargets/CexeDropHandler.h" 98 #include "droptargets/CFSDropTarget.h" 99 #include "COpenWithMenu.h" 100 #include "CNewMenu.h" 101 #include "CSendToMenu.h" 102 #include "CCopyToMoveToMenu.h" 103 #include "dialogs/filedefext.h" 104 #include "dialogs/drvdefext.h" 105 #include "CQueryAssociations.h" 106 #include "shellmenu/CMenuBand.h" 107 #include "shellmenu/CMenuDeskBar.h" 108 #include "shellmenu/CMenuSite.h" 109 #include "shellmenu/CMergedFolder.h" 110 #include "shellmenu/shellmenu.h" 111 #include "CUserNotification.h" 112 #include "dialogs/folder_options.h" 113 #include "shelldesktop/CChangeNotifyServer.h" 114 115 #include <wine/debug.h> 116 #include <wine/unicode.h> 117 118 extern const GUID CLSID_AdminFolderShortcut; 119 extern const GUID CLSID_FontsFolderShortcut; 120 extern const GUID CLSID_StartMenu; 121 extern const GUID CLSID_MenuBandSite; 122 extern const GUID CLSID_OpenWith; 123 extern const GUID CLSID_UnixFolder; 124 extern const GUID CLSID_UnixDosFolder; 125 extern const GUID SHELL32_AdvtShortcutProduct; 126 extern const GUID SHELL32_AdvtShortcutComponent; 127 128 #define MAX_PROPERTY_SHEET_PAGE 32 129 130 extern inline 131 BOOL 132 CALLBACK 133 AddPropSheetPageCallback(HPROPSHEETPAGE hPage, LPARAM lParam) 134 { 135 PROPSHEETHEADERW *pHeader = (PROPSHEETHEADERW *)lParam; 136 137 if (pHeader->nPages < MAX_PROPERTY_SHEET_PAGE) 138 { 139 pHeader->phpage[pHeader->nPages++] = hPage; 140 return TRUE; 141 } 142 143 return FALSE; 144 } 145 146 HRESULT WINAPI 147 Shell_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdtobj); 148 149 // CStubWindow32 --- The owner window of file property sheets. 150 // This window hides taskbar button of property sheet. 151 class CStubWindow32 : public CWindowImpl<CStubWindow32> 152 { 153 public: 154 DECLARE_WND_CLASS_EX(_T("StubWindow32"), 0, COLOR_WINDOWTEXT) 155 156 BEGIN_MSG_MAP(CStubWindow32) 157 END_MSG_MAP() 158 }; 159 160 #endif /* _PRECOMP_H__ */ 161