Ignore:
Timestamp:
Aug 18, 2000, 4:04:23 AM (25 years ago)
Author:
phaller
Message:

Shell32 update to WINE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/win/wine/undocshell.h

    r1556 r4033  
    1 /* $Id: undocshell.h,v 1.3 1999-11-02 20:36:05 sandervl Exp $ */
     1/* $Id: undocshell.h,v 1.4 2000-08-18 02:04:23 phaller Exp $ */
    22#ifndef __WINE_UNDOCSHELL_H
    33#define __WINE_UNDOCSHELL_H
     
    55#include "windef.h"
    66#include "shell.h"
     7#include "commctrl.h"
    78#include "wine/obj_shellfolder.h"       /* strret */
     9#include "wine/obj_shellview.h"
     10#include "wine/obj_dragdrop.h"
    811
    912#ifdef __cplusplus
    1013extern "C" {
    1114#endif /* defined(__cplusplus) */
     15
    1216
    1317/****************************************************************************
     
    1620LPITEMIDLIST WINAPI ILClone (LPCITEMIDLIST pidl);
    1721LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl);
    18 LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST iil1,LPCITEMIDLIST iil2);
     22
     23LPITEMIDLIST WINAPI ILCombine(
     24        LPCITEMIDLIST iil1,
     25        LPCITEMIDLIST iil2);
    1926
    2027DWORD WINAPI ILGetSize(LPITEMIDLIST pidl);
     
    2330LPITEMIDLIST WINAPI ILFindLastID(LPITEMIDLIST pidl);
    2431BOOL WINAPI ILRemoveLastID(LPCITEMIDLIST pidl);
    25 LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2);
    26 
    27 BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
    28 
    29 BOOL WINAPI ILGetDisplayName(LPCITEMIDLIST pidl,LPSTR path);
     32
     33LPITEMIDLIST WINAPI ILFindChild(
     34        LPCITEMIDLIST pidl1,
     35        LPCITEMIDLIST pidl2);
     36
     37LPITEMIDLIST WINAPI ILAppendID(
     38        LPITEMIDLIST pidl,
     39        LPCSHITEMID lpItemID,
     40        BOOL bAddToEnd);
     41
     42BOOL WINAPI ILIsEqual(
     43        LPCITEMIDLIST pidl1,
     44        LPCITEMIDLIST pidl2);
     45
     46BOOL WINAPI ILIsParent(
     47        LPCITEMIDLIST pidlParent,
     48        LPCITEMIDLIST pidlChild,
     49        BOOL bImmediate);
     50
     51BOOL WINAPI ILGetDisplayName(
     52        LPCITEMIDLIST pidl,
     53        LPSTR path);
    3054
    3155DWORD WINAPI ILFree(LPITEMIDLIST pidl);
    3256
    33 LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPSTR lpszPath);
    34 LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPWSTR lpszPath);
    35 LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPVOID lpszPath);
    36 
    37 HRESULT WINAPI SHILCreateFromPathA (LPCSTR path, LPITEMIDLIST * ppidl, DWORD *attributes);
    38 HRESULT WINAPI SHILCreateFromPathW (LPCWSTR path, LPITEMIDLIST * ppidl, DWORD *attributes);
    39 HRESULT WINAPI SHILCreateFromPathAW (LPCVOID path, LPITEMIDLIST * ppidl, DWORD *attributes);
     57HRESULT WINAPI ILSaveToStream(
     58        LPSTREAM pstrm,
     59        LPCITEMIDLIST pidl);
     60
     61HRESULT WINAPI ILLoadFromStream(
     62        LPSTREAM pstrm,
     63        LPITEMIDLIST *ppidl);
     64
     65LPITEMIDLIST WINAPI ILGlobalClone(LPCITEMIDLIST pidl);
     66void WINAPI ILGlobalFree(LPCITEMIDLIST pidl);
     67
     68LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath);
     69LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath);
     70LPITEMIDLIST WINAPI SHSimpleIDListFromPathAW (LPCVOID lpszPath);
     71
     72HRESULT WINAPI SHILCreateFromPathA (
     73        LPCSTR path,
     74        LPITEMIDLIST * ppidl,
     75        DWORD *attributes);
     76
     77HRESULT WINAPI SHILCreateFromPathW (
     78        LPCWSTR path,
     79        LPITEMIDLIST * ppidl,
     80        DWORD *attributes);
     81
     82HRESULT WINAPI SHILCreateFromPathAW (
     83        LPCVOID path,
     84        LPITEMIDLIST * ppidl,
     85        DWORD *attributes);
    4086
    4187LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path);
     
    4389LPITEMIDLIST WINAPI ILCreateFromPathAW(LPCVOID path);
    4490
     91HRESULT WINAPI SHBindToParent(
     92        LPCITEMIDLIST pidl,
     93        REFIID riid,
     94        LPVOID *ppv,
     95        LPCITEMIDLIST *ppidlLast);
     96
    4597/*
    4698        string functions
    4799*/
    48 HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast);
    49 
    50 HRESULT WINAPI StrRetToStrNA (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
    51 HRESULT WINAPI StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
    52 HRESULT WINAPI StrRetToStrNAW (LPVOID dest, DWORD len, LPSTRRET src, LPITEMIDLIST pidl);
    53 
    54 HRESULT WINAPI StrRetToBufA (LPSTRRET src, LPITEMIDLIST pidl, LPSTR dest, DWORD len);
    55 HRESULT WINAPI StrRetToBufW (LPSTRRET src, LPITEMIDLIST pidl, LPWSTR dest, DWORD len);
     100HRESULT WINAPI StrRetToStrNA (
     101        LPVOID dest,
     102        DWORD len,
     103        LPSTRRET src,
     104        LPITEMIDLIST pidl);
     105
     106HRESULT WINAPI StrRetToStrNW (
     107        LPVOID dest,
     108        DWORD len,
     109        LPSTRRET src,
     110        LPITEMIDLIST pidl);
     111
     112HRESULT WINAPI StrRetToStrNAW (
     113        LPVOID dest,
     114        DWORD len,
     115        LPSTRRET src,
     116        LPITEMIDLIST pidl);
     117
     118HRESULT WINAPI StrRetToBufA (
     119        LPSTRRET src,
     120        LPITEMIDLIST pidl,
     121        LPSTR dest,
     122        DWORD len);
     123
     124HRESULT WINAPI StrRetToBufW (
     125        LPSTRRET src,
     126        LPITEMIDLIST pidl,
     127        LPWSTR dest,
     128        DWORD len);
     129
     130/****************************************************************************
     131* SHChangeNotifyRegister API
     132*/
     133#define SHCNF_ACCEPT_INTERRUPTS         0x0001
     134#define SHCNF_ACCEPT_NON_INTERRUPTS     0x0002
     135#define SHCNF_NO_PROXY                  0x8001
     136
     137typedef struct
     138{
     139        LPCITEMIDLIST pidlPath;
     140        BOOL bWatchSubtree;
     141} NOTIFYREGISTER, *LPNOTIFYREGISTER;
     142
     143typedef const LPNOTIFYREGISTER LPCNOTIFYREGISTER;
     144
     145typedef struct
     146{
     147        USHORT  cb;
     148        DWORD   dwItem1;
     149        DWORD   dwItem2;
     150} DWORDITEMID;
     151
     152HANDLE WINAPI SHChangeNotifyRegister(
     153        HWND hwnd,
     154        LONG dwFlags,
     155        LONG wEventMask,
     156        DWORD uMsg,
     157        int cItems,
     158        LPCNOTIFYREGISTER lpItems);
     159
     160BOOL WINAPI SHChangeNotifyDeregister(HANDLE hNotify);
     161
     162HANDLE WINAPI SHChangeNotification_Lock(
     163        HANDLE hMemoryMap,
     164        DWORD dwProcessId,
     165        LPCITEMIDLIST **lppidls,
     166        LPLONG lpwEventId);
     167
     168BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock);
     169
     170/****************************************************************************
     171 * Shell Common Dialogs
     172 */
     173
     174BOOL WINAPI PickIconDlg(
     175        HWND hwndOwner,
     176        LPSTR lpstrFile,
     177        DWORD nMaxFile,
     178        LPDWORD lpdwIconIndex);
     179
     180/* RunFileDlg flags */
     181#define RFF_NOBROWSE       0x01
     182#define RFF_NODEFAULT      0x02
     183#define RFF_CALCDIRECTORY  0x04
     184#define RFF_NOLABEL        0x08
     185#define RFF_NOSEPARATEMEM  0x20  /* NT only */
     186
     187/* RunFileFlg notification structure */
     188typedef struct
     189{
     190  NMHDR   hdr;
     191  LPCSTR  lpFile;
     192  LPCSTR  lpDirectory;
     193  int     nShow;
     194} NM_RUNFILEDLG, * LPNM_RUNFILEDLG;
     195
     196/* RunFileDlg notification return values */
     197#define RF_OK      0x00
     198#define RF_CANCEL  0x01
     199#define RF_RETRY   0x02
     200
     201void WINAPI RunFileDlg(
     202        HWND hwndOwner,
     203        HICON hIcon,
     204        LPCSTR lpstrDirectory,
     205        LPCSTR lpstrTitle,
     206        LPCSTR lpstrDescription,
     207        UINT uFlags);
     208
     209void WINAPI ExitWindowsDialog(HWND hwndOwner);
     210
     211int  WINAPI RestartDialog(
     212        HWND hwndOwner,
     213        LPCSTR lpstrReason,
     214        UINT uFlags);
     215
     216BOOL WINAPI GetFileNameFromBrowse(
     217        HWND hwndOwner,
     218        LPSTR lpstrFile,
     219        DWORD nMaxFile,
     220        LPCSTR lpstrInitialDir,
     221        LPCSTR lpstrDefExt,
     222        LPCSTR lpstrFilter,
     223        LPCSTR lpstrTitle);
     224
     225BOOL WINAPI SHFindFiles(
     226        LPCITEMIDLIST pidlRoot,
     227        LPCITEMIDLIST pidlSavedSearch);
     228
     229BOOL WINAPI SHFindComputer(
     230        LPCITEMIDLIST pidlRoot,
     231        LPCITEMIDLIST pidlSavedSearch);
     232 
     233/* SHObjectProperties flags */
     234#define OPF_PRINTERNAME  0x01
     235#define OPF_PATHNAME     0x02
     236
     237BOOL WINAPI SHObjectProperties(
     238        HWND hwndOwner,
     239        UINT uFlags,
     240        LPCSTR lpstrName,
     241        LPCSTR lpstrParameters);
     242
     243void WINAPI SHHandleDiskFull(HWND hwndOwner,
     244        UINT uDrive);
     245
     246int  WINAPI SHOutOfMemoryMessageBox(
     247        HWND hwndOwner,
     248        LPCSTR lpCaption,
     249        UINT uType);
     250
     251DWORD WINAPI SHNetConnectionDialog(
     252        HWND hwndOwner,
     253        LPCSTR lpstrRemoteName,
     254        DWORD dwType);
     255
     256int WINAPIV ShellMessageBoxA(
     257        HINSTANCE hInstance,
     258        HWND hWnd,
     259        LPCSTR lpText,
     260        LPCSTR lpCaption,
     261        UINT uType,
     262        ...);
     263
     264int WINAPIV ShellMessageBoxW(
     265        HINSTANCE hInstance,
     266        HWND hWnd,
     267        LPCWSTR lpText,
     268        LPCWSTR lpCaption,
     269        UINT uType,
     270        ...);
     271
     272#define ShellMessageBox WINELIB_NAME_AW(ShellMessageBox)
     273
     274/****************************************************************************
     275 * Memory Routines
     276 */
     277
     278LPVOID WINAPI SHAlloc(ULONG cb);
     279void WINAPI SHFree(LPVOID pv);
     280
     281HANDLE WINAPI SHAllocShared(
     282        LPVOID pv,
     283        ULONG cb,
     284        DWORD pid);
     285
     286BOOL WINAPI SHFreeShared(
     287        HANDLE hMem,
     288        DWORD pid);
     289
     290LPVOID WINAPI SHLockShared(
     291        HANDLE hMem,
     292        DWORD pid);
     293
     294BOOL WINAPI SHUnlockShared(LPVOID pv);
     295
     296/****************************************************************************
     297 * Cabinet Window Messages
     298 */
     299
     300#define CWM_SETPATH           (WM_USER + 2)
     301#define CWM_WANTIDLE          (WM_USER + 3)
     302#define CWM_GETSETCURRENTINFO (WM_USER + 4)
     303#define CWM_SELECTITEM        (WM_USER + 5)
     304#define CWM_SELECTITEMSTR     (WM_USER + 6)
     305#define CWM_GETISHELLBROWSER  (WM_USER + 7)
     306#define CWM_TESTPATH          (WM_USER + 9)
     307#define CWM_STATECHANGE       (WM_USER + 10)
     308#define CWM_GETPATH           (WM_USER + 12)
     309
     310/* CWM_TESTPATH types */
     311#define CWTP_ISEQUAL  0
     312#define CWTP_ISCHILD  1
     313
     314/* CWM_TESTPATH structure */
     315typedef struct
     316{
     317        DWORD dwType;
     318        ITEMIDLIST idl;
     319} CWTESTPATHSTRUCT,* LPCWTESTPATHSTRUCT;
     320
     321/****************************************************************************
     322 * System Imagelist Routines
     323 */
     324
     325int WINAPI Shell_GetCachedImageIndex(
     326        LPCSTR lpszFileName,
     327        UINT nIconIndex,
     328        BOOL bSimulateDoc);
     329
     330BOOL WINAPI Shell_GetImageLists(
     331        HIMAGELIST *lphimlLarge,
     332        HIMAGELIST *lphimlSmall);
     333
     334HICON WINAPI SHGetFileIcon(
     335        DWORD dwReserved,
     336        LPCSTR lpszPath,
     337        DWORD dwFileAttributes,
     338        UINT uFlags);
     339
     340int WINAPI SHMapPIDLToSystemImageListIndex(
     341        LPSHELLFOLDER psf,
     342        LPCITEMIDLIST pidl,
     343        UINT * pOpenIndex);
     344
     345BOOL WINAPI FileIconInit(BOOL bFullInit);
     346
     347/****************************************************************************
     348 * File Menu Routines
     349 */
     350/* FileMenu_Create nSelHeight constants */
     351#define FM_DEFAULT_SELHEIGHT  -1
     352#define FM_FULL_SELHEIGHT     0
     353
     354/* FileMenu_Create flags */
     355#define FMF_SMALL_ICONS      0x00
     356#define FMF_LARGE_ICONS      0x08
     357#define FMF_NO_COLUMN_BREAK  0x10
     358
     359HMENU WINAPI FileMenu_Create(
     360        COLORREF crBorderColor,
     361        int nBorderWidth,
     362        HBITMAP hBorderBmp,
     363        int nSelHeight,
     364        UINT uFlags);
     365
     366void WINAPI FileMenu_Destroy(HMENU hMenu);
     367
     368/* FileMenu_AppendItem constants */
     369#define FM_SEPARATOR       (LPCSTR)1
     370#define FM_BLANK_ICON      -1
     371#define FM_DEFAULT_HEIGHT  0
     372
     373BOOL WINAPI FileMenu_AppendItem(
     374        HMENU hMenu,
     375        LPCSTR lpszText,
     376        UINT uID,
     377        int iIcon,
     378        HMENU hMenuPopup,
     379        int nItemHeight);
     380
     381/* FileMenu_InsertUsingPidl flags */
     382#define FMF_NO_EMPTY_ITEM      0x01
     383#define FMF_NO_PROGRAM_GROUPS  0x04
     384
     385/* FileMenu_InsertUsingPidl callback function */
     386//typedef void CALLBACK (*LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
     387typedef void (CALLBACK *LPFNFMCALLBACK)(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile);
     388
     389int WINAPI FileMenu_InsertUsingPidl(
     390        HMENU hMenu,
     391        UINT uID,
     392        LPCITEMIDLIST pidl,
     393        UINT uFlags,
     394        UINT uEnumFlags,
     395        LPFNFMCALLBACK lpfnCallback);
     396
     397int WINAPI FileMenu_ReplaceUsingPidl(
     398        HMENU hMenu,
     399        UINT uID,
     400        LPCITEMIDLIST pidl,
     401        UINT uEnumFlags,
     402        LPFNFMCALLBACK lpfnCallback);
     403
     404void WINAPI FileMenu_Invalidate(HMENU hMenu);
     405
     406HMENU WINAPI FileMenu_FindSubMenuByPidl(
     407        HMENU hMenu,
     408        LPCITEMIDLIST pidl);
     409
     410BOOL WINAPI FileMenu_TrackPopupMenuEx(
     411        HMENU hMenu,
     412        UINT uFlags,
     413        int x,
     414        int y,
     415        HWND hWnd,
     416        LPTPMPARAMS lptpm);
     417
     418BOOL WINAPI FileMenu_GetLastSelectedItemPidls(
     419        UINT uReserved,
     420        LPITEMIDLIST *ppidlFolder,
     421        LPITEMIDLIST *ppidlItem);
     422
     423LRESULT WINAPI FileMenu_MeasureItem(
     424        HWND hWnd,
     425        LPMEASUREITEMSTRUCT lpmis);
     426
     427LRESULT WINAPI FileMenu_DrawItem(
     428        HWND hWnd,
     429        LPDRAWITEMSTRUCT lpdis);
     430
     431BOOL WINAPI FileMenu_InitMenuPopup(HMENU hMenu);
     432
     433void WINAPI FileMenu_AbortInitMenu(void);
     434
     435LRESULT WINAPI FileMenu_HandleMenuChar(
     436        HMENU hMenu,
     437        WPARAM wParam);
     438
     439BOOL WINAPI FileMenu_DeleteAllItems(HMENU hMenu);
     440
     441BOOL WINAPI FileMenu_DeleteItemByCmd(
     442        HMENU hMenu,
     443        UINT uID);
     444
     445BOOL WINAPI FileMenu_DeleteItemByIndex(
     446        HMENU hMenu,
     447        UINT uPos);
     448
     449BOOL WINAPI FileMenu_DeleteMenuItemByFirstID(
     450        HMENU hMenu,
     451        UINT uID);
     452
     453BOOL WINAPI FileMenu_DeleteSeparator(HMENU hMenu);
     454
     455BOOL WINAPI FileMenu_EnableItemByCmd(
     456        HMENU hMenu,
     457        UINT uID,
     458        BOOL bEnable);
     459
     460DWORD WINAPI FileMenu_GetItemExtent(
     461        HMENU hMenu,
     462        UINT uPos);
     463
     464int WINAPI FileMenu_AppendFilesForPidl(
     465        HMENU hMenu,
     466        LPCITEMIDLIST pidl,
     467        BOOL bAddSeparator);
     468
     469int WINAPI FileMenu_AddFilesForPidl(
     470        HMENU hMenu,
     471        UINT uReserved,
     472        UINT uID,
     473        LPCITEMIDLIST pidl,
     474        UINT uFlags,
     475        UINT uEnumFlags,
     476        LPFNFMCALLBACK lpfnCallback);
     477
     478/****************************************************************************
     479 * Drag And Drop Routines
     480 */
     481HRESULT WINAPI SHLoadOLE(DWORD dwFlags);
     482
     483HRESULT WINAPI SHRegisterDragDrop(
     484        HWND hWnd,
     485        LPDROPTARGET lpDropTarget);
     486
     487HRESULT WINAPI SHRevokeDragDrop(HWND hWnd);
     488
     489HRESULT WINAPI SHDoDragDrop(
     490        HWND hWnd,
     491        LPDATAOBJECT lpDataObject,
     492        LPDROPSOURCE lpDropSource,
     493        DWORD dwOKEffect,
     494        LPDWORD pdwEffect);
     495
     496BOOL WINAPI DAD_DragEnter(HWND hWnd);
     497
     498BOOL WINAPI DAD_DragEnterEx(
     499        HWND hWnd,
     500        POINT pt);
     501
     502BOOL WINAPI DAD_DragMove(POINT pt);
     503
     504/* DAD_AutoScroll return values */
     505#define DAD_SCROLL_UP    1
     506#define DAD_SCROLL_DOWN  2
     507#define DAD_SCROLL_LEFT  4
     508#define DAD_SCROLL_RIGHT 8
     509
     510/* DAD_AutoScroll sample structure */
     511typedef struct
     512{
     513        DWORD  dwCount;
     514        DWORD  dwLastTime;
     515        BOOL   bWrapped;
     516        POINT  aptPositions[3];
     517        DWORD  adwTimes[3];
     518} SCROLLSAMPLES, *LPSCROLLSAMPLES;
     519
     520DWORD WINAPI DAD_AutoScroll(HWND hWnd,
     521        LPSCROLLSAMPLES lpSamples,
     522        LPPOINT lppt);
     523
     524BOOL WINAPI DAD_DragLeave();
     525
     526BOOL WINAPI DAD_SetDragImageFromListView(
     527        HWND hWnd,
     528        POINT pt);
     529
     530BOOL WINAPI DAD_SetDragImage(
     531        HIMAGELIST himlTrack,
     532        LPPOINT lppt);
     533
     534BOOL WINAPI DAD_ShowDragImage(BOOL bShow);
     535
     536HRESULT WINAPI SHCreateStdEnumFmtEtc(
     537        DWORD cFormats,
     538        const FORMATETC *lpFormats,
     539        LPENUMFORMATETC *ppenumFormatetc);
     540
     541HRESULT WINAPI CIDLData_CreateFromIDArray(
     542        LPCITEMIDLIST pidlFolder,
     543        DWORD cpidlFiles,
     544        LPCITEMIDLIST *lppidlFiles,
     545        LPDATAOBJECT *ppdataObject);
     546
     547/****************************************************************************
     548 * Path Manipulation Routines
     549 */
     550
     551LPSTR WINAPI PathAppend(
     552        LPSTR lpszPath1,
     553        LPCSTR lpszPath2);
     554
     555LPSTR  WINAPI PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile);
     556LPWSTR WINAPI PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile);
     557#define  PathCombine WINELIB_NAME_AW(PathCombine)
     558LPVOID WINAPI PathCombineAW(LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile);
     559
     560LPSTR  WINAPI PathAddBackslashA(LPSTR path);   
     561LPWSTR WINAPI PathAddBackslashW(LPWSTR path);   
     562#define  PathAddBackslash WINELIB_NAME_AW(PathAddBackslash)
     563LPVOID  WINAPI PathAddBackslashAW(LPVOID path);
     564
     565LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath);
     566LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath);
     567#define  PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash)
     568
     569LPSTR WINAPI PathBuildRoot(
     570        LPSTR lpszPath,
     571        int drive);
     572
     573LPSTR WINAPI PathFindExtensionA(LPCSTR path);
     574LPWSTR WINAPI PathFindExtensionW(LPCWSTR path);
     575#define  PathFindExtension WINELIB_NAME_AW(PathFindExtension)
     576LPVOID WINAPI PathFindExtensionAW(LPCVOID path);
     577
     578LPVOID WINAPI PathGetExtensionAW(LPCVOID lpszPath);
     579
     580LPSTR WINAPI PathGetArgs(LPCSTR lpszPath);
     581
     582BOOL WINAPI PathRemoveFileSpec(LPSTR lpszPath);
     583
     584LPSTR WINAPI PathGetShortPath(LPSTR lpszPath);
     585
     586LPSTR  WINAPI PathQuoteSpacesA(LPSTR path);     
     587LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path);   
     588#define  PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces)
     589LPVOID  WINAPI PathQuoteSpacesAW(LPVOID path); 
     590
     591void WINAPI PathUnquoteSpaces(LPSTR lpszPath);
     592
     593BOOL WINAPI PathIsUNCA(LPCSTR lpszPath);
     594BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath);
     595#define  PathIsUNC WINELIB_NAME_AW(PathIsUNC)
     596BOOL WINAPI PathIsUNCAW(LPCVOID lpszPath);
     597
     598BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath);
     599BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath);
     600#define  PathIsRelative WINELIB_NAME_AW(PathIsRelative)
     601BOOL WINAPI PathIsRelativeAW(LPCVOID lpszPath);
     602
     603BOOL WINAPI PathIsRootA(LPCSTR x);
     604BOOL WINAPI PathIsRootW(LPCWSTR x);
     605#define  PathIsRoot WINELIB_NAME_AW(PathIsRoot)
     606BOOL WINAPI PathIsRootAW(LPCVOID x);
     607
     608BOOL WINAPI PathIsExe(LPCSTR lpszPath);
     609
     610BOOL WINAPI PathIsDirectory(LPCSTR lpszPath);
     611
     612BOOL WINAPI PathFileExists(LPCSTR lpszPath);
     613
     614BOOL WINAPI PathMatchSpecA(
     615        LPCSTR lpszPath,
     616        LPCSTR lpszSpec);
     617BOOL WINAPI PathMatchSpecW(
     618        LPCWSTR lpszPath,
     619        LPCWSTR lpszSpec);
     620#define  PathMatchSpec WINELIB_NAME_AW(PathMatchSpec)
     621BOOL WINAPI PathMatchSpecAW(LPVOID lpszPath, LPVOID lpszSpec);
     622
     623BOOL WINAPI PathMakeUniqueName(
     624        LPSTR lpszBuffer,
     625        DWORD dwBuffSize,
     626        LPCSTR lpszShortName,
     627        LPCSTR lpszLongName,
     628        LPCSTR lpszPathName);
     629
     630BOOL WINAPI PathYetAnotherMakeUniqueName(
     631        LPSTR lpszBuffer,
     632        LPCSTR lpszPathName,
     633        LPCSTR lpszShortName,
     634        LPCSTR lpszLongName);
     635
     636BOOL WINAPI PathFindOnPath(
     637        LPSTR lpszFile,
     638        LPCSTR *alpszPaths);
     639
     640/* PathCleanupSpec return values */
     641#define PCS_REPLACEDCHARS  0x00000001
     642#define PCS_REMOVEDCHARS   0x00000002
     643#define PCS_SHORTENED      0x00000004
     644#define PCS_PATHTOOLONG    0x80000008
     645
     646DWORD WINAPI PathCleanupSpec(
     647        LPCSTR lpszPath,
     648        LPSTR lpszFile);
     649
     650BOOL  WINAPI PathQualifyA(LPCSTR path);
     651BOOL WINAPI PathQualifyW(LPCWSTR path);
     652#define  PathQualify WINELIB_NAME_AW(PathQualify)
     653BOOL  WINAPI PathQualifyAW(LPCVOID path);       
     654
     655
     656/* PathResolve flags */
     657#define PRF_CHECKEXISTANCE  0x01
     658#define PRF_EXECUTABLE      0x02
     659#define PRF_QUALIFYONPATH   0x04
     660#define PRF_WINDOWS31       0x08
     661
     662BOOL WINAPI PathResolve(
     663        LPSTR lpszPath,
     664        LPCSTR *alpszPaths,
     665        DWORD dwFlags);
     666
     667BOOL WINAPI PathSetDlgItemPath(
     668        HWND hDlg,
     669        int nIDDlgItem,
     670        LPCSTR lpszPath);
     671
     672/* PathProcessCommand flags */
     673#define PPCF_QUOTEPATH        0x01 /* implies PPCF_INCLUDEARGS */
     674#define PPCF_INCLUDEARGS      0x02
     675#define PPCF_NODIRECTORIES    0x10
     676#define PPCF_DONTRESOLVE      0x20
     677#define PPCF_PATHISRELATIVE   0x40
     678
     679int WINAPI PathProcessCommand(
     680        LPCWSTR lpszPath,
     681        LPWSTR lpszBuff,
     682        DWORD dwBuffSize,
     683        DWORD dwFlags);
     684
     685void WINAPI PathStripPath(LPWSTR lpszPath);
     686
     687BOOL WINAPI PathStripToRoot(LPWSTR lpszPath);
     688
     689void WINAPI PathRemoveArgs(LPWSTR lpszPath);
     690
     691void WINAPI PathRemoveExtension(LPWSTR lpszPath);
     692
     693int WINAPI PathParseIconLocation(LPWSTR lpszPath);
     694
     695BOOL WINAPI PathIsSameRoot(
     696        LPCWSTR lpszPath1,
     697        LPCWSTR lpszPath2);
     698
     699BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs);
     700BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs);
     701#define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath)
     702BOOL WINAPI PathFindOnPathAW(LPVOID sFile, LPCVOID sOtherDirs);
     703
     704LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf );
     705LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf );
     706#define  StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize)
     707
     708/****************************************************************************
     709 * Shell Namespace Routines
     710 */
     711
     712/* SHCreateShellFolderViewEx callback function */
     713typedef HRESULT (CALLBACK* LPFNSFVCALLBACK)(
     714        DWORD dwUser,
     715        LPSHELLFOLDER pshf,
     716        HWND hWnd,
     717        UINT uMsg,
     718        WPARAM wParam,
     719        LPARAM lParam);
     720
     721/* SHCreateShellFolderViewEx structure */
     722typedef struct
     723{
     724  DWORD            dwSize;
     725  LPSHELLFOLDER    pshf;
     726  DWORD            dwUser;
     727  LPCITEMIDLIST    pidlFolder;
     728  DWORD            dwEventId;
     729  LPFNSFVCALLBACK  lpfnCallback;
     730  UINT             uViewMode;
     731} SHELLFOLDERVIEWINFO, * LPSHELLFOLDERVIEWINFO;
     732typedef const SHELLFOLDERVIEWINFO * LPCSHELLFOLDERVIEWINFO;
     733
     734HRESULT WINAPI SHCreateShellFolderViewEx(
     735        LPCSHELLFOLDERVIEWINFO pshfvi,
     736        LPSHELLVIEW *ppshv);
     737
     738/* SHCreateShellFolderViewEx callback messages */
     739#define SFVCB_ADDTOMENU           0x0001
     740#define SFVCB_INVOKECOMMAND       0x0002
     741#define SFVCB_GETMENUHELP         0x0003
     742#define SFVCB_GETTOOLBARTIP       0x0004
     743#define SFVCB_GETTOOLBARINFO      0x0005
     744#define SFVCB_ADDTOOLBARITEMS     0x0006
     745#define SFVCB_INITMENUPOPUP       0x0007
     746#define SFVCB_SELECTIONCHANGED    0x0008
     747#define SFVCB_DRAWMENUITEM        0x0009
     748#define SFVCB_MEASUREMENUITEM     0x000A
     749#define SFVCB_EXITMENULOOP        0x000B
     750#define SFVCB_VIEWRELEASE         0x000C
     751#define SFVCB_GETNAMELENGTH       0x000D
     752#define SFVCB_CHANGENOTIFY        0x000E
     753#define SFVCB_WINDOWCREATED       0x000F
     754#define SFVCB_WINDOWCLOSING       0x0010
     755#define SFVCB_LISTREFRESHED       0x0011
     756#define SFVCB_WINDOWFOCUSED       0x0012
     757#define SFVCB_REGISTERCOPYHOOK    0x0014
     758#define SFVCB_COPYHOOKCALLBACK    0x0015
     759#define SFVCB_GETDETAILSOF        0x0017
     760#define SFVCB_COLUMNCLICK         0x0018
     761#define SFVCB_GETCHANGENOTIFYPIDL 0x0019
     762#define SFVCB_GETESTIMATEDCOUNT   0x001A
     763#define SFVCB_ADJUSTVIEWMODE      0x001B
     764#define SFVCB_REMOVEFROMMENU      0x001C
     765#define SFVCB_ADDINGOBJECT        0x001D
     766#define SFVCB_REMOVINGOBJECT      0x001E
     767#define SFVCB_UPDATESTATUSBAR     0x001F
     768#define SFVCB_ISSLOWREFRESH       0x0020
     769#define SFVCB_GETCOMMANDDIR       0x0021
     770#define SFVCB_GETCOLUMNSTREAM     0x0022
     771#define SFVCB_CANSELECTALL        0x0023
     772#define SFVCB_DRAGSUCCEEDED       0x0024
     773#define SFVCB_ISSTRICTREFRESH     0x0025
     774#define SFVCB_ISCHILDOBJECT       0x0026
     775
     776/* Generic structure used by several messages */
     777typedef struct
     778{
     779  DWORD          dwReserved;
     780  DWORD          dwReserved2;
     781  LPCITEMIDLIST  pidl;
     782  LPDWORD        lpdwUser;
     783} SFVCBINFO, * LPSFVCBINFO;
     784typedef const SFVCBINFO * LPCSFVCBINFO;
     785
     786/* SFVCB_ADDTOMENU structure */
     787typedef struct 
     788{
     789  HMENU  hMenu;
     790  UINT   indexMenu;
     791  UINT   idCmdFirst;
     792  UINT   idCmdLast;
     793} SFVMENUINFO, * LPSFVMENUINFO;
     794
     795/* SFVCB_GETTOOLBARINFO structure */
     796typedef struct
     797{
     798  UINT  nButtons;
     799  UINT  uFlags;
     800} SFVTOOLBARINFO, * LPSFVTOOLBARINFO;
     801
     802/* SFVTOOLBARINFO flags */
     803typedef enum
     804{
     805  SFVTI_ADDTOEND   = 0,
     806  SFVTI_ADDTOFRONT = 1,
     807  SFVTI_OVERWRITE  = 2
     808} SFVTIF;
     809
     810/* SFVCB_SELECTIONCHANGED structure */
     811typedef struct
     812{
     813  UINT           uOldState;
     814  UINT           uNewState;
     815  LPCITEMIDLIST  pidl;
     816  LPDWORD        lpdwUser;
     817} SFVSELECTSTATE, * LPSFVSELECTSTATE;
     818typedef const SFVSELECTSTATE * LPCSFVSELECTSTATE;
     819
     820/* SFVCB_COPYHOOKCALLBACK structure */
     821typedef struct
     822{
     823  HWND    hwnd;
     824  UINT    wFunc;
     825  UINT    wFlags;
     826  LPCSTR  pszSrcFile;
     827  DWORD   dwSrcAttribs;
     828  LPCSTR  pszDestFile;
     829  DWORD   dwDestAttribs;
     830} SFVCOPYHOOKINFO, * LPSFVCOPYHOOKINFO;
     831typedef const SFVCOPYHOOKINFO * LPCSFVCOPYHOOKINFO;
     832
     833/* SFVCB_GETDETAILSOF structure */
     834typedef struct
     835{
     836  LPCITEMIDLIST  pidl;
     837  int            fmt;
     838  int            cx;
     839  STRRET         lpText;
     840} SFVCOLUMNINFO, * LPSFVCOLUMNINFO;
     841
     842int WINAPI SHShellFolderView_Message(
     843        HWND hwndCabinet,
     844        DWORD dwMessage,
     845        DWORD dwParam);
     846
     847/* SHShellFolderView_Message messages */
     848#define SFVM_REARRANGE          0x0001
     849#define SFVM_GETARRANGECOLUMN   0x0002
     850#define SFVM_ADDOBJECT          0x0003
     851#define SFVM_GETITEMCOUNT       0x0004
     852#define SFVM_GETITEMPIDL        0x0005
     853#define SFVM_REMOVEOBJECT       0x0006
     854#define SFVM_UPDATEOBJECT       0x0007
     855#define SFVM_SETREDRAW          0x0008
     856#define SFVM_GETSELECTEDOBJECTS 0x0009
     857#define SFVM_ISDROPONSOURCE     0x000A
     858#define SFVM_MOVEICONS          0x000B
     859#define SFVM_GETDRAGPOINT       0x000C
     860#define SFVM_GETDROPPOINT       0x000D
     861#define SFVM_SETOBJECTPOS       0x000E
     862#define SFVM_ISDROPONBACKGROUND 0x000F
     863#define SFVM_CUTOBJECTS         0x0010
     864#define SFVM_TOGGLEAUTOARRANGE  0x0011
     865#define SFVM_LINEUPICONS        0x0012
     866#define SFVM_GETAUTOARRANGE     0x0013
     867#define SFVM_GETSELECTEDCOUNT   0x0014
     868#define SFVM_GETITEMSPACING     0x0015
     869#define SFVM_REFRESHOBJECT      0x0016
     870#define SFVM_SETCLIPBOARDPOINTS 0x0017
     871
     872/****************************************************************************
     873 * Misc Stuff
     874 */
     875
     876/* SHWaitForFileToOpen flags */
     877#define SHWFF_ADD     0x01
     878#define SHWFF_REMOVE  0x02
     879#define SHWFF_WAIT    0x04
     880
     881BOOL WINAPI SHWaitForFileToOpen(
     882        LPCITEMIDLIST pidl,
     883        DWORD dwFlags,
     884        DWORD dwTimeout);
     885
     886WORD WINAPI ArrangeWindows(
     887        HWND hwndParent,
     888        DWORD dwReserved,
     889        LPCRECT lpRect,
     890        WORD cKids,
     891        CONST HWND * lpKids);
     892
     893/* RegisterShellHook types */
     894#define RSH_DEREGISTER        0
     895#define RSH_REGISTER          1
     896#define RSH_REGISTER_PROGMAN  2
     897#define RSH_REGISTER_TASKMAN  3
     898
     899BOOL WINAPI RegisterShellHook(
     900        HWND hWnd,
     901        DWORD dwType);
     902
     903/* SHCreateDefClassObject callback function */
     904//typedef HRESULT CALLBACK (*LPFNCDCOCALLBACK)(
     905typedef HRESULT (CALLBACK *LPFNCDCOCALLBACK)(
     906        LPUNKNOWN pUnkOuter,
     907        REFIID riidObject,
     908        LPVOID *ppvObject);
     909
     910HRESULT WINAPI SHCreateDefClassObject(
     911        REFIID riidFactory,
     912        LPVOID *ppvFactory,
     913        LPFNCDCOCALLBACK lpfnCallback,
     914        LPDWORD lpdwUsage,
     915        REFIID riidObject);
     916
     917HRESULT WINAPI SHCoCreateInstance(
     918        LPCSTR lpszClsid,
     919        REFCLSID rClsid,
     920        LPUNKNOWN pUnkOuter,
     921        REFIID riid,
     922        LPVOID *ppv);
     923
     924void WINAPI SHFreeUnusedLibraries();
     925
     926/* SHCreateLinks flags */
     927#define SHCLF_PREFIXNAME       0x01
     928#define SHCLF_CREATEONDESKTOP  0x02
     929
     930HRESULT WINAPI SHCreateLinks(
     931        HWND hWnd,
     932        LPCSTR lpszDir,
     933        LPDATAOBJECT lpDataObject,
     934        UINT uFlags,
     935        LPITEMIDLIST *lppidlLinks);
     936
     937/* SHGetNewLinkInfo flags */
     938#define SHGNLI_PIDL        0x01
     939#define SHGNLI_PREFIXNAME  0x02
     940#define SHGNLI_NOUNIQUE    0x04
     941
     942BOOL WINAPI SHGetNewLinkInfoA(
     943        LPCSTR pszLinkTo,
     944        LPCSTR pszDir,
     945        LPSTR pszName,
     946        BOOL *pfMustCopy,
     947        UINT uFlags);
     948
     949BOOL WINAPI SHGetNewLinkInfoW(
     950        LPCWSTR pszLinkTo,
     951        LPCWSTR pszDir,
     952        LPWSTR pszName,
     953        BOOL *pfMustCopy,
     954        UINT uFlags);
     955#define SHGetNewLinkInfo WINELIB_NAME_AW(SHGetNewLinkInfo)
     956
     957/* policy functions */
     958BOOL WINAPI SHInitRestricted(LPSTR, LPSTR);
     959
    56960#ifdef __cplusplus
    57961} /* extern "C" */
Note: See TracChangeset for help on using the changeset viewer.