Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenundocshell.h
Go to the documentation of this file.
00001 /* 00002 * Copyright 1999, 2000 Juergen Schmied 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_UNDOCSHELL_H 00020 #define __WINE_UNDOCSHELL_H 00021 00022 #include <stdarg.h> 00023 00024 #include "windef.h" 00025 #include "winbase.h" 00026 #include "winuser.h" 00027 #include "commctrl.h" 00028 #include "shlobj.h" 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif /* defined(__cplusplus) */ 00033 00034 /**************************************************************************** 00035 * IDList Functions 00036 */ 00037 BOOL WINAPI ILGetDisplayName( 00038 LPCITEMIDLIST pidl, 00039 LPVOID path); 00040 00041 /* type parameter for ILGetDisplayNameEx() */ 00042 #define ILGDN_FORPARSING 0 00043 #define ILGDN_NORMAL 1 00044 #define ILGDN_INFOLDER 2 00045 00046 BOOL WINAPI ILGetDisplayNameEx( 00047 LPSHELLFOLDER psf, 00048 LPCITEMIDLIST pidl, 00049 LPVOID path, 00050 DWORD type); 00051 00052 LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl); 00053 void WINAPI ILGlobalFree(LPITEMIDLIST pidl); 00054 LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath); //FIXME 00055 LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath); 00056 00057 HRESULT WINAPI SHILCreateFromPathA ( 00058 LPCSTR path, 00059 LPITEMIDLIST * ppidl, 00060 DWORD *attributes); 00061 00062 HRESULT WINAPI SHILCreateFromPathW ( 00063 LPCWSTR path, 00064 LPITEMIDLIST * ppidl, 00065 DWORD *attributes); 00066 00067 /* 00068 string functions 00069 */ 00070 BOOL WINAPI StrRetToStrNA(LPSTR,DWORD,LPSTRRET,const ITEMIDLIST*); 00071 BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*); 00072 00073 00074 /**************************************************************************** 00075 * SHChangeNotifyRegister API 00076 */ 00077 #define SHCNRF_InterruptLevel 0x0001 00078 #define SHCNRF_ShellLevel 0x0002 00079 #define SHCNRF_RecursiveInterrupt 0x1000 /* Must be combined with SHCNRF_InterruptLevel */ 00080 #define SHCNRF_NewDelivery 0x8000 /* Messages use shared memory */ 00081 00082 00083 /**************************************************************************** 00084 * Shell Common Dialogs 00085 */ 00086 00087 /* RunFileDlg flags */ 00088 #define RFF_NOBROWSE 0x01 00089 #define RFF_NODEFAULT 0x02 00090 #define RFF_CALCDIRECTORY 0x04 00091 #define RFF_NOLABEL 0x08 00092 #define RFF_NOSEPARATEMEM 0x20 /* NT only */ 00093 00094 #define DE_SAMEFILE 0x71 00095 00096 /* RunFileFlg notification structure */ 00097 typedef struct 00098 { 00099 NMHDR hdr; 00100 LPCSTR lpFile; 00101 LPCSTR lpDirectory; 00102 int nShow; 00103 } NM_RUNFILEDLG, * LPNM_RUNFILEDLG; 00104 00105 /* RunFileDlg notification return values */ 00106 #define RF_OK 0x00 00107 #define RF_CANCEL 0x01 00108 #define RF_RETRY 0x02 00109 00110 void WINAPI RunFileDlg( 00111 HWND hwndOwner, 00112 HICON hIcon, 00113 LPCWSTR lpstrDirectory, 00114 LPCWSTR lpstrTitle, 00115 LPCWSTR lpstrDescription, 00116 UINT uFlags); 00117 00118 void WINAPI ExitWindowsDialog(HWND hwndOwner); 00119 00120 BOOL WINAPI SHFindComputer( 00121 LPCITEMIDLIST pidlRoot, 00122 LPCITEMIDLIST pidlSavedSearch); 00123 00124 void WINAPI SHHandleDiskFull(HWND hwndOwner, 00125 UINT uDrive); 00126 00127 int WINAPI SHOutOfMemoryMessageBox( 00128 HWND hwndOwner, 00129 LPCSTR lpCaption, 00130 UINT uType); 00131 00132 DWORD WINAPI SHNetConnectionDialog( 00133 HWND hwndOwner, 00134 LPCWSTR lpstrRemoteName, 00135 DWORD dwType); 00136 00137 /**************************************************************************** 00138 * Cabinet Window Messages 00139 */ 00140 00141 #define CWM_SETPATH (WM_USER + 2) 00142 #define CWM_WANTIDLE (WM_USER + 3) 00143 #define CWM_GETSETCURRENTINFO (WM_USER + 4) 00144 #define CWM_SELECTITEM (WM_USER + 5) 00145 #define CWM_SELECTITEMSTR (WM_USER + 6) 00146 #define CWM_GETISHELLBROWSER (WM_USER + 7) 00147 #define CWM_TESTPATH (WM_USER + 9) 00148 #define CWM_STATECHANGE (WM_USER + 10) 00149 #define CWM_GETPATH (WM_USER + 12) 00150 00151 /* CWM_TESTPATH types */ 00152 #define CWTP_ISEQUAL 0 00153 #define CWTP_ISCHILD 1 00154 00155 /* CWM_TESTPATH structure */ 00156 typedef struct 00157 { 00158 DWORD dwType; 00159 ITEMIDLIST idl; 00160 } CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT; 00161 00162 /**************************************************************************** 00163 * System Imagelist Routines 00164 */ 00165 00166 int WINAPI Shell_GetCachedImageIndexA( 00167 LPCSTR lpszFileName, 00168 int nIconIndex, 00169 UINT bSimulateDoc); 00170 00171 BOOL WINAPI Shell_GetImageLists( 00172 HIMAGELIST *lphimlLarge, 00173 HIMAGELIST *lphimlSmall); 00174 00175 HICON WINAPI SHGetFileIcon( 00176 DWORD dwReserved, 00177 LPCSTR lpszPath, 00178 DWORD dwFileAttributes, 00179 UINT uFlags); 00180 00181 BOOL WINAPI FileIconInit(BOOL bFullInit); 00182 00183 /**************************************************************************** 00184 * File Menu Routines 00185 */ 00186 /* FileMenu_Create nSelHeight constants */ 00187 #define FM_DEFAULT_SELHEIGHT -1 00188 #define FM_FULL_SELHEIGHT 0 00189 00190 /* FileMenu_Create flags */ 00191 #define FMF_SMALL_ICONS 0x00 00192 #define FMF_LARGE_ICONS 0x08 00193 #define FMF_NO_COLUMN_BREAK 0x10 00194 00195 HMENU WINAPI FileMenu_Create( 00196 COLORREF crBorderColor, 00197 int nBorderWidth, 00198 HBITMAP hBorderBmp, 00199 int nSelHeight, 00200 UINT uFlags); 00201 00202 void WINAPI FileMenu_Destroy(HMENU hMenu); 00203 00204 /* FileMenu_AppendItem constants */ 00205 #define FM_SEPARATOR (LPCSTR)1 00206 #define FM_BLANK_ICON -1 00207 #define FM_DEFAULT_HEIGHT 0 00208 00209 BOOL WINAPI FileMenu_AppendItem( 00210 HMENU hMenu, 00211 LPCSTR lpszText, 00212 UINT uID, 00213 int iIcon, 00214 HMENU hMenuPopup, 00215 int nItemHeight); 00216 00217 /* FileMenu_InsertUsingPidl flags */ 00218 #define FMF_NO_EMPTY_ITEM 0x01 00219 #define FMF_NO_PROGRAM_GROUPS 0x04 00220 00221 /* FileMenu_InsertUsingPidl callback function */ 00222 typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile); 00223 00224 int WINAPI FileMenu_InsertUsingPidl( 00225 HMENU hMenu, 00226 UINT uID, 00227 LPCITEMIDLIST pidl, 00228 UINT uFlags, 00229 UINT uEnumFlags, 00230 LPFNFMCALLBACK lpfnCallback); 00231 00232 int WINAPI FileMenu_ReplaceUsingPidl( 00233 HMENU hMenu, 00234 UINT uID, 00235 LPCITEMIDLIST pidl, 00236 UINT uEnumFlags, 00237 LPFNFMCALLBACK lpfnCallback); 00238 00239 void WINAPI FileMenu_Invalidate(HMENU hMenu); 00240 00241 HMENU WINAPI FileMenu_FindSubMenuByPidl( 00242 HMENU hMenu, 00243 LPCITEMIDLIST pidl); 00244 00245 BOOL WINAPI FileMenu_TrackPopupMenuEx( 00246 HMENU hMenu, 00247 UINT uFlags, 00248 int x, 00249 int y, 00250 HWND hWnd, 00251 LPTPMPARAMS lptpm); 00252 00253 BOOL WINAPI FileMenu_GetLastSelectedItemPidls( 00254 UINT uReserved, 00255 LPCITEMIDLIST *ppidlFolder, 00256 LPCITEMIDLIST *ppidlItem); 00257 00258 LRESULT WINAPI FileMenu_MeasureItem( 00259 HWND hWnd, 00260 LPMEASUREITEMSTRUCT lpmis); 00261 00262 LRESULT WINAPI FileMenu_DrawItem( 00263 HWND hWnd, 00264 LPDRAWITEMSTRUCT lpdis); 00265 00266 BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu); 00267 00268 void WINAPI FileMenu_AbortInitMenu(void); 00269 00270 LRESULT WINAPI FileMenu_HandleMenuChar( 00271 HMENU hMenu, 00272 WPARAM wParam); 00273 00274 BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu); 00275 00276 BOOL WINAPI FileMenu_DeleteItemByCmd( 00277 HMENU hMenu, 00278 UINT uID); 00279 00280 BOOL WINAPI FileMenu_DeleteItemByIndex( 00281 HMENU hMenu, 00282 UINT uPos); 00283 00284 BOOL WINAPI FileMenu_DeleteMenuItemByFirstID( 00285 HMENU hMenu, 00286 UINT uID); 00287 00288 BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu); 00289 00290 BOOL WINAPI FileMenu_EnableItemByCmd( 00291 HMENU hMenu, 00292 UINT uID, 00293 BOOL bEnable); 00294 00295 DWORD WINAPI FileMenu_GetItemExtent( 00296 HMENU hMenu, 00297 UINT uPos); 00298 00299 int WINAPI FileMenu_AppendFilesForPidl( 00300 HMENU hMenu, 00301 LPCITEMIDLIST pidl, 00302 BOOL bAddSeparator); 00303 00304 int WINAPI FileMenu_AddFilesForPidl( 00305 HMENU hMenu, 00306 UINT uReserved, 00307 UINT uID, 00308 LPCITEMIDLIST pidl, 00309 UINT uFlags, 00310 UINT uEnumFlags, 00311 LPFNFMCALLBACK lpfnCallback); 00312 00313 /**************************************************************************** 00314 * Drag And Drop Routines 00315 */ 00316 00317 HRESULT WINAPI SHRegisterDragDrop( 00318 HWND hWnd, 00319 LPDROPTARGET lpDropTarget); 00320 00321 HRESULT WINAPI SHRevokeDragDrop(HWND hWnd); 00322 00323 BOOL WINAPI DAD_DragEnter(HWND hWnd); 00324 00325 BOOL WINAPI DAD_SetDragImageFromListView( 00326 HWND hWnd, 00327 POINT pt); 00328 00329 BOOL WINAPI DAD_ShowDragImage(BOOL bShow); 00330 00331 /**************************************************************************** 00332 * Path Manipulation Routines 00333 */ 00334 00335 BOOL WINAPI PathAppendAW(LPVOID lpszPath1, LPCVOID lpszPath2); 00336 00337 LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile); 00338 00339 LPVOID WINAPI PathAddBackslashAW(LPVOID path); 00340 00341 LPVOID WINAPI PathBuildRootAW(LPVOID lpszPath, int drive); 00342 00343 LPVOID WINAPI PathFindExtensionAW(LPCVOID path); 00344 00345 LPVOID WINAPI PathFindFileNameAW(LPCVOID path); 00346 00347 LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath, DWORD void1, DWORD void2); 00348 00349 LPVOID WINAPI PathGetArgsAW(LPVOID lpszPath); 00350 00351 BOOL WINAPI PathRemoveFileSpecAW(LPVOID lpszPath); 00352 00353 void WINAPI PathRemoveBlanksAW(LPVOID lpszPath); 00354 00355 VOID WINAPI PathQuoteSpacesAW(LPVOID path); 00356 00357 void WINAPI PathUnquoteSpacesAW(LPVOID lpszPath); 00358 00359 BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath); 00360 00361 BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath); 00362 00363 BOOL WINAPI PathIsRootAW(LPCVOID x); 00364 00365 BOOL WINAPI PathIsExeAW(LPCVOID lpszPath); 00366 00367 BOOL WINAPI PathIsDirectoryAW(LPCVOID lpszPath); 00368 00369 BOOL WINAPI PathFileExistsAW(LPCVOID lpszPath); 00370 00371 BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec); 00372 00373 BOOL WINAPI PathMakeUniqueNameAW( 00374 LPVOID lpszBuffer, 00375 DWORD dwBuffSize, 00376 LPCVOID lpszShortName, 00377 LPCVOID lpszLongName, 00378 LPCVOID lpszPathName); 00379 00380 BOOL WINAPI PathYetAnotherMakeUniqueName( 00381 LPWSTR lpszBuffer, 00382 LPCWSTR lpszPathName, 00383 LPCWSTR lpszShortName, 00384 LPCWSTR lpszLongName); 00385 00386 BOOL WINAPI PathQualifyAW(LPCVOID path); 00387 00388 00389 /* PathResolve flags */ 00390 #define PRF_CHECKEXISTANCE 0x01 00391 #define PRF_EXECUTABLE 0x02 00392 #define PRF_QUALIFYONPATH 0x04 00393 #define PRF_WINDOWS31 0x08 00394 00395 BOOL WINAPI PathResolveAW(LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags); 00396 00397 VOID WINAPI PathSetDlgItemPathAW(HWND hDlg, int nIDDlgItem, LPCVOID lpszPath); 00398 00399 /* PathProcessCommand flags */ 00400 #define PPCF_QUOTEPATH 0x01 /* implies PPCF_INCLUDEARGS */ 00401 #define PPCF_INCLUDEARGS 0x02 00402 //#define PPCF_NODIRECTORIES 0x10 move to shlobj 00403 #define PPCF_DONTRESOLVE 0x20 00404 #define PPCF_PATHISRELATIVE 0x40 00405 00406 HRESULT WINAPI PathProcessCommandAW(LPCVOID lpszPath, LPVOID lpszBuff, 00407 DWORD dwBuffSize, DWORD dwFlags); 00408 00409 void WINAPI PathStripPathAW(LPVOID lpszPath); 00410 00411 BOOL WINAPI PathStripToRootAW(LPVOID lpszPath); 00412 00413 void WINAPI PathRemoveArgsAW(LPVOID lpszPath); 00414 00415 void WINAPI PathRemoveExtensionAW(LPVOID lpszPath); 00416 00417 int WINAPI PathParseIconLocationAW(LPVOID lpszPath); 00418 00419 BOOL WINAPI PathIsSameRootAW(LPCVOID lpszPath1, LPCVOID lpszPath2); 00420 00421 BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID *sOtherDirs); 00422 00423 /**************************************************************************** 00424 * Shell Namespace Routines 00425 */ 00426 00427 /* Generic structure used by several messages */ 00428 typedef struct 00429 { 00430 DWORD dwReserved; 00431 DWORD dwReserved2; 00432 LPCITEMIDLIST pidl; 00433 LPDWORD lpdwUser; 00434 } SFVCBINFO, * LPSFVCBINFO; 00435 typedef const SFVCBINFO * LPCSFVCBINFO; 00436 00437 /* SFVCB_SELECTIONCHANGED structure */ 00438 typedef struct 00439 { 00440 UINT uOldState; 00441 UINT uNewState; 00442 LPCITEMIDLIST pidl; 00443 LPDWORD lpdwUser; 00444 } SFVSELECTSTATE, * LPSFVSELECTSTATE; 00445 typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE; 00446 00447 /* SFVCB_COPYHOOKCALLBACK structure */ 00448 typedef struct 00449 { 00450 HWND hwnd; 00451 UINT wFunc; 00452 UINT wFlags; 00453 LPCSTR pszSrcFile; 00454 DWORD dwSrcAttribs; 00455 LPCSTR pszDestFile; 00456 DWORD dwDestAttribs; 00457 } SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO; 00458 typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO; 00459 00460 /* SFVCB_GETDETAILSOF structure */ 00461 typedef struct 00462 { 00463 LPCITEMIDLIST pidl; 00464 int fmt; 00465 int cx; 00466 STRRET lpText; 00467 } SFVCOLUMNINFO, * LPSFVCOLUMNINFO; 00468 00469 /**************************************************************************** 00470 * Misc Stuff 00471 */ 00472 00473 /* SHWaitForFileToOpen flags */ 00474 #define SHWFF_ADD 0x01 00475 #define SHWFF_REMOVE 0x02 00476 #define SHWFF_WAIT 0x04 00477 00478 BOOL WINAPI SHWaitForFileToOpen( 00479 LPCITEMIDLIST pidl, 00480 DWORD dwFlags, 00481 DWORD dwTimeout); 00482 00483 WORD WINAPI ArrangeWindows( 00484 HWND hwndParent, 00485 DWORD dwReserved, 00486 LPCRECT lpRect, 00487 WORD cKids, 00488 CONST HWND * lpKids); 00489 00490 /* RegisterShellHook types */ 00491 #define RSH_DEREGISTER 0 00492 #define RSH_REGISTER 1 00493 #define RSH_REGISTER_PROGMAN 2 00494 #define RSH_REGISTER_TASKMAN 3 00495 00496 BOOL WINAPI RegisterShellHook( 00497 HWND hWnd, 00498 DWORD dwType); 00499 00500 /* SHCreateDefClassObject callback function */ 00501 typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)( 00502 LPUNKNOWN pUnkOuter, 00503 REFIID riidObject, 00504 LPVOID *ppvObject); 00505 00506 HRESULT WINAPI SHCreateDefClassObject( 00507 REFIID riidFactory, 00508 LPVOID *ppvFactory, 00509 LPFNCDCOCALLBACK lpfnCallback, 00510 LPDWORD lpdwUsage, 00511 REFIID riidObject); 00512 00513 void WINAPI SHFreeUnusedLibraries(void); 00514 00515 /* SHCreateLinks flags */ 00516 #define SHCLF_PREFIXNAME 0x01 00517 #define SHCLF_CREATEONDESKTOP 0x02 00518 00519 HRESULT WINAPI SHCreateLinks( 00520 HWND hWnd, 00521 LPCSTR lpszDir, 00522 LPDATAOBJECT lpDataObject, 00523 UINT uFlags, 00524 LPITEMIDLIST *lppidlLinks); 00525 00526 DWORD WINAPI CheckEscapesA(LPSTR string, DWORD len); 00527 DWORD WINAPI CheckEscapesW(LPWSTR string, DWORD len); 00528 00529 /* policy functions */ 00530 BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey); 00531 00532 /* Shell Desktop functions */ 00533 00534 #define WM_GETISHELLBROWSER (WM_USER+7) 00535 00536 BOOL WINAPI SHDesktopMessageLoop(HANDLE); 00537 00538 #define CSIDL_FOLDER_MASK 0x00ff 00539 00540 #ifdef __cplusplus 00541 } /* extern "C" */ 00542 #endif /* defined(__cplusplus) */ 00543 00544 #endif /* __WINE_UNDOCSHELL_H */ Generated on Sun May 27 2012 04:26:31 for ReactOS by
1.7.6.1
|