123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182 |
- /*
- * Copyright (C) the Wine project
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- #ifndef __WINE_SHLOBJ_H
- #define __WINE_SHLOBJ_H
- #include <ole2.h>
- #include <commctrl.h>
- #include <prsht.h>
- #include <shlguid.h>
- #ifdef __cplusplus
- extern "C" {
- #endif /* defined(__cplusplus) */
- /* Except for specific structs, this header is byte packed */
- #include <pshpack1.h>
- #include <shtypes.h>
- #include <shobjidl.h>
- LPVOID WINAPI SHAlloc(ULONG);
- HRESULT WINAPI SHCoCreateInstance(LPCWSTR,const CLSID*,IUnknown*,REFIID,LPVOID*);
- DWORD WINAPI SHCLSIDFromStringA(LPCSTR,CLSID*);
- DWORD WINAPI SHCLSIDFromStringW(LPCWSTR,CLSID*);
- #define SHCLSIDFromString WINELIB_NAME_AW(SHCLSIDFromString)
- HRESULT WINAPI SHCreateStdEnumFmtEtc(DWORD,const FORMATETC *,IEnumFORMATETC**);
- BOOL WINAPI SHFindFiles(LPCITEMIDLIST,LPCITEMIDLIST);
- DWORD WINAPI SHFormatDrive(HWND,UINT,UINT,UINT);
- void WINAPI SHFree(LPVOID);
- BOOL WINAPI GetFileNameFromBrowse(HWND,LPSTR,DWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR);
- BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR);
- BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR);
- #define SHGetPathFromIDList WINELIB_NAME_AW(SHGetPathFromIDList)
- INT WINAPI SHHandleUpdateImage(LPCITEMIDLIST);
- HRESULT WINAPI SHILCreateFromPath(LPCWSTR,LPITEMIDLIST*,DWORD*);
- HRESULT WINAPI SHLoadOLE(LPARAM);
- LPITEMIDLIST WINAPI SHSimpleIDListFromPath(LPCWSTR);
- int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder*,LPCITEMIDLIST,int*);
- HRESULT WINAPI SHStartNetConnectionDialog(HWND,LPCSTR,DWORD);
- VOID WINAPI SHUpdateImageA(LPCSTR,INT,UINT,INT);
- VOID WINAPI SHUpdateImageW(LPCWSTR,INT,UINT,INT);
- #define SHUpdateImage WINELIB_NAME_AW(SHUpdateImage)
- int WINAPI RestartDialog(HWND,LPCWSTR,DWORD);
- int WINAPI RestartDialogEx(HWND,LPCWSTR,DWORD,DWORD);
- #define SHFMT_ERROR 0xFFFFFFFFL /* Error on last format, drive may be formatable */
- #define SHFMT_CANCEL 0xFFFFFFFEL /* Last format was canceled */
- #define SHFMT_NOFORMAT 0xFFFFFFFDL /* Drive is not formatable */
- /* SHObjectProperties flags */
- #define SHOP_PRINTERNAME 0x01
- #define SHOP_FILEPATH 0x02
- #define SHOP_VOLUMEGUID 0x04
- BOOL WINAPI SHObjectProperties(HWND,DWORD,LPCWSTR,LPCWSTR);
- #define PCS_FATAL 0x80000000
- #define PCS_REPLACEDCHAR 0x00000001
- #define PCS_REMOVEDCHAR 0x00000002
- #define PCS_TRUNCATED 0x00000004
- #define PCS_PATHTOOLONG 0x00000008
- int WINAPI PathCleanupSpec(LPCWSTR pszDir, LPWSTR pszSpec);
- /*****************************************************************************
- * Predeclare interfaces
- */
- typedef struct IShellIcon IShellIcon, *LPSHELLICON;
- /*****************************************************************************
- * IContextMenu interface
- */
- /* DATAOBJECT_InitShellIDList*/
- #define CFSTR_SHELLIDLIST "Shell IDList Array" /* CF_IDLIST */
- extern UINT cfShellIDList;
- typedef struct
- { UINT cidl;
- UINT aoffset[1];
- } CIDA, *LPIDA;
- #define CFSTR_SHELLIDLISTOFFSET "Shell Object Offsets" /* CF_OBJECTPOSITIONS */
- #define CFSTR_NETRESOURCES "Net Resource" /* CF_NETRESOURCE */
- /* DATAOBJECT_InitFileGroupDesc */
- #define CFSTR_FILEDESCRIPTORA "FileGroupDescriptor" /* CF_FILEGROUPDESCRIPTORA */
- extern UINT cfFileGroupDesc;
- #define CFSTR_FILEDESCRIPTORW "FileGroupDescriptorW" /* CF_FILEGROUPDESCRIPTORW */
- /* DATAOBJECT_InitFileContents*/
- #define CFSTR_FILECONTENTS "FileContents" /* CF_FILECONTENTS */
- extern UINT cfFileContents;
- #define CFSTR_FILENAMEA "FileName" /* CF_FILENAMEA */
- #define CFSTR_FILENAMEW "FileNameW" /* CF_FILENAMEW */
- #define CFSTR_PRINTERGROUP "PrinterFriendlyName" /* CF_PRINTERS */
- #define CFSTR_FILENAMEMAPA "FileNameMap" /* CF_FILENAMEMAPA */
- #define CFSTR_FILENAMEMAPW "FileNameMapW" /* CF_FILENAMEMAPW */
- #define CFSTR_SHELLURL "UniformResourceLocator"
- #define CFSTR_PREFERREDDROPEFFECT "Preferred DropEffect"
- #define CFSTR_PERFORMEDDROPEFFECT "Performed DropEffect"
- #define CFSTR_PASTESUCCEEDED "Paste Succeeded"
- #define CFSTR_INDRAGLOOP "InShellDragLoop"
- #define CFSTR_FILENAME WINELIB_NAME_AW(CFSTR_FILENAME)
- /************************************************************************
- * IShellView interface
- */
- typedef GUID SHELLVIEWID;
- #define SV_CLASS_NAME ("SHELLDLL_DefView")
- #define FCIDM_SHVIEWFIRST 0x0000
- /* undocumented */
- #define FCIDM_SHVIEW_ARRANGE 0x7001
- #define FCIDM_SHVIEW_DELETE 0x7011
- #define FCIDM_SHVIEW_PROPERTIES 0x7013
- #define FCIDM_SHVIEW_CUT 0x7018
- #define FCIDM_SHVIEW_COPY 0x7019
- #define FCIDM_SHVIEW_INSERT 0x701A
- #define FCIDM_SHVIEW_UNDO 0x701B
- #define FCIDM_SHVIEW_INSERTLINK 0x701C
- #define FCIDM_SHVIEW_SELECTALL 0x7021
- #define FCIDM_SHVIEW_INVERTSELECTION 0x7022
- #define FCIDM_SHVIEW_BIGICON 0x7029
- #define FCIDM_SHVIEW_SMALLICON 0x702A
- #define FCIDM_SHVIEW_LISTVIEW 0x702B
- #define FCIDM_SHVIEW_REPORTVIEW 0x702C
- /* 0x7030-0x703f are used by the shellbrowser */
- #define FCIDM_SHVIEW_AUTOARRANGE 0x7031
- #define FCIDM_SHVIEW_SNAPTOGRID 0x7032
- #define FCIDM_SHVIEW_HELP 0x7041
- #define FCIDM_SHVIEW_RENAME 0x7050
- #define FCIDM_SHVIEW_CREATELINK 0x7051
- #define FCIDM_SHVIEW_NEWLINK 0x7052
- #define FCIDM_SHVIEW_NEWFOLDER 0x7053
- #define FCIDM_SHVIEW_REFRESH 0x7100 /* FIXME */
- #define FCIDM_SHVIEW_EXPLORE 0x7101 /* FIXME */
- #define FCIDM_SHVIEW_OPEN 0x7102 /* FIXME */
- #define FCIDM_SHVIEWLAST 0x7fff
- #define FCIDM_BROWSERFIRST 0xA000
- /* undocumented toolbar items from stddlg's*/
- #define FCIDM_TB_UPFOLDER 0xA001
- #define FCIDM_TB_NEWFOLDER 0xA002
- #define FCIDM_TB_SMALLICON 0xA003
- #define FCIDM_TB_REPORTVIEW 0xA004
- #define FCIDM_TB_DESKTOP 0xA005 /* FIXME */
- #define FCIDM_BROWSERLAST 0xbf00
- #define FCIDM_GLOBALFIRST 0x8000
- #define FCIDM_GLOBALLAST 0x9fff
- /*
- * Global submenu IDs and separator IDs
- */
- #define FCIDM_MENU_FILE (FCIDM_GLOBALFIRST+0x0000)
- #define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040)
- #define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080)
- #define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081)
- #define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0)
- #define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1)
- #define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100)
- #define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140)
- #define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150)
- #define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)
- /* control IDs known to the view */
- #define FCIDM_TOOLBAR (FCIDM_BROWSERFIRST + 0)
- #define FCIDM_STATUS (FCIDM_BROWSERFIRST + 1)
- /****************************************************************************
- * IShellIcon interface
- */
- #define INTERFACE IShellIcon
- DECLARE_INTERFACE_(IShellIcon,IUnknown)
- {
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IShellIcon methods ***/
- STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST pidl, UINT flags, LPINT lpIconIndex) PURE;
- };
- #undef INTERFACE
- #if !defined(__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
- #define IShellIcon_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
- #define IShellIcon_AddRef(p) (p)->lpVtbl->AddRef(p)
- #define IShellIcon_Release(p) (p)->lpVtbl->Release(p)
- /*** IShellIcon methods ***/
- #define IShellIcon_GetIconOf(p,a,b,c) (p)->lpVtbl->GetIconOf(p,a,b,c)
- #endif
- /****************************************************************************
- * SHAddToRecentDocs API
- */
- #define SHARD_PIDL 0x00000001L
- #define SHARD_PATHA 0x00000002L
- #define SHARD_PATHW 0x00000003L
- #define SHARD_PATH WINELIB_NAME_AW(SHARD_PATH)
- void WINAPI SHAddToRecentDocs(UINT uFlags, LPCVOID pv);
- /****************************************************************************
- * SHBrowseForFolder API
- */
- typedef INT (CALLBACK *BFFCALLBACK)(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);
- #include <pshpack8.h>
- typedef struct tagBROWSEINFOA {
- HWND hwndOwner;
- LPCITEMIDLIST pidlRoot;
- LPSTR pszDisplayName;
- LPCSTR lpszTitle;
- UINT ulFlags;
- BFFCALLBACK lpfn;
- LPARAM lParam;
- INT iImage;
- } BROWSEINFOA, *PBROWSEINFOA, *LPBROWSEINFOA;
- typedef struct tagBROWSEINFOW {
- HWND hwndOwner;
- LPCITEMIDLIST pidlRoot;
- LPWSTR pszDisplayName;
- LPCWSTR lpszTitle;
- UINT ulFlags;
- BFFCALLBACK lpfn;
- LPARAM lParam;
- INT iImage;
- } BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW;
- #define BROWSEINFO WINELIB_NAME_AW(BROWSEINFO)
- #define PBROWSEINFO WINELIB_NAME_AW(PBROWSEINFO)
- #define LPBROWSEINFO WINELIB_NAME_AW(LPBROWSEINFO)
- #include <poppack.h>
- /* Browsing for directory. */
- #define BIF_RETURNONLYFSDIRS 0x0001
- #define BIF_DONTGOBELOWDOMAIN 0x0002
- #define BIF_STATUSTEXT 0x0004
- #define BIF_RETURNFSANCESTORS 0x0008
- #define BIF_EDITBOX 0x0010
- #define BIF_VALIDATE 0x0020
- #define BIF_NEWDIALOGSTYLE 0x0040
- #define BIF_BROWSEFORCOMPUTER 0x1000
- #define BIF_BROWSEFORPRINTER 0x2000
- #define BIF_BROWSEINCLUDEFILES 0x4000
- /* message from browser */
- #define BFFM_INITIALIZED 1
- #define BFFM_SELCHANGED 2
- #define BFFM_VALIDATEFAILEDA 3 /* lParam:szPath ret:1(cont),0(EndDialog) */
- #define BFFM_VALIDATEFAILEDW 4 /* lParam:wzPath ret:1(cont),0(EndDialog) */
- /* messages to browser */
- #define BFFM_SETSTATUSTEXTA (WM_USER+100)
- #define BFFM_ENABLEOK (WM_USER+101)
- #define BFFM_SETSELECTIONA (WM_USER+102)
- #define BFFM_SETSELECTIONW (WM_USER+103)
- #define BFFM_SETSTATUSTEXTW (WM_USER+104)
- #define BFFM_SETOKTEXT (WM_USER+105)
- #define BFFM_SETEXPANDED (WM_USER+106)
- LPITEMIDLIST WINAPI SHBrowseForFolderA(LPBROWSEINFOA lpbi);
- LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi);
- #define SHBrowseForFolder WINELIB_NAME_AW(SHBrowseForFolder)
- #define BFFM_SETSTATUSTEXT WINELIB_NAME_AW(BFFM_SETSTATUSTEXT)
- #define BFFM_SETSELECTION WINELIB_NAME_AW(BFFM_SETSELECTION)
- #define BFFM_VALIDATEFAILED WINELIB_NAME_AW(BFFM_VALIDATEFAILED)
- /**********************************************************************
- * SHCreateShellFolderViewEx API
- */
- typedef HRESULT (CALLBACK *LPFNVIEWCALLBACK)(
- IShellView* dwUser,
- IShellFolder* pshf,
- HWND hWnd,
- UINT uMsg,
- WPARAM wParam,
- LPARAM lParam);
- typedef struct _CSFV
- {
- UINT cbSize;
- IShellFolder* pshf;
- IShellView* psvOuter;
- LPCITEMIDLIST pidl;
- LONG lEvents;
- LPFNVIEWCALLBACK pfnCallback;
- FOLDERVIEWMODE fvm;
- } CSFV, *LPCSFV;
- HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV pshfvi, IShellView **ppshv);
- /* SHCreateShellFolderViewEx callback messages */
- #define SFVM_MERGEMENU 1
- #define SFVM_INVOKECOMMAND 2
- #define SFVM_GETHELPTEXT 3
- #define SFVM_GETTOOLTIPTEXT 4
- #define SFVM_GETBUTTONINFO 5
- #define SFVM_GETBUTTONS 6
- #define SFVM_INITMENUPOPUP 7
- #define SFVM_SELECTIONCHANGED 8 /* undocumented */
- #define SFVM_DRAWMENUITEM 9 /* undocumented */
- #define SFVM_MEASUREMENUITEM 10 /* undocumented */
- #define SFVM_EXITMENULOOP 11 /* undocumented */
- #define SFVM_VIEWRELEASE 12 /* undocumented */
- #define SFVM_GETNAMELENGTH 13 /* undocumented */
- #define SFVM_FSNOTIFY 14
- #define SFVM_WINDOWCREATED 15
- #define SFVM_WINDOWCLOSING 16 /* undocumented */
- #define SFVM_LISTREFRESHED 17 /* undocumented */
- #define SFVM_WINDOWFOCUSED 18 /* undocumented */
- #define SFVM_REGISTERCOPYHOOK 20 /* undocumented */
- #define SFVM_COPYHOOKCALLBACK 21 /* undocumented */
- #define SFVM_GETDETAILSOF 23
- #define SFVM_COLUMNCLICK 24
- #define SFVM_QUERYFSNOTIFY 25
- #define SFVM_DEFITEMCOUNT 26
- #define SFVM_DEFVIEWMODE 27
- #define SFVM_UNMERGEFROMMENU 28
- #define SFVM_ADDINGOBJECT 29 /* undocumented */
- #define SFVM_REMOVINGOBJECT 30 /* undocumented */
- #define SFVM_UPDATESTATUSBAR 31
- #define SFVM_BACKGROUNDENUM 32
- #define SFVM_GETCOMMANDDIR 33 /* undocumented */
- #define SFVM_GETCOLUMNSTREAM 34 /* undocumented */
- #define SFVM_CANSELECTALL 35 /* undocumented */
- #define SFVM_DIDDRAGDROP 36
- #define SFVM_ISSTRICTREFRESH 37 /* undocumented */
- #define SFVM_ISCHILDOBJECT 38 /* undocumented */
- #define SFVM_SETISFV 39
- #define SFVM_GETEXTVIEWS 40 /* undocumented */
- #define SFVM_THISIDLIST 41
- #define SFVM_ADDPROPERTYPAGES 47
- #define SFVM_BACKGROUNDENUMDONE 48
- #define SFVM_GETNOTIFY 49
- #define SFVM_GETSORTDEFAULTS 53
- #define SFVM_SIZE 57
- #define SFVM_GETZONE 58
- #define SFVM_GETPANE 59
- #define SFVM_GETHELPTOPIC 63
- #define SFVM_GETANIMATION 68
- #define SFVM_GET_CUSTOMVIEWINFO 77 /* undocumented */
- #define SFVM_ENUMERATEDITEMS 79 /* undocumented */
- #define SFVM_GET_VIEW_DATA 80 /* undocumented */
- #define SFVM_GET_WEBVIEW_LAYOUT 82 /* undocumented */
- #define SFVM_GET_WEBVIEW_CONTENT 83 /* undocumented */
- #define SFVM_GET_WEBVIEW_TASKS 84 /* undocumented */
- #define SFVM_GET_WEBVIEW_THEME 86 /* undocumented */
- #define SFVM_GETDEFERREDVIEWSETTINGS 92 /* undocumented */
- /* Types and definitions for the SFM_* parameters */
- #include <pshpack8.h>
- #define QCMINFO_PLACE_BEFORE 0
- #define QCMINFO_PLACE_AFTER 1
- typedef struct _QCMINFO_IDMAP_PLACEMENT
- {
- UINT id;
- UINT fFlags;
- } QCMINFO_IDMAP_PLACEMENT;
- typedef struct _QCMINFO_IDMAP
- {
- UINT nMaxIds;
- QCMINFO_IDMAP_PLACEMENT pIdList[1];
- } QCMINFO_IDMAP;
- typedef struct _QCMINFO
- {
- HMENU hmenu;
- UINT indexMenu;
- UINT idCmdFirst;
- UINT idCmdLast;
- QCMINFO_IDMAP const* pIdMap;
- } QCMINFO, *LPQCMINFO;
- #define TBIF_DEFAULT 0x00000000
- #define TBIF_APPEND 0x00000000
- #define TBIF_PREPEND 0x00000001
- #define TBIF_REPLACE 0x00000002
- #define TBIF_INTERNETBAR 0x00010000
- #define TBIF_STANDARDTOOLBAR 0x00020000
- #define TBIF_NOTOOLBAR 0x00030000
- typedef struct _TBINFO
- {
- UINT cbuttons;
- UINT uFlags;
- } TBINFO, *LPTBINFO;
- #include <poppack.h>
- /****************************************************************************
- * SHShellFolderView_Message API
- */
- LRESULT WINAPI SHShellFolderView_Message(
- HWND hwndCabinet,
- UINT uMessage,
- LPARAM lParam);
- /* SHShellFolderView_Message messages */
- #define SFVM_REARRANGE 0x0001
- #define SFVM_GETARRANGECOLUMN 0x0002 /* undocumented */
- #define SFVM_ADDOBJECT 0x0003
- #define SFVM_GETITEMCOUNT 0x0004 /* undocumented */
- #define SFVM_GETITEMPIDL 0x0005 /* undocumented */
- #define SFVM_REMOVEOBJECT 0x0006
- #define SFVM_UPDATEOBJECT 0x0007
- #define SFVM_SETREDRAW 0x0008 /* undocumented */
- #define SFVM_GETSELECTEDOBJECTS 0x0009
- #define SFVM_ISDROPONSOURCE 0x000A /* undocumented */
- #define SFVM_MOVEICONS 0x000B /* undocumented */
- #define SFVM_GETDRAGPOINT 0x000C /* undocumented */
- #define SFVM_GETDROPPOINT 0x000D /* undocumented */
- #define SFVM_SETITEMPOS 0x000E
- #define SFVM_ISDROPONBACKGROUND 0x000F /* undocumented */
- #define SFVM_SETCLIPBOARD 0x0010
- #define SFVM_TOGGLEAUTOARRANGE 0x0011 /* undocumented */
- #define SFVM_LINEUPICONS 0x0012 /* undocumented */
- #define SFVM_GETAUTOARRANGE 0x0013 /* undocumented */
- #define SFVM_GETSELECTEDCOUNT 0x0014 /* undocumented */
- #define SFVM_GETITEMSPACING 0x0015 /* undocumented */
- #define SFVM_REFRESHOBJECT 0x0016 /* undocumented */
- #define SFVM_SETPOINTS 0x0017
- /****************************************************************************
- * SHGetDataFromIDList API
- */
- #define SHGDFIL_FINDDATA 1
- #define SHGDFIL_NETRESOURCE 2
- #define SHGDFIL_DESCRIPTIONID 3
- #define SHDID_ROOT_REGITEM 1
- #define SHDID_FS_FILE 2
- #define SHDID_FS_DIRECTORY 3
- #define SHDID_FS_OTHER 4
- #define SHDID_COMPUTER_DRIVE35 5
- #define SHDID_COMPUTER_DRIVE525 6
- #define SHDID_COMPUTER_REMOVABLE 7
- #define SHDID_COMPUTER_FIXED 8
- #define SHDID_COMPUTER_NETDRIVE 9
- #define SHDID_COMPUTER_CDROM 10
- #define SHDID_COMPUTER_RAMDISK 11
- #define SHDID_COMPUTER_OTHER 12
- #define SHDID_NET_DOMAIN 13
- #define SHDID_NET_SERVER 14
- #define SHDID_NET_SHARE 15
- #define SHDID_NET_RESTOFNET 16
- #define SHDID_NET_OTHER 17
- #define SHDID_COMPUTER_IMAGING 18
- #define SHDID_COMPUTER_AUDIO 19
- #define SHDID_COMPUTER_SHAREDDOCS 20
- #include <pshpack8.h>
- typedef struct _SHDESCRIPTIONID
- { DWORD dwDescriptionId;
- CLSID clsid;
- } SHDESCRIPTIONID, *LPSHDESCRIPTIONID;
- #include <poppack.h>
- HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
- HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int nFormat, LPVOID pv, int cb);
- #define SHGetDataFromIDList WINELIB_NAME_AW(SHGetDataFromIDList)
- BOOL WINAPI SHGetSpecialFolderPathA (HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate);
- BOOL WINAPI SHGetSpecialFolderPathW (HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate);
- #define SHGetSpecialFolderPath WINELIB_NAME_AW(SHGetSpecialFolderPath)
- HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal) ;
- /**********************************************************************
- * SHGetSetSettings ()
- */
- typedef struct
- {
- BOOL fShowAllObjects : 1;
- BOOL fShowExtensions : 1;
- BOOL fNoConfirmRecycle : 1;
- BOOL fShowSysFiles : 1;
- BOOL fShowCompColor : 1;
- BOOL fDoubleClickInWebView : 1;
- BOOL fDesktopHTML : 1;
- BOOL fWin95Classic : 1;
- BOOL fDontPrettyPath : 1;
- BOOL fShowAttribCol : 1;
- BOOL fMapNetDrvBtn : 1;
- BOOL fShowInfoTip : 1;
- BOOL fHideIcons : 1;
- BOOL fWebView : 1;
- BOOL fFilter : 1;
- BOOL fShowSuperHidden : 1;
- BOOL fNoNetCrawling : 1;
- DWORD :0; /* Required for proper binary layout with gcc */
- DWORD dwWin95Unused;
- UINT uWin95Unused;
- LONG lParamSort;
- int iSortDirection;
- UINT version;
- UINT uNotUsed;
- BOOL fSepProcess: 1;
- BOOL fStartPanelOn: 1;
- BOOL fShowStartPage: 1;
- UINT fSpareFlags : 13;
- UINT :0; /* Required for proper binary layout with gcc */
- } SHELLSTATE, *LPSHELLSTATE;
- /**********************************************************************
- * SHGetSettings ()
- */
- typedef struct
- { BOOL fShowAllObjects : 1;
- BOOL fShowExtensions : 1;
- BOOL fNoConfirmRecycle : 1;
- BOOL fShowSysFiles : 1;
- BOOL fShowCompColor : 1;
- BOOL fDoubleClickInWebView : 1;
- BOOL fDesktopHTML : 1;
- BOOL fWin95Classic : 1;
- BOOL fDontPrettyPath : 1;
- BOOL fShowAttribCol : 1;
- BOOL fMapNetDrvBtn : 1;
- BOOL fShowInfoTip : 1;
- BOOL fHideIcons : 1;
- UINT fRestFlags : 3;
- UINT :0; /* Required for proper binary layout with gcc */
- } SHELLFLAGSTATE, * LPSHELLFLAGSTATE;
- VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask);
- #define SSF_SHOWALLOBJECTS 0x0001
- #define SSF_SHOWEXTENSIONS 0x0002
- #define SSF_SHOWCOMPCOLOR 0x0008
- #define SSF_SHOWSYSFILES 0x0020
- #define SSF_DOUBLECLICKINWEBVIEW 0x0080
- #define SSF_SHOWATTRIBCOL 0x0100
- #define SSF_DESKTOPHTML 0x0200
- #define SSF_WIN95CLASSIC 0x0400
- #define SSF_DONTPRETTYPATH 0x0800
- #define SSF_SHOWINFOTIP 0x2000
- #define SSF_MAPNETDRVBUTTON 0x1000
- #define SSF_NOCONFIRMRECYCLE 0x8000
- #define SSF_HIDEICONS 0x4000
- /****************************************************************************
- * SHRestricted API
- */
- typedef enum RESTRICTIONS
- {
- REST_NONE = 0x00000000,
- REST_NORUN = 0x00000001,
- REST_NOCLOSE = 0x00000002,
- REST_NOSAVESET = 0x00000004,
- REST_NOFILEMENU = 0x00000008,
- REST_NOSETFOLDERS = 0x00000010,
- REST_NOSETTASKBAR = 0x00000020,
- REST_NODESKTOP = 0x00000040,
- REST_NOFIND = 0x00000080,
- REST_NODRIVES = 0x00000100,
- REST_NODRIVEAUTORUN = 0x00000200,
- REST_NODRIVETYPEAUTORUN = 0x00000400,
- REST_NONETHOOD = 0x00000800,
- REST_STARTBANNER = 0x00001000,
- REST_RESTRICTRUN = 0x00002000,
- REST_NOPRINTERTABS = 0x00004000,
- REST_NOPRINTERDELETE = 0x00008000,
- REST_NOPRINTERADD = 0x00010000,
- REST_NOSTARTMENUSUBFOLDERS = 0x00020000,
- REST_MYDOCSONNET = 0x00040000,
- REST_NOEXITTODOS = 0x00080000,
- REST_ENFORCESHELLEXTSECURITY = 0x00100000,
- REST_LINKRESOLVEIGNORELINKINFO = 0x00200000,
- REST_NOCOMMONGROUPS = 0x00400000,
- REST_SEPARATEDESKTOPPROCESS = 0x00800000,
- REST_NOWEB = 0x01000000,
- REST_NOTRAYCONTEXTMENU = 0x02000000,
- REST_NOVIEWCONTEXTMENU = 0x04000000,
- REST_NONETCONNECTDISCONNECT = 0x08000000,
- REST_STARTMENULOGOFF = 0x10000000,
- REST_NOSETTINGSASSIST = 0x20000000,
- REST_NOINTERNETICON = 0x40000001,
- REST_NORECENTDOCSHISTORY,
- REST_NORECENTDOCSMENU,
- REST_NOACTIVEDESKTOP,
- REST_NOACTIVEDESKTOPCHANGES,
- REST_NOFAVORITESMENU,
- REST_CLEARRECENTDOCSONEXIT,
- REST_CLASSICSHELL,
- REST_NOCUSTOMIZEWEBVIEW,
- REST_NOHTMLWALLPAPER = 0x40000010,
- REST_NOCHANGINGWALLPAPER,
- REST_NODESKCOMP,
- REST_NOADDDESKCOMP,
- REST_NODELDESKCOMP,
- REST_NOCLOSEDESKCOMP,
- REST_NOCLOSE_DRAGDROPBAND,
- REST_NOMOVINGBAND,
- REST_NOEDITDESKCOMP,
- REST_NORESOLVESEARCH,
- REST_NORESOLVETRACK,
- REST_FORCECOPYACLWITHFILE,
- REST_NOLOGO3CHANNELNOTIFY,
- REST_NOFORGETSOFTWAREUPDATE,
- REST_NOSETACTIVEDESKTOP,
- REST_NOUPDATEWINDOWS,
- REST_NOCHANGESTARMENU, /* 0x40000020 */
- REST_NOFOLDEROPTIONS,
- REST_HASFINDCOMPUTERS,
- REST_INTELLIMENUS,
- REST_RUNDLGMEMCHECKBOX,
- REST_ARP_ShowPostSetup,
- REST_NOCSC,
- REST_NOCONTROLPANEL,
- REST_ENUMWORKGROUP,
- REST_ARP_NOARP,
- REST_ARP_NOREMOVEPAGE,
- REST_ARP_NOADDPAGE,
- REST_ARP_NOWINSETUPPAGE,
- REST_GREYMSIADS,
- REST_NOCHANGEMAPPEDDRIVELABEL,
- REST_NOCHANGEMAPPEDDRIVECOMMENT,
- REST_MaxRecentDocs, /* 0x40000030 */
- REST_NONETWORKCONNECTIONS,
- REST_FORCESTARTMENULOGOFF,
- REST_NOWEBVIEW,
- REST_NOCUSTOMIZETHISFOLDER,
- REST_NOENCRYPTION,
- REST_ALLOWFRENCHENCRYPTION, /* not documented */
- REST_DONTSHOWSUPERHIDDEN,
- REST_NOSHELLSEARCHBUTTON,
- REST_NOHARDWARETAB,
- REST_NORUNASINSTALLPROMPT,
- REST_PROMPTRUNASINSTALLNETPATH,
- REST_NOMANAGEMYCOMPUTERVERB,
- REST_NORECENTDOCSNETHOOD,
- REST_DISALLOWRUN,
- REST_NOWELCOMESCREEN,
- REST_RESTRICTCPL, /* 0x40000040 */
- REST_DISALLOWCPL,
- REST_NOSMBALLOONTIP,
- REST_NOSMHELP,
- REST_NOWINKEYS,
- REST_NOENCRYPTONMOVE,
- REST_NOLOCALMACHINERUN,
- REST_NOCURRENTUSERRUN,
- REST_NOLOCALMACHINERUNONCE,
- REST_NOCURRENTUSERRUNONCE,
- REST_FORCEACTIVEDESKTOPON,
- REST_NOCOMPUTERSNEARME,
- REST_NOVIEWONDRIVE,
- REST_NONETCRAWL,
- REST_NOSHAREDDOCUMENTS,
- REST_NOSMMYDOCS,
- REST_NOSMMYPICS, /* 0x40000050 */
- REST_ALLOWBITBUCKDRIVES,
- REST_NONLEGACYSHELLMODE,
- REST_NOCONTROLPANELBARRICADE,
- REST_NOSTARTPAGE,
- REST_NOAUTOTRAYNOTIFY,
- REST_NOTASKGROUPING,
- REST_NOCDBURNING,
- REST_MYCOMPNOPROP,
- REST_MYDOCSNOPROP,
- REST_NOSTARTPANEL,
- REST_NODISPLAYAPPEARANCEPAGE,
- REST_NOTHEMESTAB,
- REST_NOVISUALSTYLECHOICE,
- REST_NOSIZECHOICE,
- REST_NOCOLORCHOICE,
- REST_SETVISUALSTYLE, /* 0x40000060 */
- REST_STARTRUNNOHOMEPATH,
- REST_NOUSERNAMEINSTARTPANEL,
- REST_NOMYCOMPUTERICON,
- REST_NOSMNETWORKPLACES,
- REST_NOSMPINNEDLIST,
- REST_NOSMMYMUSIC,
- REST_NOSMEJECTPC,
- REST_NOSMMOREPROGRAMS,
- REST_NOSMMFUPROGRAMS,
- REST_NOTRAYITEMSDISPLAY,
- REST_NOTOOLBARSONTASKBAR,
- /* 0x4000006C
- 0x4000006D
- 0x4000006E */
- REST_NOSMCONFIGUREPROGRAMS = 0x4000006F,
- REST_HIDECLOCK, /* 0x40000070 */
- REST_NOLOWDISKSPACECHECKS,
- REST_NOENTIRENETWORK,
- REST_NODESKTOPCLEANUP,
- REST_BITBUCKNUKEONDELETE,
- REST_BITBUCKCONFIRMDELETE,
- REST_BITBUCKNOPROP,
- REST_NODISPBACKGROUND,
- REST_NODISPSCREENSAVEPG,
- REST_NODISPSETTINGSPG,
- REST_NODISPSCREENSAVEPREVIEW,
- REST_NODISPLAYCPL,
- REST_HIDERUNASVERB,
- REST_NOTHUMBNAILCACHE,
- REST_NOSTRCMPLOGICAL,
- REST_NOPUBLISHWIZARD,
- REST_NOONLINEPRINTSWIZARD, /* 0x40000080 */
- REST_NOWEBSERVICES,
- REST_ALLOWUNHASHEDWEBVIEW,
- REST_ALLOWLEGACYWEBVIEW,
- REST_REVERTWEBVIEWSECURITY,
-
- REST_INHERITCONSOLEHANDLES = 0x40000086,
- REST_NODISCONNECT = 0x41000001,
- REST_NOSECURITY,
- REST_NOFILEASSOCIATE, /* 0x41000003 */
- } RESTRICTIONS;
- DWORD WINAPI SHRestricted(RESTRICTIONS rest);
- /****************************************************************************
- * SHChangeNotify API
- */
- typedef struct _SHChangeNotifyEntry
- {
- LPCITEMIDLIST pidl;
- BOOL fRecursive;
- } SHChangeNotifyEntry;
- #define SHCNE_RENAMEITEM 0x00000001
- #define SHCNE_CREATE 0x00000002
- #define SHCNE_DELETE 0x00000004
- #define SHCNE_MKDIR 0x00000008
- #define SHCNE_RMDIR 0x00000010
- #define SHCNE_MEDIAINSERTED 0x00000020
- #define SHCNE_MEDIAREMOVED 0x00000040
- #define SHCNE_DRIVEREMOVED 0x00000080
- #define SHCNE_DRIVEADD 0x00000100
- #define SHCNE_NETSHARE 0x00000200
- #define SHCNE_NETUNSHARE 0x00000400
- #define SHCNE_ATTRIBUTES 0x00000800
- #define SHCNE_UPDATEDIR 0x00001000
- #define SHCNE_UPDATEITEM 0x00002000
- #define SHCNE_SERVERDISCONNECT 0x00004000
- #define SHCNE_UPDATEIMAGE 0x00008000
- #define SHCNE_DRIVEADDGUI 0x00010000
- #define SHCNE_RENAMEFOLDER 0x00020000
- #define SHCNE_FREESPACE 0x00040000
- #define SHCNE_EXTENDED_EVENT 0x04000000
- #define SHCNE_ASSOCCHANGED 0x08000000
- #define SHCNE_DISKEVENTS 0x0002381F
- #define SHCNE_GLOBALEVENTS 0x0C0581E0
- #define SHCNE_ALLEVENTS 0x7FFFFFFF
- #define SHCNE_INTERRUPT 0x80000000
- #define SHCNEE_ORDERCHANGED 0x0002L
- #define SHCNEE_MSI_CHANGE 0x0004L
- #define SHCNEE_MSI_UNINSTALL 0x0005L
- #define SHCNF_IDLIST 0x0000
- #define SHCNF_PATHA 0x0001
- #define SHCNF_PRINTERA 0x0002
- #define SHCNF_DWORD 0x0003
- #define SHCNF_PATHW 0x0005
- #define SHCNF_PRINTERW 0x0006
- #define SHCNF_TYPE 0x00FF
- #define SHCNF_FLUSH 0x1000
- #define SHCNF_FLUSHNOWAIT 0x2000
- #define SHCNF_PATH WINELIB_NAME_AW(SHCNF_PATH)
- #define SHCNF_PRINTER WINELIB_NAME_AW(SHCNF_PRINTER)
- void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2);
- /*
- * IShellChangeNotify
- */
- typedef struct IShellChangeNotify IShellChangeNotify, *LPSHELLCHANGENOTIFY;
- #define INTERFACE IShellChangeNotify
- DECLARE_INTERFACE_(IShellChangeNotify,IUnknown)
- {
- /*** IUnknown methods ***/
- STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- /*** IShellChangeNotify methods ***/
- STDMETHOD(OnChange)(THIS_ LONG lEvent, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) PURE;
- };
- #undef INTERFACE
- #if !defined(__cplusplus) || defined(CINTERFACE)
- /*** IUnknown methods ***/
- #define IShellChangeNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
- #define IShellChangeNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
- #define IShellChangeNotify_Release(p) (p)->lpVtbl->Release(p)
- /*** IShellChangeNotify methods ***/
- #define IShellChangeNotify_OnChange(p,a,b,c) (p)->lpVtbl->OnChange(p,a,b,c)
- #endif
- typedef struct _SHChangeDWORDAsIDList {
- USHORT cb;
- DWORD dwItem1;
- DWORD dwItem2;
- USHORT cbZero;
- } SHChangeDWORDAsIDList, *LPSHChangeDWORDAsIDList;
- typedef struct _SHChangeProductKeyAsIDList {
- USHORT cb;
- WCHAR wszProductKey[39];
- USHORT cbZero;
- } SHChangeProductKeyAsIDList, *LPSHChangeProductKeyAsIDList;
- ULONG WINAPI SHChangeNotifyRegister(HWND hwnd, int fSources, LONG fEvents, UINT wMsg,
- int cEntries, SHChangeNotifyEntry *pshcne);
- BOOL WINAPI SHChangeNotifyDeregister(ULONG ulID);
- HANDLE WINAPI SHChangeNotification_Lock(HANDLE hChangeNotification, DWORD dwProcessId,
- LPITEMIDLIST **pppidl, LONG *plEvent);
- BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock);
- HRESULT WINAPI SHGetRealIDL(IShellFolder *psf, LPCITEMIDLIST pidlSimple, LPITEMIDLIST * ppidlReal);
- /****************************************************************************
- * SHCreateDirectory API
- */
- DWORD WINAPI SHCreateDirectory(HWND, LPCVOID);
- int WINAPI SHCreateDirectoryExA(HWND, LPCSTR, LPSECURITY_ATTRIBUTES);
- int WINAPI SHCreateDirectoryExW(HWND, LPCWSTR, LPSECURITY_ATTRIBUTES);
- /****************************************************************************
- * SHGetSpecialFolderLocation API
- */
- HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, int nFolder, LPITEMIDLIST * ppidl);
- HRESULT WINAPI SHGetFolderLocation(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwReserved, LPITEMIDLIST *ppidl);
- /****************************************************************************
- * SHGetFolderPath API
- */
- typedef enum {
- SHGFP_TYPE_CURRENT = 0,
- SHGFP_TYPE_DEFAULT = 1
- } SHGFP_TYPE;
- HRESULT WINAPI SHGetFolderPathA(HWND hwnd, int nFolder, HANDLE hToken, DWORD dwFlags, LPSTR pszPath);
- HRESULT WINAPI SHGetFolderPathW(HWND hwnd, int nFolder, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath);
- #define SHGetFolderPath WINELIB_NAME_AW(SHGetFolderPath)
- #define CSIDL_DESKTOP 0x0000
- #define CSIDL_INTERNET 0x0001
- #define CSIDL_PROGRAMS 0x0002
- #define CSIDL_CONTROLS 0x0003
- #define CSIDL_PRINTERS 0x0004
- #define CSIDL_PERSONAL 0x0005
- #define CSIDL_FAVORITES 0x0006
- #define CSIDL_STARTUP 0x0007
- #define CSIDL_RECENT 0x0008
- #define CSIDL_SENDTO 0x0009
- #define CSIDL_BITBUCKET 0x000a
- #define CSIDL_STARTMENU 0x000b
- #define CSIDL_MYDOCUMENTS 0x000c
- #define CSIDL_MYMUSIC 0x000d
- #define CSIDL_MYVIDEO 0x000e
- #define CSIDL_DESKTOPDIRECTORY 0x0010
- #define CSIDL_DRIVES 0x0011
- #define CSIDL_NETWORK 0x0012
- #define CSIDL_NETHOOD 0x0013
- #define CSIDL_FONTS 0x0014
- #define CSIDL_TEMPLATES 0x0015
- #define CSIDL_COMMON_STARTMENU 0x0016
- #define CSIDL_COMMON_PROGRAMS 0X0017
- #define CSIDL_COMMON_STARTUP 0x0018
- #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019
- #define CSIDL_APPDATA 0x001a
- #define CSIDL_PRINTHOOD 0x001b
- #define CSIDL_LOCAL_APPDATA 0x001c
- #define CSIDL_ALTSTARTUP 0x001d
- #define CSIDL_COMMON_ALTSTARTUP 0x001e
- #define CSIDL_COMMON_FAVORITES 0x001f
- #define CSIDL_INTERNET_CACHE 0x0020
- #define CSIDL_COOKIES 0x0021
- #define CSIDL_HISTORY 0x0022
- #define CSIDL_COMMON_APPDATA 0x0023
- #define CSIDL_WINDOWS 0x0024
- #define CSIDL_SYSTEM 0x0025
- #define CSIDL_PROGRAM_FILES 0x0026
- #define CSIDL_MYPICTURES 0x0027
- #define CSIDL_PROFILE 0x0028
- #define CSIDL_SYSTEMX86 0x0029
- #define CSIDL_PROGRAM_FILESX86 0x002a
- #define CSIDL_PROGRAM_FILES_COMMON 0x002b
- #define CSIDL_PROGRAM_FILES_COMMONX86 0x002c
- #define CSIDL_COMMON_TEMPLATES 0x002d
- #define CSIDL_COMMON_DOCUMENTS 0x002e
- #define CSIDL_COMMON_ADMINTOOLS 0x002f
- #define CSIDL_ADMINTOOLS 0x0030
- #define CSIDL_CONNECTIONS 0x0031
- #define CSIDL_COMMON_MUSIC 0x0035
- #define CSIDL_COMMON_PICTURES 0x0036
- #define CSIDL_COMMON_VIDEO 0x0037
- #define CSIDL_RESOURCES 0x0038
- #define CSIDL_RESOURCES_LOCALIZED 0x0039
- #define CSIDL_COMMON_OEM_LINKS 0x003a
- #define CSIDL_CDBURN_AREA 0x003b
- #define CSIDL_COMPUTERSNEARME 0x003d
- #define CSIDL_PROFILES 0x003e
- #define CSIDL_FOLDER_MASK 0x00ff
- #define CSIDL_FLAG_PER_USER_INIT 0x0800
- #define CSIDL_FLAG_NO_ALIAS 0x1000
- #define CSIDL_FLAG_DONT_VERIFY 0x4000
- #define CSIDL_FLAG_CREATE 0x8000
- #define CSIDL_FLAG_MASK 0xff00
- /****************************************************************************
- * SHGetDesktopFolder API
- */
- HRESULT WINAPI SHGetDesktopFolder(IShellFolder * *);
- /****************************************************************************
- * SHBindToParent API
- */
- HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast);
- /****************************************************************************
- * SHDefExtractIcon API
- */
- HRESULT WINAPI SHDefExtractIconA(LPCSTR pszIconFile, int iIndex, UINT uFlags,
- HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize);
- HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags,
- HICON* phiconLarge, HICON* phiconSmall, UINT nIconSize);
- #define SHDefExtractIcon WINELIB_NAME_AW(SHDefExtractIcon)
- /*
- * DROPFILES for CF_HDROP and CF_PRINTERS
- */
- typedef struct _DROPFILES
- {
- DWORD pFiles;
- POINT pt;
- BOOL fNC;
- BOOL fWide;
- } DROPFILES, *LPDROPFILES;
- /*
- * Properties of a file in the clipboard
- */
- typedef struct _FILEDESCRIPTORA {
- DWORD dwFlags;
- CLSID clsid;
- SIZEL sizel;
- POINTL pointl;
- DWORD dwFileAttributes;
- FILETIME ftCreationTime;
- FILETIME ftLastAccessTime;
- FILETIME ftLastWriteTime;
- DWORD nFileSizeHigh;
- DWORD nFileSizeLow;
- CHAR cFileName[MAX_PATH];
- } FILEDESCRIPTORA, *LPFILEDESCRIPTORA;
- typedef struct _FILEDESCRIPTORW {
- DWORD dwFlags;
- CLSID clsid;
- SIZEL sizel;
- POINTL pointl;
- DWORD dwFileAttributes;
- FILETIME ftCreationTime;
- FILETIME ftLastAccessTime;
- FILETIME ftLastWriteTime;
- DWORD nFileSizeHigh;
- DWORD nFileSizeLow;
- WCHAR cFileName[MAX_PATH];
- } FILEDESCRIPTORW, *LPFILEDESCRIPTORW;
- DECL_WINELIB_TYPE_AW(FILEDESCRIPTOR)
- DECL_WINELIB_TYPE_AW(LPFILEDESCRIPTOR)
- /*
- * CF_FILEGROUPDESCRIPTOR clipboard format
- */
- typedef struct _FILEGROUPDESCRIPTORA {
- UINT cItems;
- FILEDESCRIPTORA fgd[1];
- } FILEGROUPDESCRIPTORA, *LPFILEGROUPDESCRIPTORA;
- typedef struct _FILEGROUPDESCRIPTORW {
- UINT cItems;
- FILEDESCRIPTORW fgd[1];
- } FILEGROUPDESCRIPTORW, *LPFILEGROUPDESCRIPTORW;
- DECL_WINELIB_TYPE_AW(FILEGROUPDESCRIPTOR)
- DECL_WINELIB_TYPE_AW(LPFILEGROUPDESCRIPTOR)
- /****************************************************************************
- * Cabinet functions
- */
- typedef struct {
- WORD cLength;
- WORD nVersion;
- BOOL fFullPathTitle:1;
- BOOL fSaveLocalView:1;
- BOOL fNotShell:1;
- BOOL fSimpleDefault:1;
- BOOL fDontShowDescBar:1;
- BOOL fNewWindowMode:1;
- BOOL fShowCompColor:1;
- BOOL fDontPrettyNames:1;
- BOOL fAdminsCreateCommonGroups:1;
- UINT fUnusedFlags:7;
- UINT :0; /* Required for proper binary layout with gcc */
- UINT fMenuEnumFilter;
- } CABINETSTATE, *LPCABINETSTATE;
- #define CABINETSTATE_VERSION 2
- BOOL WINAPI ReadCabinetState(CABINETSTATE *, int);
- BOOL WINAPI WriteCabinetState(CABINETSTATE *);
- /****************************************************************************
- * Path Manipulation Routines
- */
- VOID WINAPI PathGetShortPath(LPWSTR pszPath);
- /****************************************************************************
- * Drag And Drop Routines
- */
- /* DAD_AutoScroll sample structure */
- #define NUM_POINTS 3
- typedef struct
- {
- int iNextSample;
- DWORD dwLastScroll;
- BOOL bFull;
- POINT pts[NUM_POINTS];
- DWORD dwTimes[NUM_POINTS];
- } AUTO_SCROLL_DATA;
- BOOL WINAPI DAD_SetDragImage(HIMAGELIST,LPPOINT);
- BOOL WINAPI DAD_DragEnterEx(HWND,POINT);
- BOOL WINAPI DAD_DragEnterEx2(HWND,POINT,IDataObject*);
- BOOL WINAPI DAD_DragMove(POINT);
- BOOL WINAPI DAD_DragLeave(void);
- BOOL WINAPI DAD_AutoScroll(HWND,AUTO_SCROLL_DATA*,LPPOINT);
- HRESULT WINAPI SHDoDragDrop(HWND,IDataObject*,IDropSource*,DWORD,LPDWORD);
- /*****************************************************************************
- * IFileSystemBindData interface
- */
- #ifndef __IFileSystemBindData_FWD_DEFINED__
- #define __IFileSystemBindData_FWD_DEFINED__
- typedef struct IFileSystemBindData IFileSystemBindData;
- #endif
- #ifndef __IFileSystemBindData_INTERFACE_DEFINED__
- #define __IFileSystemBindData_INTERFACE_DEFINED__
- DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
- #if defined(__cplusplus) && !defined(CINTERFACE)
- struct IFileSystemBindData : public IUnknown
- {
- virtual HRESULT STDMETHODCALLTYPE SetFindData(
- const WIN32_FIND_DATAW* pfd) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetFindData(
- WIN32_FIND_DATAW* pfd) = 0;
- };
- #else
- typedef struct IFileSystemBindDataVtbl IFileSystemBindDataVtbl;
- struct IFileSystemBindData {
- const IFileSystemBindDataVtbl* lpVtbl;
- };
- struct IFileSystemBindDataVtbl {
- /*** IUnknown methods ***/
- HRESULT (STDMETHODCALLTYPE *QueryInterface)(
- IFileSystemBindData* This,
- REFIID riid,
- void** ppvObject);
- ULONG (STDMETHODCALLTYPE *AddRef)(
- IFileSystemBindData* This);
- ULONG (STDMETHODCALLTYPE *Release)(
- IFileSystemBindData* This);
- /*** IFileSystemBindData methods ***/
- HRESULT (STDMETHODCALLTYPE *SetFindData)(
- IFileSystemBindData* This,
- const WIN32_FIND_DATAW* pfd);
- HRESULT (STDMETHODCALLTYPE *GetFindData)(
- IFileSystemBindData* This,
- WIN32_FIND_DATAW* pfd);
- };
- /*** IUnknown methods ***/
- #define IFileSystemBindData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
- #define IFileSystemBindData_AddRef(p) (p)->lpVtbl->AddRef(p)
- #define IFileSystemBindData_Release(p) (p)->lpVtbl->Release(p)
- /*** IFileSystemBindData methods ***/
- #define IFileSystemBindData_GetFindData(p,a) (p)->lpVtbl->GetFindData(p,a)
- #define IFileSystemBindData_SetFindData(p,a) (p)->lpVtbl->SetFindData(p,a)
- #endif
- #endif /* __IFileSystemBindData_INTERFACE_DEFINED__ */
- LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST,LPCSHITEMID,BOOL);
- LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST);
- LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST);
- LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR);
- LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR);
- #define ILCreateFromPath WINELIB_NAME_AW(ILCreateFromPath)
- LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST,LPCITEMIDLIST);
- LPITEMIDLIST WINAPI ILFindChild(LPCITEMIDLIST,LPCITEMIDLIST);
- LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST);
- void WINAPI ILFree(LPITEMIDLIST);
- LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST);
- UINT WINAPI ILGetSize(LPCITEMIDLIST);
- BOOL WINAPI ILIsEqual(LPCITEMIDLIST,LPCITEMIDLIST);
- BOOL WINAPI ILIsParent(LPCITEMIDLIST,LPCITEMIDLIST,BOOL);
- HRESULT WINAPI ILLoadFromStream(LPSTREAM,LPITEMIDLIST*);
- BOOL WINAPI ILRemoveLastID(LPITEMIDLIST);
- HRESULT WINAPI ILSaveToStream(LPSTREAM,LPCITEMIDLIST);
- #include <poppack.h>
- #ifdef __cplusplus
- } /* extern "C" */
- #endif /* defined(__cplusplus) */
- #endif /* __WINE_SHLOBJ_H */
|