ReactOS  0.4.14-dev-49-gfb4591c
shellord.c File Reference
#include <wine/config.h>
#include <windef.h>
#include <winbase.h>
#include <wine/winternl.h>
#include <shlobj.h>
#include <undocshell.h>
#include <shlwapi.h>
#include <commdlg.h>
#include <commoncontrols.h>
#include "../shellrecyclebin/recyclebin.h"
#include <wine/debug.h>
#include <wine/unicode.h>
#include "pidl.h"
#include "shell32_main.h"
Include dependency graph for shellord.c:

Go to the source code of this file.

Classes

struct  tagCREATEMRULIST
 
struct  _PSXA
 
struct  _PSXA_CALL
 

Macros

#define WIN32_NO_STATUS
 
#define _INC_WINDOWS
 
#define COBJMACROS
 
#define MRUF_STRING_LIST   0 /* list will contain strings */
 
#define MRUF_BINARY_LIST   1 /* list will contain binary data */
 
#define MRUF_DELAYED_SAVE   2 /* only save list order to reg. is FreeMRUList */
 

Typedefs

typedef struct tagCREATEMRULIST CREATEMRULISTA
 
typedef struct tagCREATEMRULISTLPCREATEMRULISTA
 
typedef struct _PSXA PSXA
 
typedef struct _PSXAPPSXA
 
typedef struct _PSXA_CALL PSXA_CALL
 
typedef struct _PSXA_CALLPPSXA_CALL
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
 WINE_DECLARE_DEBUG_CHANNEL (pidl)
 
HANDLE WINAPI CreateMRUListA (LPCREATEMRULISTA lpcml)
 
VOID WINAPI FreeMRUList (HANDLE hMRUList)
 
INT WINAPI AddMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData)
 
INT WINAPI FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum)
 
INT WINAPI EnumMRUListA (HANDLE hList, INT nItemPos, LPVOID lpBuffer, DWORD nBufferSize)
 
DWORD WINAPI ParseFieldA (LPCSTR src, DWORD nField, LPSTR dst, DWORD len)
 
DWORD WINAPI ParseFieldW (LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len)
 
DWORD WINAPI ParseFieldAW (LPCVOID src, DWORD nField, LPVOID dst, DWORD len)
 
BOOL WINAPI GetFileNameFromBrowse (HWND hwndOwner, LPWSTR lpstrFile, UINT nMaxFile, LPCWSTR lpstrInitialDir, LPCWSTR lpstrDefExt, LPCWSTR lpstrFilter, LPCWSTR lpstrTitle)
 
VOID WINAPI SHGetSetSettings (LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
 
VOID WINAPI SHGetSettings (LPSHELLFLAGSTATE lpsfs, DWORD dwMask)
 
LRESULT WINAPI SHShellFolderView_Message (HWND hwndCabinet, UINT uMessage, LPARAM lParam)
 
BOOL WINAPI RegisterShellHook (HWND hWnd, DWORD dwType)
 
int ShellMessageBoxW (HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType,...)
 
int ShellMessageBoxA (HINSTANCE hInstance, HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType,...)
 
HRESULT WINAPI SHRegisterDragDrop (HWND hWnd, LPDROPTARGET pDropTarget)
 
HRESULT WINAPI SHRevokeDragDrop (HWND hWnd)
 
HRESULT WINAPI SHDoDragDrop (HWND hWnd, LPDATAOBJECT lpDataObject, LPDROPSOURCE lpDropSource, DWORD dwOKEffect, LPDWORD pdwEffect)
 
WORD WINAPI ArrangeWindows (HWND hwndParent, DWORD dwReserved, const RECT *lpRect, WORD cKids, const HWND *lpKids)
 
BOOL WINAPI SignalFileOpen (PCIDLIST_ABSOLUTE pidl)
 
static INT SHADD_get_policy (LPCSTR policy, LPDWORD type, LPVOID buffer, LPDWORD len)
 
static INT CALLBACK SHADD_compare_mru (LPCVOID data1, LPCVOID data2, DWORD cbData)
 
static INT SHADD_create_add_mru_data (HANDLE mruhandle, LPCSTR doc_name, LPCSTR new_lnk_name, LPSTR buffer, INT *len)
 
void WINAPI SHAddToRecentDocs (UINT uFlags, LPCVOID pv)
 
HRESULT WINAPI SHCreateShellFolderViewEx (LPCSFV psvcbi, IShellView **ppv)
 
HRESULT WINAPI SHWinHelp (DWORD v, DWORD w, DWORD x, DWORD z)
 
BOOL WINAPI SHRunControlPanel (LPCWSTR commandLine, HWND parent)
 
VOID WINAPI SHSetInstanceExplorer (LPUNKNOWN lpUnknown)
 
HRESULT WINAPI SHGetInstanceExplorer (IUnknown **lpUnknown)
 
void WINAPI SHFreeUnusedLibraries (void)
 
BOOL WINAPI DAD_AutoScroll (HWND hwnd, AUTO_SCROLL_DATA *samples, const POINT *pt)
 
BOOL WINAPI DAD_DragEnter (HWND hwnd)
 
BOOL WINAPI DAD_DragEnterEx (HWND hwnd, POINT p)
 
BOOL WINAPI DAD_DragMove (POINT p)
 
BOOL WINAPI DAD_DragLeave (VOID)
 
BOOL WINAPI DAD_SetDragImage (HIMAGELIST himlTrack, LPPOINT lppt)
 
BOOL WINAPI DAD_ShowDragImage (BOOL bShow)
 
BOOL WINAPI ReadCabinetState (CABINETSTATE *cs, int length)
 
BOOL WINAPI WriteCabinetState (CABINETSTATE *cs)
 
BOOL WINAPI FileIconInit (BOOL bFullInit)
 
HRESULT WINAPI SetAppStartingCursor (HWND u, DWORD v)
 
HRESULT WINAPI SHLoadOLE (LPARAM lParam)
 
int WINAPI DriveType (int DriveType)
 
int WINAPI InvalidateDriveType (int u)
 
HRESULT WINAPI SHAbortInvokeCommand (void)
 
int WINAPI SHOutOfMemoryMessageBox (HWND hwndOwner, LPCSTR lpCaption, UINT uType)
 
HRESULT WINAPI SHFlushClipboard (void)
 
BOOL WINAPI SHWaitForFileToOpen (LPCITEMIDLIST pidl, DWORD dwFlags, DWORD dwTimeout)
 
DWORD WINAPI RLBuildListOfPaths (void)
 
BOOL WINAPI SHValidateUNC (HWND hwndOwner, PWSTR pszFile, UINT fConnect)
 
DWORD WINAPI DoEnvironmentSubstA (LPSTR pszString, UINT cchString)
 
DWORD WINAPI DoEnvironmentSubstW (LPWSTR pszString, UINT cchString)
 
DWORD WINAPI DoEnvironmentSubstAW (LPVOID x, UINT y)
 
BOOL WINAPI GUIDFromStringA (LPCSTR str, LPGUID guid)
 
BOOL WINAPI GUIDFromStringW (LPCWSTR str, LPGUID guid)
 
BOOL WINAPI PathIsTemporaryA (LPSTR Str)
 
BOOL WINAPI PathIsTemporaryW (LPWSTR Str)
 
static BOOL CALLBACK PsxaCall (HPROPSHEETPAGE hpage, LPARAM lParam)
 
UINT WINAPI SHAddFromPropSheetExtArray (HPSXA hpsxa, LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam)
 
HPSXA WINAPI SHCreatePropSheetExtArray (HKEY hKey, LPCWSTR pszSubKey, UINT max_iface)
 
HPSXA WINAPI SHCreatePropSheetExtArrayEx (HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, LPDATAOBJECT pDataObj)
 
UINT WINAPI SHReplaceFromPropSheetExtArray (HPSXA hpsxa, UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam)
 
void WINAPI SHDestroyPropSheetExtArray (HPSXA hpsxa)
 
HRESULT WINAPI CIDLData_CreateFromIDArray (PCIDLIST_ABSOLUTE pidlFolder, UINT cpidlFiles, PCUIDLIST_RELATIVE_ARRAY lppidlFiles, LPDATAOBJECT *ppdataObject)
 
HRESULT WINAPI SHCreateStdEnumFmtEtc (UINT cFormats, const FORMATETC *lpFormats, LPENUMFORMATETC *ppenumFormatetc)
 
BOOL WINAPI SHFindFiles (LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlSaveFile)
 
void WINAPI SHUpdateImageW (LPCWSTR pszHashItem, int iIndex, UINT uFlags, int iImageIndex)
 
VOID WINAPI SHUpdateImageA (LPCSTR pszHashItem, INT iIndex, UINT uFlags, INT iImageIndex)
 
INT WINAPI SHHandleUpdateImage (LPCITEMIDLIST pidlExtra)
 
BOOL WINAPI SHObjectProperties (HWND hwnd, DWORD dwType, LPCWSTR szObject, LPCWSTR szPage)
 
BOOL WINAPI SHGetNewLinkInfoA (LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, BOOL *pfMustCopy, UINT uFlags)
 
BOOL WINAPI SHGetNewLinkInfoW (LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
 
HRESULT WINAPI SHStartNetConnectionDialog (HWND hwnd, LPCSTR pszRemoteName, DWORD dwType)
 
HRESULT WINAPI SHSetLocalizedName (LPCWSTR pszPath, LPCWSTR pszResModule, int idsRes)
 
BOOL WINAPI LinkWindow_RegisterClass (void)
 
BOOL WINAPI LinkWindow_UnregisterClass (DWORD dwUnused)
 
void WINAPI SHFlushSFCache (void)
 
HRESULT WINAPI SHGetImageList (int iImageList, REFIID riid, void **ppv)
 
HRESULT WINAPI SHCreateShellFolderView (const SFV_CREATE *pcsfv, IShellView **ppsv)
 
EXTERN_C BOOL WINAPI SHTestTokenMembership (HANDLE TokenHandle, ULONG ulRID)
 
BOOL WINAPI IsUserAnAdmin (VOID)
 

Variables

static LPUNKNOWN SHELL32_IExplorerInterface =0
 
static const WCHAR szwCabLocation []
 
static const WCHAR szwSettings [] = { 'S','e','t','t','i','n','g','s',0 }
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 26 of file shellord.c.

◆ COBJMACROS

#define COBJMACROS

Definition at line 27 of file shellord.c.

◆ MRUF_BINARY_LIST

#define MRUF_BINARY_LIST   1 /* list will contain binary data */

Definition at line 62 of file shellord.c.

◆ MRUF_DELAYED_SAVE

#define MRUF_DELAYED_SAVE   2 /* only save list order to reg. is FreeMRUList */

Definition at line 63 of file shellord.c.

◆ MRUF_STRING_LIST

#define MRUF_STRING_LIST   0 /* list will contain strings */

Definition at line 61 of file shellord.c.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 25 of file shellord.c.

Typedef Documentation

◆ CREATEMRULISTA

◆ LPCREATEMRULISTA

◆ PPSXA

typedef struct _PSXA * PPSXA

◆ PPSXA_CALL

◆ PSXA

typedef struct _PSXA PSXA

◆ PSXA_CALL

Function Documentation

◆ AddMRUData()

INT WINAPI AddMRUData ( HANDLE  hList,
LPCVOID  lpData,
DWORD  cbData 
)

Definition at line 465 of file comctl32undoc.c.

466 {
467  LPWINEMRULIST mp = hList;
468  LPWINEMRUITEM witem;
469  INT i, replace;
470 
471  if ((replace = FindMRUData (hList, lpData, cbData, NULL)) >= 0) {
472  /* Item exists, just move it to the front */
473  LPWSTR pos = strchrW(mp->realMRU, replace + 'a');
474  while (pos > mp->realMRU)
475  {
476  pos[0] = pos[-1];
477  pos--;
478  }
479  }
480  else {
481  /* either add a new entry or replace oldest */
482  if (mp->cursize < mp->extview.uMax) {
483  /* Add in a new item */
484  replace = mp->cursize;
485  mp->cursize++;
486  }
487  else {
488  /* get the oldest entry and replace data */
489  replace = mp->realMRU[mp->cursize - 1] - 'a';
490  Free(mp->array[replace]);
491  }
492 
493  /* Allocate space for new item and move in the data */
494  mp->array[replace] = witem = Alloc(cbData + sizeof(WINEMRUITEM));
495  witem->itemFlag |= WMRUIF_CHANGED;
496  witem->size = cbData;
497  memcpy( &witem->datastart, lpData, cbData);
498 
499  /* now rotate MRU list */
500  for(i=mp->cursize-1; i>=1; i--)
501  mp->realMRU[i] = mp->realMRU[i-1];
502  }
503 
504  /* The new item gets the front spot */
505  mp->wineFlags |= WMRUF_CHANGED;
506  mp->realMRU[0] = replace + 'a';
507 
508  TRACE("(%p, %p, %d) adding data, /%c/ now most current\n",
509  hList, lpData, cbData, replace+'a');
510 
511  if (!(mp->extview.fFlags & MRU_CACHEWRITE)) {
512  /* save changed stuff right now */
513  MRU_SaveChanged( mp );
514  }
515 
516  return replace;
517 }
#define WMRUIF_CHANGED
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
Definition: unicode.h:248
int32_t INT
Definition: typedefs.h:56
LPVOID WINAPI Alloc(DWORD dwSize)
Definition: comctl32undoc.c:71
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
smooth NULL
Definition: ftsmooth.c:416
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
Definition: replace.c:47
#define TRACE(s)
Definition: solgame.cpp:4
#define MRU_CACHEWRITE
BOOL WINAPI Free(LPVOID lpMem)
LPWINEMRUITEM * array
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
INT WINAPI FindMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum)
HWND hList
Definition: livecd.c:10
#define WMRUF_CHANGED
MRUINFOW extview
static void MRU_SaveChanged(LPWINEMRULIST mp)
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by SHADD_create_add_mru_data().

◆ ArrangeWindows()

WORD WINAPI ArrangeWindows ( HWND  hwndParent,
DWORD  dwReserved,
const RECT lpRect,
WORD  cKids,
const HWND lpKids 
)

Definition at line 521 of file shellord.c.

523 {
524  /* Unimplemented in WinXP SP3 */
525  TRACE("(%p 0x%08x %p 0x%04x %p):stub.\n",
526  hwndParent, dwReserved, lpRect, cKids, lpKids);
527  return 0;
528 }
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
static HWND hwndParent
Definition: cryptui.c:300
#define TRACE(s)
Definition: solgame.cpp:4

◆ CIDLData_CreateFromIDArray()

HRESULT WINAPI CIDLData_CreateFromIDArray ( PCIDLIST_ABSOLUTE  pidlFolder,
UINT  cpidlFiles,
PCUIDLIST_RELATIVE_ARRAY  lppidlFiles,
LPDATAOBJECT ppdataObject 
)

Definition at line 1778 of file shellord.c.

1783 {
1784  UINT i;
1785  HWND hwnd = 0; /*FIXME: who should be hwnd of owner? set to desktop */
1786  HRESULT hResult;
1787 
1788  TRACE("(%p, %d, %p, %p)\n", pidlFolder, cpidlFiles, lppidlFiles, ppdataObject);
1789  if (TRACE_ON(pidl))
1790  {
1791  pdump (pidlFolder);
1792  for (i=0; i<cpidlFiles; i++) pdump (lppidlFiles[i]);
1793  }
1794  hResult = IDataObject_Constructor(hwnd, pidlFolder, lppidlFiles, cpidlFiles, ppdataObject);
1795  return hResult;
1796 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
HRESULT IDataObject_Constructor(HWND hwndOwner, PCIDLIST_ABSOLUTE pMyPidl, PCUIDLIST_RELATIVE_ARRAY apidl, UINT cidl, IDataObject **dataObject)
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
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
void pdump(LPCITEMIDLIST pidl)
Definition: debughlp.cpp:248
unsigned int UINT
Definition: ndis.h:50
#define TRACE_ON(x)
Definition: compat.h:65

Referenced by CZipFolder::GetUIObjectOf(), CCommonFolder< CRegistryFolder, RegPidlEntry, CRegistryFolderExtractIcon >::GetUIObjectOf(), and SHCreateDataObject().

◆ CreateMRUListA()

HANDLE WINAPI CreateMRUListA ( LPCREATEMRULISTA  lpcml)

Referenced by SHAddToRecentDocs().

◆ DAD_AutoScroll()

BOOL WINAPI DAD_AutoScroll ( HWND  hwnd,
AUTO_SCROLL_DATA samples,
const POINT pt 
)

Definition at line 1143 of file shellord.c.

1144 {
1145  FIXME("hwnd = %p %p %p\n",hwnd,samples,pt);
1146  return FALSE;
1147 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
GLsizei samples
Definition: glext.h:7006
#define pt(x, y)
Definition: drawing.c:79
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DAD_DragEnter()

BOOL WINAPI DAD_DragEnter ( HWND  hwnd)

Definition at line 1152 of file shellord.c.

1153 {
1154  FIXME("hwnd = %p\n",hwnd);
1155  return FALSE;
1156 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DAD_DragEnterEx()

BOOL WINAPI DAD_DragEnterEx ( HWND  hwnd,
POINT  p 
)

Definition at line 1161 of file shellord.c.

1162 {
1163  FIXME("hwnd = %p (%d,%d)\n",hwnd,p.x,p.y);
1164  return FALSE;
1165 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define FIXME(fmt,...)
Definition: debug.h:110
GLfloat GLfloat p
Definition: glext.h:8902

◆ DAD_DragLeave()

BOOL WINAPI DAD_DragLeave ( VOID  )

Definition at line 1179 of file shellord.c.

1180 {
1181  FIXME("\n");
1182  return FALSE;
1183 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DAD_DragMove()

BOOL WINAPI DAD_DragMove ( POINT  p)

Definition at line 1170 of file shellord.c.

1171 {
1172  FIXME("(%d,%d)\n",p.x,p.y);
1173  return FALSE;
1174 }
#define FIXME(fmt,...)
Definition: debug.h:110
GLfloat GLfloat p
Definition: glext.h:8902

◆ DAD_SetDragImage()

BOOL WINAPI DAD_SetDragImage ( HIMAGELIST  himlTrack,
LPPOINT  lppt 
)

Definition at line 1190 of file shellord.c.

1193 {
1194  FIXME("%p %p stub\n",himlTrack, lppt);
1195  return FALSE;
1196 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DAD_ShowDragImage()

BOOL WINAPI DAD_ShowDragImage ( BOOL  bShow)

Definition at line 1203 of file shellord.c.

1204 {
1205  FIXME("0x%08x stub\n",bShow);
1206  return FALSE;
1207 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ DoEnvironmentSubstA()

DWORD WINAPI DoEnvironmentSubstA ( LPSTR  pszString,
UINT  cchString 
)

Definition at line 1420 of file shellord.c.

1421 {
1422  LPSTR dst;
1423  BOOL res = FALSE;
1424  DWORD len = cchString;
1425 
1426  TRACE("(%s, %d)\n", debugstr_a(pszString), cchString);
1427  if (pszString == NULL) /* Really return 0? */
1428  return 0;
1429  if ((dst = (LPSTR)HeapAlloc(GetProcessHeap(), 0, cchString * sizeof(CHAR))))
1430  {
1431  len = ExpandEnvironmentStringsA(pszString, dst, cchString);
1432  /* len includes the terminating 0 */
1433  if (len && len < cchString)
1434  {
1435  res = TRUE;
1436  memcpy(pszString, dst, len);
1437  }
1438  else
1439  len = cchString;
1440 
1441  HeapFree(GetProcessHeap(), 0, dst);
1442  }
1443  return MAKELONG(len, res);
1444 }
#define TRUE
Definition: types.h:120
char CHAR
Definition: xmlstorage.h:175
char * LPSTR
Definition: xmlstorage.h:182
unsigned int BOOL
Definition: ntddk_ex.h:94
#define MAKELONG(a, b)
Definition: typedefs.h:248
smooth NULL
Definition: ftsmooth.c:416
DWORD WINAPI ExpandEnvironmentStringsA(IN LPCSTR lpSrc, IN LPSTR lpDst, IN DWORD nSize)
Definition: environ.c:399
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define debugstr_a
Definition: kernel32.h:31
unsigned long DWORD
Definition: ntddk_ex.h:95
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
GLenum GLenum dst
Definition: glext.h:6340
GLuint res
Definition: glext.h:9613
#define HeapFree(x, y, z)
Definition: compat.h:394
_In_ DWORD _In_ DWORD _Out_writes_to_opt_ pcchString LPSTR pszString
Definition: wincrypt.h:4509

Referenced by DoEnvironmentSubstAW(), and test_DoEnvironmentSubst().

◆ DoEnvironmentSubstAW()

DWORD WINAPI DoEnvironmentSubstAW ( LPVOID  x,
UINT  y 
)

Definition at line 1495 of file shellord.c.

1496 {
1497  if (SHELL_OsIsUnicode())
1498  return DoEnvironmentSubstW(x, y);
1499  return DoEnvironmentSubstA(x, y);
1500 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
static __inline BOOL SHELL_OsIsUnicode(void)
Definition: shell32_main.h:130
DWORD WINAPI DoEnvironmentSubstW(LPWSTR pszString, UINT cchString)
Definition: shellord.c:1465
DWORD WINAPI DoEnvironmentSubstA(LPSTR pszString, UINT cchString)
Definition: shellord.c:1420
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

◆ DoEnvironmentSubstW()

DWORD WINAPI DoEnvironmentSubstW ( LPWSTR  pszString,
UINT  cchString 
)

Definition at line 1465 of file shellord.c.

1466 {
1467  LPWSTR dst;
1468  BOOL res = FALSE;
1469  DWORD len = cchString;
1470 
1471  TRACE("(%s, %d)\n", debugstr_w(pszString), cchString);
1472 
1473  if ((cchString < MAXLONG) && (dst = HeapAlloc(GetProcessHeap(), 0, cchString * sizeof(WCHAR))))
1474  {
1475  len = ExpandEnvironmentStringsW(pszString, dst, cchString);
1476  /* len includes the terminating 0 */
1477  if (len && len <= cchString)
1478  {
1479  res = TRUE;
1480  memcpy(pszString, dst, len * sizeof(WCHAR));
1481  }
1482  else
1483  len = cchString;
1484 
1485  HeapFree(GetProcessHeap(), 0, dst);
1486  }
1487  return MAKELONG(len, res);
1488 }
#define TRUE
Definition: types.h:120
#define MAXLONG
Definition: umtypes.h:116
unsigned int BOOL
Definition: ntddk_ex.h:94
#define debugstr_w
Definition: kernel32.h:32
#define MAKELONG(a, b)
Definition: typedefs.h:248
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned long DWORD
Definition: ntddk_ex.h:95
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLenum GLsizei len
Definition: glext.h:6722
GLenum GLenum dst
Definition: glext.h:6340
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
Definition: environ.c:519
GLuint res
Definition: glext.h:9613
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define HeapFree(x, y, z)
Definition: compat.h:394
_In_ DWORD _In_ DWORD _Out_writes_to_opt_ pcchString LPSTR pszString
Definition: wincrypt.h:4509

Referenced by DoEnvironmentSubstAW(), and test_DoEnvironmentSubst().

◆ DriveType()

int WINAPI DriveType ( int  DriveType)

Definition at line 1338 of file shellord.c.

1339 {
1340  WCHAR root[] = L"A:\\";
1341  root[0] = L'A' + DriveType;
1342  return GetDriveTypeW(root);
1343 }
__wchar_t WCHAR
Definition: xmlstorage.h:180
int WINAPI DriveType(int DriveType)
Definition: shellord.c:1338
static const WCHAR L[]
Definition: oid.c:1250
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
Definition: disk.c:497

Referenced by DriveType().

◆ EnumMRUListA()

INT WINAPI EnumMRUListA ( HANDLE  hList,
INT  nItemPos,
LPVOID  lpBuffer,
DWORD  nBufferSize 
)

Definition at line 863 of file comctl32undoc.c.

865 {
866  const WINEMRULIST *mp = hList;
867  LPWINEMRUITEM witem;
868  INT desired, datasize;
869  DWORD lenA;
870 
871  if (!mp) return -1;
872  if ((nItemPos < 0) || !lpBuffer) return mp->cursize;
873  if (nItemPos >= mp->cursize) return -1;
874  desired = mp->realMRU[nItemPos];
875  desired -= 'a';
876  TRACE("nItemPos=%d, desired=%d\n", nItemPos, desired);
877  witem = mp->array[desired];
878  if(mp->extview.fFlags & MRU_BINARY) {
879  datasize = min( witem->size, nBufferSize );
880  memcpy( lpBuffer, &witem->datastart, datasize);
881  } else {
882  lenA = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)&witem->datastart, -1,
883  NULL, 0, NULL, NULL);
884  datasize = min( lenA, nBufferSize );
885  WideCharToMultiByte(CP_ACP, 0, (LPWSTR)&witem->datastart, -1,
886  lpBuffer, datasize, NULL, NULL);
887  ((char *)lpBuffer)[ datasize - 1 ] = '\0';
888  datasize = lenA - 1;
889  }
890  TRACE("(%p, %d, %p, %d): returning len=%d\n",
891  hList, nItemPos, lpBuffer, nBufferSize, datasize);
892  return datasize;
893 }
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
int desired
Definition: jpeglib.h:1116
#define MRU_BINARY
int32_t INT
Definition: typedefs.h:56
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:173
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
LPWINEMRUITEM * array
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
HWND hList
Definition: livecd.c:10
#define min(a, b)
Definition: monoChain.cc:55
MRUINFOW extview
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by SHAddToRecentDocs().

◆ FileIconInit()

BOOL WINAPI FileIconInit ( BOOL  bFullInit)

Definition at line 1298 of file shellord.c.

1299 {
1300  return SIC_Initialize();
1301 }
BOOL SIC_Initialize(void)
Definition: iconcache.cpp:484

Referenced by DisplayImageList(), and StartWithDesktop().

◆ FindMRUData()

INT WINAPI FindMRUData ( HANDLE  hList,
LPCVOID  lpData,
DWORD  cbData,
LPINT  lpRegNum 
)

Definition at line 391 of file comctl32undoc.c.

393 {
394  const WINEMRULIST *mp = hList;
395  INT ret;
396  UINT i;
397  LPSTR dataA = NULL;
398 
399  if (!mp || !mp->extview.u.string_cmpfn)
400  return -1;
401 
402  if(!(mp->extview.fFlags & MRU_BINARY) && !mp->isUnicode) {
403  DWORD len = WideCharToMultiByte(CP_ACP, 0, lpData, -1,
404  NULL, 0, NULL, NULL);
405  dataA = Alloc(len);
406  WideCharToMultiByte(CP_ACP, 0, lpData, -1, dataA, len, NULL, NULL);
407  }
408 
409  for(i=0; i<mp->cursize; i++) {
410  if (mp->extview.fFlags & MRU_BINARY) {
411  if (!mp->extview.u.binary_cmpfn(lpData, &mp->array[i]->datastart, cbData))
412  break;
413  }
414  else {
415  if(mp->isUnicode) {
416  if (!mp->extview.u.string_cmpfn(lpData, (LPWSTR)&mp->array[i]->datastart))
417  break;
418  } else {
420  (LPWSTR)&mp->array[i]->datastart, -1,
421  NULL, 0, NULL, NULL);
422  LPSTR itemA = Alloc(len);
423  INT cmp;
425  itemA, len, NULL, NULL);
426 
427  cmp = mp->extview.u.string_cmpfn((LPWSTR)dataA, (LPWSTR)itemA);
428  Free(itemA);
429  if(!cmp)
430  break;
431  }
432  }
433  }
434  Free(dataA);
435  if (i < mp->cursize)
436  ret = i;
437  else
438  ret = -1;
439  if (lpRegNum && (ret != -1))
440  *lpRegNum = 'a' + i;
441 
442  TRACE("(%p, %p, %d, %p) returning %d\n",
443  hList, lpData, cbData, lpRegNum, ret);
444 
445  return ret;
446 }
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
#define MRU_BINARY
#define cmp(status, error)
Definition: error.c:114
char * LPSTR
Definition: xmlstorage.h:182
int32_t INT
Definition: typedefs.h:56
LPVOID WINAPI Alloc(DWORD dwSize)
Definition: comctl32undoc.c:71
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
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL WINAPI Free(LPVOID lpMem)
int ret
LPWINEMRUITEM * array
GLenum GLsizei len
Definition: glext.h:6722
HWND hList
Definition: livecd.c:10
MRUBinaryCmpFn binary_cmpfn
unsigned int UINT
Definition: ndis.h:50
union tagMRUINFOW::@322 u
MRUINFOW extview
WCHAR * LPWSTR
Definition: xmlstorage.h:184
MRUStringCmpFnW string_cmpfn

Referenced by SHAddToRecentDocs().

◆ FreeMRUList()

VOID WINAPI FreeMRUList ( HANDLE  hMRUList)

Definition at line 351 of file comctl32undoc.c.

352 {
353  LPWINEMRULIST mp = hMRUList;
354  UINT i;
355 
356  TRACE("(%p)\n", hMRUList);
357  if (!hMRUList)
358  return;
359 
360  if (mp->wineFlags & WMRUF_CHANGED) {
361  /* need to open key and then save the info */
362  MRU_SaveChanged( mp );
363  }
364 
365  for(i=0; i<mp->extview.uMax; i++)
366  Free(mp->array[i]);
367 
368  Free(mp->realMRU);
369  Free(mp->array);
370  Free(mp->extview.lpszSubKey);
371  Free(mp);
372 }
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
#define TRACE(s)
Definition: solgame.cpp:4
BOOL WINAPI Free(LPVOID lpMem)
LPWINEMRUITEM * array
LPWSTR lpszSubKey
unsigned int UINT
Definition: ndis.h:50
#define WMRUF_CHANGED
MRUINFOW extview
static void MRU_SaveChanged(LPWINEMRULIST mp)

Referenced by SHAddToRecentDocs().

◆ GetFileNameFromBrowse()

BOOL WINAPI GetFileNameFromBrowse ( HWND  hwndOwner,
LPWSTR  lpstrFile,
UINT  nMaxFile,
LPCWSTR  lpstrInitialDir,
LPCWSTR  lpstrDefExt,
LPCWSTR  lpstrFilter,
LPCWSTR  lpstrTitle 
)

Definition at line 150 of file shellord.c.

158 {
159 typedef BOOL (WINAPI *GetOpenFileNameProc)(OPENFILENAMEW *ofn);
161  GetOpenFileNameProc pGetOpenFileNameW;
163  BOOL ret;
164 
165  TRACE("%p, %s, %d, %s, %s, %s, %s)\n",
166  hwndOwner, debugstr_w(lpstrFile), nMaxFile, lpstrInitialDir, lpstrDefExt,
167  lpstrFilter, lpstrTitle);
168 
169  hmodule = LoadLibraryW(L"comdlg32.dll");
170  if(!hmodule) return FALSE;
171  pGetOpenFileNameW = (GetOpenFileNameProc)GetProcAddress(hmodule, "GetOpenFileNameW");
172  if(!pGetOpenFileNameW)
173  {
175  return FALSE;
176  }
177 
178  memset(&ofn, 0, sizeof(ofn));
179 
180  ofn.lStructSize = sizeof(ofn);
181  ofn.hwndOwner = hwndOwner;
182  ofn.lpstrFilter = lpstrFilter;
183  ofn.lpstrFile = lpstrFile;
184  ofn.nMaxFile = nMaxFile;
185  ofn.lpstrInitialDir = lpstrInitialDir;
186  ofn.lpstrTitle = lpstrTitle;
187  ofn.lpstrDefExt = lpstrDefExt;
189  ret = pGetOpenFileNameW(&ofn);
190 
192  return ret;
193 }
#define OFN_FILEMUSTEXIST
Definition: commdlg.h:106
#define OFN_EXPLORER
Definition: commdlg.h:104
HWND hwndOwner
Definition: commdlg.h:330
OPENFILENAME ofn
Definition: main.cpp:37
LPCSTR lpstrDefExt
Definition: commdlg.h:345
#define BOOL
Definition: nt_native.h:43
DWORD nMaxFile
Definition: commdlg.h:337
unsigned int BOOL
Definition: ntddk_ex.h:94
#define debugstr_w
Definition: kernel32.h:32
static HMODULE hmodule
Definition: rasapi.c:29
#define LoadLibraryW(x)
Definition: compat.h:404
#define TRACE(s)
Definition: solgame.cpp:4
#define FreeLibrary(x)
Definition: compat.h:405
LPCSTR lpstrInitialDir
Definition: commdlg.h:340
DWORD lStructSize
Definition: commdlg.h:329
#define WINAPI
Definition: msvc.h:8
int ret
static const WCHAR L[]
Definition: oid.c:1250
#define OFN_HIDEREADONLY
Definition: commdlg.h:107
LPSTR lpstrFile
Definition: commdlg.h:336
LPCSTR lpstrFilter
Definition: commdlg.h:332
LPCSTR lpstrTitle
Definition: commdlg.h:341
#define GetProcAddress(x, y)
Definition: compat.h:410
#define memset(x, y, z)
Definition: compat.h:39
DWORD Flags
Definition: commdlg.h:342

◆ GUIDFromStringA()

BOOL WINAPI GUIDFromStringA ( LPCSTR  str,
LPGUID  guid 
)

Definition at line 1505 of file shellord.c.

1506 {
1507  TRACE("GUIDFromStringA() stub\n");
1508  return FALSE;
1509 }
#define TRACE(s)
Definition: solgame.cpp:4

◆ GUIDFromStringW()

BOOL WINAPI GUIDFromStringW ( LPCWSTR  str,
LPGUID  guid 
)

Definition at line 1514 of file shellord.c.

1515 {
1516  UNICODE_STRING guid_str;
1517 
1518  RtlInitUnicodeString(&guid_str, str);
1519  return !RtlGUIDFromString(&guid_str, guid);
1520 }
const GUID * guid
const WCHAR * str
NTSYSAPI NTSTATUS WINAPI RtlGUIDFromString(PUNICODE_STRING, GUID *)
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

◆ InvalidateDriveType()

int WINAPI InvalidateDriveType ( int  u)

Definition at line 1348 of file shellord.c.

1349 {
1350  TRACE("0x%08x stub\n",u);
1351  return 0;
1352 }
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 * u
Definition: glfuncs.h:240
#define TRACE(s)
Definition: solgame.cpp:4

◆ IsUserAnAdmin()

BOOL WINAPI IsUserAnAdmin ( VOID  )

Definition at line 2147 of file shellord.c.

2148 {
2150 }
EXTERN_C BOOL WINAPI SHTestTokenMembership(HANDLE TokenHandle, ULONG ulRID)
Definition: shellord.c:2095
smooth NULL
Definition: ftsmooth.c:416
#define DOMAIN_ALIAS_RID_ADMINS
Definition: setypes.h:624

Referenced by CStartMenuBtnCtxMenu::AddStartContextMenuItems().

◆ LinkWindow_RegisterClass()

BOOL WINAPI LinkWindow_RegisterClass ( void  )

Definition at line 1975 of file shellord.c.

1976 {
1977  FIXME("()\n");
1978  return TRUE;
1979 }
#define TRUE
Definition: types.h:120
#define FIXME(fmt,...)
Definition: debug.h:110

◆ LinkWindow_UnregisterClass()

BOOL WINAPI LinkWindow_UnregisterClass ( DWORD  dwUnused)

Definition at line 1984 of file shellord.c.

1985 {
1986  FIXME("()\n");
1987  return TRUE;
1988 }
#define TRUE
Definition: types.h:120
#define FIXME(fmt,...)
Definition: debug.h:110

◆ ParseFieldA()

DWORD WINAPI ParseFieldA ( LPCSTR  src,
DWORD  nField,
LPSTR  dst,
DWORD  len 
)

Definition at line 79 of file shellord.c.

84 {
85  WARN("(%s,0x%08x,%p,%d) semi-stub.\n",debugstr_a(src),nField,dst,len);
86 
87  if (!src || !src[0] || !dst || !len)
88  return 0;
89 
90  /* skip n fields delimited by ',' */
91  while (nField > 1)
92  {
93  if (*src=='\0') return FALSE;
94  if (*(src++)==',') nField--;
95  }
96 
97  /* copy part till the next ',' to dst */
98  while ( *src!='\0' && *src!=',' && (len--)>0 ) *(dst++)=*(src++);
99 
100  /* finalize the string */
101  *dst=0x0;
102 
103  return TRUE;
104 }
#define TRUE
Definition: types.h:120
#define WARN(fmt,...)
Definition: debug.h:111
#define debugstr_a
Definition: kernel32.h:31
GLenum GLsizei len
Definition: glext.h:6722
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

Referenced by HCR_RegGetIconA(), and ParseFieldAW().

◆ ParseFieldAW()

DWORD WINAPI ParseFieldAW ( LPCVOID  src,
DWORD  nField,
LPVOID  dst,
DWORD  len 
)

Definition at line 139 of file shellord.c.

140 {
141  if (SHELL_OsIsUnicode())
142  return ParseFieldW(src, nField, dst, len);
143  return ParseFieldA(src, nField, dst, len);
144 }
DWORD WINAPI ParseFieldW(LPCWSTR src, DWORD nField, LPWSTR dst, DWORD len)
Definition: shellord.c:113
static __inline BOOL SHELL_OsIsUnicode(void)
Definition: shell32_main.h:130
DWORD WINAPI ParseFieldA(LPCSTR src, DWORD nField, LPSTR dst, DWORD len)
Definition: shellord.c:79
GLenum GLsizei len
Definition: glext.h:6722
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

◆ ParseFieldW()

DWORD WINAPI ParseFieldW ( LPCWSTR  src,
DWORD  nField,
LPWSTR  dst,
DWORD  len 
)

Definition at line 113 of file shellord.c.

114 {
115  WARN("(%s,0x%08x,%p,%d) semi-stub.\n", debugstr_w(src), nField, dst, len);
116 
117  if (!src || !src[0] || !dst || !len)
118  return 0;
119 
120  /* skip n fields delimited by ',' */
121  while (nField > 1)
122  {
123  if (*src == 0x0) return FALSE;
124  if (*src++ == ',') nField--;
125  }
126 
127  /* copy part till the next ',' to dst */
128  while ( *src != 0x0 && *src != ',' && (len--)>0 ) *(dst++) = *(src++);
129 
130  /* finalize the string */
131  *dst = 0x0;
132 
133  return TRUE;
134 }
#define TRUE
Definition: types.h:120
GLint x0
Definition: linetemp.h:95
#define WARN(fmt,...)
Definition: debug.h:111
#define debugstr_w
Definition: kernel32.h:32
GLenum GLsizei len
Definition: glext.h:6722
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

Referenced by CFSExtractIcon_CreateInstance(), HCR_RegGetIconW(), and ParseFieldAW().

◆ PathIsTemporaryA()

BOOL WINAPI PathIsTemporaryA ( LPSTR  Str)

Definition at line 1525 of file shellord.c.

1526 {
1527  FIXME("(%s)stub\n", debugstr_a(Str));
1528  return FALSE;
1529 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define debugstr_a
Definition: kernel32.h:31

◆ PathIsTemporaryW()

BOOL WINAPI PathIsTemporaryW ( LPWSTR  Str)

Definition at line 1534 of file shellord.c.

1535 {
1536  FIXME("(%s)stub\n", debugstr_w(Str));
1537  return FALSE;
1538 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110

◆ PsxaCall()

static BOOL CALLBACK PsxaCall ( HPROPSHEETPAGE  hpage,
LPARAM  lParam 
)
static

Definition at line 1556 of file shellord.c.

1557 {
1558  PPSXA_CALL Call = (PPSXA_CALL)lParam;
1559 
1560  if (Call != NULL)
1561  {
1562  if ((Call->bMultiple || !Call->bCalled) &&
1563  Call->lpfnAddReplaceWith(hpage, Call->lParam))
1564  {
1565  Call->bCalled = TRUE;
1566  Call->uiCount++;
1567  return TRUE;
1568  }
1569  }
1570 
1571  return FALSE;
1572 }
#define TRUE
Definition: types.h:120
struct _PSXA_CALL * PPSXA_CALL
UINT uiCount
Definition: shellord.c:1553
smooth NULL
Definition: ftsmooth.c:416
BOOL bMultiple
Definition: shellord.c:1552
LPARAM lParam
Definition: shellord.c:1550
LPFNADDPROPSHEETPAGE lpfnAddReplaceWith
Definition: shellord.c:1549
BOOL bCalled
Definition: shellord.c:1551
LPARAM lParam
Definition: combotst.c:139

Referenced by SHAddFromPropSheetExtArray(), and SHReplaceFromPropSheetExtArray().

◆ ReadCabinetState()

BOOL WINAPI ReadCabinetState ( CABINETSTATE cs,
int  length 
)

Definition at line 1224 of file shellord.c.

1225 {
1226  HKEY hkey = 0;
1227  DWORD type, r;
1228 
1229  TRACE("%p %d\n", cs, length);
1230 
1231  if( (cs == NULL) || (length < (int)sizeof(*cs)) )
1232  return FALSE;
1233 
1235  if( r == ERROR_SUCCESS )
1236  {
1237  type = REG_BINARY;
1238  r = RegQueryValueExW( hkey, szwSettings,
1239  NULL, &type, (LPBYTE)cs, (LPDWORD)&length );
1240  RegCloseKey( hkey );
1241 
1242  }
1243 
1244  /* if we can't read from the registry, create default values */
1245  if ( (r != ERROR_SUCCESS) || (cs->cLength < sizeof(*cs)) ||
1246  (cs->cLength != length) )
1247  {
1248  TRACE("Initializing shell cabinet settings\n");
1249  memset(cs, 0, sizeof(*cs));
1250  cs->cLength = sizeof(*cs);
1251  cs->nVersion = 2;
1252  cs->fFullPathTitle = FALSE;
1253  cs->fSaveLocalView = TRUE;
1254  cs->fNotShell = FALSE;
1255  cs->fSimpleDefault = TRUE;
1256  cs->fDontShowDescBar = FALSE;
1257  cs->fNewWindowMode = FALSE;
1258  cs->fShowCompColor = FALSE;
1259  cs->fDontPrettyNames = FALSE;
1260  cs->fAdminsCreateCommonGroups = TRUE;
1261  cs->fMenuEnumFilter = 96;
1262  }
1263 
1264  return TRUE;
1265 }
#define TRUE
Definition: types.h:120
static const WCHAR szwSettings[]
Definition: shellord.c:1218
#define ERROR_SUCCESS
Definition: deptool.c:10
#define REG_BINARY
Definition: nt_native.h:1496
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define HKEY_CURRENT_USER
Definition: winreg.h:11
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
uint32_t cs
Definition: isohybrid.c:75
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3296
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4116
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
unsigned long DWORD
Definition: ntddk_ex.h:95
uint32_t * LPDWORD
Definition: typedefs.h:57
static const WCHAR szwCabLocation[]
Definition: shellord.c:1209
#define memset(x, y, z)
Definition: compat.h:39

Referenced by full_title(), CShellBrowser::Initialize(), IntGetNewWindowMode(), and IntSetNewWindowMode().

◆ RegisterShellHook()

BOOL WINAPI RegisterShellHook ( HWND  hWnd,
DWORD  dwType 
)

Definition at line 308 of file shellord.c.

311 {
312  if (dwType == 3)
313  {
316  }
317  else if (dwType == 0)
318  {
320  }
321 
322  ERR("Unsupported argument");
323  return FALSE;
324 }
HWND hWnd
Definition: settings.c:17
BOOL WINAPI RegisterShellHookWindow(_In_ HWND)
#define ERR(fmt,...)
Definition: debug.h:109
HWND WINAPI SetTaskmanWindow(HWND)
Definition: window.c:1920
BOOL WINAPI DeregisterShellHookWindow(_In_ HWND)

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

◆ RLBuildListOfPaths()

DWORD WINAPI RLBuildListOfPaths ( void  )

Definition at line 1401 of file shellord.c.

1402 { FIXME("stub\n");
1403  return 0;
1404 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SetAppStartingCursor()

HRESULT WINAPI SetAppStartingCursor ( HWND  u,
DWORD  v 
)

Definition at line 1306 of file shellord.c.

1307 { FIXME("hwnd=%p 0x%04x stub\n",u,v );
1308  return 0;
1309 }
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 * u
Definition: glfuncs.h:240
#define FIXME(fmt,...)
Definition: debug.h:110
const GLdouble * v
Definition: gl.h:2040

◆ SHAbortInvokeCommand()

HRESULT WINAPI SHAbortInvokeCommand ( void  )

Definition at line 1357 of file shellord.c.

1358 { FIXME("stub\n");
1359  return 1;
1360 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHADD_compare_mru()

static INT CALLBACK SHADD_compare_mru ( LPCVOID  data1,
LPCVOID  data2,
DWORD  cbData 
)
static

Definition at line 597 of file shellord.c.

598 {
599  return lstrcmpiA(data1, data2);
600 }
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42
Definition: tftpd.h:125
Definition: tftpd.h:137

Referenced by SHAddToRecentDocs().

◆ SHADD_create_add_mru_data()

static INT SHADD_create_add_mru_data ( HANDLE  mruhandle,
LPCSTR  doc_name,
LPCSTR  new_lnk_name,
LPSTR  buffer,
INT len 
)
static

Definition at line 615 of file shellord.c.

617 {
618  LPSTR ptr;
619  INT wlen;
620 
621  /*FIXME: Document:
622  * RecentDocs MRU data structure seems to be:
623  * +0h document file name w/ terminating 0h
624  * +nh short int w/ size of remaining
625  * +n+2h 02h 30h, or 01h 30h, or 00h 30h - unknown
626  * +n+4h 10 bytes zeros - unknown
627  * +n+eh shortcut file name w/ terminating 0h
628  * +n+e+nh 3 zero bytes - unknown
629  */
630 
631  /* Create the MRU data structure for "RecentDocs"
632  */
633  ptr = buffer;
634  lstrcpyA(ptr, doc_name);
635  ptr += (lstrlenA(buffer) + 1);
636  wlen= lstrlenA(new_lnk_name) + 1 + 12;
637  *((short int*)ptr) = wlen;
638  ptr += 2; /* step past the length */
639  *(ptr++) = 0x30; /* unknown reason */
640  *(ptr++) = 0; /* unknown, but can be 0x00, 0x01, 0x02 */
641  memset(ptr, 0, 10);
642  ptr += 10;
643  lstrcpyA(ptr, new_lnk_name);
644  ptr += (lstrlenA(new_lnk_name) + 1);
645  memset(ptr, 0, 3);
646  ptr += 3;
647  *len = ptr - buffer;
648 
649  /* Add the new entry into the MRU list
650  */
651  return AddMRUData(mruhandle, buffer, *len);
652 }
GLuint buffer
Definition: glext.h:5915
char * LPSTR
Definition: xmlstorage.h:182
int32_t INT
Definition: typedefs.h:56
INT WINAPI AddMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData)
static PVOID ptr
Definition: dispmode.c:27
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
GLenum GLsizei len
Definition: glext.h:6722
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define memset(x, y, z)
Definition: compat.h:39

Referenced by SHAddToRecentDocs().

◆ SHADD_get_policy()

static INT SHADD_get_policy ( LPCSTR  policy,
LPDWORD  type,
LPVOID  buffer,
LPDWORD  len 
)
static

Definition at line 557 of file shellord.c.

558 {
559  HKEY Policy_basekey;
560  INT ret;
561 
562  /* Get the key for the policies location in the registry
563  */
565  "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
566  0, KEY_READ, &Policy_basekey)) {
567 
569  "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
570  0, KEY_READ, &Policy_basekey)) {
571  TRACE("No Explorer Policies location exists. Policy wanted=%s\n",
572  policy);
573  *len = 0;
574  return ERROR_FILE_NOT_FOUND;
575  }
576  }
577 
578  /* Retrieve the data if it exists
579  */
580  ret = SHQueryValueExA(Policy_basekey, policy, 0, type, buffer, len);
581  RegCloseKey(Policy_basekey);
582  return ret;
583 }
#define KEY_READ
Definition: nt_native.h:1023
#define HKEY_CURRENT_USER
Definition: winreg.h:11
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3331
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
int32_t INT
Definition: typedefs.h:56
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define TRACE(s)
Definition: solgame.cpp:4
DWORD WINAPI SHQueryValueExA(HKEY hKey, LPCSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1402
int ret
GLenum GLsizei len
Definition: glext.h:6722
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by SHAddToRecentDocs().

◆ SHAddFromPropSheetExtArray()

UINT WINAPI SHAddFromPropSheetExtArray ( HPSXA  hpsxa,
LPFNADDPROPSHEETPAGE  lpfnAddPage,
LPARAM  lParam 
)

Definition at line 1577 of file shellord.c.

1578 {
1579  PSXA_CALL Call;
1580  UINT i;
1581  PPSXA psxa = (PPSXA)hpsxa;
1582 
1583  TRACE("(%p,%p,%08lx)\n", hpsxa, lpfnAddPage, lParam);
1584 
1585  if (psxa)
1586  {
1587  ZeroMemory(&Call, sizeof(Call));
1588  Call.lpfnAddReplaceWith = lpfnAddPage;
1589  Call.lParam = lParam;
1590  Call.bMultiple = TRUE;
1591 
1592  /* Call the AddPage method of all registered IShellPropSheetExt interfaces */
1593  for (i = 0; i != psxa->uiCount; i++)
1594  {
1595  psxa->pspsx[i]->lpVtbl->AddPages(psxa->pspsx[i], PsxaCall, (LPARAM)&Call);
1596  }
1597 
1598  return Call.uiCount;
1599  }
1600 
1601  return 0;
1602 }
UINT uiCount
Definition: shellord.c:1542
HRESULT AddPages([in] LPFNSVADDPROPSHEETPAGE pfnAddPage, [in] LPARAM lParam)
#define TRUE
Definition: types.h:120
struct _PSXA * PPSXA
#define ZeroMemory
Definition: winbase.h:1635
UINT uiCount
Definition: shellord.c:1553
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
static BOOL CALLBACK PsxaCall(HPROPSHEETPAGE hpage, LPARAM lParam)
Definition: shellord.c:1556
LONG_PTR LPARAM
Definition: windef.h:208
#define TRACE(s)
Definition: solgame.cpp:4
IShellPropSheetExt * pspsx[1]
Definition: shellord.c:1544
BOOL bMultiple
Definition: shellord.c:1552
unsigned int UINT
Definition: ndis.h:50
LPARAM lParam
Definition: shellord.c:1550
LPFNADDPROPSHEETPAGE lpfnAddReplaceWith
Definition: shellord.c:1549
LPARAM lParam
Definition: combotst.c:139

Referenced by Applet1(), DisplayAdvancedSettings(), KeyboardApplet(), LoadPropSheetHandlers(), MouseApplet(), SH_ShowDriveProperties(), and SystemApplet().

◆ SHAddToRecentDocs()

void WINAPI SHAddToRecentDocs ( UINT  uFlags,
LPCVOID  pv 
)

Definition at line 669 of file shellord.c.

670 {
671 /* If list is a string list lpfnCompare has the following prototype
672  * int CALLBACK MRUCompareString(LPCSTR s1, LPCSTR s2)
673  * for binary lists the prototype is
674  * int CALLBACK MRUCompareBinary(LPCVOID data1, LPCVOID data2, DWORD cbData)
675  * where cbData is the no. of bytes to compare.
676  * Need to check what return value means identical - 0?
677  */
678 
679 
680  UINT olderrormode;
681  HKEY HCUbasekey;
682  CHAR doc_name[MAX_PATH];
683  CHAR link_dir[MAX_PATH];
684  CHAR new_lnk_filepath[MAX_PATH];
685  CHAR new_lnk_name[MAX_PATH];
686  CHAR * ext;
687  IMalloc *ppM;
688  LPITEMIDLIST pidl;
689  HWND hwnd = 0; /* FIXME: get real window handle */
690  INT ret;
691  DWORD data[64], datalen, type;
692 
693  TRACE("%04x %p\n", uFlags, pv);
694 
695  /*FIXME: Document:
696  * RecentDocs MRU data structure seems to be:
697  * +0h document file name w/ terminating 0h
698  * +nh short int w/ size of remaining
699  * +n+2h 02h 30h, or 01h 30h, or 00h 30h - unknown
700  * +n+4h 10 bytes zeros - unknown
701  * +n+eh shortcut file name w/ terminating 0h
702  * +n+e+nh 3 zero bytes - unknown
703  */
704 
705  /* See if we need to do anything.
706  */
707  datalen = 64;
708  ret=SHADD_get_policy( "NoRecentDocsHistory", &type, data, &datalen);
709  if ((ret > 0) && (ret != ERROR_FILE_NOT_FOUND)) {
710  ERR("Error %d getting policy \"NoRecentDocsHistory\"\n", ret);
711  return;
712  }
713  if (ret == ERROR_SUCCESS) {
714  if (!( (type == REG_DWORD) ||
715  ((type == REG_BINARY) && (datalen == 4)) )) {
716  ERR("Error policy data for \"NoRecentDocsHistory\" not formatted correctly, type=%d, len=%d\n",
717  type, datalen);
718  return;
719  }
720 
721  TRACE("policy value for NoRecentDocsHistory = %08x\n", data[0]);
722  /* now test the actual policy value */
723  if ( data[0] != 0)
724  return;
725  }
726 
727  /* Open key to where the necessary info is
728  */
729  /* FIXME: This should be done during DLL PROCESS_ATTACH (or THREAD_ATTACH)
730  * and the close should be done during the _DETACH. The resulting
731  * key is stored in the DLL global data.
732  */
734  "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer",
735  0, 0, 0, KEY_READ, 0, &HCUbasekey, 0)) {
736  ERR("Failed to create 'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer'\n");
737  return;
738  }
739 
740  /* Get path to user's "Recent" directory
741  */
742  if(SUCCEEDED(SHGetMalloc(&ppM))) {
744  &pidl))) {
745  SHGetPathFromIDListA(pidl, link_dir);
746  IMalloc_Free(ppM, pidl);
747  }
748  else {
749  /* serious issues */
750  link_dir[0] = 0;
751  ERR("serious issues 1\n");
752  }
753  IMalloc_Release(ppM);
754  }
755  else {
756  /* serious issues */
757  link_dir[0] = 0;
758  ERR("serious issues 2\n");
759  }
760  TRACE("Users Recent dir %s\n", link_dir);
761 
762  /* If no input, then go clear the lists */
763  if (!pv) {
764  /* clear user's Recent dir
765  */
766 
767  /* FIXME: delete all files in "link_dir"
768  *
769  * while( more files ) {
770  * lstrcpyA(old_lnk_name, link_dir);
771  * PathAppendA(old_lnk_name, filenam);
772  * DeleteFileA(old_lnk_name);
773  * }
774  */
775  FIXME("should delete all files in %s\\\n", link_dir);
776 
777  /* clear MRU list
778  */
779  /* MS Bug ?? v4.72.3612.1700 of shell32 does the delete against
780  * HKEY_LOCAL_MACHINE version of ...CurrentVersion\Explorer
781  * and naturally it fails w/ rc=2. It should do it against
782  * HKEY_CURRENT_USER which is where it is stored, and where
783  * the MRU routines expect it!!!!
784  */
785  RegDeleteKeyA(HCUbasekey, "RecentDocs");
786  RegCloseKey(HCUbasekey);
787  return;
788  }
789 
790  /* Have data to add, the jobs to be done:
791  * 1. Add document to MRU list in registry "HKCU\Software\
792  * Microsoft\Windows\CurrentVersion\Explorer\RecentDocs".
793  * 2. Add shortcut to document in the user's Recent directory
794  * (CSIDL_RECENT).
795  * 3. Add shortcut to Start menu's Documents submenu.
796  */
797 
798  /* Get the pure document name from the input
799  */
800  switch (uFlags)
801  {
802  case SHARD_PIDL:
803  if (!SHGetPathFromIDListA(pv, doc_name))
804  {
805  WARN("can't get path from PIDL\n");
806  return;
807  }
808  break;
809 
810  case SHARD_PATHA:
811  lstrcpynA(doc_name, pv, MAX_PATH);
812  break;
813 
814  case SHARD_PATHW:
815  WideCharToMultiByte(CP_ACP, 0, pv, -1, doc_name, MAX_PATH, NULL, NULL);
816  break;
817 
818  default:
819  FIXME("Unsupported flags: %u\n", uFlags);
820  return;
821  }
822 
823  TRACE("full document name %s\n", debugstr_a(doc_name));
824 
825 #ifdef __REACTOS__
826  /* check if file is a shortcut */
827  ext = strrchr(doc_name, '.');
828  if (!lstrcmpiA(ext, ".lnk"))
829  {
830  WCHAR doc_nameW[MAX_PATH];
831  IShellLinkA* ShellLink;
832  int nLength = MultiByteToWideChar(CP_ACP, 0, doc_name, -1, doc_nameW, MAX_PATH);
833  if (nLength == 0)
834  return;
835 
836  IShellLink_ConstructFromPath(doc_nameW, &IID_IShellLinkA, (LPVOID*)&ShellLink);
837  IShellLinkA_GetPath(ShellLink, doc_name, MAX_PATH, NULL, 0);
838  IShellLinkA_Release(ShellLink);
839  }
840 
841  ext = strrchr(doc_name, '.');
842  if (!lstrcmpiA(ext, ".exe"))
843  {
844  /* executables are not added */
845  return;
846  }
847 #endif
848 
849  PathStripPathA(doc_name);
850  TRACE("stripped document name %s\n", debugstr_a(doc_name));
851 
852 
853  /* *** JOB 1: Update registry for ...\Explorer\RecentDocs list *** */
854 
855  { /* on input needs:
856  * doc_name - pure file-spec, no path
857  * link_dir - path to the user's Recent directory
858  * HCUbasekey - key of ...Windows\CurrentVersion\Explorer" node
859  * creates:
860  * new_lnk_name- pure file-spec, no path for new .lnk file
861  * new_lnk_filepath
862  * - path and file name of new .lnk file
863  */
864  CREATEMRULISTA mymru;
865  HANDLE mruhandle;
866  INT len, pos, bufused, err;
867  INT i;
868  DWORD attr;
869  CHAR buffer[2048];
870  CHAR *ptr;
871  CHAR old_lnk_name[MAX_PATH];
872  short int slen;
873 
874  mymru.cbSize = sizeof(CREATEMRULISTA);
875  mymru.nMaxItems = 15;
877  mymru.hKey = HCUbasekey;
878  mymru.lpszSubKey = "RecentDocs";
879  mymru.lpfnCompare = SHADD_compare_mru;
880  mruhandle = CreateMRUListA(&mymru);
881  if (!mruhandle) {
882  /* MRU failed */
883  ERR("MRU processing failed, handle zero\n");
884  RegCloseKey(HCUbasekey);
885  return;
886  }
887  len = lstrlenA(doc_name);
888  pos = FindMRUData(mruhandle, doc_name, len, 0);
889 
890  /* Now get the MRU entry that will be replaced
891  * and delete the .lnk file for it
892  */
893  if ((bufused = EnumMRUListA(mruhandle, (pos == -1) ? 14 : pos,
894  buffer, 2048)) != -1) {
895  ptr = buffer;
896  ptr += (lstrlenA(buffer) + 1);
897  slen = *((short int*)ptr);
898  ptr += 2; /* skip the length area */
899  if (bufused >= slen + (ptr-buffer)) {
900  /* buffer size looks good */
901  ptr += 12; /* get to string */
902  len = bufused - (ptr-buffer); /* get length of buf remaining */
903  if (ptr[0] && (lstrlenA(ptr) <= len-1)) {
904  /* appears to be good string */
905  lstrcpyA(old_lnk_name, link_dir);
906  PathAppendA(old_lnk_name, ptr);
907  if (!DeleteFileA(old_lnk_name)) {
908  if ((attr = GetFileAttributesA(old_lnk_name)) == INVALID_FILE_ATTRIBUTES) {
909  if ((err = GetLastError()) != ERROR_FILE_NOT_FOUND) {
910  ERR("Delete for %s failed, err=%d, attr=%08x\n",
911  old_lnk_name, err, attr);
912  }
913  else {
914  TRACE("old .lnk file %s did not exist\n",
915  old_lnk_name);
916  }
917  }
918  else {
919  ERR("Delete for %s failed, attr=%08x\n",
920  old_lnk_name, attr);
921  }
922  }
923  else {
924  TRACE("deleted old .lnk file %s\n", old_lnk_name);
925  }
926  }
927  }
928  }
929 
930  /* Create usable .lnk file name for the "Recent" directory
931  */
932  wsprintfA(new_lnk_name, "%s.lnk", doc_name);
933  lstrcpyA(new_lnk_filepath, link_dir);
934  PathAppendA(new_lnk_filepath, new_lnk_name);
935  i = 1;
936  olderrormode = SetErrorMode(SEM_FAILCRITICALERRORS);
937  while (GetFileAttributesA(new_lnk_filepath) != INVALID_FILE_ATTRIBUTES) {
938  i++;
939  wsprintfA(new_lnk_name, "%s (%u).lnk", doc_name, i);
940  lstrcpyA(new_lnk_filepath, link_dir);
941  PathAppendA(new_lnk_filepath, new_lnk_name);
942  }
943  SetErrorMode(olderrormode);
944  TRACE("new shortcut will be %s\n", new_lnk_filepath);
945 
946  /* Now add the new MRU entry and data
947  */
948  pos = SHADD_create_add_mru_data(mruhandle, doc_name, new_lnk_name,
949  buffer, &len);
950  FreeMRUList(mruhandle);
951  TRACE("Updated MRU list, new doc is position %d\n", pos);
952  }
953 
954  /* *** JOB 2: Create shortcut in user's "Recent" directory *** */
955 
956  { /* on input needs:
957  * doc_name - pure file-spec, no path
958  * new_lnk_filepath
959  * - path and file name of new .lnk file
960  * uFlags[in] - flags on call to SHAddToRecentDocs
961  * pv[in] - document path/pidl on call to SHAddToRecentDocs
962  */
963  IShellLinkA *psl = NULL;
964  IPersistFile *pPf = NULL;
965  HRESULT hres;
966  CHAR desc[MAX_PATH];
967  WCHAR widelink[MAX_PATH];
968 
969  CoInitialize(0);
970 
971  hres = CoCreateInstance( &CLSID_ShellLink,
972  NULL,
973  CLSCTX_INPROC_SERVER,
974  &IID_IShellLinkA,
975  (LPVOID )&psl);
976  if(SUCCEEDED(hres)) {
977 
978  hres = IShellLinkA_QueryInterface(psl, &IID_IPersistFile,
979  (LPVOID *)&pPf);
980  if(FAILED(hres)) {
981  /* bombed */
982  ERR("failed QueryInterface for IPersistFile %08x\n", hres);
983  goto fail;
984  }
985 
986  /* Set the document path or pidl */
987  if (uFlags == SHARD_PIDL) {
988  hres = IShellLinkA_SetIDList(psl, pv);
989  } else {
990  hres = IShellLinkA_SetPath(psl, pv);
991  }
992  if(FAILED(hres)) {
993  /* bombed */
994  ERR("failed Set{IDList|Path} %08x\n", hres);
995  goto fail;
996  }
997 
998  lstrcpyA(desc, "Shortcut to ");
999  lstrcatA(desc, doc_name);
1000  hres = IShellLinkA_SetDescription(psl, desc);
1001  if(FAILED(hres)) {
1002  /* bombed */
1003  ERR("failed SetDescription %08x\n", hres);
1004  goto fail;
1005  }
1006 
1007  MultiByteToWideChar(CP_ACP, 0, new_lnk_filepath, -1,
1008  widelink, MAX_PATH);
1009  /* create the short cut */
1010  hres = IPersistFile_Save(pPf, widelink, TRUE);
1011  if(FAILED(hres)) {
1012  /* bombed */
1013  ERR("failed IPersistFile::Save %08x\n", hres);
1014  IPersistFile_Release(pPf);
1015  IShellLinkA_Release(psl);
1016  goto fail;
1017  }
1018  hres = IPersistFile_SaveCompleted(pPf, widelink);
1019  IPersistFile_Release(pPf);
1020  IShellLinkA_Release(psl);
1021  TRACE("shortcut %s has been created, result=%08x\n",
1022  new_lnk_filepath, hres);
1023  }
1024  else {
1025  ERR("CoCreateInstance failed, hres=%08x\n", hres);
1026  }
1027  }
1028 
1029  fail:
1030  CoUninitialize();
1031 
1032  /* all done */
1033  RegCloseKey(HCUbasekey);
1034  return;
1035 }
UINT WINAPI SetErrorMode(IN UINT uMode)
Definition: except.c:753
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define TRUE
Definition: types.h:120
BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST pidl, LPSTR pszPath)
Definition: pidl.c:1264
#define MRUF_DELAYED_SAVE
Definition: shellord.c:63
#define ERROR_SUCCESS
Definition: deptool.c:10
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42
#define WideCharToMultiByte
Definition: compat.h:101
#define SEM_FAILCRITICALERRORS
Definition: rtltypes.h:69
#define SHARD_PATHA
Definition: shlobj.h:1093
#define REG_BINARY
Definition: nt_native.h:1496
#define KEY_READ
Definition: nt_native.h:1023
#define CP_ACP
Definition: compat.h:99
#define HKEY_CURRENT_USER
Definition: winreg.h:11
char CHAR
Definition: xmlstorage.h:175
BOOL WINAPI PathAppendA(LPSTR lpszPath, LPCSTR lpszAppend)
Definition: path.c:101
#define WARN(fmt,...)
Definition: debug.h:111
_In_ DWORD nLength
Definition: wincon.h:461
HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal)
Definition: shellole.c:290
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
VOID WINAPI FreeMRUList(HANDLE hMRUList)
GLuint buffer
Definition: glext.h:5915
static INT SHADD_get_policy(LPCSTR policy, LPDWORD type, LPVOID buffer, LPDWORD len)
Definition: shellord.c:557
static INT SHADD_create_add_mru_data(HANDLE mruhandle, LPCSTR doc_name, LPCSTR new_lnk_name, LPSTR buffer, INT *len)
Definition: shellord.c:615
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
UINT uFlags
Definition: api.c:60
int const JOCTET unsigned int datalen
Definition: jpeglib.h:1027
int32_t INT
Definition: typedefs.h:56
static INT CALLBACK SHADD_compare_mru(LPCVOID data1, LPCVOID data2, DWORD cbData)
Definition: shellord.c:597
#define MRUF_BINARY_LIST
Definition: shellord.c:62
#define CSIDL_RECENT
Definition: shlobj.h:2011
struct tagCREATEMRULIST CREATEMRULISTA
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
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
Definition: fileinfo.c:786
#define FIXME(fmt,...)
Definition: debug.h:110
static PVOID ptr
Definition: dispmode.c:27
HANDLE WINAPI CreateMRUListA(LPCREATEMRULISTA lpcml)
const struct builtin_class_descr * desc
Definition: regcontrol.c:48
smooth NULL
Definition: ftsmooth.c:416
char ext[3]
Definition: mkdosfs.c:358
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
Definition: delete.c:24
LPCSTR lpszSubKey
Definition: shellord.c:56
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define TRACE(s)
Definition: solgame.cpp:4
HRESULT hres
Definition: protocol.c:465
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define debugstr_a
Definition: kernel32.h:31
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:2687
LONG HRESULT
Definition: typedefs.h:77
#define MAX_PATH
Definition: compat.h:26
unsigned long DWORD
Definition: ntddk_ex.h:95
Definition: cookie.c:170
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
void WINAPI PathStripPathA(LPSTR lpszPath)
Definition: path.c:672
int ret
__u8 attr
Definition: mkdosfs.c:359
GLenum GLsizei len
Definition: glext.h:6722
DWORD nMaxItems
Definition: shellord.c:53
#define err(...)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3234
#define ERR(fmt,...)
Definition: debug.h:109
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
Definition: reg.c:1222
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
Definition: compobj.c:1991
INT WINAPI FindMRUData(HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum)
#define SHARD_PATHW
Definition: shlobj.h:1094
unsigned int UINT
Definition: ndis.h:50
#define lstrcpynA
Definition: compat.h:408
static IMalloc * ppM
Definition: shlfolder.c:47
#define MultiByteToWideChar
Definition: compat.h:100
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
Definition: compobj.c:1897
const GUID IID_IPersistFile
#define SHARD_PIDL
Definition: shlobj.h:1092
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
Definition: reg.c:1029
#define REG_DWORD
Definition: sdbapi.c:596
INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer, DWORD nBufferSize)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define SUCCEEDED(hr)
Definition: intsafe.h:57

Referenced by StartMenu::ActivateEntry(), ShellEntry::launch_entry(), and Entry::launch_entry().

◆ SHCreatePropSheetExtArray()

HPSXA WINAPI SHCreatePropSheetExtArray ( HKEY  hKey,
LPCWSTR  pszSubKey,
UINT  max_iface 
)

Definition at line 1607 of file shellord.c.

1608 {
1609  return SHCreatePropSheetExtArrayEx(hKey, pszSubKey, max_iface, NULL);
1610 }
smooth NULL
Definition: ftsmooth.c:416
HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, LPDATAOBJECT pDataObj)
Definition: shellord.c:1615

Referenced by Applet1(), DisplayApplet(), KeyboardApplet(), MouseApplet(), and SystemApplet().

◆ SHCreatePropSheetExtArrayEx()

HPSXA WINAPI SHCreatePropSheetExtArrayEx ( HKEY  hKey,
LPCWSTR  pszSubKey,
UINT  max_iface,
LPDATAOBJECT  pDataObj 
)

Definition at line 1615 of file shellord.c.

1616 {
1617  static const WCHAR szPropSheetSubKey[] = {'s','h','e','l','l','e','x','\\','P','r','o','p','e','r','t','y','S','h','e','e','t','H','a','n','d','l','e','r','s',0};
1618  WCHAR szHandler[64];
1619  DWORD dwHandlerLen;
1620  WCHAR szClsidHandler[39];
1621  DWORD dwClsidSize;
1622  CLSID clsid;
1623  LONG lRet;
1624  DWORD dwIndex;
1625  IShellExtInit *psxi;
1626  IShellPropSheetExt *pspsx;
1627  HKEY hkBase, hkPropSheetHandlers;
1628  PPSXA psxa = NULL;
1629 
1630  TRACE("(%p,%s,%u)\n", hKey, debugstr_w(pszSubKey), max_iface);
1631 
1632  if (max_iface == 0)
1633  return NULL;
1634 
1635  /* Open the registry key */
1636  lRet = RegOpenKeyW(hKey, pszSubKey, &hkBase);
1637  if (lRet != ERROR_SUCCESS)
1638  return NULL;
1639 
1640  lRet = RegOpenKeyExW(hkBase, szPropSheetSubKey, 0, KEY_ENUMERATE_SUB_KEYS, &hkPropSheetHandlers);
1641  RegCloseKey(hkBase);
1642  if (lRet == ERROR_SUCCESS)
1643  {
1644  /* Create and initialize the Property Sheet Extensions Array */
1645  psxa = LocalAlloc(LMEM_FIXED, FIELD_OFFSET(PSXA, pspsx[max_iface]));
1646  if (psxa)
1647  {
1648  ZeroMemory(psxa, FIELD_OFFSET(PSXA, pspsx[max_iface]));
1649  psxa->uiAllocated = max_iface;
1650 
1651  /* Enumerate all subkeys and attempt to load the shell extensions */
1652  dwIndex = 0;
1653  do
1654  {
1655  dwHandlerLen = sizeof(szHandler) / sizeof(szHandler[0]);
1656  lRet = RegEnumKeyExW(hkPropSheetHandlers, dwIndex++, szHandler, &dwHandlerLen, NULL, NULL, NULL, NULL);
1657  if (lRet != ERROR_SUCCESS)
1658  {
1659  if (lRet == ERROR_MORE_DATA)
1660  continue;
1661 
1662  if (lRet == ERROR_NO_MORE_ITEMS)
1663  lRet = ERROR_SUCCESS;
1664  break;
1665  }
1666 
1667  /* The CLSID is stored either in the key itself or in its default value. */
1668  if (FAILED(lRet = SHCLSIDFromStringW(szHandler, &clsid)))
1669  {
1670  dwClsidSize = sizeof(szClsidHandler);
1671  if (SHGetValueW(hkPropSheetHandlers, szHandler, NULL, NULL, szClsidHandler, &dwClsidSize) == ERROR_SUCCESS)
1672  {
1673  /* Force a NULL-termination and convert the string */
1674  szClsidHandler[(sizeof(szClsidHandler) / sizeof(szClsidHandler[0])) - 1] = 0;
1675  lRet = SHCLSIDFromStringW(szClsidHandler, &clsid);
1676  }
1677  }
1678 
1679  if (SUCCEEDED(lRet))
1680  {
1681  /* Attempt to get an IShellPropSheetExt and an IShellExtInit instance.
1682  Only if both interfaces are supported it's a real shell extension.
1683  Then call IShellExtInit's Initialize method. */
1684  if (SUCCEEDED(CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER/* | CLSCTX_NO_CODE_DOWNLOAD */, &IID_IShellPropSheetExt, (LPVOID *)&pspsx)))
1685  {
1686  if (SUCCEEDED(pspsx->lpVtbl->QueryInterface(pspsx, &IID_IShellExtInit, (PVOID *)&psxi)))
1687  {
1688  if (SUCCEEDED(psxi->lpVtbl->Initialize(psxi, NULL, pDataObj, hKey)))
1689  {
1690  /* Add the IShellPropSheetExt instance to the array */
1691  psxa->pspsx[psxa->uiCount++] = pspsx;
1692  }
1693  else
1694  {
1695  psxi->lpVtbl->Release(psxi);
1696  pspsx->lpVtbl->Release(pspsx);
1697  }
1698  }
1699  else
1700  pspsx->lpVtbl->Release(pspsx);
1701  }
1702  }
1703 
1704  } while (psxa->uiCount != psxa->uiAllocated);
1705  }
1706  else
1707  lRet = ERROR_NOT_ENOUGH_MEMORY;
1708 
1709  RegCloseKey(hkPropSheetHandlers);
1710  }
1711 
1712  if (lRet != ERROR_SUCCESS && psxa)
1713  {
1714  SHDestroyPropSheetExtArray((HPSXA)psxa);
1715  psxa = NULL;
1716  }
1717 
1718  return (HPSXA)psxa;
1719 }
void WINAPI SHDestroyPropSheetExtArray(HPSXA hpsxa)
Definition: shellord.c:1755
UINT uiCount
Definition: shellord.c:1542
#define ERROR_SUCCESS
Definition: deptool.c:10
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:95
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define ZeroMemory
Definition: winbase.h:1635
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3296
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define LMEM_FIXED
Definition: winbase.h:349
#define TRACE(s)
Definition: solgame.cpp:4
UINT uiAllocated
Definition: shellord.c:1543
__wchar_t WCHAR
Definition: xmlstorage.h:180
nsrefcnt Release()
unsigned long DWORD
Definition: ntddk_ex.h:95
IShellPropSheetExt * pspsx[1]
Definition: shellord.c:1544
DWORD WINAPI SHCLSIDFromStringW(LPCWSTR clsid, CLSID *id)
Definition: shellole.c:261
REFCLSID clsid
Definition: msctf.c:84
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1236
#define ERROR_MORE_DATA
Definition: dderror.h:13
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3234
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3366
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1373
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
Definition: reg.c:2527
nsresult QueryInterface(nsIIDRef riid, void **result)
#define SUCCEEDED(hr)
Definition: intsafe.h:57
#define KEY_ENUMERATE_SUB_KEYS
Definition: nt_native.h:1019

Referenced by SHCreatePropSheetExtArray().

◆ SHCreateShellFolderView()

HRESULT WINAPI SHCreateShellFolderView ( const SFV_CREATE pcsfv,
IShellView **  ppsv 
)

Definition at line 2061 of file shellord.c.

2063 {
2064  IShellView * psf;
2065  HRESULT hRes;
2066 
2067  *ppsv = NULL;
2068  if (!pcsfv || pcsfv->cbSize != sizeof(*pcsfv))
2069  return E_INVALIDARG;
2070 
2071  TRACE("sf=%p outer=%p callback=%p\n",
2072  pcsfv->pshf, pcsfv->psvOuter, pcsfv->psfvcb);
2073 
2074  hRes = IShellView_Constructor(pcsfv->pshf, &psf);
2075  if (FAILED(hRes))
2076  return hRes;
2077 
2078  hRes = IShellView_QueryInterface(psf, &IID_IShellView, (LPVOID *)ppsv);
2079  IShellView_Release(psf);
2080 
2081  return hRes;
2082 }
IShellFolderViewCB * psfvcb
Definition: shlobj.h:1276
IShellView * psvOuter
Definition: shlobj.h:1275
#define E_INVALIDARG
Definition: ddrawi.h:101
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
IShellFolder * pshf
Definition: shlobj.h:1274
UINT cbSize
Definition: shlobj.h:1273

◆ SHCreateShellFolderViewEx()

HRESULT WINAPI SHCreateShellFolderViewEx ( LPCSFV  psvcbi,
IShellView **  ppv 
)

Definition at line 1051 of file shellord.c.

1054 {
1055  IShellView * psf;
1056  HRESULT hRes;
1057 
1058  TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",
1059  psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback,
1060  psvcbi->fvm, psvcbi->psvOuter);
1061 
1062  *ppv = NULL;
1063  hRes = IShellView_Constructor(psvcbi->pshf, &psf);
1064 
1065  if (FAILED(hRes))
1066  return hRes;
1067 
1068  hRes = IShellView_QueryInterface(psf, &IID_IShellView, (LPVOID *)ppv);
1069  IShellView_Release(psf);
1070 
1071  return hRes;
1072 }
LPFNVIEWCALLBACK pfnCallback
Definition: shlobj.h:1199
REFIID LPVOID * ppv
Definition: atlbase.h:39
IShellView * psvOuter
Definition: shlobj.h:1196
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
LPCITEMIDLIST pidl
Definition: shlobj.h:1197
FOLDERVIEWMODE fvm
Definition: shlobj.h:1200
IShellFolder * pshf
Definition: shlobj.h:1195

◆ SHCreateStdEnumFmtEtc()

HRESULT WINAPI SHCreateStdEnumFmtEtc ( UINT  cFormats,
const FORMATETC *  lpFormats,
LPENUMFORMATETC ppenumFormatetc 
)

Definition at line 1804 of file shellord.c.

1808 {
1809  IEnumFORMATETC *pef;
1810  HRESULT hRes;
1811  TRACE("cf=%d fe=%p pef=%p\n", cFormats, lpFormats, ppenumFormatetc);
1812 
1813  hRes = IEnumFORMATETC_Constructor(cFormats, lpFormats, &pef);
1814  if (FAILED(hRes))
1815  return hRes;
1816 
1817  IEnumFORMATETC_AddRef(pef);
1818  hRes = IEnumFORMATETC_QueryInterface(pef, &IID_IEnumFORMATETC, (LPVOID*)ppenumFormatetc);
1819  IEnumFORMATETC_Release(pef);
1820 
1821  return hRes;
1822 }
HRESULT IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[], IEnumFORMATETC **ppFormat)
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
const GUID IID_IEnumFORMATETC

Referenced by CDevSettings_EnumFormatEtc().

◆ SHDestroyPropSheetExtArray()

void WINAPI SHDestroyPropSheetExtArray ( HPSXA  hpsxa)

Definition at line 1755 of file shellord.c.

1756 {
1757  UINT i;
1758  PPSXA psxa = (PPSXA)hpsxa;
1759 
1760  TRACE("(%p)\n", hpsxa);
1761 
1762  if (psxa)
1763  {
1764  for (i = 0; i != psxa->uiCount; i++)
1765  {
1766  psxa->pspsx[i]->lpVtbl->Release(psxa->pspsx[i]);
1767  }
1768 
1769  LocalFree(psxa);
1770  }
1771 }
UINT uiCount
Definition: shellord.c:1542
struct _PSXA * PPSXA
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
ULONG Release()
#define TRACE(s)
Definition: solgame.cpp:4
IShellPropSheetExt * pspsx[1]
Definition: shellord.c:1544
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
unsigned int UINT
Definition: ndis.h:50

Referenced by Applet1(), DisplayAdvancedSettings(), DisplayApplet(), KeyboardApplet(), MouseApplet(), SH_ShowDriveProperties(), SH_ShowPropertiesDialog(), SHCreatePropSheetExtArrayEx(), and SystemApplet().

◆ SHDoDragDrop()

HRESULT WINAPI SHDoDragDrop ( HWND  hWnd,
LPDATAOBJECT  lpDataObject,
LPDROPSOURCE  lpDropSource,
DWORD  dwOKEffect,
LPDWORD  pdwEffect 
)

Definition at line 505 of file shellord.c.

511 {
512  FIXME("(%p %p %p 0x%08x %p):stub.\n",
513  hWnd, lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
514  return DoDragDrop(lpDataObject, lpDropSource, dwOKEffect, pdwEffect);
515 }
HWND hWnd
Definition: settings.c:17
#define FIXME(fmt,...)
Definition: debug.h:110
HRESULT WINAPI DoDragDrop(IDataObject *pDataObject, IDropSource *pDropSource, DWORD dwOKEffect, DWORD *pdwEffect)
Definition: ole2.c:756

◆ ShellMessageBoxA()

int ShellMessageBoxA ( HINSTANCE  hInstance,
HWND  hWnd,
LPCSTR  lpText,
LPCSTR  lpCaption,
UINT  uType,
  ... 
)

Definition at line 395 of file shellord.c.

402 {
403  char szText[100],szTitle[100];
404  LPCSTR pszText = szText, pszTitle = szTitle;
405  LPSTR pszTemp;
407  int ret;
408 
409  __ms_va_start(args, uType);
410  /* wvsprintfA(buf,fmt, args); */
411 
412  TRACE("(%p,%p,%p,%p,%08x)\n",
413  hInstance,hWnd,lpText,lpCaption,uType);
414 
415  if (IS_INTRESOURCE(lpCaption))
416  LoadStringA(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle));
417  else
418  pszTitle = lpCaption;
419 
420  if (IS_INTRESOURCE(lpText))
421  LoadStringA(hInstance, LOWORD(lpText), szText, sizeof(szText));
422  else
423  pszText = lpText;
424 
426  pszText, 0, 0, (LPSTR)&pszTemp, 0, &args);
427 
428  __ms_va_end(args);
429 
430  ret = MessageBoxA(hWnd,pszTemp,pszTitle,uType);
431  LocalFree(pszTemp);
432  return ret;
433 }
static const char __ms_va_list
Definition: printf.c:70
#define FORMAT_MESSAGE_FROM_STRING
Definition: winbase.h:402
DWORD WINAPI FormatMessageA(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:483
int WINAPI LoadStringA(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPSTR lpBuffer, _In_ int cchBufferMax)
HWND hWnd
Definition: settings.c:17
char * LPSTR
Definition: xmlstorage.h:182
Definition: match.c:390
int WINAPI MessageBoxA(_In_opt_ HWND, _In_opt_ LPCSTR, _In_opt_ LPCSTR, _In_ UINT)
HINSTANCE hInstance
Definition: charmap.c:20
static const WCHAR szText[]
Definition: dialog.c:139
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:400
const char * LPCSTR
Definition: xmlstorage.h:183
#define TRACE(s)
Definition: solgame.cpp:4
#define IS_INTRESOURCE(i)
Definition: winuser.h:580
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
int ret
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
#define __ms_va_end(list)
Definition: windef.h:443
#define __ms_va_start(list, arg)
Definition: windef.h:442
#define args
Definition: format.c:66
#define LOWORD(l)
Definition: pedump.c:82

◆ ShellMessageBoxW()

int ShellMessageBoxW ( HINSTANCE  hInstance,
HWND  hWnd,
LPCWSTR  lpText,
LPCWSTR  lpCaption,
UINT  uType,
  ... 
)

Definition at line 337 of file shellord.c.

344 {
345  WCHAR szText[100],szTitle[100];
346  LPCWSTR pszText = szText, pszTitle = szTitle;
347  LPWSTR pszTemp;
349  int ret;
350 
351  __ms_va_start(args, uType);
352  /* wvsprintfA(buf,fmt, args); */
353 
354  TRACE("(%p,%p,%p,%p,%08x)\n",
355  hInstance,hWnd,lpText,lpCaption,uType);
356 
357  if (IS_INTRESOURCE(lpCaption))
358  LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0]));
359  else
360  pszTitle = lpCaption;
361 
362  if (IS_INTRESOURCE(lpText))
363  LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0]));
364  else
365  pszText = lpText;
366 
368  pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args);
369 
370  __ms_va_end(args);
371 
372  ret = MessageBoxW(hWnd,pszTemp,pszTitle,uType);
373  LocalFree(pszTemp);
374  return ret;
375 }
static const char __ms_va_list
Definition: printf.c:70
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define FORMAT_MESSAGE_FROM_STRING
Definition: winbase.h:402
HWND hWnd
Definition: settings.c:17
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
Definition: match.c:390
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
HINSTANCE hInstance
Definition: charmap.c:20
static const WCHAR szText[]
Definition: dialog.c:139
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:400
#define TRACE(s)
Definition: solgame.cpp:4
#define IS_INTRESOURCE(i)
Definition: winuser.h:580
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
__wchar_t WCHAR
Definition: xmlstorage.h:180
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
int ret
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1577
#define __ms_va_end(list)
Definition: windef.h:443
#define __ms_va_start(list, arg)
Definition: windef.h:442
WCHAR * LPWSTR
Definition: xmlstorage.h:184
#define args
Definition: format.c:66
#define LOWORD(l)
Definition: pedump.c:82

Referenced by FormatDriveDlg(), FormatExCB(), CSearchBar::OnSearchButtonClicked(), RunDlgProc(), SHCreateDirectoryExW(), and SHEmptyRecycleBinW().

◆ SHFindFiles()

BOOL WINAPI SHFindFiles ( LPCITEMIDLIST  pidlFolder,
LPCITEMIDLIST  pidlSaveFile 
)

Definition at line 1827 of file shellord.c.

1828 {
1829  FIXME("params ignored: %p %p\n", pidlFolder, pidlSaveFile);
1831  {
1832  return FALSE;
1833  }
1834  /* Open the search results folder */
1835  /* FIXME: CSearchBar should be opened as well */
1836  return ShellExecuteW(NULL, NULL, L"explorer.exe", L"::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}", NULL, SW_SHOWNORMAL) > (HINSTANCE)32;
1837 }
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
HANDLE HINSTANCE
Definition: typedefs.h:75
static const WCHAR L[]
Definition: oid.c:1250
#define SW_SHOWNORMAL
Definition: winuser.h:764
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
Definition: shlexec.cpp:2208
DWORD WINAPI SHRestricted(RESTRICTIONS policy)
Definition: shpolicy.c:836

Referenced by CTaskSwitchWnd::HandleAppCommand(), CTrayWindow::HandleCommand(), CTrayWindow::HandleHotKey(), CDesktopBrowser::OnCommand(), and StartMenuHandler::ShowSearchDialog().

◆ SHFlushClipboard()

HRESULT WINAPI SHFlushClipboard ( void  )

Definition at line 1377 of file shellord.c.

1378 {
1379  return OleFlushClipboard();
1380 }
HRESULT WINAPI OleFlushClipboard(void)
Definition: clipboard.c:2293

◆ SHFlushSFCache()

void WINAPI SHFlushSFCache ( void  )

Definition at line 1999 of file shellord.c.

2000 {
2001 }

◆ SHFreeUnusedLibraries()

void WINAPI SHFreeUnusedLibraries ( void  )

Definition at line 1134 of file shellord.c.

1135 {
1136  FIXME("stub\n");
1138 }
void WINAPI DECLSPEC_HOTPATCH CoFreeUnusedLibraries(void)
Definition: compobj.c:3610
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHGetImageList()

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

Definition at line 2013 of file shellord.c.

2014 {
2015  HIMAGELIST hLarge, hSmall;
2016  HIMAGELIST hNew;
2017  HRESULT ret = E_FAIL;
2018 
2019  /* Wine currently only maintains large and small image lists */
2020  if ((iImageList != SHIL_LARGE) && (iImageList != SHIL_SMALL) && (iImageList != SHIL_SYSSMALL))
2021  {
2022  FIXME("Unsupported image list %i requested\n", iImageList);
2023  return E_FAIL;
2024  }
2025 
2026  Shell_GetImageLists(&hLarge, &hSmall);
2027 #ifndef __REACTOS__
2028  hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall);
2029 
2030  /* Get the interface for the new image list */
2031  if (hNew)
2032  {
2034  ImageList_Destroy(hNew);
2035  }
2036 #else
2037  /* Duplicating the imagelist causes the start menu items not to draw on
2038  * the first show. Was the Duplicate necessary for some reason? I believe
2039  * Windows returns the raw pointer here. */
2040  hNew = (iImageList == SHIL_LARGE ? hLarge : hSmall);
2041  ret = IImageList2_QueryInterface((IImageList2 *) hNew, riid, ppv);
2042 #endif
2043 
2044  return ret;
2045 }
#define SHIL_LARGE
Definition: shellapi.h:182
REFIID riid
Definition: precomp.h:44
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST himl, REFIID riid, void **ppv)
Definition: imagelist.c:4038
#define E_FAIL
Definition: ddrawi.h:102
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
Definition: imagelist.c:928
#define FIXME(fmt,...)
Definition: debug.h:110
LONG HRESULT
Definition: typedefs.h:77
int ret
HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himlSrc)
Definition: imagelist.c:1801
BOOL WINAPI Shell_GetImageLists(HIMAGELIST *lpBigList, HIMAGELIST *lpSmallList)
Definition: iconcache.cpp:706
#define SHIL_SMALL
Definition: shellapi.h:183
#define SHIL_SYSSMALL
Definition: shellapi.h:185

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

◆ SHGetInstanceExplorer()

HRESULT WINAPI SHGetInstanceExplorer ( IUnknown **  lpUnknown)

Definition at line 1110 of file shellord.c.

1111 { TRACE("%p\n", lpUnknown);
1112 
1113  *lpUnknown = SHELL32_IExplorerInterface;
1114 
1116  return E_FAIL;
1117 
1118  IUnknown_AddRef(SHELL32_IExplorerInterface);
1119  return S_OK;
1120 }
#define E_FAIL
Definition: ddrawi.h:102
#define TRACE(s)
Definition: solgame.cpp:4
static LPUNKNOWN SHELL32_IExplorerInterface
Definition: shellord.c:1093
#define S_OK
Definition: intsafe.h:59

Referenced by _SHGetInstanceExplorer(), and SHOpenFolderWindow().

◆ SHGetNewLinkInfoA()

BOOL WINAPI SHGetNewLinkInfoA ( LPCSTR  pszLinkTo,
LPCSTR  pszDir,
LPSTR  pszName,
BOOL pfMustCopy,
UINT  uFlags 
)

Definition at line 1887 of file shellord.c.

1889 {
1890  WCHAR wszLinkTo[MAX_PATH];
1891  WCHAR wszDir[MAX_PATH];
1892  WCHAR wszName[MAX_PATH];
1893  BOOL res;
1894 
1895  MultiByteToWideChar(CP_ACP, 0, pszLinkTo, -1, wszLinkTo, MAX_PATH);
1896  MultiByteToWideChar(CP_ACP, 0, pszDir, -1, wszDir, MAX_PATH);
1897 
1898  res = SHGetNewLinkInfoW(wszLinkTo, wszDir, wszName, pfMustCopy, uFlags);
1899 
1900  if (res)
1901  WideCharToMultiByte(CP_ACP, 0, wszName, -1, pszName, MAX_PATH, NULL, NULL);
1902 
1903  return res;
1904 }
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
Definition: shellord.c:1906
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
UINT uFlags
Definition: api.c:60
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
__wchar_t WCHAR
Definition: xmlstorage.h:180
_In_ LPCSTR pszDir
Definition: shellapi.h:580
#define MAX_PATH
Definition: compat.h:26
_In_ LPCSTR _Out_ BOOL * pfMustCopy
Definition: shellapi.h:582
#define MultiByteToWideChar
Definition: compat.h:100
GLuint res
Definition: glext.h:9613

Referenced by test_sh_new_link_info().

◆ SHGetNewLinkInfoW()

BOOL WINAPI SHGetNewLinkInfoW ( LPCWSTR  pszLinkTo,
LPCWSTR  pszDir,
LPWSTR  pszName,
BOOL pfMustCopy,
UINT  uFlags 
)

Definition at line 1906 of file shellord.c.

1908 {
1909  const WCHAR *basename;
1910  WCHAR *dst_basename;
1911  int i=2;
1912  static const WCHAR lnkformat[] = {'%','s','.','l','n','k',0};
1913  static const WCHAR lnkformatnum[] = {'%','s',' ','(','%','d',')','.','l','n','k',0};
1914 
1915  TRACE("(%s, %s, %p, %p, 0x%08x)\n", debugstr_w(pszLinkTo), debugstr_w(pszDir),
1916  pszName, pfMustCopy, uFlags);
1917 
1918  *pfMustCopy = FALSE;
1919 
1920  if (uFlags & SHGNLI_PIDL)
1921  {
1922  FIXME("SHGNLI_PIDL flag unsupported\n");
1923  return FALSE;
1924  }
1925 
1926  if (uFlags)
1927  FIXME("ignoring flags: 0x%08x\n", uFlags);
1928 
1929  /* FIXME: should test if the file is a shortcut or DOS program */
1930  if (GetFileAttributesW(pszLinkTo) == INVALID_FILE_ATTRIBUTES)
1931  return FALSE;
1932 
1933  basename = strrchrW(pszLinkTo, '\\');
1934  if (basename)
1935  basename = basename+1;
1936  else
1937  basename = pszLinkTo;
1938 
1939  lstrcpynW(pszName, pszDir, MAX_PATH);
1940  if (!PathAddBackslashW(pszName))
1941  return FALSE;
1942 
1943  dst_basename = pszName + strlenW(pszName);
1944 
1945  snprintfW(dst_basename, pszName + MAX_PATH - dst_basename, lnkformat, basename);
1946 
1947  while (GetFileAttributesW(pszName) != INVALID_FILE_ATTRIBUTES)
1948  {
1949  snprintfW(dst_basename, pszName + MAX_PATH - dst_basename, lnkformatnum, basename, i);
1950  i++;
1951  }
1952 
1953  return TRUE;
1954 }
#define TRUE
Definition: types.h:120
#define snprintfW
Definition: unicode.h:60
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
Definition: unicode.h:212
static void basename(LPCWSTR path, LPWSTR name)
Definition: profile.c:38
#define SHGNLI_PIDL
Definition: shellapi.h:402
UINT uFlags
Definition: api.c:60
#define lstrcpynW
Definition: compat.h:397
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
LPWSTR WINAPI PathAddBackslashW(LPWSTR lpszPath)
Definition: path.c:289
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:802
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
_In_ LPCSTR pszDir
Definition: shellapi.h:580
#define MAX_PATH
Definition: compat.h:26
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23
WINE_UNICODE_INLINE WCHAR * strrchrW(const WCHAR *str, WCHAR ch)
Definition: unicode.h:254
_In_ LPCSTR _Out_ BOOL * pfMustCopy
Definition: shellapi.h:582

Referenced by SHGetNewLinkInfoA(), and SHGetNewLinkInfoWrapW().

◆ SHGetSetSettings()

VOID WINAPI SHGetSetSettings ( LPSHELLSTATE  lpss,
DWORD  dwMask,
BOOL  bSet 
)

Definition at line 198 of file shellord.c.

199 {
200  if(bSet)
201  {
202  FIXME("%p 0x%08x TRUE\n", lpss, dwMask);
203  }
204  else
205  {
206  SHGetSettings((LPSHELLFLAGSTATE)lpss,dwMask);
207  }
208 }
#define FIXME(fmt,...)
Definition: debug.h:110
VOID WINAPI SHGetSettings(LPSHELLFLAGSTATE lpsfs, DWORD dwMask)
Definition: shellord.c:218

Referenced by ViewDlg_Apply().

◆ SHGetSettings()

VOID WINAPI SHGetSettings ( LPSHELLFLAGSTATE  lpsfs,
DWORD  dwMask 
)

Definition at line 218 of file shellord.c.

219 {
220  HKEY hKey;
221  DWORD dwData;
222  DWORD dwDataSize = sizeof (DWORD);
223 
224  TRACE("(%p 0x%08x)\n",lpsfs,dwMask);
225 
226  if (RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
227  0, 0, 0, KEY_ALL_ACCESS, 0, &hKey, 0))
228  return;
229 
230  if ( (SSF_SHOWEXTENSIONS & dwMask) && !RegQueryValueExA(hKey, "HideFileExt", 0, 0, (LPBYTE)&dwData, &dwDataSize))
231  lpsfs->fShowExtensions = ((dwData == 0) ? 0 : 1);
232 
233  if ( (SSF_SHOWINFOTIP & dwMask) && !RegQueryValueExA(hKey, "ShowInfoTip", 0, 0, (LPBYTE)&dwData, &dwDataSize))
234  lpsfs->fShowInfoTip = ((dwData == 0) ? 0 : 1);
235 
236  if ( (SSF_DONTPRETTYPATH & dwMask) && !RegQueryValueExA(hKey, "DontPrettyPath", 0, 0, (LPBYTE)&dwData, &dwDataSize))
237  lpsfs->fDontPrettyPath = ((dwData == 0) ? 0 : 1);
238 
239  if ( (SSF_HIDEICONS & dwMask) && !RegQueryValueExA(hKey, "HideIcons", 0, 0, (LPBYTE)&dwData, &dwDataSize))
240  lpsfs->fHideIcons = ((dwData == 0) ? 0 : 1);
241 
242  if ( (SSF_MAPNETDRVBUTTON & dwMask) && !RegQueryValueExA(hKey, "MapNetDrvBtn", 0, 0, (LPBYTE)&dwData, &dwDataSize))
243  lpsfs->fMapNetDrvBtn = ((dwData == 0) ? 0 : 1);
244 
245  if ( (SSF_SHOWATTRIBCOL & dwMask) && !RegQueryValueExA(hKey, "ShowAttribCol", 0, 0, (LPBYTE)&dwData, &dwDataSize))
246  lpsfs->fShowAttribCol = ((dwData == 0) ? 0 : 1);
247 
248  if (((SSF_SHOWALLOBJECTS | SSF_SHOWSYSFILES) & dwMask) && !RegQueryValueExA(hKey, "Hidden", 0, 0, (LPBYTE)&dwData, &dwDataSize))
249  { if (dwData == 0)
250  { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 0;
251  if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 0;
252  }
253  else if (dwData == 1)
254  { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 1;
255  if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 0;
256  }
257  else if (dwData == 2)
258  { if (SSF_SHOWALLOBJECTS & dwMask) lpsfs->fShowAllObjects = 0;
259  if (SSF_SHOWSYSFILES & dwMask) lpsfs->fShowSysFiles = 1;
260  }
261  }
262  RegCloseKey (hKey);
263 
264  TRACE("-- 0x%04x\n", *(WORD*)lpsfs);
265 }
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4023
#define SSF_HIDEICONS
Definition: shlobj.h:1530
#define SSF_DONTPRETTYPATH
Definition: shlobj.h:1526
#define SSF_MAPNETDRVBUTTON
Definition: shlobj.h:1528
BOOL fDontPrettyPath
Definition: shlobj.h:1506
#define HKEY_CURRENT_USER
Definition: winreg.h:11
BOOL fShowSysFiles
Definition: shlobj.h:1499
#define SSF_SHOWATTRIBCOL
Definition: shlobj.h:1523
static HANDLE ULONG_PTR dwData
Definition: file.c:35
#define SSF_SHOWEXTENSIONS
Definition: shlobj.h:1519
BOOL fShowInfoTip
Definition: shlobj.h:1509
BOOL fMapNetDrvBtn
Definition: shlobj.h:1508
#define DWORD
Definition: nt_native.h:44
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
#define SSF_SHOWALLOBJECTS
Definition: shlobj.h:1518
#define TRACE(s)
Definition: solgame.cpp:4
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL fShowAllObjects
Definition: shlobj.h:1496
BOOL fHideIcons
Definition: shlobj.h:1511
#define SSF_SHOWSYSFILES
Definition: shlobj.h:1521
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
BOOL fShowAttribCol
Definition: shlobj.h:1507
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
Definition: reg.c:1029
#define SSF_SHOWINFOTIP
Definition: shlobj.h:1527
BOOL fShowExtensions
Definition: shlobj.h:1497

Referenced by SHGetSetSettings(), and START_TEST().

◆ SHHandleUpdateImage()

INT WINAPI SHHandleUpdateImage ( LPCITEMIDLIST  pidlExtra)

Definition at line 1873 of file shellord.c.

1874 {
1875  FIXME("%p - stub\n", pidlExtra);
1876 
1877  return -1;
1878 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHLoadOLE()

HRESULT WINAPI SHLoadOLE ( LPARAM  lParam)

Definition at line 1330 of file shellord.c.

1331 { FIXME("0x%08lx stub\n",lParam);
1332  return S_OK;
1333 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59
LPARAM lParam
Definition: combotst.c:139

◆ SHObjectProperties()

BOOL WINAPI SHObjectProperties ( HWND  hwnd,
DWORD  dwType,
LPCWSTR  szObject,
LPCWSTR  szPage 
)

Definition at line 1880 of file shellord.c.

1881 {
1882  FIXME("%p, 0x%08x, %s, %s - stub\n", hwnd, dwType, debugstr_w(szObject), debugstr_w(szPage));
1883 
1884  return TRUE;
1885 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define TRUE
Definition: types.h:120
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHOutOfMemoryMessageBox()

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

Definition at line 1365 of file shellord.c.

1369 {
1370  FIXME("%p %s 0x%08x stub\n",hwndOwner, lpCaption, uType);
1371  return 0;
1372 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHRegisterDragDrop()

HRESULT WINAPI SHRegisterDragDrop ( HWND  hWnd,
LPDROPTARGET  pDropTarget 
)

Definition at line 451 of file shellord.c.

454 {
455  static BOOL ole_initialized = FALSE;
456  HRESULT hr;
457 
458  TRACE("(%p,%p)\n", hWnd, pDropTarget);
459 
460  if (!ole_initialized)
461  {
462  hr = OleInitialize(NULL);
463  if (FAILED(hr))
464  return hr;
465  ole_initialized = TRUE;
466  }
467  return RegisterDragDrop(hWnd, pDropTarget);
468 }
#define TRUE
Definition: types.h:120
HRESULT hr
Definition: shlfolder.c:183
HWND hWnd
Definition: settings.c:17
HRESULT WINAPI RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget)
Definition: ole2.c:560
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
Definition: ole2.c:172

◆ SHReplaceFromPropSheetExtArray()

UINT WINAPI SHReplaceFromPropSheetExtArray ( HPSXA  hpsxa,
UINT  uPageID,
LPFNADDPROPSHEETPAGE  lpfnReplaceWith,
LPARAM  lParam 
)

Definition at line 1724 of file shellord.c.

1725 {
1726  PSXA_CALL Call;
1727  UINT i;
1728  PPSXA psxa = (PPSXA)hpsxa;
1729 
1730  TRACE("(%p,%u,%p,%08lx)\n", hpsxa, uPageID, lpfnReplaceWith, lParam);
1731 
1732  if (psxa)
1733  {
1734  ZeroMemory(&Call, sizeof(Call));
1735  Call.lpfnAddReplaceWith = lpfnReplaceWith;
1736  Call.lParam = lParam;
1737 
1738  /* Call the ReplacePage method of all registered IShellPropSheetExt interfaces.
1739  Each shell extension is only allowed to call the callback once during the callback. */
1740  for (i = 0; i != psxa->uiCount; i++)
1741  {
1742  Call.bCalled = FALSE;
1743  psxa->pspsx[i]->lpVtbl->ReplacePage(psxa->pspsx[i], uPageID, PsxaCall, (LPARAM)&Call);
1744  }
1745 
1746  return Call.uiCount;
1747  }
1748 
1749  return 0;
1750 }
UINT uiCount
Definition: shellord.c:1542
struct _PSXA * PPSXA
#define ZeroMemory
Definition: winbase.h:1635
UINT uiCount
Definition: shellord.c:1553
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
static BOOL CALLBACK PsxaCall(HPROPSHEETPAGE hpage, LPARAM lParam)
Definition: shellord.c:1556
LONG_PTR LPARAM
Definition: windef.h:208
#define TRACE(s)
Definition: solgame.cpp:4
IShellPropSheetExt * pspsx[1]
Definition: shellord.c:1544
HRESULT ReplacePage([in] EXPPS uPageID, [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, [in] LPARAM lParam)
unsigned int UINT
Definition: ndis.h:50
LPARAM lParam
Definition: shellord.c:1550
LPFNADDPROPSHEETPAGE lpfnAddReplaceWith
Definition: shellord.c:1549
BOOL bCalled
Definition: shellord.c:1551
LPARAM lParam
Definition: combotst.c:139

Referenced by DisplayApplet(), and MouseApplet().

◆ SHRevokeDragDrop()

HRESULT WINAPI SHRevokeDragDrop ( HWND  hWnd)

Definition at line 486 of file shellord.c.

487 {
488  TRACE("(%p)\n", hWnd);
489  return RevokeDragDrop(hWnd);
490 }
HWND hWnd
Definition: settings.c:17
HRESULT WINAPI RevokeDragDrop(HWND hwnd)
Definition: ole2.c:642
#define TRACE(s)
Definition: solgame.cpp:4

◆ SHRunControlPanel()

BOOL WINAPI SHRunControlPanel ( LPCWSTR  commandLine,
HWND  parent 
)

Definition at line 1087 of file shellord.c.

1088 {
1089  FIXME("(%s, %p): stub\n", debugstr_w(commandLine), parent);
1090  return FALSE;
1091 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
r parent
Definition: btrfs.c:2897

◆ SHSetInstanceExplorer()

VOID WINAPI SHSetInstanceExplorer ( LPUNKNOWN  lpUnknown)

Definition at line 1100 of file shellord.c.

1101 { TRACE("%p\n", lpUnknown);
1102  SHELL32_IExplorerInterface = lpUnknown;
1103 }
#define TRACE(s)
Definition: solgame.cpp:4
static LPUNKNOWN SHELL32_IExplorerInterface
Definition: shellord.c:1093

Referenced by SHCreateFromDesktop().

◆ SHSetLocalizedName()

HRESULT WINAPI SHSetLocalizedName ( LPCWSTR  pszPath,
LPCWSTR  pszResModule,
int  idsRes 
)

Definition at line 1965 of file shellord.c.

1966 {
1967  FIXME("%p, %s, %d - stub\n", pszPath, debugstr_w(pszResModule), idsRes);
1968 
1969  return S_OK;
1970 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define S_OK
Definition: intsafe.h:59

◆ SHShellFolderView_Message()

LRESULT WINAPI SHShellFolderView_Message ( HWND  hwndCabinet,
UINT  uMessage,
LPARAM  lParam 
)

Definition at line 287 of file shellord.c.

291 {
292  FIXME("%p %08x %08lx stub\n",hwndCabinet, uMessage, lParam);
293  return 0;
294 }
#define FIXME(fmt,...)
Definition: debug.h:110
LPARAM lParam
Definition: combotst.c:139

◆ SHStartNetConnectionDialog()

HRESULT WINAPI SHStartNetConnectionDialog ( HWND  hwnd,
LPCSTR  pszRemoteName,
DWORD  dwType 
)

Definition at line 1956 of file shellord.c.

1957 {
1958  FIXME("%p, %s, 0x%08x - stub\n", hwnd, debugstr_a(pszRemoteName), dwType);
1959 
1960  return S_OK;
1961 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define FIXME(fmt,...)
Definition: debug.h:110
#define debugstr_a
Definition: kernel32.h:31
#define S_OK
Definition: intsafe.h:59

◆ SHTestTokenMembership()

EXTERN_C BOOL WINAPI SHTestTokenMembership ( HANDLE  TokenHandle,
ULONG  ulRID 
)

Definition at line 2095 of file shellord.c.

2096 {
2098  DWORD nSubAuthority0, nSubAuthority1;
2099  DWORD nSubAuthorityCount;
2100  PSID SidToCheck;
2101  BOOL IsMember = FALSE;
2102 
2103  if ((ulRID == SECURITY_SERVICE_RID) || ulRID == SECURITY_LOCAL_SYSTEM_RID)
2104  {
2105  nSubAuthority0 = ulRID;
2106  nSubAuthority1 = 0;
2107  nSubAuthorityCount= 1;
2108  }
2109  else
2110  {
2111  nSubAuthority0 = SECURITY_BUILTIN_DOMAIN_RID;
2112  nSubAuthority1 = ulRID;
2113  nSubAuthorityCount= 2;
2114  }
2115 
2116  if (!AllocateAndInitializeSid(&ntAuth,
2117  nSubAuthorityCount,
2118  nSubAuthority0,
2119  nSubAuthority1,
2120  0, 0, 0, 0, 0, 0,
2121  &SidToCheck))
2122  {
2123  return FALSE;
2124  }
2125 
2126  if (!CheckTokenMembership(TokenHandle, SidToCheck, &IsMember))
2127  {
2128  IsMember = FALSE;
2129  }
2130 
2131  FreeSid(SidToCheck);
2132  return IsMember;
2133 }
#define SECURITY_LOCAL_SYSTEM_RID
Definition: setypes.h:546
BOOL WINAPI CheckTokenMembership(IN HANDLE ExistingTokenHandle, IN PSID SidToCheck, OUT PBOOL IsMember)
Definition: token.c:21
unsigned int BOOL
Definition: ntddk_ex.h:94
PVOID WINAPI FreeSid(PSID pSid)
Definition: security.c:577
_In_ ACCESS_MASK _In_ ULONG _Out_ PHANDLE TokenHandle
Definition: psfuncs.h:715
#define SECURITY_NT_AUTHORITY
Definition: setypes.h:526
#define SECURITY_BUILTIN_DOMAIN_RID
Definition: setypes.h:553
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SECURITY_SERVICE_RID
Definition: setypes.h:534
BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, BYTE nSubAuthorityCount, DWORD nSubAuthority0, DWORD nSubAuthority1, DWORD nSubAuthority2, DWORD nSubAuthority3, DWORD nSubAuthority4, DWORD nSubAuthority5, DWORD nSubAuthority6, DWORD nSubAuthority7, PSID *pSid)
Definition: security.c:553

Referenced by IsUserAnAdmin().

◆ SHUpdateImageA()

VOID WINAPI SHUpdateImageA ( LPCSTR  pszHashItem,
INT  iIndex,
UINT  uFlags,
INT  iImageIndex 
)

Definition at line 1868 of file shellord.c.

1869 {
1870  FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_a(pszHashItem), iIndex, uFlags, iImageIndex);
1871 }
UINT uFlags
Definition: api.c:60
#define FIXME(fmt,...)
Definition: debug.h:110
#define debugstr_a
Definition: kernel32.h:31

◆ SHUpdateImageW()

void WINAPI SHUpdateImageW ( LPCWSTR  pszHashItem,
int  iIndex,
UINT  uFlags,
int  iImageIndex 
)

Definition at line 1858 of file shellord.c.

1859 {
1860  FIXME("%s, %d, 0x%x, %d - stub\n", debugstr_w(pszHashItem), iIndex, uFlags, iImageIndex);
1861 }
UINT uFlags
Definition: api.c:60
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHValidateUNC()

BOOL WINAPI SHValidateUNC ( HWND  hwndOwner,
PWSTR  pszFile,
UINT  fConnect 
)

Definition at line 1409 of file shellord.c.

1410 {
1411  FIXME("(%p, %s, 0x%08x): stub\n", hwndOwner, debugstr_w(pszFile), fConnect);
1412  return FALSE;
1413 }
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110

◆ SHWaitForFileToOpen()

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

Definition at line 1386 of file shellord.c.

1390 {
1391  FIXME("%p 0x%08x 0x%08x stub\n", pidl, dwFlags, dwTimeout);
1392  return FALSE;
1393 }
#define FIXME(fmt,...)
Definition: debug.h:110
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081

◆ SHWinHelp()

HRESULT WINAPI SHWinHelp ( DWORD  v,
DWORD  w,
DWORD  x,
DWORD  z 
)

Definition at line 1079 of file shellord.c.

1080 { FIXME("0x%08x 0x%08x 0x%08x 0x%08x stub\n",v,w,x,z);
1081  return 0;
1082 }
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define FIXME(fmt,...)
Definition: debug.h:110
GLdouble GLdouble z
Definition: glext.h:5874
const GLdouble * v
Definition: gl.h:2040

◆ SignalFileOpen()

BOOL WINAPI SignalFileOpen ( PCIDLIST_ABSOLUTE  pidl)

Definition at line 537 of file shellord.c.

538 {
539  FIXME("(%p):stub.\n", pidl);
540 
541  return FALSE;
542 }
#define FIXME(fmt,...)
Definition: debug.h:110

◆ WINE_DECLARE_DEBUG_CHANNEL()

WINE_DECLARE_DEBUG_CHANNEL ( pidl  )

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )

◆ WriteCabinetState()

BOOL WINAPI WriteCabinetState ( CABINETSTATE cs)

Definition at line 1271 of file shellord.c.

1272 {
1273  DWORD r;
1274  HKEY hkey = 0;
1275 
1276  TRACE("%p\n",cs);
1277 
1278  if( cs == NULL )
1279  return FALSE;
1280 
1282  NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL);
1283  if( r == ERROR_SUCCESS )
1284  {
1285  r = RegSetValueExW( hkey, szwSettings, 0,
1286  REG_BINARY, (LPBYTE) cs, cs->cLength);
1287 
1288  RegCloseKey( hkey );
1289  }
1290 
1291  return (r==ERROR_SUCCESS);
1292 }
static const WCHAR szwSettings[]
Definition: shellord.c:1218
#define ERROR_SUCCESS
Definition: deptool.c:10
#define REG_BINARY
Definition: nt_native.h:1496
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define HKEY_CURRENT_USER
Definition: winreg.h:11
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:1091
uint32_t cs
Definition: isohybrid.c:75
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
smooth NULL
Definition: ftsmooth.c:416
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4895
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
static const WCHAR szwCabLocation[]
Definition: shellord.c:1209

Referenced by IntSetNewWindowMode().

Variable Documentation

◆ SHELL32_IExplorerInterface

LPUNKNOWN SHELL32_IExplorerInterface =0
static

Definition at line 1093 of file shellord.c.

Referenced by SHGetInstanceExplorer(), and SHSetInstanceExplorer().

◆ szwCabLocation

const WCHAR szwCabLocation[]
static
Initial value:
= {
'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'W','i','n','d','o','w','s','\\',
'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
'E','x','p','l','o','r','e','r','\\',
'C','a','b','i','n','e','t','S','t','a','t','e',0
}

Definition at line 1209 of file shellord.c.

Referenced by ReadCabinetState(), and WriteCabinetState().

◆ szwSettings

const WCHAR szwSettings[] = { 'S','e','t','t','i','n','g','s',0 }
static

Definition at line 1218 of file shellord.c.

Referenced by ReadCabinetState(), and WriteCabinetState().