ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

undocshell.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.