ReactOS 0.4.17-dev-357-ga8f14ff
ordinal.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
#include "winreg.h"
#include "wingdi.h"
#include "winuser.h"
#include "winver.h"
#include "winnetwk.h"
#include "mmsystem.h"
#include "objbase.h"
#include "exdisp.h"
#include "shdeprecated.h"
#include "shlobj.h"
#include "shlwapi.h"
#include "shellapi.h"
#include "commdlg.h"
#include "mlang.h"
#include "mshtmhst.h"
#include "wine/unicode.h"
#include "wine/debug.h"
Include dependency graph for ordinal.c:

Go to the source code of this file.

Classes

struct  _enumWndData
 
struct  FDSA_info
 
struct  tagPOLICYDATA
 
struct  SHELL_USER_SID
 
struct  SHELL_USER_PERMISSION
 
struct  objcompat_entry
 

Macros

#define COBJMACROS
 
#define FDSA_FLAG_INTERNAL_ALLOC   0x01 /* When set we have allocated mem internally */
 
#define SHELL_NO_POLICY   0xffffffff
 
#define IsIface(type)   SUCCEEDED((hRet = IUnknown_QueryInterface(lpUnknown, &IID_##type, (void**)&lpObj)))
 
#define IShellBrowser_EnableModeless   IShellBrowser_EnableModelessSB
 
#define EnableModeless(type)   type##_EnableModeless((type*)lpObj, bModeless)
 
#define GET_RGB(h)   (ConvertHue(h, wMid1, wMid2) * 255 + 120) / 240
 
#define SHFORMATDT_UNSUPPORTED_FLAGS   (FDTF_RELATIVE | FDTF_LTRDATE | FDTF_RTLDATE | FDTF_NOAUTOREADINGORDER)
 
#define OBJCOMPAT_OTNEEDSSFCACHE   0x00000001
 
#define OBJCOMPAT_NO_WEBVIEW   0x00000002
 
#define OBJCOMPAT_UNBINDABLE   0x00000004
 
#define OBJCOMPAT_PINDLL   0x00000008
 
#define OBJCOMPAT_NEEDSFILESYSANCESTOR   0x00000010
 
#define OBJCOMPAT_NOTAFILESYSTEM   0x00000020
 
#define OBJCOMPAT_CTXMENU_NOVERBS   0x00000040
 
#define OBJCOMPAT_CTXMENU_LIMITEDQI   0x00000080
 
#define OBJCOMPAT_COCREATESHELLFOLDERONLY   0x00000100
 
#define OBJCOMPAT_NEEDSSTORAGEANCESTOR   0x00000200
 
#define OBJCOMPAT_NOLEGACYWEBVIEW   0x00000400
 
#define OBJCOMPAT_CTXMENU_XPQCMFLAGS   0x00001000
 
#define OBJCOMPAT_NOIPROPERTYSTORE   0x00002000
 

Typedefs

typedef struct _enumWndData enumWndData
 
typedef struct tagPOLICYDATA POLICYDATA
 
typedef struct tagPOLICYDATALPPOLICYDATA
 
typedef HRESULT(WINAPIDllGetVersion_func) (DLLVERSIONINFO *)
 
typedef struct SHELL_USER_SID SHELL_USER_SID
 
typedef struct SHELL_USER_SIDPSHELL_USER_SID
 
typedef struct SHELL_USER_PERMISSION SHELL_USER_PERMISSION
 
typedef struct SHELL_USER_PERMISSIONPSHELL_USER_PERMISSION
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
static HRESULT iunknown_query_service (IUnknown *, REFGUID, REFIID, LPVOID *)
 
HRESULT WINAPI SHInvokeCommand (HWND, IShellFolder *, LPCITEMIDLIST, DWORD)
 
BOOL WINAPI SHAboutInfoW (LPWSTR, DWORD)
 
HANDLE WINAPI SHMapHandle (HANDLE hShared, DWORD dwSrcProcId, DWORD dwDstProcId, DWORD dwAccess, DWORD dwOptions)
 
HANDLE WINAPI SHAllocShared (LPCVOID lpvData, DWORD dwSize, DWORD dwProcId)
 
PVOID WINAPI SHLockShared (HANDLE hShared, DWORD dwProcId)
 
BOOL WINAPI SHUnlockShared (LPVOID lpView)
 
BOOL WINAPI SHFreeShared (HANDLE hShared, DWORD dwProcId)
 
HRESULT WINAPI RegisterDefaultAcceptHeaders (LPBC lpBC, IUnknown *lpUnknown)
 
INT WINAPI SHStringFromGUIDA (REFGUID guid, LPSTR lpszDest, INT cchMax)
 
INT WINAPI SHStringFromGUIDW (REFGUID guid, LPWSTR lpszDest, INT cchMax)
 
BOOL WINAPI GetStringType3ExW (LPWSTR src, INT count, LPWORD type)
 
BOOL WINAPI SHAboutInfoA (LPSTR lpszDest, DWORD dwDestLen)
 
HRESULT WINAPI IUnknown_QueryStatus (IUnknown *lpUnknown, REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText)
 
HRESULT WINAPI IUnknown_Exec (IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
LONG WINAPI SHSetWindowBits (HWND hwnd, INT offset, UINT mask, UINT flags)
 
HWND WINAPI SHSetParentHwnd (HWND hWnd, HWND hWndParent)
 
HRESULT WINAPI ConnectToConnectionPoint (IUnknown *lpUnkSink, REFIID riid, BOOL fConnect, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP)
 
LPCSTR WINAPI PathSkipLeadingSlashesA (LPCSTR lpszSrc)
 
BOOL WINAPI SHIsSameObject (IUnknown *lpInt1, IUnknown *lpInt2)
 
HRESULT WINAPI IUnknown_GetWindow (IUnknown *lpUnknown, HWND *lphWnd)
 
HRESULT WINAPI IUnknown_SetOwner (IUnknown *iface, IUnknown *pUnk)
 
HRESULT WINAPI IUnknown_GetClassID (IUnknown *lpUnknown, CLSID *clsid)
 
HRESULT WINAPI IUnknown_QueryServiceExec (IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut)
 
HRESULT WINAPI IUnknown_ProfferService (IUnknown *lpUnknown, REFGUID service, IServiceProvider *pService, DWORD *pCookie)
 
HRESULT WINAPI IUnknown_UIActivateIO (IUnknown *unknown, BOOL activate, LPMSG msg)
 
BOOL WINAPI SHLoadMenuPopup (HINSTANCE hInst, LPCWSTR szName)
 
static BOOL CALLBACK SHLWAPI_EnumChildProc (HWND hWnd, LPARAM lParam)
 
void WINAPI SHPropagateMessage (HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend)
 
DWORD WINAPI SHRemoveAllSubMenus (HMENU hMenu)
 
UINT WINAPI SHEnableMenuItem (HMENU hMenu, UINT wItemID, BOOL bEnable)
 
DWORD WINAPI SHCheckMenuItem (HMENU hMenu, UINT uID, BOOL bCheck)
 
DWORD WINAPI SHRegisterClassA (WNDCLASSA *wndclass)
 
BOOL WINAPI SHSimulateDrop (IDropTarget *pDrop, IDataObject *pDataObj, DWORD grfKeyState, PPOINTL lpPt, DWORD *pdwEffect)
 
DWORD WINAPI SHLoadFromPropertyBag (IUnknown *lpUnknown, IPropertyBag *lpPropBag)
 
HRESULT WINAPI IUnknown_TranslateAcceleratorOCS (IUnknown *lpUnknown, LPMSG lpMsg, DWORD dwModifiers)
 
HRESULT WINAPI IUnknown_OnFocusOCS (IUnknown *lpUnknown, BOOL fGotFocus)
 
HRESULT WINAPI IUnknown_HandleIRestrict (LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2, PVOID lpArg3, PVOID lpArg4)
 
HMENU WINAPI SHGetMenuFromID (HMENU hMenu, UINT uID)
 
DWORD WINAPI SHGetCurColorRes (void)
 
DWORD WINAPI SHWaitForSendMessageThread (HANDLE hand, DWORD dwTimeout)
 
HRESULT WINAPI SHIsExpandableFolder (LPSHELLFOLDER lpFolder, LPCITEMIDLIST pidl)
 
DWORD WINAPI SHFillRectClr (HDC hDC, LPCRECT pRect, COLORREF cRef)
 
int WINAPI SHSearchMapInt (const int *lpKeys, const int *lpValues, int iLen, int iKey)
 
HRESULT WINAPI MayQSForward (IUnknown *lpUnknown, PVOID lpReserved, REFGUID riidCmdGrp, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText)
 
HRESULT WINAPI MayExecForward (IUnknown *lpUnknown, INT iUnk, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
HRESULT WINAPI IsQSForward (REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds)
 
BOOL WINAPI SHIsChildOrSelf (HWND hParent, HWND hChild)
 
BOOL WINAPI FDSA_Initialize (DWORD block_size, DWORD inc, FDSA_info *info, void *mem, DWORD init_blocks)
 
BOOL WINAPI FDSA_Destroy (FDSA_info *info)
 
DWORD WINAPI FDSA_InsertItem (FDSA_info *info, DWORD where, const void *block)
 
BOOL WINAPI FDSA_DeleteItem (FDSA_info *info, DWORD where)
 
HRESULT WINAPI SHSetDefaultDialogFont (HWND hWnd, INT id)
 
HANDLE WINAPI SHRemoveDefaultDialogFont (HWND hWnd)
 
HMODULE WINAPI SHPinDllOfCLSID (REFIID refiid)
 
DWORD WINAPI SHRegisterClassW (WNDCLASSW *lpWndClass)
 
void WINAPI SHUnregisterClassesA (HINSTANCE hInst, LPCSTR *lppClasses, INT iCount)
 
void WINAPI SHUnregisterClassesW (HINSTANCE hInst, LPCWSTR *lppClasses, INT iCount)
 
LRESULT CALLBACK SHDefWindowProc (HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
 
HWND WINAPI SHCreateWorkerWindowA (WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
 
DWORD WINAPI SHGetRestriction (LPCWSTR lpSubKey, LPCWSTR lpSubName, LPCWSTR lpValue)
 
DWORD WINAPI SHRestrictionLookup (DWORD policy, LPCWSTR initial, LPPOLICYDATA polTable, LPDWORD polArr)
 
HRESULT WINAPI SHWeakQueryInterface (IUnknown *pUnk, IUnknown *pInner, IID *riid, LPVOID *ppv)
 
VOID WINAPI SHWeakReleaseInterface (IUnknown *lpDest, IUnknown **lppUnknown)
 
BOOL WINAPI GUIDFromStringA (LPCSTR idstr, CLSID *id)
 
BOOL WINAPI GUIDFromStringW (LPCWSTR idstr, CLSID *id)
 
HWND WINAPI SHCreateWorkerWindowW (WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
 
HRESULT WINAPI SHInvokeDefaultCommand (HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
 
HRESULT WINAPI SHPackDispParamsV (DISPPARAMS *params, VARIANTARG *args, UINT cnt, va_list valist)
 
HRESULT WINAPIV SHPackDispParams (DISPPARAMS *params, VARIANTARG *args, UINT cnt,...)
 
static HRESULT SHLWAPI_InvokeByIID (IConnectionPoint *iCP, REFIID iid, DISPID dispId, DISPPARAMS *dispParams)
 
HRESULT WINAPI IConnectionPoint_InvokeWithCancel (IConnectionPoint *iCP, DISPID dispId, DISPPARAMS *dispParams, DWORD unknown1, DWORD unknown2)
 
HRESULT WINAPI IConnectionPoint_SimpleInvoke (IConnectionPoint *iCP, DISPID dispId, DISPPARAMS *dispParams)
 
HRESULT WINAPI IConnectionPoint_OnChanged (IConnectionPoint *lpCP, DISPID dispID)
 
HRESULT WINAPIV IUnknown_CPContainerInvokeParam (IUnknown *container, REFIID riid, DISPID dispId, VARIANTARG *buffer, DWORD cParams,...)
 
HRESULT WINAPI IUnknown_CPContainerOnChanged (IUnknown *lpUnknown, DISPID dispID)
 
BOOL WINAPI PlaySoundWrapW (LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound)
 
DWORD WINAPI SHGetIniStringW (LPCWSTR appName, LPCWSTR keyName, LPWSTR out, DWORD outLen, LPCWSTR filename)
 
BOOL WINAPI SHSetIniStringW (LPCWSTR appName, LPCWSTR keyName, LPCWSTR str, LPCWSTR filename)
 
DWORD WINAPI SHGetFileInfoWrapW (LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
 
UINT WINAPI DragQueryFileWrapW (HDROP hDrop, UINT lFile, LPWSTR lpszFile, UINT lLength)
 
LPITEMIDLIST WINAPI SHBrowseForFolderWrapW (LPBROWSEINFOW lpBi)
 
BOOL WINAPI SHGetPathFromIDListWrapW (LPCITEMIDLIST pidl, LPWSTR pszPath)
 
BOOL WINAPI ShellExecuteExWrapW (LPSHELLEXECUTEINFOW lpExecInfo)
 
INT WINAPI SHFileOperationWrapW (LPSHFILEOPSTRUCTW lpFileOp)
 
PVOID WINAPI SHInterlockedCompareExchange (PVOID *dest, PVOID xchg, PVOID compare)
 
DWORD WINAPI GetFileVersionInfoSizeWrapW (LPCWSTR filename, LPDWORD handle)
 
BOOL WINAPI GetFileVersionInfoWrapW (LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
 
WORD WINAPI VerQueryValueWrapW (LPVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, UINT *puLen)
 
HRESULT WINAPI IUnknown_EnableModeless (IUnknown *lpUnknown, BOOL bModeless)
 
BOOL WINAPI SHGetNewLinkInfoWrapW (LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
 
UINT WINAPI SHDefExtractIconWrapW (LPCWSTR pszIconFile, int iIndex, UINT uFlags, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize)
 
HICON WINAPI ExtractIconWrapW (HINSTANCE hInstance, LPCWSTR lpszExeFileName, UINT nIconIndex)
 
HMODULE WINAPI MLLoadLibraryA (LPCSTR new_mod, HMODULE inst_hwnd, DWORD dwCrossCodePage)
 
HMODULE WINAPI MLLoadLibraryW (LPCWSTR new_mod, HMODULE inst_hwnd, DWORD dwCrossCodePage)
 
COLORREF WINAPI ColorAdjustLuma (COLORREF cRGB, int dwLuma, BOOL bUnknown)
 
BOOL WINAPI GetSaveFileNameWrapW (LPOPENFILENAMEW ofn)
 
DWORD WINAPI WNetRestoreConnectionWrapW (HWND hwndOwner, LPWSTR lpszDevice)
 
DWORD WINAPI WNetGetLastErrorWrapW (LPDWORD lpError, LPWSTR lpErrorBuf, DWORD nErrorBufSize, LPWSTR lpNameBuf, DWORD nNameBufSize)
 
BOOL WINAPI PageSetupDlgWrapW (LPPAGESETUPDLGW pagedlg)
 
BOOL WINAPI PrintDlgWrapW (LPPRINTDLGW printdlg)
 
BOOL WINAPI GetOpenFileNameWrapW (LPOPENFILENAMEW ofn)
 
HRESULT WINAPI SHIShellFolder_EnumObjects (LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum)
 
static WORD ConvertHue (int wHue, WORD wMid1, WORD wMid2)
 
COLORREF WINAPI ColorHLSToRGB (WORD wHue, WORD wLuminosity, WORD wSaturation)
 
DWORD WINAPI SHGetMachineInfo (DWORD dwFlags)
 
DWORD WINAPI SHWinHelpOnDemandW (HWND hwnd, LPCWSTR helpfile, DWORD flags1, VOID *ptr1, DWORD flags2)
 
DWORD WINAPI SHWinHelpOnDemandA (HWND hwnd, LPCSTR helpfile, DWORD flags1, VOID *ptr1, DWORD flags2)
 
BOOL WINAPI MLFreeLibrary (HMODULE hModule)
 
BOOL WINAPI SHFlushSFCacheWrap (void)
 
BOOL WINAPI MLIsMLHInstance (HINSTANCE hInst)
 
DWORD WINAPI MLSetMLHInstance (HINSTANCE hInst, HANDLE hHeap)
 
DWORD WINAPI MLClearMLHInstance (DWORD x)
 
DWORD WINAPI SHSendMessageBroadcastA (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
DWORD WINAPI SHSendMessageBroadcastW (UINT uMsg, WPARAM wParam, LPARAM lParam)
 
HRESULT WINAPI CLSIDFromStringWrap (LPCWSTR idstr, CLSID *id)
 
HRESULT WINAPI SHLoadRegUIStringW (HKEY hkey, LPCWSTR value, LPWSTR buf, DWORD size)
 
HRESULT WINAPI IUnknown_TranslateAcceleratorIO (IUnknown *lpUnknown, LPMSG lpMsg)
 
HRESULT WINAPI IUnknown_HasFocusIO (IUnknown *lpUnknown)
 
VOID WINAPI ColorRGBToHLS (COLORREF cRGB, LPWORD pwHue, LPWORD pwLuminance, LPWORD pwSaturation)
 
HPALETTE WINAPI SHCreateShellPalette (HDC hdc)
 
HRESULT WINAPI SHGetInverseCMAP (LPDWORD dest, DWORD dwSize)
 
INT WINAPI GetMenuPosFromID (HMENU hMenu, UINT wID)
 
DWORD WINAPI SHMenuIndexFromID (HMENU hMenu, UINT uID)
 
VOID WINAPI FixSlashesAndColonW (LPWSTR lpwstr)
 
DWORD WINAPI SHGetAppCompatFlags (DWORD dwUnknown)
 
HRESULT WINAPI SHCoCreateInstanceAC (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
 
BOOL WINAPI SHSkipJunction (IBindCtx *pbc, const CLSID *pclsid)
 
HKEY WINAPI SHGetShellKey (DWORD flags, LPCWSTR sub_key, BOOL create)
 
BOOL WINAPI SHQueueUserWorkItem (LPTHREAD_START_ROUTINE pfnCallback, LPVOID pContext, LONG lPriority, DWORD_PTR dwTag, DWORD_PTR *pdwId, LPCSTR pszModule, DWORD dwFlags)
 
HANDLE WINAPI SHSetTimerQueueTimer (HANDLE hQueue, WAITORTIMERCALLBACK pfnCallback, LPVOID pContext, DWORD dwDueTime, DWORD dwPeriod, LPCSTR lpszLibrary, DWORD dwFlags)
 
HRESULT WINAPI IUnknown_OnFocusChangeIS (LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObject, BOOL bFocus)
 
HRESULT WINAPI SKAllocValueW (DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type, LPVOID *data, DWORD *count)
 
HRESULT WINAPI SKDeleteValueW (DWORD flags, LPCWSTR subkey, LPCWSTR value)
 
HRESULT WINAPI SKGetValueW (DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type, void *data, DWORD *count)
 
HRESULT WINAPI SKSetValueW (DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD type, void *data, DWORD count)
 
DWORD WINAPI GetUIVersion (void)
 
INT WINAPIV ShellMessageBoxWrapW (HINSTANCE hInstance, HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType,...)
 
UINT WINAPI ZoneComputePaneSize (HWND hwnd)
 
void WINAPI SHChangeNotifyWrap (LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
 
PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor (const PSHELL_USER_PERMISSION *apUserPerm, int cUserPerm)
 
HRESULT WINAPI SHCreatePropertyBagOnRegKey (HKEY hKey, LPCWSTR subkey, DWORD grfMode, REFIID riid, void **ppv)
 
INT WINAPI SHFormatDateTimeW (const FILETIME UNALIGNED *fileTime, DWORD *flags, LPWSTR buf, UINT size)
 
INT WINAPI SHFormatDateTimeA (const FILETIME UNALIGNED *fileTime, DWORD *flags, LPSTR buf, UINT size)
 
INT WINAPI ZoneCheckUrlExW (LPWSTR szURL, PVOID pUnknown, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4, DWORD dwUnknown5, DWORD dwUnknown6, DWORD dwUnknown7)
 
INT WINAPI SHVerbExistsNA (LPSTR verb, PVOID pUnknown, PVOID pUnknown2, DWORD dwUnknown3)
 
HRESULT WINAPI IUnknown_QueryServiceForWebBrowserApp (IUnknown *lpUnknown, REFGUID riid, LPVOID *lppOut)
 
HRESULT WINAPI SHPropertyBag_ReadLONG (IPropertyBag *ppb, LPCWSTR pszPropName, LPLONG pValue)
 
DWORD WINAPI SHGetObjectCompatFlags (IUnknown *pUnk, const CLSID *clsid)
 

Variables

HINSTANCE shlwapi_hInstance
 
DWORD SHLWAPI_ThreadRef_index
 
static const WCHAR strRegistryPolicyW []
 
static const struct objcompat_entry objcompat_table []
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 27 of file ordinal.c.

◆ EnableModeless

#define EnableModeless (   type)    type##_EnableModeless((type*)lpObj, bModeless)

Definition at line 3084 of file ordinal.c.

◆ FDSA_FLAG_INTERNAL_ALLOC

#define FDSA_FLAG_INTERNAL_ALLOC   0x01 /* When set we have allocated mem internally */

Definition at line 1966 of file ordinal.c.

◆ GET_RGB

#define GET_RGB (   h)    (ConvertHue(h, wMid1, wMid2) * 255 + 120) / 240

Definition at line 3446 of file ordinal.c.

◆ IShellBrowser_EnableModeless

#define IShellBrowser_EnableModeless   IShellBrowser_EnableModelessSB

Definition at line 3083 of file ordinal.c.

◆ IsIface

#define IsIface (   type)    SUCCEEDED((hRet = IUnknown_QueryInterface(lpUnknown, &IID_##type, (void**)&lpObj)))

Definition at line 3082 of file ordinal.c.

◆ OBJCOMPAT_COCREATESHELLFOLDERONLY

#define OBJCOMPAT_COCREATESHELLFOLDERONLY   0x00000100

Definition at line 5672 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_LIMITEDQI

#define OBJCOMPAT_CTXMENU_LIMITEDQI   0x00000080

Definition at line 5671 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_NOVERBS

#define OBJCOMPAT_CTXMENU_NOVERBS   0x00000040

Definition at line 5670 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_XPQCMFLAGS

#define OBJCOMPAT_CTXMENU_XPQCMFLAGS   0x00001000

Definition at line 5675 of file ordinal.c.

◆ OBJCOMPAT_NEEDSFILESYSANCESTOR

#define OBJCOMPAT_NEEDSFILESYSANCESTOR   0x00000010

Definition at line 5668 of file ordinal.c.

◆ OBJCOMPAT_NEEDSSTORAGEANCESTOR

#define OBJCOMPAT_NEEDSSTORAGEANCESTOR   0x00000200

Definition at line 5673 of file ordinal.c.

◆ OBJCOMPAT_NO_WEBVIEW

#define OBJCOMPAT_NO_WEBVIEW   0x00000002

Definition at line 5665 of file ordinal.c.

◆ OBJCOMPAT_NOIPROPERTYSTORE

#define OBJCOMPAT_NOIPROPERTYSTORE   0x00002000

Definition at line 5676 of file ordinal.c.

◆ OBJCOMPAT_NOLEGACYWEBVIEW

#define OBJCOMPAT_NOLEGACYWEBVIEW   0x00000400

Definition at line 5674 of file ordinal.c.

◆ OBJCOMPAT_NOTAFILESYSTEM

#define OBJCOMPAT_NOTAFILESYSTEM   0x00000020

Definition at line 5669 of file ordinal.c.

◆ OBJCOMPAT_OTNEEDSSFCACHE

#define OBJCOMPAT_OTNEEDSSFCACHE   0x00000001

Definition at line 5664 of file ordinal.c.

◆ OBJCOMPAT_PINDLL

#define OBJCOMPAT_PINDLL   0x00000008

Definition at line 5667 of file ordinal.c.

◆ OBJCOMPAT_UNBINDABLE

#define OBJCOMPAT_UNBINDABLE   0x00000004

Definition at line 5666 of file ordinal.c.

◆ SHELL_NO_POLICY

#define SHELL_NO_POLICY   0xffffffff

Definition at line 2335 of file ordinal.c.

◆ SHFORMATDT_UNSUPPORTED_FLAGS

#define SHFORMATDT_UNSUPPORTED_FLAGS   (FDTF_RELATIVE | FDTF_LTRDATE | FDTF_RTLDATE | FDTF_NOAUTOREADINGORDER)

Typedef Documentation

◆ DllGetVersion_func

typedef HRESULT(WINAPI * DllGetVersion_func) (DLLVERSIONINFO *)

Definition at line 4352 of file ordinal.c.

◆ enumWndData

◆ LPPOLICYDATA

◆ POLICYDATA

◆ PSHELL_USER_PERMISSION

◆ PSHELL_USER_SID

◆ SHELL_USER_PERMISSION

◆ SHELL_USER_SID

Function Documentation

◆ CLSIDFromStringWrap()

HRESULT WINAPI CLSIDFromStringWrap ( LPCWSTR  idstr,
CLSID id 
)

Definition at line 3634 of file ordinal.c.

3635{
3636 return CLSIDFromString((LPCOLESTR)idstr, id);
3637}
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
Definition: combase.c:1470

◆ ColorAdjustLuma()

COLORREF WINAPI ColorAdjustLuma ( COLORREF  cRGB,
int  dwLuma,
BOOL  bUnknown 
)

Definition at line 3330 of file ordinal.c.

3331{
3332 TRACE("(0x%8lx,%d,%d)\n", cRGB, dwLuma, bUnknown);
3333
3334 if (dwLuma)
3335 {
3336 WORD wH, wL, wS;
3337
3338 ColorRGBToHLS(cRGB, &wH, &wL, &wS);
3339
3340 FIXME("Ignoring luma adjustment\n");
3341
3342 /* FIXME: The adjustment is not linear */
3343
3344 cRGB = ColorHLSToRGB(wH, wL, wS);
3345 }
3346 return cRGB;
3347}
#define FIXME(fmt,...)
Definition: precomp.h:53
COLORREF WINAPI ColorHLSToRGB(WORD wHue, WORD wLuminosity, WORD wSaturation)
Definition: ordinal.c:3464
VOID WINAPI ColorRGBToHLS(COLORREF cRGB, LPWORD pwHue, LPWORD pwLuminance, LPWORD pwSaturation)
Definition: ordinal.c:3762
unsigned short WORD
Definition: ntddk_ex.h:93
#define TRACE(s)
Definition: solgame.cpp:4

◆ ColorHLSToRGB()

COLORREF WINAPI ColorHLSToRGB ( WORD  wHue,
WORD  wLuminosity,
WORD  wSaturation 
)

Definition at line 3464 of file ordinal.c.

3465{
3466 WORD wRed;
3467
3468 if (wSaturation)
3469 {
3470 WORD wGreen, wBlue, wMid1, wMid2;
3471
3472 if (wLuminosity > 120)
3473 wMid2 = wSaturation + wLuminosity - (wSaturation * wLuminosity + 120) / 240;
3474 else
3475 wMid2 = ((wSaturation + 240) * wLuminosity + 120) / 240;
3476
3477 wMid1 = wLuminosity * 2 - wMid2;
3478
3479 wRed = GET_RGB(wHue + 80);
3480 wGreen = GET_RGB(wHue);
3481 wBlue = GET_RGB(wHue - 80);
3482
3483 return RGB(wRed, wGreen, wBlue);
3484 }
3485
3486 wRed = wLuminosity * 255 / 240;
3487 return RGB(wRed, wRed, wRed);
3488}
#define GET_RGB(h)
Definition: ordinal.c:3446
#define RGB(r, g, b)
Definition: precomp.h:67

Referenced by ColorAdjustLuma().

◆ ColorRGBToHLS()

VOID WINAPI ColorRGBToHLS ( COLORREF  cRGB,
LPWORD  pwHue,
LPWORD  pwLuminance,
LPWORD  pwSaturation 
)

Definition at line 3762 of file ordinal.c.

3764{
3765 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
3766
3767 TRACE("(%08lx,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
3768
3769 wR = GetRValue(cRGB);
3770 wG = GetGValue(cRGB);
3771 wB = GetBValue(cRGB);
3772
3773 wMax = max(wR, max(wG, wB));
3774 wMin = min(wR, min(wG, wB));
3775
3776 /* Luminosity */
3777 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
3778
3779 if (wMax == wMin)
3780 {
3781 /* Achromatic case */
3782 wSaturation = 0;
3783 /* Hue is now unrepresentable, but this is what native returns... */
3784 wHue = 160;
3785 }
3786 else
3787 {
3788 /* Chromatic case */
3789 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
3790
3791 /* Saturation */
3792 if (wLuminosity <= 120)
3793 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
3794 else
3795 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
3796
3797 /* Hue */
3798 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
3799 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
3800 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
3801
3802 if (wR == wMax)
3803 wHue = wBNorm - wGNorm;
3804 else if (wG == wMax)
3805 wHue = 80 + wRNorm - wBNorm;
3806 else
3807 wHue = 160 + wGNorm - wRNorm;
3808 if (wHue < 0)
3809 wHue += 240;
3810 else if (wHue > 240)
3811 wHue -= 240;
3812 }
3813 if (pwHue)
3814 *pwHue = wHue;
3815 if (pwLuminance)
3816 *pwLuminance = wLuminosity;
3817 if (pwSaturation)
3818 *pwSaturation = wSaturation;
3819}
#define GetBValue(quad)
Definition: precomp.h:71
#define GetGValue(quad)
Definition: precomp.h:70
#define GetRValue(quad)
Definition: precomp.h:69
#define min(a, b)
Definition: monoChain.cc:55
#define max(a, b)
Definition: svc.c:63

Referenced by ColorAdjustLuma().

◆ ConnectToConnectionPoint()

HRESULT WINAPI ConnectToConnectionPoint ( IUnknown lpUnkSink,
REFIID  riid,
BOOL  fConnect,
IUnknown lpUnknown,
LPDWORD  lpCookie,
IConnectionPoint **  lppCP 
)

Definition at line 868 of file ordinal.c.

871{
872 HRESULT hRet;
873 IConnectionPointContainer* lpContainer;
874 IConnectionPoint *lpCP;
875
876 if(!lpUnknown || (fConnect && !lpUnkSink))
877 return E_FAIL;
878
879 if(lppCP)
880 *lppCP = NULL;
881
882 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IConnectionPointContainer,
883 (void**)&lpContainer);
884 if (SUCCEEDED(hRet))
885 {
886 hRet = IConnectionPointContainer_FindConnectionPoint(lpContainer, riid, &lpCP);
887
888 if (SUCCEEDED(hRet))
889 {
890 if(!fConnect)
891 hRet = IConnectionPoint_Unadvise(lpCP, *lpCookie);
892 else
893 hRet = IConnectionPoint_Advise(lpCP, lpUnkSink, lpCookie);
894
895 if (FAILED(hRet))
896 *lpCookie = 0;
897
898 if (lppCP && SUCCEEDED(hRet))
899 *lppCP = lpCP; /* Caller keeps the interface */
900 else
901 IConnectionPoint_Release(lpCP); /* Release it */
902 }
903
904 IConnectionPointContainer_Release(lpContainer);
905 }
906 return hRet;
907}
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
const GUID IID_IConnectionPointContainer

Referenced by init_pointers().

◆ ConvertHue()

static WORD ConvertHue ( int  wHue,
WORD  wMid1,
WORD  wMid2 
)
static

Definition at line 3431 of file ordinal.c.

3432{
3433 wHue = wHue > 240 ? wHue - 240 : wHue < 0 ? wHue + 240 : wHue;
3434
3435 if (wHue > 160)
3436 return wMid1;
3437 else if (wHue > 120)
3438 wHue = 160 - wHue;
3439 else if (wHue > 40)
3440 return wMid2;
3441
3442 return ((wHue * (wMid2 - wMid1) + 20) / 40) + wMid1;
3443}

◆ DragQueryFileWrapW()

UINT WINAPI DragQueryFileWrapW ( HDROP  hDrop,
UINT  lFile,
LPWSTR  lpszFile,
UINT  lLength 
)

Definition at line 2996 of file ordinal.c.

2997{
2998 return DragQueryFileW(hDrop, lFile, lpszFile, lLength);
2999}
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
Definition: shellole.c:666

◆ ExtractIconWrapW()

HICON WINAPI ExtractIconWrapW ( HINSTANCE  hInstance,
LPCWSTR  lpszExeFileName,
UINT  nIconIndex 
)

Definition at line 3236 of file ordinal.c.

3238{
3239 return ExtractIconW(hInstance, lpszExeFileName, nIconIndex);
3240}
HINSTANCE hInstance
Definition: charmap.c:19
HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex)
Definition: shell32_main.c:877

◆ FDSA_DeleteItem()

BOOL WINAPI FDSA_DeleteItem ( FDSA_info info,
DWORD  where 
)

Definition at line 2055 of file ordinal.c.

2056{
2057 TRACE("(%p 0x%08lx)\n", info, where);
2058
2059 if(where >= info->num_items)
2060 return FALSE;
2061
2062 if(where < info->num_items - 1)
2063 {
2064 memmove((char*)info->mem + where * info->block_size,
2065 (char*)info->mem + (where + 1) * info->block_size,
2066 (info->num_items - where - 1) * info->block_size);
2067 }
2068 memset((char*)info->mem + (info->num_items - 1) * info->block_size,
2069 0, info->block_size);
2070 info->num_items--;
2071 return TRUE;
2072}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
#define memset(x, y, z)
Definition: compat.h:39

◆ FDSA_Destroy()

BOOL WINAPI FDSA_Destroy ( FDSA_info info)

Definition at line 1999 of file ordinal.c.

2000{
2001 TRACE("(%p)\n", info);
2002
2003 if(info->flags & FDSA_FLAG_INTERNAL_ALLOC)
2004 {
2005 free(info->mem);
2006 return FALSE;
2007 }
2008
2009 return TRUE;
2010}
#define free
Definition: debug_ros.c:5
#define FDSA_FLAG_INTERNAL_ALLOC
Definition: ordinal.c:1966

◆ FDSA_Initialize()

BOOL WINAPI FDSA_Initialize ( DWORD  block_size,
DWORD  inc,
FDSA_info info,
void mem,
DWORD  init_blocks 
)

Definition at line 1973 of file ordinal.c.

1975{
1976 TRACE("(0x%08lx 0x%08lx %p %p 0x%08lx)\n", block_size, inc, info, mem, init_blocks);
1977
1978 if(inc == 0)
1979 inc = 1;
1980
1981 if(mem)
1982 memset(mem, 0, block_size * init_blocks);
1983
1984 info->num_items = 0;
1985 info->inc = inc;
1986 info->mem = mem;
1987 info->blocks_alloced = init_blocks;
1988 info->block_size = block_size;
1989 info->flags = 0;
1990
1991 return TRUE;
1992}
static DWORD block_size(DWORD block)
Definition: jsutils.c:61
Definition: mem.c:349

◆ FDSA_InsertItem()

DWORD WINAPI FDSA_InsertItem ( FDSA_info info,
DWORD  where,
const void block 
)

Definition at line 2017 of file ordinal.c.

2018{
2019 TRACE("(%p 0x%08lx %p)\n", info, where, block);
2020 if(where > info->num_items)
2021 where = info->num_items;
2022
2023 if(info->num_items >= info->blocks_alloced)
2024 {
2025 DWORD size = (info->blocks_alloced + info->inc) * info->block_size;
2026 if(info->flags & 0x1)
2027 info->mem = _recalloc(info->mem, 1, size);
2028 else
2029 {
2030 void *old_mem = info->mem;
2031 info->mem = calloc(1, size);
2032 memcpy(info->mem, old_mem, info->blocks_alloced * info->block_size);
2033 }
2034 info->blocks_alloced += info->inc;
2035 info->flags |= 0x1;
2036 }
2037
2038 if(where < info->num_items)
2039 {
2040 memmove((char*)info->mem + (where + 1) * info->block_size,
2041 (char*)info->mem + where * info->block_size,
2042 (info->num_items - where) * info->block_size);
2043 }
2044 memcpy((char*)info->mem + where * info->block_size, block, info->block_size);
2045
2046 info->num_items++;
2047 return where;
2048}
_ACRTIMP void *__cdecl _recalloc(void *, size_t, size_t) __WINE_ALLOC_SIZE(2
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define calloc
Definition: rosglue.h:14
static unsigned int block
Definition: xmlmemory.c:101

◆ FixSlashesAndColonW()

VOID WINAPI FixSlashesAndColonW ( LPWSTR  lpwstr)

Definition at line 3976 of file ordinal.c.

3977{
3978 while (*lpwstr)
3979 {
3980 if (*lpwstr == '/')
3981 *lpwstr = '\\';
3982 lpwstr++;
3983 }
3984}

Referenced by PathQualifyExW().

◆ GetFileVersionInfoSizeWrapW()

DWORD WINAPI GetFileVersionInfoSizeWrapW ( LPCWSTR  filename,
LPDWORD  handle 
)

Definition at line 3055 of file ordinal.c.

3056{
3058}
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
Definition: version.c:738
const char * filename
Definition: ioapi.h:137

◆ GetFileVersionInfoWrapW()

BOOL WINAPI GetFileVersionInfoWrapW ( LPCWSTR  filename,
DWORD  handle,
DWORD  datasize,
LPVOID  data 
)

Definition at line 3065 of file ordinal.c.

3067{
3069}
static SIZE_T datasize
Definition: asm.c:30
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
Definition: version.c:967
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950

◆ GetMenuPosFromID()

INT WINAPI GetMenuPosFromID ( HMENU  hMenu,
UINT  wID 
)

Definition at line 3924 of file ordinal.c.

3925{
3927 INT nCount = GetMenuItemCount(hMenu), nIter = 0;
3928
3929 TRACE("%p %u\n", hMenu, wID);
3930
3931 while (nIter < nCount)
3932 {
3933 mi.cbSize = sizeof(mi);
3934 mi.fMask = MIIM_ID;
3935 if (GetMenuItemInfoW(hMenu, nIter, TRUE, &mi) && mi.wID == wID)
3936 {
3937 TRACE("ret %d\n", nIter);
3938 return nIter;
3939 }
3940 nIter++;
3941 }
3942
3943 return -1;
3944}
static MONITORINFO mi
Definition: win.c:9400
DWORD cbSize
Definition: winuser.h:3892
int32_t INT
Definition: typedefs.h:58
#define MIIM_ID
Definition: winuser.h:733
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)

Referenced by DeleteMenuEx(), and SHMenuIndexFromID().

◆ GetOpenFileNameWrapW()

BOOL WINAPI GetOpenFileNameWrapW ( LPOPENFILENAMEW  ofn)

Definition at line 3405 of file ordinal.c.

3406{
3407 return GetOpenFileNameW(ofn);
3408}
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
Definition: filedlg.c:4736
OPENFILENAME ofn
Definition: sndrec32.cpp:56

◆ GetSaveFileNameWrapW()

BOOL WINAPI GetSaveFileNameWrapW ( LPOPENFILENAMEW  ofn)

Definition at line 3354 of file ordinal.c.

3355{
3356 return GetSaveFileNameW(ofn);
3357}
BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn)
Definition: filedlg.c:4801

◆ GetShellSecurityDescriptor()

PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor ( const PSHELL_USER_PERMISSION apUserPerm,
int  cUserPerm 
)

Definition at line 4507 of file ordinal.c.

4508{
4509 PSID *sidlist;
4510 PSID cur_user = NULL;
4511 BYTE tuUser[2000];
4512 DWORD acl_size;
4513 int sid_count, i;
4515
4516 TRACE("%p %d\n", apUserPerm, cUserPerm);
4517
4518 if (apUserPerm == NULL || cUserPerm <= 0)
4519 return NULL;
4520
4521 sidlist = malloc(cUserPerm * sizeof(PSID));
4522 if (!sidlist)
4523 return NULL;
4524
4525 acl_size = sizeof(ACL);
4526
4527 for(sid_count = 0; sid_count < cUserPerm; sid_count++)
4528 {
4529 static SHELL_USER_SID null_sid = {{SECURITY_NULL_SID_AUTHORITY}, 0, 0};
4530 PSHELL_USER_PERMISSION perm = apUserPerm[sid_count];
4531 PSHELL_USER_SID sid = &perm->susID;
4532 PSID pSid;
4533 BOOL ret = TRUE;
4534
4535 if (!memcmp((void*)sid, (void*)&null_sid, sizeof(SHELL_USER_SID)))
4536 { /* current user's SID */
4537 if (!cur_user)
4538 {
4539 HANDLE Token;
4540 DWORD bufsize = sizeof(tuUser);
4541
4543 if (ret)
4544 {
4545 ret = GetTokenInformation(Token, TokenUser, (void*)tuUser, bufsize, &bufsize );
4546 if (ret)
4547 cur_user = ((PTOKEN_USER)tuUser)->User.Sid;
4549 }
4550 }
4551 pSid = cur_user;
4552 } else if (sid->dwUserID==0) /* one sub-authority */
4553 ret = AllocateAndInitializeSid(&sid->sidAuthority, 1, sid->dwUserGroupID, 0,
4554 0, 0, 0, 0, 0, 0, &pSid);
4555 else
4556 ret = AllocateAndInitializeSid(&sid->sidAuthority, 2, sid->dwUserGroupID, sid->dwUserID,
4557 0, 0, 0, 0, 0, 0, &pSid);
4558 if (!ret)
4559 goto free_sids;
4560
4561 sidlist[sid_count] = pSid;
4562 /* increment acl_size (1 ACE for non-inheritable and 2 ACEs for inheritable records */
4563 acl_size += (sizeof(ACCESS_ALLOWED_ACE)-sizeof(DWORD) + GetLengthSid(pSid)) * (perm->fInherit ? 2 : 1);
4564 }
4565
4566 psd = LocalAlloc(0, sizeof(SECURITY_DESCRIPTOR) + acl_size);
4567
4568 if (psd != NULL)
4569 {
4570 PACL pAcl = (PACL)(((BYTE*)psd)+sizeof(SECURITY_DESCRIPTOR));
4571
4573 goto error;
4574
4575 if (!InitializeAcl(pAcl, acl_size, ACL_REVISION))
4576 goto error;
4577
4578 for(i = 0; i < sid_count; i++)
4579 {
4580 PSHELL_USER_PERMISSION sup = apUserPerm[i];
4581 PSID sid = sidlist[i];
4582
4583 switch(sup->dwAccessType)
4584 {
4587 goto error;
4588 if (sup->fInherit && !AddAccessAllowedAceEx(pAcl, ACL_REVISION,
4590 goto error;
4591 break;
4594 goto error;
4595 if (sup->fInherit && !AddAccessDeniedAceEx(pAcl, ACL_REVISION,
4597 goto error;
4598 break;
4599 default:
4600 goto error;
4601 }
4602 }
4603
4604 if (!SetSecurityDescriptorDacl(psd, TRUE, pAcl, FALSE))
4605 goto error;
4606 }
4607 goto free_sids;
4608
4609error:
4610 LocalFree(psd);
4611 psd = NULL;
4612free_sids:
4613 for(i = 0; i < sid_count; i++)
4614 {
4615 if (!cur_user || sidlist[i] != cur_user)
4616 FreeSid(sidlist[i]);
4617 }
4618 free(sidlist);
4619
4620 return psd;
4621}
static void free_sids(PSID *sids, int count)
Definition: acl.c:155
FT_UInt sid
Definition: cffcmap.c:138
#define malloc
Definition: debug_ros.c:4
BOOL WINAPI GetTokenInformation(HANDLE TokenHandle, TOKEN_INFORMATION_CLASS TokenInformationClass, LPVOID TokenInformation, DWORD TokenInformationLength, PDWORD ReturnLength)
Definition: security.c:411
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
Definition: security.c:294
BOOL WINAPI AddAccessDeniedAceEx(PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid)
Definition: security.c:1114
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:674
BOOL WINAPI InitializeAcl(PACL pAcl, DWORD nAclLength, DWORD dwAclRevision)
Definition: security.c:1006
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
Definition: security.c:929
BOOL WINAPI AddAccessAllowedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
Definition: security.c:1039
BOOL WINAPI AddAccessAllowedAceEx(PACL pAcl, DWORD dwAceRevision, DWORD AceFlags, DWORD AccessMask, PSID pSid)
Definition: security.c:1063
DWORD WINAPI GetLengthSid(PSID pSid)
Definition: security.c:919
PVOID WINAPI FreeSid(PSID pSid)
Definition: security.c:698
BOOL WINAPI AddAccessDeniedAce(PACL pAcl, DWORD dwAceRevision, DWORD AccessMask, PSID pSid)
Definition: security.c:1090
#define CloseHandle
Definition: compat.h:739
#define GetCurrentProcess()
Definition: compat.h:759
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2807
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
GLenum GLuint GLsizei bufsize
Definition: glext.h:7473
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
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define error(str)
Definition: mkdosfs.c:1605
static PSID pSid
Definition: security.c:85
struct _ACL ACL
struct _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR
struct _ACL * PACL
struct _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE
BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bDaclPresent, PACL pDacl, BOOL bDaclDefaulted)
Definition: sec.c:262
SHELL_USER_SID susID
Definition: ordinal.c:4482
struct _TOKEN_USER * PTOKEN_USER
#define ACCESS_ALLOWED_ACE_TYPE
Definition: setypes.h:717
#define TOKEN_QUERY
Definition: setypes.h:940
@ TokenUser
Definition: setypes.h:978
#define ACCESS_DENIED_ACE_TYPE
Definition: setypes.h:718
#define SECURITY_DESCRIPTOR_REVISION
Definition: setypes.h:58
#define SECURITY_NULL_SID_AUTHORITY
Definition: setypes.h:524
#define ACL_REVISION
Definition: setypes.h:39
unsigned char BYTE
Definition: xxhash.c:193

Referenced by init_pointers().

◆ GetStringType3ExW()

BOOL WINAPI GetStringType3ExW ( LPWSTR  src,
INT  count,
LPWORD  type 
)

Definition at line 572 of file ordinal.c.

573{
575}
BOOL WINAPI GetStringTypeW(DWORD type, LPCWSTR src, INT count, LPWORD chartype)
Definition: locale.c:3098
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
#define CT_CTYPE3
Definition: winnls.h:267

◆ GetUIVersion()

DWORD WINAPI GetUIVersion ( void  )

Definition at line 4357 of file ordinal.c.

4358{
4359 static DWORD version;
4360
4361 if (!version)
4362 {
4363 DllGetVersion_func pDllGetVersion;
4364 HMODULE dll = LoadLibraryA("shell32.dll");
4365 if (!dll) return 0;
4366
4367 pDllGetVersion = (DllGetVersion_func)GetProcAddress(dll, "DllGetVersion");
4368 if (pDllGetVersion)
4369 {
4370 DLLVERSIONINFO dvi;
4371 dvi.cbSize = sizeof(DLLVERSIONINFO);
4372 if (pDllGetVersion(&dvi) == S_OK) version = dvi.dwMajorVersion;
4373 }
4374 FreeLibrary( dll );
4375 if (!version) version = 3; /* old shell dlls don't have DllGetVersion */
4376 }
4377 return version;
4378}
#define GetProcAddress(x, y)
Definition: compat.h:753
#define FreeLibrary(x)
Definition: compat.h:748
static const WCHAR version[]
Definition: asmname.c:66
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
Definition: loader.c:111
HRESULT(WINAPI * DllGetVersion_func)(DLLVERSIONINFO *)
Definition: ordinal.c:4352
#define S_OK
Definition: intsafe.h:52
struct _DllVersionInfo DLLVERSIONINFO
DWORD dwMajorVersion
Definition: shlwapi.h:121
DWORD cbSize
Definition: shlwapi.h:120

◆ GUIDFromStringA()

BOOL WINAPI GUIDFromStringA ( LPCSTR  idstr,
CLSID id 
)

Definition at line 2530 of file ordinal.c.

2531{
2532 WCHAR wClsid[40];
2533 MultiByteToWideChar(CP_ACP, 0, idstr, -1, wClsid, ARRAY_SIZE(wClsid));
2534 return SUCCEEDED(CLSIDFromString(wClsid, id));
2535}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
short WCHAR
Definition: pedump.c:58

Referenced by init_pointers().

◆ GUIDFromStringW()

BOOL WINAPI GUIDFromStringW ( LPCWSTR  idstr,
CLSID id 
)

Definition at line 2542 of file ordinal.c.

2543{
2544 return SUCCEEDED(CLSIDFromString((LPCOLESTR)idstr, id));
2545}

◆ IConnectionPoint_InvokeWithCancel()

HRESULT WINAPI IConnectionPoint_InvokeWithCancel ( IConnectionPoint iCP,
DISPID  dispId,
DISPPARAMS *  dispParams,
DWORD  unknown1,
DWORD  unknown2 
)

Definition at line 2728 of file ordinal.c.

2731{
2732 IID iid;
2734
2735 FIXME("(%p)->(0x%lx %p %lx %lx) partial stub\n", iCP, dispId, dispParams, unknown1, unknown2);
2736
2737 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
2738 if (SUCCEEDED(result))
2739 result = SHLWAPI_InvokeByIID(iCP, &iid, dispId, dispParams);
2740 else
2741 result = SHLWAPI_InvokeByIID(iCP, NULL, dispId, dispParams);
2742
2743 return result;
2744}
static HRESULT SHLWAPI_InvokeByIID(IConnectionPoint *iCP, REFIID iid, DISPID dispId, DISPPARAMS *dispParams)
Definition: ordinal.c:2689
GLuint64EXT * result
Definition: glext.h:11304

Referenced by init_pointers().

◆ IConnectionPoint_OnChanged()

HRESULT WINAPI IConnectionPoint_OnChanged ( IConnectionPoint lpCP,
DISPID  dispID 
)

Definition at line 2785 of file ordinal.c.

2786{
2787 IEnumConnections *lpEnum;
2788 HRESULT hRet = E_NOINTERFACE;
2789
2790 TRACE("(%p,0x%8lX)\n", lpCP, dispID);
2791
2792 /* Get an enumerator for the connections */
2793 if (lpCP)
2794 hRet = IConnectionPoint_EnumConnections(lpCP, &lpEnum);
2795
2796 if (SUCCEEDED(hRet))
2797 {
2798 IPropertyNotifySink *lpSink;
2799 CONNECTDATA connData;
2800 ULONG ulFetched;
2801
2802 /* Call OnChanged() for every notify sink in the connection point */
2803 while (IEnumConnections_Next(lpEnum, 1, &connData, &ulFetched) == S_OK)
2804 {
2805 if (SUCCEEDED(IUnknown_QueryInterface(connData.pUnk, &IID_IPropertyNotifySink, (void**)&lpSink)) &&
2806 lpSink)
2807 {
2808 IPropertyNotifySink_OnChanged(lpSink, dispID);
2809 IPropertyNotifySink_Release(lpSink);
2810 }
2811 IUnknown_Release(connData.pUnk);
2812 }
2813
2814 IEnumConnections_Release(lpEnum);
2815 }
2816 return hRet;
2817}
const GUID IID_IPropertyNotifySink
uint32_t ULONG
Definition: typedefs.h:59
#define E_NOINTERFACE
Definition: winerror.h:3479

Referenced by IUnknown_CPContainerOnChanged().

◆ IConnectionPoint_SimpleInvoke()

HRESULT WINAPI IConnectionPoint_SimpleInvoke ( IConnectionPoint iCP,
DISPID  dispId,
DISPPARAMS *  dispParams 
)

Definition at line 2752 of file ordinal.c.

2756{
2757 IID iid;
2759
2760 TRACE("(%p)->(0x%lx %p)\n",iCP,dispId,dispParams);
2761
2762 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
2763 if (SUCCEEDED(result))
2764 result = SHLWAPI_InvokeByIID(iCP, &iid, dispId, dispParams);
2765 else
2766 result = SHLWAPI_InvokeByIID(iCP, NULL, dispId, dispParams);
2767
2768 return result;
2769}

Referenced by init_pointers().

◆ IsQSForward()

HRESULT WINAPI IsQSForward ( REFGUID  pguidCmdGroup,
ULONG  cCmds,
OLECMD *  prgCmds 
)

Definition at line 1921 of file ordinal.c.

1922{
1923 FIXME("(%p,%ld,%p) - stub!\n", pguidCmdGroup, cCmds, prgCmds);
1925}
#define DRAGDROP_E_NOTREGISTERED
Definition: winerror.h:3760

Referenced by TEST_IsQSForward().

◆ IUnknown_CPContainerInvokeParam()

HRESULT WINAPIV IUnknown_CPContainerInvokeParam ( IUnknown container,
REFIID  riid,
DISPID  dispId,
VARIANTARG buffer,
DWORD  cParams,
  ... 
)

Definition at line 2824 of file ordinal.c.

2830{
2832 IConnectionPoint *iCP;
2834 DISPPARAMS dispParams = {buffer, NULL, cParams, 0};
2836
2837 if (!container)
2838 return E_NOINTERFACE;
2839
2840 result = IUnknown_QueryInterface(container, &IID_IConnectionPointContainer,(LPVOID*) &iCPC);
2841 if (FAILED(result))
2842 return result;
2843
2844 result = IConnectionPointContainer_FindConnectionPoint(iCPC, riid, &iCP);
2845 IConnectionPointContainer_Release(iCPC);
2846 if(FAILED(result))
2847 return result;
2848
2849 va_start(valist, cParams);
2850 SHPackDispParamsV(&dispParams, buffer, cParams, valist);
2851 va_end(valist);
2852
2853 result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams);
2854 IConnectionPoint_Release(iCP);
2855
2856 return result;
2857}
#define va_end(v)
Definition: stdarg.h:28
#define va_start(v, l)
Definition: stdarg.h:26
char * va_list
Definition: vadefs.h:50
HRESULT WINAPI SHPackDispParamsV(DISPPARAMS *params, VARIANTARG *args, UINT cnt, va_list valist)
Definition: ordinal.c:2619
GLuint buffer
Definition: glext.h:5915
static va_list valist
Definition: printf.c:46
struct stdole::DISPPARAMS DISPPARAMS

◆ IUnknown_CPContainerOnChanged()

HRESULT WINAPI IUnknown_CPContainerOnChanged ( IUnknown lpUnknown,
DISPID  dispID 
)

Definition at line 2873 of file ordinal.c.

2874{
2876 HRESULT hRet = E_NOINTERFACE;
2877
2878 TRACE("(%p,0x%8lX)\n", lpUnknown, dispID);
2879
2880 if (lpUnknown)
2881 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IConnectionPointContainer, (void**)&lpCPC);
2882
2883 if (SUCCEEDED(hRet))
2884 {
2885 IConnectionPoint* lpCP;
2886
2887 hRet = IConnectionPointContainer_FindConnectionPoint(lpCPC, &IID_IPropertyNotifySink, &lpCP);
2888 IConnectionPointContainer_Release(lpCPC);
2889
2890 hRet = IConnectionPoint_OnChanged(lpCP, dispID);
2891 IConnectionPoint_Release(lpCP);
2892 }
2893 return hRet;
2894}
HRESULT WINAPI IConnectionPoint_OnChanged(IConnectionPoint *lpCP, DISPID dispID)
Definition: ordinal.c:2785

◆ IUnknown_EnableModeless()

HRESULT WINAPI IUnknown_EnableModeless ( IUnknown lpUnknown,
BOOL  bModeless 
)

Definition at line 3105 of file ordinal.c.

3106{
3107 IUnknown *lpObj;
3108 HRESULT hRet;
3109
3110 TRACE("(%p,%d)\n", lpUnknown, bModeless);
3111
3112 if (!lpUnknown)
3113 return E_FAIL;
3114
3117 else if (IsIface(IOleInPlaceFrame))
3119 else if (IsIface(IShellBrowser))
3123 else if (IsIface(IDocHostUIHandler))
3125 else
3126 return hRet;
3127
3128 IUnknown_Release(lpObj);
3129 return S_OK;
3130}
#define EnableModeless(type)
Definition: ordinal.c:3084
#define IsIface(type)
Definition: ordinal.c:3082

◆ IUnknown_Exec()

HRESULT WINAPI IUnknown_Exec ( IUnknown lpUnknown,
REFGUID  pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)

◆ IUnknown_GetClassID()

HRESULT WINAPI IUnknown_GetClassID ( IUnknown lpUnknown,
CLSID clsid 
)

Definition at line 1071 of file ordinal.c.

1072{
1073 IPersist *persist;
1074 HRESULT hr;
1075
1076 TRACE("(%p, %p)\n", lpUnknown, clsid);
1077
1078 if (!lpUnknown)
1079 {
1080 memset(clsid, 0, sizeof(*clsid));
1081 return E_FAIL;
1082 }
1083
1084 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersist, (void**)&persist);
1085 if (hr != S_OK)
1086 {
1087 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersistFolder, (void**)&persist);
1088 if (hr != S_OK)
1089 return hr;
1090 }
1091
1092 hr = IPersist_GetClassID(persist, clsid);
1093 IPersist_Release(persist);
1094 return hr;
1095}
HRESULT hr
Definition: delayimp.cpp:582
const CLSID * clsid
Definition: msctf.cpp:50
const GUID IID_IPersist
Definition: proxy.cpp:14

Referenced by GetClassOfItem(), CDefView::GetDefaultViewStream(), CSearchBar::GetSearchResultsFolder(), init_pointers(), and SHSkipJunction().

◆ IUnknown_GetWindow()

HRESULT WINAPI IUnknown_GetWindow ( IUnknown lpUnknown,
HWND lphWnd 
)

Definition at line 988 of file ordinal.c.

989{
990 IUnknown *lpOle;
991 HRESULT hRet = E_FAIL;
992
993 TRACE("(%p,%p)\n", lpUnknown, lphWnd);
994
995 if (!lpUnknown)
996 return hRet;
997
998 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleWindow, (void**)&lpOle);
999
1000 if (FAILED(hRet))
1001 {
1002 hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (void**)&lpOle);
1003
1004 if (FAILED(hRet))
1005 {
1006 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
1007 (void**)&lpOle);
1008 }
1009 }
1010
1011 if (SUCCEEDED(hRet))
1012 {
1013 /* Laziness here - Since GetWindow() is the first method for the above 3
1014 * interfaces, we use the same call for them all.
1015 */
1016 hRet = IOleWindow_GetWindow((IOleWindow*)lpOle, lphWnd);
1017 IUnknown_Release(lpOle);
1018 if (lphWnd)
1019 TRACE("Returning HWND=%p\n", *lphWnd);
1020 }
1021
1022 return hRet;
1023}
const GUID IID_IOleWindow

Referenced by CMenuDeskBar::_IsSubMenuParent(), CMenuSite::AddBand(), BindCtx_GetUIWindow(), CInternetToolbar::CreateMenuBar(), CFSDropTarget::Drop(), CAddressEditBox::Execute(), CShellBrowser::GetControlWindow(), GetUiOwner(), CDockSite::Initialize(), CInternetToolbar::InitNew(), CTrayNotifyWnd::OnCreate(), CTrayWindow::OnCreate(), CShellMenuCallback::OnInitMenu(), CTrayWindow::OnOpenStartMenu(), CInternetToolbar::OnWinIniChange(), CAddressEditBox::ParseNow(), CShellBrowser::RepositionBars(), CMenuDeskBar::SetClient(), CMenuSite::SetDeskBarSite(), CISFBand::SetSite(), CTaskBand::SetSite(), CAddressBand::SetSite(), CInternetToolbar::SetSite(), CSearchBar::SetSite(), and CToolsBand::SetSite().

◆ IUnknown_HandleIRestrict()

HRESULT WINAPI IUnknown_HandleIRestrict ( LPUNKNOWN  lpUnknown,
PVOID  lpArg1,
PVOID  lpArg2,
PVOID  lpArg3,
PVOID  lpArg4 
)

Definition at line 1548 of file ordinal.c.

1550{
1551 /* FIXME: {D12F26B2-D90A-11D0-830D-00AA005B4383} - What object does this represent? */
1552 static const DWORD service_id[] = { 0xd12f26b2, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1553 /* FIXME: {D12F26B1-D90A-11D0-830D-00AA005B4383} - Also Unknown/undocumented */
1554 static const DWORD function_id[] = { 0xd12f26b1, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1555 HRESULT hRet = E_INVALIDARG;
1556 LPUNKNOWN lpUnkInner = NULL; /* FIXME: Real type is unknown */
1557
1558 TRACE("(%p,%p,%p,%p,%p)\n", lpUnknown, lpArg1, lpArg2, lpArg3, lpArg4);
1559
1560 if (lpUnknown && lpArg4)
1561 {
1562 hRet = iunknown_query_service(lpUnknown, (REFGUID)service_id,
1563 (REFGUID)function_id, (void**)&lpUnkInner);
1564
1565 if (SUCCEEDED(hRet) && lpUnkInner)
1566 {
1567 /* FIXME: The type of service object requested is unknown, however
1568 * testing shows that its first method is called with 4 parameters.
1569 * Fake this by using IParseDisplayName_ParseDisplayName since the
1570 * signature and position in the vtable matches our unknown object type.
1571 */
1572 hRet = IParseDisplayName_ParseDisplayName((LPPARSEDISPLAYNAME)lpUnkInner,
1573 lpArg1, lpArg2, lpArg3, lpArg4);
1574 IUnknown_Release(lpUnkInner);
1575 }
1576 }
1577 return hRet;
1578}
#define E_INVALIDARG
Definition: ddrawi.h:101
static LPVOID LPUNKNOWN
Definition: dinput.c:53
static HRESULT iunknown_query_service(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1097
Definition: scsiwmi.h:51

◆ IUnknown_HasFocusIO()

HRESULT WINAPI IUnknown_HasFocusIO ( IUnknown lpUnknown)

Definition at line 3724 of file ordinal.c.

3725{
3726 IInputObject* lpInput = NULL;
3727 HRESULT hRet = E_INVALIDARG;
3728
3729 TRACE("(%p)\n", lpUnknown);
3730 if (lpUnknown)
3731 {
3732 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
3733 (void**)&lpInput);
3734 if (SUCCEEDED(hRet) && lpInput)
3735 {
3736 hRet = IInputObject_HasFocusIO(lpInput);
3737 IInputObject_Release(lpInput);
3738 }
3739 }
3740 return hRet;
3741}
#define IInputObject_HasFocusIO(p)
Definition: shlobj.h:721
#define IInputObject_Release(p)
Definition: shlobj.h:718

Referenced by CBaseBarSite::HasFocusIO(), CInternetToolbar::HasFocusIO(), CBaseBar::HasFocusIO(), and CMenuDeskBar::HasFocusIO().

◆ IUnknown_OnFocusChangeIS()

HRESULT WINAPI IUnknown_OnFocusChangeIS ( LPUNKNOWN  lpUnknown,
LPUNKNOWN  pFocusObject,
BOOL  bFocus 
)

Definition at line 4231 of file ordinal.c.

4232{
4233 IInputObjectSite *pIOS = NULL;
4234 HRESULT hRet = E_INVALIDARG;
4235
4236 TRACE("(%p, %p, %s)\n", lpUnknown, pFocusObject, bFocus ? "TRUE" : "FALSE");
4237
4238 if (lpUnknown)
4239 {
4240 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObjectSite,
4241 (void **)&pIOS);
4242 if (SUCCEEDED(hRet) && pIOS)
4243 {
4244 hRet = IInputObjectSite_OnFocusChangeIS(pIOS, pFocusObject, bFocus);
4246 }
4247 }
4248 return hRet;
4249}
#define IInputObjectSite_Release(p)
Definition: shlobj.h:742
#define IInputObjectSite_OnFocusChangeIS(p, a, b)
Definition: shlobj.h:744

Referenced by CBaseBarSite::OnFocusChangeIS(), CBaseBar::OnFocusChangeIS(), CMenuDeskBar::OnFocusChangeIS(), CSearchBar::OnSetFocus(), and CAddressBand::UIActivateIO().

◆ IUnknown_OnFocusOCS()

HRESULT WINAPI IUnknown_OnFocusOCS ( IUnknown lpUnknown,
BOOL  fGotFocus 
)

Definition at line 1526 of file ordinal.c.

1527{
1528 IOleControlSite* lpCSite = NULL;
1529 HRESULT hRet = E_FAIL;
1530
1531 TRACE("(%p, %d)\n", lpUnknown, fGotFocus);
1532 if (lpUnknown)
1533 {
1534 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleControlSite,
1535 (void**)&lpCSite);
1536 if (SUCCEEDED(hRet) && lpCSite)
1537 {
1538 hRet = IOleControlSite_OnFocus(lpCSite, fGotFocus);
1539 IOleControlSite_Release(lpCSite);
1540 }
1541 }
1542 return hRet;
1543}
const GUID IID_IOleControlSite

◆ IUnknown_ProfferService()

HRESULT WINAPI IUnknown_ProfferService ( IUnknown lpUnknown,
REFGUID  service,
IServiceProvider pService,
DWORD pCookie 
)

Definition at line 1187 of file ordinal.c.

1188{
1189 IProfferService *proffer;
1190 HRESULT hr;
1191
1192 TRACE("%p %s %p %p\n", lpUnknown, debugstr_guid(service), pService, pCookie);
1193
1194 hr = iunknown_query_service(lpUnknown, &IID_IProfferService, &IID_IProfferService, (void**)&proffer);
1195 if (hr == S_OK)
1196 {
1197 if (pService)
1198 hr = IProfferService_ProfferService(proffer, service, pService, pCookie);
1199 else
1200 {
1201 hr = IProfferService_RevokeService(proffer, *pCookie);
1202 *pCookie = 0;
1203 }
1204
1205 IProfferService_Release(proffer);
1206 }
1207
1208 return hr;
1209}
#define debugstr_guid
Definition: kernel32.h:35

Referenced by init_pointers().

◆ iunknown_query_service()

static HRESULT iunknown_query_service ( IUnknown lpUnknown,
REFGUID  sid,
REFIID  riid,
LPVOID lppOut 
)
static

Definition at line 1097 of file ordinal.c.

1098{
1099 IServiceProvider* pService = NULL;
1100 HRESULT hRet;
1101
1102 if (!lppOut)
1103 return E_FAIL;
1104
1105 *lppOut = NULL;
1106
1107 if (!lpUnknown)
1108 return E_FAIL;
1109
1110 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IServiceProvider,
1111 (LPVOID*)&pService);
1112
1113 if (hRet == S_OK && pService)
1114 {
1115 TRACE("QueryInterface returned (IServiceProvider*)%p\n", pService);
1116
1117 /* Get a Service interface from the object */
1118 hRet = IServiceProvider_QueryService(pService, sid, riid, lppOut);
1119
1120 TRACE("(IServiceProvider*)%p returned (IUnknown*)%p\n", pService, *lppOut);
1121
1122 IServiceProvider_Release(pService);
1123 }
1124 return hRet;
1125}

Referenced by IUnknown_HandleIRestrict(), IUnknown_ProfferService(), IUnknown_QueryServiceExec(), and RegisterDefaultAcceptHeaders().

◆ IUnknown_QueryServiceExec()

HRESULT WINAPI IUnknown_QueryServiceExec ( IUnknown lpUnknown,
REFIID  service,
const GUID group,
DWORD  cmdId,
DWORD  cmdOpt,
VARIANT pIn,
VARIANT pOut 
)

Definition at line 1148 of file ordinal.c.

1150{
1152 HRESULT hr;
1153
1154 TRACE("%p %s %s %ld %08lx %p %p\n", lpUnknown, debugstr_guid(service),
1155 debugstr_guid(group), cmdId, cmdOpt, pIn, pOut);
1156
1157 hr = iunknown_query_service(lpUnknown, service, &IID_IOleCommandTarget, (void**)&target);
1158 if (hr == S_OK)
1159 {
1160 hr = IOleCommandTarget_Exec(target, group, cmdId, cmdOpt, pIn, pOut);
1161 IOleCommandTarget_Release(target);
1162 }
1163
1164 TRACE("<-- hr=0x%08lx\n", hr);
1165
1166 return hr;
1167}
GLboolean GLuint group
Definition: glext.h:11120
Definition: tools.h:99

Referenced by CMenuBand::AdjustForTheme(), init_pointers(), CMenuDeskBar::Popup(), and CMenuDeskBar::SetIconSize().

◆ IUnknown_QueryServiceForWebBrowserApp()

HRESULT WINAPI IUnknown_QueryServiceForWebBrowserApp ( IUnknown lpUnknown,
REFGUID  riid,
LPVOID lppOut 
)

Definition at line 4814 of file ordinal.c.

4816{
4817#ifdef __REACTOS__
4818 IServiceProvider *pSP;
4819 HRESULT hr = IUnknown_QueryService(lpUnknown, &SID_STopLevelBrowser,
4820 &IID_IServiceProvider, (PVOID*)&pSP);
4821 if (FAILED(hr))
4822 {
4823 *lppOut = NULL;
4824 return hr;
4825 }
4826 hr = pSP->lpVtbl->QueryService(pSP, &IID_IWebBrowserApp, riid, lppOut);
4827 pSP->lpVtbl->Release(pSP);
4828 return hr;
4829#else
4830 FIXME("%p %s %p semi-STUB\n", lpUnknown, debugstr_guid(riid), lppOut);
4831 return IUnknown_QueryService(lpUnknown,&IID_IWebBrowserApp,riid,lppOut);
4832#endif
4833}
HRESULT WINAPI IUnknown_QueryService(IUnknown *obj, REFGUID sid, REFIID iid, void **out)
Definition: main.c:181
HRESULT QueryService([in] REFGUID guidService, [in] REFIID riid, [out] void **ppvObject)
ULONG Release()

Referenced by IUnknown_ShowBrowserBar().

◆ IUnknown_QueryStatus()

HRESULT WINAPI IUnknown_QueryStatus ( IUnknown lpUnknown,
REFGUID  pguidCmdGroup,
ULONG  cCmds,
OLECMD *  prgCmds,
OLECMDTEXT *  pCmdText 
)

Definition at line 723 of file ordinal.c.

725{
726 HRESULT hRet = E_FAIL;
727
728 TRACE("(%p,%p,%ld,%p,%p)\n",lpUnknown, pguidCmdGroup, cCmds, prgCmds, pCmdText);
729
730 if (lpUnknown)
731 {
732 IOleCommandTarget* lpOle;
733
734 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
735 (void**)&lpOle);
736
737 if (SUCCEEDED(hRet) && lpOle)
738 {
739 hRet = IOleCommandTarget_QueryStatus(lpOle, pguidCmdGroup, cCmds,
740 prgCmds, pCmdText);
741 IOleCommandTarget_Release(lpOle);
742 }
743 }
744 return hRet;
745}

Referenced by CInternetToolbar::CommandStateChanged(), CShellBrowser::IsInternetToolbarBandShown(), MayQSForwardMockup(), CInternetToolbar::OnMenuDropDown(), CAddressBand::QueryStatus(), CMenuSite::QueryStatus(), and CShellBrowser::UpdateViewMenu().

◆ IUnknown_SetOwner()

HRESULT WINAPI IUnknown_SetOwner ( IUnknown iface,
IUnknown pUnk 
)

Definition at line 1037 of file ordinal.c.

1038{
1039 IShellService *service;
1040 HRESULT hr;
1041
1042 TRACE("(%p, %p)\n", iface, pUnk);
1043
1044 if (!iface) return E_FAIL;
1045
1046 hr = IUnknown_QueryInterface(iface, &IID_IShellService, (void**)&service);
1047 if (hr == S_OK)
1048 {
1049 hr = IShellService_SetOwner(service, pUnk);
1050 IShellService_Release(service);
1051 }
1052
1053 return hr;
1054}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

Referenced by CTrayBandSite::AddContextMenus().

◆ IUnknown_TranslateAcceleratorIO()

HRESULT WINAPI IUnknown_TranslateAcceleratorIO ( IUnknown lpUnknown,
LPMSG  lpMsg 
)

Definition at line 3692 of file ordinal.c.

3693{
3694 IInputObject* lpInput = NULL;
3695 HRESULT hRet = E_INVALIDARG;
3696
3697 TRACE("(%p,%p)\n", lpUnknown, lpMsg);
3698 if (lpUnknown)
3699 {
3700 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
3701 (void**)&lpInput);
3702 if (SUCCEEDED(hRet) && lpInput)
3703 {
3704 hRet = IInputObject_TranslateAcceleratorIO(lpInput, lpMsg);
3705 IInputObject_Release(lpInput);
3706 }
3707 }
3708 return hRet;
3709}
#define IInputObject_TranslateAcceleratorIO(p, a)
Definition: shlobj.h:722

Referenced by CBaseBarSite::TranslateAcceleratorIO(), CInternetToolbar::TranslateAcceleratorIO(), CBaseBar::TranslateAcceleratorIO(), CMenuDeskBar::TranslateAcceleratorIO(), and CShellBrowser::v_MayTranslateAccelerator().

◆ IUnknown_TranslateAcceleratorOCS()

HRESULT WINAPI IUnknown_TranslateAcceleratorOCS ( IUnknown lpUnknown,
LPMSG  lpMsg,
DWORD  dwModifiers 
)

Definition at line 1493 of file ordinal.c.

1494{
1495 IOleControlSite* lpCSite = NULL;
1496 HRESULT hRet = E_INVALIDARG;
1497
1498 TRACE("(%p,%p,0x%08lx)\n", lpUnknown, lpMsg, dwModifiers);
1499 if (lpUnknown)
1500 {
1501 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleControlSite,
1502 (void**)&lpCSite);
1503 if (SUCCEEDED(hRet) && lpCSite)
1504 {
1505 hRet = IOleControlSite_TranslateAccelerator(lpCSite, lpMsg, dwModifiers);
1506 IOleControlSite_Release(lpCSite);
1507 }
1508 }
1509 return hRet;
1510}

◆ IUnknown_UIActivateIO()

HRESULT WINAPI IUnknown_UIActivateIO ( IUnknown unknown,
BOOL  activate,
LPMSG  msg 
)

Definition at line 1228 of file ordinal.c.

1229{
1230 IInputObject* object = NULL;
1231 HRESULT ret;
1232
1233 if (!unknown)
1234 return E_FAIL;
1235
1236 /* Get an IInputObject interface from the object */
1237 ret = IUnknown_QueryInterface(unknown, &IID_IInputObject, (LPVOID*) &object);
1238
1239 if (ret == S_OK)
1240 {
1241 ret = IInputObject_UIActivateIO(object, activate, msg);
1242 IInputObject_Release(object);
1243 }
1244
1245 return ret;
1246}
#define msg(x)
Definition: auth_time.c:54
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1605
#define IInputObject_UIActivateIO(p, a, b)
Definition: shlobj.h:720

Referenced by CTrayWindow::OnActivate(), CTrayWindow::OnSetFocus(), CMenuDeskBar::UIActivateIO(), CBaseBarSite::UIActivateIO(), CBaseBar::UIActivateIO(), and CMenuSite::UIActivateIO().

◆ MayExecForward()

HRESULT WINAPI MayExecForward ( IUnknown lpUnknown,
INT  iUnk,
REFGUID  pguidCmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)

Definition at line 1834 of file ordinal.c.

1837{
1838 FIXME("(%p,%d,%p,%ld,%ld,%p,%p) - stub!\n", lpUnknown, iUnk, pguidCmdGroup,
1839 nCmdID, nCmdexecopt, pvaIn, pvaOut);
1841}

Referenced by TEST_MayExecForwardMockup().

◆ MayQSForward()

HRESULT WINAPI MayQSForward ( IUnknown lpUnknown,
PVOID  lpReserved,
REFGUID  riidCmdGrp,
ULONG  cCmds,
OLECMD *  prgCmds,
OLECMDTEXT *  pCmdText 
)

Definition at line 1796 of file ordinal.c.

1799{
1800 FIXME("(%p,%p,%p,%ld,%p,%p) - stub\n",
1801 lpUnknown, lpReserved, riidCmdGrp, cCmds, prgCmds, pCmdText);
1802
1803 /* FIXME: Calls IsQSForward & IUnknown_QueryStatus */
1805}
_In_ DWORD _In_ int _In_ int _In_opt_ LPNLSVERSIONINFO _In_opt_ LPVOID lpReserved
Definition: winnls.h:1280

Referenced by TEST_MayQSForwardMockup().

◆ MLClearMLHInstance()

DWORD WINAPI MLClearMLHInstance ( DWORD  x)

Definition at line 3592 of file ordinal.c.

3593{
3594 FIXME("(0x%08lx)stub\n", x);
3595 return 0xabba1247;
3596}
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

◆ MLFreeLibrary()

BOOL WINAPI MLFreeLibrary ( HMODULE  hModule)

Definition at line 3555 of file ordinal.c.

3556{
3557 FIXME("(%p) semi-stub\n", hModule);
3558 return FreeLibrary(hModule);
3559}
HMODULE hModule
Definition: animate.c:44

Referenced by MLBuildResURLW().

◆ MLIsMLHInstance()

BOOL WINAPI MLIsMLHInstance ( HINSTANCE  hInst)

Definition at line 3573 of file ordinal.c.

3574{
3575 FIXME("(%p) stub\n", hInst);
3576 return FALSE;
3577}
HINSTANCE hInst
Definition: dxdiag.c:13

◆ MLLoadLibraryA()

HMODULE WINAPI MLLoadLibraryA ( LPCSTR  new_mod,
HMODULE  inst_hwnd,
DWORD  dwCrossCodePage 
)

Definition at line 3256 of file ordinal.c.

3257{
3258 /* FIXME: Native appears to do DPA_Create and a DPA_InsertPtr for
3259 * each call here.
3260 * FIXME: Native shows calls to:
3261 * SHRegGetUSValue for "Software\Microsoft\Internet Explorer\International"
3262 * CheckVersion
3263 * RegOpenKeyExA for "HKLM\Software\Microsoft\Internet Explorer"
3264 * RegQueryValueExA for "LPKInstalled"
3265 * RegCloseKey
3266 * RegOpenKeyExA for "HKCU\Software\Microsoft\Internet Explorer\International"
3267 * RegQueryValueExA for "ResourceLocale"
3268 * RegCloseKey
3269 * RegOpenKeyExA for "HKLM\Software\Microsoft\Active Setup\Installed Components\{guid}"
3270 * RegQueryValueExA for "Locale"
3271 * RegCloseKey
3272 * and then tests the Locale ("en" for me).
3273 * code below
3274 * after the code then a DPA_Create (first time) and DPA_InsertPtr are done.
3275 */
3276 CHAR mod_path[2*MAX_PATH];
3277 LPSTR ptr;
3278 DWORD len;
3279
3280 FIXME("(%s,%p,%ld) semi-stub!\n", debugstr_a(new_mod), inst_hwnd, dwCrossCodePage);
3281 len = GetModuleFileNameA(inst_hwnd, mod_path, sizeof(mod_path));
3282 if (!len || len >= sizeof(mod_path)) return NULL;
3283
3284 ptr = strrchr(mod_path, '\\');
3285 if (ptr) {
3286 strcpy(ptr+1, new_mod);
3287 TRACE("loading %s\n", debugstr_a(mod_path));
3288 return LoadLibraryA(mod_path);
3289 }
3290 return NULL;
3291}
#define MAX_PATH
Definition: compat.h:34
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
Definition: loader.c:539
_ACRTIMP char *__cdecl strrchr(const char *, int)
Definition: string.c:3303
GLenum GLsizei len
Definition: glext.h:6722
#define debugstr_a
Definition: kernel32.h:31
static PVOID ptr
Definition: dispmode.c:27
char CHAR
Definition: pedump.c:57
strcpy
Definition: string.h:131
char * LPSTR
Definition: typedefs.h:51

◆ MLLoadLibraryW()

HMODULE WINAPI MLLoadLibraryW ( LPCWSTR  new_mod,
HMODULE  inst_hwnd,
DWORD  dwCrossCodePage 
)

Definition at line 3298 of file ordinal.c.

3299{
3300 WCHAR mod_path[2*MAX_PATH];
3301 LPWSTR ptr;
3302 DWORD len;
3303
3304 FIXME("(%s,%p,%ld) semi-stub!\n", debugstr_w(new_mod), inst_hwnd, dwCrossCodePage);
3305 len = GetModuleFileNameW(inst_hwnd, mod_path, ARRAY_SIZE(mod_path));
3306 if (!len || len >= ARRAY_SIZE(mod_path)) return NULL;
3307
3308 ptr = wcsrchr(mod_path, '\\');
3309 if (ptr) {
3310 lstrcpyW(ptr+1, new_mod);
3311 TRACE("loading %s\n", debugstr_w(mod_path));
3312 return LoadLibraryW(mod_path);
3313 }
3314 return NULL;
3315}
#define wcsrchr
Definition: compat.h:16
#define lstrcpyW
Definition: compat.h:749
#define LoadLibraryW(x)
Definition: compat.h:747
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
Definition: loader.c:600
#define debugstr_w
Definition: kernel32.h:32
uint16_t * LPWSTR
Definition: typedefs.h:56

Referenced by MLBuildResURLW().

◆ MLSetMLHInstance()

DWORD WINAPI MLSetMLHInstance ( HINSTANCE  hInst,
HANDLE  hHeap 
)

Definition at line 3583 of file ordinal.c.

3584{
3585 FIXME("(%p,%p) stub\n", hInst, hHeap);
3586 return E_FAIL; /* This is what is used if shlwapi not loaded */
3587}

◆ PageSetupDlgWrapW()

BOOL WINAPI PageSetupDlgWrapW ( LPPAGESETUPDLGW  pagedlg)

Definition at line 3385 of file ordinal.c.

3386{
3387 return PageSetupDlgW(pagedlg);
3388}
BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW setupdlg)
Definition: printdlg.c:3938

◆ PathSkipLeadingSlashesA()

LPCSTR WINAPI PathSkipLeadingSlashesA ( LPCSTR  lpszSrc)

Definition at line 921 of file ordinal.c.

922{
923 if (lpszSrc && lpszSrc[0] == '/' && lpszSrc[1] == '/')
924 lpszSrc += 2;
925 return lpszSrc;
926}

◆ PlaySoundWrapW()

BOOL WINAPI PlaySoundWrapW ( LPCWSTR  pszSound,
HMODULE  hmod,
DWORD  fdwSound 
)

Definition at line 2901 of file ordinal.c.

2902{
2903 return PlaySoundW(pszSound, hmod, fdwSound);
2904}
static NTSTATUS *static PWSTR CURDIR *static HMODULE hmod
Definition: security.c:104
BOOL WINAPI PlaySoundW(LPCWSTR pszSoundW, HMODULE hmod, DWORD fdwSound)
Definition: playsound.c:709

◆ PrintDlgWrapW()

BOOL WINAPI PrintDlgWrapW ( LPPRINTDLGW  printdlg)

Definition at line 3395 of file ordinal.c.

3396{
3397 return PrintDlgW(printdlg);
3398}
BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
Definition: printdlg.c:2403

◆ RegisterDefaultAcceptHeaders()

HRESULT WINAPI RegisterDefaultAcceptHeaders ( LPBC  lpBC,
IUnknown lpUnknown 
)

Definition at line 346 of file ordinal.c.

347{
348 static const WCHAR szProperty[] = { '{','D','0','F','C','A','4','2','0',
349 '-','D','3','F','5','-','1','1','C','F', '-','B','2','1','1','-','0',
350 '0','A','A','0','0','4','A','E','8','3','7','}','\0' };
352 IEnumFORMATETC* pIEnumFormatEtc = NULL;
354 HRESULT hr;
355 IWebBrowserApp* pBrowser;
356
357 TRACE("(%p, %p)\n", lpBC, lpUnknown);
358
359 hr = iunknown_query_service(lpUnknown, &IID_IWebBrowserApp, &IID_IWebBrowserApp, (void**)&pBrowser);
360 if (FAILED(hr))
361 return hr;
362
363 V_VT(&var) = VT_EMPTY;
364
365 /* The property we get is the browsers clipboard enumerator */
366 property = SysAllocString(szProperty);
367 hr = IWebBrowserApp_GetProperty(pBrowser, property, &var);
369 if (FAILED(hr)) goto exit;
370
371 if (V_VT(&var) == VT_EMPTY)
372 {
373 /* Iterate through accepted documents and RegisterClipBoardFormatA() them */
374 char szKeyBuff[128], szValueBuff[128];
375 DWORD dwKeySize, dwValueSize, dwRet = 0, dwCount = 0, dwNumValues, dwType;
376 FORMATETC* formatList, *format;
377 HKEY hDocs;
378
379 TRACE("Registering formats and creating IEnumFORMATETC instance\n");
380
381 if (!RegOpenKeyA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\Current"
382 "Version\\Internet Settings\\Accepted Documents", &hDocs))
383 {
384 hr = E_FAIL;
385 goto exit;
386 }
387
388 /* Get count of values in key */
389 while (!dwRet)
390 {
391 dwKeySize = sizeof(szKeyBuff);
392 dwRet = RegEnumValueA(hDocs,dwCount,szKeyBuff,&dwKeySize,0,&dwType,0,0);
393 dwCount++;
394 }
395
396 dwNumValues = dwCount;
397
398 /* Note: dwCount = number of items + 1; The extra item is the end node */
399 format = formatList = malloc(dwCount * sizeof(FORMATETC));
400 if (!formatList)
401 {
402 RegCloseKey(hDocs);
404 goto exit;
405 }
406
407 if (dwNumValues > 1)
408 {
409 dwRet = 0;
410 dwCount = 0;
411
412 dwNumValues--;
413
414 /* Register clipboard formats for the values and populate format list */
415 while(!dwRet && dwCount < dwNumValues)
416 {
417 dwKeySize = sizeof(szKeyBuff);
418 dwValueSize = sizeof(szValueBuff);
419 dwRet = RegEnumValueA(hDocs, dwCount, szKeyBuff, &dwKeySize, 0, &dwType,
420 (PBYTE)szValueBuff, &dwValueSize);
421 if (!dwRet)
422 {
423 free(formatList);
424 RegCloseKey(hDocs);
425 hr = E_FAIL;
426 goto exit;
427 }
428
429 format->cfFormat = RegisterClipboardFormatA(szValueBuff);
430 format->ptd = NULL;
431 format->dwAspect = 1;
432 format->lindex = 4;
433 format->tymed = -1;
434
435 format++;
436 dwCount++;
437 }
438 }
439
440 RegCloseKey(hDocs);
441
442 /* Terminate the (maybe empty) list, last entry has a cfFormat of 0 */
443 format->cfFormat = 0;
444 format->ptd = NULL;
445 format->dwAspect = 1;
446 format->lindex = 4;
447 format->tymed = -1;
448
449 /* Create a clipboard enumerator */
450 hr = CreateFormatEnumerator(dwNumValues, formatList, &pIEnumFormatEtc);
451 free(formatList);
452 if (FAILED(hr)) goto exit;
453
454 /* Set our enumerator as the browsers property */
455 V_VT(&var) = VT_UNKNOWN;
456 V_UNKNOWN(&var) = (IUnknown*)pIEnumFormatEtc;
457
458 property = SysAllocString(szProperty);
459 hr = IWebBrowserApp_PutProperty(pBrowser, property, var);
461 if (FAILED(hr))
462 {
463 IEnumFORMATETC_Release(pIEnumFormatEtc);
464 goto exit;
465 }
466 }
467
468 if (V_VT(&var) == VT_UNKNOWN)
469 {
470 /* Our variant is holding the clipboard enumerator */
471 IUnknown* pIUnknown = V_UNKNOWN(&var);
472 IEnumFORMATETC* pClone = NULL;
473
474 TRACE("Retrieved IEnumFORMATETC property\n");
475
476 /* Get an IEnumFormatEtc interface from the variants value */
477 pIEnumFormatEtc = NULL;
478 hr = IUnknown_QueryInterface(pIUnknown, &IID_IEnumFORMATETC, (void**)&pIEnumFormatEtc);
479 if (hr == S_OK && pIEnumFormatEtc)
480 {
481 /* Clone and register the enumerator */
482 hr = IEnumFORMATETC_Clone(pIEnumFormatEtc, &pClone);
483 if (hr == S_OK && pClone)
484 {
485 RegisterFormatEnumerator(lpBC, pClone, 0);
486
487 IEnumFORMATETC_Release(pClone);
488 }
489
490 IUnknown_Release(pIUnknown);
491 }
492 IUnknown_Release(V_UNKNOWN(&var));
493 }
494
495exit:
496 IWebBrowserApp_Release(pBrowser);
497 return hr;
498}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3234
LONG WINAPI RegEnumValueA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpdwReserved, _Out_opt_ LPDWORD lpdwType, _Out_opt_ LPBYTE lpData, _Inout_opt_ LPDWORD lpcbData)
Definition: reg.c:2668
OLECHAR * BSTR
Definition: compat.h:2293
@ VT_UNKNOWN
Definition: compat.h:2308
@ VT_EMPTY
Definition: compat.h:2295
HRESULT WINAPI CreateFormatEnumerator(UINT cfmtetc, FORMATETC *rgfmtetc, IEnumFORMATETC **ppenumfmtetc)
Definition: format.c:177
HRESULT WINAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved)
Definition: format.c:194
const char * var
Definition: shader.c:5666
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
#define V_UNKNOWN(A)
Definition: oleauto.h:281
#define V_VT(A)
Definition: oleauto.h:211
const GUID IID_IEnumFORMATETC
BYTE * PBYTE
Definition: pedump.c:66
#define exit(n)
Definition: config.h:202
Definition: format.c:58
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
UINT WINAPI RegisterClipboardFormatA(_In_ LPCSTR)

◆ SHAboutInfoA()

BOOL WINAPI SHAboutInfoA ( LPSTR  lpszDest,
DWORD  dwDestLen 
)

Definition at line 590 of file ordinal.c.

591{
592 WCHAR buff[2084];
593
594 TRACE("(%p,%ld)\n", lpszDest, dwDestLen);
595
596 if (lpszDest && SHAboutInfoW(buff, dwDestLen))
597 {
598 WideCharToMultiByte(CP_ACP, 0, buff, -1, lpszDest, dwDestLen, NULL, NULL);
599 return TRUE;
600 }
601 return FALSE;
602}
WCHAR lpszDest[260]
#define WideCharToMultiByte
Definition: compat.h:111
BOOL WINAPI SHAboutInfoW(LPWSTR, DWORD)
Definition: ordinal.c:609
static const char *static const char const char DWORD void DWORD *static const char const char DWORD void DWORD *static const char DWORD DWORD void * buff
Definition: shcore.c:41

◆ SHAboutInfoW()

BOOL WINAPI SHAboutInfoW ( LPWSTR  lpszDest,
DWORD  dwDestLen 
)

Definition at line 609 of file ordinal.c.

610{
611 static const WCHAR szIEKey[] = { 'S','O','F','T','W','A','R','E','\\',
612 'M','i','c','r','o','s','o','f','t','\\','I','n','t','e','r','n','e','t',
613 ' ','E','x','p','l','o','r','e','r','\0' };
614 static const WCHAR szWinNtKey[] = { 'S','O','F','T','W','A','R','E','\\',
615 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s',' ',
616 'N','T','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0' };
617 static const WCHAR szWinKey[] = { 'S','O','F','T','W','A','R','E','\\',
618 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
619 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0' };
620 static const WCHAR szRegKey[] = { 'S','O','F','T','W','A','R','E','\\',
621 'M','i','c','r','o','s','o','f','t','\\','I','n','t','e','r','n','e','t',
622 ' ','E','x','p','l','o','r','e','r','\\',
623 'R','e','g','i','s','t','r','a','t','i','o','n','\0' };
624 static const WCHAR szVersion[] = { 'V','e','r','s','i','o','n','\0' };
625 static const WCHAR szCustomized[] = { 'C','u','s','t','o','m','i','z','e','d',
626 'V','e','r','s','i','o','n','\0' };
627 static const WCHAR szOwner[] = { 'R','e','g','i','s','t','e','r','e','d',
628 'O','w','n','e','r','\0' };
629 static const WCHAR szOrg[] = { 'R','e','g','i','s','t','e','r','e','d',
630 'O','r','g','a','n','i','z','a','t','i','o','n','\0' };
631 static const WCHAR szProduct[] = { 'P','r','o','d','u','c','t','I','d','\0' };
632 static const WCHAR szUpdate[] = { 'I','E','A','K',
633 'U','p','d','a','t','e','U','r','l','\0' };
634 static const WCHAR szHelp[] = { 'I','E','A','K',
635 'H','e','l','p','S','t','r','i','n','g','\0' };
636 WCHAR buff[2084];
637 HKEY hReg;
638 DWORD dwType, dwLen;
639
640 TRACE("(%p,%ld)\n", lpszDest, dwDestLen);
641
642 if (!lpszDest)
643 return FALSE;
644
645 *lpszDest = '\0';
646
647 /* Try the NT key first, followed by 95/98 key */
648 if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, szWinNtKey, 0, KEY_READ, &hReg) &&
649 RegOpenKeyExW(HKEY_LOCAL_MACHINE, szWinKey, 0, KEY_READ, &hReg))
650 return FALSE;
651
652 /* OS Version */
653 buff[0] = '\0';
654 dwLen = 30;
655 if (!SHGetValueW(HKEY_LOCAL_MACHINE, szIEKey, szVersion, &dwType, buff, &dwLen))
656 {
657 DWORD dwStrLen = lstrlenW(buff);
658 dwLen = 30 - dwStrLen;
660 szCustomized, &dwType, buff+dwStrLen, &dwLen);
661 }
662 StrCatBuffW(lpszDest, buff, dwDestLen);
663
664 /* ~Registered Owner */
665 buff[0] = '~';
666 dwLen = 256;
667 if (SHGetValueW(hReg, szOwner, 0, &dwType, buff+1, &dwLen))
668 buff[1] = '\0';
669 StrCatBuffW(lpszDest, buff, dwDestLen);
670
671 /* ~Registered Organization */
672 dwLen = 256;
673 if (SHGetValueW(hReg, szOrg, 0, &dwType, buff+1, &dwLen))
674 buff[1] = '\0';
675 StrCatBuffW(lpszDest, buff, dwDestLen);
676
677 /* FIXME: Not sure where this number comes from */
678 buff[0] = '~';
679 buff[1] = '0';
680 buff[2] = '\0';
681 StrCatBuffW(lpszDest, buff, dwDestLen);
682
683 /* ~Product Id */
684 dwLen = 256;
685 if (SHGetValueW(HKEY_LOCAL_MACHINE, szRegKey, szProduct, &dwType, buff+1, &dwLen))
686 buff[1] = '\0';
687 StrCatBuffW(lpszDest, buff, dwDestLen);
688
689 /* ~IE Update Url */
690 dwLen = 2048;
691 if(SHGetValueW(HKEY_LOCAL_MACHINE, szWinKey, szUpdate, &dwType, buff+1, &dwLen))
692 buff[1] = '\0';
693 StrCatBuffW(lpszDest, buff, dwDestLen);
694
695 /* ~IE Help String */
696 dwLen = 256;
697 if(SHGetValueW(hReg, szHelp, 0, &dwType, buff+1, &dwLen))
698 buff[1] = '\0';
699 StrCatBuffW(lpszDest, buff, dwDestLen);
700
701 RegCloseKey(hReg);
702 return TRUE;
703}
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
#define lstrlenW
Definition: compat.h:750
WCHAR *WINAPI StrCatBuffW(WCHAR *str, const WCHAR *cat, INT max_len)
Definition: string.c:1434
DWORD WINAPI SHGetValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len)
Definition: main.c:2222
static LPCWSTR szVersion
Definition: asmcache.c:748
#define KEY_READ
Definition: nt_native.h:1026

Referenced by SHAboutInfoA().

◆ SHAllocShared()

HANDLE WINAPI SHAllocShared ( LPCVOID  lpvData,
DWORD  dwSize,
DWORD  dwProcId 
)

Definition at line 167 of file ordinal.c.

168{
169 HANDLE hMap;
170 LPVOID pMapped;
171 HANDLE hRet = NULL;
172
173 TRACE("(%p,%ld,%ld)\n", lpvData, dwSize, dwProcId);
174
175 /* Create file mapping of the correct length */
177 dwSize + sizeof(dwSize), NULL);
178 if (!hMap)
179 return hRet;
180
181 /* Get a view in our process address space */
182 pMapped = MapViewOfFile(hMap, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
183
184 if (pMapped)
185 {
186 /* Write size of data, followed by the data, to the view */
187 *((DWORD*)pMapped) = dwSize;
188 if (lpvData)
189 memcpy((char *) pMapped + sizeof(dwSize), lpvData, dwSize);
190
191 /* Release view. All further views mapped will be opaque */
192 UnmapViewOfFile(pMapped);
193 hRet = SHMapHandle(hMap, GetCurrentProcessId(), dwProcId,
195 }
196
197 CloseHandle(hMap);
198 return hRet;
199}
#define UnmapViewOfFile
Definition: compat.h:746
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define FILE_MAP_READ
Definition: compat.h:776
#define MapViewOfFile
Definition: compat.h:745
HANDLE WINAPI SHMapHandle(HANDLE hShared, DWORD dwSrcProcId, DWORD dwDstProcId, DWORD dwAccess, DWORD dwOptions)
Definition: ordinal.c:96
HANDLE NTAPI CreateFileMappingA(IN HANDLE hFile, IN LPSECURITY_ATTRIBUTES lpFileMappingAttributes, IN DWORD flProtect, IN DWORD dwMaximumSizeHigh, IN DWORD dwMaximumSizeLow, IN LPCSTR lpName)
Definition: filemap.c:23
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
#define FILE_MAP_WRITE
Definition: winbase.h:157
#define FILE_MAP_ALL_ACCESS
Definition: winbase.h:159
DWORD WINAPI GetCurrentProcessId(void)
Definition: proc.c:1155
#define DUPLICATE_SAME_ACCESS

Referenced by AppBar_CopyIn(), CreateNotificationParam(), CreateRegistrationParam(), init_pointers(), MakeSharedPacket(), and SHELL_ArgifyW().

◆ SHBrowseForFolderWrapW()

LPITEMIDLIST WINAPI SHBrowseForFolderWrapW ( LPBROWSEINFOW  lpBi)

Definition at line 3006 of file ordinal.c.

3007{
3008 return SHBrowseForFolderW(lpBi);
3009}
EXTERN_C LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi)
Definition: brfolder.cpp:1460

◆ SHChangeNotifyWrap()

void WINAPI SHChangeNotifyWrap ( LONG  wEventId,
UINT  uFlags,
LPCVOID  dwItem1,
LPCVOID  dwItem2 
)

Definition at line 4470 of file ordinal.c.

4471{
4472 SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2);
4473}
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
UINT uFlags
Definition: api.c:59

◆ SHCheckMenuItem()

DWORD WINAPI SHCheckMenuItem ( HMENU  hMenu,
UINT  uID,
BOOL  bCheck 
)

Definition at line 1395 of file ordinal.c.

1396{
1397 TRACE("%p, %u, %d\n", hMenu, uID, bCheck);
1398 return CheckMenuItem(hMenu, uID, bCheck ? MF_CHECKED : MF_UNCHECKED);
1399}
_In_ UINT uID
Definition: shlwapi.h:156
#define MF_CHECKED
Definition: winuser.h:132
#define MF_UNCHECKED
Definition: winuser.h:204
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)

Referenced by CInternetToolbar::OnContextMenu(), and CShellBrowser::UpdateViewMenu().

◆ SHCoCreateInstanceAC()

HRESULT WINAPI SHCoCreateInstanceAC ( REFCLSID  rclsid,
LPUNKNOWN  pUnkOuter,
DWORD  dwClsContext,
REFIID  iid,
LPVOID ppv 
)

Definition at line 4002 of file ordinal.c.

4004{
4005 return CoCreateInstance(rclsid, pUnkOuter, dwClsContext, iid, ppv);
4006}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ SHCreatePropertyBagOnRegKey()

HRESULT WINAPI SHCreatePropertyBagOnRegKey ( HKEY  hKey,
LPCWSTR  subkey,
DWORD  grfMode,
REFIID  riid,
void **  ppv 
)

Definition at line 4641 of file ordinal.c.

4643{
4644 FIXME("%p %s %ld %s %p STUB\n", hKey, debugstr_w(subkey), grfMode,
4646
4647 return E_NOTIMPL;
4648}
#define E_NOTIMPL
Definition: ddrawi.h:99
FxAutoRegKey hKey

Referenced by CDefaultContextMenu::InvokeRegVerb(), and SHPropertyBag_OnRegKey().

◆ SHCreateShellPalette()

HPALETTE WINAPI SHCreateShellPalette ( HDC  hdc)

Definition at line 3871 of file ordinal.c.

3872{
3873 FIXME("stub\n");
3874 return CreateHalftonePalette(hdc);
3875}
HDC hdc
Definition: main.c:9
HPALETTE WINAPI CreateHalftonePalette(_In_opt_ HDC)

◆ SHCreateWorkerWindowA()

HWND WINAPI SHCreateWorkerWindowA ( WNDPROC  wndProc,
HWND  hWndParent,
DWORD  dwExStyle,
DWORD  dwStyle,
HMENU  hMenu,
LONG_PTR  wnd_extra 
)

Definition at line 2292 of file ordinal.c.

2294{
2295 static const char szClass[] = "WorkerA";
2296 WNDCLASSA wc;
2297 HWND hWnd;
2298
2299 TRACE("(%p, %p, 0x%08lx, 0x%08lx, %p, 0x%08Ix)\n",
2300 wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
2301
2302 /* Create Window class */
2303 wc.style = 0;
2305 wc.cbClsExtra = 0;
2306 wc.cbWndExtra = sizeof(LONG_PTR);
2308 wc.hIcon = NULL;
2310 wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
2311 wc.lpszMenuName = NULL;
2312 wc.lpszClassName = szClass;
2313
2314 SHRegisterClassA(&wc);
2315
2316 hWnd = CreateWindowExA(dwExStyle, szClass, 0, dwStyle, 0, 0, 0, 0,
2317 hWndParent, hMenu, shlwapi_hInstance, 0);
2318 if (hWnd)
2319 {
2320 SetWindowLongPtrW(hWnd, 0, wnd_extra);
2322 }
2323
2324 return hWnd;
2325}
HWND hWnd
Definition: settings.c:17
HINSTANCE shlwapi_hInstance
Definition: shlwapi_main.c:33
DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass)
Definition: ordinal.c:1412
static LRESULT WINAPI wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: imm32.c:185
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
HBRUSH hbrBackground
Definition: winuser.h:3278
HICON hIcon
Definition: winuser.h:3276
HINSTANCE hInstance
Definition: winuser.h:3275
HCURSOR hCursor
Definition: winuser.h:3277
int cbWndExtra
Definition: winuser.h:3274
UINT style
Definition: winuser.h:3271
LPCSTR lpszMenuName
Definition: winuser.h:3279
LPCSTR lpszClassName
Definition: winuser.h:3280
WNDPROC lpfnWndProc
Definition: winuser.h:3272
int cbClsExtra
Definition: winuser.h:3273
#define LONG_PTR
Definition: treelist.c:79
#define GWLP_WNDPROC
Definition: treelist.c:66
#define SetWindowLongPtrA
Definition: winuser.h:5511
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define IDC_ARROW
Definition: winuser.h:695
#define SetWindowLongPtrW
Definition: winuser.h:5512
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2459
#define COLOR_BTNFACE
Definition: winuser.h:939

Referenced by init_pointers(), and SHCreateWorkerWindowW().

◆ SHCreateWorkerWindowW()

HWND WINAPI SHCreateWorkerWindowW ( WNDPROC  wndProc,
HWND  hWndParent,
DWORD  dwExStyle,
DWORD  dwStyle,
HMENU  hMenu,
LONG_PTR  wnd_extra 
)

Definition at line 2552 of file ordinal.c.

2554{
2555 static const WCHAR szClass[] = { 'W', 'o', 'r', 'k', 'e', 'r', 'W', 0 };
2556 WNDCLASSW wc;
2557 HWND hWnd;
2558
2559 TRACE("(%p, %p, 0x%08lx, 0x%08lx, %p, 0x%08Ix)\n",
2560 wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
2561
2562 /* If our OS is natively ANSI, use the ANSI version */
2563 if (GetVersion() & 0x80000000) /* not NT */
2564 {
2565 TRACE("fallback to ANSI, ver 0x%08lx\n", GetVersion());
2566 return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
2567 }
2568
2569 /* Create Window class */
2570 wc.style = 0;
2572 wc.cbClsExtra = 0;
2573 wc.cbWndExtra = sizeof(LONG_PTR);
2575 wc.hIcon = NULL;
2577 wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
2578 wc.lpszMenuName = NULL;
2579 wc.lpszClassName = szClass;
2580
2581 SHRegisterClassW(&wc);
2582
2583 hWnd = CreateWindowExW(dwExStyle, szClass, 0, dwStyle, 0, 0, 0, 0,
2584 hWndParent, hMenu, shlwapi_hInstance, 0);
2585 if (hWnd)
2586 {
2587 SetWindowLongPtrW(hWnd, 0, wnd_extra);
2589 }
2590
2591 return hWnd;
2592}
DWORD WINAPI GetVersion(void)
Definition: version.c:1458
DWORD WINAPI SHRegisterClassW(WNDCLASSW *lpWndClass)
Definition: ordinal.c:2195
HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
Definition: ordinal.c:2292
LPCWSTR lpszClassName
Definition: winuser.h:3293
LPCWSTR lpszMenuName
Definition: winuser.h:3292
HBRUSH hbrBackground
Definition: winuser.h:3291
HICON hIcon
Definition: winuser.h:3289
HINSTANCE hInstance
Definition: winuser.h:3288
int cbClsExtra
Definition: winuser.h:3286
UINT style
Definition: winuser.h:3284
WNDPROC lpfnWndProc
Definition: winuser.h:3285
int cbWndExtra
Definition: winuser.h:3287
HCURSOR hCursor
Definition: winuser.h:3290
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2474
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)

Referenced by DoShellContextMenu(), CToolbarProxy::Initialize(), CBrandBand::SetSite(), CInternetToolbar::SetSite(), SHCreateDefaultWorkerWindow(), and CUserNotification::Show().

◆ SHDefExtractIconWrapW()

UINT WINAPI SHDefExtractIconWrapW ( LPCWSTR  pszIconFile,
int  iIndex,
UINT  uFlags,
HICON phiconLarge,
HICON phiconSmall,
UINT  nIconSize 
)

Definition at line 3148 of file ordinal.c.

3150{
3151 return SHDefExtractIconW(pszIconFile, iIndex, uFlags, phiconLarge, phiconSmall, nIconSize);
3152}
HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize)
Definition: iconcache.cpp:1015

◆ SHDefWindowProc()

LRESULT CALLBACK SHDefWindowProc ( HWND  hWnd,
UINT  uMessage,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 2268 of file ordinal.c.

2269{
2270 if (IsWindowUnicode(hWnd))
2271 return DefWindowProcW(hWnd, uMessage, wParam, lParam);
2272 return DefWindowProcA(hWnd, uMessage, wParam, lParam);
2273}
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
BOOL WINAPI IsWindowUnicode(_In_ HWND)

◆ ShellExecuteExWrapW()

BOOL WINAPI ShellExecuteExWrapW ( LPSHELLEXECUTEINFOW  lpExecInfo)

Definition at line 3026 of file ordinal.c.

3027{
3028 return ShellExecuteExW(lpExecInfo);
3029}
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2723

◆ ShellMessageBoxWrapW()

INT WINAPIV ShellMessageBoxWrapW ( HINSTANCE  hInstance,
HWND  hWnd,
LPCWSTR  lpText,
LPCWSTR  lpCaption,
UINT  uType,
  ... 
)

Definition at line 4405 of file ordinal.c.

4407{
4408 WCHAR *szText = NULL, szTitle[100];
4409 LPCWSTR pszText, pszTitle = szTitle;
4410 LPWSTR pszTemp;
4411 va_list args;
4412 int ret;
4413
4414 va_start(args, uType);
4415
4416 TRACE("(%p,%p,%p,%p,%08x)\n", hInstance, hWnd, lpText, lpCaption, uType);
4417
4418 if (IS_INTRESOURCE(lpCaption))
4420 else
4421 pszTitle = lpCaption;
4422
4423 if (IS_INTRESOURCE(lpText))
4424 {
4425 const WCHAR *ptr;
4426 UINT len = LoadStringW(hInstance, LOWORD(lpText), (LPWSTR)&ptr, 0);
4427
4428 if (len)
4429 {
4430 szText = malloc((len + 1) * sizeof(WCHAR));
4431 if (szText) LoadStringW(hInstance, LOWORD(lpText), szText, len + 1);
4432 }
4433 pszText = szText;
4434 if (!pszText) {
4435 WARN("Failed to load id %d\n", LOWORD(lpText));
4436 va_end(args);
4437 return 0;
4438 }
4439 }
4440 else
4441 pszText = lpText;
4442
4444 pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args);
4445
4446 va_end(args);
4447
4448#ifdef __REACTOS__
4449 uType |= MB_SETFOREGROUND;
4450#endif
4451 ret = MessageBoxW(hWnd, pszTemp, pszTitle, uType);
4452
4453 free(szText);
4454 LocalFree(pszTemp);
4455 return ret;
4456}
#define WARN(fmt,...)
Definition: precomp.h:61
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
#define IS_INTRESOURCE(x)
Definition: loader.c:613
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define LoadStringW
Definition: utils.h:64
#define args
Definition: format.c:66
Definition: match.c:390
const uint16_t * LPCWSTR
Definition: typedefs.h:57
#define FORMAT_MESSAGE_FROM_STRING
Definition: winbase.h:398
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:396
#define MB_SETFOREGROUND
Definition: winuser.h:825
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)

◆ SHEnableMenuItem()

UINT WINAPI SHEnableMenuItem ( HMENU  hMenu,
UINT  wItemID,
BOOL  bEnable 
)

Definition at line 1376 of file ordinal.c.

1377{
1378 TRACE("%p, %u, %d\n", hMenu, wItemID, bEnable);
1379 return EnableMenuItem(hMenu, wItemID, bEnable ? MF_ENABLED : MF_GRAYED);
1380}
_In_ BOOL bEnable
Definition: winddi.h:3426
#define MF_ENABLED
Definition: winuser.h:128
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_GRAYED
Definition: winuser.h:129

Referenced by CInternetToolbar::OnContextMenu(), CShellBrowser::OnInitMenuPopup(), CShellBrowser::UpdateGotoMenu(), and CShellBrowser::UpdateViewMenu().

◆ SHFileOperationWrapW()

INT WINAPI SHFileOperationWrapW ( LPSHFILEOPSTRUCTW  lpFileOp)

Definition at line 3036 of file ordinal.c.

3037{
3038 return SHFileOperationW(lpFileOp);
3039}
int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
Definition: shlfileop.cpp:2200

◆ SHFillRectClr()

DWORD WINAPI SHFillRectClr ( HDC  hDC,
LPCRECT  pRect,
COLORREF  cRef 
)

Definition at line 1728 of file ordinal.c.

1729{
1730 COLORREF cOldColor = SetBkColor(hDC, cRef);
1731 ExtTextOutA(hDC, 0, 0, ETO_OPAQUE, pRect, 0, 0, 0);
1732 SetBkColor(hDC, cOldColor);
1733 return 0;
1734}
static HDC hDC
Definition: 3dtext.c:33
DWORD COLORREF
Definition: windef.h:100
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
BOOL WINAPI ExtTextOutA(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ UINT options, _In_opt_ const RECT *lprect, _In_reads_opt_(c) LPCSTR lpString, _In_ UINT c, _In_reads_opt_(c) const INT *lpDx)
#define ETO_OPAQUE
Definition: wingdi.h:647

Referenced by CDefView::OnPrintClient().

◆ SHFlushSFCacheWrap()

BOOL WINAPI SHFlushSFCacheWrap ( void  )

Definition at line 3564 of file ordinal.c.

3564 {
3565 FIXME(": stub\n");
3566 return TRUE;
3567}

◆ SHFormatDateTimeA()

INT WINAPI SHFormatDateTimeA ( const FILETIME UNALIGNED fileTime,
DWORD flags,
LPSTR  buf,
UINT  size 
)

Definition at line 4732 of file ordinal.c.

4734{
4735 WCHAR *bufW;
4736 INT retval;
4737
4738 if (!buf || !size)
4739 return 0;
4740
4741 bufW = malloc(sizeof(WCHAR) * size);
4742 retval = SHFormatDateTimeW(fileTime, flags, bufW, size);
4743
4744 if (retval != 0)
4745 retval = WideCharToMultiByte(CP_ACP, 0, bufW, -1, buf, size, NULL, NULL);
4746
4747 free(bufW);
4748 return retval;
4749}
INT WINAPI SHFormatDateTimeW(const FILETIME UNALIGNED *fileTime, DWORD *flags, LPWSTR buf, UINT size)
Definition: ordinal.c:4667
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161
int retval
Definition: wcstombs.cpp:91

Referenced by CCabFolder::GetItemDetails(), and init_pointers().

◆ SHFormatDateTimeW()

INT WINAPI SHFormatDateTimeW ( const FILETIME UNALIGNED fileTime,
DWORD flags,
LPWSTR  buf,
UINT  size 
)

Definition at line 4667 of file ordinal.c.

4669{
4670#define SHFORMATDT_UNSUPPORTED_FLAGS (FDTF_RELATIVE | FDTF_LTRDATE | FDTF_RTLDATE | FDTF_NOAUTOREADINGORDER)
4671 DWORD fmt_flags = flags ? *flags : FDTF_DEFAULT;
4672 SYSTEMTIME st;
4673 FILETIME ft;
4674 INT ret = 0;
4675
4676 TRACE("%p %p %p %u\n", fileTime, flags, buf, size);
4677
4678 if (!buf || !size)
4679 return 0;
4680
4681 if (fmt_flags & SHFORMATDT_UNSUPPORTED_FLAGS)
4682 FIXME("ignoring some flags - 0x%08lx\n", fmt_flags & SHFORMATDT_UNSUPPORTED_FLAGS);
4683
4684 FileTimeToLocalFileTime(fileTime, &ft);
4685 FileTimeToSystemTime(&ft, &st);
4686
4687 /* first of all date */
4688 if (fmt_flags & (FDTF_LONGDATE | FDTF_SHORTDATE))
4689 {
4690 static const WCHAR sep1[] = {',',' ',0};
4691 static const WCHAR sep2[] = {' ',0};
4692
4695 if (ret >= size) return ret;
4696
4697 /* add separator */
4698 if (ret < size && (fmt_flags & (FDTF_LONGTIME | FDTF_SHORTTIME)))
4699 {
4700 if ((fmt_flags & FDTF_LONGDATE) && (ret < size + 2))
4701 {
4702 lstrcatW(&buf[ret-1], sep1);
4703 ret += 2;
4704 }
4705 else
4706 {
4707 lstrcatW(&buf[ret-1], sep2);
4708 ret++;
4709 }
4710 }
4711 }
4712 /* time part */
4713 if (fmt_flags & (FDTF_LONGTIME | FDTF_SHORTTIME))
4714 {
4715 DWORD time = fmt_flags & FDTF_LONGTIME ? 0 : TIME_NOSECONDS;
4716
4717 if (ret) ret--;
4719 }
4720
4721 return ret;
4722
4723#undef SHFORMATDT_UNSUPPORTED_FLAGS
4724}
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:183
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
Definition: time.c:216
#define SHFORMATDT_UNSUPPORTED_FLAGS
INT WINAPI GetTimeFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpTimeStr, INT cchOut)
Definition: lcformat.c:1101
INT WINAPI GetDateFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpDateStr, INT cchOut)
Definition: lcformat.c:1001
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
__u16 date
Definition: mkdosfs.c:8
__u16 time
Definition: mkdosfs.c:8
#define LOCALE_USER_DEFAULT
#define FDTF_SHORTTIME
Definition: shlwapi.h:97
#define FDTF_LONGDATE
Definition: shlwapi.h:100
#define FDTF_DEFAULT
Definition: shlwapi.h:99
#define FDTF_LONGTIME
Definition: shlwapi.h:101
#define FDTF_SHORTDATE
Definition: shlwapi.h:98
#define TIME_NOSECONDS
Definition: winnls.h:306
#define DATE_LONGDATE
Definition: winnls.h:217
#define DATE_SHORTDATE
Definition: winnls.h:216

Referenced by init_pointers(), and SHFormatDateTimeA().

◆ SHFreeShared()

BOOL WINAPI SHFreeShared ( HANDLE  hShared,
DWORD  dwProcId 
)

Definition at line 313 of file ordinal.c.

314{
315 HANDLE hClose;
316
317 TRACE("(%p %ld)\n", hShared, dwProcId);
318
319 if (!hShared)
320 return TRUE;
321
322 /* Get a copy of the handle for our process, closing the source handle */
323 hClose = SHMapHandle(hShared, dwProcId, GetCurrentProcessId(),
325 /* Close local copy */
326 return CloseHandle(hClose);
327}
#define DUPLICATE_CLOSE_SOURCE

Referenced by _ILReadFromSharedMemory(), AppBar_CopyIn(), AppBar_CopyOut(), CreateNotificationParam(), CreateNotificationParamAndSend(), CreateRegistrationParam(), init_pointers(), MakeSharedPacket(), CChangeNotifyServer::OnDeliverNotification(), ParseSharedPacket(), and SHChangeNotifyRegister().

◆ SHGetAppCompatFlags()

DWORD WINAPI SHGetAppCompatFlags ( DWORD  dwUnknown)

Definition at line 3991 of file ordinal.c.

3992{
3993 FIXME("(0x%08lx) stub\n", dwUnknown);
3994 return 0;
3995}

◆ SHGetCurColorRes()

DWORD WINAPI SHGetCurColorRes ( void  )

Definition at line 1618 of file ordinal.c.

1619{
1620 HDC hdc;
1621 DWORD ret;
1622
1623 TRACE("()\n");
1624
1625 hdc = GetDC(0);
1627 ReleaseDC(0, hdc);
1628 return ret;
1629}
static HDC
Definition: imagelist.c:88
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define PLANES
Definition: wingdi.h:721
#define BITSPIXEL
Definition: wingdi.h:720
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HDC WINAPI GetDC(_In_opt_ HWND)

Referenced by CBrandBand::SelectImage(), and SIC_GetIconBPP().

◆ SHGetFileInfoWrapW()

DWORD WINAPI SHGetFileInfoWrapW ( LPCWSTR  path,
DWORD  dwFileAttributes,
SHFILEINFOW psfi,
UINT  sizeofpsfi,
UINT  flags 
)

Definition at line 2985 of file ordinal.c.

2987{
2988 return SHGetFileInfoW(path, dwFileAttributes, psfi, sizeofpsfi, flags);
2989}
DWORD dwFileAttributes
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
Definition: shell32_main.c:430

◆ SHGetIniStringW()

DWORD WINAPI SHGetIniStringW ( LPCWSTR  appName,
LPCWSTR  keyName,
LPWSTR  out,
DWORD  outLen,
LPCWSTR  filename 
)

Definition at line 2923 of file ordinal.c.

2925{
2926 INT ret;
2927 WCHAR *buf;
2928
2929 TRACE("(%s,%s,%p,%08lx,%s)\n", debugstr_w(appName), debugstr_w(keyName),
2930 out, outLen, debugstr_w(filename));
2931
2932 if(outLen == 0)
2933 return 0;
2934
2935 buf = malloc(outLen * sizeof(WCHAR));
2936 if(!buf){
2937 *out = 0;
2938 return 0;
2939 }
2940
2941 ret = GetPrivateProfileStringW(appName, keyName, NULL, buf, outLen, filename);
2942 if(ret)
2943 lstrcpyW(out, buf);
2944 else
2945 *out = 0;
2946
2947 free(buf);
2948
2949 return lstrlenW(out);
2950}
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
Definition: profile.c:1142
const char * appName(const char *argv0)
Definition: loadlib.c:89
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

Referenced by init_pointers(), and SHPropertyBag_SHSetIniStringW().

◆ SHGetInverseCMAP()

HRESULT WINAPI SHGetInverseCMAP ( LPDWORD  dest,
DWORD  dwSize 
)

Definition at line 3900 of file ordinal.c.

3901{
3902 if (dwSize == 4) {
3903 FIXME(" - returning bogus address for SHGetInverseCMAP\n");
3904 *dest = (DWORD)0xabba1249;
3905 return 0;
3906 }
3907 FIXME("(%p, %#lx) stub\n", dest, dwSize);
3908 return 0;
3909}
static char * dest
Definition: rtl.c:149
#define DWORD
Definition: nt_native.h:44

◆ SHGetMachineInfo()

DWORD WINAPI SHGetMachineInfo ( DWORD  dwFlags)

Definition at line 3502 of file ordinal.c.

3503{
3504 HW_PROFILE_INFOA hwInfo;
3505
3506 TRACE("(0x%08lx)\n", dwFlags);
3507
3508 GetCurrentHwProfileA(&hwInfo);
3509 switch (hwInfo.dwDockInfo & (DOCKINFO_DOCKED|DOCKINFO_UNDOCKED))
3510 {
3511 case DOCKINFO_DOCKED:
3512 case DOCKINFO_UNDOCKED:
3514 default:
3515 return 0;
3516 }
3517}
BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA lpHwProfileInfo)
Definition: hwprofiles.c:28
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define DOCKINFO_DOCKED
Definition: winbase.h:272
#define DOCKINFO_UNDOCKED
Definition: winbase.h:271

◆ SHGetMenuFromID()

HMENU WINAPI SHGetMenuFromID ( HMENU  hMenu,
UINT  uID 
)

Definition at line 1592 of file ordinal.c.

1593{
1595
1596 TRACE("(%p,%u)\n", hMenu, uID);
1597
1598 mi.cbSize = sizeof(mi);
1599 mi.fMask = MIIM_SUBMENU;
1600
1601 if (!GetMenuItemInfoW(hMenu, uID, FALSE, &mi))
1602 return NULL;
1603
1604 return mi.hSubMenu;
1605}
#define MIIM_SUBMENU
Definition: winuser.h:734

Referenced by _SHMergePopupMenus(), CShellBrowser::BuildExplorerBandMenu(), CShellBrowser::OnInitMenuPopup(), and CShellBrowser::UpdateViewMenu().

◆ SHGetNewLinkInfoWrapW()

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

Definition at line 3137 of file ordinal.c.

3139{
3140 return SHGetNewLinkInfoW(pszLinkTo, pszDir, pszName, pfMustCopy, uFlags);
3141}
_In_ LPCSTR pszDir
Definition: shellapi.h:601
_In_ LPCSTR _Out_ BOOL * pfMustCopy
Definition: shellapi.h:603
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
Definition: shellord.c:2641

◆ SHGetObjectCompatFlags()

DWORD WINAPI SHGetObjectCompatFlags ( IUnknown pUnk,
const CLSID clsid 
)

Definition at line 5727 of file ordinal.c.

5728{
5729 static const WCHAR compatpathW[] =
5730 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
5731 'W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
5732 'S','h','e','l','l','C','o','m','p','a','t','i','b','i','l','i','t','y','\\',
5733 'O','b','j','e','c','t','s','\\','%','s',0};
5734 WCHAR strW[ARRAY_SIZE(compatpathW) + 38 /* { CLSID } */];
5736 OLECHAR *clsid_str;
5737 HKEY key;
5738 INT i;
5739
5740 TRACE("%p %s\n", pUnk, debugstr_guid(clsid));
5741
5742 if (!pUnk && !clsid) return 0;
5743
5744 if (pUnk && !clsid)
5745 {
5746 FIXME("iface not handled\n");
5747 return 0;
5748 }
5749
5750 StringFromCLSID(clsid, &clsid_str);
5751 swprintf(strW, ARRAY_SIZE(strW), compatpathW, clsid_str);
5752 CoTaskMemFree(clsid_str);
5753
5755 if (ret != ERROR_SUCCESS) return 0;
5756
5757 /* now collect flag values */
5758 ret = 0;
5759 for (i = 0; RegEnumValueW(key, i, strW, &length, NULL, NULL, NULL, NULL) == ERROR_SUCCESS; i++)
5760 {
5761 INT left, right, res, x;
5762
5763 /* search in table */
5764 left = 0;
5766
5767 while (right >= left) {
5768 x = (left + right) / 2;
5770 if (res == 0)
5771 {
5772 ret |= objcompat_table[x].value;
5773 break;
5774 }
5775 else if (res < 0)
5776 right = x - 1;
5777 else
5778 left = x + 1;
5779 }
5780
5782 }
5783
5784 return ret;
5785}
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3268
LONG WINAPI RegEnumValueW(_In_ HKEY hKey, _In_ DWORD index, _Out_ LPWSTR value, _Inout_ PDWORD val_count, _Reserved_ PDWORD reserved, _Out_opt_ PDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ PDWORD count)
Definition: reg.c:2830
HRESULT WINAPI StringFromCLSID(REFCLSID clsid, LPOLESTR *str)
Definition: combase.c:1515
void WINAPI CoTaskMemFree(void *ptr)
Definition: malloc.c:389
WCHAR OLECHAR
Definition: compat.h:2292
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1977
static const struct objcompat_entry objcompat_table[]
Definition: ordinal.c:5685
#define swprintf
Definition: precomp.h:40
GLuint res
Definition: glext.h:9613
GLdouble GLdouble right
Definition: glext.h:10859
GLint left
Definition: glext.h:7726
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
WCHAR strW[12]
Definition: clipboard.c:2216
Definition: copy.c:22
Definition: name.c:39

Referenced by init_pointers(), and SHGetAttributes().

◆ SHGetPathFromIDListWrapW()

BOOL WINAPI SHGetPathFromIDListWrapW ( LPCITEMIDLIST  pidl,
LPWSTR  pszPath 
)

Definition at line 3016 of file ordinal.c.

3017{
3018 return SHGetPathFromIDListW(pidl, pszPath);
3019}
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1496

Referenced by _ILIsNetworkPlace().

◆ SHGetRestriction()

DWORD WINAPI SHGetRestriction ( LPCWSTR  lpSubKey,
LPCWSTR  lpSubName,
LPCWSTR  lpValue 
)

Definition at line 2357 of file ordinal.c.

2358{
2359#ifdef __REACTOS__
2361 DWORD dwSize, dwValue = 0;
2362
2363 TRACE("(%s, %s, %s)\n", debugstr_w(lpSubKey), debugstr_w(lpSubName), debugstr_w(lpValue));
2364
2365 if (!lpSubKey)
2366 lpSubKey = L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies";
2367
2368 PathCombineW(szPath, lpSubKey, lpSubName);
2369
2370 dwSize = sizeof(dwValue);
2371 if (SHGetValueW(HKEY_LOCAL_MACHINE, szPath, lpValue, NULL, &dwValue, &dwSize) == ERROR_SUCCESS)
2372 return dwValue;
2373
2374 dwSize = sizeof(dwValue);
2375 SHGetValueW(HKEY_CURRENT_USER, szPath, lpValue, NULL, &dwValue, &dwSize);
2376 return dwValue;
2377#else
2378 DWORD retval, datsize = sizeof(retval);
2379 HKEY hKey;
2380
2381 if (!lpSubKey)
2382 lpSubKey = strRegistryPolicyW;
2383
2385 if (retval != ERROR_SUCCESS)
2387 if (retval != ERROR_SUCCESS)
2388 return 0;
2389
2390 SHGetValueW(hKey, lpSubName, lpValue, NULL, &retval, &datsize);
2392 return retval;
2393#endif
2394}
static const WCHAR strRegistryPolicyW[]
Definition: ordinal.c:2338
#define L(x)
Definition: resources.c:13
LPCWSTR szPath
Definition: env.c:37
#define PathCombineW
Definition: pathcch.h:318
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by CShellDispatch::IsRestricted(), and SHRestrictionLookup().

◆ SHGetShellKey()

HKEY WINAPI SHGetShellKey ( DWORD  flags,
LPCWSTR  sub_key,
BOOL  create 
)

Definition at line 4049 of file ordinal.c.

4050{
4051#ifndef __REACTOS__
4052 enum _shellkey_flags {
4053 SHKEY_Root_HKCU = 0x1,
4054 SHKEY_Root_HKLM = 0x2,
4055 SHKEY_Key_Explorer = 0x00,
4056 SHKEY_Key_Shell = 0x10,
4057 SHKEY_Key_ShellNoRoam = 0x20,
4058 SHKEY_Key_Classes = 0x30,
4059 SHKEY_Subkey_Default = 0x0000,
4061 SHKEY_Subkey_Handlers = 0x2000,
4063 SHKEY_Subkey_Volatile = 0x4000,
4064 SHKEY_Subkey_MUICache = 0x5000,
4065 SHKEY_Subkey_FileExts = 0x6000
4066 };
4067#endif
4068
4069 static const WCHAR explorerW[] = {'S','o','f','t','w','a','r','e','\\',
4070 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4071 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
4072 'E','x','p','l','o','r','e','r','\\'};
4073 static const WCHAR shellW[] = {'S','o','f','t','w','a','r','e','\\',
4074 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4075 'S','h','e','l','l','\\'};
4076 static const WCHAR shell_no_roamW[] = {'S','o','f','t','w','a','r','e','\\',
4077 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4078 'S','h','e','l','l','N','o','R','o','a','m','\\'};
4079 static const WCHAR classesW[] = {'S','o','f','t','w','a','r','e','\\',
4080 'C','l','a','s','s','e','s','\\'};
4081
4082 static const WCHAR localized_resource_nameW[] = {'L','o','c','a','l','i','z','e','d',
4083 'R','e','s','o','u','r','c','e','N','a','m','e','\\'};
4084 static const WCHAR handlersW[] = {'H','a','n','d','l','e','r','s','\\'};
4085 static const WCHAR associationsW[] = {'A','s','s','o','c','i','a','t','i','o','n','s','\\'};
4086 static const WCHAR volatileW[] = {'V','o','l','a','t','i','l','e','\\'};
4087 static const WCHAR mui_cacheW[] = {'M','U','I','C','a','c','h','e','\\'};
4088 static const WCHAR file_extsW[] = {'F','i','l','e','E','x','t','s','\\'};
4089
4090 WCHAR *path;
4091 const WCHAR *key, *subkey;
4092 int size_key, size_subkey, size_user;
4093 HKEY hkey = NULL;
4094
4095 TRACE("(0x%08lx, %s, %d)\n", flags, debugstr_w(sub_key), create);
4096
4097 /* For compatibility with Vista+ */
4098 if(flags == 0x1ffff)
4099 flags = 0x21;
4100
4101 switch(flags&0xff0) {
4102 case SHKEY_Key_Explorer:
4103 key = explorerW;
4104 size_key = sizeof(explorerW);
4105 break;
4106 case SHKEY_Key_Shell:
4107 key = shellW;
4108 size_key = sizeof(shellW);
4109 break;
4111 key = shell_no_roamW;
4112 size_key = sizeof(shell_no_roamW);
4113 break;
4114 case SHKEY_Key_Classes:
4115 key = classesW;
4116 size_key = sizeof(classesW);
4117 break;
4118 default:
4119 FIXME("unsupported flags (0x%08lx)\n", flags);
4120 return NULL;
4121 }
4122
4123 switch(flags&0xff000) {
4125 subkey = NULL;
4126 size_subkey = 0;
4127 break;
4129 subkey = localized_resource_nameW;
4130 size_subkey = sizeof(localized_resource_nameW);
4131 break;
4133 subkey = handlersW;
4134 size_subkey = sizeof(handlersW);
4135 break;
4137 subkey = associationsW;
4138 size_subkey = sizeof(associationsW);
4139 break;
4141 subkey = volatileW;
4142 size_subkey = sizeof(volatileW);
4143 break;
4145 subkey = mui_cacheW;
4146 size_subkey = sizeof(mui_cacheW);
4147 break;
4149 subkey = file_extsW;
4150 size_subkey = sizeof(file_extsW);
4151 break;
4152 default:
4153 FIXME("unsupported flags (0x%08lx)\n", flags);
4154 return NULL;
4155 }
4156
4157 if(sub_key)
4158 size_user = lstrlenW(sub_key)*sizeof(WCHAR);
4159 else
4160 size_user = 0;
4161
4162 path = malloc(size_key + size_subkey + size_user + sizeof(WCHAR));
4163 if(!path) {
4164 ERR("Out of memory\n");
4165 return NULL;
4166 }
4167
4168 memcpy(path, key, size_key);
4169 if(subkey)
4170 memcpy(path+size_key/sizeof(WCHAR), subkey, size_subkey);
4171 if(sub_key)
4172 memcpy(path+(size_key+size_subkey)/sizeof(WCHAR), sub_key, size_user);
4173 path[(size_key+size_subkey+size_user)/sizeof(WCHAR)] = '\0';
4174
4175 if(create)
4177 path, 0, NULL, 0, MAXIMUM_ALLOWED, NULL, &hkey, NULL);
4178 else
4180 path, 0, MAXIMUM_ALLOWED, &hkey);
4181
4182 free(path);
4183 return hkey;
4184}
#define ERR(fmt,...)
Definition: precomp.h:57
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
static const struct access_res create[16]
Definition: package.c:7505
_shellkey_flags
Definition: ordinal.c:2804
@ SHKEY_Subkey_Handlers
Definition: ordinal.c:2813
@ SHKEY_Root_HKLM
Definition: ordinal.c:2806
@ SHKEY_Key_ShellNoRoam
Definition: ordinal.c:2809
@ SHKEY_Subkey_Volatile
Definition: ordinal.c:2815
@ SHKEY_Subkey_Associations
Definition: ordinal.c:2814
@ SHKEY_Key_Classes
Definition: ordinal.c:2810
@ SHKEY_Subkey_MUICache
Definition: ordinal.c:2816
@ SHKEY_Key_Explorer
Definition: ordinal.c:2807
@ SHKEY_Root_HKCU
Definition: ordinal.c:2805
@ SHKEY_Subkey_FileExts
Definition: ordinal.c:2817
@ SHKEY_Key_Shell
Definition: ordinal.c:2808
@ SHKEY_Subkey_Default
Definition: ordinal.c:2811
@ SHKEY_Subkey_ResourceName
Definition: ordinal.c:2812
#define MAXIMUM_ALLOWED
Definition: nt_native.h:83

Referenced by CViewStatePropertyBag::_GetHKey(), CDesktopUpgradePropertyBag::_GetOldDesktopViewStream(), init_pointers(), InitializeServerAdminUI(), CGlobalFolderSettings::Load(), read_advanced_key(), CGlobalFolderSettings::Save(), SHGetSetSettings(), SKAllocValueW(), SKDeleteValueW(), SKGetValueW(), and SKSetValueW().

◆ SHInterlockedCompareExchange()

PVOID WINAPI SHInterlockedCompareExchange ( PVOID dest,
PVOID  xchg,
PVOID  compare 
)

Definition at line 3045 of file ordinal.c.

3046{
3048}
#define InterlockedCompareExchangePointer
Definition: interlocked.h:144
Definition: bug.cpp:8

◆ SHInvokeCommand()

HRESULT WINAPI SHInvokeCommand ( HWND  hWnd,
IShellFolder lpFolder,
LPCITEMIDLIST  lpApidl,
DWORD  dwCommandId 
)

Definition at line 3177 of file ordinal.c.

3178{
3179 IContextMenu *iContext;
3180 HRESULT hRet;
3181
3182 TRACE("(%p, %p, %p, %lu)\n", hWnd, lpFolder, lpApidl, dwCommandId);
3183
3184 if (!lpFolder)
3185 return E_FAIL;
3186
3187 /* Get the context menu from the shell folder */
3188 hRet = IShellFolder_GetUIObjectOf(lpFolder, hWnd, 1, &lpApidl,
3189 &IID_IContextMenu, 0, (void**)&iContext);
3190 if (SUCCEEDED(hRet))
3191 {
3192 HMENU hMenu;
3193 if ((hMenu = CreatePopupMenu()))
3194 {
3195 HRESULT hQuery;
3196
3197 /* Add the context menu entries to the popup */
3198 hQuery = IContextMenu_QueryContextMenu(iContext, hMenu, 0, 1, 0x7FFF,
3199 dwCommandId ? CMF_NORMAL : CMF_DEFAULTONLY);
3200
3201 if (SUCCEEDED(hQuery))
3202 {
3203 if (!dwCommandId)
3204 dwCommandId = GetMenuDefaultItem(hMenu, 0, 0);
3205 if (dwCommandId != (UINT)-1)
3206 {
3207 CMINVOKECOMMANDINFO cmIci;
3208 /* Invoke the default item */
3209 memset(&cmIci,0,sizeof(cmIci));
3210 cmIci.cbSize = sizeof(cmIci);
3211 cmIci.fMask = CMIC_MASK_ASYNCOK;
3212 cmIci.hwnd = hWnd;
3213#ifdef __REACTOS__ /* r75561 */
3214 cmIci.lpVerb = MAKEINTRESOURCEA(dwCommandId - 1);
3215#else
3216 cmIci.lpVerb = MAKEINTRESOURCEA(dwCommandId);
3217#endif
3218 cmIci.nShow = SW_SHOWNORMAL;
3219
3220 hRet = IContextMenu_InvokeCommand(iContext, &cmIci);
3221 }
3222 }
3223 DestroyMenu(hMenu);
3224 }
3225 IContextMenu_Release(iContext);
3226 }
3227 return hRet;
3228}
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define SW_SHOWNORMAL
Definition: winuser.h:781
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
UINT WINAPI GetMenuDefaultItem(_In_ HMENU hMenu, _In_ UINT fByPos, _In_ UINT gmdiFlags)
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
BOOL WINAPI DestroyMenu(_In_ HMENU)

Referenced by SHInvokeDefaultCommand().

◆ SHInvokeDefaultCommand()

HRESULT WINAPI SHInvokeDefaultCommand ( HWND  hWnd,
IShellFolder lpFolder,
LPCITEMIDLIST  lpApidl 
)

Definition at line 2608 of file ordinal.c.

2609{
2610 TRACE("%p %p %p\n", hWnd, lpFolder, lpApidl);
2611 return SHInvokeCommand(hWnd, lpFolder, lpApidl, 0);
2612}
HRESULT WINAPI SHInvokeCommand(HWND, IShellFolder *, LPCITEMIDLIST, DWORD)
Definition: ordinal.c:3177

Referenced by CMenuCallback::CallbackSM(), CStartMenuSite::Execute(), CAddressEditBox::Execute(), CShellBrowser::OnOrganizeFavorites(), and CISFBand::OnWinEvent().

◆ SHIsChildOrSelf()

BOOL WINAPI SHIsChildOrSelf ( HWND  hParent,
HWND  hChild 
)

Definition at line 1941 of file ordinal.c.

1942{
1943 TRACE("(%p,%p)\n", hParent, hChild);
1944
1945 if (!hParent || !hChild)
1946 return TRUE;
1947 else if(hParent == hChild)
1948 return FALSE;
1949 return !IsChild(hParent, hChild);
1950}
static HTREEITEM hChild
Definition: treeview.c:383
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)

◆ SHIsExpandableFolder()

HRESULT WINAPI SHIsExpandableFolder ( LPSHELLFOLDER  lpFolder,
LPCITEMIDLIST  pidl 
)

Definition at line 1683 of file ordinal.c.

1684{
1685 HRESULT hRet = E_INVALIDARG;
1686 IQueryInfo *lpInfo;
1687
1688 if (lpFolder && pidl)
1689 {
1690 hRet = IShellFolder_GetUIObjectOf(lpFolder, NULL, 1, &pidl, &IID_IQueryInfo,
1691 NULL, (void**)&lpInfo);
1692 if (FAILED(hRet))
1693 hRet = S_FALSE; /* Doesn't expose IQueryInfo */
1694 else
1695 {
1696 DWORD dwFlags = 0;
1697
1698 /* MSDN states of IQueryInfo_GetInfoFlags() that "This method is not
1699 * currently used". Really? You wouldn't be holding out on me would you?
1700 */
1701 hRet = IQueryInfo_GetInfoFlags(lpInfo, &dwFlags);
1702
1703 if (SUCCEEDED(hRet))
1704 {
1705 /* 0x2 is an undocumented flag apparently indicating expandability */
1706 hRet = dwFlags & 0x2 ? S_OK : S_FALSE;
1707 }
1708
1709 IQueryInfo_Release(lpInfo);
1710 }
1711 }
1712 return hRet;
1713}
#define IQueryInfo_Release(p)
Definition: shlobj.h:693
#define IQueryInfo_GetInfoFlags(p, a)
Definition: shlobj.h:696
#define S_FALSE
Definition: winerror.h:3451

◆ SHIShellFolder_EnumObjects()

HRESULT WINAPI SHIShellFolder_EnumObjects ( LPSHELLFOLDER  lpFolder,
HWND  hwnd,
SHCONTF  flags,
IEnumIDList **  ppenum 
)

Definition at line 3413 of file ordinal.c.

3414{
3415 /* Windows attempts to get an IPersist interface and, if that fails, an
3416 * IPersistFolder interface on the folder passed-in here. If one of those
3417 * interfaces is available, it then calls GetClassID on the folder... and
3418 * then calls IShellFolder_EnumObjects no matter what, even crashing if
3419 * lpFolder isn't actually an IShellFolder object. The purpose of getting
3420 * the ClassID is unknown, so we don't do it here.
3421 *
3422 * For discussion and detailed tests, see:
3423 * "shlwapi: Be less strict on which type of IShellFolder can be enumerated"
3424 * wine-devel mailing list, 3 Jun 2010
3425 */
3426
3427 return IShellFolder_EnumObjects(lpFolder, hwnd, flags, ppenum);
3428}
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

Referenced by init_pointers().

◆ SHIsSameObject()

BOOL WINAPI SHIsSameObject ( IUnknown lpInt1,
IUnknown lpInt2 
)

Definition at line 941 of file ordinal.c.

942{
943 IUnknown *lpUnknown1, *lpUnknown2;
944 BOOL ret;
945
946 TRACE("(%p %p)\n", lpInt1, lpInt2);
947
948 if (!lpInt1 || !lpInt2)
949 return FALSE;
950
951 if (lpInt1 == lpInt2)
952 return TRUE;
953
954 if (IUnknown_QueryInterface(lpInt1, &IID_IUnknown, (void**)&lpUnknown1) != S_OK)
955 return FALSE;
956
957 if (IUnknown_QueryInterface(lpInt2, &IID_IUnknown, (void**)&lpUnknown2) != S_OK)
958 {
959 IUnknown_Release(lpUnknown1);
960 return FALSE;
961 }
962
963 ret = lpUnknown1 == lpUnknown2;
964
965 IUnknown_Release(lpUnknown1);
966 IUnknown_Release(lpUnknown2);
967
968 return ret;
969}
const GUID IID_IUnknown

◆ SHLoadFromPropertyBag()

DWORD WINAPI SHLoadFromPropertyBag ( IUnknown lpUnknown,
IPropertyBag lpPropBag 
)

Definition at line 1459 of file ordinal.c.

1460{
1461 IPersistPropertyBag* lpPPBag;
1462 HRESULT hRet = E_FAIL;
1463
1464 TRACE("(%p,%p)\n", lpUnknown, lpPropBag);
1465
1466 if (lpUnknown)
1467 {
1468 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IPersistPropertyBag,
1469 (void**)&lpPPBag);
1470 if (SUCCEEDED(hRet) && lpPPBag)
1471 {
1472 hRet = IPersistPropertyBag_Load(lpPPBag, lpPropBag, NULL);
1473 IPersistPropertyBag_Release(lpPPBag);
1474 }
1475 }
1476 return hRet;
1477}
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11

◆ SHLoadMenuPopup()

BOOL WINAPI SHLoadMenuPopup ( HINSTANCE  hInst,
LPCWSTR  szName 
)

Definition at line 1261 of file ordinal.c.

1262{
1263 HMENU hMenu;
1264
1265 TRACE("%p %s\n", hInst, debugstr_w(szName));
1266
1267 if ((hMenu = LoadMenuW(hInst, szName)))
1268 {
1269 if (GetSubMenu(hMenu, 0))
1270 RemoveMenu(hMenu, 0, MF_BYPOSITION);
1271
1272 DestroyMenu(hMenu);
1273 return TRUE;
1274 }
1275 return FALSE;
1276}
static const WCHAR szName[]
Definition: powrprof.c:45
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define MF_BYPOSITION
Definition: winuser.h:203
BOOL WINAPI RemoveMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)

◆ SHLoadRegUIStringW()

HRESULT WINAPI SHLoadRegUIStringW ( HKEY  hkey,
LPCWSTR  value,
LPWSTR  buf,
DWORD  size 
)

Definition at line 3669 of file ordinal.c.

3670{
3671 DWORD type, sz = size * sizeof(WCHAR);
3672
3673 if(RegQueryValueExW(hkey, value, NULL, &type, (LPBYTE)buf, &sz) != ERROR_SUCCESS)
3674 return E_FAIL;
3675
3677}
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
HRESULT WINAPI SHLoadIndirectString(const WCHAR *src, WCHAR *dst, UINT dst_len, void **reserved)
Definition: string.c:1499
unsigned char * LPBYTE
Definition: typedefs.h:53
Definition: pdh_main.c:96

Referenced by CBandSiteMenu::_CreateMenuPart(), CRegTreeOptions::AddItemsFromRegistry(), and GetKbdLayoutNameFromReg().

◆ SHLockShared()

PVOID WINAPI SHLockShared ( HANDLE  hShared,
DWORD  dwProcId 
)

Definition at line 257 of file ordinal.c.

258{
259#ifdef __REACTOS__
260 return SHLockSharedEx(hShared, dwProcId, TRUE);
261#else
262 HANDLE hDup;
263 LPVOID pMapped;
264
265 TRACE("(%p %ld)\n", hShared, dwProcId);
266
267 /* Get handle to shared memory for current process */
268 hDup = SHMapHandle(hShared, dwProcId, GetCurrentProcessId(), FILE_MAP_ALL_ACCESS, 0);
269
270 /* Get View */
271 pMapped = MapViewOfFile(hDup, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
272 CloseHandle(hDup);
273
274 if (pMapped)
275 return (char *) pMapped + sizeof(DWORD); /* Hide size */
276 return NULL;
277#endif
278}
PVOID WINAPI SHLockSharedEx(HANDLE hData, DWORD dwProcessId, BOOL bWriteAccess)

Referenced by _ILReadFromSharedMemory(), AppBar_CopyIn(), AppBar_CopyOut(), AppBar_LockOutput(), init_pointers(), MakeSharedPacket(), ParseSharedPacket(), and SHELL_ArgifyW().

◆ SHLWAPI_EnumChildProc()

static BOOL CALLBACK SHLWAPI_EnumChildProc ( HWND  hWnd,
LPARAM  lParam 
)
static

Definition at line 1287 of file ordinal.c.

1288{
1290
1291 TRACE("(%p,%p)\n", hWnd, data);
1292 data->pfnPost(hWnd, data->uiMsgId, data->wParam, data->lParam);
1293 return TRUE;
1294}

Referenced by SHPropagateMessage().

◆ SHLWAPI_InvokeByIID()

static HRESULT SHLWAPI_InvokeByIID ( IConnectionPoint iCP,
REFIID  iid,
DISPID  dispId,
DISPPARAMS *  dispParams 
)
static

Definition at line 2689 of file ordinal.c.

2694{
2695 IEnumConnections *enumerator;
2696 CONNECTDATA rgcd;
2697 static DISPPARAMS empty = {NULL, NULL, 0, 0};
2698 DISPPARAMS* params = dispParams;
2699
2700 HRESULT result = IConnectionPoint_EnumConnections(iCP, &enumerator);
2701 if (FAILED(result))
2702 return result;
2703
2704 /* Invoke is never happening with an NULL dispParams */
2705 if (!params)
2706 params = &empty;
2707
2708 while(IEnumConnections_Next(enumerator, 1, &rgcd, NULL)==S_OK)
2709 {
2710 IDispatch *dispIface;
2711 if ((iid && SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, iid, (LPVOID*)&dispIface))) ||
2712 SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, &IID_IDispatch, (LPVOID*)&dispIface)))
2713 {
2714 IDispatch_Invoke(dispIface, dispId, &IID_NULL, 0, DISPATCH_METHOD, params, NULL, NULL, NULL);
2715 IDispatch_Release(dispIface);
2716 }
2717 IUnknown_Release(rgcd.pUnk);
2718 }
2719
2720 IEnumConnections_Release(enumerator);
2721
2722 return S_OK;
2723}
static const WCHAR empty[1]
Definition: string.c:47
GLenum const GLfloat * params
Definition: glext.h:5645
#define DISPATCH_METHOD
Definition: oleauto.h:1006
const GUID IID_IDispatch
#define IID_NULL
Definition: guiddef.h:98

Referenced by IConnectionPoint_InvokeWithCancel(), IConnectionPoint_SimpleInvoke(), and IUnknown_CPContainerInvokeParam().

◆ SHMapHandle()

HANDLE WINAPI SHMapHandle ( HANDLE  hShared,
DWORD  dwSrcProcId,
DWORD  dwDstProcId,
DWORD  dwAccess,
DWORD  dwOptions 
)

Definition at line 96 of file ordinal.c.

98{
99 HANDLE hDst, hSrc;
100 DWORD dwMyProcId = GetCurrentProcessId();
101 HANDLE hRet = NULL;
102
103 TRACE("(%p,%ld,%ld,%08lx,%08lx)\n", hShared, dwDstProcId, dwSrcProcId,
104 dwAccess, dwOptions);
105
106 if (!hShared)
107 {
108 TRACE("Returning handle NULL\n");
109 return NULL;
110 }
111
112 /* Get dest process handle */
113 if (dwDstProcId == dwMyProcId)
114 hDst = GetCurrentProcess();
115 else
116 hDst = OpenProcess(PROCESS_DUP_HANDLE, 0, dwDstProcId);
117
118 if (hDst)
119 {
120 /* Get src process handle */
121 if (dwSrcProcId == dwMyProcId)
122 hSrc = GetCurrentProcess();
123 else
124 hSrc = OpenProcess(PROCESS_DUP_HANDLE, 0, dwSrcProcId);
125
126 if (hSrc)
127 {
128 /* Make handle available to dest process */
129 if (!DuplicateHandle(hSrc, hShared, hDst, &hRet,
130 dwAccess, 0, dwOptions | DUPLICATE_SAME_ACCESS))
131 hRet = NULL;
132
133 if (dwSrcProcId != dwMyProcId)
134 CloseHandle(hSrc);
135 }
136
137 if (dwDstProcId != dwMyProcId)
138 CloseHandle(hDst);
139 }
140
141 TRACE("Returning handle %p\n", hRet);
142 return hRet;
143}
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
Definition: handle.c:149
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
Definition: proc.c:1224
#define PROCESS_DUP_HANDLE
DWORD dwOptions
Definition: solitaire.cpp:25

Referenced by init_pointers(), SHAllocShared(), SHFreeShared(), and SHLockShared().

◆ SHMenuIndexFromID()

DWORD WINAPI SHMenuIndexFromID ( HMENU  hMenu,
UINT  uID 
)

Definition at line 3951 of file ordinal.c.

3952{
3953 TRACE("%p %u\n", hMenu, uID);
3954 return GetMenuPosFromID(hMenu, uID);
3955}
INT WINAPI GetMenuPosFromID(HMENU hMenu, UINT wID)
Definition: ordinal.c:3924

Referenced by CDefView::FillViewMenu().

◆ SHPackDispParams()

HRESULT WINAPIV SHPackDispParams ( DISPPARAMS *  params,
VARIANTARG args,
UINT  cnt,
  ... 
)

Definition at line 2671 of file ordinal.c.

2672{
2674 HRESULT hres;
2675
2678 va_end(valist);
2679 return hres;
2680}
HRESULT hres
Definition: protocol.c:465
_In_ size_t cnt
Definition: wcstombs.cpp:43

Referenced by init_pointers().

◆ SHPackDispParamsV()

HRESULT WINAPI SHPackDispParamsV ( DISPPARAMS *  params,
VARIANTARG args,
UINT  cnt,
va_list  valist 
)

Definition at line 2619 of file ordinal.c.

2620{
2621 VARIANTARG *iter;
2622
2623 TRACE("(%p %p %u ...)\n", params, args, cnt);
2624
2625 params->rgvarg = args;
2626 params->rgdispidNamedArgs = NULL;
2627 params->cArgs = cnt;
2628 params->cNamedArgs = 0;
2629
2630 iter = args+cnt;
2631
2632 while(iter-- > args) {
2633 V_VT(iter) = va_arg(valist, enum VARENUM);
2634
2635 TRACE("vt=%d\n", V_VT(iter));
2636
2637 if(V_VT(iter) & VT_BYREF) {
2638 V_BYREF(iter) = va_arg(valist, LPVOID);
2639 } else {
2640 switch(V_VT(iter)) {
2641 case VT_I4:
2642 V_I4(iter) = va_arg(valist, LONG);
2643 break;
2644 case VT_BSTR:
2645 V_BSTR(iter) = va_arg(valist, BSTR);
2646 break;
2647 case VT_DISPATCH:
2648 V_DISPATCH(iter) = va_arg(valist, IDispatch*);
2649 break;
2650 case VT_BOOL:
2651 V_BOOL(iter) = va_arg(valist, int);
2652 break;
2653 case VT_UNKNOWN:
2654 V_UNKNOWN(iter) = va_arg(valist, IUnknown*);
2655 break;
2656 default:
2657 V_VT(iter) = VT_I4;
2658 V_I4(iter) = va_arg(valist, LONG);
2659 }
2660 }
2661 }
2662
2663 return S_OK;
2664}
VARENUM
Definition: compat.h:2294
@ VT_BSTR
Definition: compat.h:2303
@ VT_BYREF
Definition: compat.h:2342
@ VT_I4
Definition: compat.h:2298
@ VT_BOOL
Definition: compat.h:2306
@ VT_DISPATCH
Definition: compat.h:2304
#define va_arg(v, l)
Definition: stdarg.h:27
#define V_BOOL(A)
Definition: oleauto.h:224
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_BYREF(A)
Definition: oleauto.h:228
#define V_I4(A)
Definition: oleauto.h:247
#define V_DISPATCH(A)
Definition: oleauto.h:239
long LONG
Definition: pedump.c:60

Referenced by IUnknown_CPContainerInvokeParam(), and SHPackDispParams().

◆ SHPinDllOfCLSID()

HMODULE WINAPI SHPinDllOfCLSID ( REFIID  refiid)

Definition at line 2173 of file ordinal.c.

2174{
2175 HKEY newkey;
2176 DWORD type, count;
2177 CHAR value[MAX_PATH], string[MAX_PATH];
2178
2179 strcpy(string, "CLSID\\");
2180 SHStringFromGUIDA(refiid, string + 6, ARRAY_SIZE(string) - 6);
2181 strcat(string, "\\InProcServer32");
2182
2183 count = MAX_PATH;
2184 RegOpenKeyExA(HKEY_CLASSES_ROOT, string, 0, 1, &newkey);
2185 RegQueryValueExA(newkey, 0, 0, &type, (PBYTE)value, &count);
2186 RegCloseKey(newkey);
2187 return LoadLibraryExA(value, 0, 0);
2188}
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298
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:4009
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)
Definition: loader.c:159
INT WINAPI SHStringFromGUIDA(REFGUID guid, LPSTR lpszDest, INT cchMax)
Definition: ordinal.c:513
strcat
Definition: string.h:92
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

Referenced by SHAutoComplete(), and SHLWAPI_GetCachedZonesManagerInner().

◆ SHPropagateMessage()

void WINAPI SHPropagateMessage ( HWND  hWnd,
UINT  uiMsgId,
WPARAM  wParam,
LPARAM  lParam,
BOOL  bSend 
)

Definition at line 1314 of file ordinal.c.

1315{
1317
1318 TRACE("(%p,%u,%Id,%Id,%d)\n", hWnd, uiMsgId, wParam, lParam, bSend);
1319
1320 if(hWnd)
1321 {
1322 data.uiMsgId = uiMsgId;
1323 data.wParam = wParam;
1324 data.lParam = lParam;
1325
1326 if (bSend)
1327 data.pfnPost = IsWindowUnicode(hWnd) ? (void*)SendMessageW : (void*)SendMessageA;
1328 else
1329 data.pfnPost = IsWindowUnicode(hWnd) ? (void*)PostMessageW : (void*)PostMessageA;
1330
1332 }
1333}
static BOOL CALLBACK SHLWAPI_EnumChildProc(HWND hWnd, LPARAM lParam)
Definition: ordinal.c:1287
LONG_PTR LPARAM
Definition: minwindef.h:175
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by CShellBrowser::OnSettingChange(), and CShellBrowser::OnSysColorChange().

◆ SHPropertyBag_ReadLONG()

HRESULT WINAPI SHPropertyBag_ReadLONG ( IPropertyBag ppb,
LPCWSTR  pszPropName,
LPLONG  pValue 
)

Definition at line 5036 of file ordinal.c.

5037{
5038#ifdef __REACTOS__
5039 HRESULT hr;
5040 VARIANTARG varg;
5041
5042 TRACE("%p %s %p\n", ppb, debugstr_w(pszPropName), pValue);
5043
5044 if (!ppb || !pszPropName || !pValue)
5045 {
5046 ERR("%p %s %p\n", ppb, debugstr_w(pszPropName), pValue);
5047 return E_INVALIDARG;
5048 }
5049
5050 hr = SHPropertyBag_ReadType(ppb, pszPropName, &varg, VT_I4);
5051 if (SUCCEEDED(hr))
5052 *pValue = V_I4(&varg);
5053#else
5054 VARIANT var;
5055 HRESULT hr;
5056 TRACE("%p %s %p\n", ppb,debugstr_w(pszPropName),pValue);
5057 if (!pszPropName || !ppb || !pValue)
5058 return E_INVALIDARG;
5059 V_VT(&var) = VT_I4;
5060 hr = IPropertyBag_Read(ppb, pszPropName, &var, NULL);
5061 if (SUCCEEDED(hr))
5062 {
5063 if (V_VT(&var) == VT_I4)
5064 *pValue = V_I4(&var);
5065 else
5067 }
5068#endif
5069 return hr;
5070}
PWCHAR pValue
HRESULT WINAPI SHPropertyBag_ReadType(IPropertyBag *ppb, LPCWSTR pszPropName, VARIANTARG *pvarg, VARTYPE vt)
#define DISP_E_BADVARTYPE
Definition: winerror.h:3620

Referenced by init_pointers(), and SHPropertyBag_ReadTest().

◆ SHQueueUserWorkItem()

BOOL WINAPI SHQueueUserWorkItem ( LPTHREAD_START_ROUTINE  pfnCallback,
LPVOID  pContext,
LONG  lPriority,
DWORD_PTR  dwTag,
DWORD_PTR pdwId,
LPCSTR  pszModule,
DWORD  dwFlags 
)

Definition at line 4189 of file ordinal.c.

4192{
4193 TRACE("(%p, %p, %ld, %Ix, %p, %s, %08lx)\n", pfnCallback, pContext,
4194 lPriority, dwTag, pdwId, debugstr_a(pszModule), dwFlags);
4195
4196 if(lPriority || dwTag || pdwId || pszModule || dwFlags)
4197 FIXME("Unsupported arguments\n");
4198
4199 return QueueUserWorkItem(pfnCallback, pContext, 0);
4200}
BOOL WINAPI QueueUserWorkItem(IN LPTHREAD_START_ROUTINE Function, IN PVOID Context, IN ULONG Flags)
Definition: thread.c:1076
_In_opt_ void _In_ DWORD _In_opt_ LPTHREAD_START_ROUTINE pfnCallback
Definition: shlwapi.h:66

◆ SHRegisterClassA()

DWORD WINAPI SHRegisterClassA ( WNDCLASSA wndclass)

Definition at line 1412 of file ordinal.c.

1413{
1414 WNDCLASSA wca;
1415 if (GetClassInfoA(wndclass->hInstance, wndclass->lpszClassName, &wca))
1416 return TRUE;
1417 return (DWORD)RegisterClassA(wndclass);
1418}
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
BOOL WINAPI GetClassInfoA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSA)

Referenced by SHCreateWorkerWindowA().

◆ SHRegisterClassW()

DWORD WINAPI SHRegisterClassW ( WNDCLASSW lpWndClass)

Definition at line 2195 of file ordinal.c.

2196{
2198
2199 TRACE("(%p %s)\n",lpWndClass->hInstance, debugstr_w(lpWndClass->lpszClassName));
2200
2201 if (GetClassInfoW(lpWndClass->hInstance, lpWndClass->lpszClassName, &WndClass))
2202 return TRUE;
2203 return RegisterClassW(lpWndClass);
2204}
WCHAR WndClass[]
Definition: capicon.c:23
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI GetClassInfoW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _Out_ LPWNDCLASSW)

Referenced by SHCreateWorkerWindowW().

◆ SHRemoveAllSubMenus()

DWORD WINAPI SHRemoveAllSubMenus ( HMENU  hMenu)

Definition at line 1347 of file ordinal.c.

1348{
1349 int iItemCount = GetMenuItemCount(hMenu) - 1;
1350
1351 TRACE("%p\n", hMenu);
1352
1353 while (iItemCount >= 0)
1354 {
1355 HMENU hSubMenu = GetSubMenu(hMenu, iItemCount);
1356 if (hSubMenu)
1357 RemoveMenu(hMenu, iItemCount, MF_BYPOSITION);
1358 iItemCount--;
1359 }
1360 return iItemCount;
1361}

◆ SHRemoveDefaultDialogFont()

HANDLE WINAPI SHRemoveDefaultDialogFont ( HWND  hWnd)

Definition at line 2145 of file ordinal.c.

2146{
2147 HANDLE hProp;
2148
2149 TRACE("(%p)\n", hWnd);
2150
2151 hProp = GetPropA(hWnd, "PropDlgFont");
2152
2153 if(hProp)
2154 {
2155 DeleteObject(hProp);
2156 hProp = RemovePropA(hWnd, "PropDlgFont");
2157 }
2158 return hProp;
2159}
pKey DeleteObject()
HANDLE WINAPI GetPropA(_In_ HWND, _In_ LPCSTR)
HANDLE WINAPI RemovePropA(_In_ HWND, _In_ LPCSTR)

◆ SHRestrictionLookup()

DWORD WINAPI SHRestrictionLookup ( DWORD  policy,
LPCWSTR  initial,
LPPOLICYDATA  polTable,
LPDWORD  polArr 
)

Definition at line 2424 of file ordinal.c.

2430{
2431 TRACE("(0x%08lx %s %p %p)\n", policy, debugstr_w(initial), polTable, polArr);
2432
2433#ifndef __REACTOS__
2434 if (!polTable || !polArr)
2435 return 0;
2436#endif
2437
2438#ifndef __REACTOS__
2439 for (;polTable->appstr; polTable++, polArr++)
2440#else
2441 for (;polTable->policy; polTable++, polArr++)
2442#endif
2443 {
2444 if (policy == polTable->policy)
2445 {
2446 /* we have a known policy */
2447
2448 /* check if this policy has been cached */
2449 if (*polArr == SHELL_NO_POLICY)
2450 *polArr = SHGetRestriction(initial, polTable->appstr, polTable->keystr);
2451 return *polArr;
2452 }
2453 }
2454 /* we don't know this policy, return 0 */
2455 TRACE("unknown policy: (%08lx)\n", policy);
2456 return 0;
2457}
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
Definition: appmodel.h:73
#define SHELL_NO_POLICY
Definition: ordinal.c:2335
DWORD WINAPI SHGetRestriction(LPCWSTR lpSubKey, LPCWSTR lpSubName, LPCWSTR lpValue)
Definition: ordinal.c:2357
DWORD policy
Definition: ordinal.c:2330
LPCWSTR keystr
Definition: ordinal.c:2332
LPCWSTR appstr
Definition: ordinal.c:2331

Referenced by SHRestricted().

◆ SHSearchMapInt()

int WINAPI SHSearchMapInt ( const int lpKeys,
const int lpValues,
int  iLen,
int  iKey 
)

Definition at line 1756 of file ordinal.c.

1757{
1758 if (lpKeys && lpValues)
1759 {
1760 int i = 0;
1761
1762 while (i < iLen)
1763 {
1764 if (lpKeys[i] == iKey)
1765 return lpValues[i]; /* Found */
1766 i++;
1767 }
1768 }
1769 return -1; /* Not found */
1770}

Referenced by init_pointers().

◆ SHSendMessageBroadcastA()

DWORD WINAPI SHSendMessageBroadcastA ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 3604 of file ordinal.c.

3605{
3607 SMTO_ABORTIFHUNG, 2000, NULL);
3608}
#define HWND_BROADCAST
Definition: winuser.h:1215
LRESULT WINAPI SendMessageTimeoutA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)
#define SMTO_ABORTIFHUNG
Definition: winuser.h:1234

◆ SHSendMessageBroadcastW()

DWORD WINAPI SHSendMessageBroadcastW ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 3616 of file ordinal.c.

3617{
3619 SMTO_ABORTIFHUNG, 2000, NULL);
3620}
LRESULT WINAPI SendMessageTimeoutW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)

Referenced by IntSetUnderlineState(), SHGetSetSettings(), ViewDlg_Apply(), and VisualEffectsDlgProc().

◆ SHSetDefaultDialogFont()

HRESULT WINAPI SHSetDefaultDialogFont ( HWND  hWnd,
INT  id 
)

Definition at line 2093 of file ordinal.c.

2095{
2096#ifdef __REACTOS__
2097 HFONT hOldFont, hNewFont;
2098 LOGFONTW lfOldFont, lfNewFont;
2099 HWND hwndItem;
2100
2101 TRACE("(%p, %d)\n", hWnd, id);
2102
2103 hOldFont = (HFONT)SendMessageW(hWnd, WM_GETFONT, 0, 0);
2104 GetObjectW(hOldFont, sizeof(lfOldFont), &lfOldFont);
2105 SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(lfNewFont), &lfNewFont, 0);
2106
2107 if (lfOldFont.lfCharSet == lfNewFont.lfCharSet)
2108 return;
2109
2110 hNewFont = GetPropW(hWnd, L"PropDlgFont");
2111 if (!hNewFont)
2112 {
2113 /* Create the icon-title font of the same height */
2114 lfNewFont.lfHeight = lfOldFont.lfHeight;
2115 hNewFont = CreateFontIndirectW(&lfNewFont);
2116
2117 /* If creating the font is failed, then keep the old font */
2118 if (!hNewFont)
2119 hNewFont = hOldFont;
2120
2121 /* Set "PropDlgFont" property if the font is changed */
2122 if (hOldFont != hNewFont)
2123 SetPropW(hWnd, L"PropDlgFont", hNewFont);
2124 }
2125
2126 hwndItem = GetDlgItem(hWnd, id);
2127 SendMessageW(hwndItem, WM_SETFONT, (WPARAM)hNewFont, 0);
2128#else
2129 FIXME("(%p, %d) stub\n", hWnd, id);
2130 return S_OK;
2131#endif
2132}
UINT_PTR WPARAM
Definition: minwindef.h:174
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1391
#define WM_GETFONT
Definition: winuser.h:1679
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define WM_SETFONT
Definition: winuser.h:1678
BOOL WINAPI SetPropW(_In_ HWND, _In_ LPCWSTR, _In_opt_ HANDLE)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)

◆ SHSetIniStringW()

BOOL WINAPI SHSetIniStringW ( LPCWSTR  appName,
LPCWSTR  keyName,
LPCWSTR  str,
LPCWSTR  filename 
)

Definition at line 2970 of file ordinal.c.

2972{
2973 TRACE("(%s, %s, %s, %s)\n", debugstr_w(appName), debugstr_w(keyName), debugstr_w(str),
2975
2977}
BOOL WINAPI WritePrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string, LPCWSTR filename)
Definition: profile.c:1453
const WCHAR * str

Referenced by init_pointers(), and SHPropertyBag_SHSetIniStringW().

◆ SHSetParentHwnd()

HWND WINAPI SHSetParentHwnd ( HWND  hWnd,
HWND  hWndParent 
)

Definition at line 833 of file ordinal.c.

834{
835 TRACE("%p, %p\n", hWnd, hWndParent);
836
838 return NULL;
839
840 if(hWndParent)
842 else
844
846}
LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT mask, UINT flags)
Definition: ordinal.c:805
#define WS_CHILD
Definition: pedump.c:617
#define WS_POPUP
Definition: pedump.c:616
HWND WINAPI SetParent(_In_ HWND, _In_opt_ HWND)
HWND WINAPI GetParent(_In_ HWND)
#define GWL_STYLE
Definition: winuser.h:863

Referenced by activate_inplace(), init_pointers(), and OleObject_SetClientSite().

◆ SHSetTimerQueueTimer()

HANDLE WINAPI SHSetTimerQueueTimer ( HANDLE  hQueue,
WAITORTIMERCALLBACK  pfnCallback,
LPVOID  pContext,
DWORD  dwDueTime,
DWORD  dwPeriod,
LPCSTR  lpszLibrary,
DWORD  dwFlags 
)

Definition at line 4205 of file ordinal.c.

4208{
4209 HANDLE hNewTimer;
4210
4211 /* SHSetTimerQueueTimer flags -> CreateTimerQueueTimer flags */
4212 if (dwFlags & TPS_LONGEXECTIME) {
4213 dwFlags &= ~TPS_LONGEXECTIME;
4215 }
4216 if (dwFlags & TPS_EXECUTEIO) {
4217 dwFlags &= ~TPS_EXECUTEIO;
4219 }
4220
4221 if (!CreateTimerQueueTimer(&hNewTimer, hQueue, pfnCallback, pContext,
4222 dwDueTime, dwPeriod, dwFlags))
4223 return NULL;
4224
4225 return hNewTimer;
4226}
BOOL WINAPI CreateTimerQueueTimer(OUT PHANDLE phNewTimer, IN HANDLE TimerQueue, IN WAITORTIMERCALLBACK Callback, IN PVOID Parameter, IN DWORD DueTime, IN DWORD Period, IN ULONG Flags)
Definition: timerqueue.c:138
#define TPS_EXECUTEIO
Definition: shlwapi.h:1165
#define TPS_LONGEXECTIME
Definition: shlwapi.h:1166
#define WT_EXECUTEINIOTHREAD
Definition: winnt_old.h:1097
#define WT_EXECUTELONGFUNCTION
Definition: winnt_old.h:1101

◆ SHSetWindowBits()

LONG WINAPI SHSetWindowBits ( HWND  hwnd,
INT  offset,
UINT  mask,
UINT  flags 
)

Definition at line 805 of file ordinal.c.

806{
808 LONG new_flags = (flags & mask) | (ret & ~mask);
809
810 TRACE("%p %d %x %x\n", hwnd, offset, mask, flags);
811
812 if (new_flags != ret)
813 ret = SetWindowLongW(hwnd, offset, new_flags);
814 return ret;
815}
GLintptr offset
Definition: glext.h:5920
GLenum GLint GLuint mask
Definition: glext.h:6028
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)

Referenced by CMenuDeskBar::_AdjustForTheme(), init_pointers(), CShellBrowser::OnToggleFullscreen(), SetWindowExStyle(), SetWindowStyle(), and SHSetParentHwnd().

◆ SHSimulateDrop()

BOOL WINAPI SHSimulateDrop ( IDropTarget pDrop,
IDataObject pDataObj,
DWORD  grfKeyState,
PPOINTL  lpPt,
DWORD pdwEffect 
)

Definition at line 1423 of file ordinal.c.

1425{
1426 DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;
1427 POINTL pt = { 0, 0 };
1428
1429 TRACE("%p %p 0x%08lx %p %p\n", pDrop, pDataObj, grfKeyState, lpPt, pdwEffect);
1430
1431 if (!lpPt)
1432 lpPt = &pt;
1433
1434 if (!pdwEffect)
1435 pdwEffect = &dwEffect;
1436
1437 IDropTarget_DragEnter(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1438
1439 if (*pdwEffect != DROPEFFECT_NONE)
1440 return IDropTarget_Drop(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1441
1442 IDropTarget_DragLeave(pDrop);
1443 return TRUE;
1444}
#define pt(x, y)
Definition: drawing.c:79

Referenced by CDefaultContextMenu::DoCreateLink(), CDefaultContextMenu::DoDelete(), CDefaultContextMenu::DoPaste(), CFontBackgroundMenu::InvokeCommand(), CCPLItemMenu::InvokeCommand(), CDefaultContextMenu::InvokeRegVerb(), and SH32_SimulateDropWithSite().

◆ SHSkipJunction()

BOOL WINAPI SHSkipJunction ( IBindCtx pbc,
const CLSID pclsid 
)

Definition at line 4022 of file ordinal.c.

4023{
4024 static WCHAR szSkipBinding[] = { 'S','k','i','p',' ',
4025 'B','i','n','d','i','n','g',' ','C','L','S','I','D','\0' };
4026 BOOL bRet = FALSE;
4027
4028 if (pbc)
4029 {
4030 IUnknown* lpUnk;
4031
4032 if (SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4033 {
4034 CLSID clsid;
4035
4036 if (SUCCEEDED(IUnknown_GetClassID(lpUnk, &clsid)) &&
4037 IsEqualGUID(pclsid, &clsid))
4038 bRet = TRUE;
4039
4040 IUnknown_Release(lpUnk);
4041 }
4042 }
4043 return bRet;
4044}
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *clsid)
Definition: ordinal.c:1071
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by SHSkipJunctionBinding().

◆ SHStringFromGUIDA()

INT WINAPI SHStringFromGUIDA ( REFGUID  guid,
LPSTR  lpszDest,
INT  cchMax 
)

Definition at line 513 of file ordinal.c.

514{
515 char xguid[40];
516 INT iLen;
517
518 TRACE("(%s,%p,%d)\n", debugstr_guid(guid), lpszDest, cchMax);
519
520 sprintf(xguid, "{%08lX-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
521 guid->Data1, guid->Data2, guid->Data3,
522 guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
523 guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
524
525 iLen = strlen(xguid) + 1;
526
527 if (iLen > cchMax)
528 return 0;
529 memcpy(lpszDest, xguid, iLen);
530 return iLen;
531}
UINT cchMax
GUID guid
Definition: version.c:147
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
#define sprintf
Definition: sprintf.c:45

Referenced by SHGlobalCounterCreate(), SHPinDllOfCLSID(), and test_ordinal_imports().

◆ SHStringFromGUIDW()

INT WINAPI SHStringFromGUIDW ( REFGUID  guid,
LPWSTR  lpszDest,
INT  cchMax 
)

Definition at line 546 of file ordinal.c.

547{
548 WCHAR xguid[40];
549 INT iLen;
550 static const WCHAR wszFormat[] = {'{','%','0','8','l','X','-','%','0','4','X','-','%','0','4','X','-',
551 '%','0','2','X','%','0','2','X','-','%','0','2','X','%','0','2','X','%','0','2','X','%','0','2',
552 'X','%','0','2','X','%','0','2','X','}',0};
553
554 TRACE("(%s,%p,%d)\n", debugstr_guid(guid), lpszDest, cchMax);
555
556 swprintf(xguid, ARRAY_SIZE(xguid), wszFormat, guid->Data1, guid->Data2, guid->Data3,
557 guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
558 guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
559
560 iLen = lstrlenW(xguid) + 1;
561
562 if (iLen > cchMax)
563 return 0;
564 memcpy(lpszDest, xguid, iLen*sizeof(WCHAR));
565 return iLen;
566}

Referenced by SH32_CoCreateInstance(), and SHRegGetCLSIDKeyW().

◆ SHUnlockShared()

◆ SHUnregisterClassesA()

void WINAPI SHUnregisterClassesA ( HINSTANCE  hInst,
LPCSTR lppClasses,
INT  iCount 
)

Definition at line 2219 of file ordinal.c.

2220{
2222
2223 TRACE("(%p,%p,%d)\n", hInst, lppClasses, iCount);
2224
2225 while (iCount > 0)
2226 {
2227 if (GetClassInfoA(hInst, *lppClasses, &WndClass))
2228 UnregisterClassA(*lppClasses, hInst);
2229 lppClasses++;
2230 iCount--;
2231 }
2232}
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)

◆ SHUnregisterClassesW()

void WINAPI SHUnregisterClassesW ( HINSTANCE  hInst,
LPCWSTR lppClasses,
INT  iCount 
)

Definition at line 2239 of file ordinal.c.

2240{
2242
2243 TRACE("(%p,%p,%d)\n", hInst, lppClasses, iCount);
2244
2245 while (iCount > 0)
2246 {
2247 if (GetClassInfoW(hInst, *lppClasses, &WndClass))
2248 UnregisterClassW(*lppClasses, hInst);
2249 lppClasses++;
2250 iCount--;
2251 }
2252}
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)

◆ SHVerbExistsNA()

INT WINAPI SHVerbExistsNA ( LPSTR  verb,
PVOID  pUnknown,
PVOID  pUnknown2,
DWORD  dwUnknown3 
)

Definition at line 4791 of file ordinal.c.

4792{
4793 FIXME("(%s, %p, %p, %li) STUB\n",verb, pUnknown, pUnknown2, dwUnknown3);
4794 return 0;
4795}
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76

◆ SHWaitForSendMessageThread()

DWORD WINAPI SHWaitForSendMessageThread ( HANDLE  hand,
DWORD  dwTimeout 
)

Definition at line 1645 of file ordinal.c.

1646{
1647 DWORD dwEndTicks = GetTickCount() + dwTimeout;
1648 DWORD dwRet;
1649
1650 while ((dwRet = MsgWaitForMultipleObjectsEx(1, &hand, dwTimeout, QS_SENDMESSAGE, 0)) == 1)
1651 {
1652 MSG msg;
1653
1654 PeekMessageW(&msg, NULL, 0, 0, PM_NOREMOVE);
1655
1656 if (dwTimeout != INFINITE)
1657 {
1658 if ((int)(dwTimeout = dwEndTicks - GetTickCount()) <= 0)
1659 return WAIT_TIMEOUT;
1660 }
1661 }
1662
1663 return dwRet;
1664}
#define WAIT_TIMEOUT
Definition: dderror.h:14
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
Definition: sync.c:182
#define INFINITE
Definition: serial.h:102
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
#define QS_SENDMESSAGE
Definition: winuser.h:891
DWORD WINAPI MsgWaitForMultipleObjectsEx(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask, _In_ DWORD dwFlags)
BOOL WINAPI PeekMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
#define PM_NOREMOVE
Definition: winuser.h:1206

◆ SHWeakQueryInterface()

HRESULT WINAPI SHWeakQueryInterface ( IUnknown pUnk,
IUnknown pInner,
IID riid,
LPVOID ppv 
)

Definition at line 2474 of file ordinal.c.

2479{
2480 HRESULT hret = E_NOINTERFACE;
2481 TRACE("(pUnk=%p pInner=%p\n\tIID: %s %p)\n",pUnk,pInner,debugstr_guid(riid), ppv);
2482
2483 *ppv = NULL;
2484 if(pUnk && pInner) {
2485 hret = IUnknown_QueryInterface(pInner, riid, ppv);
2486 if (SUCCEEDED(hret)) IUnknown_Release(pUnk);
2487 }
2488 TRACE("-- 0x%08lx\n", hret);
2489 return hret;
2490}

◆ SHWeakReleaseInterface()

VOID WINAPI SHWeakReleaseInterface ( IUnknown lpDest,
IUnknown **  lppUnknown 
)

Definition at line 2504 of file ordinal.c.

2505{
2506 TRACE("(%p,%p)\n", lpDest, lppUnknown);
2507
2508 if (*lppUnknown)
2509 {
2510 /* Copy Reference*/
2511 IUnknown_AddRef(lpDest);
2512 IUnknown_Release(*lppUnknown); /* Release existing interface */
2513 *lppUnknown = NULL;
2514 }
2515}

◆ SHWinHelpOnDemandA()

DWORD WINAPI SHWinHelpOnDemandA ( HWND  hwnd,
LPCSTR  helpfile,
DWORD  flags1,
VOID ptr1,
DWORD  flags2 
)

Definition at line 3534 of file ordinal.c.

3535{
3536
3537 FIXME("(%p, %s, 0x%lx, %p, %ld)\n", hwnd, debugstr_a(helpfile), flags1, ptr1, flags2);
3538 return 0;
3539}
static const TCHAR helpfile[]
Definition: dialog.c:19

◆ SHWinHelpOnDemandW()

DWORD WINAPI SHWinHelpOnDemandW ( HWND  hwnd,
LPCWSTR  helpfile,
DWORD  flags1,
VOID ptr1,
DWORD  flags2 
)

Definition at line 3523 of file ordinal.c.

3524{
3525
3526 FIXME("(%p, %s, 0x%lx, %p, %ld)\n", hwnd, debugstr_w(helpfile), flags1, ptr1, flags2);
3527 return 0;
3528}

◆ SKAllocValueW()

HRESULT WINAPI SKAllocValueW ( DWORD  flags,
LPCWSTR  subkey,
LPCWSTR  value,
DWORD type,
LPVOID data,
DWORD count 
)

Definition at line 4254 of file ordinal.c.

4256{
4257 DWORD ret, size;
4258 HKEY hkey;
4259
4260 TRACE("(0x%lx, %s, %s, %p, %p, %p)\n", flags, debugstr_w(subkey),
4262
4263 hkey = SHGetShellKey(flags, subkey, FALSE);
4264 if (!hkey)
4266
4267 ret = SHQueryValueExW(hkey, value, NULL, type, NULL, &size);
4268 if (ret) {
4269 RegCloseKey(hkey);
4270 return HRESULT_FROM_WIN32(ret);
4271 }
4272
4273 size += 2;
4274 *data = LocalAlloc(0, size);
4275 if (!*data) {
4276 RegCloseKey(hkey);
4277 return E_OUTOFMEMORY;
4278 }
4279
4280 ret = SHQueryValueExW(hkey, value, NULL, type, *data, &size);
4281 if (count)
4282 *count = size;
4283
4284 RegCloseKey(hkey);
4285 return HRESULT_FROM_WIN32(ret);
4286}
DWORD WINAPI SHQueryValueExW(HKEY hkey, const WCHAR *name, DWORD *reserved, DWORD *type, void *buff, DWORD *buff_len)
Definition: main.c:2101
HKEY WINAPI SHGetShellKey(DWORD flags, LPCWSTR sub_key, BOOL create)
Definition: ordinal.c:4049
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

Referenced by init_pointers().

◆ SKDeleteValueW()

HRESULT WINAPI SKDeleteValueW ( DWORD  flags,
LPCWSTR  subkey,
LPCWSTR  value 
)

Definition at line 4291 of file ordinal.c.

4292{
4293 DWORD ret;
4294 HKEY hkey;
4295
4296 TRACE("(0x%lx, %s %s)\n", flags, debugstr_w(subkey), debugstr_w(value));
4297
4298 hkey = SHGetShellKey(flags, subkey, FALSE);
4299 if (!hkey)
4301
4302 ret = RegDeleteValueW(hkey, value);
4303
4304 RegCloseKey(hkey);
4305 return HRESULT_FROM_WIN32(ret);
4306}
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
Definition: reg.c:2330

Referenced by init_pointers().

◆ SKGetValueW()

HRESULT WINAPI SKGetValueW ( DWORD  flags,
LPCWSTR  subkey,
LPCWSTR  value,
DWORD type,
void data,
DWORD count 
)

Definition at line 4311 of file ordinal.c.

4313{
4314 DWORD ret;
4315 HKEY hkey;
4316
4317 TRACE("(0x%lx, %s, %s, %p, %p, %p)\n", flags, debugstr_w(subkey),
4319
4320 hkey = SHGetShellKey(flags, subkey, FALSE);
4321 if (!hkey)
4323
4325
4326 RegCloseKey(hkey);
4327 return HRESULT_FROM_WIN32(ret);
4328}

Referenced by init_pointers().

◆ SKSetValueW()

HRESULT WINAPI SKSetValueW ( DWORD  flags,
LPCWSTR  subkey,
LPCWSTR  value,
DWORD  type,
void data,
DWORD  count 
)

Definition at line 4333 of file ordinal.c.

4335{
4336 DWORD ret;
4337 HKEY hkey;
4338
4339 TRACE("(0x%lx, %s, %s, %lx, %p, %ld)\n", flags, debugstr_w(subkey),
4341
4342 hkey = SHGetShellKey(flags, subkey, TRUE);
4343 if (!hkey)
4345
4346 ret = RegSetValueExW(hkey, value, 0, type, data, count);
4347
4348 RegCloseKey(hkey);
4349 return HRESULT_FROM_WIN32(ret);
4350}
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:4882

Referenced by init_pointers().

◆ VerQueryValueWrapW()

WORD WINAPI VerQueryValueWrapW ( LPVOID  pBlock,
LPCWSTR  lpSubBlock,
LPVOID lplpBuffer,
UINT puLen 
)

Definition at line 3076 of file ordinal.c.

3078{
3079 return VerQueryValueW( pBlock, lpSubBlock, lplpBuffer, puLen );
3080}
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
Definition: version.c:1171

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )

◆ WNetGetLastErrorWrapW()

DWORD WINAPI WNetGetLastErrorWrapW ( LPDWORD  lpError,
LPWSTR  lpErrorBuf,
DWORD  nErrorBufSize,
LPWSTR  lpNameBuf,
DWORD  nNameBufSize 
)

Definition at line 3374 of file ordinal.c.

3376{
3377 return WNetGetLastErrorW(lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize);
3378}
DWORD WINAPI WNetGetLastErrorW(LPDWORD lpError, LPWSTR lpErrorBuf, DWORD nErrorBufSize, LPWSTR lpNameBuf, DWORD nNameBufSize)
Definition: wnet.c:3013

◆ WNetRestoreConnectionWrapW()

DWORD WINAPI WNetRestoreConnectionWrapW ( HWND  hwndOwner,
LPWSTR  lpszDevice 
)

Definition at line 3364 of file ordinal.c.

3365{
3366 return WNetRestoreConnectionW(hwndOwner, lpszDevice);
3367}
DWORD WINAPI WNetRestoreConnectionW(HWND hwndOwner, LPCWSTR lpszDevice)
Definition: wnet.c:2475

◆ ZoneCheckUrlExW()

INT WINAPI ZoneCheckUrlExW ( LPWSTR  szURL,
PVOID  pUnknown,
DWORD  dwUnknown2,
DWORD  dwUnknown3,
DWORD  dwUnknown4,
DWORD  dwUnknown5,
DWORD  dwUnknown6,
DWORD  dwUnknown7 
)

Definition at line 4767 of file ordinal.c.

4770{
4771 FIXME("(%s,%p,%lx,%lx,%lx,%lx,%lx,%lx) STUB\n", debugstr_w(szURL), pUnknown, dwUnknown2,
4772 dwUnknown3, dwUnknown4, dwUnknown5, dwUnknown6, dwUnknown7);
4773
4774 return 0;
4775}

◆ ZoneComputePaneSize()

UINT WINAPI ZoneComputePaneSize ( HWND  hwnd)

Definition at line 4461 of file ordinal.c.

4462{
4463 FIXME("\n");
4464 return 0x95;
4465}

Variable Documentation

◆ objcompat_table

const struct objcompat_entry objcompat_table[]
static
Initial value:
= {
{ {'C','O','C','R','E','A','T','E','S','H','E','L','L','F','O','L','D','E','R','O','N','L','Y',0},
{ {'C','T','X','M','E','N','U','_','L','I','M','I','T','E','D','Q','I',0},
{ {'C','T','X','M','E','N','U','_','N','O','V','E','R','B','S',0},
{ {'C','T','X','M','E','N','U','_','X','P','Q','C','M','F','L','A','G','S',0},
{ {'N','E','E','D','S','F','I','L','E','S','Y','S','A','N','C','E','S','T','O','R',0},
{ {'N','E','E','D','S','S','T','O','R','A','G','E','A','N','C','E','S','T','O','R',0},
{ {'N','O','I','P','R','O','P','E','R','T','Y','S','T','O','R','E',0},
{ {'N','O','L','E','G','A','C','Y','W','E','B','V','I','E','W',0},
{ {'N','O','T','A','F','I','L','E','S','Y','S','T','E','M',0},
{ {'N','O','_','W','E','B','V','I','E','W',0},
{ {'O','T','N','E','E','D','S','S','F','C','A','C','H','E',0},
{ {'P','I','N','D','L','L',0},
{ {'U','N','B','I','N','D','A','B','L','E',0},
}
#define OBJCOMPAT_NOIPROPERTYSTORE
Definition: ordinal.c:5676
#define OBJCOMPAT_CTXMENU_XPQCMFLAGS
Definition: ordinal.c:5675
#define OBJCOMPAT_NOLEGACYWEBVIEW
Definition: ordinal.c:5674
#define OBJCOMPAT_OTNEEDSSFCACHE
Definition: ordinal.c:5664
#define OBJCOMPAT_NEEDSFILESYSANCESTOR
Definition: ordinal.c:5668
#define OBJCOMPAT_CTXMENU_LIMITEDQI
Definition: ordinal.c:5671
#define OBJCOMPAT_NOTAFILESYSTEM
Definition: ordinal.c:5669
#define OBJCOMPAT_PINDLL
Definition: ordinal.c:5667
#define OBJCOMPAT_UNBINDABLE
Definition: ordinal.c:5666
#define OBJCOMPAT_NEEDSSTORAGEANCESTOR
Definition: ordinal.c:5673
#define OBJCOMPAT_NO_WEBVIEW
Definition: ordinal.c:5665
#define OBJCOMPAT_COCREATESHELLFOLDERONLY
Definition: ordinal.c:5672

Definition at line 5685 of file ordinal.c.

Referenced by SHGetObjectCompatFlags().

◆ shlwapi_hInstance

HINSTANCE shlwapi_hInstance
extern

Definition at line 33 of file shlwapi_main.c.

Referenced by SHCreateWorkerWindowA(), and SHCreateWorkerWindowW().

◆ SHLWAPI_ThreadRef_index

DWORD SHLWAPI_ThreadRef_index
extern

Definition at line 34 of file shlwapi_main.c.

◆ strRegistryPolicyW

const WCHAR strRegistryPolicyW[]
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',
'\\','P','o','l','i','c','i','e','s',0}

Definition at line 2338 of file ordinal.c.

Referenced by SHGetRestriction().