Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenshlobj.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) the Wine project 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #ifndef __WINE_SHLOBJ_H 00020 #define __WINE_SHLOBJ_H 00021 00022 #include <ole2.h> 00023 #include <commctrl.h> 00024 #include <prsht.h> 00025 #include <shlguid.h> 00026 00027 #ifdef WINE_NO_UNICODE_MACROS 00028 #undef GetObject 00029 #endif 00030 00031 #ifdef __cplusplus 00032 extern "C" { 00033 #endif /* defined(__cplusplus) */ 00034 00035 /* Except for specific structs, this header is byte packed */ 00036 #include <pshpack1.h> 00037 00038 #include <shtypes.h> 00039 #include <shobjidl.h> 00040 00041 typedef struct 00042 { 00043 DWORD dwSize; 00044 DWORD dwMask; 00045 SHELLVIEWID* pvid; 00046 LPSTR pszWebViewTemplate; 00047 DWORD cchWebViewTemplate; 00048 LPSTR pszWebViewTemplateVersion; 00049 LPSTR pszInfoTip; 00050 DWORD cchInfoTip; 00051 CLSID* pclsid; 00052 DWORD dwFlags; 00053 LPSTR pszIconFile; 00054 DWORD cchIconFile; 00055 int iIconIndex; 00056 LPSTR pszLogo; 00057 DWORD cchLogo; 00058 } SHFOLDERCUSTOMSETTINGSA, *LPSHFOLDERCUSTOMSETTINGSA; 00059 00060 typedef struct 00061 { 00062 DWORD dwSize; 00063 DWORD dwMask; 00064 SHELLVIEWID* pvid; 00065 LPWSTR pszWebViewTemplate; 00066 DWORD cchWebViewTemplate; 00067 LPWSTR pszWebViewTemplateVersion; 00068 LPWSTR pszInfoTip; 00069 DWORD cchInfoTip; 00070 CLSID* pclsid; 00071 DWORD dwFlags; 00072 LPWSTR pszIconFile; 00073 DWORD cchIconFile; 00074 int iIconIndex; 00075 LPWSTR pszLogo; 00076 DWORD cchLogo; 00077 } SHFOLDERCUSTOMSETTINGSW, *LPSHFOLDERCUSTOMSETTINGSW; 00078 00079 #ifndef HPSXA_DEFINED 00080 #define HPSXA_DEFINED 00081 DECLARE_HANDLE(HPSXA); 00082 #endif 00083 00084 UINT WINAPI SHAddFromPropSheetExtArray(HPSXA,LPFNADDPROPSHEETPAGE,LPARAM); 00085 LPVOID WINAPI SHAlloc(SIZE_T) __WINE_ALLOC_SIZE(1); 00086 HRESULT WINAPI SHCoCreateInstance(LPCWSTR,const CLSID*,IUnknown*,REFIID,LPVOID*); 00087 HPSXA WINAPI SHCreatePropSheetExtArray(HKEY,LPCWSTR,UINT); 00088 HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY,LPCWSTR,UINT,IDataObject*); 00089 HRESULT WINAPI SHCreateShellItem(LPCITEMIDLIST,IShellFolder*,LPCITEMIDLIST,IShellItem**); 00090 DWORD WINAPI SHCLSIDFromStringA(LPCSTR,CLSID*); 00091 DWORD WINAPI SHCLSIDFromStringW(LPCWSTR,CLSID*); 00092 #define SHCLSIDFromString WINELIB_NAME_AW(SHCLSIDFromString) 00093 HRESULT WINAPI SHCreateStdEnumFmtEtc(UINT,const FORMATETC *,IEnumFORMATETC**); 00094 void WINAPI SHDestroyPropSheetExtArray(HPSXA); 00095 BOOL WINAPI SHFindFiles(LPCITEMIDLIST,LPCITEMIDLIST); 00096 DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT); 00097 void WINAPI SHFree(LPVOID); 00098 BOOL WINAPI GetFileNameFromBrowse(HWND,LPWSTR,UINT,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); 00099 HRESULT WINAPI SHGetInstanceExplorer(IUnknown**); 00100 VOID WINAPI SHSetInstanceExplorer (IUnknown*); 00101 HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR); 00102 HRESULT WINAPI SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR); 00103 #define SHGetFolderPathAndSubDir WINELIB_NAME_AW(SHGetFolderPathAndSubDir); 00104 BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); 00105 BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); 00106 #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList) 00107 INT WINAPI SHHandleUpdateImage(LPCITEMIDLIST); 00108 HRESULT WINAPI SHILCreateFromPath(LPCWSTR,LPITEMIDLIST*,DWORD*); 00109 HRESULT WINAPI SHLoadOLE(LPARAM); 00110 HRESULT WINAPI SHParseDisplayName(LPCWSTR,IBindCtx*,LPITEMIDLIST*,SFGAOF,SFGAOF*); 00111 HRESULT WINAPI SHPathPrepareForWriteA(HWND,IUnknown*,LPCSTR,DWORD); 00112 HRESULT WINAPI SHPathPrepareForWriteW(HWND,IUnknown*,LPCWSTR,DWORD); 00113 #define SHPathPrepareForWrite WINELIB_NAME_AW(SHPathPrepareForWrite); 00114 UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA,UINT,LPFNADDPROPSHEETPAGE,LPARAM); 00115 LPITEMIDLIST WINAPI SHSimpleIDListFromPath(LPCWSTR); 00116 int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder*,LPCITEMIDLIST,int*); 00117 HRESULT WINAPI SHStartNetConnectionDialog(HWND,LPCSTR,DWORD); 00118 VOID WINAPI SHUpdateImageA(LPCSTR,INT,UINT,INT); 00119 VOID WINAPI SHUpdateImageW(LPCWSTR,INT,UINT,INT); 00120 INT WINAPI PickIconDlg(HWND,LPWSTR,UINT,int *); 00121 #define SHUpdateImage WINELIB_NAME_AW(SHUpdateImage) 00122 int WINAPI RestartDialog(HWND,LPCWSTR,DWORD); 00123 int WINAPI RestartDialogEx(HWND,LPCWSTR,DWORD,DWORD); 00124 BOOL WINAPI IsUserAnAdmin(void); 00125 00126 #define SHFMT_ERROR 0xFFFFFFFFL /* Error on last format, drive may be formattable */ 00127 #define SHFMT_CANCEL 0xFFFFFFFEL /* Last format was cancelled */ 00128 #define SHFMT_NOFORMAT 0xFFFFFFFDL /* Drive is not formattable */ 00129 00130 /* SHFormatDrive flags */ 00131 #define SHFMT_ID_DEFAULT 0xFFFF 00132 #define SHFMT_OPT_FULL 1 00133 #define SHFMT_OPT_SYSONLY 2 00134 00135 /* SHPathPrepareForWrite flags */ 00136 #define SHPPFW_NONE 0x00000000 00137 #define SHPPFW_DIRCREATE 0x00000001 00138 #define SHPPFW_DEFAULT SHPPFW_DIRCREATE 00139 #define SHPPFW_ASKDIRCREATE 0x00000002 00140 #define SHPPFW_IGNOREFILENAME 0x00000004 00141 #define SHPPFW_NOWRITECHECK 0x00000008 00142 #define SHPPFW_MEDIACHECKONLY 0x00000010 00143 00144 /* SHObjectProperties flags */ 00145 #define SHOP_PRINTERNAME 0x01 00146 #define SHOP_FILEPATH 0x02 00147 #define SHOP_VOLUMEGUID 0x04 00148 00149 BOOL WINAPI SHObjectProperties(HWND,DWORD,LPCWSTR,LPCWSTR); 00150 00151 #define PCS_FATAL 0x80000000 00152 #define PCS_REPLACEDCHAR 0x00000001 00153 #define PCS_REMOVEDCHAR 0x00000002 00154 #define PCS_TRUNCATED 0x00000004 00155 #define PCS_PATHTOOLONG 0x00000008 00156 00157 int WINAPI PathCleanupSpec(LPCWSTR,LPWSTR); 00158 00159 /***************************************************************************** 00160 * IContextMenu interface 00161 */ 00162 00163 00164 /* DATAOBJECT_InitShellIDList*/ 00165 #define CFSTR_SHELLIDLISTA "Shell IDList Array" /* CF_IDLIST */ 00166 #define CFSTR_SHELLIDLISTOFFSETA "Shell Object Offsets" /* CF_OBJECTPOSITIONS */ 00167 #define CFSTR_NETRESOURCESA "Net Resource" /* CF_NETRESOURCE */ 00168 /* DATAOBJECT_InitFileGroupDesc */ 00169 #define CFSTR_FILEDESCRIPTORA "FileGroupDescriptor" /* CF_FILEGROUPDESCRIPTORA */ 00170 /* DATAOBJECT_InitFileContents*/ 00171 #define CFSTR_FILECONTENTSA "FileContents" /* CF_FILECONTENTS */ 00172 #define CFSTR_FILENAMEA "FileName" /* CF_FILENAMEA */ 00173 #define CFSTR_FILENAMEMAPA "FileNameMap" /* CF_FILENAMEMAPA */ 00174 #define CFSTR_PRINTERGROUPA "PrinterFriendlyName" /* CF_PRINTERS */ 00175 #define CFSTR_SHELLURLA "UniformResourceLocator" 00176 #define CFSTR_INETURLA CFSTR_SHELLURLA 00177 #define CFSTR_PREFERREDDROPEFFECTA "Preferred DropEffect" 00178 #define CFSTR_PERFORMEDDROPEFFECTA "Performed DropEffect" 00179 #define CFSTR_PASTESUCCEEDEDA "Paste Succeeded" 00180 #define CFSTR_INDRAGLOOPA "InShellDragLoop" 00181 #define CFSTR_DRAGCONTEXTA "DragContext" 00182 #define CFSTR_MOUNTEDVOLUMEA "MountedVolume" 00183 #define CFSTR_PERSISTEDDATAOBJECTA "PersistedDataObject" 00184 #define CFSTR_TARGETCLSIDA "TargetCLSID" 00185 #define CFSTR_AUTOPLAY_SHELLIDLISTSA "Autoplay Enumerated IDList Array" 00186 #define CFSTR_LOGICALPERFORMEDDROPEFFECTA "Logical Performed DropEffect" 00187 00188 #if defined(__GNUC__) 00189 # define CFSTR_SHELLIDLISTW \ 00190 (const WCHAR []){ 'S','h','e','l','l',' ','I','D','L','i','s','t',' ','A','r','r','a','y',0 } 00191 # define CFSTR_SHELLIDLISTOFFSETW \ 00192 (const WCHAR []){ 'S','h','e','l','l',' ','O','b','j','e','c','t',' ','O','f','f','s','e','t','s',0 } 00193 # define CFSTR_NETRESOURCESW \ 00194 (const WCHAR []){ 'N','e','t',' ','R','e','s','o','u','r','c','e',0 } 00195 # define CFSTR_FILEDESCRIPTORW \ 00196 (const WCHAR []){ 'F','i','l','e','G','r','o','u','p','D','e','s','c','r','i','p','t','o','r','W',0 } 00197 # define CFSTR_FILECONTENTSW \ 00198 (const WCHAR []){ 'F','i','l','e','C','o','n','t','e','n','t','s',0 } 00199 # define CFSTR_FILENAMEW \ 00200 (const WCHAR []){ 'F','i','l','e','N','a','m','e','W',0 } 00201 # define CFSTR_FILENAMEMAPW \ 00202 (const WCHAR []){ 'F','i','l','e','N','a','m','e','M','a','p','W',0 } 00203 # define CFSTR_PRINTERGROUPW \ 00204 (const WCHAR []){ 'P','r','i','n','t','e','r','F','r','i','e','n','d','l','y','N','a','m','e',0 } 00205 # define CFSTR_SHELLURLW \ 00206 (const WCHAR []){ 'U','n','i','f','o','r','m','R','e','s','o','u','r','c','e','L','o','c','a','t','o','r',0 } 00207 # define CFSTR_INETURLW \ 00208 (const WCHAR []){ 'U','n','i','f','o','r','m','R','e','s','o','u','r','c','e','L','o','c','a','t','o','r','W',0 } 00209 # define CFSTR_PREFERREDDROPEFFECTW \ 00210 (const WCHAR []){ 'P','r','e','f','e','r','r','e','d',' ','D','r','o','p','E','f','f','e','c','t',0 } 00211 # define CFSTR_PERFORMEDDROPEFFECTW \ 00212 (const WCHAR []){ 'P','e','r','f','o','r','m','e','d',' ','D','r','o','p','E','f','f','e','c','t',0 } 00213 # define CFSTR_PASTESUCCEEDEDW \ 00214 (const WCHAR []){ 'P','a','s','t','e',' ','S','u','c','c','e','e','d','e','d',0 } 00215 # define CFSTR_INDRAGLOOPW \ 00216 (const WCHAR []){ 'I','n','S','h','e','l','l','D','r','a','g','L','o','o','p',0 } 00217 # define CFSTR_DRAGCONTEXTW \ 00218 (const WCHAR []){ 'D','r','a','g','C','o','n','t','e','x','t',0 } 00219 # define CFSTR_MOUNTEDVOLUMEW \ 00220 (const WCHAR []){ 'M','o','u','n','t','e','d','V','o','l','u','m','e',0 } 00221 # define CFSTR_PERSISTEDDATAOBJECTW \ 00222 (const WCHAR []){ 'P','e','r','s','i','s','t','e','d','D','a','t','a','O','b','j','e','c','t',0 } 00223 # define CFSTR_TARGETCLSIDW \ 00224 (const WCHAR []){ 'T','a','r','g','e','t','C','L','S','I','D',0 } 00225 # define CFSTR_AUTOPLAY_SHELLIDLISTSW \ 00226 (const WCHAR []){ 'A','u','t','o','p','l','a','y',' ','E','n','u','m','e','r','a','t','e','d',\ 00227 ' ','I','D','L','i','s','t',' ','A','r','r','a','y',0 } 00228 # define CFSTR_LOGICALPERFORMEDDROPEFFECTW \ 00229 (const WCHAR []){ 'L','o','g','i','c','a','l',' ','P','e','r','f','o','r','m','e','d',\ 00230 ' ','D','r','o','p','E','f','f','e','c','t',0 } 00231 #elif defined(_MSC_VER) 00232 # define CFSTR_SHELLIDLISTW L"Shell IDList Array" 00233 # define CFSTR_SHELLIDLISTOFFSETW L"Shell Object Offsets" 00234 # define CFSTR_NETRESOURCESW L"Net Resource" 00235 # define CFSTR_FILEDESCRIPTORW L"FileGroupDescriptorW" 00236 # define CFSTR_FILECONTENTSW L"FileContents" 00237 # define CFSTR_FILENAMEW L"FileNameW" 00238 # define CFSTR_FILENAMEMAPW L"FileNameMapW" 00239 # define CFSTR_PRINTERGROUPW L"PrinterFriendlyName" 00240 # define CFSTR_SHELLURLW L"UniformResourceLocator" 00241 # define CFSTR_INETURLW L"UniformResourceLocatorW" 00242 # define CFSTR_PREFERREDDROPEFFECTW L"Preferred DropEffect" 00243 # define CFSTR_PERFORMEDDROPEFFECTW L"Performed DropEffect" 00244 # define CFSTR_PASTESUCCEEDEDW L"Paste Succeeded" 00245 # define CFSTR_INDRAGLOOPW L"InShellDragLoop" 00246 # define CFSTR_DRAGCONTEXTW L"DragContext" 00247 # define CFSTR_MOUNTEDVOLUMEW L"MountedVolume" 00248 # define CFSTR_PERSISTEDDATAOBJECTW L"PersistedDataObject" 00249 # define CFSTR_TARGETCLSIDW L"TargetCLSID" 00250 # define CFSTR_AUTOPLAY_SHELLIDLISTSW L"Autoplay Enumerated IDList Array" 00251 # define CFSTR_LOGICALPERFORMEDDROPEFFECTW L"Logical Performed DropEffect" 00252 #else 00253 static const WCHAR CFSTR_SHELLIDLISTW[] = 00254 { 'S','h','e','l','l',' ','I','D','L','i','s','t',' ','A','r','r','a','y',0 }; 00255 static const WCHAR CFSTR_SHELLIDLISTOFFSETW[] = 00256 { 'S','h','e','l','l',' ','O','b','j','e','c','t',' ','O','f','f','s','e','t','s',0 }; 00257 static const WCHAR CFSTR_NETRESOURCESW[] = 00258 { 'N','e','t',' ','R','e','s','o','u','r','c','e',0 }; 00259 static const WCHAR CFSTR_FILEDESCRIPTORW[] = 00260 { 'F','i','l','e','G','r','o','u','p','D','e','s','c','r','i','p','t','o','r','W',0 }; 00261 static const WCHAR CFSTR_FILECONTENTSW[] = 00262 { 'F','i','l','e','C','o','n','t','e','n','t','s',0 }; 00263 static const WCHAR CFSTR_FILENAMEW[] = 00264 { 'F','i','l','e','N','a','m','e','W',0 }; 00265 static const WCHAR CFSTR_FILENAMEMAPW[] = 00266 { 'F','i','l','e','N','a','m','e','M','a','p','W',0 }; 00267 static const WCHAR CFSTR_PRINTERGROUPW[] = 00268 { 'P','r','i','n','t','e','r','F','r','i','e','n','d','l','y','N','a','m','e',0 }; 00269 static const WCHAR CFSTR_SHELLURLW[] = 00270 { 'U','n','i','f','o','r','m','R','e','s','o','u','r','c','e','L','o','c','a','t','o','r',0 }; 00271 static const WCHAR CFSTR_INETURLW[] = 00272 { 'U','n','i','f','o','r','m','R','e','s','o','u','r','c','e','L','o','c','a','t','o','r','W',0 }; 00273 static const WCHAR CFSTR_PREFERREDDROPEFFECTW[] = 00274 { 'P','r','e','f','e','r','r','e','d',' ','D','r','o','p','E','f','f','e','c','t',0 }; 00275 static const WCHAR CFSTR_PERFORMEDDROPEFFECTW[] = 00276 { 'P','e','r','f','o','r','m','e','d',' ','D','r','o','p','E','f','f','e','c','t',0 }; 00277 static const WCHAR CFSTR_PASTESUCCEEDEDW[] = 00278 { 'P','a','s','t','e',' ','S','u','c','c','e','e','d','e','d',0 }; 00279 static const WCHAR CFSTR_INDRAGLOOPW[] = 00280 { 'I','n','S','h','e','l','l','D','r','a','g','L','o','o','p',0 }; 00281 static const WCHAR CFSTR_DRAGCONTEXTW[] = 00282 { 'D','r','a','g','C','o','n','t','e','x','t',0 }; 00283 static const WCHAR CFSTR_MOUNTEDVOLUMEW[] = 00284 { 'M','o','u','n','t','e','d','V','o','l','u','m','e',0 }; 00285 static const WCHAR CFSTR_PERSISTEDDATAOBJECTW[] = 00286 { 'P','e','r','s','i','s','t','e','d','D','a','t','a','O','b','j','e','c','t',0 }; 00287 static const WCHAR CFSTR_TARGETCLSIDW[] = 00288 { 'T','a','r','g','e','t','C','L','S','I','D',0 }; 00289 static const WCHAR CFSTR_AUTOPLAY_SHELLIDLISTSW[] = 00290 { 'A','u','t','o','p','l','a','y',' ','E','n','u','m','e','r','a','t','e','d', 00291 ' ','I','D','L','i','s','t',' ','A','r','r','a','y',0 }; 00292 static const WCHAR CFSTR_LOGICALPERFORMEDDROPEFFECTW[] = 00293 { 'L','o','g','i','c','a','l',' ','P','e','r','f','o','r','m','e','d', 00294 ' ','D','r','o','p','E','f','f','e','c','t',0 }; 00295 #endif 00296 00297 #define CFSTR_SHELLIDLIST WINELIB_NAME_AW(CFSTR_SHELLIDLIST) 00298 #define CFSTR_SHELLIDLISTOFFSET WINELIB_NAME_AW(CFSTR_SHELLIDLISTOFFSET) 00299 #define CFSTR_NETRESOURCES WINELIB_NAME_AW(CFSTR_NETRESOURCES) 00300 #define CFSTR_FILEDESCRIPTOR WINELIB_NAME_AW(CFSTR_FILEDESCRIPTOR) 00301 #define CFSTR_FILECONTENTS WINELIB_NAME_AW(CFSTR_FILECONTENTS) 00302 #define CFSTR_FILENAME WINELIB_NAME_AW(CFSTR_FILENAME) 00303 #define CFSTR_FILENAMEMAP WINELIB_NAME_AW(CFSTR_FILENAMEMAP) 00304 #define CFSTR_PRINTERGROUP WINELIB_NAME_AW(CFSTR_PRINTERGROUP) 00305 #define CFSTR_SHELLURL WINELIB_NAME_AW(CFSTR_SHELLURL) 00306 #define CFSTR_INETURL WINELIB_NAME_AW(CFSTR_INETURL) 00307 #define CFSTR_PREFERREDDROPEFFECT WINELIB_NAME_AW(CFSTR_PREFERREDDROPEFFECT) 00308 #define CFSTR_PERFORMEDDROPEFFECT WINELIB_NAME_AW(CFSTR_PERFORMEDDROPEFFECT) 00309 #define CFSTR_PASTESUCCEEDED WINELIB_NAME_AW(CFSTR_PASTESUCCEEDED) 00310 #define CFSTR_INDRAGLOOP WINELIB_NAME_AW(CFSTR_INDRAGLOOP) 00311 #define CFSTR_DRAGCONTEXT WINELIB_NAME_AW(CFSTR_DRAGCONTEXT) 00312 #define CFSTR_MOUNTEDVOLUME WINELIB_NAME_AW(CFSTR_MOUNTEDVOLUME) 00313 #define CFSTR_PERSISTEDDATAOBJECT WINELIB_NAME_AW(CFSTR_PERSISTEDDATAOBJECT) 00314 #define CFSTR_TARGETCLSID WINELIB_NAME_AW(CFSTR_TARGETCLSID) 00315 #define CFSTR_AUTOPLAY_SHELLIDLISTS WINELIB_NAME_AW(CFSTR_AUTOPLAY_SHELLIDLISTS) 00316 #define CFSTR_LOGICALPERFORMEDDROPEFFECT WINELIB_NAME_AW(CFSTR_LOGICALPERFORMEDDROPEFFECT) 00317 00318 typedef struct 00319 { UINT cidl; 00320 UINT aoffset[1]; 00321 } CIDA, *LPIDA; 00322 00323 /************************************************************************ 00324 * IShellView interface 00325 */ 00326 00327 #define FCIDM_SHVIEWFIRST 0x0000 00328 /* undocumented */ 00329 #define FCIDM_SHVIEW_ARRANGE 0x7001 00330 #define FCIDM_SHVIEW_DELETE 0x7011 00331 #define FCIDM_SHVIEW_PROPERTIES 0x7013 00332 #define FCIDM_SHVIEW_CUT 0x7018 00333 #define FCIDM_SHVIEW_COPY 0x7019 00334 #define FCIDM_SHVIEW_INSERT 0x701A 00335 #define FCIDM_SHVIEW_UNDO 0x701B 00336 #define FCIDM_SHVIEW_INSERTLINK 0x701C 00337 #define FCIDM_SHVIEW_SELECTALL 0x7021 00338 #define FCIDM_SHVIEW_INVERTSELECTION 0x7022 00339 00340 #define FCIDM_SHVIEW_BIGICON 0x7029 00341 #define FCIDM_SHVIEW_SMALLICON 0x702A 00342 #define FCIDM_SHVIEW_LISTVIEW 0x702B 00343 #define FCIDM_SHVIEW_REPORTVIEW 0x702C 00344 /* 0x7030-0x703f are used by the shellbrowser */ 00345 #define FCIDM_SHVIEW_AUTOARRANGE 0x7031 00346 #define FCIDM_SHVIEW_SNAPTOGRID 0x7032 00347 00348 #define FCIDM_SHVIEW_HELP 0x7041 00349 #define FCIDM_SHVIEW_RENAME 0x7050 00350 #define FCIDM_SHVIEW_CREATELINK 0x7051 00351 #define FCIDM_SHVIEW_NEWLINK 0x7052 00352 #define FCIDM_SHVIEW_NEWFOLDER 0x7053 00353 00354 #define FCIDM_SHVIEW_REFRESH 0x7100 /* FIXME */ 00355 #define FCIDM_SHVIEW_EXPLORE 0x7101 /* FIXME */ 00356 #define FCIDM_SHVIEW_OPEN 0x7102 /* FIXME */ 00357 00358 #define FCIDM_SHVIEWLAST 0x7fff 00359 #define FCIDM_BROWSERFIRST 0xA000 00360 /* undocumented toolbar items from stddlg's*/ 00361 #define FCIDM_TB_UPFOLDER 0xA001 00362 #define FCIDM_TB_NEWFOLDER 0xA002 00363 #define FCIDM_TB_SMALLICON 0xA003 00364 #define FCIDM_TB_REPORTVIEW 0xA004 00365 #define FCIDM_TB_DESKTOP 0xA005 /* FIXME */ 00366 00367 #define FCIDM_BROWSERLAST 0xbf00 00368 #define FCIDM_GLOBALFIRST 0x8000 00369 #define FCIDM_GLOBALLAST 0x9fff 00370 00371 /* 00372 * Global submenu IDs and separator IDs 00373 */ 00374 #define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST+0x0000) 00375 #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040) 00376 #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080) 00377 #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081) 00378 #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0) 00379 #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1) 00380 #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100) 00381 #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140) 00382 #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150) 00383 #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170) 00384 00385 /* control IDs known to the view */ 00386 #define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0) 00387 #define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1) 00388 00389 #define INTERFACE IShellDetails 00390 DECLARE_INTERFACE_(IShellDetails, IUnknown) 00391 { 00392 /*** IUnknown methods ***/ 00393 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 00394 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00395 STDMETHOD_(ULONG,Release) (THIS) PURE; 00396 /*** IShellDetails methods ***/ 00397 STDMETHOD(GetDetailsOf)(THIS_ PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *pDetails) PURE; 00398 STDMETHOD(ColumnClick)(THIS_ UINT iColumn) PURE; 00399 }; 00400 #undef INTERFACE 00401 00402 #if !defined(__cplusplus) || defined(CINTERFACE) 00403 /*** IUnknown methods ***/ 00404 #define IShellDetails_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00405 #define IShellDetails_AddRef(p) (p)->lpVtbl->AddRef(p) 00406 #define IShellDetails_Release(p) (p)->lpVtbl->Release(p) 00407 /*** IShellDetails methods ***/ 00408 #define IShellDetails_GetDetailsOf(p,a,b,c) (p)->lpVtbl->GetDetailsOf(p,a,b,c) 00409 #define IShellDetails_ColumnClick(p,a) (p)->lpVtbl->ColumnClick(p,a) 00410 #endif 00411 00412 /* IQueryInfo interface */ 00413 #define INTERFACE IQueryInfo 00414 DECLARE_INTERFACE_(IQueryInfo,IUnknown) 00415 { 00416 /*** IUnknown methods ***/ 00417 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00418 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00419 STDMETHOD_(ULONG,Release)(THIS) PURE; 00420 /*** IQueryInfo methods ***/ 00421 STDMETHOD(GetInfoTip)(THIS_ DWORD dwFlags, WCHAR** lppTips) PURE; 00422 STDMETHOD(GetInfoFlags)(THIS_ DWORD* lpFlags) PURE; 00423 }; 00424 #undef INTERFACE 00425 00426 #if !defined(__cplusplus) || defined(CINTERFACE) 00427 /*** IUnknown methods ***/ 00428 #define IQueryInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00429 #define IQueryInfo_AddRef(p) (p)->lpVtbl->AddRef(p) 00430 #define IQueryInfo_Release(p) (p)->lpVtbl->Release(p) 00431 /*** IQueryInfo methods ***/ 00432 #define IQueryInfo_GetInfoTip(p,a,b) (p)->lpVtbl->GetInfoTip(p,a,b) 00433 #define IQueryInfo_GetInfoFlags(p,a) (p)->lpVtbl->GetInfoFlags(p,a) 00434 #endif 00435 00436 /* IInputObject interface */ 00437 #define INTERFACE IInputObject 00438 DECLARE_INTERFACE_(IInputObject,IUnknown) 00439 { 00440 /*** IUnknown methods ***/ 00441 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00442 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00443 STDMETHOD_(ULONG,Release)(THIS) PURE; 00444 /*** IInputObject methods ***/ 00445 STDMETHOD(UIActivateIO)(THIS_ BOOL bActivating, LPMSG lpMsg) PURE; 00446 STDMETHOD(HasFocusIO)(THIS) PURE; 00447 STDMETHOD(TranslateAcceleratorIO)(THIS_ LPMSG lpMsg) PURE; 00448 }; 00449 #undef INTERFACE 00450 00451 #if !defined(__cplusplus) || defined(CINTERFACE) 00452 /*** IUnknown methods ***/ 00453 #define IInputObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00454 #define IInputObject_AddRef(p) (p)->lpVtbl->AddRef(p) 00455 #define IInputObject_Release(p) (p)->lpVtbl->Release(p) 00456 /*** IInputObject methods ***/ 00457 #define IInputObject_UIActivateIO(p,a,b) (p)->lpVtbl->UIActivateIO(p,a,b) 00458 #define IInputObject_HasFocusIO(p) (p)->lpVtbl->HasFocusIO(p) 00459 #define IInputObject_TranslateAcceleratorIO(p,a) (p)->lpVtbl->TranslateAcceleratorIO(p,a) 00460 #endif 00461 00462 /* IInputObjectSite interface */ 00463 #define INTERFACE IInputObjectSite 00464 DECLARE_INTERFACE_(IInputObjectSite,IUnknown) 00465 { 00466 /*** IUnknown methods ***/ 00467 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; 00468 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00469 STDMETHOD_(ULONG,Release) (THIS) PURE; 00470 /*** IInputObjectSite methods ***/ 00471 STDMETHOD(OnFocusChangeIS)(THIS_ LPUNKNOWN lpUnknown, BOOL bFocus) PURE; 00472 }; 00473 #undef INTERFACE 00474 00475 #if !defined(__cplusplus) || defined(CINTERFACE) 00476 /*** IUnknown methods ***/ 00477 #define IInputObjectSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00478 #define IInputObjectSite_AddRef(p) (p)->lpVtbl->AddRef(p) 00479 #define IInputObjectSite_Release(p) (p)->lpVtbl->Release(p) 00480 /*** IInputObject methods ***/ 00481 #define IInputObjectSite_OnFocusChangeIS(p,a,b) (p)->lpVtbl->OnFocusChangeIS(p,a,b) 00482 #endif 00483 00484 /* IObjMgr interface */ 00485 #define INTERFACE IObjMgr 00486 DECLARE_INTERFACE_(IObjMgr,IUnknown) 00487 { 00488 /*** IUnknown methods ***/ 00489 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; 00490 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00491 STDMETHOD_(ULONG,Release) (THIS) PURE; 00492 /*** IObjMgr methods ***/ 00493 STDMETHOD(Append)(THIS_ LPUNKNOWN punk) PURE; 00494 STDMETHOD(Remove)(THIS_ LPUNKNOWN punk) PURE; 00495 }; 00496 #undef INTERFACE 00497 00498 #if !defined(__cplusplus) || defined(CINTERFACE) 00499 /*** IUnknown methods ***/ 00500 #define IObjMgr_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00501 #define IObjMgr_AddRef(p) (p)->lpVtbl->AddRef(p) 00502 #define IObjMgr_Release(p) (p)->lpVtbl->Release(p) 00503 /*** IObjMgr methods ***/ 00504 #define IObjMgr_Append(p,a) (p)->lpVtbl->Append(p,a) 00505 #define IObjMgr_Remove(p,a) (p)->lpVtbl->Remove(p,a) 00506 #endif 00507 00508 /* IACList interface */ 00509 #define INTERFACE IACList 00510 DECLARE_INTERFACE_(IACList,IUnknown) 00511 { 00512 /*** IUnknown methods ***/ 00513 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; 00514 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00515 STDMETHOD_(ULONG,Release) (THIS) PURE; 00516 /*** IACList methods ***/ 00517 STDMETHOD(Expand)(THIS_ LPCOLESTR str) PURE; 00518 }; 00519 #undef INTERFACE 00520 00521 #if !defined(__cplusplus) || defined(CINTERFACE) 00522 /*** IUnknown methods ***/ 00523 #define IACList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00524 #define IACList_AddRef(p) (p)->lpVtbl->AddRef(p) 00525 #define IACList_Release(p) (p)->lpVtbl->Release(p) 00526 /*** IACList methods ***/ 00527 #define IACList_Expand(p,a) (p)->lpVtbl->Expand(p,a) 00528 #endif 00529 00530 /* IACList2 interface */ 00531 #define INTERFACE IACList2 00532 DECLARE_INTERFACE_(IACList2,IACList) 00533 { 00534 /*** IUnknown methods ***/ 00535 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; 00536 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00537 STDMETHOD_(ULONG,Release) (THIS) PURE; 00538 /*** IACList methods ***/ 00539 STDMETHOD(Expand)(THIS_ LPCOLESTR str) PURE; 00540 /*** IACList2 methods ***/ 00541 STDMETHOD(SetOptions)(THIS_ DWORD dwFlag) PURE; 00542 STDMETHOD(GetOptions)(THIS_ DWORD* pdwFlag) PURE; 00543 }; 00544 #undef INTERFACE 00545 00546 #if !defined(__cplusplus) || defined(CINTERFACE) 00547 /*** IUnknown methods ***/ 00548 #define IACList2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00549 #define IACList2_AddRef(p) (p)->lpVtbl->AddRef(p) 00550 #define IACList2_Release(p) (p)->lpVtbl->Release(p) 00551 /*** IACList2 methods ***/ 00552 #define IACList2_GetOptions(p,a) (p)->lpVtbl->GetOptions(p,a) 00553 #define IACList2_SetOptions(p,a) (p)->lpVtbl->SetOptions(p,a) 00554 #endif 00555 00556 /**************************************************************************** 00557 * IShellFolderViewCB interface 00558 */ 00559 00560 #define INTERFACE IShellFolderViewCB 00561 DECLARE_INTERFACE_(IShellFolderViewCB,IUnknown) 00562 { 00563 /*** IUnknown methods ***/ 00564 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00565 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00566 STDMETHOD_(ULONG,Release)(THIS) PURE; 00567 /*** IShellFolderViewCB methods ***/ 00568 STDMETHOD(MessageSFVCB)(THIS_ UINT uMsg, WPARAM wParam, LPARAM lParam) PURE; 00569 }; 00570 #undef INTERFACE 00571 00572 #if !defined(__cplusplus) || defined(CINTERFACE) 00573 /*** IUnknown methods ***/ 00574 #define IShellFolderViewCB_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00575 #define IShellFolderViewCB_AddRef(p) (p)->lpVtbl->AddRef(p) 00576 #define IShellFolderViewCB_Release(p) (p)->lpVtbl->Release(p) 00577 /*** IShellFolderViewCB methods ***/ 00578 #define IShellFolderViewCB_MessageSFVCB(p,a,b,c) (p)->lpVtbl->MessageSFVCB(p,a,b,c) 00579 #endif 00580 00581 /**************************************************************************** 00582 * IShellFolderView interface 00583 */ 00584 00585 #include <pshpack8.h> 00586 00587 typedef struct _ITEMSPACING 00588 { 00589 int cxSmall; 00590 int cySmall; 00591 int cxLarge; 00592 int cyLarge; 00593 } ITEMSPACING; 00594 00595 #include <poppack.h> 00596 00597 #define INTERFACE IShellFolderView 00598 DEFINE_GUID(IID_IShellFolderView,0x37a378c0,0xf82d,0x11ce,0xae,0x65,0x08,0x00,0x2b,0x2e,0x12,0x62); 00599 DECLARE_INTERFACE_(IShellFolderView, IUnknown) 00600 { 00601 /*** IUnknown methods ***/ 00602 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 00603 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00604 STDMETHOD_(ULONG,Release) (THIS) PURE; 00605 00606 /*** IShellFolderView methods ***/ 00607 STDMETHOD(Rearrange) (THIS_ LPARAM lParamSort) PURE; 00608 STDMETHOD(GetArrangeParam) (THIS_ LPARAM *plParamSort) PURE; 00609 STDMETHOD(ArrangeGrid) (THIS) PURE; 00610 STDMETHOD(AutoArrange) (THIS) PURE; 00611 STDMETHOD(GetAutoArrange) (THIS) PURE; 00612 STDMETHOD(AddObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE; 00613 STDMETHOD(GetObject) (THIS_ PITEMID_CHILD *ppidl, UINT uItem) PURE; 00614 STDMETHOD(RemoveObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE; 00615 STDMETHOD(GetObjectCount) (THIS_ UINT *puCount) PURE; 00616 STDMETHOD(SetObjectCount) (THIS_ UINT uCount, UINT dwFlags) PURE; 00617 STDMETHOD(UpdateObject) (THIS_ PITEMID_CHILD pidlOld, PITEMID_CHILD pidlNew, UINT *puItem) PURE; 00618 STDMETHOD(RefreshObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE; 00619 STDMETHOD(SetRedraw) (THIS_ BOOL bRedraw) PURE; 00620 STDMETHOD(GetSelectedCount) (THIS_ UINT *puSelected) PURE; 00621 STDMETHOD(GetSelectedObjects) (THIS_ PCITEMID_CHILD **pppidl, UINT *puItems) PURE; 00622 STDMETHOD(IsDropOnSource) (THIS_ IDropTarget *pDropTarget) PURE; 00623 STDMETHOD(GetDragPoint) (THIS_ POINT *ppt) PURE; 00624 STDMETHOD(GetDropPoint) (THIS_ POINT *ppt) PURE; 00625 STDMETHOD(MoveIcons) (THIS_ IDataObject *pDataObject) PURE; 00626 STDMETHOD(SetItemPos) (THIS_ PCUITEMID_CHILD pidl, POINT *ppt) PURE; 00627 STDMETHOD(IsBkDropTarget) (THIS_ IDropTarget *pDropTarget) PURE; 00628 STDMETHOD(SetClipboard) (THIS_ BOOL bMove) PURE; 00629 STDMETHOD(SetPoints) (THIS_ IDataObject *pDataObject) PURE; 00630 STDMETHOD(GetItemSpacing) (THIS_ ITEMSPACING *pSpacing) PURE; 00631 STDMETHOD(SetCallback) (THIS_ IShellFolderViewCB* pNewCB, IShellFolderViewCB** ppOldCB) PURE; 00632 STDMETHOD(Select) ( THIS_ UINT dwFlags ) PURE; 00633 STDMETHOD(QuerySupport) (THIS_ UINT * pdwSupport ) PURE; 00634 STDMETHOD(SetAutomationObject)(THIS_ IDispatch* pdisp) PURE; 00635 }; 00636 #undef INTERFACE 00637 00638 #if !defined(__cplusplus) || defined(CINTERFACE) 00639 /*** IUnknown methods ***/ 00640 #define IShellFolderView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00641 #define IShellFolderView_AddRef(p) (p)->lpVtbl->AddRef(p) 00642 #define IShellFolderView_Release(p) (p)->lpVtbl->Release(p) 00643 /*** IShellFolderView methods ***/ 00644 #define IShellFolderView_Rearrange(p,a) (p)->lpVtbl->Rearrange(p,a) 00645 #define IShellFolderView_GetArrangeParam(p,a) (p)->lpVtbl->GetArrangeParam(p,a) 00646 #define IShellFolderView_ArrangeGrid(p) (p)->lpVtbl->ArrangeGrid(p) 00647 #define IShellFolderView_AutoArrange(p) (p)->lpVtbl->AutoArrange(p) 00648 #define IShellFolderView_GetAutoArrange(p) (p)->lpVtbl->GetAutoArrange(p) 00649 #define IShellFolderView_AddObject(p,a,b) (p)->lpVtbl->AddObject(p,a,b) 00650 #define IShellFolderView_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b) 00651 #define IShellFolderView_RemoveObject(p,a,b) (p)->lpVtbl->RemoveObject(p,a,b) 00652 #define IShellFolderView_GetObjectCount(p,a) (p)->lpVtbl->GetObjectCount(p,a) 00653 #define IShellFolderView_SetObjectCount(p,a,b) (p)->lpVtbl->SetObjectCount(p,a,b) 00654 #define IShellFolderView_UpdateObject(p,a,b,c) (p)->lpVtbl->UpdateObject(p,a,b,c) 00655 #define IShellFolderView_RefreshObject(p,a,b) (p)->lpVtbl->RefreshObject(p,a,b) 00656 #define IShellFolderView_SetRedraw(p,a) (p)->lpVtbl->SetRedraw(p,a) 00657 #define IShellFolderView_GetSelectedCount(p,a) (p)->lpVtbl->GetSelectedCount(p,a) 00658 #define IShellFolderView_GetSelectedObjects(p,a,b) (p)->lpVtbl->GetSelectedObjects(p,a,b) 00659 #define IShellFolderView_IsDropOnSource(p,a) (p)->lpVtbl->IsDropOnSource(p,a) 00660 #define IShellFolderView_GetDragPoint(p,a) (p)->lpVtbl->GetDragPoint(p,a) 00661 #define IShellFolderView_GetDropPoint(p,a) (p)->lpVtbl->GetDropPoint(p,a) 00662 #define IShellFolderView_MoveIcons(p,a) (p)->lpVtbl->MoveIcons(p,a) 00663 #define IShellFolderView_SetItemPos(p,a,b) (p)->lpVtbl->SetItemPos(p,a,b) 00664 #define IShellFolderView_DropTarget(p,a) (p)->lpVtbl->DropTarget(p,a) 00665 #define IShellFolderView_SetClipboard(p,a) (p)->lpVtbl->SetClipboard(p,a) 00666 #define IShellFolderView_SetPoints(p,a) (p)->lpVtbl->SetPoints(p,a) 00667 #define IShellFolderView_GetItemSpacing(p,a) (p)->lpVtbl->GetItemSpacing(p,a) 00668 #define IShellFolderView_SetCallback(p,a) (p)->lpVtbl->SetCallback(p,a) 00669 #define IShellFolderView_Select(p,a) (p)->lpVtbl->Select(p,a) 00670 #define IShellFolderView_QuerySupport(p,a) (p)->lpVtbl->QuerySupport(p,a) 00671 #define IShellFolderView_SetAutomationObject(p,a) (p)->lpVtbl->SetAutomationObject(p,a) 00672 #endif 00673 00674 /* IProgressDialog interface */ 00675 #define PROGDLG_NORMAL 0x00000000 00676 #define PROGDLG_MODAL 0x00000001 00677 #define PROGDLG_AUTOTIME 0x00000002 00678 #define PROGDLG_NOTIME 0x00000004 00679 #define PROGDLG_NOMINIMIZE 0x00000008 00680 #define PROGDLG_NOPROGRESSBAR 0x00000010 00681 #define PROGDLG_MARQUEEPROGRESS 0x00000020 00682 #define PROGDLG_NOCANCEL 0x00000040 00683 00684 #define PDTIMER_RESET 0x00000001 00685 #define PDTIMER_PAUSE 0x00000002 00686 #define PDTIMER_RESUME 0x00000003 00687 00688 #define INTERFACE IProgressDialog 00689 DECLARE_INTERFACE_(IProgressDialog,IUnknown) 00690 { 00691 /*** IUnknown methods ***/ 00692 STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; 00693 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 00694 STDMETHOD_(ULONG,Release) (THIS) PURE; 00695 /*** IProgressDialog methods ***/ 00696 STDMETHOD(StartProgressDialog)(THIS_ HWND hwndParent, IUnknown *punkEnableModeless, DWORD dwFlags, LPCVOID reserved) PURE; 00697 STDMETHOD(StopProgressDialog)(THIS) PURE; 00698 STDMETHOD(SetTitle)(THIS_ LPCWSTR pwzTitle) PURE; 00699 STDMETHOD(SetAnimation)(THIS_ HINSTANCE hInstance, UINT uiResourceId) PURE; 00700 STDMETHOD_(BOOL,HasUserCancelled)(THIS) PURE; 00701 STDMETHOD(SetProgress)(THIS_ DWORD dwCompleted, DWORD dwTotal) PURE; 00702 STDMETHOD(SetProgress64)(THIS_ ULONGLONG ullCompleted, ULONGLONG ullTotal) PURE; 00703 STDMETHOD(SetLine)(THIS_ DWORD dwLineNum, LPCWSTR pwzString, BOOL bPath, LPCVOID reserved) PURE; 00704 STDMETHOD(SetCancelMsg)(THIS_ LPCWSTR pwzCancelMsg, LPCVOID reserved) PURE; 00705 STDMETHOD(Timer)(THIS_ DWORD dwTimerAction, LPCVOID reserved) PURE; 00706 }; 00707 #undef INTERFACE 00708 00709 #if !defined(__cplusplus) || defined(CINTERFACE) 00710 /*** IUnknown methods ***/ 00711 #define IProgressDialog_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00712 #define IProgressDialog_AddRef(p) (p)->lpVtbl->AddRef(p) 00713 #define IProgressDialog_Release(p) (p)->lpVtbl->Release(p) 00714 /*** IProgressDialog methods ***/ 00715 #define IProgressDialog_StartProgressDialog(p,a,b,c,d) (p)->lpVtbl->StartProgressDialog(p,a,b,c,d) 00716 #define IProgressDialog_StopProgressDialog(p) (p)->lpVtbl->StopProgressDialog(p) 00717 #define IProgressDialog_SetTitle(p,a) (p)->lpVtbl->SetTitle(p,a) 00718 #define IProgressDialog_SetAnimation(p,a,b) (p)->lpVtbl->SetAnimation(p,a,b) 00719 #define IProgressDialog_HasUserCancelled(p) (p)->lpVtbl->HasUserCancelled(p) 00720 #define IProgressDialog_SetProgress(p,a,b) (p)->lpVtbl->SetProgress(p,a,b) 00721 #define IProgressDialog_SetProgress64(p,a,b) (p)->lpVtbl->SetProgress64(p,a,b) 00722 #define IProgressDialog_SetLine(p,a,b,c,d) (p)->lpVtbl->SetLine(p,a,b,c,d) 00723 #define IProgressDialog_SetCancelMsg(p,a,b) (p)->lpVtbl->SetCancelMsg(p,a,b) 00724 #define IProgressDialog_Timer(p,a,b) (p)->lpVtbl->Timer(p,a,b) 00725 #endif 00726 00727 00728 /* IDeskBarClient interface */ 00729 #define INTERFACE IDeskBarClient 00730 DECLARE_INTERFACE_(IDeskBarClient,IOleWindow) 00731 { 00732 /*** IUnknown methods ***/ 00733 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; 00734 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00735 STDMETHOD_(ULONG,Release)(THIS) PURE; 00736 /*** IOleWindow methods ***/ 00737 STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE; 00738 STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE; 00739 /*** IDeskBarClient methods ***/ 00740 STDMETHOD_(HRESULT,SetDeskBarSite)(THIS_ IUnknown*) PURE; 00741 STDMETHOD_(HRESULT,SetModeDBC)(THIS_ DWORD) PURE; 00742 STDMETHOD_(HRESULT,UIActivateDBC)(THIS_ DWORD) PURE; 00743 STDMETHOD_(HRESULT,GetSize)(THIS_ DWORD,LPRECT) PURE; 00744 }; 00745 #undef INTERFACE 00746 00747 #if !defined(__cplusplus) || defined(CINTERFACE) 00748 /*** IUnknown methods ***/ 00749 #define IDeskBarClient_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00750 #define IDeskBarClient_AddRef(p) (p)->lpVtbl->AddRef(p) 00751 #define IDeskBarClient_Release(p) (p)->lpVtbl->Release(p) 00752 /*** IOleWindow methods ***/ 00753 #define IDeskBarClient_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) 00754 #define IDeskBarClient_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) 00755 /*** IOleWindow IDeskBarClient ***/ 00756 #define IDeskBarClient_SetDeskBarSite(p,a) (p)->lpVtbl->SetDeskBarSite(p,a) 00757 #define IDeskBarClient_SetModeDBC(p,a) (p)->lpVtbl->SetModeDBC(p,a) 00758 #define IDeskBarClient_UIActivateDBC(p,a) (p)->lpVtbl->UIActivateDBC(p,a) 00759 #define IDeskBarClient_GetSize(p,a,b) (p)->lpVtbl->GetSize(p,a,b) 00760 #endif 00761 00762 #define DBC_GS_IDEAL 0 00763 #define DBC_GS_SIZEDOWN 1 00764 00765 #define DBC_HIDE 0 00766 #define DBC_SHOW 1 00767 #define DBC_SHOWOBSCURE 2 00768 00769 00770 /**************************************************************************** 00771 * SHAddToRecentDocs API 00772 */ 00773 #define SHARD_PIDL 0x00000001L 00774 #define SHARD_PATHA 0x00000002L 00775 #define SHARD_PATHW 0x00000003L 00776 #define SHARD_PATH WINELIB_NAME_AW(SHARD_PATH) 00777 00778 void WINAPI SHAddToRecentDocs(UINT,LPCVOID); 00779 00780 /**************************************************************************** 00781 * SHBrowseForFolder API 00782 */ 00783 typedef INT (CALLBACK *BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM); 00784 00785 #include <pshpack8.h> 00786 00787 typedef struct tagBROWSEINFOA { 00788 HWND hwndOwner; 00789 LPCITEMIDLIST pidlRoot; 00790 LPSTR pszDisplayName; 00791 LPCSTR lpszTitle; 00792 UINT ulFlags; 00793 BFFCALLBACK lpfn; 00794 LPARAM lParam; 00795 INT iImage; 00796 } BROWSEINFOA, *PBROWSEINFOA, *LPBROWSEINFOA; 00797 00798 typedef struct tagBROWSEINFOW { 00799 HWND hwndOwner; 00800 LPCITEMIDLIST pidlRoot; 00801 LPWSTR pszDisplayName; 00802 LPCWSTR lpszTitle; 00803 UINT ulFlags; 00804 BFFCALLBACK lpfn; 00805 LPARAM lParam; 00806 INT iImage; 00807 } BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW; 00808 00809 #define BROWSEINFO WINELIB_NAME_AW(BROWSEINFO) 00810 #define PBROWSEINFO WINELIB_NAME_AW(PBROWSEINFO) 00811 #define LPBROWSEINFO WINELIB_NAME_AW(LPBROWSEINFO) 00812 00813 #include <poppack.h> 00814 00815 /* Browsing for directory. */ 00816 #define BIF_RETURNONLYFSDIRS 0x0001 00817 #define BIF_DONTGOBELOWDOMAIN 0x0002 00818 #define BIF_STATUSTEXT 0x0004 00819 #define BIF_RETURNFSANCESTORS 0x0008 00820 #define BIF_EDITBOX 0x0010 00821 #define BIF_VALIDATE 0x0020 00822 #define BIF_NEWDIALOGSTYLE 0x0040 00823 #define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX) 00824 #define BIF_BROWSEINCLUDEURLS 0x0080 00825 #define BIF_UAHINT 0x0100 00826 #define BIF_NONEWFOLDERBUTTON 0x0200 00827 #define BIF_NOTRANSLATETARGETS 0x0400 00828 00829 #define BIF_BROWSEFORCOMPUTER 0x1000 00830 #define BIF_BROWSEFORPRINTER 0x2000 00831 #define BIF_BROWSEINCLUDEFILES 0x4000 00832 00833 /* message from browser */ 00834 #define BFFM_INITIALIZED 1 00835 #define BFFM_SELCHANGED 2 00836 #define BFFM_VALIDATEFAILEDA 3 00837 #define BFFM_VALIDATEFAILEDW 4 00838 #define BFFM_IUNKNOWN 5 00839 00840 /* messages to browser */ 00841 #define BFFM_SETSTATUSTEXTA (WM_USER+100) 00842 #define BFFM_ENABLEOK (WM_USER+101) 00843 #define BFFM_SETSELECTIONA (WM_USER+102) 00844 #define BFFM_SETSELECTIONW (WM_USER+103) 00845 #define BFFM_SETSTATUSTEXTW (WM_USER+104) 00846 #define BFFM_SETOKTEXT (WM_USER+105) 00847 #define BFFM_SETEXPANDED (WM_USER+106) 00848 00849 LPITEMIDLIST WINAPI SHBrowseForFolderA(LPBROWSEINFOA lpbi); 00850 LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi); 00851 #define SHBrowseForFolder WINELIB_NAME_AW(SHBrowseForFolder) 00852 #define BFFM_SETSTATUSTEXT WINELIB_NAME_AW(BFFM_SETSTATUSTEXT) 00853 #define BFFM_SETSELECTION WINELIB_NAME_AW(BFFM_SETSELECTION) 00854 #define BFFM_VALIDATEFAILED WINELIB_NAME_AW(BFFM_VALIDATEFAILED) 00855 00856 /********************************************************************** 00857 * SHCreateShellFolderViewEx API 00858 */ 00859 00860 typedef HRESULT (CALLBACK *LPFNVIEWCALLBACK)( 00861 IShellView* dwUser, 00862 IShellFolder* pshf, 00863 HWND hWnd, 00864 UINT uMsg, 00865 WPARAM wParam, 00866 LPARAM lParam); 00867 00868 #include <pshpack8.h> 00869 00870 typedef struct _CSFV 00871 { 00872 UINT cbSize; 00873 IShellFolder* pshf; 00874 IShellView* psvOuter; 00875 LPCITEMIDLIST pidl; 00876 LONG lEvents; 00877 LPFNVIEWCALLBACK pfnCallback; 00878 FOLDERVIEWMODE fvm; 00879 } CSFV, *LPCSFV; 00880 00881 #include <poppack.h> 00882 00883 HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV pshfvi, IShellView **ppshv); 00884 00885 /* SHCreateShellFolderViewEx callback messages */ 00886 #define SFVM_MERGEMENU 1 00887 #define SFVM_INVOKECOMMAND 2 00888 #define SFVM_GETHELPTEXT 3 00889 #define SFVM_GETTOOLTIPTEXT 4 00890 #define SFVM_GETBUTTONINFO 5 00891 #define SFVM_GETBUTTONS 6 00892 #define SFVM_INITMENUPOPUP 7 00893 #define SFVM_SELECTIONCHANGED 8 /* undocumented */ 00894 #define SFVM_DRAWMENUITEM 9 /* undocumented */ 00895 #define SFVM_MEASUREMENUITEM 10 /* undocumented */ 00896 #define SFVM_EXITMENULOOP 11 /* undocumented */ 00897 #define SFVM_VIEWRELEASE 12 /* undocumented */ 00898 #define SFVM_GETNAMELENGTH 13 /* undocumented */ 00899 #define SFVM_FSNOTIFY 14 00900 #define SFVM_WINDOWCREATED 15 00901 #define SFVM_WINDOWCLOSING 16 /* undocumented */ 00902 #define SFVM_LISTREFRESHED 17 /* undocumented */ 00903 #define SFVM_WINDOWFOCUSED 18 /* undocumented */ 00904 #define SFVM_REGISTERCOPYHOOK 20 /* undocumented */ 00905 #define SFVM_COPYHOOKCALLBACK 21 /* undocumented */ 00906 #define SFVM_GETDETAILSOF 23 00907 #define SFVM_COLUMNCLICK 24 00908 #define SFVM_QUERYFSNOTIFY 25 00909 #define SFVM_DEFITEMCOUNT 26 00910 #define SFVM_DEFVIEWMODE 27 00911 #define SFVM_UNMERGEFROMMENU 28 00912 #define SFVM_ADDINGOBJECT 29 /* undocumented */ 00913 #define SFVM_REMOVINGOBJECT 30 /* undocumented */ 00914 #define SFVM_UPDATESTATUSBAR 31 00915 #define SFVM_BACKGROUNDENUM 32 00916 #define SFVM_GETCOMMANDDIR 33 /* undocumented */ 00917 #define SFVM_GETCOLUMNSTREAM 34 /* undocumented */ 00918 #define SFVM_CANSELECTALL 35 /* undocumented */ 00919 #define SFVM_DIDDRAGDROP 36 00920 #define SFVM_ISSTRICTREFRESH 37 /* undocumented */ 00921 #define SFVM_ISCHILDOBJECT 38 /* undocumented */ 00922 #define SFVM_SETISFV 39 00923 #define SFVM_GETEXTVIEWS 40 /* undocumented */ 00924 #define SFVM_THISIDLIST 41 00925 #define SFVM_ADDPROPERTYPAGES 47 00926 #define SFVM_BACKGROUNDENUMDONE 48 00927 #define SFVM_GETNOTIFY 49 00928 #define SFVM_GETSORTDEFAULTS 53 00929 #define SFVM_SIZE 57 00930 #define SFVM_GETZONE 58 00931 #define SFVM_GETPANE 59 00932 #define SFVM_GETHELPTOPIC 63 00933 #define SFVM_GETANIMATION 68 00934 #define SFVM_GET_CUSTOMVIEWINFO 77 /* undocumented */ 00935 #define SFVM_ENUMERATEDITEMS 79 /* undocumented */ 00936 #define SFVM_GET_VIEW_DATA 80 /* undocumented */ 00937 #define SFVM_GET_WEBVIEW_LAYOUT 82 /* undocumented */ 00938 #define SFVM_GET_WEBVIEW_CONTENT 83 /* undocumented */ 00939 #define SFVM_GET_WEBVIEW_TASKS 84 /* undocumented */ 00940 #define SFVM_GET_WEBVIEW_THEME 86 /* undocumented */ 00941 #define SFVM_GETDEFERREDVIEWSETTINGS 92 /* undocumented */ 00942 00943 #include <pshpack8.h> 00944 00945 typedef struct _SFV_CREATE 00946 { 00947 UINT cbSize; 00948 IShellFolder *pshf; 00949 IShellView *psvOuter; 00950 IShellFolderViewCB *psfvcb; 00951 } SFV_CREATE; 00952 00953 #include <poppack.h> 00954 00955 HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pscfv, IShellView **ppsv); 00956 00957 /* Types and definitions for the SFM_* parameters */ 00958 #include <pshpack8.h> 00959 00960 #define QCMINFO_PLACE_BEFORE 0 00961 #define QCMINFO_PLACE_AFTER 1 00962 typedef struct _QCMINFO_IDMAP_PLACEMENT 00963 { 00964 UINT id; 00965 UINT fFlags; 00966 } QCMINFO_IDMAP_PLACEMENT; 00967 00968 typedef struct _QCMINFO_IDMAP 00969 { 00970 UINT nMaxIds; 00971 QCMINFO_IDMAP_PLACEMENT pIdList[1]; 00972 } QCMINFO_IDMAP; 00973 00974 typedef struct _QCMINFO 00975 { 00976 HMENU hmenu; 00977 UINT indexMenu; 00978 UINT idCmdFirst; 00979 UINT idCmdLast; 00980 QCMINFO_IDMAP const* pIdMap; 00981 } QCMINFO, *LPQCMINFO; 00982 00983 #define TBIF_DEFAULT 0x00000000 00984 #define TBIF_APPEND 0x00000000 00985 #define TBIF_PREPEND 0x00000001 00986 #define TBIF_REPLACE 0x00000002 00987 #define TBIF_INTERNETBAR 0x00010000 00988 #define TBIF_STANDARDTOOLBAR 0x00020000 00989 #define TBIF_NOTOOLBAR 0x00030000 00990 00991 typedef struct _TBINFO 00992 { 00993 UINT cbuttons; 00994 UINT uFlags; 00995 } TBINFO, *LPTBINFO; 00996 00997 #include <poppack.h> 00998 00999 /**************************************************************************** 01000 * SHShellFolderView_Message API 01001 */ 01002 01003 LRESULT WINAPI SHShellFolderView_Message( 01004 HWND hwndCabinet, 01005 UINT uMessage, 01006 LPARAM lParam); 01007 01008 /* SHShellFolderView_Message messages */ 01009 #define SFVM_REARRANGE 0x0001 01010 #define SFVM_GETARRANGECOLUMN 0x0002 /* undocumented */ 01011 #define SFVM_ADDOBJECT 0x0003 01012 #define SFVM_GETITEMCOUNT 0x0004 /* undocumented */ 01013 #define SFVM_GETITEMPIDL 0x0005 /* undocumented */ 01014 #define SFVM_REMOVEOBJECT 0x0006 01015 #define SFVM_UPDATEOBJECT 0x0007 01016 #define SFVM_SETREDRAW 0x0008 /* undocumented */ 01017 #define SFVM_GETSELECTEDOBJECTS 0x0009 01018 #define SFVM_ISDROPONSOURCE 0x000A /* undocumented */ 01019 #define SFVM_MOVEICONS 0x000B /* undocumented */ 01020 #define SFVM_GETDRAGPOINT 0x000C /* undocumented */ 01021 #define SFVM_GETDROPPOINT 0x000D /* undocumented */ 01022 #define SFVM_SETITEMPOS 0x000E 01023 #define SFVM_ISDROPONBACKGROUND 0x000F /* undocumented */ 01024 #define SFVM_SETCLIPBOARD 0x0010 01025 #define SFVM_TOGGLEAUTOARRANGE 0x0011 /* undocumented */ 01026 #define SFVM_LINEUPICONS 0x0012 /* undocumented */ 01027 #define SFVM_GETAUTOARRANGE 0x0013 /* undocumented */ 01028 #define SFVM_GETSELECTEDCOUNT 0x0014 /* undocumented */ 01029 #define SFVM_GETITEMSPACING 0x0015 /* undocumented */ 01030 #define SFVM_REFRESHOBJECT 0x0016 /* undocumented */ 01031 #define SFVM_SETPOINTS 0x0017 01032 01033 /**************************************************************************** 01034 * SHGetDataFromIDList API 01035 */ 01036 #define SHGDFIL_FINDDATA 1 01037 #define SHGDFIL_NETRESOURCE 2 01038 #define SHGDFIL_DESCRIPTIONID 3 01039 01040 #define SHDID_ROOT_REGITEM 1 01041 #define SHDID_FS_FILE 2 01042 #define SHDID_FS_DIRECTORY 3 01043 #define SHDID_FS_OTHER 4 01044 #define SHDID_COMPUTER_DRIVE35 5 01045 #define SHDID_COMPUTER_DRIVE525 6 01046 #define SHDID_COMPUTER_REMOVABLE 7 01047 #define SHDID_COMPUTER_FIXED 8 01048 #define SHDID_COMPUTER_NETDRIVE 9 01049 #define SHDID_COMPUTER_CDROM 10 01050 #define SHDID_COMPUTER_RAMDISK 11 01051 #define SHDID_COMPUTER_OTHER 12 01052 #define SHDID_NET_DOMAIN 13 01053 #define SHDID_NET_SERVER 14 01054 #define SHDID_NET_SHARE 15 01055 #define SHDID_NET_RESTOFNET 16 01056 #define SHDID_NET_OTHER 17 01057 #define SHDID_COMPUTER_IMAGING 18 01058 #define SHDID_COMPUTER_AUDIO 19 01059 #define SHDID_COMPUTER_SHAREDDOCS 20 01060 01061 #include <pshpack8.h> 01062 01063 typedef struct _SHDESCRIPTIONID 01064 { DWORD dwDescriptionId; 01065 CLSID clsid; 01066 } SHDESCRIPTIONID, *LPSHDESCRIPTIONID; 01067 01068 #include <poppack.h> 01069 01070 HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb); 01071 HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb); 01072 #define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList) 01073 01074 LPITEMIDLIST WINAPI SHCloneSpecialIDList(HWND hwnd, int csidl, BOOL fCreate); 01075 BOOL WINAPI SHGetSpecialFolderPathA (HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate); 01076 BOOL WINAPI SHGetSpecialFolderPathW (HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate); 01077 #define SHGetSpecialFolderPath WINELIB_NAME_AW(SHGetSpecialFolderPath) 01078 01079 HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) ; 01080 01081 /********************************************************************** 01082 * SHGetSetSettings () 01083 */ 01084 01085 typedef struct 01086 { 01087 BOOL fShowAllObjects : 1; 01088 BOOL fShowExtensions : 1; 01089 BOOL fNoConfirmRecycle : 1; 01090 01091 BOOL fShowSysFiles : 1; 01092 BOOL fShowCompColor : 1; 01093 BOOL fDoubleClickInWebView : 1; 01094 BOOL fDesktopHTML : 1; 01095 BOOL fWin95Classic : 1; 01096 BOOL fDontPrettyPath : 1; 01097 BOOL fShowAttribCol : 1; 01098 BOOL fMapNetDrvBtn : 1; 01099 BOOL fShowInfoTip : 1; 01100 BOOL fHideIcons : 1; 01101 BOOL fWebView : 1; 01102 BOOL fFilter : 1; 01103 BOOL fShowSuperHidden : 1; 01104 BOOL fNoNetCrawling : 1; 01105 01106 UINT :15; /* Required for proper binary layout with gcc */ 01107 DWORD dwWin95Unused; 01108 UINT uWin95Unused; 01109 LONG lParamSort; 01110 int iSortDirection; 01111 UINT version; 01112 UINT uNotUsed; 01113 BOOL fSepProcess: 1; 01114 BOOL fStartPanelOn: 1; 01115 BOOL fShowStartPage: 1; 01116 UINT fSpareFlags : 13; 01117 UINT :15; /* Required for proper binary layout with gcc */ 01118 } SHELLSTATE, *LPSHELLSTATE; 01119 01120 /********************************************************************** 01121 * SHGetSettings () 01122 */ 01123 typedef struct 01124 { BOOL fShowAllObjects : 1; 01125 BOOL fShowExtensions : 1; 01126 BOOL fNoConfirmRecycle : 1; 01127 BOOL fShowSysFiles : 1; 01128 01129 BOOL fShowCompColor : 1; 01130 BOOL fDoubleClickInWebView : 1; 01131 BOOL fDesktopHTML : 1; 01132 BOOL fWin95Classic : 1; 01133 01134 BOOL fDontPrettyPath : 1; 01135 BOOL fShowAttribCol : 1; 01136 BOOL fMapNetDrvBtn : 1; 01137 BOOL fShowInfoTip : 1; 01138 01139 BOOL fHideIcons : 1; 01140 UINT fRestFlags : 3; 01141 UINT :15; /* Required for proper binary layout with gcc */ 01142 } SHELLFLAGSTATE, * LPSHELLFLAGSTATE; 01143 01144 VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask); 01145 01146 #define SSF_SHOWALLOBJECTS 0x0001 01147 #define SSF_SHOWEXTENSIONS 0x0002 01148 #define SSF_SHOWCOMPCOLOR 0x0008 01149 #define SSF_SHOWSYSFILES 0x0020 01150 #define SSF_DOUBLECLICKINWEBVIEW 0x0080 01151 #define SSF_SHOWATTRIBCOL 0x0100 01152 #define SSF_DESKTOPHTML 0x0200 01153 #define SSF_WIN95CLASSIC 0x0400 01154 #define SSF_DONTPRETTYPATH 0x0800 01155 #define SSF_SHOWINFOTIP 0x2000 01156 #define SSF_MAPNETDRVBUTTON 0x1000 01157 #define SSF_NOCONFIRMRECYCLE 0x8000 01158 #define SSF_HIDEICONS 0x4000 01159 01160 /**************************************************************************** 01161 * SHRestricted API 01162 */ 01163 typedef enum RESTRICTIONS 01164 { 01165 REST_NONE = 0x00000000, 01166 REST_NORUN = 0x00000001, 01167 REST_NOCLOSE = 0x00000002, 01168 REST_NOSAVESET = 0x00000004, 01169 REST_NOFILEMENU = 0x00000008, 01170 REST_NOSETFOLDERS = 0x00000010, 01171 REST_NOSETTASKBAR = 0x00000020, 01172 REST_NODESKTOP = 0x00000040, 01173 REST_NOFIND = 0x00000080, 01174 REST_NODRIVES = 0x00000100, 01175 REST_NODRIVEAUTORUN = 0x00000200, 01176 REST_NODRIVETYPEAUTORUN = 0x00000400, 01177 REST_NONETHOOD = 0x00000800, 01178 REST_STARTBANNER = 0x00001000, 01179 REST_RESTRICTRUN = 0x00002000, 01180 REST_NOPRINTERTABS = 0x00004000, 01181 REST_NOPRINTERDELETE = 0x00008000, 01182 REST_NOPRINTERADD = 0x00010000, 01183 REST_NOSTARTMENUSUBFOLDERS = 0x00020000, 01184 REST_MYDOCSONNET = 0x00040000, 01185 REST_NOEXITTODOS = 0x00080000, 01186 REST_ENFORCESHELLEXTSECURITY = 0x00100000, 01187 REST_LINKRESOLVEIGNORELINKINFO = 0x00200000, 01188 REST_NOCOMMONGROUPS = 0x00400000, 01189 REST_SEPARATEDESKTOPPROCESS = 0x00800000, 01190 REST_NOWEB = 0x01000000, 01191 REST_NOTRAYCONTEXTMENU = 0x02000000, 01192 REST_NOVIEWCONTEXTMENU = 0x04000000, 01193 REST_NONETCONNECTDISCONNECT = 0x08000000, 01194 REST_STARTMENULOGOFF = 0x10000000, 01195 REST_NOSETTINGSASSIST = 0x20000000, 01196 REST_NOINTERNETICON = 0x40000001, 01197 REST_NORECENTDOCSHISTORY, 01198 REST_NORECENTDOCSMENU, 01199 REST_NOACTIVEDESKTOP, 01200 REST_NOACTIVEDESKTOPCHANGES, 01201 REST_NOFAVORITESMENU, 01202 REST_CLEARRECENTDOCSONEXIT, 01203 REST_CLASSICSHELL, 01204 REST_NOCUSTOMIZEWEBVIEW, 01205 01206 REST_NOHTMLWALLPAPER = 0x40000010, 01207 REST_NOCHANGINGWALLPAPER, 01208 REST_NODESKCOMP, 01209 REST_NOADDDESKCOMP, 01210 REST_NODELDESKCOMP, 01211 REST_NOCLOSEDESKCOMP, 01212 REST_NOCLOSE_DRAGDROPBAND, 01213 REST_NOMOVINGBAND, 01214 REST_NOEDITDESKCOMP, 01215 REST_NORESOLVESEARCH, 01216 REST_NORESOLVETRACK, 01217 REST_FORCECOPYACLWITHFILE, 01218 REST_NOLOGO3CHANNELNOTIFY, 01219 REST_NOFORGETSOFTWAREUPDATE, 01220 REST_NOSETACTIVEDESKTOP, 01221 REST_NOUPDATEWINDOWS, 01222 REST_NOCHANGESTARMENU, /* 0x40000020 */ 01223 REST_NOFOLDEROPTIONS, 01224 REST_HASFINDCOMPUTERS, 01225 REST_INTELLIMENUS, 01226 REST_RUNDLGMEMCHECKBOX, 01227 REST_ARP_ShowPostSetup, 01228 REST_NOCSC, 01229 REST_NOCONTROLPANEL, 01230 REST_ENUMWORKGROUP, 01231 REST_ARP_NOARP, 01232 REST_ARP_NOREMOVEPAGE, 01233 REST_ARP_NOADDPAGE, 01234 REST_ARP_NOWINSETUPPAGE, 01235 REST_GREYMSIADS, 01236 REST_NOCHANGEMAPPEDDRIVELABEL, 01237 REST_NOCHANGEMAPPEDDRIVECOMMENT, 01238 REST_MaxRecentDocs, /* 0x40000030 */ 01239 REST_NONETWORKCONNECTIONS, 01240 REST_FORCESTARTMENULOGOFF, 01241 REST_NOWEBVIEW, 01242 REST_NOCUSTOMIZETHISFOLDER, 01243 REST_NOENCRYPTION, 01244 01245 REST_ALLOWFRENCHENCRYPTION, /* not documented */ 01246 01247 REST_DONTSHOWSUPERHIDDEN, 01248 REST_NOSHELLSEARCHBUTTON, 01249 REST_NOHARDWARETAB, 01250 REST_NORUNASINSTALLPROMPT, 01251 REST_PROMPTRUNASINSTALLNETPATH, 01252 REST_NOMANAGEMYCOMPUTERVERB, 01253 REST_NORECENTDOCSNETHOOD, 01254 REST_DISALLOWRUN, 01255 REST_NOWELCOMESCREEN, 01256 REST_RESTRICTCPL, /* 0x40000040 */ 01257 REST_DISALLOWCPL, 01258 REST_NOSMBALLOONTIP, 01259 REST_NOSMHELP, 01260 REST_NOWINKEYS, 01261 REST_NOENCRYPTONMOVE, 01262 REST_NOLOCALMACHINERUN, 01263 REST_NOCURRENTUSERRUN, 01264 REST_NOLOCALMACHINERUNONCE, 01265 REST_NOCURRENTUSERRUNONCE, 01266 REST_FORCEACTIVEDESKTOPON, 01267 REST_NOCOMPUTERSNEARME, 01268 REST_NOVIEWONDRIVE, 01269 REST_NONETCRAWL, 01270 REST_NOSHAREDDOCUMENTS, 01271 REST_NOSMMYDOCS, 01272 REST_NOSMMYPICS, /* 0x40000050 */ 01273 REST_ALLOWBITBUCKDRIVES, 01274 REST_NONLEGACYSHELLMODE, 01275 REST_NOCONTROLPANELBARRICADE, 01276 REST_NOSTARTPAGE, 01277 REST_NOAUTOTRAYNOTIFY, 01278 REST_NOTASKGROUPING, 01279 REST_NOCDBURNING, 01280 REST_MYCOMPNOPROP, 01281 REST_MYDOCSNOPROP, 01282 REST_NOSTARTPANEL, 01283 REST_NODISPLAYAPPEARANCEPAGE, 01284 REST_NOTHEMESTAB, 01285 REST_NOVISUALSTYLECHOICE, 01286 REST_NOSIZECHOICE, 01287 REST_NOCOLORCHOICE, 01288 REST_SETVISUALSTYLE, /* 0x40000060 */ 01289 REST_STARTRUNNOHOMEPATH, 01290 REST_NOUSERNAMEINSTARTPANEL, 01291 REST_NOMYCOMPUTERICON, 01292 REST_NOSMNETWORKPLACES, 01293 REST_NOSMPINNEDLIST, 01294 REST_NOSMMYMUSIC, 01295 REST_NOSMEJECTPC, 01296 REST_NOSMMOREPROGRAMS, 01297 REST_NOSMMFUPROGRAMS, 01298 REST_NOTRAYITEMSDISPLAY, 01299 REST_NOTOOLBARSONTASKBAR, 01300 /* 0x4000006C 01301 0x4000006D 01302 0x4000006E */ 01303 REST_NOSMCONFIGUREPROGRAMS = 0x4000006F, 01304 REST_HIDECLOCK, /* 0x40000070 */ 01305 REST_NOLOWDISKSPACECHECKS, 01306 REST_NOENTIRENETWORK, 01307 REST_NODESKTOPCLEANUP, 01308 REST_BITBUCKNUKEONDELETE, 01309 REST_BITBUCKCONFIRMDELETE, 01310 REST_BITBUCKNOPROP, 01311 REST_NODISPBACKGROUND, 01312 REST_NODISPSCREENSAVEPG, 01313 REST_NODISPSETTINGSPG, 01314 REST_NODISPSCREENSAVEPREVIEW, 01315 REST_NODISPLAYCPL, 01316 REST_HIDERUNASVERB, 01317 REST_NOTHUMBNAILCACHE, 01318 REST_NOSTRCMPLOGICAL, 01319 REST_NOPUBLISHWIZARD, 01320 REST_NOONLINEPRINTSWIZARD, /* 0x40000080 */ 01321 REST_NOWEBSERVICES, 01322 REST_ALLOWUNHASHEDWEBVIEW, 01323 REST_ALLOWLEGACYWEBVIEW, 01324 REST_REVERTWEBVIEWSECURITY, 01325 01326 REST_INHERITCONSOLEHANDLES = 0x40000086, 01327 01328 REST_NODISCONNECT = 0x41000001, 01329 REST_NOSECURITY, 01330 REST_NOFILEASSOCIATE, /* 0x41000003 */ 01331 } RESTRICTIONS; 01332 01333 DWORD WINAPI SHRestricted(RESTRICTIONS rest); 01334 01335 /**************************************************************************** 01336 * SHChangeNotify API 01337 */ 01338 typedef struct _SHChangeNotifyEntry 01339 { 01340 LPCITEMIDLIST pidl; 01341 BOOL fRecursive; 01342 } SHChangeNotifyEntry; 01343 01344 #define SHCNE_RENAMEITEM 0x00000001 01345 #define SHCNE_CREATE 0x00000002 01346 #define SHCNE_DELETE 0x00000004 01347 #define SHCNE_MKDIR 0x00000008 01348 #define SHCNE_RMDIR 0x00000010 01349 #define SHCNE_MEDIAINSERTED 0x00000020 01350 #define SHCNE_MEDIAREMOVED 0x00000040 01351 #define SHCNE_DRIVEREMOVED 0x00000080 01352 #define SHCNE_DRIVEADD 0x00000100 01353 #define SHCNE_NETSHARE 0x00000200 01354 #define SHCNE_NETUNSHARE 0x00000400 01355 #define SHCNE_ATTRIBUTES 0x00000800 01356 #define SHCNE_UPDATEDIR 0x00001000 01357 #define SHCNE_UPDATEITEM 0x00002000 01358 #define SHCNE_SERVERDISCONNECT 0x00004000 01359 #define SHCNE_UPDATEIMAGE 0x00008000 01360 #define SHCNE_DRIVEADDGUI 0x00010000 01361 #define SHCNE_RENAMEFOLDER 0x00020000 01362 #define SHCNE_FREESPACE 0x00040000 01363 01364 #define SHCNE_EXTENDED_EVENT 0x04000000 01365 #define SHCNE_ASSOCCHANGED 0x08000000 01366 #define SHCNE_DISKEVENTS 0x0002381F 01367 #define SHCNE_GLOBALEVENTS 0x0C0581E0 01368 #define SHCNE_ALLEVENTS 0x7FFFFFFF 01369 #define SHCNE_INTERRUPT 0x80000000 01370 01371 #define SHCNEE_ORDERCHANGED 0x0002L 01372 #define SHCNEE_MSI_CHANGE 0x0004L 01373 #define SHCNEE_MSI_UNINSTALL 0x0005L 01374 01375 #define SHCNF_IDLIST 0x0000 01376 #define SHCNF_PATHA 0x0001 01377 #define SHCNF_PRINTERA 0x0002 01378 #define SHCNF_DWORD 0x0003 01379 #define SHCNF_PATHW 0x0005 01380 #define SHCNF_PRINTERW 0x0006 01381 #define SHCNF_TYPE 0x00FF 01382 #define SHCNF_FLUSH 0x1000 01383 #define SHCNF_FLUSHNOWAIT 0x3000 01384 #define SHCNF_NOTIFYRECURSIVE 0x10000 01385 01386 #define SHCNF_PATH WINELIB_NAME_AW(SHCNF_PATH) 01387 #define SHCNF_PRINTER WINELIB_NAME_AW(SHCNF_PRINTER) 01388 01389 #define SHCNRF_InterruptLevel 0x0001 01390 #define SHCNRF_ShellLevel 0x0002 01391 #define SHCNRF_RecursiveInterrupt 0x1000 01392 #define SHCNRF_NewDelivery 0x8000 01393 01394 void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2); 01395 01396 typedef enum { 01397 SLDF_HAS_ID_LIST = 0x00000001, 01398 SLDF_HAS_LINK_INFO = 0x00000002, 01399 SLDF_HAS_NAME = 0x00000004, 01400 SLDF_HAS_RELPATH = 0x00000008, 01401 SLDF_HAS_WORKINGDIR = 0x00000010, 01402 SLDF_HAS_ARGS = 0x00000020, 01403 SLDF_HAS_ICONLOCATION = 0x00000040, 01404 SLDF_UNICODE = 0x00000080, 01405 SLDF_FORCE_NO_LINKINFO = 0x00000100, 01406 SLDF_HAS_EXP_SZ = 0x00000200, 01407 SLDF_RUN_IN_SEPARATE = 0x00000400, 01408 SLDF_HAS_LOGO3ID = 0x00000800, 01409 SLDF_HAS_DARWINID = 0x00001000, 01410 SLDF_RUNAS_USER = 0x00002000, 01411 SLDF_HAS_EXP_ICON_SZ = 0x00004000, 01412 SLDF_NO_PIDL_ALIAS = 0x00008000, 01413 SLDF_FORCE_UNCNAME = 0x00010000, 01414 SLDF_RUN_WITH_SHIMLAYER = 0x00020000, 01415 SLDF_FORCE_NO_LINKTRACK = 0x00040000, 01416 SLDF_ENABLE_TARGET_METADATA = 0x00080000, 01417 SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING = 0x00200000, 01418 SLDF_VALID = 0x003ff7ff, 01419 SLDF_RESERVED = 0x80000000, 01420 } SHELL_LINK_DATA_FLAGS; 01421 01422 typedef struct tagDATABLOCKHEADER 01423 { 01424 DWORD cbSize; 01425 DWORD dwSignature; 01426 } DATABLOCK_HEADER, *LPDATABLOCK_HEADER, *LPDBLIST; 01427 01428 typedef struct { 01429 DATABLOCK_HEADER dbh; 01430 CHAR szDarwinID[MAX_PATH]; 01431 WCHAR szwDarwinID[MAX_PATH]; 01432 } EXP_DARWIN_LINK, *LPEXP_DARWIN_LINK; 01433 01434 typedef struct { 01435 DWORD cbSize; 01436 DWORD cbSignature; 01437 CHAR szTarget[MAX_PATH]; 01438 WCHAR szwTarget[MAX_PATH]; 01439 } EXP_SZ_LINK, *LPEXP_SZ_LINK; 01440 01441 typedef struct { 01442 DWORD cbSize; 01443 DWORD dwSignature; 01444 DWORD idSpecialFolder; 01445 DWORD cbOffset; 01446 } EXP_SPECIAL_FOLDER, *LPEXP_SPECIAL_FOLDER; 01447 01448 typedef struct { 01449 DWORD cbSize; 01450 DWORD dwSignature; 01451 BYTE abPropertyStorage[1]; 01452 } EXP_PROPERTYSTORAGE; 01453 01454 #define EXP_SZ_LINK_SIG 0xa0000001 01455 #define NT_CONSOLE_PROPS_SIG 0xa0000002 01456 #define NT_FE_CONSOLE_PROPS_SIG 0xa0000004 01457 #define EXP_SPECIAL_FOLDER_SIG 0xa0000005 01458 #define EXP_DARWIN_ID_SIG 0xa0000006 01459 #define EXP_SZ_ICON_SIG 0xa0000007 01460 #define EXP_LOGO3_ID_SIG EXP_SZ_ICON_SIG /* Old SDKs only */ 01461 #define EXP_PROPERTYSTORAGE_SIG 0xa0000009 01462 01463 typedef struct _SHChangeDWORDAsIDList { 01464 USHORT cb; 01465 DWORD dwItem1; 01466 DWORD dwItem2; 01467 USHORT cbZero; 01468 } SHChangeDWORDAsIDList, *LPSHChangeDWORDAsIDList; 01469 01470 typedef struct _SHChangeProductKeyAsIDList { 01471 USHORT cb; 01472 WCHAR wszProductKey[39]; 01473 USHORT cbZero; 01474 } SHChangeProductKeyAsIDList, *LPSHChangeProductKeyAsIDList; 01475 01476 ULONG WINAPI SHChangeNotifyRegister(HWND hwnd, int fSources, LONG fEvents, UINT wMsg, 01477 int cEntries, SHChangeNotifyEntry *pshcne); 01478 BOOL WINAPI SHChangeNotifyDeregister(ULONG ulID); 01479 HANDLE WINAPI SHChangeNotification_Lock(HANDLE hChangeNotification, DWORD dwProcessId, 01480 LPITEMIDLIST **pppidl, LONG *plEvent); 01481 BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock); 01482 01483 HRESULT WINAPI SHGetRealIDL(IShellFolder *psf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST * ppidlReal); 01484 01485 /**************************************************************************** 01486 * SHCreateDirectory API 01487 */ 01488 int WINAPI SHCreateDirectory(HWND, LPCWSTR); 01489 int WINAPI SHCreateDirectoryExA(HWND, LPCSTR, LPSECURITY_ATTRIBUTES); 01490 int WINAPI SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES); 01491 #define SHCreateDirectoryEx WINELIB_NAME_AW(SHCreateDirectoryEx) 01492 01493 /**************************************************************************** 01494 * SHGetSpecialFolderLocation API 01495 */ 01496 HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder, LPITEMIDLIST * ppidl); 01497 HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl); 01498 01499 /**************************************************************************** 01500 * SHGetFolderPath API 01501 */ 01502 typedef enum { 01503 SHGFP_TYPE_CURRENT = 0, 01504 SHGFP_TYPE_DEFAULT = 1 01505 } SHGFP_TYPE; 01506 01507 HRESULT WINAPI SHGetFolderPathA(HWND hwnd, int nFolder, HANDLE hToken, DWORD dwFlags, LPSTR pszPath); 01508 HRESULT WINAPI SHGetFolderPathW(HWND hwnd, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath); 01509 #define SHGetFolderPath WINELIB_NAME_AW(SHGetFolderPath) 01510 01511 #define CSIDL_DESKTOP 0x0000 01512 #define CSIDL_INTERNET 0x0001 01513 #define CSIDL_PROGRAMS 0x0002 01514 #define CSIDL_CONTROLS 0x0003 01515 #define CSIDL_PRINTERS 0x0004 01516 #define CSIDL_PERSONAL 0x0005 01517 #define CSIDL_FAVORITES 0x0006 01518 #define CSIDL_STARTUP 0x0007 01519 #define CSIDL_RECENT 0x0008 01520 #define CSIDL_SENDTO 0x0009 01521 #define CSIDL_BITBUCKET 0x000a 01522 #define CSIDL_STARTMENU 0x000b 01523 #define CSIDL_MYDOCUMENTS CSIDL_PERSONAL 01524 #define CSIDL_MYMUSIC 0x000d 01525 #define CSIDL_MYVIDEO 0x000e 01526 #define CSIDL_DESKTOPDIRECTORY 0x0010 01527 #define CSIDL_DRIVES 0x0011 01528 #define CSIDL_NETWORK 0x0012 01529 #define CSIDL_NETHOOD 0x0013 01530 #define CSIDL_FONTS 0x0014 01531 #define CSIDL_TEMPLATES 0x0015 01532 #define CSIDL_COMMON_STARTMENU 0x0016 01533 #define CSIDL_COMMON_PROGRAMS 0X0017 01534 #define CSIDL_COMMON_STARTUP 0x0018 01535 #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 01536 #define CSIDL_APPDATA 0x001a 01537 #define CSIDL_PRINTHOOD 0x001b 01538 #define CSIDL_LOCAL_APPDATA 0x001c 01539 #define CSIDL_ALTSTARTUP 0x001d 01540 #define CSIDL_COMMON_ALTSTARTUP 0x001e 01541 #define CSIDL_COMMON_FAVORITES 0x001f 01542 #define CSIDL_INTERNET_CACHE 0x0020 01543 #define CSIDL_COOKIES 0x0021 01544 #define CSIDL_HISTORY 0x0022 01545 #define CSIDL_COMMON_APPDATA 0x0023 01546 #define CSIDL_WINDOWS 0x0024 01547 #define CSIDL_SYSTEM 0x0025 01548 #define CSIDL_PROGRAM_FILES 0x0026 01549 #define CSIDL_MYPICTURES 0x0027 01550 #define CSIDL_PROFILE 0x0028 01551 #define CSIDL_SYSTEMX86 0x0029 01552 #define CSIDL_PROGRAM_FILESX86 0x002a 01553 #define CSIDL_PROGRAM_FILES_COMMON 0x002b 01554 #define CSIDL_PROGRAM_FILES_COMMONX86 0x002c 01555 #define CSIDL_COMMON_TEMPLATES 0x002d 01556 #define CSIDL_COMMON_DOCUMENTS 0x002e 01557 #define CSIDL_COMMON_ADMINTOOLS 0x002f 01558 #define CSIDL_ADMINTOOLS 0x0030 01559 #define CSIDL_CONNECTIONS 0x0031 01560 #define CSIDL_COMMON_MUSIC 0x0035 01561 #define CSIDL_COMMON_PICTURES 0x0036 01562 #define CSIDL_COMMON_VIDEO 0x0037 01563 #define CSIDL_RESOURCES 0x0038 01564 #define CSIDL_RESOURCES_LOCALIZED 0x0039 01565 #define CSIDL_COMMON_OEM_LINKS 0x003a 01566 #define CSIDL_CDBURN_AREA 0x003b 01567 #define CSIDL_COMPUTERSNEARME 0x003d 01568 #define CSIDL_PROFILES 0x003e 01569 #define CSIDL_FOLDER_MASK 0x00ff 01570 #define CSIDL_FLAG_PER_USER_INIT 0x0800 01571 #define CSIDL_FLAG_NO_ALIAS 0x1000 01572 #define CSIDL_FLAG_DONT_VERIFY 0x4000 01573 #define CSIDL_FLAG_CREATE 0x8000 01574 01575 #define CSIDL_FLAG_MASK 0xff00 01576 01577 /**************************************************************************** 01578 * SHGetDesktopFolder API 01579 */ 01580 HRESULT WINAPI SHGetDesktopFolder(IShellFolder * *); 01581 01582 /**************************************************************************** 01583 * SHBindToParent API 01584 */ 01585 HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast); 01586 01587 /**************************************************************************** 01588 * SHDefExtractIcon API 01589 */ 01590 HRESULT WINAPI SHDefExtractIconA(LPCSTR pszIconFile, int iIndex, UINT uFlags, 01591 HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize); 01592 HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags, 01593 HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize); 01594 #define SHDefExtractIcon WINELIB_NAME_AW(SHDefExtractIcon) 01595 01596 /* 01597 * DROPFILES for CF_HDROP and CF_PRINTERS 01598 */ 01599 typedef struct _DROPFILES 01600 { 01601 DWORD pFiles; 01602 POINT pt; 01603 BOOL fNC; 01604 BOOL fWide; 01605 } DROPFILES, *LPDROPFILES; 01606 01607 /* 01608 * Properties of a file in the clipboard 01609 */ 01610 typedef struct _FILEDESCRIPTORA { 01611 DWORD dwFlags; 01612 CLSID clsid; 01613 SIZEL sizel; 01614 POINTL pointl; 01615 DWORD dwFileAttributes; 01616 FILETIME ftCreationTime; 01617 FILETIME ftLastAccessTime; 01618 FILETIME ftLastWriteTime; 01619 DWORD nFileSizeHigh; 01620 DWORD nFileSizeLow; 01621 CHAR cFileName[MAX_PATH]; 01622 } FILEDESCRIPTORA, *LPFILEDESCRIPTORA; 01623 01624 typedef struct _FILEDESCRIPTORW { 01625 DWORD dwFlags; 01626 CLSID clsid; 01627 SIZEL sizel; 01628 POINTL pointl; 01629 DWORD dwFileAttributes; 01630 FILETIME ftCreationTime; 01631 FILETIME ftLastAccessTime; 01632 FILETIME ftLastWriteTime; 01633 DWORD nFileSizeHigh; 01634 DWORD nFileSizeLow; 01635 WCHAR cFileName[MAX_PATH]; 01636 } FILEDESCRIPTORW, *LPFILEDESCRIPTORW; 01637 01638 DECL_WINELIB_TYPE_AW(FILEDESCRIPTOR) 01639 DECL_WINELIB_TYPE_AW(LPFILEDESCRIPTOR) 01640 01641 /* 01642 * CF_FILEGROUPDESCRIPTOR clipboard format 01643 */ 01644 typedef struct _FILEGROUPDESCRIPTORA { 01645 UINT cItems; 01646 FILEDESCRIPTORA fgd[1]; 01647 } FILEGROUPDESCRIPTORA, *LPFILEGROUPDESCRIPTORA; 01648 01649 typedef struct _FILEGROUPDESCRIPTORW { 01650 UINT cItems; 01651 FILEDESCRIPTORW fgd[1]; 01652 } FILEGROUPDESCRIPTORW, *LPFILEGROUPDESCRIPTORW; 01653 01654 DECL_WINELIB_TYPE_AW(FILEGROUPDESCRIPTOR) 01655 DECL_WINELIB_TYPE_AW(LPFILEGROUPDESCRIPTOR) 01656 01657 /**************************************************************************** 01658 * Cabinet functions 01659 */ 01660 01661 typedef struct { 01662 WORD cLength; 01663 WORD nVersion; 01664 BOOL fFullPathTitle:1; 01665 BOOL fSaveLocalView:1; 01666 BOOL fNotShell:1; 01667 BOOL fSimpleDefault:1; 01668 BOOL fDontShowDescBar:1; 01669 BOOL fNewWindowMode:1; 01670 BOOL fShowCompColor:1; 01671 BOOL fDontPrettyNames:1; 01672 BOOL fAdminsCreateCommonGroups:1; 01673 UINT fUnusedFlags:7; 01674 UINT :15; /* Required for proper binary layout with gcc */ 01675 UINT fMenuEnumFilter; 01676 } CABINETSTATE, *LPCABINETSTATE; 01677 01678 #define CABINETSTATE_VERSION 2 01679 01680 BOOL WINAPI ReadCabinetState(CABINETSTATE *, int); 01681 BOOL WINAPI WriteCabinetState(CABINETSTATE *); 01682 01683 /**************************************************************************** 01684 * Path Manipulation Routines 01685 */ 01686 01687 /* PathProcessCommand flags */ 01688 #define PPCF_ADDQUOTES 0x01 01689 #define PPCF_INCLUDEARGS 0x02 01690 #define PPCF_ADDARGUMENTS 0x03 01691 #define PPCF_NODIRECTORIES 0x10 01692 #define PPCF_DONTRESOLVE 0x20 01693 #define PPCF_FORCEQUALIFY 0x40 01694 #define PPCF_LONGESTPOSSIBLE 0x80 01695 01696 /* PathResolve flags */ 01697 #define PRF_VERIFYEXISTS 0x01 01698 #define PRF_EXECUTABLE 0x02 01699 #define PRF_TRYPROGRAMEXTENSIONS 0x03 01700 #define PRF_FIRSTDIRDEF 0x04 01701 #define PRF_DONTFINDLINK 0x08 01702 01703 VOID WINAPI PathGetShortPath(LPWSTR pszPath); 01704 LONG WINAPI PathProcessCommand(LPCWSTR, LPWSTR, int, DWORD); 01705 BOOL WINAPI PathYetAnotherMakeUniqueName(LPWSTR, LPCWSTR, LPCWSTR, LPCWSTR); 01706 01707 /**************************************************************************** 01708 * Drag And Drop Routines 01709 */ 01710 01711 /* DAD_AutoScroll sample structure */ 01712 #define NUM_POINTS 3 01713 typedef struct 01714 { 01715 int iNextSample; 01716 DWORD dwLastScroll; 01717 BOOL bFull; 01718 POINT pts[NUM_POINTS]; 01719 DWORD dwTimes[NUM_POINTS]; 01720 } AUTO_SCROLL_DATA; 01721 01722 BOOL WINAPI DAD_SetDragImage(HIMAGELIST,LPPOINT); 01723 BOOL WINAPI DAD_DragEnterEx(HWND,POINT); 01724 BOOL WINAPI DAD_DragEnterEx2(HWND,POINT,IDataObject*); 01725 BOOL WINAPI DAD_DragMove(POINT); 01726 BOOL WINAPI DAD_DragLeave(void); 01727 BOOL WINAPI DAD_AutoScroll(HWND,AUTO_SCROLL_DATA*,const POINT*); 01728 HRESULT WINAPI SHDoDragDrop(HWND,IDataObject*,IDropSource*,DWORD,LPDWORD); 01729 01730 LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST,LPCSHITEMID,BOOL); 01731 LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST); 01732 LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST); 01733 LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR); 01734 LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR); 01735 #define ILCreateFromPath WINELIB_NAME_AW(ILCreateFromPath) 01736 LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST,LPCITEMIDLIST); 01737 LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST,LPCITEMIDLIST); 01738 LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST); 01739 void WINAPI ILFree(LPITEMIDLIST); 01740 LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST); 01741 UINT WINAPI ILGetSize(LPCITEMIDLIST); 01742 BOOL WINAPI ILIsEqual(LPCITEMIDLIST,LPCITEMIDLIST); 01743 BOOL WINAPI ILIsParent(LPCITEMIDLIST,LPCITEMIDLIST,BOOL); 01744 HRESULT WINAPI ILLoadFromStream(LPSTREAM,LPITEMIDLIST*); 01745 BOOL WINAPI ILRemoveLastID(LPITEMIDLIST); 01746 HRESULT WINAPI ILSaveToStream(LPSTREAM,LPCITEMIDLIST); 01747 01748 01749 #include <poppack.h> 01750 01751 01752 /* menu merging */ 01753 #define MM_ADDSEPARATOR 0x00000001L 01754 #define MM_SUBMENUSHAVEIDS 0x00000002L 01755 #define MM_DONTREMOVESEPS 0x00000004L 01756 01757 UINT WINAPI Shell_MergeMenus (HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags); 01758 01759 01760 /**************************************************************************** 01761 * SHCreateDefaultContextMenu API 01762 */ 01763 01764 typedef struct 01765 { 01766 HWND hwnd; 01767 IContextMenuCB *pcmcb; 01768 LPCITEMIDLIST pidlFolder; 01769 IShellFolder *psf; 01770 UINT cidl; 01771 LPCITEMIDLIST* apidl; 01772 IUnknown *punkAssociationInfo; 01773 UINT cKeys; 01774 const HKEY *aKeys; 01775 }DEFCONTEXTMENU; 01776 01777 HRESULT WINAPI SHCreateDefaultContextMenu(const DEFCONTEXTMENU *,REFIID,void **ppv); 01778 01779 typedef HRESULT (CALLBACK * LPFNDFMCALLBACK)(IShellFolder*,HWND,IDataObject*,UINT,WPARAM,LPARAM); 01780 HRESULT WINAPI CDefFolderMenu_Create2(LPCITEMIDLIST,HWND,UINT,LPCITEMIDLIST*,IShellFolder*,LPFNDFMCALLBACK,UINT,const HKEY *,IContextMenu **); 01781 /**************************************************************************** 01782 * SHCreateDefaultContextMenu API 01783 */ 01784 01785 HRESULT WINAPI 01786 SHCreateDefaultExtractIcon( 01787 REFIID riid, 01788 void **ppv); 01789 /**************************************************************************** 01790 * SHCreateDataObject API 01791 */ 01792 01793 HRESULT WINAPI SHCreateDataObject( 01794 LPCITEMIDLIST pidlFolder, 01795 UINT cidl, 01796 LPCITEMIDLIST* apidl, 01797 IDataObject *pdtInner, 01798 REFIID riid, 01799 void **ppv); 01800 01801 /**************************************************************************** 01802 * CIDLData_CreateFromIDArray API 01803 */ 01804 01805 HRESULT WINAPI CIDLData_CreateFromIDArray( 01806 LPCITEMIDLIST pidlFolder, 01807 UINT cidl, 01808 LPCITEMIDLIST* apidl, 01809 IDataObject **ppdtobj); 01810 01811 /**************************************************************************** 01812 * SHOpenWithDialog 01813 */ 01814 01815 enum tagOPEN_AS_INFO_FLAGS 01816 { 01817 OAIF_ALLOW_REGISTRATION = 1, 01818 OAIF_REGISTER_EXT = 2, 01819 OAIF_EXEC = 4, 01820 OAIF_FORCE_REGISTRATION = 8, 01821 #if (NTDDI_VERSION >= NTDDI_VISTA) 01822 OAIF_HIDE_REGISTRATION = 32, 01823 OAIF_URL_PROTOCOL = 64, 01824 #endif 01825 }; 01826 typedef int OPEN_AS_INFO_FLAGS; 01827 01828 01829 typedef struct tagOPENASINFO { 01830 LPCWSTR pcszFile; 01831 LPCWSTR pcszClass; 01832 OPEN_AS_INFO_FLAGS oaifInFlags; 01833 } OPENASINFO; 01834 01835 HRESULT WINAPI SHOpenWithDialog( 01836 HWND hwndParent, 01837 const OPENASINFO *poainfo 01838 ); 01839 01840 #define INTERFACE IShellIconOverlayIdentifier 01841 01842 DEFINE_GUID(IID_IShellIconOverlayIdentifier, 0x0c6c4200L, 0xc589, 0x11d0, 0x99, 0x9a, 0x00, 0xc0, 0x4f, 0xd6, 0x55, 0xe1); 01843 DECLARE_INTERFACE_(IShellIconOverlayIdentifier, IUnknown) 01844 { 01845 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE; 01846 STDMETHOD_(ULONG,AddRef) (THIS) PURE; 01847 STDMETHOD_(ULONG,Release) (THIS) PURE; 01848 01849 STDMETHOD (IsMemberOf)(THIS_ LPCWSTR pwszPath, DWORD dwAttrib) PURE; 01850 STDMETHOD (GetOverlayInfo)(THIS_ LPWSTR pwszIconFile, int cchMax, int * pIndex, DWORD * pdwFlags) PURE; 01851 STDMETHOD (GetPriority)(THIS_ int * pIPriority) PURE; 01852 }; 01853 01854 #if !defined(__cplusplus) || defined(CINTERFACE) 01855 /*** IUnknown methods ***/ 01856 #define IShellIconOverlayIdentifier_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01857 #define IShellIconOverlayIdentifier_AddRef(p) (p)->lpVtbl->AddRef(p) 01858 #define IShellIconOverlayIdentifier_Release(p) (p)->lpVtbl->Release(p) 01859 /*** IShellIconOverlayIdentifier methods ***/ 01860 #define IShellIconOverlayIdentifier_IsMemberOf(p,a,b) (p)->lpVtbl->IsMemberOf(p,a,b) 01861 #define IShellIconOverlayIdentifier_GetOverlayInfo(p,a,b,c,d) (p)->lpVtbl->GetOverlayInfo(p,a,b,c,d) 01862 #define IShellIconOverlayIdentifier_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) 01863 #endif 01864 01865 #define ISIOI_ICONFILE 0x00000001 01866 #define ISIOI_ICONINDEX 0x00000002 01867 01868 #undef INTERFACE 01869 01870 /**************************************************************************** 01871 * Travel log 01872 */ 01873 01874 #define TLOG_BACK -1 01875 #define TLOG_FORE 1 01876 01877 #define TLMENUF_INCLUDECURRENT 0x00000001 01878 #define TLMENUF_CHECKCURRENT (TLMENUF_INCLUDECURRENT | 0x00000002) 01879 #define TLMENUF_BACK 0x00000010 // Default 01880 #define TLMENUF_FORE 0x00000020 01881 #define TLMENUF_BACKANDFORTH (TLMENUF_BACK | TLMENUF_FORE | TLMENUF_INCLUDECURRENT) 01882 01883 /***************************************************************************** 01884 * IDockingWindowSite interface 01885 */ 01886 #define INTERFACE IDockingWindowSite 01887 DECLARE_INTERFACE_(IDockingWindowSite, IOleWindow) 01888 { 01889 // *** IUnknown methods *** 01890 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 01891 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 01892 STDMETHOD_(ULONG,Release)(THIS) PURE; 01893 01894 // *** IOleWindow methods *** 01895 STDMETHOD(GetWindow)(THIS_ HWND *lphwnd) PURE; 01896 STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; 01897 01898 // *** IDockingWindowSite methods *** 01899 STDMETHOD(GetBorderDW)(THIS_ IUnknown *punkObj, LPRECT prcBorder) PURE; 01900 STDMETHOD(RequestBorderSpaceDW)(THIS_ IUnknown *punkObj, LPCBORDERWIDTHS pbw) PURE; 01901 STDMETHOD(SetBorderSpaceDW)(THIS_ IUnknown *punkObj, LPCBORDERWIDTHS pbw) PURE; 01902 }; 01903 #undef INTERFACE 01904 01905 #if !defined(__cplusplus) || defined(CINTERFACE) 01906 /*** IUnknown methods ***/ 01907 #define IDockingWindowSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01908 #define IDockingWindowSite_AddRef(p) (p)->lpVtbl->AddRef(p) 01909 #define IDockingWindowSite_Release(p) (p)->lpVtbl->Release(p) 01910 /*** IOleWindow methods ***/ 01911 #define IDockingWindowSite_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a) 01912 #define IDockingWindowSite_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a) 01913 /*** IDockingWindowSite methods ***/ 01914 #define IDockingWindowSite_GetBorderDW(p,a,b) (p)->lpVtbl->GetBorderDW(p,a,b) 01915 #define IDockingWindowSite_RequestBorderSpaceDW(p,a,b) (p)->lpVtbl->RequestBorderSpaceDW(p,a,b) 01916 #define IDockingWindowSite_SetBorderSpaceDW(p,a,b) (p)->lpVtbl->SetBorderSpaceDW(p,a,b) 01917 #endif 01918 01919 /***************************************************************************** 01920 * IShellTaskScheduler interface 01921 */ 01922 #define REFTASKOWNERID REFGUID 01923 01924 #define INTERFACE IShellTaskScheduler 01925 DECLARE_INTERFACE_(IShellTaskScheduler, IUnknown) 01926 { 01927 // *** IUnknown methods *** 01928 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE; 01929 STDMETHOD_(ULONG, AddRef)(THIS) PURE; 01930 STDMETHOD_(ULONG, Release)(THIS) PURE; 01931 01932 // *** IShellTaskScheduler methods *** 01933 STDMETHOD(AddTask)(THIS_ IRunnableTask *pTask, REFTASKOWNERID rtoid, DWORD_PTR lParam, DWORD dwPriority) PURE; 01934 STDMETHOD(RemoveTasks)(THIS_ REFTASKOWNERID rtoid, DWORD_PTR lParam, BOOL fWaitIfRunning) PURE; 01935 STDMETHOD_(UINT, CountTasks)(THIS_ REFTASKOWNERID rtoid) PURE; 01936 STDMETHOD(Status)(THIS_ DWORD dwReleaseStatus, DWORD dwThreadTimeout) PURE; 01937 }; 01938 #undef INTERFACE 01939 01940 #if !defined(__cplusplus) || defined(CINTERFACE) 01941 /*** IUnknown methods ***/ 01942 #define IShellTaskScheduler_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 01943 #define IShellTaskScheduler_AddRef(p) (p)->lpVtbl->AddRef(p) 01944 #define IShellTaskScheduler_Release(p) (p)->lpVtbl->Release(p) 01945 /*** IShellTaskScheduler methods ***/ 01946 #define IShellTaskScheduler_AddTask(p,a,b,c,d) (p)->lpVtbl->AddTask(p,a,b,c,d) 01947 #define IShellTaskScheduler_RemoveTasks(p,a,b,c) (p)->lpVtbl->RemoveTasks(p,a,b,c) 01948 #define IShellTaskScheduler_CountTasks(p,a) (p)->lpVtbl->CountTasks(p,a) 01949 #define IShellTaskScheduler_Status(p,a,b) (p)->lpVtbl->Status(p,a,b) 01950 #endif 01951 01952 typedef void (CALLBACK *PFNASYNCICONTASKBALLBACK)(LPCITEMIDLIST pidl, LPVOID pvData, LPVOID pvHint, INT iIconIndex, INT iOpenIconIndex); 01953 01954 /***************************************************************************** 01955 * Control Panel functions 01956 */ 01957 LRESULT WINAPI CallCPLEntry16(HINSTANCE hMod, FARPROC pFunc, HWND dw3, UINT dw4, LPARAM dw5, LPARAM dw6); 01958 01959 #ifdef __cplusplus 01960 } /* extern "C" */ 01961 #endif /* defined(__cplusplus) */ 01962 01963 #endif /* __WINE_SHLOBJ_H */ Generated on Sat May 26 2012 04:31:08 for ReactOS by
1.7.6.1
|