ReactOS 0.4.16-dev-820-g96aa1ee
undocshell.h File Reference
#include <stdio.h>
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for undocshell.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _SHCNF_PRINTJOB_INFO
 
struct  _NMRUNFILEDLGW
 
struct  CWTESTPATHSTRUCT
 
struct  _REGSHELLSTATE
 
struct  SFVCBINFO
 
struct  SFVSELECTSTATE
 
struct  SFVCOPYHOOKINFO
 
struct  SFVCOLUMNINFO
 
struct  tagSHELL_LINK_HEADER
 
struct  tagSHELL_LINK_INFOA
 
struct  tagSHELL_LINK_INFOW
 
struct  tagSHELL_LINK_INFO_VOLUME_IDA
 
struct  tagSHELL_LINK_INFO_VOLUME_IDW
 
struct  tagSHELL_LINK_INFO_CNR_LINKA
 
struct  tagSHELL_LINK_INFO_CNR_LINKW
 
struct  tagEXP_TRACKER
 
struct  tagEXP_SHIM
 
struct  tagEXP_KNOWN_FOLDER
 
struct  tagEXP_VISTA_ID_LIST
 
struct  SFVM_CUSTOMVIEWINFO_DATA
 

Macros

#define TWM_DOEXITWINDOWS   (WM_USER + 342)
 
#define TWM_CYCLEFOCUS   (WM_USER + 348)
 
#define WM_PROGMAN_OPENSHELLSETTINGS   (WM_USER + 22) /* wParam specifies the dialog (and tab page) */
 
#define WM_PROGMAN_SAVESTATE   (WM_USER + 77)
 
#define ILGDN_FORPARSING   0
 
#define ILGDN_NORMAL   1
 
#define ILGDN_INFOLDER   2
 
#define SHCNRF_InterruptLevel   0x0001
 
#define SHCNRF_ShellLevel   0x0002
 
#define SHCNRF_RecursiveInterrupt   0x1000 /* Must be combined with SHCNRF_InterruptLevel */
 
#define SHCNRF_NewDelivery   0x8000 /* Messages use shared memory */
 
#define SHCNF_PRINTJOBA   0x0004
 
#define SHCNF_PRINTJOBW   0x0007
 
#define RFF_NOBROWSE   0x01 /* Removes the browse button */
 
#define RFF_NODEFAULT   0x02 /* No default item selected */
 
#define RFF_CALCDIRECTORY   0x04 /* Calculates the working directory from the file name */
 
#define RFF_NOLABEL   0x08 /* Removes the edit box label */
 
#define RFF_NOSEPARATEMEM   0x20 /* Removes the Separate Memory Space check box (Windows NT only) */
 
#define RFN_VALIDATE   (-510)
 
#define RF_OK   0x00
 
#define RF_CANCEL   0x01
 
#define RF_RETRY   0x02
 
#define CWM_SETPATH   (WM_USER + 2)
 
#define CWM_WANTIDLE   (WM_USER + 3)
 
#define CWM_GETSETCURRENTINFO   (WM_USER + 4)
 
#define CWM_SELECTITEM   (WM_USER + 5)
 
#define CWM_SELECTITEMSTR   (WM_USER + 6)
 
#define CWM_GETISHELLBROWSER   (WM_USER + 7)
 
#define CWM_TESTPATH   (WM_USER + 9)
 
#define CWM_STATECHANGE   (WM_USER + 10)
 
#define CWM_GETPATH   (WM_USER + 12)
 
#define WM_GETISHELLBROWSER   CWM_GETISHELLBROWSER
 
#define CWTP_ISEQUAL   0
 
#define CWTP_ISCHILD   1
 
#define FM_DEFAULT_SELHEIGHT   -1
 
#define FM_FULL_SELHEIGHT   0
 
#define FMF_SMALL_ICONS   0x00
 
#define FMF_LARGE_ICONS   0x08
 
#define FMF_NO_COLUMN_BREAK   0x10
 
#define FM_SEPARATOR   (LPCSTR)1
 
#define FM_BLANK_ICON   -1
 
#define FM_DEFAULT_HEIGHT   0
 
#define FMF_NO_EMPTY_ITEM   0x01
 
#define FMF_NO_PROGRAM_GROUPS   0x04
 
#define PRF_CHECKEXISTANCE   0x01
 
#define PRF_EXECUTABLE   0x02
 
#define PRF_QUALIFYONPATH   0x04
 
#define PRF_WINDOWS31   0x08
 
#define PPCF_QUOTEPATH   0x01 /* implies PPCF_INCLUDEARGS */
 
#define PPCF_INCLUDEARGS   0x02
 
#define PPCF_DONTRESOLVE   0x20
 
#define PPCF_PATHISRELATIVE   0x40
 
#define DE_SAMEFILE   0x71
 
#define DE_MANYSRC1DEST   0x72
 
#define DE_DIFFDIR   0x73
 
#define DE_ROOTDIR   0x74
 
#define DE_OPCANCELLED   0x75
 
#define DE_DESTSUBTREE   0x76
 
#define DE_ACCESSDENIEDSRC   0x78
 
#define DE_PATHTOODEEP   0x79
 
#define DE_MANYDEST   0x7A
 
#define DE_INVALIDFILES   0x7C
 
#define DE_DESTSAMETREE   0x7D
 
#define DE_FLDDESTISFILE   0x7E
 
#define DE_FILEDESTISFLD   0x80
 
#define DE_FILENAMETOOLONG   0x81
 
#define DE_DEST_IS_CDROM   0x82
 
#define DE_DEST_IS_DVD   0x83
 
#define DE_DEST_IS_CDRECORD   0x84
 
#define DE_FILE_TOO_LARGE   0x85
 
#define DE_SRC_IS_CDROM   0x86
 
#define DE_SRC_IS_DVD   0x87
 
#define DE_SRC_IS_CDRECORD   0x88
 
#define ERRORONDEST   0x10000
 
#define REGSHELLSTATE_SIZE   0x24
 
#define REGSHELLSTATE_VERSION   0xD
 
#define SHWFF_ADD   0x01
 
#define SHWFF_REMOVE   0x02
 
#define SHWFF_WAIT   0x04
 
#define SECL_NO_UI   0x2
 
#define SECL_LOG_USAGE   0x8
 
#define SECL_USE_IDLIST   0x10
 
#define SECL_ALLOW_NONEXE   0x20
 
#define SECL_RUNAS   0x40
 
#define RSH_DEREGISTER   0
 
#define RSH_REGISTER   1
 
#define RSH_REGISTER_PROGMAN   2
 
#define RSH_REGISTER_TASKMAN   3
 
#define SHCLF_PREFIXNAME   0x01
 
#define SHCLF_CREATEONDESKTOP   0x02
 
#define CSIDL_FOLDER_MASK   0x00ff
 
#define SMC_EXEC   4
 
#define FMT_USE_NUMDIGITS   0x01
 
#define FMT_USE_LEADZERO   0x02
 
#define FMT_USE_GROUPING   0x04
 
#define FMT_USE_DECIMAL   0x08
 
#define FMT_USE_THOUSAND   0x10
 
#define FMT_USE_NEGNUMBER   0x20
 
#define IDB_GOBUTTON_NORMAL   0x0e6
 
#define IDB_GOBUTTON_HOT   0x0e7
 
#define ITBBID_MENUBAND   1
 
#define ITBBID_BRANDBAND   5
 
#define ITBBID_TOOLSBAND   2
 
#define ITBBID_ADDRESSBAND   4
 
#define ITID_TEXTLABELS   3
 
#define ITID_TOOLBARBANDSHOWN   4
 
#define ITID_ADDRESSBANDSHOWN   5
 
#define ITID_LINKSBANDSHOWN   6
 
#define ITID_MENUBANDSHOWN   12
 
#define ITID_AUTOHIDEENABLED   13
 
#define ITID_CUSTOMIZEENABLED   20
 
#define ITID_TOOLBARLOCKED   27
 
#define BBID_STARTANIMATION   1
 
#define BBID_STOPANIMATION   2
 
#define SMSET_UNKNOWN08   0x08
 
#define SMSET_UNKNOWN10   0x10
 
#define TRAYCMD_STARTMENU   305
 
#define TRAYCMD_RUN_DIALOG   401
 
#define TRAYCMD_LOGOFF_DIALOG   402
 
#define TRAYCMD_CASCADE   403
 
#define TRAYCMD_TILE_H   404
 
#define TRAYCMD_TILE_V   405
 
#define TRAYCMD_TOGGLE_DESKTOP   407
 
#define TRAYCMD_DATE_AND_TIME   408
 
#define TRAYCMD_TASKBAR_PROPERTIES   413
 
#define TRAYCMD_MINIMIZE_ALL   415
 
#define TRAYCMD_RESTORE_ALL   416
 
#define TRAYCMD_SHOW_DESKTOP   419
 
#define TRAYCMD_SHOW_TASK_MGR   420
 
#define TRAYCMD_CUSTOMIZE_TASKBAR   421
 
#define TRAYCMD_LOCK_TASKBAR   424
 
#define TRAYCMD_HELP_AND_SUPPORT   503
 
#define TRAYCMD_CONTROL_PANEL   505
 
#define TRAYCMD_SHUTDOWN_DIALOG   506
 
#define TRAYCMD_PRINTERS_AND_FAXES   510
 
#define TRAYCMD_LOCK_DESKTOP   517
 
#define TRAYCMD_SWITCH_USER_DIALOG   5000
 
#define TRAYCMD_SEARCH_FILES   41093
 
#define TRAYCMD_SEARCH_COMPUTERS   41094
 
#define TABDMC_APPBAR   0
 
#define TABDMC_NOTIFY   1
 
#define TABDMC_LOADINPROC   2
 
#define SHRegQueryValueEx   SHRegQueryValueExA
 
#define SHGCDN_NOCACHE   0x1
 
#define SHGCDN_NOSERVERNAME   0x10000
 
#define INVALID_FILETITLE_CHARACTERSA   "\\/:*?\"<>|"
 
#define INVALID_FILETITLE_CHARACTERSW   L"\\/:*?\"<>|"
 
#define INVALID_FILETITLE_CHARACTERS   INVALID_FILETITLE_CHARACTERSA
 
#define SLI_VALID_LOCAL   0x00000001
 
#define SLI_VALID_NETWORK   0x00000002
 
#define SLI_CNR_VALID_DEVICE   0x00000001
 
#define SLI_CNR_VALID_NET_TYPE   0x00000002
 
#define EXP_TRACKER_SIG   0xa0000003
 
#define EXP_SHIM_SIG   0xa0000008
 
#define EXP_KNOWN_FOLDER_SIG   0xa000000b
 
#define EXP_VISTA_ID_LIST_SIG   0xa000000c
 

Typedefs

typedef struct _SHCNF_PRINTJOB_INFO SHCNF_PRINTJOB_INFO
 
typedef struct _SHCNF_PRINTJOB_INFOPSHCNF_PRINTJOB_INFO
 
typedef struct _NMRUNFILEDLGW NMRUNFILEDLGW
 
typedef struct _NMRUNFILEDLGWPNMRUNFILEDLGW
 
typedef struct _NMRUNFILEDLGWLPNMRUNFILEDLGW
 
typedef NMRUNFILEDLGW NMRUNFILEDLG
 
typedef PNMRUNFILEDLGW PNMRUNFILEDLG
 
typedef LPNMRUNFILEDLGW LPNMRUNFILEDLG
 
typedef struct CWTESTPATHSTRUCTLPCWTESTPATHSTRUCT
 
typedef void(CALLBACKLPFNFMCALLBACK) (LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile)
 
typedef struct _REGSHELLSTATE REGSHELLSTATE
 
typedef struct _REGSHELLSTATEPREGSHELLSTATE
 
typedef struct SFVCBINFOLPSFVCBINFO
 
typedef const SFVCBINFOLPCSFVCBINFO
 
typedef struct SFVSELECTSTATELPSFVSELECTSTATE
 
typedef const SFVSELECTSTATELPCSFVSELECTSTATE
 
typedef struct SFVCOPYHOOKINFOLPSFVCOPYHOOKINFO
 
typedef const SFVCOPYHOOKINFOLPCSFVCOPYHOOKINFO
 
typedef struct SFVCOLUMNINFOLPSFVCOLUMNINFO
 
typedef HRESULT(CALLBACKLPFNCDCOCALLBACK) (LPUNKNOWN pUnkOuter, REFIID riidObject, LPVOID *ppvObject)
 
typedef HRESULT(CALLBACKPRIVILEGED_FUNCTION) (LPARAM lParam)
 
typedef struct tagSHELL_LINK_HEADER SHELL_LINK_HEADER
 
typedef struct tagSHELL_LINK_HEADERLPSHELL_LINK_HEADER
 
typedef struct tagSHELL_LINK_INFOA SHELL_LINK_INFOA
 
typedef struct tagSHELL_LINK_INFOALPSHELL_LINK_INFOA
 
typedef struct tagSHELL_LINK_INFOW SHELL_LINK_INFOW
 
typedef struct tagSHELL_LINK_INFOWLPSHELL_LINK_INFOW
 
typedef struct tagSHELL_LINK_INFO_VOLUME_IDA SHELL_LINK_INFO_VOLUME_IDA
 
typedef struct tagSHELL_LINK_INFO_VOLUME_IDALPSHELL_LINK_INFO_VOLUME_IDA
 
typedef struct tagSHELL_LINK_INFO_VOLUME_IDW SHELL_LINK_INFO_VOLUME_IDW
 
typedef struct tagSHELL_LINK_INFO_VOLUME_IDWLPSHELL_LINK_INFO_VOLUME_IDW
 
typedef struct tagSHELL_LINK_INFO_CNR_LINKA SHELL_LINK_INFO_CNR_LINKA
 
typedef struct tagSHELL_LINK_INFO_CNR_LINKALPSHELL_LINK_INFO_CNR_LINKA
 
typedef struct tagSHELL_LINK_INFO_CNR_LINKW SHELL_LINK_INFO_CNR_LINKW
 
typedef struct tagSHELL_LINK_INFO_CNR_LINKWLPSHELL_LINK_INFO_CNR_LINKW
 
typedef struct tagEXP_TRACKER EXP_TRACKER
 
typedef struct tagEXP_TRACKERLPEXP_TRACKER
 
typedef struct tagEXP_SHIM EXP_SHIM
 
typedef struct tagEXP_SHIMLPEXP_SHIM
 
typedef struct tagEXP_KNOWN_FOLDER EXP_KNOWN_FOLDER
 
typedef struct tagEXP_KNOWN_FOLDERLPEXP_KNOWN_FOLDER
 
typedef struct tagEXP_VISTA_ID_LIST EXP_VISTA_ID_LIST
 
typedef struct tagEXP_VISTA_ID_LISTLPEXP_VISTA_ID_LIST
 
typedef struct SFVM_CUSTOMVIEWINFO_DATA SFVM_CUSTOMVIEWINFO_DATA
 
typedef struct SFVM_CUSTOMVIEWINFO_DATALPSFVM_CUSTOMVIEWINFO_DATA
 

Functions

BOOL WINAPI ILGetDisplayName (LPCITEMIDLIST pidl, LPVOID path)
 
BOOL WINAPI ILGetDisplayNameEx (LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
 
LPITEMIDLIST WINAPI ILGlobalClone (LPCITEMIDLIST pidl)
 
void WINAPI ILGlobalFree (LPITEMIDLIST pidl)
 
LPITEMIDLIST WINAPI SHSimpleIDListFromPathA (LPCSTR lpszPath)
 
LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath)
 
HRESULT WINAPI SHILCreateFromPathA (LPCSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
 
HRESULT WINAPI SHILCreateFromPathW (LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
 
HRESULT WINAPI SHInvokeCommand (HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl, LPCSTR lpVerb)
 
HRESULT WINAPI SHInvokeCommandOnContextMenu (_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_opt_ LPCSTR pszVerb)
 
BOOL WINAPI IContextMenu_Invoke (_In_ IContextMenu *pContextMenu, _In_ HWND hwnd, _In_ LPCSTR lpVerb, _In_ UINT uFlags)
 
BOOL WINAPI StrRetToStrNA (LPSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
 
BOOL WINAPI StrRetToStrNW (LPWSTR, DWORD, LPSTRRET, const ITEMIDLIST *)
 
HRESULT WINAPI SHUpdateRecycleBinIcon (void)
 
void WINAPI RunFileDlg (HWND hWndOwner, HICON hIcon, LPCWSTR lpstrDirectory, LPCWSTR lpstrTitle, LPCWSTR lpstrDescription, UINT uFlags)
 
int WINAPI LogoffWindowsDialog (HWND hWndOwner)
 
void WINAPI ExitWindowsDialog (HWND hWndOwner)
 
BOOL WINAPI SHFindComputer (LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
 
void WINAPI SHHandleDiskFull (HWND hwndOwner, UINT uDrive)
 
int WINAPI SHOutOfMemoryMessageBox (HWND hwndOwner, LPCSTR lpCaption, UINT uType)
 
HRESULT WINAPI SHShouldShowWizards (_In_ IUnknown *pUnknown)
 
DWORD WINAPI SHNetConnectionDialog (HWND hwndOwner, LPCWSTR lpstrRemoteName, DWORD dwType)
 
BOOL WINAPI SHIsTempDisplayMode (VOID)
 
HRESULT WINAPI SHGetUserDisplayName (_Out_writes_to_(*puSize, *puSize) PWSTR pName, _Inout_ PULONG puSize)
 
int WINAPI Shell_GetCachedImageIndexA (LPCSTR lpszFileName, int nIconIndex, UINT bSimulateDoc)
 
BOOL WINAPI Shell_GetImageLists (HIMAGELIST *lphimlLarge, HIMAGELIST *lphimlSmall)
 
HICON WINAPI SHGetFileIcon (DWORD dwReserved, LPCSTR lpszPath, DWORD dwFileAttributes, UINT uFlags)
 
BOOL WINAPI FileIconInit (BOOL bFullInit)
 
WORD WINAPI ExtractIconResInfoA (_In_ HANDLE hHandle, _In_ LPCSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
 
WORD WINAPI ExtractIconResInfoW (_In_ HANDLE hHandle, _In_ LPCWSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
 
HMENU WINAPI FileMenu_Create (COLORREF crBorderColor, int nBorderWidth, HBITMAP hBorderBmp, int nSelHeight, UINT uFlags)
 
void WINAPI FileMenu_Destroy (HMENU hMenu)
 
BOOL WINAPI FileMenu_AppendItem (HMENU hMenu, LPCSTR lpszText, UINT uID, int iIcon, HMENU hMenuPopup, int nItemHeight)
 
int WINAPI FileMenu_InsertUsingPidl (HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
 
int WINAPI FileMenu_ReplaceUsingPidl (HMENU hMenu, UINT uID, LPCITEMIDLIST pidl, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
 
void WINAPI FileMenu_Invalidate (HMENU hMenu)
 
HMENU WINAPI FileMenu_FindSubMenuByPidl (HMENU hMenu, LPCITEMIDLIST pidl)
 
BOOL WINAPI FileMenu_TrackPopupMenuEx (HMENU hMenu, UINT uFlags, int x, int y, HWND hWnd, LPTPMPARAMS lptpm)
 
BOOL WINAPI FileMenu_GetLastSelectedItemPidls (UINT uReserved, LPCITEMIDLIST *ppidlFolder, LPCITEMIDLIST *ppidlItem)
 
LRESULT WINAPI FileMenu_MeasureItem (HWND hWnd, LPMEASUREITEMSTRUCT lpmis)
 
LRESULT WINAPI FileMenu_DrawItem (HWND hWnd, LPDRAWITEMSTRUCT lpdis)
 
BOOL WINAPI FileMenu_InitMenuPopup (HMENU hMenu)
 
void WINAPI FileMenu_AbortInitMenu (void)
 
LRESULT WINAPI FileMenu_HandleMenuChar (HMENU hMenu, WPARAM wParam)
 
BOOL WINAPI FileMenu_DeleteAllItems (HMENU hMenu)
 
BOOL WINAPI FileMenu_DeleteItemByCmd (HMENU hMenu, UINT uID)
 
BOOL WINAPI FileMenu_DeleteItemByIndex (HMENU hMenu, UINT uPos)
 
BOOL WINAPI FileMenu_DeleteMenuItemByFirstID (HMENU hMenu, UINT uID)
 
BOOL WINAPI FileMenu_DeleteSeparator (HMENU hMenu)
 
BOOL WINAPI FileMenu_EnableItemByCmd (HMENU hMenu, UINT uID, BOOL bEnable)
 
DWORD WINAPI FileMenu_GetItemExtent (HMENU hMenu, UINT uPos)
 
int WINAPI FileMenu_AppendFilesForPidl (HMENU hMenu, LPCITEMIDLIST pidl, BOOL bAddSeparator)
 
int WINAPI FileMenu_AddFilesForPidl (HMENU hMenu, UINT uReserved, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
 
HRESULT WINAPI SHRegisterDragDrop (HWND hWnd, LPDROPTARGET lpDropTarget)
 
HRESULT WINAPI SHRevokeDragDrop (HWND hWnd)
 
BOOL WINAPI DAD_DragEnter (HWND hWnd)
 
BOOL WINAPI DAD_SetDragImageFromListView (HWND hWnd, POINT pt)
 
BOOL WINAPI DAD_ShowDragImage (BOOL bShow)
 
BOOL WINAPI PathAppendAW (LPVOID lpszPath1, LPCVOID lpszPath2)
 
LPVOID WINAPI PathCombineAW (LPVOID szDest, LPCVOID lpszDir, LPCVOID lpszFile)
 
LPVOID WINAPI PathAddBackslashAW (LPVOID path)
 
LPVOID WINAPI PathBuildRootAW (LPVOID lpszPath, int drive)
 
LPVOID WINAPI PathFindExtensionAW (LPCVOID path)
 
LPVOID WINAPI PathFindFileNameAW (LPCVOID path)
 
LPVOID WINAPI PathGetExtensionAW (LPCVOID lpszPath, DWORD void1, DWORD void2)
 
LPVOID WINAPI PathGetArgsAW (LPVOID lpszPath)
 
BOOL WINAPI PathRemoveFileSpecAW (LPVOID lpszPath)
 
void WINAPI PathRemoveBlanksAW (LPVOID lpszPath)
 
VOID WINAPI PathQuoteSpacesAW (LPVOID path)
 
void WINAPI PathUnquoteSpacesAW (LPVOID lpszPath)
 
BOOL WINAPI PathIsUNCAW (LPCVOID lpszPath)
 
BOOL WINAPI PathIsRelativeAW (LPCVOID lpszPath)
 
BOOL WINAPI PathIsRootAW (LPCVOID x)
 
BOOL WINAPI PathIsExeAW (LPCVOID lpszPath)
 
BOOL WINAPI PathIsDirectoryAW (LPCVOID lpszPath)
 
BOOL WINAPI PathFileExistsAW (LPCVOID lpszPath)
 
BOOL WINAPI PathMatchSpecAW (LPVOID lpszPath, LPVOID lpszSpec)
 
BOOL WINAPI PathMakeUniqueNameAW (LPVOID lpszBuffer, DWORD dwBuffSize, LPCVOID lpszShortName, LPCVOID lpszLongName, LPCVOID lpszPathName)
 
BOOL WINAPI PathYetAnotherMakeUniqueName (LPWSTR lpszBuffer, LPCWSTR lpszPathName, LPCWSTR lpszShortName, LPCWSTR lpszLongName)
 
VOID WINAPI PathQualifyA (LPSTR pszPath)
 
VOID WINAPI PathQualifyW (LPWSTR pszPath)
 
VOID WINAPI PathQualifyAW (LPVOID path)
 
BOOL WINAPI PathResolveA (LPSTR path, LPCSTR *dirs, DWORD flags)
 
BOOL WINAPI PathResolveW (LPWSTR path, LPCWSTR *dirs, DWORD flags)
 
BOOL WINAPI PathResolveAW (LPVOID lpszPath, LPCVOID *alpszPaths, DWORD dwFlags)
 
VOID WINAPI PathSetDlgItemPathAW (HWND hDlg, int nIDDlgItem, LPCVOID lpszPath)
 
HRESULT WINAPI PathProcessCommandAW (LPCVOID lpszPath, LPVOID lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
 
void WINAPI PathStripPathAW (LPVOID lpszPath)
 
BOOL WINAPI PathStripToRootAW (LPVOID lpszPath)
 
void WINAPI PathRemoveArgsAW (LPVOID lpszPath)
 
void WINAPI PathRemoveExtensionAW (LPVOID lpszPath)
 
int WINAPI PathParseIconLocationAW (LPVOID lpszPath)
 
BOOL WINAPI PathIsSameRootAW (LPCVOID lpszPath1, LPCVOID lpszPath2)
 
BOOL WINAPI PathFindOnPathAW (LPVOID sFile, LPCVOID *sOtherDirs)
 
BOOL WINAPI PathIsEqualOrSubFolder (_In_ LPCWSTR pszFile1OrCSIDL, _In_ LPCWSTR pszFile2)
 
BOOL WINAPI PathIsTemporaryA (_In_ LPCSTR Str)
 
BOOL WINAPI PathIsTemporaryW (_In_ LPCWSTR Str)
 
 C_ASSERT (sizeof(REGSHELLSTATE)==REGSHELLSTATE_SIZE)
 
BOOL WINAPI RegenerateUserEnvironment (LPVOID *lpEnvironment, BOOL bUpdateSelf)
 
BOOL WINAPI SHWaitForFileToOpen (LPCITEMIDLIST pidl, DWORD dwFlags, DWORD dwTimeout)
 
WORD WINAPI ArrangeWindows (HWND hwndParent, DWORD dwReserved, LPCRECT lpRect, WORD cKids, CONST HWND *lpKids)
 
HRESULT WINAPI ShellExecCmdLine (HWND hwnd, LPCWSTR pwszCommand, LPCWSTR pwszStartDir, int nShow, LPVOID pUnused, DWORD dwSeclFlags)
 
HINSTANCE WINAPI RealShellExecuteA (_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_opt_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_opt_ LPSTR lpReturn, _In_opt_ LPCSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess)
 
HINSTANCE WINAPI RealShellExecuteW (_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_opt_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_opt_ LPWSTR lpReturn, _In_opt_ LPCWSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess)
 
HINSTANCE WINAPI RealShellExecuteExA (_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_opt_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_opt_ LPSTR lpReturn, _In_opt_ LPCSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
 
HINSTANCE WINAPI RealShellExecuteExW (_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_opt_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_opt_ LPWSTR lpReturn, _In_opt_ LPCWSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
 
VOID WINAPI ShellExec_RunDLL (_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCSTR pszCmdLine, _In_ INT nCmdShow)
 
VOID WINAPI ShellExec_RunDLLA (_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCSTR pszCmdLine, _In_ INT nCmdShow)
 
VOID WINAPI ShellExec_RunDLLW (_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCWSTR pszCmdLine, _In_ INT nCmdShow)
 
BOOL WINAPI RegisterShellHook (HWND hWnd, DWORD dwType)
 
HRESULT WINAPI SHCreateDefClassObject (REFIID riidFactory, LPVOID *ppvFactory, LPFNCDCOCALLBACK lpfnCallback, LPDWORD lpdwUsage, REFIID riidObject)
 
void WINAPI SHFreeUnusedLibraries (void)
 
HRESULT WINAPI SHCreateLinks (HWND hWnd, LPCSTR lpszDir, LPDATAOBJECT lpDataObject, UINT uFlags, LPITEMIDLIST *lppidlLinks)
 
VOID WINAPI CheckEscapesA (LPSTR string, DWORD len)
 
VOID WINAPI CheckEscapesW (LPWSTR string, DWORD len)
 
BOOL WINAPI SHInitRestricted (LPCVOID unused, LPCVOID inpRegKey)
 
INT WINAPI Shell_GetCachedImageIndex (LPCWSTR szPath, INT nIndex, UINT bSimulateDoc)
 
HRESULT WINAPI SHCreatePropertyBag (_In_ REFIID riid, _Out_ void **ppvObj)
 
HRESULT WINAPI SHLimitInputCombo (HWND hWnd, IShellFolder *psf)
 
HRESULT WINAPI SHGetImageList (int iImageList, REFIID riid, void **ppv)
 
BOOL WINAPI GUIDFromStringA (_In_ PCSTR psz, _Out_ LPGUID pguid)
 
BOOL WINAPI GUIDFromStringW (_In_ PCWSTR psz, _Out_ LPGUID pguid)
 
PSTR WINAPI StrRStrA (_In_ PCSTR pszSrc, _In_opt_ PCSTR pszLast, _In_ PCSTR pszSearch)
 
PWSTR WINAPI StrRStrW (_In_ PCWSTR pszSrc, _In_opt_ PCWSTR pszLast, _In_ PCWSTR pszSearch)
 
LPSTR WINAPI SheRemoveQuotesA (LPSTR psz)
 
LPWSTR WINAPI SheRemoveQuotesW (LPWSTR psz)
 
INT WINAPI Int64ToString (_In_ LONGLONG llValue, _Out_writes_z_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
 
INT WINAPI LargeIntegerToString (_In_ const LARGE_INTEGER *pLargeInt, _Out_writes_z_(cchOut) LPWSTR pszOut, _In_ UINT cchOut, _In_ BOOL bUseFormat, _In_opt_ const NUMBERFMTW *pNumberFormat, _In_ DWORD dwNumberFlags)
 
LPWSTR WINAPI ShortSizeFormatW (_In_ DWORD dwNumber, _Out_writes_(0x8FFF) LPWSTR pszBuffer)
 
BOOL WINAPI SHOpenEffectiveToken (_Out_ LPHANDLE phToken)
 
DWORD WINAPI SHGetUserSessionId (_In_opt_ HANDLE hToken)
 
HRESULT WINAPI SHInvokePrivilegedFunctionW (_In_z_ LPCWSTR pszName, _In_ PRIVILEGED_FUNCTION fn, _In_opt_ LPARAM lParam)
 
BOOL WINAPI SHTestTokenPrivilegeW (_In_opt_ HANDLE hToken, _In_z_ LPCWSTR lpName)
 
BOOL WINAPI IsSuspendAllowed (VOID)
 
BOOL WINAPI Activate_RunDLL (_In_ HWND hwnd, _In_ HINSTANCE hinst, _In_ LPCWSTR cmdline, _In_ INT cmdshow)
 
BOOL WINAPI SHSettingsChanged (LPCVOID unused, LPCWSTR pszKey)
 
void WINAPI ShellDDEInit (BOOL bInit)
 
IStream *WINAPI SHGetViewStream (LPCITEMIDLIST, DWORD, LPCTSTR, LPCTSTR, LPCTSTR)
 
HRESULT WINAPI SHCreateSessionKey (REGSAM samDesired, PHKEY phKey)
 
LONG WINAPI SHRegQueryValueExA (HKEY hkey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
 
LONG WINAPI SHRegQueryValueExW (HKEY hkey, LPCWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData)
 
BOOL WINAPI SHIsBadInterfacePtr (_In_ LPCVOID pv, _In_ UINT_PTR ucb)
 
HRESULT WINAPI CopyStreamUI (_In_ IStream *pSrc, _Out_ IStream *pDst, _Inout_opt_ IProgressDialog *pProgress, _In_opt_ DWORDLONG dwlSize)
 
HRESULT WINAPI SHGetComputerDisplayNameW (_In_opt_ LPWSTR pszServerName, _In_ DWORD dwFlags, _Out_writes_z_(cchNameMax) LPWSTR pszName, _In_ DWORD cchNameMax)
 

Macro Definition Documentation

◆ BBID_STARTANIMATION

#define BBID_STARTANIMATION   1

Definition at line 893 of file undocshell.h.

◆ BBID_STOPANIMATION

#define BBID_STOPANIMATION   2

Definition at line 894 of file undocshell.h.

◆ CSIDL_FOLDER_MASK

#define CSIDL_FOLDER_MASK   0x00ff

Definition at line 778 of file undocshell.h.

◆ CWM_GETISHELLBROWSER

#define CWM_GETISHELLBROWSER   (WM_USER + 7)

Definition at line 230 of file undocshell.h.

◆ CWM_GETPATH

#define CWM_GETPATH   (WM_USER + 12)

Definition at line 233 of file undocshell.h.

◆ CWM_GETSETCURRENTINFO

#define CWM_GETSETCURRENTINFO   (WM_USER + 4)

Definition at line 227 of file undocshell.h.

◆ CWM_SELECTITEM

#define CWM_SELECTITEM   (WM_USER + 5)

Definition at line 228 of file undocshell.h.

◆ CWM_SELECTITEMSTR

#define CWM_SELECTITEMSTR   (WM_USER + 6)

Definition at line 229 of file undocshell.h.

◆ CWM_SETPATH

#define CWM_SETPATH   (WM_USER + 2)

Definition at line 225 of file undocshell.h.

◆ CWM_STATECHANGE

#define CWM_STATECHANGE   (WM_USER + 10)

Definition at line 232 of file undocshell.h.

◆ CWM_TESTPATH

#define CWM_TESTPATH   (WM_USER + 9)

Definition at line 231 of file undocshell.h.

◆ CWM_WANTIDLE

#define CWM_WANTIDLE   (WM_USER + 3)

Definition at line 226 of file undocshell.h.

◆ CWTP_ISCHILD

#define CWTP_ISCHILD   1

Definition at line 239 of file undocshell.h.

◆ CWTP_ISEQUAL

#define CWTP_ISEQUAL   0

Definition at line 238 of file undocshell.h.

◆ DE_ACCESSDENIEDSRC

#define DE_ACCESSDENIEDSRC   0x78

Definition at line 545 of file undocshell.h.

◆ DE_DEST_IS_CDRECORD

#define DE_DEST_IS_CDRECORD   0x84

Definition at line 555 of file undocshell.h.

◆ DE_DEST_IS_CDROM

#define DE_DEST_IS_CDROM   0x82

Definition at line 553 of file undocshell.h.

◆ DE_DEST_IS_DVD

#define DE_DEST_IS_DVD   0x83

Definition at line 554 of file undocshell.h.

◆ DE_DESTSAMETREE

#define DE_DESTSAMETREE   0x7D

Definition at line 549 of file undocshell.h.

◆ DE_DESTSUBTREE

#define DE_DESTSUBTREE   0x76

Definition at line 544 of file undocshell.h.

◆ DE_DIFFDIR

#define DE_DIFFDIR   0x73

Definition at line 541 of file undocshell.h.

◆ DE_FILE_TOO_LARGE

#define DE_FILE_TOO_LARGE   0x85

Definition at line 556 of file undocshell.h.

◆ DE_FILEDESTISFLD

#define DE_FILEDESTISFLD   0x80

Definition at line 551 of file undocshell.h.

◆ DE_FILENAMETOOLONG

#define DE_FILENAMETOOLONG   0x81

Definition at line 552 of file undocshell.h.

◆ DE_FLDDESTISFILE

#define DE_FLDDESTISFILE   0x7E

Definition at line 550 of file undocshell.h.

◆ DE_INVALIDFILES

#define DE_INVALIDFILES   0x7C

Definition at line 548 of file undocshell.h.

◆ DE_MANYDEST

#define DE_MANYDEST   0x7A

Definition at line 547 of file undocshell.h.

◆ DE_MANYSRC1DEST

#define DE_MANYSRC1DEST   0x72

Definition at line 540 of file undocshell.h.

◆ DE_OPCANCELLED

#define DE_OPCANCELLED   0x75

Definition at line 543 of file undocshell.h.

◆ DE_PATHTOODEEP

#define DE_PATHTOODEEP   0x79

Definition at line 546 of file undocshell.h.

◆ DE_ROOTDIR

#define DE_ROOTDIR   0x74

Definition at line 542 of file undocshell.h.

◆ DE_SAMEFILE

#define DE_SAMEFILE   0x71

Definition at line 539 of file undocshell.h.

◆ DE_SRC_IS_CDRECORD

#define DE_SRC_IS_CDRECORD   0x88

Definition at line 559 of file undocshell.h.

◆ DE_SRC_IS_CDROM

#define DE_SRC_IS_CDROM   0x86

Definition at line 557 of file undocshell.h.

◆ DE_SRC_IS_DVD

#define DE_SRC_IS_DVD   0x87

Definition at line 558 of file undocshell.h.

◆ ERRORONDEST

#define ERRORONDEST   0x10000

Definition at line 561 of file undocshell.h.

◆ EXP_KNOWN_FOLDER_SIG

#define EXP_KNOWN_FOLDER_SIG   0xa000000b

Definition at line 1202 of file undocshell.h.

◆ EXP_SHIM_SIG

#define EXP_SHIM_SIG   0xa0000008

Definition at line 1201 of file undocshell.h.

◆ EXP_TRACKER_SIG

#define EXP_TRACKER_SIG   0xa0000003

Definition at line 1200 of file undocshell.h.

◆ EXP_VISTA_ID_LIST_SIG

#define EXP_VISTA_ID_LIST_SIG   0xa000000c

Definition at line 1203 of file undocshell.h.

◆ FM_BLANK_ICON

#define FM_BLANK_ICON   -1

Definition at line 309 of file undocshell.h.

◆ FM_DEFAULT_HEIGHT

#define FM_DEFAULT_HEIGHT   0

Definition at line 310 of file undocshell.h.

◆ FM_DEFAULT_SELHEIGHT

#define FM_DEFAULT_SELHEIGHT   -1

Definition at line 290 of file undocshell.h.

◆ FM_FULL_SELHEIGHT

#define FM_FULL_SELHEIGHT   0

Definition at line 291 of file undocshell.h.

◆ FM_SEPARATOR

#define FM_SEPARATOR   (LPCSTR)1

Definition at line 308 of file undocshell.h.

◆ FMF_LARGE_ICONS

#define FMF_LARGE_ICONS   0x08

Definition at line 295 of file undocshell.h.

◆ FMF_NO_COLUMN_BREAK

#define FMF_NO_COLUMN_BREAK   0x10

Definition at line 296 of file undocshell.h.

◆ FMF_NO_EMPTY_ITEM

#define FMF_NO_EMPTY_ITEM   0x01

Definition at line 321 of file undocshell.h.

◆ FMF_NO_PROGRAM_GROUPS

#define FMF_NO_PROGRAM_GROUPS   0x04

Definition at line 322 of file undocshell.h.

◆ FMF_SMALL_ICONS

#define FMF_SMALL_ICONS   0x00

Definition at line 294 of file undocshell.h.

◆ FMT_USE_DECIMAL

#define FMT_USE_DECIMAL   0x08

Definition at line 816 of file undocshell.h.

◆ FMT_USE_GROUPING

#define FMT_USE_GROUPING   0x04

Definition at line 815 of file undocshell.h.

◆ FMT_USE_LEADZERO

#define FMT_USE_LEADZERO   0x02

Definition at line 814 of file undocshell.h.

◆ FMT_USE_NEGNUMBER

#define FMT_USE_NEGNUMBER   0x20

Definition at line 818 of file undocshell.h.

◆ FMT_USE_NUMDIGITS

#define FMT_USE_NUMDIGITS   0x01

Definition at line 813 of file undocshell.h.

◆ FMT_USE_THOUSAND

#define FMT_USE_THOUSAND   0x10

Definition at line 817 of file undocshell.h.

◆ IDB_GOBUTTON_HOT

#define IDB_GOBUTTON_HOT   0x0e7

Definition at line 872 of file undocshell.h.

◆ IDB_GOBUTTON_NORMAL

#define IDB_GOBUTTON_NORMAL   0x0e6

Definition at line 871 of file undocshell.h.

◆ ILGDN_FORPARSING

#define ILGDN_FORPARSING   0

Definition at line 71 of file undocshell.h.

◆ ILGDN_INFOLDER

#define ILGDN_INFOLDER   2

Definition at line 73 of file undocshell.h.

◆ ILGDN_NORMAL

#define ILGDN_NORMAL   1

Definition at line 72 of file undocshell.h.

◆ INVALID_FILETITLE_CHARACTERS

#define INVALID_FILETITLE_CHARACTERS   INVALID_FILETITLE_CHARACTERSA

Definition at line 989 of file undocshell.h.

◆ INVALID_FILETITLE_CHARACTERSA

#define INVALID_FILETITLE_CHARACTERSA   "\\/:*?\"<>|"

Definition at line 983 of file undocshell.h.

◆ INVALID_FILETITLE_CHARACTERSW

#define INVALID_FILETITLE_CHARACTERSW   L"\\/:*?\"<>|"

Definition at line 984 of file undocshell.h.

◆ ITBBID_ADDRESSBAND

#define ITBBID_ADDRESSBAND   4

Definition at line 878 of file undocshell.h.

◆ ITBBID_BRANDBAND

#define ITBBID_BRANDBAND   5

Definition at line 876 of file undocshell.h.

◆ ITBBID_MENUBAND

#define ITBBID_MENUBAND   1

Definition at line 875 of file undocshell.h.

◆ ITBBID_TOOLSBAND

#define ITBBID_TOOLSBAND   2

Definition at line 877 of file undocshell.h.

◆ ITID_ADDRESSBANDSHOWN

#define ITID_ADDRESSBANDSHOWN   5

Definition at line 885 of file undocshell.h.

◆ ITID_AUTOHIDEENABLED

#define ITID_AUTOHIDEENABLED   13

Definition at line 888 of file undocshell.h.

◆ ITID_CUSTOMIZEENABLED

#define ITID_CUSTOMIZEENABLED   20

Definition at line 889 of file undocshell.h.

◆ ITID_LINKSBANDSHOWN

#define ITID_LINKSBANDSHOWN   6

Definition at line 886 of file undocshell.h.

◆ ITID_MENUBANDSHOWN

#define ITID_MENUBANDSHOWN   12

Definition at line 887 of file undocshell.h.

◆ ITID_TEXTLABELS

#define ITID_TEXTLABELS   3

Definition at line 883 of file undocshell.h.

◆ ITID_TOOLBARBANDSHOWN

#define ITID_TOOLBARBANDSHOWN   4

Definition at line 884 of file undocshell.h.

◆ ITID_TOOLBARLOCKED

#define ITID_TOOLBARLOCKED   27

Definition at line 890 of file undocshell.h.

◆ PPCF_DONTRESOLVE

#define PPCF_DONTRESOLVE   0x20

Definition at line 509 of file undocshell.h.

◆ PPCF_INCLUDEARGS

#define PPCF_INCLUDEARGS   0x02

Definition at line 507 of file undocshell.h.

◆ PPCF_PATHISRELATIVE

#define PPCF_PATHISRELATIVE   0x40

Definition at line 510 of file undocshell.h.

◆ PPCF_QUOTEPATH

#define PPCF_QUOTEPATH   0x01 /* implies PPCF_INCLUDEARGS */

Definition at line 506 of file undocshell.h.

◆ PRF_CHECKEXISTANCE

#define PRF_CHECKEXISTANCE   0x01

Definition at line 494 of file undocshell.h.

◆ PRF_EXECUTABLE

#define PRF_EXECUTABLE   0x02

Definition at line 495 of file undocshell.h.

◆ PRF_QUALIFYONPATH

#define PRF_QUALIFYONPATH   0x04

Definition at line 496 of file undocshell.h.

◆ PRF_WINDOWS31

#define PRF_WINDOWS31   0x08

Definition at line 497 of file undocshell.h.

◆ REGSHELLSTATE_SIZE

#define REGSHELLSTATE_SIZE   0x24

Definition at line 572 of file undocshell.h.

◆ REGSHELLSTATE_VERSION

#define REGSHELLSTATE_VERSION   0xD

Definition at line 573 of file undocshell.h.

◆ RF_CANCEL

#define RF_CANCEL   0x01

Definition at line 181 of file undocshell.h.

◆ RF_OK

#define RF_OK   0x00

Definition at line 180 of file undocshell.h.

◆ RF_RETRY

#define RF_RETRY   0x02

Definition at line 182 of file undocshell.h.

◆ RFF_CALCDIRECTORY

#define RFF_CALCDIRECTORY   0x04 /* Calculates the working directory from the file name */

Definition at line 152 of file undocshell.h.

◆ RFF_NOBROWSE

#define RFF_NOBROWSE   0x01 /* Removes the browse button */

Definition at line 150 of file undocshell.h.

◆ RFF_NODEFAULT

#define RFF_NODEFAULT   0x02 /* No default item selected */

Definition at line 151 of file undocshell.h.

◆ RFF_NOLABEL

#define RFF_NOLABEL   0x08 /* Removes the edit box label */

Definition at line 153 of file undocshell.h.

◆ RFF_NOSEPARATEMEM

#define RFF_NOSEPARATEMEM   0x20 /* Removes the Separate Memory Space check box (Windows NT only) */

Definition at line 154 of file undocshell.h.

◆ RFN_VALIDATE

#define RFN_VALIDATE   (-510)

Definition at line 157 of file undocshell.h.

◆ RSH_DEREGISTER

#define RSH_DEREGISTER   0

Definition at line 737 of file undocshell.h.

◆ RSH_REGISTER

#define RSH_REGISTER   1

Definition at line 738 of file undocshell.h.

◆ RSH_REGISTER_PROGMAN

#define RSH_REGISTER_PROGMAN   2

Definition at line 739 of file undocshell.h.

◆ RSH_REGISTER_TASKMAN

#define RSH_REGISTER_TASKMAN   3

Definition at line 740 of file undocshell.h.

◆ SECL_ALLOW_NONEXE

#define SECL_ALLOW_NONEXE   0x20

Definition at line 650 of file undocshell.h.

◆ SECL_LOG_USAGE

#define SECL_LOG_USAGE   0x8

Definition at line 648 of file undocshell.h.

◆ SECL_NO_UI

#define SECL_NO_UI   0x2

Definition at line 647 of file undocshell.h.

◆ SECL_RUNAS

#define SECL_RUNAS   0x40

Definition at line 651 of file undocshell.h.

◆ SECL_USE_IDLIST

#define SECL_USE_IDLIST   0x10

Definition at line 649 of file undocshell.h.

◆ SHCLF_CREATEONDESKTOP

#define SHCLF_CREATEONDESKTOP   0x02

Definition at line 763 of file undocshell.h.

◆ SHCLF_PREFIXNAME

#define SHCLF_PREFIXNAME   0x01

Definition at line 762 of file undocshell.h.

◆ SHCNF_PRINTJOBA

#define SHCNF_PRINTJOBA   0x0004

Definition at line 140 of file undocshell.h.

◆ SHCNF_PRINTJOBW

#define SHCNF_PRINTJOBW   0x0007

Definition at line 141 of file undocshell.h.

◆ SHCNRF_InterruptLevel

#define SHCNRF_InterruptLevel   0x0001

Definition at line 122 of file undocshell.h.

◆ SHCNRF_NewDelivery

#define SHCNRF_NewDelivery   0x8000 /* Messages use shared memory */

Definition at line 125 of file undocshell.h.

◆ SHCNRF_RecursiveInterrupt

#define SHCNRF_RecursiveInterrupt   0x1000 /* Must be combined with SHCNRF_InterruptLevel */

Definition at line 124 of file undocshell.h.

◆ SHCNRF_ShellLevel

#define SHCNRF_ShellLevel   0x0002

Definition at line 123 of file undocshell.h.

◆ SHGCDN_NOCACHE

#define SHGCDN_NOCACHE   0x1

Definition at line 969 of file undocshell.h.

◆ SHGCDN_NOSERVERNAME

#define SHGCDN_NOSERVERNAME   0x10000

Definition at line 970 of file undocshell.h.

◆ SHRegQueryValueEx

#define SHRegQueryValueEx   SHRegQueryValueExA

Definition at line 953 of file undocshell.h.

◆ SHWFF_ADD

#define SHWFF_ADD   0x01

Definition at line 630 of file undocshell.h.

◆ SHWFF_REMOVE

#define SHWFF_REMOVE   0x02

Definition at line 631 of file undocshell.h.

◆ SHWFF_WAIT

#define SHWFF_WAIT   0x04

Definition at line 632 of file undocshell.h.

◆ SLI_CNR_VALID_DEVICE

#define SLI_CNR_VALID_DEVICE   0x00000001

Definition at line 1148 of file undocshell.h.

◆ SLI_CNR_VALID_NET_TYPE

#define SLI_CNR_VALID_NET_TYPE   0x00000002

Definition at line 1150 of file undocshell.h.

◆ SLI_VALID_LOCAL

#define SLI_VALID_LOCAL   0x00000001

Definition at line 1069 of file undocshell.h.

◆ SLI_VALID_NETWORK

#define SLI_VALID_NETWORK   0x00000002

Definition at line 1071 of file undocshell.h.

◆ SMC_EXEC

#define SMC_EXEC   4

Definition at line 783 of file undocshell.h.

◆ SMSET_UNKNOWN08

#define SMSET_UNKNOWN08   0x08

Definition at line 897 of file undocshell.h.

◆ SMSET_UNKNOWN10

#define SMSET_UNKNOWN10   0x10

Definition at line 898 of file undocshell.h.

◆ TABDMC_APPBAR

#define TABDMC_APPBAR   0

Definition at line 926 of file undocshell.h.

◆ TABDMC_LOADINPROC

#define TABDMC_LOADINPROC   2

Definition at line 928 of file undocshell.h.

◆ TABDMC_NOTIFY

#define TABDMC_NOTIFY   1

Definition at line 927 of file undocshell.h.

◆ TRAYCMD_CASCADE

#define TRAYCMD_CASCADE   403

Definition at line 904 of file undocshell.h.

◆ TRAYCMD_CONTROL_PANEL

#define TRAYCMD_CONTROL_PANEL   505

Definition at line 917 of file undocshell.h.

◆ TRAYCMD_CUSTOMIZE_TASKBAR

#define TRAYCMD_CUSTOMIZE_TASKBAR   421

Definition at line 914 of file undocshell.h.

◆ TRAYCMD_DATE_AND_TIME

#define TRAYCMD_DATE_AND_TIME   408

Definition at line 908 of file undocshell.h.

◆ TRAYCMD_HELP_AND_SUPPORT

#define TRAYCMD_HELP_AND_SUPPORT   503

Definition at line 916 of file undocshell.h.

◆ TRAYCMD_LOCK_DESKTOP

#define TRAYCMD_LOCK_DESKTOP   517

Definition at line 920 of file undocshell.h.

◆ TRAYCMD_LOCK_TASKBAR

#define TRAYCMD_LOCK_TASKBAR   424

Definition at line 915 of file undocshell.h.

◆ TRAYCMD_LOGOFF_DIALOG

#define TRAYCMD_LOGOFF_DIALOG   402

Definition at line 903 of file undocshell.h.

◆ TRAYCMD_MINIMIZE_ALL

#define TRAYCMD_MINIMIZE_ALL   415

Definition at line 910 of file undocshell.h.

◆ TRAYCMD_PRINTERS_AND_FAXES

#define TRAYCMD_PRINTERS_AND_FAXES   510

Definition at line 919 of file undocshell.h.

◆ TRAYCMD_RESTORE_ALL

#define TRAYCMD_RESTORE_ALL   416

Definition at line 911 of file undocshell.h.

◆ TRAYCMD_RUN_DIALOG

#define TRAYCMD_RUN_DIALOG   401

Definition at line 902 of file undocshell.h.

◆ TRAYCMD_SEARCH_COMPUTERS

#define TRAYCMD_SEARCH_COMPUTERS   41094

Definition at line 923 of file undocshell.h.

◆ TRAYCMD_SEARCH_FILES

#define TRAYCMD_SEARCH_FILES   41093

Definition at line 922 of file undocshell.h.

◆ TRAYCMD_SHOW_DESKTOP

#define TRAYCMD_SHOW_DESKTOP   419

Definition at line 912 of file undocshell.h.

◆ TRAYCMD_SHOW_TASK_MGR

#define TRAYCMD_SHOW_TASK_MGR   420

Definition at line 913 of file undocshell.h.

◆ TRAYCMD_SHUTDOWN_DIALOG

#define TRAYCMD_SHUTDOWN_DIALOG   506

Definition at line 918 of file undocshell.h.

◆ TRAYCMD_STARTMENU

#define TRAYCMD_STARTMENU   305

Definition at line 901 of file undocshell.h.

◆ TRAYCMD_SWITCH_USER_DIALOG

#define TRAYCMD_SWITCH_USER_DIALOG   5000

Definition at line 921 of file undocshell.h.

◆ TRAYCMD_TASKBAR_PROPERTIES

#define TRAYCMD_TASKBAR_PROPERTIES   413

Definition at line 909 of file undocshell.h.

◆ TRAYCMD_TILE_H

#define TRAYCMD_TILE_H   404

Definition at line 905 of file undocshell.h.

◆ TRAYCMD_TILE_V

#define TRAYCMD_TILE_V   405

Definition at line 906 of file undocshell.h.

◆ TRAYCMD_TOGGLE_DESKTOP

#define TRAYCMD_TOGGLE_DESKTOP   407

Definition at line 907 of file undocshell.h.

◆ TWM_CYCLEFOCUS

#define TWM_CYCLEFOCUS   (WM_USER + 348)

Definition at line 55 of file undocshell.h.

◆ TWM_DOEXITWINDOWS

#define TWM_DOEXITWINDOWS   (WM_USER + 342)

Definition at line 54 of file undocshell.h.

◆ WM_GETISHELLBROWSER

#define WM_GETISHELLBROWSER   CWM_GETISHELLBROWSER

Definition at line 235 of file undocshell.h.

◆ WM_PROGMAN_OPENSHELLSETTINGS

#define WM_PROGMAN_OPENSHELLSETTINGS   (WM_USER + 22) /* wParam specifies the dialog (and tab page) */

Definition at line 60 of file undocshell.h.

◆ WM_PROGMAN_SAVESTATE

#define WM_PROGMAN_SAVESTATE   (WM_USER + 77)

Definition at line 61 of file undocshell.h.

Typedef Documentation

◆ EXP_KNOWN_FOLDER

◆ EXP_SHIM

◆ EXP_TRACKER

◆ EXP_VISTA_ID_LIST

◆ LPCSFVCBINFO

Definition at line 588 of file undocshell.h.

◆ LPCSFVCOPYHOOKINFO

Definition at line 611 of file undocshell.h.

◆ LPCSFVSELECTSTATE

Definition at line 598 of file undocshell.h.

◆ LPCWTESTPATHSTRUCT

◆ LPEXP_KNOWN_FOLDER

◆ LPEXP_SHIM

◆ LPEXP_TRACKER

◆ LPEXP_VISTA_ID_LIST

◆ LPFNCDCOCALLBACK

typedef HRESULT(CALLBACK * LPFNCDCOCALLBACK) (LPUNKNOWN pUnkOuter, REFIID riidObject, LPVOID *ppvObject)

Definition at line 747 of file undocshell.h.

◆ LPFNFMCALLBACK

typedef void(CALLBACK * LPFNFMCALLBACK) (LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlFile)

Definition at line 325 of file undocshell.h.

◆ LPNMRUNFILEDLG

Definition at line 177 of file undocshell.h.

◆ LPNMRUNFILEDLGW

◆ LPSFVCBINFO

◆ LPSFVCOLUMNINFO

◆ LPSFVCOPYHOOKINFO

◆ LPSFVM_CUSTOMVIEWINFO_DATA

◆ LPSFVSELECTSTATE

◆ LPSHELL_LINK_HEADER

◆ LPSHELL_LINK_INFO_CNR_LINKA

◆ LPSHELL_LINK_INFO_CNR_LINKW

◆ LPSHELL_LINK_INFO_VOLUME_IDA

◆ LPSHELL_LINK_INFO_VOLUME_IDW

◆ LPSHELL_LINK_INFOA

◆ LPSHELL_LINK_INFOW

◆ NMRUNFILEDLG

Definition at line 175 of file undocshell.h.

◆ NMRUNFILEDLGW

◆ PNMRUNFILEDLG

Definition at line 176 of file undocshell.h.

◆ PNMRUNFILEDLGW

◆ PREGSHELLSTATE

◆ PRIVILEGED_FUNCTION

typedef HRESULT(CALLBACK * PRIVILEGED_FUNCTION) (LPARAM lParam)

Definition at line 846 of file undocshell.h.

◆ PSHCNF_PRINTJOB_INFO

◆ REGSHELLSTATE

◆ SFVM_CUSTOMVIEWINFO_DATA

◆ SHCNF_PRINTJOB_INFO

◆ SHELL_LINK_HEADER

◆ SHELL_LINK_INFO_CNR_LINKA

◆ SHELL_LINK_INFO_CNR_LINKW

◆ SHELL_LINK_INFO_VOLUME_IDA

◆ SHELL_LINK_INFO_VOLUME_IDW

◆ SHELL_LINK_INFOA

◆ SHELL_LINK_INFOW

Function Documentation

◆ Activate_RunDLL()

BOOL WINAPI Activate_RunDLL ( _In_ HWND  hwnd,
_In_ HINSTANCE  hinst,
_In_ LPCWSTR  cmdline,
_In_ INT  cmdshow 
)

Definition at line 1451 of file utils.cpp.

1456{
1457 DWORD dwProcessID;
1458
1462 UNREFERENCED_PARAMETER(cmdshow);
1463
1464 TRACE("(%p, %p, %s, %d)\n", hwnd, hinst, debugstr_w(cmdline), cmdline);
1465
1467 return AllowSetForegroundWindow(dwProcessID);
1468}
unsigned long DWORD
Definition: ntddk_ex.h:95
#define debugstr_w
Definition: kernel32.h:32
static HINSTANCE hinst
Definition: edit.c:551
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325
#define TRACE(s)
Definition: solgame.cpp:4
TCHAR * cmdline
Definition: stretchblt.cpp:32
BOOL WINAPI AllowSetForegroundWindow(DWORD dwProcessId)
Definition: window.c:49
HWND WINAPI GetShellWindow(void)
Definition: input.c:974
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ ArrangeWindows()

WORD WINAPI ArrangeWindows ( HWND  hwndParent,
DWORD  dwReserved,
LPCRECT  lpRect,
WORD  cKids,
CONST HWND lpKids 
)

◆ C_ASSERT()

◆ CheckEscapesA()

VOID WINAPI CheckEscapesA ( LPSTR  string,
DWORD  len 
)

Definition at line 227 of file shellstring.c.

230{
231 LPWSTR wString;
232 TRACE("(%s %d)\n", debugstr_a(string), len);
233
234 if (!string || !string[0])
235 return;
236
237 wString = LocalAlloc(LPTR, len * sizeof(WCHAR));
238 if (!wString)
239 return;
240
241 SHAnsiToUnicode(string, wString, len);
242 CheckEscapesW(wString, len);
243 SHUnicodeToAnsi(wString, string, len);
244 LocalFree(wString);
245}
DWORD WINAPI SHAnsiToUnicode(LPCSTR lpSrcStr, LPWSTR lpDstStr, int iLen)
Definition: string.c:2673
INT WINAPI SHUnicodeToAnsi(LPCWSTR lpSrcStr, LPSTR lpDstStr, INT iLen)
Definition: string.c:2797
GLenum GLsizei len
Definition: glext.h:6722
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define debugstr_a
Definition: kernel32.h:31
VOID WINAPI CheckEscapesW(LPWSTR string, DWORD len)
Definition: shellstring.c:252
#define LPTR
Definition: winbase.h:407
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ CheckEscapesW()

VOID WINAPI CheckEscapesW ( LPWSTR  string,
DWORD  len 
)

Definition at line 252 of file shellstring.c.

255{
256 DWORD size = lstrlenW(string);
257 LPWSTR s, d;
258
259 TRACE("(%s %d) stub\n", debugstr_w(string), len);
260
261 if (StrPBrkW(string, L" \",;^") && size + 2 <= len)
262 {
263 s = &string[size - 1];
264 d = &string[size + 2];
265 *d-- = 0;
266 *d-- = '"';
267 for (;d > string;)
268 *d-- = *s--;
269 *d = '"';
270 }
271}
#define lstrlenW
Definition: compat.h:750
LPWSTR WINAPI StrPBrkW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
Definition: string.c:1284
GLdouble s
Definition: gl.h:2039
GLsizeiptr size
Definition: glext.h:5919
#define d
Definition: ke_i.h:81
char string[160]
Definition: util.h:11
#define L(x)
Definition: ntvdm.h:50

Referenced by CheckEscapesA().

◆ CopyStreamUI()

HRESULT WINAPI CopyStreamUI ( _In_ IStream pSrc,
_Out_ IStream pDst,
_Inout_opt_ IProgressDialog *  pProgress,
_In_opt_ DWORDLONG  dwlSize 
)

Definition at line 1333 of file utils.cpp.

1338{
1339 HRESULT hr = E_FAIL;
1340 DWORD cbBuff, cbRead, dwSizeToWrite;
1341 DWORDLONG cbDone;
1342 LPVOID pBuff;
1343 CComHeapPtr<BYTE> pHeapPtr;
1344 STATSTG Stat;
1345 BYTE abBuff[1024];
1346
1347 TRACE("(%p, %p, %p, %I64u)\n", pSrc, pDst, pProgress, dwlSize);
1348
1349 if (dwlSize == 0) // Invalid size?
1350 {
1351 // Get the stream size
1352 ZeroMemory(&Stat, sizeof(Stat));
1353 if (FAILED(pSrc->Stat(&Stat, STATFLAG_NONAME)))
1354 pProgress = NULL; // No size info. Disable progress
1355 else
1356 dwlSize = Stat.cbSize.QuadPart;
1357 }
1358
1359 if (!pProgress) // Progress is disabled?
1360 {
1361 ULARGE_INTEGER uliSize;
1362
1363 if (dwlSize > 0)
1364 uliSize.QuadPart = dwlSize;
1365 else
1366 uliSize.HighPart = uliSize.LowPart = INVALID_FILE_SIZE;
1367
1368 return pSrc->CopyTo(pDst, uliSize, NULL, NULL); // One punch
1369 }
1370
1371 // Allocate the buffer if necessary
1372 if (dwlSize > 0 && dwlSize <= sizeof(abBuff))
1373 {
1374 cbBuff = sizeof(abBuff);
1375 pBuff = abBuff;
1376 }
1377 else
1378 {
1379#define COPY_STREAM_DEFAULT_BUFFER_SIZE 0x4000
1381 if (pHeapPtr.AllocateBytes(cbBuff))
1382 {
1383 pBuff = pHeapPtr;
1384 }
1385 else // Low memory?
1386 {
1387 cbBuff = sizeof(abBuff);
1388 pBuff = abBuff;
1389 }
1390#undef COPY_STREAM_DEFAULT_BUFFER_SIZE
1391 }
1392
1393 // Start reading
1395 zero.QuadPart = 0;
1396 pSrc->Seek(zero, 0, NULL);
1397 pDst->Seek(zero, 0, NULL);
1398 cbDone = 0;
1399 pProgress->SetProgress64(cbDone, dwlSize);
1400
1401 // Repeat reading and writing until goal
1402 for (;;)
1403 {
1404 hr = pSrc->Read(pBuff, cbBuff, &cbRead);
1405 if (FAILED(hr))
1406 break;
1407
1408 // Calculate the size to write
1409 if (dwlSize > 0)
1410 dwSizeToWrite = (DWORD)min((DWORDLONG)(dwlSize - cbDone), (DWORDLONG)cbRead);
1411 else
1412 dwSizeToWrite = cbRead;
1413
1414 if (dwSizeToWrite == 0) // No need to write?
1415 {
1416 hr = S_OK;
1417 break;
1418 }
1419
1420 hr = pDst->Write(pBuff, dwSizeToWrite, NULL);
1421 if (hr != S_OK)
1422 break;
1423
1424 cbDone += dwSizeToWrite;
1425
1426 if (pProgress->HasUserCancelled()) // Cancelled?
1427 {
1429 break;
1430 }
1431 pProgress->SetProgress64(cbDone, dwlSize);
1432
1433 if (dwlSize > 0 && cbDone >= dwlSize) // Reached the goal?
1434 {
1435 hr = S_OK;
1436 break;
1437 }
1438 }
1439
1440 return hr;
1441}
bool AllocateBytes(_In_ size_t nBytes)
Definition: atlalloc.h:127
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
#define COPY_STREAM_DEFAULT_BUFFER_SIZE
#define S_OK
Definition: intsafe.h:52
unsigned long long DWORDLONG
Definition: intsafe.h:93
#define FAILED(hr)
Definition: intsafe.h:51
#define Stat
Definition: syshdrs.h:78
#define min(a, b)
Definition: monoChain.cc:55
#define DWORD
Definition: nt_native.h:44
int zero
Definition: sehframes.cpp:29
HRESULT hr
Definition: shlfolder.c:183
$ULONG LowPart
Definition: ntbasedef.h:577
ULONGLONG QuadPart
Definition: ms-dtyp.idl:185
$ULONG HighPart
Definition: ntbasedef.h:578
#define ZeroMemory
Definition: winbase.h:1737
#define INVALID_FILE_SIZE
Definition: winbase.h:574
#define ERROR_CANCELLED
Definition: winerror.h:726
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
unsigned char BYTE
Definition: xxhash.c:193

◆ DAD_DragEnter()

BOOL WINAPI DAD_DragEnter ( HWND  hWnd)

Definition at line 1745 of file shellord.c.

1746{
1747 FIXME("hwnd = %p\n",hwnd);
1748 return FALSE;
1749}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define FALSE
Definition: types.h:117

◆ DAD_SetDragImageFromListView()

BOOL WINAPI DAD_SetDragImageFromListView ( HWND  hWnd,
POINT  pt 
)

Definition at line 618 of file stubs.cpp.

619{
620 FIXME("DAD_SetDragImageFromListView() stub\n");
621 return FALSE;
622}

◆ DAD_ShowDragImage()

BOOL WINAPI DAD_ShowDragImage ( BOOL  bShow)

Definition at line 1796 of file shellord.c.

1797{
1798 FIXME("0x%08x stub\n",bShow);
1799 return FALSE;
1800}

◆ ExitWindowsDialog()

void WINAPI ExitWindowsDialog ( HWND  hWndOwner)

Definition at line 1594 of file dialogs.cpp.

1595{
1596 typedef DWORD (WINAPI *ShellShFunc)(HWND hParent, WCHAR *Username, BOOL bHideLogoff);
1597 HINSTANCE msginaDll = LoadLibraryW(L"msgina.dll");
1598
1599 TRACE("(%p)\n", hWndOwner);
1600
1601 CComPtr<IUnknown> fadeHandler;
1602 HWND parent;
1603 if (!CallShellDimScreen(&fadeHandler, &parent))
1604 parent = hWndOwner;
1605
1606 /* If the DLL cannot be found for any reason, then it simply uses a
1607 dialog box to ask if the user wants to shut down the computer. */
1608 if (!msginaDll)
1609 {
1610 TRACE("Unable to load msgina.dll.\n");
1612 return;
1613 }
1614
1615 ShellShFunc pShellShutdownDialog = (ShellShFunc)GetProcAddress(msginaDll, "ShellShutdownDialog");
1616
1617 if (pShellShutdownDialog)
1618 {
1619 /* Actually call the function */
1620 DWORD returnValue = pShellShutdownDialog(parent, NULL, FALSE);
1621
1622 switch (returnValue)
1623 {
1624 case 0x01: /* Log off user */
1625 {
1627 break;
1628 }
1629 case 0x02: /* Shut down */
1630 {
1631 EnablePrivilege(L"SeShutdownPrivilege", TRUE);
1633 EnablePrivilege(L"SeShutdownPrivilege", FALSE);
1634 break;
1635 }
1636 case 0x03: /* Install Updates/Shutdown (?) */
1637 {
1638 break;
1639 }
1640 case 0x04: /* Reboot */
1641 {
1642 EnablePrivilege(L"SeShutdownPrivilege", TRUE);
1644 EnablePrivilege(L"SeShutdownPrivilege", FALSE);
1645 break;
1646 }
1647 case 0x10: /* Sleep */
1648 {
1649 if (IsPwrSuspendAllowed())
1650 {
1651 EnablePrivilege(L"SeShutdownPrivilege", TRUE);
1653 EnablePrivilege(L"SeShutdownPrivilege", FALSE);
1654 }
1655 break;
1656 }
1657 case 0x40: /* Hibernate */
1658 {
1660 {
1661 EnablePrivilege(L"SeShutdownPrivilege", TRUE);
1663 EnablePrivilege(L"SeShutdownPrivilege", FALSE);
1664 }
1665 break;
1666 }
1667 /* If the option is any other value */
1668 default:
1669 break;
1670 }
1671 }
1672 else
1673 {
1674 /* If the function cannot be found, then revert to using the backup solution */
1675 TRACE("Unable to find the 'ShellShutdownDialog' function");
1677 }
1678
1679 FreeLibrary(msginaDll);
1680}
#define TRUE
Definition: types.h:120
#define GetProcAddress(x, y)
Definition: compat.h:753
#define FreeLibrary(x)
Definition: compat.h:748
#define LoadLibraryW(x)
Definition: compat.h:747
static BOOL EnablePrivilege(LPCWSTR lpszPrivilegeName, BOOL bEnablePrivilege)
Definition: dialogs.cpp:1038
VOID ExitWindowsDialog_backup(HWND hWndOwner)
Definition: dialogs.cpp:1571
BOOL CallShellDimScreen(IUnknown **pUnknown, HWND *hWindow)
Definition: dialogs.cpp:1018
r parent
Definition: btrfs.c:3010
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOLEAN WINAPI IsPwrHibernateAllowed(VOID)
Definition: powrprof.c:450
BOOLEAN WINAPI SetSuspendState(BOOLEAN Hibernate, BOOLEAN ForceCritical, BOOLEAN DisableWakeEvent)
Definition: powrprof.c:792
BOOLEAN WINAPI IsPwrSuspendAllowed(VOID)
Definition: powrprof.c:488
#define WINAPI
Definition: msvc.h:6
#define EWX_SHUTDOWN
Definition: winuser.h:639
#define EWX_LOGOFF
Definition: winuser.h:636
#define EWX_REBOOT
Definition: winuser.h:638
BOOL WINAPI ExitWindowsEx(_In_ UINT, _In_ DWORD)

Referenced by CTrayWindow::DoExitWindows(), ShowExitWindowsDialog(), and CShellDispatch::ShutdownWindows().

◆ ExtractIconResInfoA()

WORD WINAPI ExtractIconResInfoA ( _In_ HANDLE  hHandle,
_In_ LPCSTR  lpFileName,
_In_ WORD  wIndex,
_Out_ LPWORD  lpSize,
_Out_ LPHANDLE  lpIcon 
)

Definition at line 649 of file utils.cpp.

655{
656 TRACE("(%p, %s, %u, %p, %p)\n", hHandle, debugstr_a(lpFileName), wIndex, lpSize, lpIcon);
657
658 if (!lpFileName)
659 return 0;
660
661 CStringW strFileNameW(lpFileName);
662 return ExtractIconResInfoW(hHandle, strFileNameW, wIndex, lpSize, lpIcon);
663}
EXTERN_C WORD WINAPI ExtractIconResInfoW(_In_ HANDLE hHandle, _In_ LPCWSTR lpFileName, _In_ WORD wIndex, _Out_ LPWORD lpSize, _Out_ LPHANDLE lpIcon)
Definition: stubs.cpp:685
_In_ LPCSTR lpFileName
Definition: winbase.h:3096

◆ ExtractIconResInfoW()

WORD WINAPI ExtractIconResInfoW ( _In_ HANDLE  hHandle,
_In_ LPCWSTR  lpFileName,
_In_ WORD  wIndex,
_Out_ LPWORD  lpSize,
_Out_ LPHANDLE  lpIcon 
)

Definition at line 685 of file stubs.cpp.

691{
692 FIXME("ExtractIconResInfoW() stub\n");
693 return 0;
694}

Referenced by ExtractIconResInfoA().

◆ FileIconInit()

BOOL WINAPI FileIconInit ( BOOL  bFullInit)

Definition at line 1888 of file shellord.c.

1889{
1890 return SIC_Initialize();
1891}
BOOL SIC_Initialize(void)
Definition: iconcache.cpp:515

Referenced by DisplayImageList(), and StartWithDesktop().

◆ FileMenu_AbortInitMenu()

void WINAPI FileMenu_AbortInitMenu ( void  )

Definition at line 802 of file shlmenu.c.

803{ TRACE("\n");
805}
static BOOL bAbortInit
Definition: shlmenu.c:68

◆ FileMenu_AddFilesForPidl()

int WINAPI FileMenu_AddFilesForPidl ( HMENU  hMenu,
UINT  uReserved,
UINT  uID,
LPCITEMIDLIST  pidl,
UINT  uFlags,
UINT  uEnumFlags,
LPFNFMCALLBACK  lpfnCallback 
)

Definition at line 504 of file shlmenu.c.

512{
513 TRACE("%p 0x%08x 0x%08x %p 0x%08x 0x%08x %p\n",
514 hmenu, uReserved, uID, pidl, uFlags, uEnumFlags, lpfnCallback);
515
516 return FileMenu_InsertUsingPidl ( hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback);
517
518}
UINT uFlags
Definition: api.c:59
static HMENU hmenu
Definition: win.c:66
int WINAPI FileMenu_InsertUsingPidl(HMENU hmenu, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:414

◆ FileMenu_AppendFilesForPidl()

int WINAPI FileMenu_AppendFilesForPidl ( HMENU  hMenu,
LPCITEMIDLIST  pidl,
BOOL  bAddSeparator 
)

Definition at line 478 of file shlmenu.c.

482{
483 LPFMINFO menudata;
484
485 menudata = FM_GetMenuInfo(hmenu);
486
487 menudata->bInitialized = FALSE;
488
489 FM_InitMenuPopup(hmenu, pidl);
490
491 if (bAddSeparator)
493
494 TRACE("%p %p 0x%08x\n",hmenu, pidl,bAddSeparator);
495
496 return 0;
497}
static int FM_InitMenuPopup(HMENU hmenu, LPCITEMIDLIST pAlternatePidl)
Definition: shlmenu.c:129
static LPFMINFO FM_GetMenuInfo(HMENU hmenu)
Definition: shlmenu.c:74
static BOOL FileMenu_AppendItemW(HMENU hMenu, LPCWSTR lpText, UINT uID, int icon, HMENU hMenuPopup, int nItemHeight)
Definition: shlmenu.c:304
#define FM_SEPARATOR
Definition: shlmenu.c:39
Definition: shlmenu.c:45
BOOL bInitialized
Definition: shlmenu.c:46
#define FM_DEFAULT_HEIGHT
Definition: undocshell.h:310

◆ FileMenu_AppendItem()

BOOL WINAPI FileMenu_AppendItem ( HMENU  hMenu,
LPCSTR  lpszText,
UINT  uID,
int  iIcon,
HMENU  hMenuPopup,
int  nItemHeight 
)

◆ FileMenu_Create()

HMENU WINAPI FileMenu_Create ( COLORREF  crBorderColor,
int  nBorderWidth,
HBITMAP  hBorderBmp,
int  nSelHeight,
UINT  uFlags 
)

Definition at line 250 of file shlmenu.c.

256{
258 LPFMINFO menudata;
259
260 HMENU hMenu = CreatePopupMenu();
261
262 TRACE("0x%08x 0x%08x %p 0x%08x 0x%08x hMenu=%p\n",
263 crBorderColor, nBorderWidth, hBorderBmp, nSelHeight, uFlags, hMenu);
264
265 menudata = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(FMINFO));
266 menudata->crBorderColor = crBorderColor;
267 menudata->nBorderWidth = nBorderWidth;
268 menudata->hBorderBmp = hBorderBmp;
269
270 MenuInfo.cbSize = sizeof(MENUINFO);
271 MenuInfo.fMask = MIM_MENUDATA;
272 MenuInfo.dwMenuData = (ULONG_PTR) menudata;
273 SetMenuInfo (hMenu, &MenuInfo);
274
275 return hMenu;
276}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define ULONG_PTR
Definition: config.h:101
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
int nBorderWidth
Definition: shlmenu.c:50
COLORREF crBorderColor
Definition: shlmenu.c:49
HBITMAP hBorderBmp
Definition: shlmenu.c:51
menu info structure
Definition: window.h:276
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
BOOL WINAPI SetMenuInfo(_In_ HMENU, _In_ LPCMENUINFO)
struct tagMENUINFO MENUINFO

◆ FileMenu_DeleteAllItems()

BOOL WINAPI FileMenu_DeleteAllItems ( HMENU  hMenu)

Definition at line 669 of file shlmenu.c.

670{
671 MENUITEMINFOW mii;
672 LPFMINFO menudata;
673
674 int i;
675
676 TRACE("%p\n", hmenu);
677
678 ZeroMemory ( &mii, sizeof(MENUITEMINFOW));
679 mii.cbSize = sizeof(MENUITEMINFOW);
681
682 for (i = 0; i < GetMenuItemCount( hmenu ); i++)
683 { GetMenuItemInfoW(hmenu, i, TRUE, &mii );
684
686
687 if (mii.hSubMenu)
689 }
690
691 while (DeleteMenu (hmenu, 0, MF_BYPOSITION)){};
692
693 menudata = FM_GetMenuInfo(hmenu);
694
695 menudata->bInitialized = FALSE;
696
697 return TRUE;
698}
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
void WINAPI FileMenu_Destroy(HMENU hmenu)
Definition: shlmenu.c:284
ULONG_PTR dwItemData
Definition: winuser.h:3271
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MIIM_SUBMENU
Definition: winuser.h:726
#define MF_BYPOSITION
Definition: winuser.h:203
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)
#define MIIM_DATA
Definition: winuser.h:729
struct tagMENUITEMINFOW MENUITEMINFOW

Referenced by FileMenu_Destroy(), and FileMenu_ReplaceUsingPidl().

◆ FileMenu_DeleteItemByCmd()

BOOL WINAPI FileMenu_DeleteItemByCmd ( HMENU  hMenu,
UINT  uID 
)

Definition at line 704 of file shlmenu.c.

705{
706 MENUITEMINFOW mii;
707
708 TRACE("%p 0x%08x\n", hMenu, uID);
709
710 ZeroMemory ( &mii, sizeof(MENUITEMINFOW));
711 mii.cbSize = sizeof(MENUITEMINFOW);
712 mii.fMask = MIIM_SUBMENU;
713
714 GetMenuItemInfoW(hMenu, uID, FALSE, &mii );
715 if ( mii.hSubMenu )
716 {
717 /* FIXME: Do what? */
718 }
719
720 DeleteMenu(hMenu, MF_BYCOMMAND, uID);
721 return TRUE;
722}
#define MF_BYCOMMAND
Definition: winuser.h:202

◆ FileMenu_DeleteItemByIndex()

BOOL WINAPI FileMenu_DeleteItemByIndex ( HMENU  hMenu,
UINT  uPos 
)

Definition at line 727 of file shlmenu.c.

728{
729 MENUITEMINFOW mii;
730
731 TRACE("%p 0x%08x\n", hMenu, uPos);
732
733 ZeroMemory ( &mii, sizeof(MENUITEMINFOW));
734 mii.cbSize = sizeof(MENUITEMINFOW);
735 mii.fMask = MIIM_SUBMENU;
736
737 GetMenuItemInfoW(hMenu, uPos, TRUE, &mii );
738 if ( mii.hSubMenu )
739 {
740 /* FIXME: Do what? */
741 }
742
743 DeleteMenu(hMenu, MF_BYPOSITION, uPos);
744 return TRUE;
745}

◆ FileMenu_DeleteMenuItemByFirstID()

BOOL WINAPI FileMenu_DeleteMenuItemByFirstID ( HMENU  hMenu,
UINT  uID 
)

◆ FileMenu_DeleteSeparator()

BOOL WINAPI FileMenu_DeleteSeparator ( HMENU  hMenu)

Definition at line 761 of file shlmenu.c.

762{
763 TRACE("%p\n", hMenu);
764 return FALSE;
765}

◆ FileMenu_Destroy()

void WINAPI FileMenu_Destroy ( HMENU  hMenu)

Definition at line 284 of file shlmenu.c.

285{
286 LPFMINFO menudata;
287
288 TRACE("%p\n", hmenu);
289
291
292 menudata = FM_GetMenuInfo(hmenu);
293
294 SHFree( menudata->pidl);
295 HeapFree(GetProcessHeap(), 0, menudata);
296
298}
#define HeapFree(x, y, z)
Definition: compat.h:735
BOOL WINAPI FileMenu_DeleteAllItems(HMENU hmenu)
Definition: shlmenu.c:669
LPITEMIDLIST pidl
Definition: shlmenu.c:54
BOOL WINAPI DestroyMenu(_In_ HMENU)

Referenced by FileMenu_DeleteAllItems().

◆ FileMenu_DrawItem()

LRESULT WINAPI FileMenu_DrawItem ( HWND  hWnd,
LPDRAWITEMSTRUCT  lpdis 
)

Definition at line 586 of file shlmenu.c.

589{
590 LPFMITEM pMyItem = (LPFMITEM)(lpdis->itemData);
591 COLORREF clrPrevText, clrPrevBkgnd;
592 int xi,yi,xt,yt;
593 HIMAGELIST hImageList;
594 RECT TextRect;
595 LPFMINFO menuinfo;
596
597 TRACE("%p %p %s\n", hWnd, lpdis, debugstr_w(pMyItem->szItemText));
598
599 if (lpdis->itemState & ODS_SELECTED)
600 {
601 clrPrevText = SetTextColor(lpdis->hDC, GetSysColor (COLOR_HIGHLIGHTTEXT));
602 clrPrevBkgnd = SetBkColor(lpdis->hDC, GetSysColor (COLOR_HIGHLIGHT));
603 }
604 else
605 {
606 clrPrevText = SetTextColor(lpdis->hDC, GetSysColor (COLOR_MENUTEXT));
607 clrPrevBkgnd = SetBkColor(lpdis->hDC, GetSysColor (COLOR_MENU));
608 }
609
610 TextRect = lpdis->rcItem;
611
612 /* add the menubitmap */
613 menuinfo = FM_GetMenuInfo(pMyItem->hMenu);
614 if (menuinfo->nBorderWidth)
615 TextRect.left += menuinfo->nBorderWidth;
616
617 TextRect.left += FM_LEFTBORDER;
618 xi = TextRect.left + FM_SPACE1;
619 yi = TextRect.top + FM_Y_SPACE/2;
620 TextRect.bottom -= FM_Y_SPACE/2;
621
622 xt = xi + FM_ICON_SIZE + FM_SPACE2;
623 yt = yi;
624
625 ExtTextOutW (lpdis->hDC, xt , yt, ETO_OPAQUE, &TextRect, pMyItem->szItemText, pMyItem->cchItemText, NULL);
626
627 Shell_GetImageLists(0, &hImageList);
628 ImageList_Draw(hImageList, pMyItem->iIconIndex, lpdis->hDC, xi, yi, ILD_NORMAL);
629
630 TRACE("-- %s\n", wine_dbgstr_rect(&TextRect));
631
632 SetTextColor(lpdis->hDC, clrPrevText);
633 SetBkColor(lpdis->hDC, clrPrevBkgnd);
634
635 return TRUE;
636}
static const char * wine_dbgstr_rect(const RECT *prc)
Definition: atltest.h:160
HWND hWnd
Definition: settings.c:17
BOOL WINAPI ImageList_Draw(HIMAGELIST himl, INT i, HDC hdc, INT x, INT y, UINT fStyle)
Definition: imagelist.c:1246
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lpBigList, HIMAGELIST *lpSmallList)
Definition: iconcache.cpp:689
#define ILD_NORMAL
Definition: commctrl.h:417
#define FM_ICON_SIZE
Definition: shlmenu.c:549
#define FM_LEFTBORDER
Definition: shlmenu.c:553
struct FMITEM * LPFMITEM
#define FM_Y_SPACE
Definition: shlmenu.c:550
#define FM_SPACE1
Definition: shlmenu.c:551
#define FM_SPACE2
Definition: shlmenu.c:552
Definition: shlmenu.c:62
int cchItemText
Definition: shlmenu.c:62
int iIconIndex
Definition: shlmenu.c:63
HMENU hMenu
Definition: shlmenu.c:64
WCHAR szItemText[1]
Definition: shlmenu.c:65
ULONG_PTR itemData
Definition: winuser.h:3096
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
DWORD COLORREF
Definition: windef.h:300
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
BOOL WINAPI ExtTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCWSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
#define ETO_OPAQUE
Definition: wingdi.h:647
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:918
DWORD WINAPI GetSysColor(_In_ int)
#define ODS_SELECTED
Definition: winuser.h:2548
#define COLOR_MENU
Definition: winuser.h:920
#define COLOR_HIGHLIGHT
Definition: winuser.h:929
#define COLOR_HIGHLIGHTTEXT
Definition: winuser.h:930
#define COLOR_MENUTEXT
Definition: winuser.h:923

◆ FileMenu_EnableItemByCmd()

BOOL WINAPI FileMenu_EnableItemByCmd ( HMENU  hMenu,
UINT  uID,
BOOL  bEnable 
)

Definition at line 770 of file shlmenu.c.

774{
775 TRACE("%p 0x%08x 0x%08x\n", hMenu, uID,bEnable);
776 return FALSE;
777}
_In_ BOOL bEnable
Definition: winddi.h:3426

◆ FileMenu_FindSubMenuByPidl()

HMENU WINAPI FileMenu_FindSubMenuByPidl ( HMENU  hMenu,
LPCITEMIDLIST  pidl 
)

Definition at line 467 of file shlmenu.c.

470{
471 FIXME("%p %p\n",hMenu, pidl);
472 return 0;
473}

◆ FileMenu_GetItemExtent()

DWORD WINAPI FileMenu_GetItemExtent ( HMENU  hMenu,
UINT  uPos 
)

Definition at line 785 of file shlmenu.c.

786{ RECT rect;
787
788 FIXME("%p 0x%08x\n", hMenu, uPos);
789
790 if (GetMenuItemRect(0, hMenu, uPos, &rect))
791 {
792 FIXME("%s\n", wine_dbgstr_rect(&rect));
793 return ((rect.right-rect.left)<<16) + (rect.top-rect.bottom);
794 }
795 return 0x00100010; /*FIXME*/
796}
& rect
Definition: startmenu.cpp:1413
BOOL WINAPI GetMenuItemRect(_In_opt_ HWND, _In_ HMENU, _In_ UINT, _Out_ LPRECT)

◆ FileMenu_GetLastSelectedItemPidls()

BOOL WINAPI FileMenu_GetLastSelectedItemPidls ( UINT  uReserved,
LPCITEMIDLIST ppidlFolder,
LPCITEMIDLIST ppidlItem 
)

Definition at line 540 of file shlmenu.c.

544{
545 FIXME("0x%08x %p %p\n",uReserved, ppidlFolder, ppidlItem);
546 return FALSE;
547}

◆ FileMenu_HandleMenuChar()

LRESULT WINAPI FileMenu_HandleMenuChar ( HMENU  hMenu,
WPARAM  wParam 
)

Definition at line 655 of file shlmenu.c.

658{
659 FIXME("%p 0x%08lx\n",hMenu,wParam);
660 return 0;
661}
WPARAM wParam
Definition: combotst.c:138

◆ FileMenu_InitMenuPopup()

BOOL WINAPI FileMenu_InitMenuPopup ( HMENU  hMenu)

Definition at line 646 of file shlmenu.c.

647{
649 return TRUE;
650}

◆ FileMenu_InsertUsingPidl()

int WINAPI FileMenu_InsertUsingPidl ( HMENU  hMenu,
UINT  uID,
LPCITEMIDLIST  pidl,
UINT  uFlags,
UINT  uEnumFlags,
LPFNFMCALLBACK  lpfnCallback 
)

Definition at line 414 of file shlmenu.c.

421{
422 TRACE("%p 0x%08x %p 0x%08x 0x%08x %p\n",
423 hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback);
424
425 pdump (pidl);
426
428
429 FM_SetMenuParameter(hmenu, uID, pidl, uFlags, uEnumFlags, lpfnCallback);
430
431 return FM_InitMenuPopup(hmenu, NULL);
432}
void pdump(LPCITEMIDLIST pidl)
Definition: debughlp.cpp:322
static LPFMINFO FM_SetMenuParameter(HMENU hmenu, UINT uID, LPCITEMIDLIST pidl, UINT uFlags, UINT uEnumFlags, LPFNFMCALLBACK lpfnCallback)
Definition: shlmenu.c:100

Referenced by FileMenu_AddFilesForPidl().

◆ FileMenu_Invalidate()

void WINAPI FileMenu_Invalidate ( HMENU  hMenu)

Definition at line 459 of file shlmenu.c.

460{
461 FIXME("%p\n",hMenu);
462}

◆ FileMenu_MeasureItem()

LRESULT WINAPI FileMenu_MeasureItem ( HWND  hWnd,
LPMEASUREITEMSTRUCT  lpmis 
)

Definition at line 558 of file shlmenu.c.

561{
562 LPFMITEM pMyItem = (LPFMITEM)(lpmis->itemData);
563 HDC hdc = GetDC(hWnd);
564 SIZE size;
565 LPFMINFO menuinfo;
566
567 TRACE("%p %p %s\n", hWnd, lpmis, debugstr_w(pMyItem->szItemText));
568
569 GetTextExtentPoint32W(hdc, pMyItem->szItemText, pMyItem->cchItemText, &size);
570
572 lpmis->itemHeight = (size.cy > (FM_ICON_SIZE + FM_Y_SPACE)) ? size.cy : (FM_ICON_SIZE + FM_Y_SPACE);
573
574 /* add the menubitmap */
575 menuinfo = FM_GetMenuInfo(pMyItem->hMenu);
576 if (menuinfo->nBorderWidth)
577 lpmis->itemWidth += menuinfo->nBorderWidth;
578
579 TRACE("-- 0x%04x 0x%04x\n", lpmis->itemWidth, lpmis->itemHeight);
580 ReleaseDC (hWnd, hdc);
581 return 0;
582}
HDC hdc
Definition: main.c:9
static HDC
Definition: imagelist.c:88
#define FM_RIGHTBORDER
Definition: shlmenu.c:554
ULONG_PTR itemData
Definition: winuser.h:3649
BOOL WINAPI GetTextExtentPoint32W(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE psizl)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)

◆ FileMenu_ReplaceUsingPidl()

int WINAPI FileMenu_ReplaceUsingPidl ( HMENU  hMenu,
UINT  uID,
LPCITEMIDLIST  pidl,
UINT  uEnumFlags,
LPFNFMCALLBACK  lpfnCallback 
)

Definition at line 439 of file shlmenu.c.

445{
446 TRACE("%p 0x%08x %p 0x%08x %p\n",
447 hmenu, uID, pidl, uEnumFlags, lpfnCallback);
448
450
451 FM_SetMenuParameter(hmenu, uID, pidl, 0, uEnumFlags, lpfnCallback);
452
453 return FM_InitMenuPopup(hmenu, NULL);
454}

◆ FileMenu_TrackPopupMenuEx()

BOOL WINAPI FileMenu_TrackPopupMenuEx ( HMENU  hMenu,
UINT  uFlags,
int  x,
int  y,
HWND  hWnd,
LPTPMPARAMS  lptpm 
)

Definition at line 524 of file shlmenu.c.

531{
532 TRACE("%p 0x%08x 0x%x 0x%x %p %p\n",
533 hMenu, uFlags, x, y, hWnd, lptpm);
534 return TrackPopupMenuEx(hMenu, uFlags, x, y, hWnd, lptpm);
535}
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)

◆ GUIDFromStringA()

BOOL WINAPI GUIDFromStringA ( _In_ PCSTR  psz,
_Out_ LPGUID  pguid 
)

◆ GUIDFromStringW()

BOOL WINAPI GUIDFromStringW ( _In_ PCWSTR  psz,
_Out_ LPGUID  pguid 
)

◆ IContextMenu_Invoke()

BOOL WINAPI IContextMenu_Invoke ( _In_ IContextMenu pContextMenu,
_In_ HWND  hwnd,
_In_ LPCSTR  lpVerb,
_In_ UINT  uFlags 
)

Definition at line 194 of file utils.cpp.

199{
200 TRACE("(%p, %p, %s, %u)\n", pContextMenu, hwnd, debugstr_a(lpVerb), uFlags);
202 uFlags, lpVerb, NULL, false);
203 return !FAILED_UNEXPECTEDLY(hr);
204}
static HRESULT SHInvokeCommandOnContextMenuInternal(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_ UINT fCMF, _In_opt_ LPCSTR pszVerb, _In_opt_ LPCWSTR pwszDir, _In_ bool ForceQCM)
Definition: utils.cpp:43
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:30

◆ ILGetDisplayName()

BOOL WINAPI ILGetDisplayName ( LPCITEMIDLIST  pidl,
LPVOID  path 
)

Definition at line 183 of file pidl.c.

184{
185 TRACE_(shell)("%p %p\n", pidl, path);
186
187 if (SHELL_OsIsUnicode())
190}
void shell(int argc, const char *argv[])
Definition: cmds.c:1231
#define TRACE_(x)
Definition: compat.h:76
BOOL ILGetDisplayNameExW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPWSTR path, DWORD type)
Definition: pidl.c:100
static BOOL ILGetDisplayNameExA(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPSTR path, DWORD type)
Definition: pidl.c:83
static __inline BOOL SHELL_OsIsUnicode(void)
Definition: shell32_main.h:148
#define ILGDN_FORPARSING
Definition: undocshell.h:71

Referenced by SHOpenFolderWindow().

◆ ILGetDisplayNameEx()

BOOL WINAPI ILGetDisplayNameEx ( LPSHELLFOLDER  psf,
LPCITEMIDLIST  pidl,
LPVOID  path,
DWORD  type 
)

Definition at line 171 of file pidl.c.

172{
173 TRACE_(shell)("%p %p %p %d\n", psf, pidl, path, type);
174
175 if (SHELL_OsIsUnicode())
176 return ILGetDisplayNameExW(psf, pidl, path, type);
177 return ILGetDisplayNameExA(psf, pidl, path, type);
178}
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545

Referenced by CBandSiteMenu::_AddISFBandToMenu(), CISFBand::GetBandInfo(), and CTravelEntry::GetToolTipText().

◆ ILGlobalClone()

LPITEMIDLIST WINAPI ILGlobalClone ( LPCITEMIDLIST  pidl)

Definition at line 471 of file pidl.c.

472{
473 DWORD len;
474 LPITEMIDLIST newpidl;
475
476 if (!pidl)
477 return NULL;
478
479 len = ILGetSize(pidl);
480 newpidl = Alloc(len);
481 if (newpidl)
482 memcpy(newpidl,pidl,len);
483
484 TRACE("pidl=%p newpidl=%p\n",pidl, newpidl);
485 pdump(pidl);
486
487 return newpidl;
488}
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
LPVOID WINAPI Alloc(INT)
#define ILGetSize
Definition: shellclasses.h:638
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41

◆ ILGlobalFree()

void WINAPI ILGlobalFree ( LPITEMIDLIST  pidl)

Definition at line 1064 of file pidl.c.

1065{
1066 TRACE("%p\n", pidl);
1067
1068 Free(pidl);
1069}
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
Definition: exfuncs.h:815

◆ Int64ToString()

INT WINAPI Int64ToString ( _In_ LONGLONG  llValue,
_Out_writes_z_(cchOut) LPWSTR  pszOut,
_In_ UINT  cchOut,
_In_ BOOL  bUseFormat,
_In_opt_ const NUMBERFMTW pNumberFormat,
_In_ DWORD  dwNumberFlags 
)

◆ IsSuspendAllowed()

BOOL WINAPI IsSuspendAllowed ( VOID  )

Definition at line 824 of file utils.cpp.

825{
826 TRACE("()\n");
828}
BOOL IsShutdownAllowed(VOID)
Definition: utils.cpp:816

◆ LargeIntegerToString()

INT WINAPI LargeIntegerToString ( _In_ const LARGE_INTEGER pLargeInt,
_Out_writes_z_(cchOut) LPWSTR  pszOut,
_In_ UINT  cchOut,
_In_ BOOL  bUseFormat,
_In_opt_ const NUMBERFMTW pNumberFormat,
_In_ DWORD  dwNumberFlags 
)

◆ LogoffWindowsDialog()

int WINAPI LogoffWindowsDialog ( HWND  hWndOwner)

Definition at line 1531 of file dialogs.cpp.

1532{
1533 CComPtr<IUnknown> fadeHandler;
1534 HWND parent = NULL;
1535 DWORD LogoffDialogID = IDD_LOG_OFF;
1537
1538 if (!CallShellDimScreen(&fadeHandler, &parent))
1539 parent = hWndOwner;
1540
1541 Context.bFriendlyUI = IsFriendlyUIActive();
1542 if (Context.bFriendlyUI)
1543 {
1544 LogoffDialogID = IDD_LOG_OFF_FANCY;
1545 }
1546
1548 MAKEINTRESOURCEW(LogoffDialogID),
1549 parent,
1551 (LPARAM)&Context);
1552 return 0;
1553}
#define shell32_hInstance
static BOOL IsFriendlyUIActive(VOID)
Definition: dialogs.cpp:1320
INT_PTR CALLBACK LogOffDialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: dialogs.cpp:1431
#define IDD_LOG_OFF
Definition: shresdef.h:548
#define IDD_LOG_OFF_FANCY
Definition: shresdef.h:554
LONG_PTR LPARAM
Definition: windef.h:208
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)

Referenced by CTrayWindow::HandleCommand(), and StartMenuHandler::ShowLogoffDialog().

◆ PathAddBackslashAW()

LPVOID WINAPI PathAddBackslashAW ( LPVOID  path)

◆ PathAppendAW()

BOOL WINAPI PathAppendAW ( LPVOID  lpszPath1,
LPCVOID  lpszPath2 
)

Definition at line 407 of file shellpath.c.

410{
411 if (SHELL_OsIsUnicode())
412 return PathAppendW(lpszPath1, lpszPath2);
413 return PathAppendA(lpszPath1, lpszPath2);
414}
#define PathAppendA
Definition: pathcch.h:308
#define PathAppendW
Definition: pathcch.h:309

◆ PathBuildRootAW()

LPVOID WINAPI PathBuildRootAW ( LPVOID  lpszPath,
int  drive 
)

◆ PathCombineAW()

LPVOID WINAPI PathCombineAW ( LPVOID  szDest,
LPCVOID  lpszDir,
LPCVOID  lpszFile 
)

◆ PathFileExistsAW()

BOOL WINAPI PathFileExistsAW ( LPCVOID  lpszPath)

Definition at line 567 of file shellpath.c.

568{
569 if (SHELL_OsIsUnicode())
570 return PathFileExistsW (lpszPath);
571 return PathFileExistsA (lpszPath);
572}
BOOL WINAPI PathFileExistsA(LPCSTR lpszPath)
Definition: path.c:1761
BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath)
Definition: path.c:1783

◆ PathFindExtensionAW()

LPVOID WINAPI PathFindExtensionAW ( LPCVOID  path)

◆ PathFindFileNameAW()

LPVOID WINAPI PathFindFileNameAW ( LPCVOID  path)

◆ PathFindOnPathAW()

BOOL WINAPI PathFindOnPathAW ( LPVOID  sFile,
LPCVOID sOtherDirs 
)

◆ PathGetArgsAW()

LPVOID WINAPI PathGetArgsAW ( LPVOID  lpszPath)

◆ PathGetExtensionAW()

LPVOID WINAPI PathGetExtensionAW ( LPCVOID  lpszPath,
DWORD  void1,
DWORD  void2 
)

◆ PathIsDirectoryAW()

BOOL WINAPI PathIsDirectoryAW ( LPCVOID  lpszPath)

◆ PathIsEqualOrSubFolder()

BOOL WINAPI PathIsEqualOrSubFolder ( _In_ LPCWSTR  pszFile1OrCSIDL,
_In_ LPCWSTR  pszFile2 
)

Definition at line 1586 of file utils.cpp.

1589{
1590 CStringW strCommon, strPath1;
1591
1592 TRACE("(%s %s)\n", debugstr_w(pszPath1OrCSIDL), debugstr_w(pszPath2));
1593
1594 if (IS_INTRESOURCE(pszPath1OrCSIDL))
1595 {
1597 NULL, strPath1, LOWORD(pszPath1OrCSIDL) | CSIDL_FLAG_DONT_VERIFY, FALSE);
1598 }
1599 else
1600 {
1601 strPath1 = pszPath1OrCSIDL;
1602 }
1603
1605
1606 if (!DynamicPathCommonPrefixW(strPath1, pszPath2, strCommon))
1607 return FALSE;
1608
1609 return strPath1.CompareNoCase(strCommon) == 0;
1610}
int CompareNoCase(_In_z_ PCXSTR psz) const
Definition: cstringt.h:743
static VOID DynamicPathRemoveBackslashW(_Out_ CStringW &strPath)
Definition: utils.cpp:1573
static INT DynamicPathCommonPrefixW(_In_ LPCWSTR lpszPath1, _In_ LPCWSTR lpszPath2, _Out_ CStringW &strPath)
Definition: utils.cpp:1501
static HRESULT DynamicSHGetSpecialFolderPathW(_In_ HWND hwndOwner, _Out_ CStringW &strPath, _In_ INT nCSIDL, _In_ BOOL bCreate)
Definition: utils.cpp:1550
#define LOWORD(l)
Definition: pedump.c:82
#define CSIDL_FLAG_DONT_VERIFY
Definition: shlobj.h:2234
#define IS_INTRESOURCE(i)
Definition: winuser.h:580

Referenced by PathIsTemporaryW(), and START_TEST().

◆ PathIsExeAW()

BOOL WINAPI PathIsExeAW ( LPCVOID  lpszPath)

Definition at line 557 of file shellpath.c.

558{
559 if (SHELL_OsIsUnicode())
560 return PathIsExeW (path);
561 return PathIsExeA(path);
562}
static BOOL PathIsExeA(LPCSTR lpszPath)
Definition: shellpath.c:521
BOOL PathIsExeW(LPCWSTR lpszPath)
Definition: shellpath.c:539

◆ PathIsRelativeAW()

BOOL WINAPI PathIsRelativeAW ( LPCVOID  lpszPath)

◆ PathIsRootAW()

BOOL WINAPI PathIsRootAW ( LPCVOID  x)

Definition at line 511 of file shellpath.c.

512{
513 if (SHELL_OsIsUnicode())
514 return PathIsRootW(lpszPath);
515 return PathIsRootA(lpszPath);
516}
BOOL WINAPI PathIsRootW(LPCWSTR lpszPath)
Definition: path.c:1648
BOOL WINAPI PathIsRootA(LPCSTR lpszPath)
Definition: path.c:1608

◆ PathIsSameRootAW()

BOOL WINAPI PathIsSameRootAW ( LPCVOID  lpszPath1,
LPCVOID  lpszPath2 
)

◆ PathIsTemporaryA()

BOOL WINAPI PathIsTemporaryA ( _In_ LPCSTR  Str)

◆ PathIsTemporaryW()

BOOL WINAPI PathIsTemporaryW ( _In_ LPCWSTR  Str)

◆ PathIsUNCAW()

BOOL WINAPI PathIsUNCAW ( LPCVOID  lpszPath)

◆ PathMakeUniqueNameAW()

BOOL WINAPI PathMakeUniqueNameAW ( LPVOID  lpszBuffer,
DWORD  dwBuffSize,
LPCVOID  lpszShortName,
LPCVOID  lpszLongName,
LPCVOID  lpszPathName 
)

Definition at line 684 of file shellpath.c.

690{
691 if (SHELL_OsIsUnicode())
692 return PathMakeUniqueNameW(lpszBuffer,dwBuffSize, lpszShortName,lpszLongName,lpszPathName);
693 return PathMakeUniqueNameA(lpszBuffer,dwBuffSize, lpszShortName,lpszLongName,lpszPathName);
694}
static BOOL PathMakeUniqueNameW(LPWSTR lpszBuffer, DWORD dwBuffSize, LPCWSTR lpszShortName, LPCWSTR lpszLongName, LPCWSTR lpszPathName)
Definition: shellpath.c:668
static BOOL PathMakeUniqueNameA(LPSTR lpszBuffer, DWORD dwBuffSize, LPCSTR lpszShortName, LPCSTR lpszLongName, LPCSTR lpszPathName)
Definition: shellpath.c:652

◆ PathMatchSpecAW()

BOOL WINAPI PathMatchSpecAW ( LPVOID  lpszPath,
LPVOID  lpszSpec 
)

◆ PathParseIconLocationAW()

int WINAPI PathParseIconLocationAW ( LPVOID  lpszPath)

◆ PathProcessCommandAW()

HRESULT WINAPI PathProcessCommandAW ( LPCVOID  lpszPath,
LPVOID  lpszBuff,
DWORD  dwBuffSize,
DWORD  dwFlags 
)

Definition at line 1003 of file shellpath.c.

1008{
1009 if (SHELL_OsIsUnicode())
1010 return PathProcessCommandW(lpszPath, lpszBuff, dwBuffSize, dwFlags);
1011 return PathProcessCommandA(lpszPath, lpszBuff, dwBuffSize, dwFlags);
1012}
static LONG PathProcessCommandW(LPCWSTR lpszPath, LPWSTR lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
Definition: shellpath.c:987
static LONG PathProcessCommandA(LPCSTR lpszPath, LPSTR lpszBuff, DWORD dwBuffSize, DWORD dwFlags)
Definition: shellpath.c:971
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

Referenced by ShellExec_RunDLL_Helper().

◆ PathQualifyA()

VOID WINAPI PathQualifyA ( LPSTR  pszPath)

Definition at line 808 of file shellpath.c.

809{
811 TRACE("%s\n",pszPath);
815}
#define MAX_PATH
Definition: compat.h:34
VOID WINAPI PathQualifyW(LPWSTR pszPath)
Definition: shellpath.c:820
LPCWSTR szPath
Definition: env.c:37
#define _countof(array)
Definition: sndvol32.h:70

Referenced by PathQualifyAW().

◆ PathQualifyAW()

VOID WINAPI PathQualifyAW ( LPVOID  path)

Definition at line 829 of file shellpath.c.

830{
831 if (SHELL_OsIsUnicode())
832 PathQualifyW(pszPath);
833 else
834 PathQualifyA(pszPath);
835}
VOID WINAPI PathQualifyA(LPSTR pszPath)
Definition: shellpath.c:808

◆ PathQualifyW()

VOID WINAPI PathQualifyW ( LPWSTR  pszPath)

Definition at line 820 of file shellpath.c.

821{
822 TRACE("%s\n",debugstr_w(pszPath));
823 PathQualifyExW(pszPath, NULL, 0);
824}
static VOID WINAPI PathQualifyExW(_Inout_ LPWSTR pszPath, _Inout_opt_ LPCWSTR pszDir, _In_ DWORD dwFlags)
Definition: shellpath.c:158

Referenced by PathQualifyA(), and PathQualifyAW().

◆ PathQuoteSpacesAW()

VOID WINAPI PathQuoteSpacesAW ( LPVOID  path)

◆ PathRemoveArgsAW()

void WINAPI PathRemoveArgsAW ( LPVOID  lpszPath)

◆ PathRemoveBlanksAW()

void WINAPI PathRemoveBlanksAW ( LPVOID  lpszPath)

◆ PathRemoveExtensionAW()

void WINAPI PathRemoveExtensionAW ( LPVOID  lpszPath)

◆ PathRemoveFileSpecAW()

BOOL WINAPI PathRemoveFileSpecAW ( LPVOID  lpszPath)

Definition at line 453 of file shellpath.c.

454{
455 if (SHELL_OsIsUnicode())
456 return PathRemoveFileSpecW(lpszPath);
457 return PathRemoveFileSpecA(lpszPath);
458}
BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
Definition: path.c:629
BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath)
Definition: path.c:586

◆ PathResolveA()

BOOL WINAPI PathResolveA ( LPSTR  path,
LPCSTR dirs,
DWORD  flags 
)

Definition at line 837 of file shellpath.c.

838{
839 BOOL ret = FALSE;
840 LPWSTR *dirsW = NULL;
841 DWORD iDir, cDirs, cbDirs;
842 WCHAR pathW[MAX_PATH];
843
844 TRACE("(%s,%p,0x%08x)\n", debugstr_a(path), dirs, flags);
845
846 if (dirs)
847 {
848 for (cDirs = 0; dirs[cDirs]; ++cDirs)
849 ;
850
851 cbDirs = (cDirs + 1) * sizeof(LPWSTR);
852 dirsW = SHAlloc(cbDirs);
853 if (!dirsW)
854 goto Cleanup;
855
856 ZeroMemory(dirsW, cbDirs);
857 for (iDir = 0; iDir < cDirs; ++iDir)
858 {
859 __SHCloneStrAtoW(&dirsW[iDir], dirs[iDir]);
860 if (dirsW[iDir] == NULL)
861 goto Cleanup;
862 }
863 }
864
865 SHAnsiToUnicode(path, pathW, _countof(pathW));
866
867 ret = PathResolveW(pathW, (LPCWSTR*)dirsW, flags);
868 if (ret)
870
871Cleanup:
872 if (dirsW)
873 {
874 for (iDir = 0; iDir < cDirs; ++iDir)
875 {
876 SHFree(dirsW[iDir]);
877 }
878 SHFree(dirsW);
879 }
880 return ret;
881}
LPVOID WINAPI SHAlloc(SIZE_T len)
Definition: shellole.c:304
BOOL WINAPI PathResolveW(_Inout_ LPWSTR path, _Inout_opt_ LPCWSTR *dirs, _In_ DWORD flags)
Definition: shellpath.c:883
static const WCHAR Cleanup[]
Definition: register.c:80
GLbitfield flags
Definition: glext.h:7161
static __inline LPWSTR __SHCloneStrAtoW(WCHAR **target, const char *source)
Definition: shell32_main.h:178
int ret
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

Referenced by PathResolveAW().

◆ PathResolveAW()

BOOL WINAPI PathResolveAW ( LPVOID  lpszPath,
LPCVOID alpszPaths,
DWORD  dwFlags 
)

Definition at line 960 of file shellpath.c.

961{
962 if (SHELL_OsIsUnicode())
963 return PathResolveW(path, (LPCWSTR*)paths, flags);
964 else
965 return PathResolveA(path, (LPCSTR*)paths, flags);
966}
BOOL WINAPI PathResolveA(LPSTR path, LPCSTR *dirs, DWORD flags)
Definition: shellpath.c:837
GLsizei const GLuint * paths
Definition: glext.h:11717
const char * LPCSTR
Definition: xmlstorage.h:183

◆ PathResolveW()

BOOL WINAPI PathResolveW ( LPWSTR  path,
LPCWSTR dirs,
DWORD  flags 
)

◆ PathSetDlgItemPathAW()

VOID WINAPI PathSetDlgItemPathAW ( HWND  hDlg,
int  nIDDlgItem,
LPCVOID  lpszPath 
)

◆ PathStripPathAW()

void WINAPI PathStripPathAW ( LPVOID  lpszPath)

◆ PathStripToRootAW()

BOOL WINAPI PathStripToRootAW ( LPVOID  lpszPath)

◆ PathUnquoteSpacesAW()

void WINAPI PathUnquoteSpacesAW ( LPVOID  lpszPath)

◆ PathYetAnotherMakeUniqueName()

BOOL WINAPI PathYetAnotherMakeUniqueName ( LPWSTR  lpszBuffer,
LPCWSTR  lpszPathName,
LPCWSTR  lpszShortName,
LPCWSTR  lpszLongName 
)

Definition at line 699 of file shellpath.c.

700{
701 WCHAR pathW[MAX_PATH], retW[MAX_PATH];
702 const WCHAR *file, *ext;
703 int i = 2;
704
705 TRACE("(%p, %s, %s, %s)\n", buffer, debugstr_w(path), debugstr_w(shortname), debugstr_w(longname));
706
707 file = longname ? longname : shortname;
708 PathCombineW(pathW, path, file);
709 strcpyW(retW, pathW);
711
713
714 /* now try to make it unique */
715 while (PathFileExistsW(retW))
716 {
717 sprintfW(retW, L"%s (%d)%s", pathW, i, ext);
718 i++;
719 }
720
721 strcpyW(buffer, retW);
722 TRACE("ret - %s\n", debugstr_w(buffer));
723
724 return TRUE;
725}
static const WCHAR *const ext[]
Definition: module.c:53
LPWSTR WINAPI PathFindExtensionW(LPCWSTR lpszPath)
Definition: path.c:447
void WINAPI PathRemoveExtensionW(LPWSTR lpszPath)
Definition: path.c:823
GLuint buffer
Definition: glext.h:5915
#define PathCombineW
Definition: pathcch.h:317
#define sprintfW
Definition: unicode.h:64
#define strcpyW(d, s)
Definition: unicode.h:35
Definition: fci.c:127

Referenced by BrFolder_NewFolder(), CNewMenu::CreateNewFolder(), CDefaultContextMenu::DoCreateNewFolder(), CDeskLinkDropHandler::Drop(), FinishDlgProc(), loadShell32(), and CNewMenu::NewItemByNonCommand().

◆ RealShellExecuteA()

HINSTANCE WINAPI RealShellExecuteA ( _In_opt_ HWND  hwnd,
_In_opt_ LPCSTR  lpOperation,
_In_opt_ LPCSTR  lpFile,
_In_opt_ LPCSTR  lpParameters,
_In_opt_ LPCSTR  lpDirectory,
_In_opt_ LPSTR  lpReturn,
_In_opt_ LPCSTR  lpTitle,
_In_opt_ LPVOID  lpReserved,
_In_ INT  nCmdShow,
_Out_opt_ PHANDLE  lphProcess 
)

Definition at line 2924 of file shlexec.cpp.

2935{
2937 lpOperation,
2938 lpFile,
2939 lpParameters,
2941 lpReturn,
2942 lpTitle,
2943 lpReserved,
2944 nCmdShow,
2945 lphProcess,
2946 0);
2947}
static DWORD const LPVOID const lpReserved
TCHAR lpTitle[80]
Definition: ctm.c:69
_In_opt_ LPCSTR lpDirectory
Definition: shellapi.h:485
EXTERN_C HINSTANCE WINAPI RealShellExecuteExA(_In_opt_ HWND hwnd, _In_opt_ LPCSTR lpOperation, _In_opt_ LPCSTR lpFile, _In_opt_ LPCSTR lpParameters, _In_opt_ LPCSTR lpDirectory, _In_opt_ LPSTR lpReturn, _In_opt_ LPCSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
Definition: shlexec.cpp:2790

◆ RealShellExecuteExA()

HINSTANCE WINAPI RealShellExecuteExA ( _In_opt_ HWND  hwnd,
_In_opt_ LPCSTR  lpOperation,
_In_opt_ LPCSTR  lpFile,
_In_opt_ LPCSTR  lpParameters,
_In_opt_ LPCSTR  lpDirectory,
_In_opt_ LPSTR  lpReturn,
_In_opt_ LPCSTR  lpTitle,
_In_opt_ LPVOID  lpReserved,
_In_ INT  nCmdShow,
_Out_opt_ PHANDLE  lphProcess,
_In_ DWORD  dwFlags 
)

Definition at line 2790 of file shlexec.cpp.

2802{
2803 SHELLEXECUTEINFOA ExecInfo;
2804
2805 TRACE("(%p, %s, %s, %s, %s, %p, %s, %p, %u, %p, %lu)\n",
2806 hwnd, debugstr_a(lpOperation), debugstr_a(lpFile), debugstr_a(lpParameters),
2808 lpReserved, nCmdShow, lphProcess, dwFlags);
2809
2810 ZeroMemory(&ExecInfo, sizeof(ExecInfo));
2811 ExecInfo.cbSize = sizeof(ExecInfo);
2813 ExecInfo.hwnd = hwnd;
2814 ExecInfo.lpVerb = lpOperation;
2815 ExecInfo.lpFile = lpFile;
2816 ExecInfo.lpParameters = lpParameters;
2817 ExecInfo.lpDirectory = lpDirectory;
2818 ExecInfo.nShow = (WORD)nCmdShow;
2819
2820 if (lpReserved)
2821 {
2822 ExecInfo.fMask |= SEE_MASK_USE_RESERVED;
2823 ExecInfo.hInstApp = (HINSTANCE)lpReserved;
2824 }
2825
2826 if (lpTitle)
2827 {
2828 ExecInfo.fMask |= SEE_MASK_HASTITLE;
2829 ExecInfo.lpClass = lpTitle;
2830 }
2831
2832 if (dwFlags & 1)
2833 ExecInfo.fMask |= SEE_MASK_FLAG_SEPVDM;
2834
2835 if (dwFlags & 2)
2836 ExecInfo.fMask |= SEE_MASK_NO_CONSOLE;
2837
2838 if (lphProcess == NULL)
2839 {
2840 ShellExecuteExA(&ExecInfo);
2841 }
2842 else
2843 {
2844 ExecInfo.fMask |= SEE_MASK_NOCLOSEPROCESS;
2845 ShellExecuteExA(&ExecInfo);
2846 *lphProcess = ExecInfo.hProcess;
2847 }
2848
2849 return ExecInfo.hInstApp;
2850}
unsigned short WORD
Definition: ntddk_ex.h:93
#define SEE_MASK_USE_RESERVED
Definition: shellapi.h:51
#define SEE_MASK_FLAG_SEPVDM
Definition: shellapi.h:50
#define SEE_MASK_NOCLOSEPROCESS
Definition: shellapi.h:31
#define SEE_MASK_HASTITLE
Definition: shellapi.h:52
#define SEE_MASK_UNKNOWN_0x1000
Definition: shellapi.h:48
#define SEE_MASK_FLAG_NO_UI
Definition: shellapi.h:36
#define SEE_MASK_NO_CONSOLE
Definition: shellapi.h:38
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExA(LPSHELLEXECUTEINFOA sei)
Definition: shlexec.cpp:2394
LPCSTR lpParameters
Definition: shellapi.h:317
HINSTANCE hInstApp
Definition: shellapi.h:320
LPCSTR lpDirectory
Definition: shellapi.h:318
HANDLE HINSTANCE
Definition: typedefs.h:77

Referenced by RealShellExecuteA().

◆ RealShellExecuteExW()

HINSTANCE WINAPI RealShellExecuteExW ( _In_opt_ HWND  hwnd,
_In_opt_ LPCWSTR  lpOperation,
_In_opt_ LPCWSTR  lpFile,
_In_opt_ LPCWSTR  lpParameters,
_In_opt_ LPCWSTR  lpDirectory,
_In_opt_ LPWSTR  lpReturn,
_In_opt_ LPCWSTR  lpTitle,
_In_opt_ LPVOID  lpReserved,
_In_ INT  nCmdShow,
_Out_opt_ PHANDLE  lphProcess,
_In_ DWORD  dwFlags 
)

Definition at line 2857 of file shlexec.cpp.

2869{
2870 SHELLEXECUTEINFOW ExecInfo;
2871
2872 TRACE("(%p, %s, %s, %s, %s, %p, %s, %p, %u, %p, %lu)\n",
2873 hwnd, debugstr_w(lpOperation), debugstr_w(lpFile), debugstr_w(lpParameters),
2875 lpReserved, nCmdShow, lphProcess, dwFlags);
2876
2877 ZeroMemory(&ExecInfo, sizeof(ExecInfo));
2878 ExecInfo.cbSize = sizeof(ExecInfo);
2880 ExecInfo.hwnd = hwnd;
2881 ExecInfo.lpVerb = lpOperation;
2882 ExecInfo.lpFile = lpFile;
2883 ExecInfo.lpParameters = lpParameters;
2884 ExecInfo.lpDirectory = lpDirectory;
2885 ExecInfo.nShow = (WORD)nCmdShow;
2886
2887 if (lpReserved)
2888 {
2889 ExecInfo.fMask |= SEE_MASK_USE_RESERVED;
2890 ExecInfo.hInstApp = (HINSTANCE)lpReserved;
2891 }
2892
2893 if (lpTitle)
2894 {
2895 ExecInfo.fMask |= SEE_MASK_HASTITLE;
2896 ExecInfo.lpClass = lpTitle;
2897 }
2898
2899 if (dwFlags & 1)
2900 ExecInfo.fMask |= SEE_MASK_FLAG_SEPVDM;
2901
2902 if (dwFlags & 2)
2903 ExecInfo.fMask |= SEE_MASK_NO_CONSOLE;
2904
2905 if (lphProcess == NULL)
2906 {
2907 ShellExecuteExW(&ExecInfo);
2908 }
2909 else
2910 {
2911 ExecInfo.fMask |= SEE_MASK_NOCLOSEPROCESS;
2912 ShellExecuteExW(&ExecInfo);
2913 *lphProcess = ExecInfo.hProcess;
2914 }
2915
2916 return ExecInfo.hInstApp;
2917}
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2452
LPCWSTR lpDirectory
Definition: shellapi.h:335
HINSTANCE hInstApp
Definition: shellapi.h:337
LPCWSTR lpParameters
Definition: shellapi.h:334

Referenced by RealShellExecuteW().

◆ RealShellExecuteW()

HINSTANCE WINAPI RealShellExecuteW ( _In_opt_ HWND  hwnd,
_In_opt_ LPCWSTR  lpOperation,
_In_opt_ LPCWSTR  lpFile,
_In_opt_ LPCWSTR  lpParameters,
_In_opt_ LPCWSTR  lpDirectory,
_In_opt_ LPWSTR  lpReturn,
_In_opt_ LPCWSTR  lpTitle,
_In_opt_ LPVOID  lpReserved,
_In_ INT  nCmdShow,
_Out_opt_ PHANDLE  lphProcess 
)

Definition at line 2954 of file shlexec.cpp.

2965{
2967 lpOperation,
2968 lpFile,
2969 lpParameters,
2971 lpReturn,
2972 lpTitle,
2973 lpReserved,
2974 nCmdShow,
2975 lphProcess,
2976 0);
2977}
EXTERN_C HINSTANCE WINAPI RealShellExecuteExW(_In_opt_ HWND hwnd, _In_opt_ LPCWSTR lpOperation, _In_opt_ LPCWSTR lpFile, _In_opt_ LPCWSTR lpParameters, _In_opt_ LPCWSTR lpDirectory, _In_opt_ LPWSTR lpReturn, _In_opt_ LPCWSTR lpTitle, _In_opt_ LPVOID lpReserved, _In_ INT nCmdShow, _Out_opt_ PHANDLE lphProcess, _In_ DWORD dwFlags)
Definition: shlexec.cpp:2857

◆ RegenerateUserEnvironment()

BOOL WINAPI RegenerateUserEnvironment ( LPVOID lpEnvironment,
BOOL  bUpdateSelf 
)

Definition at line 71 of file shell32.cpp.

72{
75 return FALSE;
76
77 BOOL bResult = CreateEnvironmentBlock(lpEnvironment, hUserToken, TRUE);
78 if (!bResult || !lpEnvironment)
79 {
81 return FALSE;
82 }
83
84 if (bUpdateSelf)
85 {
86 LPWSTR pszz = (LPWSTR)*lpEnvironment;
87 if (!pszz)
88 return FALSE;
89
90 while (*pszz)
91 {
92 size_t cch = wcslen(pszz);
93 LPWSTR pchEqual = wcschr(pszz, L'=');
94 if (pchEqual)
95 {
96 CStringW strName(pszz, pchEqual - pszz);
97 SetEnvironmentVariableW(strName, pchEqual + 1);
98 }
99 pszz += cch + 1;
100 }
101 }
102
104
105 return bResult;
106}
HANDLE hUserToken
Definition: install.c:39
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
Definition: security.c:294
#define CloseHandle
Definition: compat.h:739
#define wcschr
Definition: compat.h:17
#define GetCurrentProcess()
Definition: compat.h:759
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableW(IN LPCWSTR lpName, IN LPCWSTR lpValue)
Definition: environ.c:259
BOOL WINAPI CreateEnvironmentBlock(OUT LPVOID *lpEnvironment, IN HANDLE hToken, IN BOOL bInherit)
Definition: environment.c:503
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:202
return TRUE
Definition: shell32.cpp:403
#define TOKEN_WRITE
Definition: setypes.h:953
#define TOKEN_READ
Definition: setypes.h:951

Referenced by CDesktopBrowser::OnSettingChange().

◆ RegisterShellHook()

BOOL WINAPI RegisterShellHook ( HWND  hWnd,
DWORD  dwType 
)

Definition at line 509 of file shellord.c.

512{
513 if (dwType == 3)
514 {
517 }
518 else if (dwType == 0)
519 {
521 }
522
523 ERR("Unsupported argument");
524 return FALSE;
525}
#define ERR(fmt,...)
Definition: precomp.h:57
HWND WINAPI SetTaskmanWindow(HWND)
Definition: window.c:1890
BOOL WINAPI DeregisterShellHookWindow(_In_ HWND)
BOOL WINAPI RegisterShellHookWindow(_In_ HWND)

Referenced by CTaskSwitchWnd::OnCreate(), and CTaskSwitchWnd::OnDestroy().

◆ RunFileDlg()

void WINAPI RunFileDlg ( HWND  hWndOwner,
HICON  hIcon,
LPCWSTR  lpstrDirectory,
LPCWSTR  lpstrTitle,
LPCWSTR  lpstrDescription,
UINT  uFlags 
)

Definition at line 398 of file dialogs.cpp.

405{
406 TRACE("\n");
407
408 RUNFILEDLGPARAMS rfdp;
409 rfdp.hwndOwner = hWndOwner;
410 rfdp.hIcon = hIcon;
411 rfdp.lpstrDirectory = lpstrDirectory;
412 rfdp.lpstrTitle = lpstrTitle;
413 rfdp.lpstrDescription = lpstrDescription;
414 rfdp.uFlags = uFlags;
415
417}
static INT_PTR CALLBACK RunDlgProc(HWND, UINT, WPARAM, LPARAM)
Definition: dialogs.cpp:500
HICON hIcon
Definition: msconfig.c:44
#define IDD_RUN
Definition: shresdef.h:366
LPCWSTR lpstrDirectory
Definition: dialogs.cpp:29
LPCWSTR lpstrTitle
Definition: dialogs.cpp:30
LPCWSTR lpstrDescription
Definition: dialogs.cpp:31

Referenced by RunDialogThread::Run(), CTrayWindow::RunFileDlgThread(), and TaskManager_OnFileNew().

◆ SHCreateDefClassObject()

HRESULT WINAPI SHCreateDefClassObject ( REFIID  riidFactory,
LPVOID ppvFactory,
LPFNCDCOCALLBACK  lpfnCallback,
LPDWORD  lpdwUsage,
REFIID  riidObject 
)

◆ SHCreateLinks()

HRESULT WINAPI SHCreateLinks ( HWND  hWnd,
LPCSTR  lpszDir,
LPDATAOBJECT  lpDataObject,
UINT  uFlags,
LPITEMIDLIST lppidlLinks 
)

◆ SHCreatePropertyBag()

HRESULT WINAPI SHCreatePropertyBag ( _In_ REFIID  riid,
_Out_ void **  ppvObj 
)

Definition at line 877 of file utils.cpp.

878{
880}
REFIID riid
Definition: atlbase.h:39
#define STGM_READWRITE
Definition: objbase.h:919
EXTERN_C HRESULT WINAPI SHCreatePropertyBagOnMemory(_In_ DWORD dwMode, _In_ REFIID riid, _Out_ void **ppvObj)
Definition: propbag.cpp:254

◆ SHCreateSessionKey()

HRESULT WINAPI SHCreateSessionKey ( REGSAM  samDesired,
PHKEY  phKey 
)

Definition at line 147 of file shellreg.c.

148{
149 HRESULT hr = S_OK;
150 static WCHAR wszSessionKey[256];
151 LONG Error;
152
153 if (!wszSessionKey[0]) // FIXME: Critical Section
154 {
155 HANDLE hToken;
156
158 {
159 TOKEN_STATISTICS Stats;
161
162 if (GetTokenInformation(hToken, TokenStatistics, &Stats, sizeof(Stats), &ReturnLength))
163 {
164 swprintf(wszSessionKey,
165 L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\SessionInfo\\%08x%08x",
167 }
168 else
170
171 CloseHandle(hToken);
172 }
173 else
175 }
176
177 if(SUCCEEDED(hr))
178 {
179 Error = RegCreateKeyExW(HKEY_LOCAL_MACHINE, wszSessionKey, 0, NULL,
180 REG_OPTION_VOLATILE, samDesired, NULL, phKey, NULL);
181 if (Error != ERROR_SUCCESS)
183 }
184
185 return hr;
186}
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
BOOL Error
Definition: chkdsk.c:66
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
Definition: security.c:411
#define swprintf
Definition: precomp.h:40
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define REG_OPTION_VOLATILE
Definition: nt_native.h:1060
long LONG
Definition: pedump.c:60
LONG HighPart
DWORD LowPart
LUID AuthenticationId
Definition: setypes.h:1087
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
@ TokenStatistics
Definition: setypes.h:975

Referenced by DoStartStartupItems().

◆ Shell_GetCachedImageIndex()

INT WINAPI Shell_GetCachedImageIndex ( LPCWSTR  szPath,
INT  nIndex,
UINT  bSimulateDoc 
)

Definition at line 844 of file iconcache.cpp.

845{
846 return Shell_GetCachedImageIndexAW(szPath, nIndex, bSimulateDoc);
847}
EXTERN_C INT WINAPI Shell_GetCachedImageIndexAW(LPCVOID szPath, INT nIndex, BOOL bSimulateDoc)
Definition: iconcache.cpp:838

Referenced by CShellMenuCallback::OnGetInfo().

◆ Shell_GetCachedImageIndexA()

int WINAPI Shell_GetCachedImageIndexA ( LPCSTR  lpszFileName,
int  nIconIndex,
UINT  bSimulateDoc 
)

◆ Shell_GetImageLists()

BOOL WINAPI Shell_GetImageLists ( HIMAGELIST lphimlLarge,
HIMAGELIST lphimlSmall 
)

Definition at line 689 of file iconcache.cpp.

690{
691 TRACE("(%p,%p)\n",lpBigList,lpSmallList);
692
693 if (!sic_hdpa)
695
696 if (lpBigList)
697 *lpBigList = ShellBigIconList;
698
699 if (lpSmallList)
700 *lpSmallList = ShellSmallIconList;
701
702 return TRUE;
703}
static HDPA sic_hdpa
Definition: iconcache.cpp:26
static HIMAGELIST ShellSmallIconList
Definition: iconcache.cpp:28
static HIMAGELIST ShellBigIconList
Definition: iconcache.cpp:29

Referenced by BrFolder_InitTreeView(), CShellBrowser::BrowseToPath(), DisplayImageList(), FileMenu_DrawItem(), CDefView::InitList(), CDefView::OnNotify(), SHGetFileInfoW(), SHGetImageList(), and test_SHGetImageList().

◆ ShellDDEInit()

void WINAPI ShellDDEInit ( BOOL  bInit)

Definition at line 261 of file shdocvw_main.c.

262{
263 TRACE("(%d)\n", start);
264
265 if (!pShellDDEInit)
266 {
267 if (!SHDOCVW_LoadShell32())
268 return FALSE;
269 pShellDDEInit = (void *)GetProcAddress(SHDOCVW_hshell32, (LPCSTR)188);
270 }
271
272 if (pShellDDEInit)
273 return pShellDDEInit(start);
274 else
275 return FALSE;
276}
GLuint start
Definition: gl.h:1545
static BOOL SHDOCVW_LoadShell32(void)
Definition: shdocvw_main.c:232
static HMODULE SHDOCVW_hshell32
Definition: shdocvw_main.c:47

◆ ShellExec_RunDLL()

VOID WINAPI ShellExec_RunDLL ( _In_opt_ HWND  hwnd,
_In_opt_ HINSTANCE  hInstance,
_In_ PCSTR  pszCmdLine,
_In_ INT  nCmdShow 
)

Referenced by TEST_ShellExec_RunDLL().

◆ ShellExec_RunDLLA()

VOID WINAPI ShellExec_RunDLLA ( _In_opt_ HWND  hwnd,
_In_opt_ HINSTANCE  hInstance,
_In_ PCSTR  pszCmdLine,
_In_ INT  nCmdShow 
)

Definition at line 3038 of file shlexec.cpp.

3043{
3044 CStringW strCmdLine = pszCmdLine; // Keep
3045 ShellExec_RunDLL_Helper(hwnd, hInstance, strCmdLine, nCmdShow);
3046}
HINSTANCE hInstance
Definition: charmap.c:19
static VOID ShellExec_RunDLL_Helper(_In_opt_ HWND hwnd, _In_opt_ HINSTANCE hInstance, _In_ PCWSTR pszCmdLine, _In_ INT nCmdShow)
Definition: shlexec.cpp:2981

Referenced by TEST_ShellExec_RunDLLA().

◆ ShellExec_RunDLLW()

VOID WINAPI ShellExec_RunDLLW ( _In_opt_ HWND  hwnd,
_In_opt_ HINSTANCE  hInstance,
_In_ PCWSTR  pszCmdLine,
_In_ INT  nCmdShow 
)

Definition at line 3055 of file shlexec.cpp.

3060{
3061 ShellExec_RunDLL_Helper(hwnd, hInstance, pszCmdLine, nCmdShow);
3062}

Referenced by TEST_ShellExec_RunDLLW().

◆ ShellExecCmdLine()

HRESULT WINAPI ShellExecCmdLine ( HWND  hwnd,
LPCWSTR  pwszCommand,
LPCWSTR  pwszStartDir,
int  nShow,
LPVOID  pUnused,
DWORD  dwSeclFlags 
)

Definition at line 2650 of file shlexec.cpp.

2657{
2660 LPCWSTR pszVerb = NULL;
2661 WCHAR szFile[MAX_PATH], szFile2[MAX_PATH];
2662 HRESULT hr;
2663 LPCWSTR pchParams;
2664 LPWSTR lpCommand = NULL;
2665
2666 if (pwszCommand == NULL)
2668 1, (ULONG_PTR*)pwszCommand);
2669
2670 __SHCloneStrW(&lpCommand, pwszCommand);
2671 StrTrimW(lpCommand, L" \t");
2672
2673 if (dwSeclFlags & SECL_NO_UI)
2675 if (dwSeclFlags & SECL_LOG_USAGE)
2677 if (dwSeclFlags & SECL_USE_IDLIST)
2679
2680 if (dwSeclFlags & SECL_RUNAS)
2681 {
2682 dwSize = 0;
2683 hr = AssocQueryStringW(ASSOCF_NONE, ASSOCSTR_COMMAND, lpCommand, L"RunAs", NULL, &dwSize);
2684 if (SUCCEEDED(hr) && dwSize != 0)
2685 {
2686 pszVerb = L"runas";
2687 }
2688 }
2689
2690 if (PathIsURLW(lpCommand) || UrlIsW(lpCommand, URLIS_APPLIABLE))
2691 {
2692 StringCchCopyW(szFile, _countof(szFile), lpCommand);
2693 pchParams = NULL;
2694 }
2695 else
2696 {
2697 PCWSTR apPathList[2];
2698
2699 pchParams = SplitParams(lpCommand, szFile, _countof(szFile));
2700 if (szFile[0] != UNICODE_NULL && szFile[1] == L':' &&
2701 szFile[2] == UNICODE_NULL)
2702 {
2703 PathAddBackslashW(szFile);
2704 }
2705
2706 WCHAR szCurDir[MAX_PATH];
2707 GetCurrentDirectoryW(_countof(szCurDir), szCurDir);
2708 if (pwszStartDir)
2709 {
2710 SetCurrentDirectoryW(pwszStartDir);
2711 }
2712
2713 if ((PathIsRelativeW(szFile) &&
2714 GetFullPathNameW(szFile, _countof(szFile2), szFile2, NULL) &&
2715 PathFileExistsW(szFile2)) ||
2716 SearchPathW(NULL, szFile, NULL, _countof(szFile2), szFile2, NULL))
2717 {
2718 StringCchCopyW(szFile, _countof(szFile), szFile2);
2719 }
2720
2721 apPathList[0] = pwszStartDir;
2722 apPathList[1] = NULL;
2723 PathFindOnPathExW(szFile, apPathList, WHICH_DEFAULT);
2724
2725 if (!(dwSeclFlags & SECL_ALLOW_NONEXE))
2726 {
2727 if (!GetBinaryTypeW(szFile, &dwType))
2728 {
2729 SHFree(lpCommand);
2730
2731 if (!(dwSeclFlags & SECL_NO_UI))
2732 {
2733 WCHAR szText[128 + MAX_PATH], szFormat[128];
2735 StringCchPrintfW(szText, _countof(szText), szFormat, szFile);
2736 MessageBoxW(hwnd, szText, NULL, MB_ICONERROR);
2737 }
2738 return CO_E_APPNOTFOUND;
2739 }
2740 }
2741 else
2742 {
2744 {
2745 SHFree(lpCommand);
2746
2747 if (!(dwSeclFlags & SECL_NO_UI))
2748 {
2749 WCHAR szText[128 + MAX_PATH], szFormat[128];
2751 StringCchPrintfW(szText, _countof(szText), szFormat, szFile);
2752 MessageBoxW(hwnd, szText, NULL, MB_ICONERROR);
2753 }
2755 }
2756 }
2757 }
2758
2759 ZeroMemory(&info, sizeof(info));
2760 info.cbSize = sizeof(info);
2761 info.fMask = dwFlags;
2762 info.hwnd = hwnd;
2763 info.lpVerb = pszVerb;
2764 info.lpFile = szFile;
2765 info.lpParameters = (pchParams && *pchParams) ? pchParams : NULL;
2766 info.lpDirectory = pwszStartDir;
2767 info.nShow = nShow;
2768 if (ShellExecuteExW(&info))
2769 {
2770 if (info.lpIDList)
2771 CoTaskMemFree(info.lpIDList);
2772
2773 SHFree(lpCommand);
2774
2775 return S_OK;
2776 }
2777
2778 dwError = GetLastError();
2779
2780 SHFree(lpCommand);
2781
2782 return HRESULT_FROM_WIN32(dwError);
2783}
#define SECL_USE_IDLIST
#define SECL_LOG_USAGE
#define SECL_ALLOW_NONEXE
#define SECL_RUNAS
#define SECL_NO_UI
#define GetCurrentDirectoryW(x, y)
Definition: compat.h:756
VOID WINAPI RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, _In_opt_ const ULONG_PTR *lpArguments)
Definition: except.c:700
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
BOOL WINAPI SetCurrentDirectoryW(IN LPCWSTR lpPathName)
Definition: path.c:2249
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
Definition: path.c:1298
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
Definition: path.c:1106
BOOL WINAPI GetBinaryTypeW(LPCWSTR lpApplicationName, LPDWORD lpBinaryType)
Definition: vdm.c:1243
HRESULT WINAPI AssocQueryStringW(ASSOCF cfFlags, ASSOCSTR str, LPCWSTR pszAssoc, LPCWSTR pszExtra, LPWSTR pszOut, DWORD *pcchOut)
Definition: assoc.c:436
BOOL WINAPI PathFindOnPathExW(LPWSTR lpszFile, LPCWSTR *lppszOtherDirs, DWORD dwWhich)
Definition: path.c:1357
BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath)
Definition: path.c:1585
BOOL WINAPI StrTrimW(LPWSTR lpszStr, LPCWSTR lpszTrim)
Definition: string.c:1883
BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis)
Definition: url.c:1933
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
#define UNICODE_NULL
#define PathAddBackslashW
Definition: pathcch.h:301
static __inline void __SHCloneStrW(WCHAR **target, const WCHAR *source)
Definition: shell32_main.h:172
#define SEE_MASK_FLAG_LOG_USAGE
Definition: shellapi.h:59
#define SEE_MASK_DOENVSUBST
Definition: shellapi.h:35
#define SEE_MASK_NOASYNC
Definition: shellapi.h:33
#define SEE_MASK_INVOKEIDLIST
Definition: shellapi.h:28
static LPCWSTR SplitParams(LPCWSTR psz, LPWSTR pszArg0, size_t cchArg0)
Definition: shlexec.cpp:2604
@ ASSOCSTR_COMMAND
Definition: shlwapi.h:612
@ URLIS_APPLIABLE
Definition: shlwapi.h:1230
@ ASSOCF_NONE
Definition: shlwapi.h:590
#define WHICH_DEFAULT
#define IDS_FILE_NOT_FOUND
Definition: shresdef.h:345
STRSAFEAPI StringCchPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat,...)
Definition: strsafe.h:530
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149
#define EXCEPTION_NONCONTINUABLE
Definition: stubs.h:23
const uint16_t * PCWSTR
Definition: typedefs.h:57
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
#define EXCEPTION_ACCESS_VIOLATION
Definition: winbase.h:337
#define CO_E_APPNOTFOUND
Definition: winerror.h:2808
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
#define MB_ICONERROR
Definition: winuser.h:790

◆ SheRemoveQuotesA()

LPSTR WINAPI SheRemoveQuotesA ( LPSTR  psz)

Definition at line 1061 of file utils.cpp.

1062{
1063 PCHAR pch;
1064
1065 if (*psz == '"')
1066 {
1067 for (pch = psz + 1; *pch && *pch != '"'; ++pch)
1068 {
1069 *(pch - 1) = *pch;
1070 }
1071
1072 if (*pch == '"')
1073 *(pch - 1) = ANSI_NULL;
1074 }
1075
1076 return psz;
1077}
#define pch(ap)
Definition: match.c:418
#define ANSI_NULL
char * PCHAR
Definition: typedefs.h:51

◆ SheRemoveQuotesW()

LPWSTR WINAPI SheRemoveQuotesW ( LPWSTR  psz)

Definition at line 1086 of file utils.cpp.

1087{
1088 PWCHAR pch;
1089
1090 if (*psz == L'"')
1091 {
1092 for (pch = psz + 1; *pch && *pch != L'"'; ++pch)
1093 {
1094 *(pch - 1) = *pch;
1095 }
1096
1097 if (*pch == L'"')
1098 *(pch - 1) = UNICODE_NULL;
1099 }
1100
1101 return psz;
1102}
uint16_t * PWCHAR
Definition: typedefs.h:56

◆ SHFindComputer()

BOOL WINAPI SHFindComputer ( LPCITEMIDLIST  pidlRoot,
LPCITEMIDLIST  pidlSavedSearch 
)

Definition at line 1145 of file utils.cpp.

1146{
1147 UNREFERENCED_PARAMETER(pidlRoot);
1148 UNREFERENCED_PARAMETER(pidlSavedSearch);
1149
1150 TRACE("%p %p\n", pidlRoot, pidlSavedSearch);
1151
1152 IContextMenu *pCM;
1153 HRESULT hr = CoCreateInstance(CLSID_ShellSearchExt, NULL, CLSCTX_INPROC_SERVER,
1154 IID_IContextMenu, (void **)&pCM);
1155 if (FAILED(hr))
1156 {
1157 ERR("0x%08X\n", hr);
1158 return hr;
1159 }
1160
1161 CMINVOKECOMMANDINFO InvokeInfo = { sizeof(InvokeInfo) };
1162 InvokeInfo.lpParameters = "{996E1EB1-B524-11D1-9120-00A0C98BA67D}";
1163 InvokeInfo.nShow = SW_SHOWNORMAL;
1164 hr = pCM->InvokeCommand(&InvokeInfo);
1165 pCM->Release();
1166
1167 return SUCCEEDED(hr);
1168}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
HRESULT InvokeCommand([in] LPCMINVOKECOMMANDINFO lpici)
ULONG Release()
#define SW_SHOWNORMAL
Definition: winuser.h:773

Referenced by CTrayWindow::HandleCommand(), CTrayWindow::HandleHotKey(), and StartMenuHandler::ShowSearchComputer().

◆ SHFreeUnusedLibraries()

void WINAPI SHFreeUnusedLibraries ( void  )

Definition at line 1727 of file shellord.c.

1728{
1729 FIXME("stub\n");
1731}
void WINAPI DECLSPEC_HOTPATCH CoFreeUnusedLibraries(void)
Definition: compobj.c:3701

◆ SHGetComputerDisplayNameW()

HRESULT WINAPI SHGetComputerDisplayNameW ( _In_opt_ LPWSTR  pszServerName,
_In_ DWORD  dwFlags,
_Out_writes_z_(cchNameMax) LPWSTR  pszName,
_In_ DWORD  cchNameMax 
)

◆ SHGetFileIcon()

HICON WINAPI SHGetFileIcon ( DWORD  dwReserved,
LPCSTR  lpszPath,
DWORD  dwFileAttributes,
UINT  uFlags 
)

◆ SHGetImageList()

HRESULT WINAPI SHGetImageList ( int  iImageList,
REFIID  riid,
void **  ppv 
)

Definition at line 2673 of file shellord.c.

2674{
2675 HIMAGELIST hLarge, hSmall;
2676 HIMAGELIST hNew;
2677 HRESULT ret = E_FAIL;
2678
2679 /* Wine currently only maintains large and small image lists */
2680 if ((iImageList != SHIL_LARGE) && (iImageList != SHIL_SMALL) && (iImageList != SHIL_SYSSMALL))
2681 {
2682 FIXME("Unsupported image list %i requested\n", iImageList);
2683 return E_FAIL;
2684 }
2685
2686 Shell_GetImageLists(&hLarge, &hSmall);
2687#ifndef __REACTOS__
2688 hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall);
2689
2690 /* Get the interface for the new image list */
2691 if (hNew)
2692 {
2694 ImageList_Destroy(hNew);
2695 }
2696#else
2697 /* Duplicating the imagelist causes the start menu items not to draw on
2698 * the first show. Was the Duplicate necessary for some reason? I believe
2699 * Windows returns the raw pointer here. */
2700 hNew = (iImageList == SHIL_LARGE ? hLarge : hSmall);
2701 ret = IImageList2_QueryInterface((IImageList2 *) hNew, riid, ppv);
2702#endif
2703
2704 return ret;
2705}
HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST himl, REFIID riid, void **ppv)
Definition: imagelist.c:4119
HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himlSrc)
Definition: imagelist.c:1819
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
Definition: imagelist.c:941
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define SHIL_SYSSMALL
Definition: shellapi.h:188
#define SHIL_SMALL
Definition: shellapi.h:186
#define SHIL_LARGE
Definition: shellapi.h:185

Referenced by check_icon_size(), CISFBand::CreateSimpleToolbar(), CISFBand::InvokeCommand(), CSearchBar::OnInitDialog(), CAddressBand::SetSite(), test_get_file_info_iconlist(), test_SHGetImageList(), and CMenuToolbarBase::UpdateImageLists().

◆ SHGetUserDisplayName()

HRESULT WINAPI SHGetUserDisplayName ( _Out_writes_to_ *, *puSize PWSTR  pName,
_Inout_ PULONG  puSize 
)

Definition at line 1844 of file utils.cpp.

1847{
1848 if (!pName || !puSize)
1849 return E_INVALIDARG;
1850
1851 if (GetUserNameExW(NameDisplay, pName, puSize))
1852 return S_OK;
1853
1854 LONG error = GetLastError(); // for ERROR_NONE_MAPPED
1856
1857 WCHAR UserName[MAX_PATH];
1858 DWORD cchUserName = _countof(UserName);
1859 if (!GetUserNameW(UserName, &cchUserName))
1861
1862 // Was the user name not available in the specified format (NameDisplay)?
1863 if (error == ERROR_NONE_MAPPED)
1864 {
1865 // Try to get the user name by using Network API
1866 PUSER_INFO_2 UserInfo;
1867 DWORD NetError = NetUserGetInfo(NULL, UserName, 2, (PBYTE*)&UserInfo);
1868 if (NetError)
1869 {
1870 hr = HRESULT_FROM_WIN32(NetError);
1871 }
1872 else
1873 {
1874 if (UserInfo->usri2_full_name)
1875 {
1876 hr = StringCchCopyW(pName, *puSize, UserInfo->usri2_full_name);
1877 if (SUCCEEDED(hr))
1878 {
1879 // Include the NUL-terminator
1880 *puSize = lstrlenW(UserInfo->usri2_full_name) + 1;
1881 }
1882 }
1883
1884 NetApiBufferFree(UserInfo);
1885 }
1886 }
1887
1888 if (FAILED(hr))
1889 {
1890 hr = StringCchCopyW(pName, *puSize, UserName);
1891 if (SUCCEEDED(hr))
1892 *puSize = cchUserName;
1893 }
1894
1895 return hr;
1896}
#define E_INVALIDARG
Definition: ddrawi.h:101
BOOL WINAPI GetUserNameW(LPWSTR lpszName, LPDWORD lpSize)
Definition: misc.c:291
NET_API_STATUS WINAPI NetApiBufferFree(LPVOID Buffer)
Definition: apibuf.c:43
NET_API_STATUS WINAPI NetUserGetInfo(LPCWSTR servername, LPCWSTR username, DWORD level, LPBYTE *bufptr)
Definition: user.c:3147
#define error(str)
Definition: mkdosfs.c:1605
static LPSTR pName
Definition: security.c:75
BYTE * PBYTE
Definition: pedump.c:66
BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
Definition: sspi.c:1079
LPWSTR usri2_full_name
Definition: lmaccess.h:222
#define ERROR_NONE_MAPPED
Definition: winerror.h:814

Referenced by START_TEST().

◆ SHGetUserSessionId()

DWORD WINAPI SHGetUserSessionId ( _In_opt_ HANDLE  hToken)

Definition at line 690 of file utils.cpp.

691{
692 DWORD dwSessionId, dwLength;
693 BOOL bOpenToken = FALSE;
694
695 TRACE("%p\n", hToken);
696
697 if (!hToken)
698 bOpenToken = SHOpenEffectiveToken(&hToken);
699
700 if (!hToken ||
701 !GetTokenInformation(hToken, TokenSessionId, &dwSessionId, sizeof(dwSessionId), &dwLength))
702 {
703 dwSessionId = 0;
704 }
705
706 if (bOpenToken)
707 CloseHandle(hToken);
708
709 return dwSessionId;
710}
static DWORD DWORD * dwLength
Definition: fusion.c:86
EXTERN_C BOOL WINAPI SHOpenEffectiveToken(_Out_ LPHANDLE phToken)
Definition: utils.cpp:681
@ TokenSessionId
Definition: setypes.h:977

◆ SHGetViewStream()

IStream *WINAPI SHGetViewStream ( LPCITEMIDLIST  ,
DWORD  ,
LPCTSTR  ,
LPCTSTR  ,
LPCTSTR   
)

◆ SHHandleDiskFull()

void WINAPI SHHandleDiskFull ( HWND  hwndOwner,
UINT  uDrive 
)

Definition at line 629 of file stubs.cpp.

630{
631 FIXME("SHHandleDiskFull() stub\n");
632}

◆ SHILCreateFromPathA()

HRESULT WINAPI SHILCreateFromPathA ( LPCSTR  path,
LPITEMIDLIST ppidl,
DWORD attributes 
)

Definition at line 391 of file pidl.c.

392{
393 WCHAR lpszDisplayName[MAX_PATH];
394
395 TRACE_(shell)("%s %p 0x%08x\n", path, ppidl, attributes ? *attributes : 0);
396
397 if (!MultiByteToWideChar(CP_ACP, 0, path, -1, lpszDisplayName, MAX_PATH))
398 lpszDisplayName[MAX_PATH-1] = 0;
399
400 return SHILCreateFromPathW(lpszDisplayName, ppidl, attributes);
401}
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
HRESULT WINAPI SHILCreateFromPathW(LPCWSTR path, LPITEMIDLIST *ppidl, DWORD *attributes)
Definition: pidl.c:403

Referenced by ILCreateFromPathA(), and SHILCreateFromPathAW().

◆ SHILCreateFromPathW()

HRESULT WINAPI SHILCreateFromPathW ( LPCWSTR  path,
LPITEMIDLIST ppidl,
DWORD attributes 
)

Definition at line 403 of file pidl.c.

404{
405 LPSHELLFOLDER sf;
406 DWORD pchEaten;
408
409 TRACE_(shell)("%s %p 0x%08x\n", debugstr_w(path), ppidl, attributes ? *attributes : 0);
410
411 if (SUCCEEDED (SHGetDesktopFolder(&sf)))
412 {
413 ret = IShellFolder_ParseDisplayName(sf, 0, NULL, (LPWSTR)path, &pchEaten, ppidl, attributes);
414 IShellFolder_Release(sf);
415 }
416 return ret;
417}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define IShellFolder_ParseDisplayName
Definition: utils.cpp:14

Referenced by CDefaultContextMenu::DoCreateNewFolder(), ILCreateFromPathW(), CNewMenu::SelectNewItem(), CShellLink::SetTargetFromPIDLOrPath(), SHGetFileInfoW(), SHGetFolderLocation(), SHILCreateFromPathA(), SHILCreateFromPathAW(), and VariantToIdlist().

◆ SHInitRestricted()

BOOL WINAPI SHInitRestricted ( LPCVOID  unused,
LPCVOID  inpRegKey 
)

◆ SHInvokeCommand()

HRESULT WINAPI SHInvokeCommand ( HWND  hWnd,
IShellFolder lpFolder,
LPCITEMIDLIST  lpApidl,
LPCSTR  lpVerb 
)

◆ SHInvokeCommandOnContextMenu()

HRESULT WINAPI SHInvokeCommandOnContextMenu ( _In_opt_ HWND  hWnd,
_In_opt_ IUnknown pUnk,
_In_ IContextMenu pCM,
_In_ UINT  fCMIC,
_In_opt_ LPCSTR  pszVerb 
)

Definition at line 148 of file utils.cpp.

154{
155 return SHInvokeCommandOnContextMenuEx(hWnd, pUnk, pCM, fCMIC, CMF_EXTENDEDVERBS, pszVerb, NULL);
156}
EXTERN_C HRESULT WINAPI SHInvokeCommandOnContextMenuEx(_In_opt_ HWND hWnd, _In_opt_ IUnknown *pUnk, _In_ IContextMenu *pCM, _In_ UINT fCMIC, _In_ UINT fCMF, _In_opt_ LPCSTR pszVerb, _In_opt_ LPCWSTR pwszDir)
Definition: utils.cpp:131
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

◆ SHInvokePrivilegedFunctionW()

HRESULT WINAPI SHInvokePrivilegedFunctionW ( _In_z_ LPCWSTR  pszName,
_In_ PRIVILEGED_FUNCTION  fn,
_In_opt_ LPARAM  lParam 
)

◆ SHIsBadInterfacePtr()

BOOL WINAPI SHIsBadInterfacePtr ( _In_ LPCVOID  pv,
_In_ UINT_PTR  ucb 
)

Definition at line 1820 of file utils.cpp.

1823{
1824 struct CUnknownVtbl
1825 {
1829 };
1830 struct CUnknown { CUnknownVtbl *lpVtbl; };
1831 const CUnknown *punk = reinterpret_cast<const CUnknown *>(pv);
1832 return !punk || IsBadReadPtr(punk, sizeof(punk->lpVtbl)) ||
1833 IsBadReadPtr(punk->lpVtbl, ucb) ||
1834 IsBadCodePtr((FARPROC)punk->lpVtbl->Release);
1835}
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
_In_ BOOLEAN Release
Definition: cdrom.h:920
int(* FARPROC)()
Definition: compat.h:36
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
Definition: except.c:805
BOOL NTAPI IsBadCodePtr(FARPROC lpfn)
Definition: except.c:872
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
#define REFIID
Definition: guiddef.h:118
uint32_t ULONG
Definition: typedefs.h:59
#define HRESULT
Definition: msvc.h:7

Referenced by START_TEST().

◆ SHIsTempDisplayMode()

BOOL WINAPI SHIsTempDisplayMode ( VOID  )

Definition at line 609 of file CDesktopBrowser.cpp.

610{
611 TRACE("\n");
612
613 if (GetSystemMetrics(SM_REMOTESESSION) || GetSystemMetrics(SM_REMOTECONTROL))
614 return FALSE;
615
616 DEVMODEW DevMode;
617 ZeroMemory(&DevMode, sizeof(DevMode));
618 DevMode.dmSize = sizeof(DevMode);
619
621 return FALSE;
622
623 if (!DevMode.dmPelsWidth || !DevMode.dmPelsHeight)
624 return FALSE;
625
626 HDC hDC = GetDC(NULL);
627 DWORD cxWidth = GetDeviceCaps(hDC, HORZRES);
628 DWORD cyHeight = GetDeviceCaps(hDC, VERTRES);
630
631 return (cxWidth != DevMode.dmPelsWidth || cyHeight != DevMode.dmPelsHeight);
632}
static HDC hDC
Definition: 3dtext.c:33
DWORD dmPelsWidth
Definition: wingdi.h:1648
DWORD dmPelsHeight
Definition: wingdi.h:1649
WORD dmSize
Definition: wingdi.h:1620
BOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode)
Definition: display.c:408
#define HORZRES
Definition: wingdi.h:716
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define VERTRES
Definition: wingdi.h:717
#define ENUM_REGISTRY_SETTINGS
Definition: winuser.h:180
#define SM_REMOTESESSION
Definition: winuser.h:1061
int WINAPI GetSystemMetrics(_In_ int)

◆ SHLimitInputCombo()

HRESULT WINAPI SHLimitInputCombo ( HWND  hWnd,
IShellFolder psf 
)

◆ SHNetConnectionDialog()

DWORD WINAPI SHNetConnectionDialog ( HWND  hwndOwner,
LPCWSTR  lpstrRemoteName,
DWORD  dwType 
)

Definition at line 605 of file stubs.cpp.

608{
609 FIXME("SHNetConnectionDialog() stub\n");
611}
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101

◆ SHOpenEffectiveToken()

BOOL WINAPI SHOpenEffectiveToken ( _Out_ LPHANDLE  phToken)

Definition at line 681 of file utils.cpp.

682{
683 TRACE("%p\n", phToken);
685}
static BOOL OpenEffectiveToken(_In_ DWORD DesiredAccess, _Out_ HANDLE *phToken)
Definition: utils.cpp:239
_In_opt_ LPSTR _In_opt_ LPSTR _In_ DWORD _In_ DWORD _Out_opt_ PHANDLE phToken
Definition: winbase.h:2740
#define TOKEN_ADJUST_PRIVILEGES
Definition: setypes.h:930
#define TOKEN_QUERY
Definition: setypes.h:928

Referenced by SHGetUserSessionId(), SHInvokePrivilegedFunctionW(), and SHTestTokenPrivilegeW().

◆ ShortSizeFormatW()

LPWSTR WINAPI ShortSizeFormatW ( _In_ DWORD  dwNumber,
_Out_writes_(0x8FFF) LPWSTR  pszBuffer 
)

Definition at line 670 of file utils.cpp.

673{
674 TRACE("(%lu, %p)\n", dwNumber, pszBuffer);
675 return StrFormatByteSizeW(dwNumber, pszBuffer, 0x8FFF);
676}
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
Definition: string.c:2394

◆ SHOutOfMemoryMessageBox()

int WINAPI SHOutOfMemoryMessageBox ( HWND  hwndOwner,
LPCSTR  lpCaption,
UINT  uType 
)

Definition at line 1955 of file shellord.c.

1959{
1960 FIXME("%p %s 0x%08x stub\n",hwndOwner, lpCaption, uType);
1961 return 0;
1962}

◆ SHRegisterDragDrop()

HRESULT WINAPI SHRegisterDragDrop ( HWND  hWnd,
LPDROPTARGET  lpDropTarget 
)

Definition at line 738 of file shellord.c.

741{
742 static BOOL ole_initialized = FALSE;
743 HRESULT hr;
744
745 TRACE("(%p,%p)\n", hWnd, pDropTarget);
746
747 if (!ole_initialized)
748 {
750 if (FAILED(hr))
751 return hr;
752 ole_initialized = TRUE;
753 }
754 return RegisterDragDrop(hWnd, pDropTarget);
755}
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
Definition: ole2.c:169
HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
Definition: ole2.c:557

◆ SHRegQueryValueExA()

LONG WINAPI SHRegQueryValueExA ( HKEY  hkey,
LPCSTR  lpValueName,
LPDWORD  lpReserved,
LPDWORD  lpType,
LPBYTE  lpData,
LPDWORD  lpcbData 
)

Definition at line 78 of file shellreg.c.

85{
86 TRACE("%p %s %p %p %p %p\n", hkey, lpValueName, lpReserved, lpType, lpData, lpcbData);
87 return SHQueryValueExA(hkey, lpValueName, lpReserved, lpType, lpData, lpcbData);
88}
DWORD WINAPI SHQueryValueExA(HKEY hKey, LPCSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1402

◆ SHRegQueryValueExW()

LONG WINAPI SHRegQueryValueExW ( HKEY  hkey,
LPCWSTR  pszValue,
LPDWORD  pdwReserved,
LPDWORD  pdwType,
LPVOID  pvData,
LPDWORD  pcbData 
)

Definition at line 108 of file shellreg.c.

115{
116 TRACE("%p %s %p %p %p %p\n",
117 hkey, debugstr_w(pszValue), pdwReserved, pdwType, pvData, pcbData);
118 return SHQueryValueExW(hkey, pszValue, pdwReserved, pdwType, pvData, pcbData);
119}
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1461
_Reserved_ DWORD * pdwReserved
Definition: wincrypt.h:4254
_In_ DWORD _Out_writes_bytes_to_opt_ pcbData void _Inout_ DWORD * pcbData
Definition: wincrypt.h:4950
_In_ ULONG _In_opt_ PVOID pvData
Definition: winddi.h:3749

Referenced by SHELL_TryAppPathW().

◆ SHRevokeDragDrop()

HRESULT WINAPI SHRevokeDragDrop ( HWND  hWnd)

Definition at line 773 of file shellord.c.

774{
775 TRACE("(%p)\n", hWnd);
776 return RevokeDragDrop(hWnd);
777}
HRESULT WINAPI RevokeDragDrop(HWND hwnd)
Definition: ole2.c:639

◆ SHSettingsChanged()

BOOL WINAPI SHSettingsChanged ( LPCVOID  unused,
LPCWSTR  pszKey 
)

Definition at line 178 of file shpolicy.c.

179{
180 TRACE("(%p, %s)\n", unused, debugstr_w(pszKey));
181
182 if (pszKey &&
183 lstrcmpiW(L"Policy", pszKey) != 0 &&
184 lstrcmpiW(L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies", pszKey) != 0)
185 {
186 return FALSE;
187 }
188
190}
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4262
LONG WINAPI SHGlobalCounterIncrement(HANDLE hSem)
Definition: thread.c:453
WORD unused[29]
Definition: crypt.c:1155
static HANDLE SHELL_GetRestrictionsCounter(VOID)
Definition: shpolicy.c:107

Referenced by IntSetShellStateSettings(), and IntSetUnderlineState().

◆ SHShouldShowWizards()

HRESULT WINAPI SHShouldShowWizards ( _In_ IUnknown pUnknown)

Definition at line 216 of file utils.cpp.

217{
218 HRESULT hr;
219 IShellBrowser *pBrowser;
220
221 hr = IUnknown_QueryService(pUnknown, SID_STopWindow, IID_PPV_ARG(IShellBrowser, &pBrowser));
222 if (FAILED(hr))
223 return hr;
224
227 if (state.fWebView &&
228 !SHRegGetBoolUSValueW(L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
229 L"ShowWizardsTEST", FALSE, FALSE))
230 {
231 hr = S_FALSE;
232 }
233
234 pBrowser->Release();
235 return hr;
236}
static int state
Definition: maze.c:121
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1501
BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault)
Definition: reg.c:770
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
Definition: shellord.c:225
#define SSF_WEBVIEW
Definition: shlobj.h:1620
#define S_FALSE
Definition: winerror.h:2357
#define IID_PPV_ARG(Itype, ppType)

Referenced by START_TEST().

◆ SHSimpleIDListFromPathA()

LPITEMIDLIST WINAPI SHSimpleIDListFromPathA ( LPCSTR  lpszPath)

Definition at line 1216 of file pidl.c.

1217{
1218 LPITEMIDLIST pidl = NULL;
1219 LPWSTR wPath = NULL;
1220 int len;
1221
1222 TRACE("%s\n", debugstr_a(lpszPath));
1223
1224 if (lpszPath)
1225 {
1226 len = MultiByteToWideChar(CP_ACP, 0, lpszPath, -1, NULL, 0);
1227 wPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
1228 MultiByteToWideChar(CP_ACP, 0, lpszPath, -1, wPath, len);
1229 }
1230
1231 _ILParsePathW(wPath, NULL, TRUE, &pidl, NULL);
1232
1233 HeapFree(GetProcessHeap(), 0, wPath);
1234 TRACE("%s %p\n", debugstr_a(lpszPath), pidl);
1235 return pidl;
1236}
static HRESULT _ILParsePathW(LPCWSTR path, LPWIN32_FIND_DATAW lpFindFile, BOOL bBindCtx, LPITEMIDLIST *ppidl, LPDWORD prgfInOut)
Definition: pidl.c:1149

Referenced by SHSimpleIDListFromPathAW().

◆ SHSimpleIDListFromPathW()

LPITEMIDLIST WINAPI SHSimpleIDListFromPathW ( LPCWSTR  lpszPath)

Definition at line 1238 of file pidl.c.

1239{
1240 LPITEMIDLIST pidl = NULL;
1241
1242 TRACE("%s\n", debugstr_w(lpszPath));
1243
1244 _ILParsePathW(lpszPath, NULL, TRUE, &pidl, NULL);
1245
1246 TRACE("%s %p\n", debugstr_w(lpszPath), pidl);
1247 return pidl;
1248}

Referenced by CShellLink::SetTargetFromPIDLOrPath(), SHChangeNotify(), and SHSimpleIDListFromPathAW().

◆ SHTestTokenPrivilegeW()

BOOL WINAPI SHTestTokenPrivilegeW ( _In_opt_ HANDLE  hToken,
_In_z_ LPCWSTR  lpName 
)

◆ SHUpdateRecycleBinIcon()

HRESULT WINAPI SHUpdateRecycleBinIcon ( void  )

Definition at line 1294 of file CRecycleBin.cpp.

1295{
1296 FIXME("stub\n");
1297
1298 // HACK! This dwItem2 should be the icon index in the system image list that has changed.
1299 // FIXME: Call SHMapPIDLToSystemImageListIndex
1300 DWORD dwItem2 = -1;
1301
1303 return S_OK;
1304}
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
#define SHCNE_UPDATEIMAGE
Definition: shlobj.h:1905
#define SHCNF_DWORD
Definition: shlobj.h:1924

Referenced by FileOpCallback(), and SHELL32_FileOperation().

◆ SHWaitForFileToOpen()

BOOL WINAPI SHWaitForFileToOpen ( LPCITEMIDLIST  pidl,
DWORD  dwFlags,
DWORD  dwTimeout 
)

Definition at line 1976 of file shellord.c.

1980{
1981 FIXME("%p 0x%08x 0x%08x stub\n", pidl, dwFlags, dwTimeout);
1982 return FALSE;
1983}
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081

◆ StrRetToStrNA()

BOOL WINAPI StrRetToStrNA ( LPSTR  dest,
DWORD  len,
LPSTRRET  src,
const ITEMIDLIST pidl 
)

Definition at line 54 of file shellstring.c.

55{
56 TRACE("dest=%p len=0x%x strret=%p(%s) pidl=%p\n", dest, len, src, debugstr_strret(src), pidl);
57
58 if (!dest)
59 return FALSE;
60
61 switch (src->uType)
62 {
63 case STRRET_WSTR:
64 WideCharToMultiByte(CP_ACP, 0, src->u.pOleStr, -1, dest, len, NULL, NULL);
65 CoTaskMemFree(src->u.pOleStr);
66 break;
67 case STRRET_CSTR:
68 lstrcpynA(dest, src->u.cStr, len);
69 break;
70 case STRRET_OFFSET:
71 lstrcpynA(dest, ((LPCSTR)&pidl->mkid)+src->u.uOffset, len);
72 break;
73 default:
74 FIXME("unknown type %u!\n", src->uType);
75 if (len)
76 *dest = '\0';
77 return FALSE;
78 }
79 TRACE("-- %s\n", debugstr_a(dest) );
80 return TRUE;
81}
#define lstrcpynA
Definition: compat.h:751
#define WideCharToMultiByte
Definition: compat.h:111
GLenum src
Definition: glext.h:6340
static char * dest
Definition: rtl.c:135
static const char * debugstr_strret(STRRET *s)
Definition: shellstring.c:39
@ STRRET_CSTR
Definition: shtypes.idl:87
@ STRRET_OFFSET
Definition: shtypes.idl:86
@ STRRET_WSTR
Definition: shtypes.idl:85
SHITEMID mkid
Definition: shtypes.idl:34

Referenced by CDefView::OnNotify(), and StrRetToStrNAW().

◆ StrRetToStrNW()

BOOL WINAPI StrRetToStrNW ( LPWSTR  dest,
DWORD  len,
LPSTRRET  src,
const ITEMIDLIST pidl 
)

Definition at line 85 of file shellstring.c.

86{
87 TRACE("dest=%p len=0x%x strret=%p(%s) pidl=%p\n", dest, len, src, debugstr_strret(src), pidl);
88
89 if (!dest)
90 return FALSE;
91
92 switch (src->uType)
93 {
94 case STRRET_WSTR:
95 lstrcpynW(dest, src->u.pOleStr, len);
96 CoTaskMemFree(src->u.pOleStr);
97 break;
98 case STRRET_CSTR:
99 if (!MultiByteToWideChar(CP_ACP, 0, src->u.cStr, -1, dest, len) && len)
100 dest[len-1] = 0;
101 break;
102 case STRRET_OFFSET:
103 if (!MultiByteToWideChar(CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->u.uOffset, -1, dest, len)
104 && len)
105 dest[len-1] = 0;
106 break;
107 default:
108 FIXME("unknown type %u!\n", src->uType);
109 if (len)
110 *dest = '\0';
111 return FALSE;
112 }
113 return TRUE;
114}
#define lstrcpynW
Definition: compat.h:738

Referenced by BrFolder_GetName(), CDefView::DoColumnContextMenu(), ILGetDisplayNameExW(), CDefView::LoadColumn(), CDefView::OnNotify(), SHELL_GetDetailsOfToBuffer(), SHELL_GetPathFromIDListForExecuteW(), SHGetFileInfoW(), and StrRetToStrNAW().

◆ StrRStrA()

PSTR WINAPI StrRStrA ( _In_ PCSTR  pszSrc,
_In_opt_ PCSTR  pszLast,
_In_ PCSTR  pszSearch 
)

Definition at line 40 of file utils.cpp.

44{
45 INT cchSearch = lstrlenA(pszSearch);
46
47 PCSTR pchEnd = pszLast ? pszLast : &pszSrc[lstrlenA(pszSrc)];
48 if (pchEnd == pszSrc)
49 return NULL;
50
51 INT_PTR cchEnd = pchEnd - pszSrc;
52 for (;;)
53 {
54 --pchEnd;
55 --cchEnd;
56 if (!pchEnd)
57 break;
58 if (!StrCmpNA(pchEnd, pszSearch, cchSearch) && pchEnd == StrEndNA(pszSrc, cchEnd))
59 break;
60 if (pchEnd == pszSrc)
61 return NULL;
62 }
63
64 return const_cast<PSTR>(pchEnd);
65}
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
Definition: string.c:489
static PCSTR StrEndNA(_In_ PCSTR psz, _In_ INT_PTR cch)
Definition: utils.cpp:17
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
int32_t INT_PTR
Definition: typedefs.h:64
char * PSTR
Definition: typedefs.h:51
int32_t INT
Definition: typedefs.h:58
const char * PCSTR
Definition: typedefs.h:52

Referenced by TEST_StrRStrA().

◆ StrRStrW()

PWSTR WINAPI StrRStrW ( _In_ PCWSTR  pszSrc,
_In_opt_ PCWSTR  pszLast,
_In_ PCWSTR  pszSearch 
)

Definition at line 72 of file utils.cpp.

76{
77 INT cchSearch = lstrlenW(pszSearch);
78
79 PCWSTR pchEnd = pszLast ? pszLast : &pszSrc[lstrlenW(pszSrc)];
80 if (pchEnd == pszSrc)
81 return NULL;
82
83 INT_PTR cchEnd = pchEnd - pszSrc;
84 for (;;)
85 {
86 --pchEnd;
87 --cchEnd;
88 if (!pchEnd)
89 break;
90 if (!StrCmpNW(pchEnd, pszSearch, cchSearch) && pchEnd == StrEndNW(pszSrc, cchEnd))
91 break;
92 if (pchEnd == pszSrc)
93 return NULL;
94 }
95
96 return const_cast<PWSTR>(pchEnd);
97}
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:500
static PCWSTR StrEndNW(_In_ PCWSTR psz, _In_ INT_PTR cch)
Definition: utils.cpp:27
uint16_t * PWSTR
Definition: typedefs.h:56

Referenced by TEST_StrRStrW().