ReactOS 0.4.15-dev-7788-g1ad9096
ordinal.c File Reference
#include "config.h"
#include "wine/port.h"
#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 ISOS_RETURN(x)
 
#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)
 
HRESULT WINAPI IUnknown_QueryService (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)
 
HRESULT WINAPI GetAcceptLanguagesW (LPWSTR langbuf, LPDWORD buflen)
 
HRESULT WINAPI GetAcceptLanguagesA (LPSTR langbuf, LPDWORD buflen)
 
INT WINAPI SHStringFromGUIDA (REFGUID guid, LPSTR lpszDest, INT cchMax)
 
INT WINAPI SHStringFromGUIDW (REFGUID guid, LPWSTR lpszDest, INT cchMax)
 
BOOL WINAPI IsCharBlankW (WCHAR wc)
 
BOOL WINAPI IsCharPunctW (WCHAR wc)
 
BOOL WINAPI IsCharCntrlW (WCHAR wc)
 
BOOL WINAPI IsCharDigitW (WCHAR wc)
 
BOOL WINAPI IsCharXDigitW (WCHAR wc)
 
BOOL WINAPI GetStringType3ExW (LPWSTR src, INT count, LPWORD type)
 
DWORD WINAPI StrCmpNCA (LPCSTR lpszSrc, LPCSTR lpszCmp, INT len)
 
DWORD WINAPI StrCmpNCW (LPCWSTR lpszSrc, LPCWSTR lpszCmp, INT len)
 
DWORD WINAPI StrCmpNICA (LPCSTR lpszSrc, LPCSTR lpszCmp, DWORD len)
 
DWORD WINAPI StrCmpNICW (LPCWSTR lpszSrc, LPCWSTR lpszCmp, DWORD len)
 
DWORD WINAPI StrCmpCA (LPCSTR lpszSrc, LPCSTR lpszCmp)
 
DWORD WINAPI StrCmpCW (LPCWSTR lpszSrc, LPCWSTR lpszCmp)
 
DWORD WINAPI StrCmpICA (LPCSTR lpszSrc, LPCSTR lpszCmp)
 
DWORD WINAPI StrCmpICW (LPCWSTR lpszSrc, LPCWSTR lpszCmp)
 
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)
 
void WINAPI IUnknown_AtomicRelease (IUnknown **lpUnknown)
 
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_SetSite (IUnknown *obj, IUnknown *site)
 
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)
 
VOID WINAPI IUnknown_Set (IUnknown **lppDest, IUnknown *lpUnknown)
 
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 QISearch (void *base, const QITAB *table, REFIID riid, void **ppv)
 
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)
 
HRESULT WINAPI IUnknown_GetSite (LPUNKNOWN lpUnknown, REFIID iid, PVOID *lppSite)
 
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)
 
DWORD WINAPI WhichPlatform (void)
 
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, __ms_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)
 
BOOL WINAPI IsOS (DWORD feature)
 
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)
 
BOOL WINAPI SHIsLowMemoryMachine (DWORD dwType)
 
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)
 
HRESULT WINAPI SHGetViewStatePropertyBag (LPCITEMIDLIST pidl, LPWSTR bag_name, DWORD flags, 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 30 of file ordinal.c.

◆ EnableModeless

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

Definition at line 3532 of file ordinal.c.

◆ FDSA_FLAG_INTERNAL_ALLOC

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

Definition at line 2275 of file ordinal.c.

◆ GET_RGB

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

Definition at line 3886 of file ordinal.c.

◆ IShellBrowser_EnableModeless

#define IShellBrowser_EnableModeless   IShellBrowser_EnableModelessSB

Definition at line 3531 of file ordinal.c.

◆ IsIface

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

Definition at line 3530 of file ordinal.c.

◆ ISOS_RETURN

#define ISOS_RETURN (   x)
Value:
TRACE("(0x%x) ret=%d\n",feature,(x)); \
return (x);
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
INTERNETFEATURELIST feature
Definition: misc.c:1719
#define TRACE(s)
Definition: solgame.cpp:4

◆ OBJCOMPAT_COCREATESHELLFOLDERONLY

#define OBJCOMPAT_COCREATESHELLFOLDERONLY   0x00000100

Definition at line 6223 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_LIMITEDQI

#define OBJCOMPAT_CTXMENU_LIMITEDQI   0x00000080

Definition at line 6222 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_NOVERBS

#define OBJCOMPAT_CTXMENU_NOVERBS   0x00000040

Definition at line 6221 of file ordinal.c.

◆ OBJCOMPAT_CTXMENU_XPQCMFLAGS

#define OBJCOMPAT_CTXMENU_XPQCMFLAGS   0x00001000

Definition at line 6226 of file ordinal.c.

◆ OBJCOMPAT_NEEDSFILESYSANCESTOR

#define OBJCOMPAT_NEEDSFILESYSANCESTOR   0x00000010

Definition at line 6219 of file ordinal.c.

◆ OBJCOMPAT_NEEDSSTORAGEANCESTOR

#define OBJCOMPAT_NEEDSSTORAGEANCESTOR   0x00000200

Definition at line 6224 of file ordinal.c.

◆ OBJCOMPAT_NO_WEBVIEW

#define OBJCOMPAT_NO_WEBVIEW   0x00000002

Definition at line 6216 of file ordinal.c.

◆ OBJCOMPAT_NOIPROPERTYSTORE

#define OBJCOMPAT_NOIPROPERTYSTORE   0x00002000

Definition at line 6227 of file ordinal.c.

◆ OBJCOMPAT_NOLEGACYWEBVIEW

#define OBJCOMPAT_NOLEGACYWEBVIEW   0x00000400

Definition at line 6225 of file ordinal.c.

◆ OBJCOMPAT_NOTAFILESYSTEM

#define OBJCOMPAT_NOTAFILESYSTEM   0x00000020

Definition at line 6220 of file ordinal.c.

◆ OBJCOMPAT_OTNEEDSSFCACHE

#define OBJCOMPAT_OTNEEDSSFCACHE   0x00000001

Definition at line 6215 of file ordinal.c.

◆ OBJCOMPAT_PINDLL

#define OBJCOMPAT_PINDLL   0x00000008

Definition at line 6218 of file ordinal.c.

◆ OBJCOMPAT_UNBINDABLE

#define OBJCOMPAT_UNBINDABLE   0x00000004

Definition at line 6217 of file ordinal.c.

◆ SHELL_NO_POLICY

#define SHELL_NO_POLICY   0xffffffff

Definition at line 2718 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 4888 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 4074 of file ordinal.c.

4075{
4076 return CLSIDFromString((LPCOLESTR)idstr, id);
4077}
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
Definition: compobj.c:2338

◆ ColorAdjustLuma()

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

Definition at line 3770 of file ordinal.c.

3771{
3772 TRACE("(0x%8x,%d,%d)\n", cRGB, dwLuma, bUnknown);
3773
3774 if (dwLuma)
3775 {
3776 WORD wH, wL, wS;
3777
3778 ColorRGBToHLS(cRGB, &wH, &wL, &wS);
3779
3780 FIXME("Ignoring luma adjustment\n");
3781
3782 /* FIXME: The adjustment is not linear */
3783
3784 cRGB = ColorHLSToRGB(wH, wL, wS);
3785 }
3786 return cRGB;
3787}
#define FIXME(fmt,...)
Definition: debug.h:111
COLORREF WINAPI ColorHLSToRGB(WORD wHue, WORD wLuminosity, WORD wSaturation)
Definition: ordinal.c:3904
VOID WINAPI ColorRGBToHLS(COLORREF cRGB, LPWORD pwHue, LPWORD pwLuminance, LPWORD pwSaturation)
Definition: ordinal.c:4333
unsigned short WORD
Definition: ntddk_ex.h:93

◆ ColorHLSToRGB()

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

Definition at line 3904 of file ordinal.c.

3905{
3906 WORD wRed;
3907
3908 if (wSaturation)
3909 {
3910 WORD wGreen, wBlue, wMid1, wMid2;
3911
3912 if (wLuminosity > 120)
3913 wMid2 = wSaturation + wLuminosity - (wSaturation * wLuminosity + 120) / 240;
3914 else
3915 wMid2 = ((wSaturation + 240) * wLuminosity + 120) / 240;
3916
3917 wMid1 = wLuminosity * 2 - wMid2;
3918
3919 wRed = GET_RGB(wHue + 80);
3920 wGreen = GET_RGB(wHue);
3921 wBlue = GET_RGB(wHue - 80);
3922
3923 return RGB(wRed, wGreen, wBlue);
3924 }
3925
3926 wRed = wLuminosity * 255 / 240;
3927 return RGB(wRed, wRed, wRed);
3928}
#define GET_RGB(h)
Definition: ordinal.c:3886
#define RGB(r, g, b)
Definition: precomp.h:62

Referenced by ColorAdjustLuma().

◆ ColorRGBToHLS()

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

Definition at line 4333 of file ordinal.c.

4335{
4336 int wR, wG, wB, wMax, wMin, wHue, wLuminosity, wSaturation;
4337
4338 TRACE("(%08x,%p,%p,%p)\n", cRGB, pwHue, pwLuminance, pwSaturation);
4339
4340 wR = GetRValue(cRGB);
4341 wG = GetGValue(cRGB);
4342 wB = GetBValue(cRGB);
4343
4344 wMax = max(wR, max(wG, wB));
4345 wMin = min(wR, min(wG, wB));
4346
4347 /* Luminosity */
4348 wLuminosity = ((wMax + wMin) * 240 + 255) / 510;
4349
4350 if (wMax == wMin)
4351 {
4352 /* Achromatic case */
4353 wSaturation = 0;
4354 /* Hue is now unrepresentable, but this is what native returns... */
4355 wHue = 160;
4356 }
4357 else
4358 {
4359 /* Chromatic case */
4360 int wDelta = wMax - wMin, wRNorm, wGNorm, wBNorm;
4361
4362 /* Saturation */
4363 if (wLuminosity <= 120)
4364 wSaturation = ((wMax + wMin)/2 + wDelta * 240) / (wMax + wMin);
4365 else
4366 wSaturation = ((510 - wMax - wMin)/2 + wDelta * 240) / (510 - wMax - wMin);
4367
4368 /* Hue */
4369 wRNorm = (wDelta/2 + wMax * 40 - wR * 40) / wDelta;
4370 wGNorm = (wDelta/2 + wMax * 40 - wG * 40) / wDelta;
4371 wBNorm = (wDelta/2 + wMax * 40 - wB * 40) / wDelta;
4372
4373 if (wR == wMax)
4374 wHue = wBNorm - wGNorm;
4375 else if (wG == wMax)
4376 wHue = 80 + wRNorm - wBNorm;
4377 else
4378 wHue = 160 + wGNorm - wRNorm;
4379 if (wHue < 0)
4380 wHue += 240;
4381 else if (wHue > 240)
4382 wHue -= 240;
4383 }
4384 if (pwHue)
4385 *pwHue = wHue;
4386 if (pwLuminance)
4387 *pwLuminance = wLuminosity;
4388 if (pwSaturation)
4389 *pwSaturation = wSaturation;
4390}
#define GetBValue(quad)
Definition: precomp.h:66
#define GetGValue(quad)
Definition: precomp.h:65
#define GetRValue(quad)
Definition: precomp.h:64
#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 1189 of file ordinal.c.

1192{
1193 HRESULT hRet;
1194 IConnectionPointContainer* lpContainer;
1195 IConnectionPoint *lpCP;
1196
1197 if(!lpUnknown || (fConnect && !lpUnkSink))
1198 return E_FAIL;
1199
1200 if(lppCP)
1201 *lppCP = NULL;
1202
1203 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IConnectionPointContainer,
1204 (void**)&lpContainer);
1205 if (SUCCEEDED(hRet))
1206 {
1207 hRet = IConnectionPointContainer_FindConnectionPoint(lpContainer, riid, &lpCP);
1208
1209 if (SUCCEEDED(hRet))
1210 {
1211 if(!fConnect)
1212 hRet = IConnectionPoint_Unadvise(lpCP, *lpCookie);
1213 else
1214 hRet = IConnectionPoint_Advise(lpCP, lpUnkSink, lpCookie);
1215
1216 if (FAILED(hRet))
1217 *lpCookie = 0;
1218
1219 if (lppCP && SUCCEEDED(hRet))
1220 *lppCP = lpCP; /* Caller keeps the interface */
1221 else
1222 IConnectionPoint_Release(lpCP); /* Release it */
1223 }
1224
1225 IConnectionPointContainer_Release(lpContainer);
1226 }
1227 return hRet;
1228}
#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 3871 of file ordinal.c.

3872{
3873 wHue = wHue > 240 ? wHue - 240 : wHue < 0 ? wHue + 240 : wHue;
3874
3875 if (wHue > 160)
3876 return wMid1;
3877 else if (wHue > 120)
3878 wHue = 160 - wHue;
3879 else if (wHue > 40)
3880 return wMid2;
3881
3882 return ((wHue * (wMid2 - wMid1) + 20) / 40) + wMid1;
3883}

◆ DragQueryFileWrapW()

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

Definition at line 3444 of file ordinal.c.

3445{
3446 return DragQueryFileW(hDrop, lFile, lpszFile, lLength);
3447}
UINT WINAPI DragQueryFileW(HDROP hDrop, UINT lFile, LPWSTR lpszwFile, UINT lLength)
Definition: shellole.c:622

◆ ExtractIconWrapW()

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

Definition at line 3676 of file ordinal.c.

3678{
3679 return ExtractIconW(hInstance, lpszExeFileName, nIconIndex);
3680}
HINSTANCE hInstance
Definition: charmap.c:19
HICON WINAPI ExtractIconW(HINSTANCE hInstance, LPCWSTR lpszFile, UINT nIconIndex)
Definition: shell32_main.c:876

◆ FDSA_DeleteItem()

BOOL WINAPI FDSA_DeleteItem ( FDSA_info info,
DWORD  where 
)

Definition at line 2364 of file ordinal.c.

2365{
2366 TRACE("(%p 0x%08x)\n", info, where);
2367
2368 if(where >= info->num_items)
2369 return FALSE;
2370
2371 if(where < info->num_items - 1)
2372 {
2373 memmove((char*)info->mem + where * info->block_size,
2374 (char*)info->mem + (where + 1) * info->block_size,
2375 (info->num_items - where - 1) * info->block_size);
2376 }
2377 memset((char*)info->mem + (info->num_items - 1) * info->block_size,
2378 0, info->block_size);
2379 info->num_items--;
2380 return TRUE;
2381}
#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 2308 of file ordinal.c.

2309{
2310 TRACE("(%p)\n", info);
2311
2312 if(info->flags & FDSA_FLAG_INTERNAL_ALLOC)
2313 {
2314 HeapFree(GetProcessHeap(), 0, info->mem);
2315 return FALSE;
2316 }
2317
2318 return TRUE;
2319}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
#define FDSA_FLAG_INTERNAL_ALLOC
Definition: ordinal.c:2275

◆ FDSA_Initialize()

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

Definition at line 2282 of file ordinal.c.

2284{
2285 TRACE("(0x%08x 0x%08x %p %p 0x%08x)\n", block_size, inc, info, mem, init_blocks);
2286
2287 if(inc == 0)
2288 inc = 1;
2289
2290 if(mem)
2291 memset(mem, 0, block_size * init_blocks);
2292
2293 info->num_items = 0;
2294 info->inc = inc;
2295 info->mem = mem;
2296 info->blocks_alloced = init_blocks;
2297 info->block_size = block_size;
2298 info->flags = 0;
2299
2300 return TRUE;
2301}
static DWORD block_size(DWORD block)
Definition: jsutils.c:66
Definition: mem.c:156

◆ FDSA_InsertItem()

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

Definition at line 2326 of file ordinal.c.

2327{
2328 TRACE("(%p 0x%08x %p)\n", info, where, block);
2329 if(where > info->num_items)
2330 where = info->num_items;
2331
2332 if(info->num_items >= info->blocks_alloced)
2333 {
2334 DWORD size = (info->blocks_alloced + info->inc) * info->block_size;
2335 if(info->flags & 0x1)
2337 else
2338 {
2339 void *old_mem = info->mem;
2341 memcpy(info->mem, old_mem, info->blocks_alloced * info->block_size);
2342 }
2343 info->blocks_alloced += info->inc;
2344 info->flags |= 0x1;
2345 }
2346
2347 if(where < info->num_items)
2348 {
2349 memmove((char*)info->mem + (where + 1) * info->block_size,
2350 (char*)info->mem + where * info->block_size,
2351 (info->num_items - where) * info->block_size);
2352 }
2353 memcpy((char*)info->mem + where * info->block_size, block, info->block_size);
2354
2355 info->num_items++;
2356 return where;
2357}
#define HeapAlloc
Definition: compat.h:733
#define HeapReAlloc
Definition: compat.h:734
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static unsigned int block
Definition: xmlmemory.c:101

◆ FixSlashesAndColonW()

VOID WINAPI FixSlashesAndColonW ( LPWSTR  lpwstr)

Definition at line 4514 of file ordinal.c.

4515{
4516 while (*lpwstr)
4517 {
4518 if (*lpwstr == '/')
4519 *lpwstr = '\\';
4520 lpwstr++;
4521 }
4522}

Referenced by PathQualifyExW().

◆ GetAcceptLanguagesA()

HRESULT WINAPI GetAcceptLanguagesA ( LPSTR  langbuf,
LPDWORD  buflen 
)

Definition at line 573 of file ordinal.c.

574{
575 WCHAR *langbufW;
576 DWORD buflenW, convlen;
577 HRESULT retval;
578
579 TRACE("(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
580
581 if(!langbuf || !buflen || !*buflen) return E_FAIL;
582
583 buflenW = *buflen;
584 langbufW = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * buflenW);
585 retval = GetAcceptLanguagesW(langbufW, &buflenW);
586
587 if (retval == S_OK)
588 {
589 convlen = WideCharToMultiByte(CP_ACP, 0, langbufW, -1, langbuf, *buflen, NULL, NULL);
590 convlen--; /* do not count the terminating 0 */
591 }
592 else /* copy partial string anyway */
593 {
594 convlen = WideCharToMultiByte(CP_ACP, 0, langbufW, *buflen, langbuf, *buflen, NULL, NULL);
595 if (convlen < *buflen)
596 {
597 langbuf[convlen] = 0;
598 convlen--; /* do not count the terminating 0 */
599 }
600 else
601 {
602 convlen = *buflen;
603 }
604 }
605 *buflen = buflenW ? convlen : 0;
606
607 HeapFree(GetProcessHeap(), 0, langbufW);
608 return retval;
609}
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
HRESULT WINAPI GetAcceptLanguagesW(LPWSTR langbuf, LPDWORD buflen)
Definition: ordinal.c:514
#define S_OK
Definition: intsafe.h:52
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by init_pointers().

◆ GetAcceptLanguagesW()

HRESULT WINAPI GetAcceptLanguagesW ( LPWSTR  langbuf,
LPDWORD  buflen 
)

Definition at line 514 of file ordinal.c.

515{
516 static const WCHAR szkeyW[] = {
517 'S','o','f','t','w','a','r','e','\\',
518 'M','i','c','r','o','s','o','f','t','\\',
519 'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\',
520 'I','n','t','e','r','n','a','t','i','o','n','a','l',0};
521 static const WCHAR valueW[] = {
522 'A','c','c','e','p','t','L','a','n','g','u','a','g','e',0};
523 DWORD mystrlen, mytype;
524 DWORD len;
525 HKEY mykey;
526 LCID mylcid;
527 WCHAR *mystr;
528 LONG lres;
529
530 TRACE("(%p, %p) *%p: %d\n", langbuf, buflen, buflen, buflen ? *buflen : -1);
531
532 if(!langbuf || !buflen || !*buflen)
533 return E_FAIL;
534
535 mystrlen = (*buflen > 20) ? *buflen : 20 ;
536 len = mystrlen * sizeof(WCHAR);
537 mystr = HeapAlloc(GetProcessHeap(), 0, len);
538 mystr[0] = 0;
539 RegOpenKeyW(HKEY_CURRENT_USER, szkeyW, &mykey);
540 lres = RegQueryValueExW(mykey, valueW, 0, &mytype, (PBYTE)mystr, &len);
541 RegCloseKey(mykey);
542 len = lstrlenW(mystr);
543
544 if (!lres && (*buflen > len)) {
545 lstrcpyW(langbuf, mystr);
546 *buflen = len;
547 HeapFree(GetProcessHeap(), 0, mystr);
548 return S_OK;
549 }
550
551 /* Did not find a value in the registry or the user buffer is too small */
552 mylcid = GetUserDefaultLCID();
553 LcidToRfc1766W(mylcid, mystr, mystrlen);
554 len = lstrlenW(mystr);
555
556 memcpy( langbuf, mystr, min(*buflen, len+1)*sizeof(WCHAR) );
557 HeapFree(GetProcessHeap(), 0, mystr);
558
559 if (*buflen > len) {
560 *buflen = len;
561 return S_OK;
562 }
563
564 *buflen = 0;
566}
#define RegCloseKey(hKey)
Definition: registry.h:49
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3297
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4132
#define lstrcpyW
Definition: compat.h:749
#define lstrlenW
Definition: compat.h:750
static const WCHAR valueW[]
Definition: object.c:48
HRESULT WINAPI LcidToRfc1766W(LCID lcid, LPWSTR pszRfc1766, INT nChar)
Definition: mlang.c:1265
GLenum GLsizei len
Definition: glext.h:6722
LCID WINAPI GetUserDefaultLCID(void)
Definition: lang.c:778
BYTE * PBYTE
Definition: pedump.c:66
long LONG
Definition: pedump.c:60
DWORD LCID
Definition: nls.h:13
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:2345
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by GetAcceptLanguagesA().

◆ GetFileVersionInfoSizeWrapW()

DWORD WINAPI GetFileVersionInfoSizeWrapW ( LPCWSTR  filename,
LPDWORD  handle 
)

Definition at line 3503 of file ordinal.c.

3504{
3506}
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
Definition: version.c:611
const char * filename
Definition: ioapi.h:137

◆ GetFileVersionInfoWrapW()

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

Definition at line 3513 of file ordinal.c.

3515{
3517}
static SIZE_T datasize
Definition: asm.c:30
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
Definition: version.c:845
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 4477 of file ordinal.c.

4478{
4480 INT nCount = GetMenuItemCount(hMenu), nIter = 0;
4481
4482 TRACE("%p %u\n", hMenu, wID);
4483
4484 while (nIter < nCount)
4485 {
4486 mi.cbSize = sizeof(mi);
4487 mi.fMask = MIIM_ID;
4488 if (GetMenuItemInfoW(hMenu, nIter, TRUE, &mi) && mi.wID == wID)
4489 {
4490 TRACE("ret %d\n", nIter);
4491 return nIter;
4492 }
4493 nIter++;
4494 }
4495
4496 return -1;
4497}
DWORD cbSize
Definition: winuser.h:3784
int32_t INT
Definition: typedefs.h:58
static MONITORINFO mi
Definition: win.c:7338
#define MIIM_ID
Definition: winuser.h:722
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
BOOL WINAPI GetMenuItemInfoW(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOW)

Referenced by SHMenuIndexFromID().

◆ GetOpenFileNameWrapW()

BOOL WINAPI GetOpenFileNameWrapW ( LPOPENFILENAMEW  ofn)

Definition at line 3845 of file ordinal.c.

3846{
3847 return GetOpenFileNameW(ofn);
3848}
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
Definition: filedlg.c:4736
OPENFILENAME ofn
Definition: sndrec32.cpp:56

◆ GetSaveFileNameWrapW()

BOOL WINAPI GetSaveFileNameWrapW ( LPOPENFILENAMEW  ofn)

Definition at line 3794 of file ordinal.c.

3795{
3796 return GetSaveFileNameW(ofn);
3797}
BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn)
Definition: filedlg.c:4801

◆ GetShellSecurityDescriptor()

PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor ( const PSHELL_USER_PERMISSION apUserPerm,
int  cUserPerm 
)

Definition at line 5043 of file ordinal.c.

5044{
5045 PSID *sidlist;
5046 PSID cur_user = NULL;
5047 BYTE tuUser[2000];
5048 DWORD acl_size;
5049 int sid_count, i;
5051
5052 TRACE("%p %d\n", apUserPerm, cUserPerm);
5053
5054 if (apUserPerm == NULL || cUserPerm <= 0)
5055 return NULL;
5056
5057 sidlist = HeapAlloc(GetProcessHeap(), 0, cUserPerm * sizeof(PSID));
5058 if (!sidlist)
5059 return NULL;
5060
5061 acl_size = sizeof(ACL);
5062
5063 for(sid_count = 0; sid_count < cUserPerm; sid_count++)
5064 {
5065 static SHELL_USER_SID null_sid = {{SECURITY_NULL_SID_AUTHORITY}, 0, 0};
5066 PSHELL_USER_PERMISSION perm = apUserPerm[sid_count];
5067 PSHELL_USER_SID sid = &perm->susID;
5068 PSID pSid;
5069 BOOL ret = TRUE;
5070
5071 if (!memcmp((void*)sid, (void*)&null_sid, sizeof(SHELL_USER_SID)))
5072 { /* current user's SID */
5073 if (!cur_user)
5074 {
5075 HANDLE Token;
5076 DWORD bufsize = sizeof(tuUser);
5077
5079 if (ret)
5080 {
5081 ret = GetTokenInformation(Token, TokenUser, (void*)tuUser, bufsize, &bufsize );
5082 if (ret)
5083 cur_user = ((PTOKEN_USER)tuUser)->User.Sid;
5085 }
5086 }
5087 pSid = cur_user;
5088 } else if (sid->dwUserID==0) /* one sub-authority */
5089 ret = AllocateAndInitializeSid(&sid->sidAuthority, 1, sid->dwUserGroupID, 0,
5090 0, 0, 0, 0, 0, 0, &pSid);
5091 else
5092 ret = AllocateAndInitializeSid(&sid->sidAuthority, 2, sid->dwUserGroupID, sid->dwUserID,
5093 0, 0, 0, 0, 0, 0, &pSid);
5094 if (!ret)
5095 goto free_sids;
5096
5097 sidlist[sid_count] = pSid;
5098 /* increment acl_size (1 ACE for non-inheritable and 2 ACEs for inheritable records */
5099 acl_size += (sizeof(ACCESS_ALLOWED_ACE)-sizeof(DWORD) + GetLengthSid(pSid)) * (perm->fInherit ? 2 : 1);
5100 }
5101
5102 psd = LocalAlloc(0, sizeof(SECURITY_DESCRIPTOR) + acl_size);
5103
5104 if (psd != NULL)
5105 {
5106 PACL pAcl = (PACL)(((BYTE*)psd)+sizeof(SECURITY_DESCRIPTOR));
5107
5109 goto error;
5110
5111 if (!InitializeAcl(pAcl, acl_size, ACL_REVISION))
5112 goto error;
5113
5114 for(i = 0; i < sid_count; i++)
5115 {
5116 PSHELL_USER_PERMISSION sup = apUserPerm[i];
5117 PSID sid = sidlist[i];
5118
5119 switch(sup->dwAccessType)
5120 {
5123 goto error;
5124 if (sup->fInherit && !AddAccessAllowedAceEx(pAcl, ACL_REVISION,
5126 goto error;
5127 break;
5130 goto error;
5131 if (sup->fInherit && !AddAccessDeniedAceEx(pAcl, ACL_REVISION,
5133 goto error;
5134 break;
5135 default:
5136 goto error;
5137 }
5138 }
5139
5140 if (!SetSecurityDescriptorDacl(psd, TRUE, pAcl, FALSE))
5141 goto error;
5142 }
5143 goto free_sids;
5144
5145error:
5146 LocalFree(psd);
5147 psd = NULL;
5148free_sids:
5149 for(i = 0; i < sid_count; i++)
5150 {
5151 if (!cur_user || sidlist[i] != cur_user)
5152 FreeSid(sidlist[i]);
5153 }
5154 HeapFree(GetProcessHeap(), 0, sidlist);
5155
5156 return psd;
5157}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
static void free_sids(PSID *sids, int count)
Definition: acl.c:155
FT_UInt sid
Definition: cffcmap.c:139
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
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:74
struct _ACL ACL
struct _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR
struct _ACL * PACL
Definition: security.c:105
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:5018
int ret
struct _TOKEN_USER * PTOKEN_USER
#define ACCESS_ALLOWED_ACE_TYPE
Definition: setypes.h:717
#define TOKEN_QUERY
Definition: setypes.h:928
@ TokenUser
Definition: setypes.h:966
#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 779 of file ordinal.c.

780{
782}
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
BOOL WINAPI GetStringTypeW(DWORD type, LPCWSTR src, INT count, LPWORD chartype)
Definition: lang.c:1709
#define CT_CTYPE3
Definition: winnls.h:239

◆ GetUIVersion()

DWORD WINAPI GetUIVersion ( void  )

Definition at line 4893 of file ordinal.c.

4894{
4895 static DWORD version;
4896
4897 if (!version)
4898 {
4899 DllGetVersion_func pDllGetVersion;
4900 HMODULE dll = LoadLibraryA("shell32.dll");
4901 if (!dll) return 0;
4902
4903 pDllGetVersion = (DllGetVersion_func)GetProcAddress(dll, "DllGetVersion");
4904 if (pDllGetVersion)
4905 {
4906 DLLVERSIONINFO dvi;
4907 dvi.cbSize = sizeof(DLLVERSIONINFO);
4908 if (pDllGetVersion(&dvi) == S_OK) version = dvi.dwMajorVersion;
4909 }
4910 FreeLibrary( dll );
4911 if (!version) version = 3; /* old shell dlls don't have DllGetVersion */
4912 }
4913 return version;
4914}
#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:4888
static HMODULE dll
Definition: str.c:188
struct _DllVersionInfo DLLVERSIONINFO
DWORD dwMajorVersion
Definition: shlwapi.h:1955

◆ GUIDFromStringA()

BOOL WINAPI GUIDFromStringA ( LPCSTR  idstr,
CLSID id 
)

Definition at line 2912 of file ordinal.c.

2913{
2914 WCHAR wClsid[40];
2915 MultiByteToWideChar(CP_ACP, 0, idstr, -1, wClsid, sizeof(wClsid)/sizeof(WCHAR));
2916 return SUCCEEDED(CLSIDFromString(wClsid, id));
2917}
#define MultiByteToWideChar
Definition: compat.h:110

Referenced by init_pointers().

◆ GUIDFromStringW()

BOOL WINAPI GUIDFromStringW ( LPCWSTR  idstr,
CLSID id 
)

Definition at line 2924 of file ordinal.c.

2925{
2926 return SUCCEEDED(CLSIDFromString((LPCOLESTR)idstr, id));
2927}

◆ IConnectionPoint_InvokeWithCancel()

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

Definition at line 3176 of file ordinal.c.

3179{
3180 IID iid;
3182
3183 FIXME("(%p)->(0x%x %p %x %x) partial stub\n", iCP, dispId, dispParams, unknown1, unknown2);
3184
3185 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3186 if (SUCCEEDED(result))
3187 result = SHLWAPI_InvokeByIID(iCP, &iid, dispId, dispParams);
3188 else
3189 result = SHLWAPI_InvokeByIID(iCP, NULL, dispId, dispParams);
3190
3191 return result;
3192}
static HRESULT SHLWAPI_InvokeByIID(IConnectionPoint *iCP, REFIID iid, DISPID dispId, DISPPARAMS *dispParams)
Definition: ordinal.c:3137
GLuint64EXT * result
Definition: glext.h:11304

Referenced by init_pointers().

◆ IConnectionPoint_OnChanged()

HRESULT WINAPI IConnectionPoint_OnChanged ( IConnectionPoint lpCP,
DISPID  dispID 
)

Definition at line 3233 of file ordinal.c.

3234{
3235 IEnumConnections *lpEnum;
3236 HRESULT hRet = E_NOINTERFACE;
3237
3238 TRACE("(%p,0x%8X)\n", lpCP, dispID);
3239
3240 /* Get an enumerator for the connections */
3241 if (lpCP)
3242 hRet = IConnectionPoint_EnumConnections(lpCP, &lpEnum);
3243
3244 if (SUCCEEDED(hRet))
3245 {
3246 IPropertyNotifySink *lpSink;
3247 CONNECTDATA connData;
3248 ULONG ulFetched;
3249
3250 /* Call OnChanged() for every notify sink in the connection point */
3251 while (IEnumConnections_Next(lpEnum, 1, &connData, &ulFetched) == S_OK)
3252 {
3253 if (SUCCEEDED(IUnknown_QueryInterface(connData.pUnk, &IID_IPropertyNotifySink, (void**)&lpSink)) &&
3254 lpSink)
3255 {
3256 IPropertyNotifySink_OnChanged(lpSink, dispID);
3257 IPropertyNotifySink_Release(lpSink);
3258 }
3259 IUnknown_Release(connData.pUnk);
3260 }
3261
3262 IEnumConnections_Release(lpEnum);
3263 }
3264 return hRet;
3265}
const GUID IID_IPropertyNotifySink
uint32_t ULONG
Definition: typedefs.h:59
#define E_NOINTERFACE
Definition: winerror.h:2364

Referenced by IUnknown_CPContainerOnChanged().

◆ IConnectionPoint_SimpleInvoke()

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

Definition at line 3200 of file ordinal.c.

3204{
3205 IID iid;
3207
3208 TRACE("(%p)->(0x%x %p)\n",iCP,dispId,dispParams);
3209
3210 result = IConnectionPoint_GetConnectionInterface(iCP, &iid);
3211 if (SUCCEEDED(result))
3212 result = SHLWAPI_InvokeByIID(iCP, &iid, dispId, dispParams);
3213 else
3214 result = SHLWAPI_InvokeByIID(iCP, NULL, dispId, dispParams);
3215
3216 return result;
3217}

Referenced by init_pointers().

◆ IsCharBlankW()

BOOL WINAPI IsCharBlankW ( WCHAR  wc)

Definition at line 692 of file ordinal.c.

693{
694 WORD CharType;
695
696 return GetStringTypeW(CT_CTYPE1, &wc, 1, &CharType) && (CharType & C1_BLANK);
697}
#define C1_BLANK
Definition: unicode.h:37
#define CT_CTYPE1
Definition: winnls.h:237

◆ IsCharCntrlW()

BOOL WINAPI IsCharCntrlW ( WCHAR  wc)

Definition at line 730 of file ordinal.c.

731{
732 WORD CharType;
733
734 return GetStringTypeW(CT_CTYPE1, &wc, 1, &CharType) && (CharType & C1_CNTRL);
735}
#define C1_CNTRL
Definition: unicode.h:36

◆ IsCharDigitW()

BOOL WINAPI IsCharDigitW ( WCHAR  wc)

Definition at line 749 of file ordinal.c.

750{
751 WORD CharType;
752
753 return GetStringTypeW(CT_CTYPE1, &wc, 1, &CharType) && (CharType & C1_DIGIT);
754}
#define C1_DIGIT
Definition: unicode.h:33

◆ IsCharPunctW()

BOOL WINAPI IsCharPunctW ( WCHAR  wc)

Definition at line 711 of file ordinal.c.

712{
713 WORD CharType;
714
715 return GetStringTypeW(CT_CTYPE1, &wc, 1, &CharType) && (CharType & C1_PUNCT);
716}
#define C1_PUNCT
Definition: unicode.h:35

◆ IsCharXDigitW()

BOOL WINAPI IsCharXDigitW ( WCHAR  wc)

Definition at line 768 of file ordinal.c.

769{
770 WORD CharType;
771
772 return GetStringTypeW(CT_CTYPE1, &wc, 1, &CharType) && (CharType & C1_XDIGIT);
773}
#define C1_XDIGIT
Definition: unicode.h:38

◆ IsOS()

BOOL WINAPI IsOS ( DWORD  feature)

Definition at line 4091 of file ordinal.c.

4092{
4094 DWORD platform, majorv, minorv;
4095
4097 if(!GetVersionExA(&osvi)) {
4098 ERR("GetVersionEx failed\n");
4099 return FALSE;
4100 }
4101
4102 majorv = osvi.dwMajorVersion;
4103 minorv = osvi.dwMinorVersion;
4105
4106#define ISOS_RETURN(x) \
4107 TRACE("(0x%x) ret=%d\n",feature,(x)); \
4108 return (x);
4109
4110 switch(feature) {
4111 case OS_WIN32SORGREATER:
4114 case OS_NT:
4116 case OS_WIN95ORGREATER:
4118 case OS_NT4ORGREATER:
4119 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 4)
4122 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5)
4123 case OS_WIN98ORGREATER:
4125 case OS_WIN98_GOLD:
4127 case OS_WIN2000PRO:
4128 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5)
4129 case OS_WIN2000SERVER:
4130 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1))
4132 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1))
4134 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1))
4135 case OS_WIN2000TERMINAL:
4136 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && (minorv == 0 || minorv == 1))
4137 case OS_EMBEDDED:
4138 FIXME("(OS_EMBEDDED) What should we return here?\n");
4139 return FALSE;
4140 case OS_TERMINALCLIENT:
4141 FIXME("(OS_TERMINALCLIENT) What should we return here?\n");
4142 return FALSE;
4144 FIXME("(OS_TERMINALREMOTEADMIN) What should we return here?\n");
4145 return FALSE;
4146 case OS_WIN95_GOLD:
4148 case OS_MEORGREATER:
4150 case OS_XPORGREATER:
4151 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5 && minorv >= 1)
4152 case OS_HOME:
4153 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5 && minorv >= 1)
4154 case OS_PROFESSIONAL:
4156 case OS_DATACENTER:
4158 case OS_ADVSERVER:
4159 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 5)
4160 case OS_SERVER:
4162 case OS_TERMINALSERVER:
4165 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && minorv >= 1 && majorv >= 5)
4167 FIXME("(OS_FASTUSERSWITCHING) What should we return here?\n");
4168 return TRUE;
4169 case OS_WELCOMELOGONUI:
4170 FIXME("(OS_WELCOMELOGONUI) What should we return here?\n");
4171 return FALSE;
4172 case OS_DOMAINMEMBER:
4173 FIXME("(OS_DOMAINMEMBER) What should we return here?\n");
4174 return TRUE;
4175 case OS_ANYSERVER:
4177 case OS_WOW6432:
4178 {
4179 BOOL is_wow64;
4181 return is_wow64;
4182 }
4183 case OS_WEBSERVER:
4187 case OS_TABLETPC:
4188 FIXME("(OS_TABLETPC) What should we return here?\n");
4189 return FALSE;
4190 case OS_SERVERADMINUI:
4191 FIXME("(OS_SERVERADMINUI) What should we return here?\n");
4192 return FALSE;
4193 case OS_MEDIACENTER:
4194 FIXME("(OS_MEDIACENTER) What should we return here?\n");
4195 return FALSE;
4196 case OS_APPLIANCE:
4197 FIXME("(OS_APPLIANCE) What should we return here?\n");
4198 return FALSE;
4199 case 0x25: /*OS_VISTAORGREATER*/
4200 ISOS_RETURN(platform == VER_PLATFORM_WIN32_NT && majorv >= 6)
4201 }
4202
4203#undef ISOS_RETURN
4204
4205 WARN("(0x%x) unknown parameter\n",feature);
4206
4207 return FALSE;
4208}
#define WARN(fmt,...)
Definition: debug.h:112
#define ERR(fmt,...)
Definition: debug.h:110
return
Definition: dirsup.c:529
#define IsWow64Process
Definition: compat.h:760
BOOL WINAPI GetVersionExA(IN LPOSVERSIONINFOA lpVersionInformation)
Definition: version.c:69
BOOL is_wow64
Definition: msi.c:54
#define ISOS_RETURN(x)
GLdouble n
Definition: glext.h:7729
platform
Definition: msipriv.h:364
#define VER_PLATFORM_WIN32_NT
Definition: rtltypes.h:238
#define VER_PLATFORM_WIN32_WINDOWS
Definition: rtltypes.h:237
#define VER_PLATFORM_WIN32s
Definition: rtltypes.h:236
#define OS_WIN2000TERMINAL
Definition: shlwapi.h:2028
#define OS_WIN98_GOLD
Definition: shlwapi.h:2022
#define OS_APPLIANCE
Definition: shlwapi.h:2052
#define OS_WIN95ORGREATER
Definition: shlwapi.h:2018
#define OS_MEDIACENTER
Definition: shlwapi.h:2051
#define OS_WIN95_GOLD
Definition: shlwapi.h:2032
#define OS_WIN2000ORGREATER_ALT
Definition: shlwapi.h:2020
#define OS_SMALLBUSINESSSERVER
Definition: shlwapi.h:2048
#define OS_WIN98ORGREATER
Definition: shlwapi.h:2021
#define OS_NT
Definition: shlwapi.h:2017
#define OS_MEORGREATER
Definition: shlwapi.h:2033
#define OS_WIN2000ADVSERVER
Definition: shlwapi.h:2026
#define OS_XPORGREATER
Definition: shlwapi.h:2034
#define OS_WIN2000ORGREATER
Definition: shlwapi.h:2023
#define OS_WIN2000PRO
Definition: shlwapi.h:2024
#define OS_WIN2000SERVER
Definition: shlwapi.h:2025
#define OS_TERMINALSERVER
Definition: shlwapi.h:2040
#define OS_SERVERADMINUI
Definition: shlwapi.h:2050
#define OS_PROFESSIONAL
Definition: shlwapi.h:2036
#define OS_WOW6432
Definition: shlwapi.h:2046
#define OS_TERMINALCLIENT
Definition: shlwapi.h:2030
#define OS_DOMAINMEMBER
Definition: shlwapi.h:2044
#define OS_WIN32SORGREATER
Definition: shlwapi.h:2016
#define OS_WIN2000DATACENTER
Definition: shlwapi.h:2027
#define OS_NT4ORGREATER
Definition: shlwapi.h:2019
#define OS_TABLETPC
Definition: shlwapi.h:2049
#define OS_ADVSERVER
Definition: shlwapi.h:2038
#define OS_EMBEDDED
Definition: shlwapi.h:2029
#define OS_SERVER
Definition: shlwapi.h:2039
#define OS_TERMINALREMOTEADMIN
Definition: shlwapi.h:2031
#define OS_FASTUSERSWITCHING
Definition: shlwapi.h:2042
#define OS_PERSONALTERMINALSERVER
Definition: shlwapi.h:2041
#define OS_WELCOMELOGONUI
Definition: shlwapi.h:2043
#define OS_HOME
Definition: shlwapi.h:2035
#define OS_ANYSERVER
Definition: shlwapi.h:2045
#define OS_DATACENTER
Definition: shlwapi.h:2037
#define OS_WEBSERVER
Definition: shlwapi.h:2047
ULONG dwPlatformId
Definition: rtltypes.h:241
ULONG dwOSVersionInfoSize
Definition: rtltypes.h:237
ULONG dwMajorVersion
Definition: rtltypes.h:238
ULONG dwMinorVersion
Definition: rtltypes.h:239
OSVERSIONINFO osvi
Definition: ver.c:28
struct _OSVERSIONINFOA OSVERSIONINFOA

◆ IsQSForward()

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

Definition at line 2231 of file ordinal.c.

2232{
2233 FIXME("(%p,%d,%p) - stub!\n", pguidCmdGroup, cCmds, prgCmds);
2235}
#define DRAGDROP_E_NOTREGISTERED
Definition: winerror.h:2652

◆ IUnknown_AtomicRelease()

void WINAPI IUnknown_AtomicRelease ( IUnknown **  lpUnknown)

Definition at line 1241 of file ordinal.c.

1242{
1243 TRACE("(%p)\n", lpUnknown);
1244
1245 if(!lpUnknown || !*lpUnknown) return;
1246
1247 TRACE("doing Release\n");
1248
1249 IUnknown_Release(*lpUnknown);
1250 *lpUnknown = NULL;
1251}

Referenced by IUnknown_Set(), and SHWeakReleaseInterface().

◆ IUnknown_CPContainerInvokeParam()

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

Definition at line 3272 of file ordinal.c.

3278{
3280 IConnectionPoint *iCP;
3282 DISPPARAMS dispParams = {buffer, NULL, cParams, 0};
3284
3285 if (!container)
3286 return E_NOINTERFACE;
3287
3288 result = IUnknown_QueryInterface(container, &IID_IConnectionPointContainer,(LPVOID*) &iCPC);
3289 if (FAILED(result))
3290 return result;
3291
3292 result = IConnectionPointContainer_FindConnectionPoint(iCPC, riid, &iCP);
3293 IConnectionPointContainer_Release(iCPC);
3294 if(FAILED(result))
3295 return result;
3296
3297 __ms_va_start(valist, cParams);
3298 SHPackDispParamsV(&dispParams, buffer, cParams, valist);
3300
3301 result = SHLWAPI_InvokeByIID(iCP, riid, dispId, &dispParams);
3302 IConnectionPoint_Release(iCP);
3303
3304 return result;
3305}
HRESULT WINAPI SHPackDispParamsV(DISPPARAMS *params, VARIANTARG *args, UINT cnt, __ms_va_list valist)
Definition: ordinal.c:3067
GLuint buffer
Definition: glext.h:5915
static __ms_va_list valist
Definition: printf.c:66
struct stdole::DISPPARAMS DISPPARAMS
#define __ms_va_list
Definition: windef.h:456
#define __ms_va_end(list)
Definition: windef.h:458
#define __ms_va_start(list, arg)
Definition: windef.h:457

◆ IUnknown_CPContainerOnChanged()

HRESULT WINAPI IUnknown_CPContainerOnChanged ( IUnknown lpUnknown,
DISPID  dispID 
)

Definition at line 3321 of file ordinal.c.

3322{
3324 HRESULT hRet = E_NOINTERFACE;
3325
3326 TRACE("(%p,0x%8X)\n", lpUnknown, dispID);
3327
3328 if (lpUnknown)
3329 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IConnectionPointContainer, (void**)&lpCPC);
3330
3331 if (SUCCEEDED(hRet))
3332 {
3333 IConnectionPoint* lpCP;
3334
3335 hRet = IConnectionPointContainer_FindConnectionPoint(lpCPC, &IID_IPropertyNotifySink, &lpCP);
3336 IConnectionPointContainer_Release(lpCPC);
3337
3338 hRet = IConnectionPoint_OnChanged(lpCP, dispID);
3339 IConnectionPoint_Release(lpCP);
3340 }
3341 return hRet;
3342}
HRESULT WINAPI IConnectionPoint_OnChanged(IConnectionPoint *lpCP, DISPID dispID)
Definition: ordinal.c:3233

◆ IUnknown_EnableModeless()

HRESULT WINAPI IUnknown_EnableModeless ( IUnknown lpUnknown,
BOOL  bModeless 
)

Definition at line 3553 of file ordinal.c.

3554{
3555 IUnknown *lpObj;
3556 HRESULT hRet;
3557
3558 TRACE("(%p,%d)\n", lpUnknown, bModeless);
3559
3560 if (!lpUnknown)
3561 return E_FAIL;
3562
3565 else if (IsIface(IOleInPlaceFrame))
3567 else if (IsIface(IShellBrowser))
3571 else if (IsIface(IDocHostUIHandler))
3573 else
3574 return hRet;
3575
3576 IUnknown_Release(lpObj);
3577 return S_OK;
3578}
#define EnableModeless(type)
Definition: ordinal.c:3532
#define IsIface(type)
Definition: ordinal.c:3530

◆ IUnknown_Exec()

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

Definition at line 1083 of file ordinal.c.

1086{
1087 HRESULT hRet = E_FAIL;
1088
1089 TRACE("(%p,%p,%d,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, nCmdID,
1090 nCmdexecopt, pvaIn, pvaOut);
1091
1092 if (lpUnknown)
1093 {
1094 IOleCommandTarget* lpOle;
1095
1096 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1097 (void**)&lpOle);
1098 if (SUCCEEDED(hRet) && lpOle)
1099 {
1100 hRet = IOleCommandTarget_Exec(lpOle, pguidCmdGroup, nCmdID,
1101 nCmdexecopt, pvaIn, pvaOut);
1102 IOleCommandTarget_Release(lpOle);
1103 }
1104 }
1105 return hRet;
1106}

Referenced by CTrayBandSite::AddBand(), CTrayWindow::CheckTrayWndPosition(), CInternetToolbar::CreateMenuBar(), CBaseBar::Exec(), CMenuSite::Exec(), CShellBrowser::Initialize(), CISFBand::InvokeCommand(), CBaseBarSite::OnCommand(), CInternetToolbar::OnFolders(), CInternetToolbar::OnSearch(), CShellBrowser::OnToggleAddressBandVisible(), CShellBrowser::OnToggleLinksBandVisible(), CShellBrowser::OnToggleTextLabels(), CShellBrowser::OnToggleToolbarBandVisible(), CShellBrowser::OnToggleToolbarLock(), CShellBrowser::OnToolbarCustomize(), CInternetToolbar::OnUpLevel(), CShellBrowser::ShowBand(), and CTrayBandSite::Update().

◆ IUnknown_GetClassID()

HRESULT WINAPI IUnknown_GetClassID ( IUnknown lpUnknown,
CLSID clsid 
)

Definition at line 1453 of file ordinal.c.

1454{
1455 IPersist *persist;
1456 HRESULT hr;
1457
1458 TRACE("(%p, %p)\n", lpUnknown, clsid);
1459
1460 if (!lpUnknown)
1461 {
1462 memset(clsid, 0, sizeof(*clsid));
1463 return E_FAIL;
1464 }
1465
1466 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersist, (void**)&persist);
1467 if (hr != S_OK)
1468 {
1469 hr = IUnknown_QueryInterface(lpUnknown, &IID_IPersistFolder, (void**)&persist);
1470 if (hr != S_OK)
1471 return hr;
1472 }
1473
1474 hr = IPersist_GetClassID(persist, clsid);
1475 IPersist_Release(persist);
1476 return hr;
1477}
REFCLSID clsid
Definition: msctf.c:82
const GUID IID_IPersist
Definition: proxy.cpp:14
HRESULT hr
Definition: shlfolder.c:183

Referenced by CShellBrowser::BrowseToPIDL(), CSearchBar::GetSearchResultsFolder(), init_pointers(), CSearchBar::Invoke(), and SHSkipJunction().

◆ IUnknown_GetSite()

HRESULT WINAPI IUnknown_GetSite ( LPUNKNOWN  lpUnknown,
REFIID  iid,
PVOID lppSite 
)

Definition at line 2638 of file ordinal.c.

2639{
2640 HRESULT hRet = E_INVALIDARG;
2641 LPOBJECTWITHSITE lpSite = NULL;
2642
2643 TRACE("(%p,%s,%p)\n", lpUnknown, debugstr_guid(iid), lppSite);
2644
2645 if (lpUnknown && iid && lppSite)
2646 {
2647 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IObjectWithSite,
2648 (void**)&lpSite);
2649 if (SUCCEEDED(hRet) && lpSite)
2650 {
2651 hRet = IObjectWithSite_GetSite(lpSite, iid, lppSite);
2652 IObjectWithSite_Release(lpSite);
2653 }
2654 }
2655 return hRet;
2656}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define debugstr_guid
Definition: kernel32.h:35
const IID IID_IObjectWithSite

Referenced by CMenuDeskBar::_IsSubMenuParent(), CShellMenuCallback::OnInitMenu(), and CMenuFocusManager::UpdateFocus().

◆ IUnknown_GetWindow()

HRESULT WINAPI IUnknown_GetWindow ( IUnknown lpUnknown,
HWND lphWnd 
)

Definition at line 1332 of file ordinal.c.

1333{
1334 IUnknown *lpOle;
1335 HRESULT hRet = E_FAIL;
1336
1337 TRACE("(%p,%p)\n", lpUnknown, lphWnd);
1338
1339 if (!lpUnknown)
1340 return hRet;
1341
1342 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleWindow, (void**)&lpOle);
1343
1344 if (FAILED(hRet))
1345 {
1346 hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (void**)&lpOle);
1347
1348 if (FAILED(hRet))
1349 {
1350 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
1351 (void**)&lpOle);
1352 }
1353 }
1354
1355 if (SUCCEEDED(hRet))
1356 {
1357 /* Laziness here - Since GetWindow() is the first method for the above 3
1358 * interfaces, we use the same call for them all.
1359 */
1360 hRet = IOleWindow_GetWindow((IOleWindow*)lpOle, lphWnd);
1361 IUnknown_Release(lpOle);
1362 if (lphWnd)
1363 TRACE("Returning HWND=%p\n", *lphWnd);
1364 }
1365
1366 return hRet;
1367}
const GUID IID_IOleWindow

Referenced by CMenuDeskBar::_IsSubMenuParent(), CMenuSite::AddBand(), CInternetToolbar::CreateMenuBar(), CFSDropTarget::Drop(), CAddressEditBox::Execute(), 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(), CExplorerBand::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 1949 of file ordinal.c.

1951{
1952 /* FIXME: {D12F26B2-D90A-11D0-830D-00AA005B4383} - What object does this represent? */
1953 static const DWORD service_id[] = { 0xd12f26b2, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1954 /* FIXME: {D12F26B1-D90A-11D0-830D-00AA005B4383} - Also Unknown/undocumented */
1955 static const DWORD function_id[] = { 0xd12f26b1, 0x11d0d90a, 0xaa000d83, 0x83435b00 };
1956 HRESULT hRet = E_INVALIDARG;
1957 LPUNKNOWN lpUnkInner = NULL; /* FIXME: Real type is unknown */
1958
1959 TRACE("(%p,%p,%p,%p,%p)\n", lpUnknown, lpArg1, lpArg2, lpArg3, lpArg4);
1960
1961 if (lpUnknown && lpArg4)
1962 {
1963 hRet = IUnknown_QueryService(lpUnknown, (REFGUID)service_id,
1964 (REFGUID)function_id, (void**)&lpUnkInner);
1965
1966 if (SUCCEEDED(hRet) && lpUnkInner)
1967 {
1968 /* FIXME: The type of service object requested is unknown, however
1969 * testing shows that its first method is called with 4 parameters.
1970 * Fake this by using IParseDisplayName_ParseDisplayName since the
1971 * signature and position in the vtable matches our unknown object type.
1972 */
1973 hRet = IParseDisplayName_ParseDisplayName((LPPARSEDISPLAYNAME)lpUnkInner,
1974 lpArg1, lpArg2, lpArg3, lpArg4);
1975 IUnknown_Release(lpUnkInner);
1976 }
1977 }
1978 return hRet;
1979}
HRESULT WINAPI IUnknown_QueryService(IUnknown *, REFGUID, REFIID, LPVOID *)
Definition: ordinal.c:1497
static LPUNKNOWN
Definition: ndr_ole.c:49
Definition: scsiwmi.h:51

◆ IUnknown_HasFocusIO()

HRESULT WINAPI IUnknown_HasFocusIO ( IUnknown lpUnknown)

Definition at line 4295 of file ordinal.c.

4296{
4297 IInputObject* lpInput = NULL;
4298 HRESULT hRet = E_INVALIDARG;
4299
4300 TRACE("(%p)\n", lpUnknown);
4301 if (lpUnknown)
4302 {
4303 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4304 (void**)&lpInput);
4305 if (SUCCEEDED(hRet) && lpInput)
4306 {
4307 hRet = IInputObject_HasFocusIO(lpInput);
4308 IInputObject_Release(lpInput);
4309 }
4310 }
4311 return hRet;
4312}
#define IInputObject_HasFocusIO(p)
Definition: shlobj.h:707
#define IInputObject_Release(p)
Definition: shlobj.h:704

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 4767 of file ordinal.c.

4768{
4769 IInputObjectSite *pIOS = NULL;
4770 HRESULT hRet = E_INVALIDARG;
4771
4772 TRACE("(%p, %p, %s)\n", lpUnknown, pFocusObject, bFocus ? "TRUE" : "FALSE");
4773
4774 if (lpUnknown)
4775 {
4776 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObjectSite,
4777 (void **)&pIOS);
4778 if (SUCCEEDED(hRet) && pIOS)
4779 {
4780 hRet = IInputObjectSite_OnFocusChangeIS(pIOS, pFocusObject, bFocus);
4782 }
4783 }
4784 return hRet;
4785}
#define IInputObjectSite_Release(p)
Definition: shlobj.h:728
#define IInputObjectSite_OnFocusChangeIS(p, a, b)
Definition: shlobj.h:730

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

◆ IUnknown_OnFocusOCS()

HRESULT WINAPI IUnknown_OnFocusOCS ( IUnknown lpUnknown,
BOOL  fGotFocus 
)

Definition at line 1927 of file ordinal.c.

1928{
1929 IOleControlSite* lpCSite = NULL;
1930 HRESULT hRet = E_FAIL;
1931
1932 TRACE("(%p, %d)\n", lpUnknown, fGotFocus);
1933 if (lpUnknown)
1934 {
1935 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleControlSite,
1936 (void**)&lpCSite);
1937 if (SUCCEEDED(hRet) && lpCSite)
1938 {
1939 hRet = IOleControlSite_OnFocus(lpCSite, fGotFocus);
1940 IOleControlSite_Release(lpCSite);
1941 }
1942 }
1943 return hRet;
1944}
const GUID IID_IOleControlSite

◆ IUnknown_ProfferService()

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

Definition at line 1588 of file ordinal.c.

1589{
1590 IProfferService *proffer;
1591 HRESULT hr;
1592
1593 TRACE("%p %s %p %p\n", lpUnknown, debugstr_guid(service), pService, pCookie);
1594
1595 hr = IUnknown_QueryService(lpUnknown, &IID_IProfferService, &IID_IProfferService, (void**)&proffer);
1596 if (hr == S_OK)
1597 {
1598 if (pService)
1599 hr = IProfferService_ProfferService(proffer, service, pService, pCookie);
1600 else
1601 {
1602 hr = IProfferService_RevokeService(proffer, *pCookie);
1603 *pCookie = 0;
1604 }
1605
1606 IProfferService_Release(proffer);
1607 }
1608
1609 return hr;
1610}

Referenced by init_pointers().

◆ IUnknown_QueryService()

HRESULT WINAPI IUnknown_QueryService ( IUnknown lpUnknown,
REFGUID  sid,
REFIID  riid,
LPVOID lppOut 
)

Definition at line 1497 of file ordinal.c.

1499{
1500 IServiceProvider* pService = NULL;
1501 HRESULT hRet;
1502
1503 if (!lppOut)
1504 return E_FAIL;
1505
1506 *lppOut = NULL;
1507
1508 if (!lpUnknown)
1509 return E_FAIL;
1510
1511 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IServiceProvider,
1512 (LPVOID*)&pService);
1513
1514 if (hRet == S_OK && pService)
1515 {
1516 TRACE("QueryInterface returned (IServiceProvider*)%p\n", pService);
1517
1518 /* Get a Service interface from the object */
1519 hRet = IServiceProvider_QueryService(pService, sid, riid, lppOut);
1520
1521 TRACE("(IServiceProvider*)%p returned (IUnknown*)%p\n", pService, *lppOut);
1522
1523 IServiceProvider_Release(pService);
1524 }
1525 return hRet;
1526}

Referenced by CDefViewBckgrndMenu::_bIsDesktopBrowserMenu(), CDefView::_MergeToolbar(), CMenuDeskBar::_OnActivate(), CDefaultContextMenu::BrowserFlagsFromVerb(), CExplorerBand::DestroyExplorerBand(), CDefaultContextMenu::DoCreateNewFolder(), CDefaultContextMenu::DoRename(), CFSDropTarget::Drop(), CAddressEditBox::Execute(), CExplorerBand::ExecuteCommand(), CBandProxy::FindBrowserWindow(), CAddressEditBox::GetAbsolutePidl(), CShellBrowser::GetMenuBand(), CSearchBar::GetSearchResultsFolder(), CAddressEditBox::Init(), CExplorerBand::InitializeExplorerBand(), CDefViewBckgrndMenu::InvokeCommand(), CNetConUiObject::InvokeCommand(), CMenuFocusManager::IsTrackedWindowOrParent(), IUnknown_HandleIRestrict(), IUnknown_ProfferService(), IUnknown_QueryServiceExec(), IUnknown_QueryServiceForWebBrowserApp(), IUnknown_QueryServicePropertyBag(), CExplorerBand::NavigateToCurrentFolder(), CSearchBar::OnInitDialog(), CInternetToolbar::OnMenuDropDown(), CSearchBar::OnSearchButtonClicked(), CInternetToolbar::OnTravelBack(), CInternetToolbar::OnTravelForward(), CAddressEditBox::ParseNow(), CMenuDeskBar::Popup(), CExplorerBand::QueryService(), CInternetToolbar::QueryService(), CMenuDeskBar::QueryService(), CMenuSite::QueryService(), RegisterDefaultAcceptHeaders(), CNewMenu::SelectNewItem(), CAddressEditBox::SetOwner(), CInternetToolbar::SetSite(), CMenuBand::SetSite(), CMenuDeskBar::SetSite(), CDefaultContextMenu::TryToBrowse(), CMenuBand::UIActivateIO(), and CExplorerBand::UpdateBrowser().

◆ IUnknown_QueryServiceExec()

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

Definition at line 1549 of file ordinal.c.

1551{
1553 HRESULT hr;
1554
1555 TRACE("%p %s %s %d %08x %p %p\n", lpUnknown, debugstr_guid(service),
1556 debugstr_guid(group), cmdId, cmdOpt, pIn, pOut);
1557
1558 hr = IUnknown_QueryService(lpUnknown, service, &IID_IOleCommandTarget, (void**)&target);
1559 if (hr == S_OK)
1560 {
1561 hr = IOleCommandTarget_Exec(target, group, cmdId, cmdOpt, pIn, pOut);
1562 IOleCommandTarget_Release(target);
1563 }
1564
1565 TRACE("<-- hr=0x%08x\n", hr);
1566
1567 return hr;
1568}
GLboolean GLuint group
Definition: glext.h:11120
GLenum target
Definition: glext.h:7315

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 5377 of file ordinal.c.

5379{
5380 FIXME("%p %s %p semi-STUB\n", lpUnknown, debugstr_guid(riid), lppOut);
5381 return IUnknown_QueryService(lpUnknown,&IID_IWebBrowserApp,riid,lppOut);
5382}

◆ IUnknown_QueryStatus()

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

Definition at line 1044 of file ordinal.c.

1046{
1047 HRESULT hRet = E_FAIL;
1048
1049 TRACE("(%p,%p,%d,%p,%p)\n",lpUnknown, pguidCmdGroup, cCmds, prgCmds, pCmdText);
1050
1051 if (lpUnknown)
1052 {
1053 IOleCommandTarget* lpOle;
1054
1055 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleCommandTarget,
1056 (void**)&lpOle);
1057
1058 if (SUCCEEDED(hRet) && lpOle)
1059 {
1060 hRet = IOleCommandTarget_QueryStatus(lpOle, pguidCmdGroup, cCmds,
1061 prgCmds, pCmdText);
1062 IOleCommandTarget_Release(lpOle);
1063 }
1064 }
1065 return hRet;
1066}

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

◆ IUnknown_Set()

VOID WINAPI IUnknown_Set ( IUnknown **  lppDest,
IUnknown lpUnknown 
)

Definition at line 2186 of file ordinal.c.

2187{
2188 TRACE("(%p,%p)\n", lppDest, lpUnknown);
2189
2190 IUnknown_AtomicRelease(lppDest);
2191
2192 if (lpUnknown)
2193 {
2194 IUnknown_AddRef(lpUnknown);
2195 *lppDest = lpUnknown;
2196 }
2197}
void WINAPI IUnknown_AtomicRelease(IUnknown **lpUnknown)
Definition: ordinal.c:1241

◆ IUnknown_SetOwner()

HRESULT WINAPI IUnknown_SetOwner ( IUnknown iface,
IUnknown pUnk 
)

Definition at line 1381 of file ordinal.c.

1382{
1383 IShellService *service;
1384 HRESULT hr;
1385
1386 TRACE("(%p, %p)\n", iface, pUnk);
1387
1388 if (!iface) return E_FAIL;
1389
1390 hr = IUnknown_QueryInterface(iface, &IID_IShellService, (void**)&service);
1391 if (hr == S_OK)
1392 {
1393 hr = IShellService_SetOwner(service, pUnk);
1394 IShellService_Release(service);
1395 }
1396
1397 return hr;
1398}
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30

Referenced by CTrayBandSite::AddContextMenus().

◆ IUnknown_SetSite()

HRESULT WINAPI IUnknown_SetSite ( IUnknown obj,
IUnknown site 
)

Definition at line 1407 of file ordinal.c.

1410{
1411 HRESULT hr;
1412 IObjectWithSite *iobjwithsite;
1413 IInternetSecurityManager *isecmgr;
1414
1415 if (!obj) return E_FAIL;
1416
1417 hr = IUnknown_QueryInterface(obj, &IID_IObjectWithSite, (LPVOID *)&iobjwithsite);
1418 TRACE("IID_IObjectWithSite QI ret=%08x, %p\n", hr, iobjwithsite);
1419 if (SUCCEEDED(hr))
1420 {
1421 hr = IObjectWithSite_SetSite(iobjwithsite, site);
1422 TRACE("done IObjectWithSite_SetSite ret=%08x\n", hr);
1423 IObjectWithSite_Release(iobjwithsite);
1424 }
1425 else
1426 {
1427 hr = IUnknown_QueryInterface(obj, &IID_IInternetSecurityManager, (LPVOID *)&isecmgr);
1428 TRACE("IID_IInternetSecurityManager QI ret=%08x, %p\n", hr, isecmgr);
1429 if (FAILED(hr)) return hr;
1430
1431 hr = IInternetSecurityManager_SetSecuritySite(isecmgr, (IInternetSecurityMgrSite *)site);
1432 TRACE("done IInternetSecurityManager_SetSecuritySite ret=%08x\n", hr);
1433 IInternetSecurityManager_Release(isecmgr);
1434 }
1435 return hr;
1436}
static IActiveScriptSite * site
Definition: script.c:149

Referenced by CMenuBand::_OnPopupSubMenu(), CMenuSite::AddBand(), CShellBrowser::BrowseToPath(), CreateStartMenu(), CShellBrowser::DoFolderOptions(), CDefView::drag_notify_subitem(), CDefView::FillFileMenu(), CShellBrowser::GetBaseBar(), CDefView::GetItemObject(), CShellBrowser::Initialize(), CDockSite::Initialize(), CDefView::InvokeContextMenuCommand(), CDefaultContextMenu::LoadDynamicContextMenuHandler(), CExplorerBand::OnContextMenu(), CMenuBand::SetClient(), CMenuSite::SetDeskBarSite(), CDefViewBckgrndMenu::SetSite(), and MenuCleanup::~MenuCleanup().

◆ IUnknown_TranslateAcceleratorIO()

HRESULT WINAPI IUnknown_TranslateAcceleratorIO ( IUnknown lpUnknown,
LPMSG  lpMsg 
)

Definition at line 4263 of file ordinal.c.

4264{
4265 IInputObject* lpInput = NULL;
4266 HRESULT hRet = E_INVALIDARG;
4267
4268 TRACE("(%p,%p)\n", lpUnknown, lpMsg);
4269 if (lpUnknown)
4270 {
4271 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInputObject,
4272 (void**)&lpInput);
4273 if (SUCCEEDED(hRet) && lpInput)
4274 {
4275 hRet = IInputObject_TranslateAcceleratorIO(lpInput, lpMsg);
4276 IInputObject_Release(lpInput);
4277 }
4278 }
4279 return hRet;
4280}
#define IInputObject_TranslateAcceleratorIO(p, a)
Definition: shlobj.h:708

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 1894 of file ordinal.c.

1895{
1896 IOleControlSite* lpCSite = NULL;
1897 HRESULT hRet = E_INVALIDARG;
1898
1899 TRACE("(%p,%p,0x%08x)\n", lpUnknown, lpMsg, dwModifiers);
1900 if (lpUnknown)
1901 {
1902 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleControlSite,
1903 (void**)&lpCSite);
1904 if (SUCCEEDED(hRet) && lpCSite)
1905 {
1906 hRet = IOleControlSite_TranslateAccelerator(lpCSite, lpMsg, dwModifiers);
1907 IOleControlSite_Release(lpCSite);
1908 }
1909 }
1910 return hRet;
1911}

◆ IUnknown_UIActivateIO()

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

Definition at line 1629 of file ordinal.c.

1630{
1631 IInputObject* object = NULL;
1632 HRESULT ret;
1633
1634 if (!unknown)
1635 return E_FAIL;
1636
1637 /* Get an IInputObject interface from the object */
1638 ret = IUnknown_QueryInterface(unknown, &IID_IInputObject, (LPVOID*) &object);
1639
1640 if (ret == S_OK)
1641 {
1642 ret = IInputObject_UIActivateIO(object, activate, msg);
1643 IInputObject_Release(object);
1644 }
1645
1646 return ret;
1647}
#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:706

Referenced by 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 2218 of file ordinal.c.

2221{
2222 FIXME("(%p,%d,%p,%d,%d,%p,%p) - stub!\n", lpUnknown, iUnk, pguidCmdGroup,
2223 nCmdID, nCmdexecopt, pvaIn, pvaOut);
2225}

◆ MayQSForward()

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

Definition at line 2203 of file ordinal.c.

2206{
2207 FIXME("(%p,%p,%p,%d,%p,%p) - stub\n",
2208 lpUnknown, lpReserved, riidCmdGrp, cCmds, prgCmds, pCmdText);
2209
2210 /* FIXME: Calls IsQSForward & IUnknown_QueryStatus */
2212}

◆ MLClearMLHInstance()

DWORD WINAPI MLClearMLHInstance ( DWORD  x)

Definition at line 4032 of file ordinal.c.

4033{
4034 FIXME("(0x%08x)stub\n", x);
4035 return 0xabba1247;
4036}

◆ MLFreeLibrary()

BOOL WINAPI MLFreeLibrary ( HMODULE  hModule)

Definition at line 3995 of file ordinal.c.

3996{
3997 FIXME("(%p) semi-stub\n", hModule);
3998 return FreeLibrary(hModule);
3999}
HMODULE hModule
Definition: animate.c:44

Referenced by MLBuildResURLW().

◆ MLIsMLHInstance()

BOOL WINAPI MLIsMLHInstance ( HINSTANCE  hInst)

Definition at line 4013 of file ordinal.c.

4014{
4015 FIXME("(%p) stub\n", hInst);
4016 return FALSE;
4017}
HINSTANCE hInst
Definition: dxdiag.c:13

◆ MLLoadLibraryA()

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

Definition at line 3696 of file ordinal.c.

3697{
3698 /* FIXME: Native appears to do DPA_Create and a DPA_InsertPtr for
3699 * each call here.
3700 * FIXME: Native shows calls to:
3701 * SHRegGetUSValue for "Software\Microsoft\Internet Explorer\International"
3702 * CheckVersion
3703 * RegOpenKeyExA for "HKLM\Software\Microsoft\Internet Explorer"
3704 * RegQueryValueExA for "LPKInstalled"
3705 * RegCloseKey
3706 * RegOpenKeyExA for "HKCU\Software\Microsoft\Internet Explorer\International"
3707 * RegQueryValueExA for "ResourceLocale"
3708 * RegCloseKey
3709 * RegOpenKeyExA for "HKLM\Software\Microsoft\Active Setup\Installed Components\{guid}"
3710 * RegQueryValueExA for "Locale"
3711 * RegCloseKey
3712 * and then tests the Locale ("en" for me).
3713 * code below
3714 * after the code then a DPA_Create (first time) and DPA_InsertPtr are done.
3715 */
3716 CHAR mod_path[2*MAX_PATH];
3717 LPSTR ptr;
3718 DWORD len;
3719
3720 FIXME("(%s,%p,%d) semi-stub!\n", debugstr_a(new_mod), inst_hwnd, dwCrossCodePage);
3721 len = GetModuleFileNameA(inst_hwnd, mod_path, sizeof(mod_path));
3722 if (!len || len >= sizeof(mod_path)) return NULL;
3723
3724 ptr = strrchr(mod_path, '\\');
3725 if (ptr) {
3726 strcpy(ptr+1, new_mod);
3727 TRACE("loading %s\n", debugstr_a(mod_path));
3728 return LoadLibraryA(mod_path);
3729 }
3730 return NULL;
3731}
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
#define MAX_PATH
Definition: compat.h:34
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
Definition: loader.c:539
#define debugstr_a
Definition: kernel32.h:31
static PVOID ptr
Definition: dispmode.c:27
_Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
char * LPSTR
Definition: xmlstorage.h:182
char CHAR
Definition: xmlstorage.h:175

◆ MLLoadLibraryW()

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

Definition at line 3738 of file ordinal.c.

3739{
3740 WCHAR mod_path[2*MAX_PATH];
3741 LPWSTR ptr;
3742 DWORD len;
3743
3744 FIXME("(%s,%p,%d) semi-stub!\n", debugstr_w(new_mod), inst_hwnd, dwCrossCodePage);
3745 len = GetModuleFileNameW(inst_hwnd, mod_path, sizeof(mod_path) / sizeof(WCHAR));
3746 if (!len || len >= sizeof(mod_path) / sizeof(WCHAR)) return NULL;
3747
3748 ptr = strrchrW(mod_path, '\\');
3749 if (ptr) {
3750 strcpyW(ptr+1, new_mod);
3751 TRACE("loading %s\n", debugstr_w(mod_path));
3752 return LoadLibraryW(mod_path);
3753 }
3754 return NULL;
3755}
#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
#define strrchrW(s, c)
Definition: unicode.h:35
#define strcpyW(d, s)
Definition: unicode.h:29
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by MLBuildResURLW().

◆ MLSetMLHInstance()

DWORD WINAPI MLSetMLHInstance ( HINSTANCE  hInst,
HANDLE  hHeap 
)

Definition at line 4023 of file ordinal.c.

4024{
4025 FIXME("(%p,%p) stub\n", hInst, hHeap);
4026 return E_FAIL; /* This is what is used if shlwapi not loaded */
4027}

◆ PageSetupDlgWrapW()

BOOL WINAPI PageSetupDlgWrapW ( LPPAGESETUPDLGW  pagedlg)

Definition at line 3825 of file ordinal.c.

3826{
3827 return PageSetupDlgW(pagedlg);
3828}
BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW setupdlg)
Definition: printdlg.c:3938

◆ PathSkipLeadingSlashesA()

LPCSTR WINAPI PathSkipLeadingSlashesA ( LPCSTR  lpszSrc)

Definition at line 1265 of file ordinal.c.

1266{
1267 if (lpszSrc && lpszSrc[0] == '/' && lpszSrc[1] == '/')
1268 lpszSrc += 2;
1269 return lpszSrc;
1270}

◆ PlaySoundWrapW()

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

Definition at line 3349 of file ordinal.c.

3350{
3351 return PlaySoundW(pszSound, hmod, fdwSound);
3352}
static PEXPLICIT_ACCESSW *static HMODULE hmod
Definition: security.c:143
BOOL WINAPI PlaySoundW(LPCWSTR pszSoundW, HMODULE hmod, DWORD fdwSound)
Definition: playsound.c:651

◆ PrintDlgWrapW()

BOOL WINAPI PrintDlgWrapW ( LPPRINTDLGW  printdlg)

Definition at line 3835 of file ordinal.c.

3836{
3837 return PrintDlgW(printdlg);
3838}
BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd)
Definition: printdlg.c:2403

◆ QISearch()

HRESULT WINAPI QISearch ( void base,
const QITAB table,
REFIID  riid,
void **  ppv 
)

Definition at line 2392 of file ordinal.c.

2397{
2398 HRESULT ret;
2399 IUnknown *a_vtbl;
2400 const QITAB *xmove;
2401
2402 TRACE("(%p %p %s %p)\n", base, table, debugstr_guid(riid), ppv);
2403 if (ppv) {
2404 xmove = table;
2405 while (xmove->piid) {
2406 TRACE("trying (offset %d) %s\n", xmove->dwOffset, debugstr_guid(xmove->piid));
2407 if (IsEqualIID(riid, xmove->piid)) {
2408 a_vtbl = (IUnknown*)(xmove->dwOffset + (LPBYTE)base);
2409 TRACE("matched, returning (%p)\n", a_vtbl);
2410 *ppv = a_vtbl;
2411 IUnknown_AddRef(a_vtbl);
2412 return S_OK;
2413 }
2414 xmove++;
2415 }
2416
2417 if (IsEqualIID(riid, &IID_IUnknown)) {
2418 a_vtbl = (IUnknown*)(table->dwOffset + (LPBYTE)base);
2419 TRACE("returning first for IUnknown (%p)\n", a_vtbl);
2420 *ppv = a_vtbl;
2421 IUnknown_AddRef(a_vtbl);
2422 return S_OK;
2423 }
2424 *ppv = 0;
2426 } else
2427 ret = E_POINTER;
2428
2429 TRACE("-- 0x%08x\n", ret);
2430 return ret;
2431}
const GUID IID_IUnknown
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
const IID * piid
Definition: shlwapi.h:2074
DWORD dwOffset
Definition: shlwapi.h:2076
unsigned char * LPBYTE
Definition: typedefs.h:53
#define E_POINTER
Definition: winerror.h:2365

Referenced by CUnknownBase< Interface >::QueryInterface().

◆ RegisterDefaultAcceptHeaders()

HRESULT WINAPI RegisterDefaultAcceptHeaders ( LPBC  lpBC,
IUnknown lpUnknown 
)

Definition at line 344 of file ordinal.c.

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

◆ SHAboutInfoA()

BOOL WINAPI SHAboutInfoA ( LPSTR  lpszDest,
DWORD  dwDestLen 
)

Definition at line 911 of file ordinal.c.

912{
913 WCHAR buff[2084];
914
915 TRACE("(%p,%d)\n", lpszDest, dwDestLen);
916
917 if (lpszDest && SHAboutInfoW(buff, dwDestLen))
918 {
919 WideCharToMultiByte(CP_ACP, 0, buff, -1, lpszDest, dwDestLen, NULL, NULL);
920 return TRUE;
921 }
922 return FALSE;
923}
WCHAR lpszDest[260]
BOOL WINAPI SHAboutInfoW(LPWSTR, DWORD)
Definition: ordinal.c:930
static unsigned char buff[32768]
Definition: fatten.c:17

◆ SHAboutInfoW()

BOOL WINAPI SHAboutInfoW ( LPWSTR  lpszDest,
DWORD  dwDestLen 
)

Definition at line 930 of file ordinal.c.

931{
932 static const WCHAR szIEKey[] = { 'S','O','F','T','W','A','R','E','\\',
933 'M','i','c','r','o','s','o','f','t','\\','I','n','t','e','r','n','e','t',
934 ' ','E','x','p','l','o','r','e','r','\0' };
935 static const WCHAR szWinNtKey[] = { 'S','O','F','T','W','A','R','E','\\',
936 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s',' ',
937 'N','T','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0' };
938 static const WCHAR szWinKey[] = { 'S','O','F','T','W','A','R','E','\\',
939 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
940 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\0' };
941 static const WCHAR szRegKey[] = { 'S','O','F','T','W','A','R','E','\\',
942 'M','i','c','r','o','s','o','f','t','\\','I','n','t','e','r','n','e','t',
943 ' ','E','x','p','l','o','r','e','r','\\',
944 'R','e','g','i','s','t','r','a','t','i','o','n','\0' };
945 static const WCHAR szVersion[] = { 'V','e','r','s','i','o','n','\0' };
946 static const WCHAR szCustomized[] = { 'C','u','s','t','o','m','i','z','e','d',
947 'V','e','r','s','i','o','n','\0' };
948 static const WCHAR szOwner[] = { 'R','e','g','i','s','t','e','r','e','d',
949 'O','w','n','e','r','\0' };
950 static const WCHAR szOrg[] = { 'R','e','g','i','s','t','e','r','e','d',
951 'O','r','g','a','n','i','z','a','t','i','o','n','\0' };
952 static const WCHAR szProduct[] = { 'P','r','o','d','u','c','t','I','d','\0' };
953 static const WCHAR szUpdate[] = { 'I','E','A','K',
954 'U','p','d','a','t','e','U','r','l','\0' };
955 static const WCHAR szHelp[] = { 'I','E','A','K',
956 'H','e','l','p','S','t','r','i','n','g','\0' };
957 WCHAR buff[2084];
958 HKEY hReg;
959 DWORD dwType, dwLen;
960
961 TRACE("(%p,%d)\n", lpszDest, dwDestLen);
962
963 if (!lpszDest)
964 return FALSE;
965
966 *lpszDest = '\0';
967
968 /* Try the NT key first, followed by 95/98 key */
969 if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, szWinNtKey, 0, KEY_READ, &hReg) &&
970 RegOpenKeyExW(HKEY_LOCAL_MACHINE, szWinKey, 0, KEY_READ, &hReg))
971 return FALSE;
972
973 /* OS Version */
974 buff[0] = '\0';
975 dwLen = 30;
976 if (!SHGetValueW(HKEY_LOCAL_MACHINE, szIEKey, szVersion, &dwType, buff, &dwLen))
977 {
978 DWORD dwStrLen = strlenW(buff);
979 dwLen = 30 - dwStrLen;
981 szCustomized, &dwType, buff+dwStrLen, &dwLen);
982 }
983 StrCatBuffW(lpszDest, buff, dwDestLen);
984
985 /* ~Registered Owner */
986 buff[0] = '~';
987 dwLen = 256;
988 if (SHGetValueW(hReg, szOwner, 0, &dwType, buff+1, &dwLen))
989 buff[1] = '\0';
990 StrCatBuffW(lpszDest, buff, dwDestLen);
991
992 /* ~Registered Organization */
993 dwLen = 256;
994 if (SHGetValueW(hReg, szOrg, 0, &dwType, buff+1, &dwLen))
995 buff[1] = '\0';
996 StrCatBuffW(lpszDest, buff, dwDestLen);
997
998 /* FIXME: Not sure where this number comes from */
999 buff[0] = '~';
1000 buff[1] = '0';
1001 buff[2] = '\0';
1002 StrCatBuffW(lpszDest, buff, dwDestLen);
1003
1004 /* ~Product Id */
1005 dwLen = 256;
1006 if (SHGetValueW(HKEY_LOCAL_MACHINE, szRegKey, szProduct, &dwType, buff+1, &dwLen))
1007 buff[1] = '\0';
1008 StrCatBuffW(lpszDest, buff, dwDestLen);
1009
1010 /* ~IE Update Url */
1011 dwLen = 2048;
1012 if(SHGetValueW(HKEY_LOCAL_MACHINE, szWinKey, szUpdate, &dwType, buff+1, &dwLen))
1013 buff[1] = '\0';
1014 StrCatBuffW(lpszDest, buff, dwDestLen);
1015
1016 /* ~IE Help String */
1017 dwLen = 256;
1018 if(SHGetValueW(hReg, szHelp, 0, &dwType, buff+1, &dwLen))
1019 buff[1] = '\0';
1020 StrCatBuffW(lpszDest, buff, dwDestLen);
1021
1022 RegCloseKey(hReg);
1023 return TRUE;
1024}
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3362
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1236
LPWSTR WINAPI StrCatBuffW(LPWSTR lpszStr, LPCWSTR lpszCat, INT cchMax)
Definition: string.c:1436
static LPCWSTR szVersion
Definition: asmcache.c:748
#define KEY_READ
Definition: nt_native.h:1023
#define strlenW(s)
Definition: unicode.h:28

Referenced by SHAboutInfoA().

◆ SHAllocShared()

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

Definition at line 165 of file ordinal.c.

166{
167 HANDLE hMap;
168 LPVOID pMapped;
169 HANDLE hRet = NULL;
170
171 TRACE("(%p,%d,%d)\n", lpvData, dwSize, dwProcId);
172
173 /* Create file mapping of the correct length */
175 dwSize + sizeof(dwSize), NULL);
176 if (!hMap)
177 return hRet;
178
179 /* Get a view in our process address space */
180 pMapped = MapViewOfFile(hMap, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
181
182 if (pMapped)
183 {
184 /* Write size of data, followed by the data, to the view */
185 *((DWORD*)pMapped) = dwSize;
186 if (lpvData)
187 memcpy((char *) pMapped + sizeof(dwSize), lpvData, dwSize);
188
189 /* Release view. All further views mapped will be opaque */
190 UnmapViewOfFile(pMapped);
191 hRet = SHMapHandle(hMap, GetCurrentProcessId(), dwProcId,
193 }
194
195 CloseHandle(hMap);
196 return hRet;
197}
#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:94
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:154
#define FILE_MAP_ALL_ACCESS
Definition: winbase.h:156
DWORD WINAPI GetCurrentProcessId(void)
Definition: proc.c:1158
#define DUPLICATE_SAME_ACCESS

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

◆ SHBrowseForFolderWrapW()

LPITEMIDLIST WINAPI SHBrowseForFolderWrapW ( LPBROWSEINFOW  lpBi)

Definition at line 3454 of file ordinal.c.

3455{
3456 return SHBrowseForFolderW(lpBi);
3457}
LPITEMIDLIST WINAPI SHBrowseForFolderW(LPBROWSEINFOW lpbi)
Definition: brsfolder.c:1419

◆ SHChangeNotifyWrap()

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

Definition at line 5006 of file ordinal.c.

5007{
5008 SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2);
5009}
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 1796 of file ordinal.c.

1797{
1798 TRACE("%p, %u, %d\n", hMenu, uID, bCheck);
1799 return CheckMenuItem(hMenu, uID, bCheck ? MF_CHECKED : MF_UNCHECKED);
1800}
#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 4538 of file ordinal.c.

4540{
4541 return CoCreateInstance(rclsid, pUnkOuter, dwClsContext, iid, ppv);
4542}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325

◆ SHCreatePropertyBagOnRegKey()

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

Definition at line 5177 of file ordinal.c.

5179{
5180 FIXME("%p %s %d %s %p STUB\n", hKey, debugstr_w(subkey), grfMode,
5182
5183 return E_NOTIMPL;
5184}
#define E_NOTIMPL
Definition: ddrawi.h:99
FxAutoRegKey hKey

Referenced by SHPropertyBag_OnRegKey().

◆ SHCreateShellPalette()

HPALETTE WINAPI SHCreateShellPalette ( HDC  hdc)

Definition at line 4395 of file ordinal.c.

4396{
4397 FIXME("stub\n");
4398 return CreateHalftonePalette(hdc);
4399}
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 2675 of file ordinal.c.

2677{
2678 static const char szClass[] = "WorkerA";
2679 WNDCLASSA wc;
2680 HWND hWnd;
2681
2682 TRACE("(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
2683 wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
2684
2685 /* Create Window class */
2686 wc.style = 0;
2688 wc.cbClsExtra = 0;
2689 wc.cbWndExtra = sizeof(LONG_PTR);
2691 wc.hIcon = NULL;
2693 wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
2694 wc.lpszMenuName = NULL;
2695 wc.lpszClassName = szClass;
2696
2697 SHRegisterClassA(&wc);
2698
2699 hWnd = CreateWindowExA(dwExStyle, szClass, 0, dwStyle, 0, 0, 0, 0,
2700 hWndParent, hMenu, shlwapi_hInstance, 0);
2701 if (hWnd)
2702 {
2703 SetWindowLongPtrW(hWnd, 0, wnd_extra);
2705 }
2706
2707 return hWnd;
2708}
HWND hWnd
Definition: settings.c:17
HINSTANCE shlwapi_hInstance
Definition: shlwapi_main.c:33
DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass)
Definition: ordinal.c:1813
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:3170
HICON hIcon
Definition: winuser.h:3168
HINSTANCE hInstance
Definition: winuser.h:3167
HCURSOR hCursor
Definition: winuser.h:3169
int cbWndExtra
Definition: winuser.h:3166
UINT style
Definition: winuser.h:3163
LPCSTR lpszMenuName
Definition: winuser.h:3171
LPCSTR lpszClassName
Definition: winuser.h:3172
WNDPROC lpfnWndProc
Definition: winuser.h:3164
int cbClsExtra
Definition: winuser.h:3165
#define LONG_PTR
Definition: treelist.c:79
#define GWLP_WNDPROC
Definition: treelist.c:66
#define SetWindowLongPtrA
Definition: winuser.h:5345
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:687
#define SetWindowLongPtrW
Definition: winuser.h:5346
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2090
#define COLOR_BTNFACE
Definition: winuser.h:928

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 3000 of file ordinal.c.

3002{
3003 static const WCHAR szClass[] = { 'W', 'o', 'r', 'k', 'e', 'r', 'W', 0 };
3004 WNDCLASSW wc;
3005 HWND hWnd;
3006
3007 TRACE("(%p, %p, 0x%08x, 0x%08x, %p, 0x%08lx)\n",
3008 wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
3009
3010 /* If our OS is natively ANSI, use the ANSI version */
3011 if (GetVersion() & 0x80000000) /* not NT */
3012 {
3013 TRACE("fallback to ANSI, ver 0x%08x\n", GetVersion());
3014 return SHCreateWorkerWindowA(wndProc, hWndParent, dwExStyle, dwStyle, hMenu, wnd_extra);
3015 }
3016
3017 /* Create Window class */
3018 wc.style = 0;
3020 wc.cbClsExtra = 0;
3021 wc.cbWndExtra = sizeof(LONG_PTR);
3023 wc.hIcon = NULL;
3025 wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
3026 wc.lpszMenuName = NULL;
3027 wc.lpszClassName = szClass;
3028
3029 SHRegisterClassW(&wc);
3030
3031 hWnd = CreateWindowExW(dwExStyle, szClass, 0, dwStyle, 0, 0, 0, 0,
3032 hWndParent, hMenu, shlwapi_hInstance, 0);
3033 if (hWnd)
3034 {
3035 SetWindowLongPtrW(hWnd, 0, wnd_extra);
3037 }
3038
3039 return hWnd;
3040}
DWORD WINAPI SHRegisterClassW(WNDCLASSW *lpWndClass)
Definition: ordinal.c:2555
HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
Definition: ordinal.c:2675
DWORD WINAPI GetVersion()
Definition: redirtest.c:5
LPCWSTR lpszClassName
Definition: winuser.h:3185
LPCWSTR lpszMenuName
Definition: winuser.h:3184
HBRUSH hbrBackground
Definition: winuser.h:3183
HICON hIcon
Definition: winuser.h:3181
HINSTANCE hInstance
Definition: winuser.h:3180
int cbClsExtra
Definition: winuser.h:3178
UINT style
Definition: winuser.h:3176
WNDPROC lpfnWndProc
Definition: winuser.h:3177
int cbWndExtra
Definition: winuser.h:3179
HCURSOR hCursor
Definition: winuser.h:3182
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2105
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 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 3596 of file ordinal.c.

3598{
3599 return SHDefExtractIconW(pszIconFile, iIndex, uFlags, phiconLarge, phiconSmall, nIconSize);
3600}
HRESULT WINAPI SHDefExtractIconW(LPCWSTR pszIconFile, int iIndex, UINT uFlags, HICON *phiconLarge, HICON *phiconSmall, UINT nIconSize)
Definition: iconcache.cpp:1009

◆ SHDefWindowProc()

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

Definition at line 2628 of file ordinal.c.

2629{
2630 if (IsWindowUnicode(hWnd))
2631 return DefWindowProcW(hWnd, uMessage, wParam, lParam);
2632 return DefWindowProcA(hWnd, uMessage, wParam, lParam);
2633}
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 3474 of file ordinal.c.

3475{
3476 return ShellExecuteExW(lpExecInfo);
3477}
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2368

◆ ShellMessageBoxWrapW()

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

Definition at line 4941 of file ordinal.c.

4943{
4944 WCHAR *szText = NULL, szTitle[100];
4945 LPCWSTR pszText, pszTitle = szTitle;
4946 LPWSTR pszTemp;
4948 int ret;
4949
4950 __ms_va_start(args, uType);
4951
4952 TRACE("(%p,%p,%p,%p,%08x)\n", hInstance, hWnd, lpText, lpCaption, uType);
4953
4954 if (IS_INTRESOURCE(lpCaption))
4956 else
4957 pszTitle = lpCaption;
4958
4959 if (IS_INTRESOURCE(lpText))
4960 {
4961 const WCHAR *ptr;
4962 UINT len = LoadStringW(hInstance, LOWORD(lpText), (LPWSTR)&ptr, 0);
4963
4964 if (len)
4965 {
4966 szText = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR));
4967 if (szText) LoadStringW(hInstance, LOWORD(lpText), szText, len + 1);
4968 }
4969 pszText = szText;
4970 if (!pszText) {
4971 WARN("Failed to load id %d\n", LOWORD(lpText));
4973 return 0;
4974 }
4975 }
4976 else
4977 pszText = lpText;
4978
4980 pszText, 0, 0, (LPWSTR)&pszTemp, 0, &args);
4981
4983
4984#ifdef __REACTOS__
4985 uType |= MB_SETFOREGROUND;
4986#endif
4987 ret = MessageBoxW(hWnd, pszTemp, pszTitle, uType);
4988
4989 HeapFree(GetProcessHeap(), 0, szText);
4990 LocalFree(pszTemp);
4991 return ret;
4992}
#define ARRAY_SIZE(A)
Definition: main.h:33
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
TCHAR szTitle[MAX_LOADSTRING]
Definition: magnifier.c:35
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define args
Definition: format.c:66
Definition: match.c:390
#define FORMAT_MESSAGE_FROM_STRING
Definition: winbase.h:421
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:419
#define MB_SETFOREGROUND
Definition: winuser.h:814
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define IS_INTRESOURCE(i)
Definition: winuser.h:580
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ SHEnableMenuItem()

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

Definition at line 1777 of file ordinal.c.

1778{
1779 TRACE("%p, %u, %d\n", hMenu, wItemID, bEnable);
1780 return EnableMenuItem(hMenu, wItemID, bEnable ? MF_ENABLED : MF_GRAYED);
1781}
_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 3484 of file ordinal.c.

3485{
3486 return SHFileOperationW(lpFileOp);
3487}
int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
Definition: shlfileop.cpp:1987

◆ SHFillRectClr()

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

Definition at line 2129 of file ordinal.c.

2130{
2131 COLORREF cOldColor = SetBkColor(hDC, cRef);
2132 ExtTextOutA(hDC, 0, 0, ETO_OPAQUE, pRect, 0, 0, 0);
2133 SetBkColor(hDC, cOldColor);
2134 return 0;
2135}
static HDC hDC
Definition: 3dtext.c:33
DWORD COLORREF
Definition: windef.h:300
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

◆ SHFlushSFCacheWrap()

BOOL WINAPI SHFlushSFCacheWrap ( void  )

Definition at line 4004 of file ordinal.c.

4004 {
4005 FIXME(": stub\n");
4006 return TRUE;
4007}

◆ SHFormatDateTimeA()

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

Definition at line 5297 of file ordinal.c.

5299{
5300 WCHAR *bufW;
5301 INT retval;
5302
5303 if (!buf || !size)
5304 return 0;
5305
5306 bufW = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR) * size);
5307 retval = SHFormatDateTimeW(fileTime, flags, bufW, size);
5308
5309 if (retval != 0)
5310 WideCharToMultiByte(CP_ACP, 0, bufW, -1, buf, size, NULL, NULL);
5311
5312 HeapFree(GetProcessHeap(), 0, bufW);
5313 return retval;
5314}
INT WINAPI SHFormatDateTimeW(const FILETIME UNALIGNED *fileTime, DWORD *flags, LPWSTR buf, UINT size)
Definition: ordinal.c:5232
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLbitfield flags
Definition: glext.h:7161

Referenced by init_pointers().

◆ SHFormatDateTimeW()

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

Definition at line 5232 of file ordinal.c.

5234{
5235#define SHFORMATDT_UNSUPPORTED_FLAGS (FDTF_RELATIVE | FDTF_LTRDATE | FDTF_RTLDATE | FDTF_NOAUTOREADINGORDER)
5236 DWORD fmt_flags = flags ? *flags : FDTF_DEFAULT;
5237 SYSTEMTIME st;
5238 FILETIME ft;
5239 INT ret = 0;
5240
5241 TRACE("%p %p %p %u\n", fileTime, flags, buf, size);
5242
5243 if (!buf || !size)
5244 return 0;
5245
5246 if (fmt_flags & SHFORMATDT_UNSUPPORTED_FLAGS)
5247 FIXME("ignoring some flags - 0x%08x\n", fmt_flags & SHFORMATDT_UNSUPPORTED_FLAGS);
5248
5249 FileTimeToLocalFileTime(fileTime, &ft);
5250 FileTimeToSystemTime(&ft, &st);
5251
5252 /* first of all date */
5253 if (fmt_flags & (FDTF_LONGDATE | FDTF_SHORTDATE))
5254 {
5255 static const WCHAR sep1[] = {',',' ',0};
5256 static const WCHAR sep2[] = {' ',0};
5257
5260 if (ret >= size) return ret;
5261
5262 /* add separator */
5263 if (ret < size && (fmt_flags & (FDTF_LONGTIME | FDTF_SHORTTIME)))
5264 {
5265 if ((fmt_flags & FDTF_LONGDATE) && (ret < size + 2))
5266 {
5267 lstrcatW(&buf[ret-1], sep1);
5268 ret += 2;
5269 }
5270 else
5271 {
5272 lstrcatW(&buf[ret-1], sep2);
5273 ret++;
5274 }
5275 }
5276 }
5277 /* time part */
5278 if (fmt_flags & (FDTF_LONGTIME | FDTF_SHORTTIME))
5279 {
5280 DWORD time = fmt_flags & FDTF_LONGTIME ? 0 : TIME_NOSECONDS;
5281
5282 if (ret) ret--;
5284 }
5285
5286 return ret;
5287
5288#undef SHFORMATDT_UNSUPPORTED_FLAGS
5289}
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:188
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
Definition: time.c:221
#define SHFORMATDT_UNSUPPORTED_FLAGS
INT WINAPI GetTimeFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpTimeStr, INT cchOut)
Definition: lcformat.c:1093
INT WINAPI GetDateFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpDateStr, INT cchOut)
Definition: lcformat.c:993
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:2061
#define FDTF_LONGDATE
Definition: shlwapi.h:2064
#define FDTF_DEFAULT
Definition: shlwapi.h:2063
#define FDTF_LONGTIME
Definition: shlwapi.h:2065
#define FDTF_SHORTDATE
Definition: shlwapi.h:2062
#define TIME_NOSECONDS
Definition: winnls.h:278
#define DATE_LONGDATE
Definition: winnls.h:197
#define DATE_SHORTDATE
Definition: winnls.h:196

Referenced by init_pointers(), and SHFormatDateTimeA().

◆ SHFreeShared()

BOOL WINAPI SHFreeShared ( HANDLE  hShared,
DWORD  dwProcId 
)

Definition at line 311 of file ordinal.c.

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

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

◆ SHGetAppCompatFlags()

DWORD WINAPI SHGetAppCompatFlags ( DWORD  dwUnknown)

Definition at line 4528 of file ordinal.c.

4529{
4530 FIXME("(0x%08x) stub\n", dwUnknown);
4531 return 0;
4532}

◆ SHGetCurColorRes()

DWORD WINAPI SHGetCurColorRes ( void  )

Definition at line 2019 of file ordinal.c.

2020{
2021 HDC hdc;
2022 DWORD ret;
2023
2024 TRACE("()\n");
2025
2026 hdc = GetDC(0);
2028 ReleaseDC(0, hdc);
2029 return ret;
2030}
static HDC
Definition: imagelist.c:92
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().

◆ SHGetFileInfoWrapW()

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

Definition at line 3433 of file ordinal.c.

3435{
3436 return SHGetFileInfoW(path, dwFileAttributes, psfi, sizeofpsfi, flags);
3437}
DWORD dwFileAttributes
DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags)
Definition: shell32_main.c:415

◆ SHGetIniStringW()

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

Definition at line 3371 of file ordinal.c.

3373{
3374 INT ret;
3375 WCHAR *buf;
3376
3377 TRACE("(%s,%s,%p,%08x,%s)\n", debugstr_w(appName), debugstr_w(keyName),
3378 out, outLen, debugstr_w(filename));
3379
3380 if(outLen == 0)
3381 return 0;
3382
3383 buf = HeapAlloc(GetProcessHeap(), 0, outLen * sizeof(WCHAR));
3384 if(!buf){
3385 *out = 0;
3386 return 0;
3387 }
3388
3389 ret = GetPrivateProfileStringW(appName, keyName, NULL, buf, outLen, filename);
3390 if(ret)
3391 strcpyW(out, buf);
3392 else
3393 *out = 0;
3394
3396
3397 return strlenW(out);
3398}
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
static FILE * out
Definition: regtests2xml.c:44

Referenced by init_pointers(), and SHPropertyBag_SHSetIniStringW().

◆ SHGetInverseCMAP()

HRESULT WINAPI SHGetInverseCMAP ( LPDWORD  dest,
DWORD  dwSize 
)

Definition at line 4423 of file ordinal.c.

4424{
4425 if (dwSize == 4) {
4426 FIXME(" - returning bogus address for SHGetInverseCMAP\n");
4427 *dest = (DWORD)0xabba1249;
4428 return 0;
4429 }
4430 FIXME("(%p, %#x) stub\n", dest, dwSize);
4431 return 0;
4432}
static char * dest
Definition: rtl.c:135
#define DWORD
Definition: nt_native.h:44

◆ SHGetMachineInfo()

DWORD WINAPI SHGetMachineInfo ( DWORD  dwFlags)

Definition at line 3942 of file ordinal.c.

3943{
3944 HW_PROFILE_INFOA hwInfo;
3945
3946 TRACE("(0x%08x)\n", dwFlags);
3947
3948 GetCurrentHwProfileA(&hwInfo);
3949 switch (hwInfo.dwDockInfo & (DOCKINFO_DOCKED|DOCKINFO_UNDOCKED))
3950 {
3951 case DOCKINFO_DOCKED:
3952 case DOCKINFO_UNDOCKED:
3954 default:
3955 return 0;
3956 }
3957}
BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA lpHwProfileInfo)
Definition: hwprofiles.c:28
#define DOCKINFO_DOCKED
Definition: winbase.h:247
#define DOCKINFO_UNDOCKED
Definition: winbase.h:246
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

◆ SHGetMenuFromID()

HMENU WINAPI SHGetMenuFromID ( HMENU  hMenu,
UINT  uID 
)

Definition at line 1993 of file ordinal.c.

1994{
1996
1997 TRACE("(%p,%u)\n", hMenu, uID);
1998
1999 mi.cbSize = sizeof(mi);
2000 mi.fMask = MIIM_SUBMENU;
2001
2002 if (!GetMenuItemInfoW(hMenu, uID, FALSE, &mi))
2003 return NULL;
2004
2005 return mi.hSubMenu;
2006}
#define MIIM_SUBMENU
Definition: winuser.h:723

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

◆ SHGetNewLinkInfoWrapW()

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

Definition at line 3585 of file ordinal.c.

3587{
3588 return SHGetNewLinkInfoW(pszLinkTo, pszDir, pszName, pfMustCopy, uFlags);
3589}
_In_ LPCSTR pszDir
Definition: shellapi.h:581
_In_ LPCSTR _Out_ BOOL * pfMustCopy
Definition: shellapi.h:583
BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, BOOL *pfMustCopy, UINT uFlags)
Definition: shellord.c:2334

◆ SHGetObjectCompatFlags()

DWORD WINAPI SHGetObjectCompatFlags ( IUnknown pUnk,
const CLSID clsid 
)

Definition at line 6278 of file ordinal.c.

6279{
6280 static const WCHAR compatpathW[] =
6281 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
6282 'W','i','n','d','o','w','s','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
6283 'S','h','e','l','l','C','o','m','p','a','t','i','b','i','l','i','t','y','\\',
6284 'O','b','j','e','c','t','s','\\','%','s',0};
6285 WCHAR strW[sizeof(compatpathW)/sizeof(WCHAR) + 38 /* { CLSID } */];
6286 DWORD ret, length = sizeof(strW)/sizeof(WCHAR);
6287 OLECHAR *clsid_str;
6288 HKEY key;
6289 INT i;
6290
6291 TRACE("%p %s\n", pUnk, debugstr_guid(clsid));
6292
6293 if (!pUnk && !clsid) return 0;
6294
6295 if (pUnk && !clsid)
6296 {
6297 FIXME("iface not handled\n");
6298 return 0;
6299 }
6300
6301 StringFromCLSID(clsid, &clsid_str);
6302 sprintfW(strW, compatpathW, clsid_str);
6303 CoTaskMemFree(clsid_str);
6304
6306 if (ret != ERROR_SUCCESS) return 0;
6307
6308 /* now collect flag values */
6309 ret = 0;
6310 for (i = 0; RegEnumValueW(key, i, strW, &length, NULL, NULL, NULL, NULL) == ERROR_SUCCESS; i++)
6311 {
6312 INT left, right, res, x;
6313
6314 /* search in table */
6315 left = 0;
6316 right = sizeof(objcompat_table) / sizeof(struct objcompat_entry) - 1;
6317
6318 while (right >= left) {
6319 x = (left + right) / 2;
6321 if (res == 0)
6322 {
6323 ret |= objcompat_table[x].value;
6324 break;
6325 }
6326 else if (res < 0)
6327 right = x - 1;
6328 else
6329 left = x + 1;
6330 }
6331
6332 length = sizeof(strW)/sizeof(WCHAR);
6333 }
6334
6335 return ret;
6336}
#define ERROR_SUCCESS
Definition: deptool.c:10
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:2859
WCHAR OLECHAR
Definition: compat.h:2292
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
Definition: compobj.c:2412
static const struct objcompat_entry objcompat_table[]
Definition: ordinal.c:6236
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
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
WCHAR strW[12]
Definition: clipboard.c:2029
#define strcmpW(s1, s2)
Definition: unicode.h:38
#define sprintfW
Definition: unicode.h:58
Definition: copy.c:22
Definition: name.c:39
Definition: ordinal.c:6230

Referenced by init_pointers().

◆ SHGetPathFromIDListWrapW()

BOOL WINAPI SHGetPathFromIDListWrapW ( LPCITEMIDLIST  pidl,
LPWSTR  pszPath 
)

Definition at line 3464 of file ordinal.c.

3465{
3466 return SHGetPathFromIDListW(pidl, pszPath);
3467}
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1344

Referenced by _ILIsNetworkPlace().

◆ SHGetRestriction()

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

Definition at line 2740 of file ordinal.c.

2741{
2742#ifdef __REACTOS__
2744 DWORD dwSize, dwValue = 0;
2745
2746 TRACE("(%s, %s, %s)\n", debugstr_w(lpSubKey), debugstr_w(lpSubName), debugstr_w(lpValue));
2747
2748 if (!lpSubKey)
2749 lpSubKey = L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies";
2750
2751 PathCombineW(szPath, lpSubKey, lpSubName);
2752
2753 dwSize = sizeof(dwValue);
2754 if (SHGetValueW(HKEY_LOCAL_MACHINE, szPath, lpValue, NULL, &dwValue, &dwSize) == ERROR_SUCCESS)
2755 return dwValue;
2756
2757 dwSize = sizeof(dwValue);
2758 SHGetValueW(HKEY_CURRENT_USER, szPath, lpValue, NULL, &dwValue, &dwSize);
2759 return dwValue;
2760#else
2761 DWORD retval, datsize = sizeof(retval);
2762 HKEY hKey;
2763
2764 if (!lpSubKey)
2765 lpSubKey = strRegistryPolicyW;
2766
2767 retval = RegOpenKeyW(HKEY_LOCAL_MACHINE, lpSubKey, &hKey);
2768 if (retval != ERROR_SUCCESS)
2769 retval = RegOpenKeyW(HKEY_CURRENT_USER, lpSubKey, &hKey);
2770 if (retval != ERROR_SUCCESS)
2771 return 0;
2772
2773 SHGetValueW(hKey, lpSubName, lpValue, NULL, &retval, &datsize);
2775 return retval;
2776#endif
2777}
static const WCHAR strRegistryPolicyW[]
Definition: ordinal.c:2721
LPCWSTR szPath
Definition: env.c:37
#define L(x)
Definition: ntvdm.h:50
#define PathCombineW
Definition: pathcch.h:317

Referenced by SHRestrictionLookup().

◆ SHGetShellKey()

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

Definition at line 4585 of file ordinal.c.

4586{
4587#ifndef __REACTOS__
4588 enum _shellkey_flags {
4589 SHKEY_Root_HKCU = 0x1,
4590 SHKEY_Root_HKLM = 0x2,
4591 SHKEY_Key_Explorer = 0x00,
4592 SHKEY_Key_Shell = 0x10,
4593 SHKEY_Key_ShellNoRoam = 0x20,
4594 SHKEY_Key_Classes = 0x30,
4595 SHKEY_Subkey_Default = 0x0000,
4597 SHKEY_Subkey_Handlers = 0x2000,
4599 SHKEY_Subkey_Volatile = 0x4000,
4600 SHKEY_Subkey_MUICache = 0x5000,
4601 SHKEY_Subkey_FileExts = 0x6000
4602 };
4603#endif
4604
4605 static const WCHAR explorerW[] = {'S','o','f','t','w','a','r','e','\\',
4606 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4607 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
4608 'E','x','p','l','o','r','e','r','\\'};
4609 static const WCHAR shellW[] = {'S','o','f','t','w','a','r','e','\\',
4610 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4611 'S','h','e','l','l','\\'};
4612 static const WCHAR shell_no_roamW[] = {'S','o','f','t','w','a','r','e','\\',
4613 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
4614 'S','h','e','l','l','N','o','R','o','a','m','\\'};
4615 static const WCHAR classesW[] = {'S','o','f','t','w','a','r','e','\\',
4616 'C','l','a','s','s','e','s','\\'};
4617
4618 static const WCHAR localized_resource_nameW[] = {'L','o','c','a','l','i','z','e','d',
4619 'R','e','s','o','u','r','c','e','N','a','m','e','\\'};
4620 static const WCHAR handlersW[] = {'H','a','n','d','l','e','r','s','\\'};
4621 static const WCHAR associationsW[] = {'A','s','s','o','c','i','a','t','i','o','n','s','\\'};
4622 static const WCHAR volatileW[] = {'V','o','l','a','t','i','l','e','\\'};
4623 static const WCHAR mui_cacheW[] = {'M','U','I','C','a','c','h','e','\\'};
4624 static const WCHAR file_extsW[] = {'F','i','l','e','E','x','t','s','\\'};
4625
4626 WCHAR *path;
4627 const WCHAR *key, *subkey;
4628 int size_key, size_subkey, size_user;
4629 HKEY hkey = NULL;
4630
4631 TRACE("(0x%08x, %s, %d)\n", flags, debugstr_w(sub_key), create);
4632
4633 /* For compatibility with Vista+ */
4634 if(flags == 0x1ffff)
4635 flags = 0x21;
4636
4637 switch(flags&0xff0) {
4638 case SHKEY_Key_Explorer:
4639 key = explorerW;
4640 size_key = sizeof(explorerW);
4641 break;
4642 case SHKEY_Key_Shell:
4643 key = shellW;
4644 size_key = sizeof(shellW);
4645 break;
4647 key = shell_no_roamW;
4648 size_key = sizeof(shell_no_roamW);
4649 break;
4650 case SHKEY_Key_Classes:
4651 key = classesW;
4652 size_key = sizeof(classesW);
4653 break;
4654 default:
4655 FIXME("unsupported flags (0x%08x)\n", flags);
4656 return NULL;
4657 }
4658
4659 switch(flags&0xff000) {
4661 subkey = NULL;
4662 size_subkey = 0;
4663 break;
4665 subkey = localized_resource_nameW;
4666 size_subkey = sizeof(localized_resource_nameW);
4667 break;
4669 subkey = handlersW;
4670 size_subkey = sizeof(handlersW);
4671 break;
4673 subkey = associationsW;
4674 size_subkey = sizeof(associationsW);
4675 break;
4677 subkey = volatileW;
4678 size_subkey = sizeof(volatileW);
4679 break;
4681 subkey = mui_cacheW;
4682 size_subkey = sizeof(mui_cacheW);
4683 break;
4685 subkey = file_extsW;
4686 size_subkey = sizeof(file_extsW);
4687 break;
4688 default:
4689 FIXME("unsupported flags (0x%08x)\n", flags);
4690 return NULL;
4691 }
4692
4693 if(sub_key)
4694 size_user = lstrlenW(sub_key)*sizeof(WCHAR);
4695 else
4696 size_user = 0;
4697
4698 path = HeapAlloc(GetProcessHeap(), 0, size_key+size_subkey+size_user+sizeof(WCHAR));
4699 if(!path) {
4700 ERR("Out of memory\n");
4701 return NULL;
4702 }
4703
4704 memcpy(path, key, size_key);
4705 if(subkey)
4706 memcpy(path+size_key/sizeof(WCHAR), subkey, size_subkey);
4707 if(sub_key)
4708 memcpy(path+(size_key+size_subkey)/sizeof(WCHAR), sub_key, size_user);
4709 path[(size_key+size_subkey+size_user)/sizeof(WCHAR)] = '\0';
4710
4711 if(create)
4713 path, 0, NULL, 0, MAXIMUM_ALLOWED, NULL, &hkey, NULL);
4714 else
4716 path, 0, MAXIMUM_ALLOWED, &hkey);
4717
4719 return hkey;
4720}
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:7644
_shellkey_flags
Definition: ordinal.c:2803
@ SHKEY_Subkey_Handlers
Definition: ordinal.c:2812
@ SHKEY_Root_HKLM
Definition: ordinal.c:2805
@ SHKEY_Key_ShellNoRoam
Definition: ordinal.c:2808
@ SHKEY_Subkey_Volatile
Definition: ordinal.c:2814
@ SHKEY_Subkey_Associations
Definition: ordinal.c:2813
@ SHKEY_Key_Classes
Definition: ordinal.c:2809
@ SHKEY_Subkey_MUICache
Definition: ordinal.c:2815
@ SHKEY_Key_Explorer
Definition: ordinal.c:2806
@ SHKEY_Root_HKCU
Definition: ordinal.c:2804
@ SHKEY_Subkey_FileExts
Definition: ordinal.c:2816
@ SHKEY_Key_Shell
Definition: ordinal.c:2807
@ SHKEY_Subkey_Default
Definition: ordinal.c:2810
@ SHKEY_Subkey_ResourceName
Definition: ordinal.c:2811
#define MAXIMUM_ALLOWED
Definition: nt_native.h:83

Referenced by CViewStatePropertyBag::_GetHKey(), CDesktopUpgradePropertyBag::_GetOldDesktopViewStream(), init_pointers(), read_advanced_key(), SKAllocValueW(), SKDeleteValueW(), SKGetValueW(), and SKSetValueW().

◆ SHGetViewStatePropertyBag()

HRESULT WINAPI SHGetViewStatePropertyBag ( LPCITEMIDLIST  pidl,
LPWSTR  bag_name,
DWORD  flags,
REFIID  riid,
void **  ppv 
)

Definition at line 5206 of file ordinal.c.

5208{
5209 FIXME("%p %s %d %s %p STUB\n", pidl, debugstr_w(bag_name), flags,
5211
5212 return E_NOTIMPL;
5213}

Referenced by CShellBrowser::GetPropertyBag().

◆ SHInterlockedCompareExchange()

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

Definition at line 3493 of file ordinal.c.

3494{
3496}
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
Definition: bug.cpp:8

◆ SHInvokeCommand()

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

Definition at line 3618 of file ordinal.c.

3619{
3620 IContextMenu *iContext;
3621 HRESULT hRet;
3622
3623 TRACE("(%p, %p, %p, %u)\n", hWnd, lpFolder, lpApidl, dwCommandId);
3624
3625 if (!lpFolder)
3626 return E_FAIL;
3627
3628 /* Get the context menu from the shell folder */
3629 hRet = IShellFolder_GetUIObjectOf(lpFolder, hWnd, 1, &lpApidl,
3630 &IID_IContextMenu, 0, (void**)&iContext);
3631 if (SUCCEEDED(hRet))
3632 {
3633 HMENU hMenu;
3634 if ((hMenu = CreatePopupMenu()))
3635 {
3636 HRESULT hQuery;
3637
3638 /* Add the context menu entries to the popup */
3639 hQuery = IContextMenu_QueryContextMenu(iContext, hMenu, 0, 1, 0x7FFF,
3640 dwCommandId ? CMF_NORMAL : CMF_DEFAULTONLY);
3641
3642 if (SUCCEEDED(hQuery))
3643 {
3644 if (!dwCommandId)
3645 dwCommandId = GetMenuDefaultItem(hMenu, 0, 0);
3646 if (dwCommandId != (UINT)-1)
3647 {
3648 CMINVOKECOMMANDINFO cmIci;
3649 /* Invoke the default item */
3650 memset(&cmIci,0,sizeof(cmIci));
3651 cmIci.cbSize = sizeof(cmIci);
3652 cmIci.fMask = CMIC_MASK_ASYNCOK;
3653 cmIci.hwnd = hWnd;
3654#ifdef __REACTOS__ /* r75561 */
3655 cmIci.lpVerb = MAKEINTRESOURCEA(dwCommandId - 1);
3656#else
3657 cmIci.lpVerb = MAKEINTRESOURCEA(dwCommandId);
3658#endif
3659 cmIci.nShow = SW_SHOWNORMAL;
3660
3661 hRet = IContextMenu_InvokeCommand(iContext, &cmIci);
3662 }
3663 }
3664 DestroyMenu(hMenu);
3665 }
3666 IContextMenu_Release(iContext);
3667 }
3668 return hRet;
3669}
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define SW_SHOWNORMAL
Definition: winuser.h:770
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 3056 of file ordinal.c.

3057{
3058 TRACE("%p %p %p\n", hWnd, lpFolder, lpApidl);
3059 return SHInvokeCommand(hWnd, lpFolder, lpApidl, 0);
3060}
HRESULT WINAPI SHInvokeCommand(HWND, IShellFolder *, LPCITEMIDLIST, DWORD)
Definition: ordinal.c:3618

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

◆ SHIsChildOrSelf()

BOOL WINAPI SHIsChildOrSelf ( HWND  hParent,
HWND  hChild 
)

Definition at line 2250 of file ordinal.c.

2251{
2252 TRACE("(%p,%p)\n", hParent, hChild);
2253
2254 if (!hParent || !hChild)
2255 return TRUE;
2256 else if(hParent == hChild)
2257 return FALSE;
2258 return !IsChild(hParent, hChild);
2259}
static HTREEITEM hChild
Definition: treeview.c:381
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)

◆ SHIsExpandableFolder()

HRESULT WINAPI SHIsExpandableFolder ( LPSHELLFOLDER  lpFolder,
LPCITEMIDLIST  pidl 
)

Definition at line 2084 of file ordinal.c.

2085{
2086 HRESULT hRet = E_INVALIDARG;
2087 IQueryInfo *lpInfo;
2088
2089 if (lpFolder && pidl)
2090 {
2091 hRet = IShellFolder_GetUIObjectOf(lpFolder, NULL, 1, &pidl, &IID_IQueryInfo,
2092 NULL, (void**)&lpInfo);
2093 if (FAILED(hRet))
2094 hRet = S_FALSE; /* Doesn't expose IQueryInfo */
2095 else
2096 {
2097 DWORD dwFlags = 0;
2098
2099 /* MSDN states of IQueryInfo_GetInfoFlags() that "This method is not
2100 * currently used". Really? You wouldn't be holding out on me would you?
2101 */
2102 hRet = IQueryInfo_GetInfoFlags(lpInfo, &dwFlags);
2103
2104 if (SUCCEEDED(hRet))
2105 {
2106 /* 0x2 is an undocumented flag apparently indicating expandability */
2107 hRet = dwFlags & 0x2 ? S_OK : S_FALSE;
2108 }
2109
2110 IQueryInfo_Release(lpInfo);
2111 }
2112 }
2113 return hRet;
2114}
#define IQueryInfo_Release(p)
Definition: shlobj.h:679
#define IQueryInfo_GetInfoFlags(p, a)
Definition: shlobj.h:682
#define S_FALSE
Definition: winerror.h:2357

◆ SHIShellFolder_EnumObjects()

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

Definition at line 3853 of file ordinal.c.

3854{
3855 /* Windows attempts to get an IPersist interface and, if that fails, an
3856 * IPersistFolder interface on the folder passed-in here. If one of those
3857 * interfaces is available, it then calls GetClassID on the folder... and
3858 * then calls IShellFolder_EnumObjects no matter what, even crashing if
3859 * lpFolder isn't actually an IShellFolder object. The purpose of getting
3860 * the ClassID is unknown, so we don't do it here.
3861 *
3862 * For discussion and detailed tests, see:
3863 * "shlwapi: Be less strict on which type of IShellFolder can be enumerated"
3864 * wine-devel mailing list, 3 Jun 2010
3865 */
3866
3867 return IShellFolder_EnumObjects(lpFolder, hwnd, flags, ppenum);
3868}
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

Referenced by init_pointers().

◆ SHIsLowMemoryMachine()

BOOL WINAPI SHIsLowMemoryMachine ( DWORD  dwType)

Definition at line 4446 of file ordinal.c.

4447{
4448#ifdef __REACTOS__
4450 static int is_low = -1;
4451 TRACE("(0x%08x)\n", dwType);
4452 if (dwType == 0 && is_low == -1)
4453 {
4455 is_low = (status.dwTotalPhys <= 0x1000000);
4456 }
4457 return is_low;
4458#else
4459 FIXME("(0x%08x) stub\n", dwType);
4460 return FALSE;
4461#endif
4462}
VOID NTAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
Definition: heapmem.c:1365
Definition: ps.c:97

◆ SHIsSameObject()

BOOL WINAPI SHIsSameObject ( IUnknown lpInt1,
IUnknown lpInt2 
)

Definition at line 1285 of file ordinal.c.

1286{
1287 IUnknown *lpUnknown1, *lpUnknown2;
1288 BOOL ret;
1289
1290 TRACE("(%p %p)\n", lpInt1, lpInt2);
1291
1292 if (!lpInt1 || !lpInt2)
1293 return FALSE;
1294
1295 if (lpInt1 == lpInt2)
1296 return TRUE;
1297
1298 if (IUnknown_QueryInterface(lpInt1, &IID_IUnknown, (void**)&lpUnknown1) != S_OK)
1299 return FALSE;
1300
1301 if (IUnknown_QueryInterface(lpInt2, &IID_IUnknown, (void**)&lpUnknown2) != S_OK)
1302 {
1303 IUnknown_Release(lpUnknown1);
1304 return FALSE;
1305 }
1306
1307 ret = lpUnknown1 == lpUnknown2;
1308
1309 IUnknown_Release(lpUnknown1);
1310 IUnknown_Release(lpUnknown2);
1311
1312 return ret;
1313}

◆ SHLoadFromPropertyBag()

DWORD WINAPI SHLoadFromPropertyBag ( IUnknown lpUnknown,
IPropertyBag lpPropBag 
)

Definition at line 1860 of file ordinal.c.

1861{
1862 IPersistPropertyBag* lpPPBag;
1863 HRESULT hRet = E_FAIL;
1864
1865 TRACE("(%p,%p)\n", lpUnknown, lpPropBag);
1866
1867 if (lpUnknown)
1868 {
1869 hRet = IUnknown_QueryInterface(lpUnknown, &IID_IPersistPropertyBag,
1870 (void**)&lpPPBag);
1871 if (SUCCEEDED(hRet) && lpPPBag)
1872 {
1873 hRet = IPersistPropertyBag_Load(lpPPBag, lpPropBag, NULL);
1874 IPersistPropertyBag_Release(lpPPBag);
1875 }
1876 }
1877 return hRet;
1878}
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11

◆ SHLoadMenuPopup()

BOOL WINAPI SHLoadMenuPopup ( HINSTANCE  hInst,
LPCWSTR  szName 
)

Definition at line 1662 of file ordinal.c.

1663{
1664 HMENU hMenu;
1665
1666 TRACE("%p %s\n", hInst, debugstr_w(szName));
1667
1668 if ((hMenu = LoadMenuW(hInst, szName)))
1669 {
1670 if (GetSubMenu(hMenu, 0))
1671 RemoveMenu(hMenu, 0, MF_BYPOSITION);
1672
1673 DestroyMenu(hMenu);
1674 return TRUE;
1675 }
1676 return FALSE;
1677}
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 4240 of file ordinal.c.

4241{
4242 DWORD type, sz = size * sizeof(WCHAR);
4243
4244 if(RegQueryValueExW(hkey, value, NULL, &type, (LPBYTE)buf, &sz) != ERROR_SUCCESS)
4245 return E_FAIL;
4246
4248}
HRESULT WINAPI SHLoadIndirectString(LPCWSTR src, LPWSTR dst, UINT dst_len, void **reserved)
Definition: string.c:2876
Definition: pdh_main.c:94

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

◆ SHLockShared()

PVOID WINAPI SHLockShared ( HANDLE  hShared,
DWORD  dwProcId 
)

Definition at line 255 of file ordinal.c.

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

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

◆ SHLWAPI_EnumChildProc()

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

Definition at line 1688 of file ordinal.c.

1689{
1691
1692 TRACE("(%p,%p)\n", hWnd, data);
1693 data->pfnPost(hWnd, data->uiMsgId, data->wParam, data->lParam);
1694 return TRUE;
1695}

Referenced by SHPropagateMessage().

◆ SHLWAPI_InvokeByIID()

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

Definition at line 3137 of file ordinal.c.

3142{
3143 IEnumConnections *enumerator;
3144 CONNECTDATA rgcd;
3145 static DISPPARAMS empty = {NULL, NULL, 0, 0};
3146 DISPPARAMS* params = dispParams;
3147
3148 HRESULT result = IConnectionPoint_EnumConnections(iCP, &enumerator);
3149 if (FAILED(result))
3150 return result;
3151
3152 /* Invoke is never happening with an NULL dispParams */
3153 if (!params)
3154 params = &empty;
3155
3156 while(IEnumConnections_Next(enumerator, 1, &rgcd, NULL)==S_OK)
3157 {
3158 IDispatch *dispIface;
3159 if ((iid && SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, iid, (LPVOID*)&dispIface))) ||
3160 SUCCEEDED(IUnknown_QueryInterface(rgcd.pUnk, &IID_IDispatch, (LPVOID*)&dispIface)))
3161 {
3162 IDispatch_Invoke(dispIface, dispId, &IID_NULL, 0, DISPATCH_METHOD, params, NULL, NULL, NULL);
3163 IDispatch_Release(dispIface);
3164 }
3165 IUnknown_Release(rgcd.pUnk);
3166 }
3167
3168 IEnumConnections_Release(enumerator);
3169
3170 return S_OK;
3171}
static const WCHAR empty[]
Definition: main.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 94 of file ordinal.c.

96{
97 HANDLE hDst, hSrc;
98 DWORD dwMyProcId = GetCurrentProcessId();
99 HANDLE hRet = NULL;
100
101 TRACE("(%p,%d,%d,%08x,%08x)\n", hShared, dwDstProcId, dwSrcProcId,
102 dwAccess, dwOptions);
103
104 if (!hShared)
105 {
106 TRACE("Returning handle NULL\n");
107 return NULL;
108 }
109
110 /* Get dest process handle */
111 if (dwDstProcId == dwMyProcId)
112 hDst = GetCurrentProcess();
113 else
114 hDst = OpenProcess(PROCESS_DUP_HANDLE, 0, dwDstProcId);
115
116 if (hDst)
117 {
118 /* Get src process handle */
119 if (dwSrcProcId == dwMyProcId)
120 hSrc = GetCurrentProcess();
121 else
122 hSrc = OpenProcess(PROCESS_DUP_HANDLE, 0, dwSrcProcId);
123
124 if (hSrc)
125 {
126 /* Make handle available to dest process */
127 if (!DuplicateHandle(hSrc, hShared, hDst, &hRet,
128 dwAccess, 0, dwOptions | DUPLICATE_SAME_ACCESS))
129 hRet = NULL;
130
131 if (dwSrcProcId != dwMyProcId)
132 CloseHandle(hSrc);
133 }
134
135 if (dwDstProcId != dwMyProcId)
136 CloseHandle(hDst);
137 }
138
139 TRACE("Returning handle %p\n", hRet);
140 return hRet;
141}
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:1227
#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 4504 of file ordinal.c.

4505{
4506 TRACE("%p %u\n", hMenu, uID);
4507 return GetMenuPosFromID(hMenu, uID);
4508}
INT WINAPI GetMenuPosFromID(HMENU hMenu, UINT wID)
Definition: ordinal.c:4477

Referenced by CDefView::FillViewMenu().

◆ SHPackDispParams()

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

Definition at line 3119 of file ordinal.c.

3120{
3122 HRESULT hres;
3123
3124 __ms_va_start(valist, cnt);
3127 return hres;
3128}
HRESULT hres
Definition: protocol.c:465

Referenced by init_pointers().

◆ SHPackDispParamsV()

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

Definition at line 3067 of file ordinal.c.

3068{
3069 VARIANTARG *iter;
3070
3071 TRACE("(%p %p %u ...)\n", params, args, cnt);
3072
3073 params->rgvarg = args;
3074 params->rgdispidNamedArgs = NULL;
3075 params->cArgs = cnt;
3076 params->cNamedArgs = 0;
3077
3078 iter = args+cnt;
3079
3080 while(iter-- > args) {
3081 V_VT(iter) = va_arg(valist, enum VARENUM);
3082
3083 TRACE("vt=%d\n", V_VT(iter));
3084
3085 if(V_VT(iter) & VT_BYREF) {
3086 V_BYREF(iter) = va_arg(valist, LPVOID);
3087 } else {
3088 switch(V_VT(iter)) {
3089 case VT_I4:
3090 V_I4(iter) = va_arg(valist, LONG);
3091 break;
3092 case VT_BSTR:
3093 V_BSTR(iter) = va_arg(valist, BSTR);
3094 break;
3095 case VT_DISPATCH:
3096 V_DISPATCH(iter) = va_arg(valist, IDispatch*);
3097 break;
3098 case VT_BOOL:
3099 V_BOOL(iter) = va_arg(valist, int);
3100 break;
3101 case VT_UNKNOWN:
3102 V_UNKNOWN(iter) = va_arg(valist, IUnknown*);
3103 break;
3104 default:
3105 V_VT(iter) = VT_I4;
3106 V_I4(iter) = va_arg(valist, LONG);
3107 }
3108 }
3109 }
3110
3111 return S_OK;
3112}
#define va_arg(ap, T)
Definition: acmsvcex.h:89
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 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

Referenced by IUnknown_CPContainerInvokeParam(), and SHPackDispParams().

◆ SHPinDllOfCLSID()

HMODULE WINAPI SHPinDllOfCLSID ( REFIID  refiid)

Definition at line 2533 of file ordinal.c.

2534{
2535 HKEY newkey;
2536 DWORD type, count;
2537 CHAR value[MAX_PATH], string[MAX_PATH];
2538
2539 strcpy(string, "CLSID\\");
2540 SHStringFromGUIDA(refiid, string + 6, sizeof(string)/sizeof(char) - 6);
2541 strcat(string, "\\InProcServer32");
2542
2543 count = MAX_PATH;
2544 RegOpenKeyExA(HKEY_CLASSES_ROOT, string, 0, 1, &newkey);
2545 RegQueryValueExA(newkey, 0, 0, &type, (PBYTE)value, &count);
2546 RegCloseKey(newkey);
2547 return LoadLibraryExA(value, 0, 0);
2548}
char * strcat(char *DstString, const char *SrcString)
Definition: utclib.c:568
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3327
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:4038
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:624
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

Referenced by SHAutoComplete().

◆ SHPropagateMessage()

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

Definition at line 1715 of file ordinal.c.

1716{
1718
1719 TRACE("(%p,%u,%ld,%ld,%d)\n", hWnd, uiMsgId, wParam, lParam, bSend);
1720
1721 if(hWnd)
1722 {
1723 data.uiMsgId = uiMsgId;
1724 data.wParam = wParam;
1725 data.lParam = lParam;
1726
1727 if (bSend)
1728 data.pfnPost = IsWindowUnicode(hWnd) ? (void*)SendMessageW : (void*)SendMessageA;
1729 else
1730 data.pfnPost = IsWindowUnicode(hWnd) ? (void*)PostMessageW : (void*)PostMessageA;
1731
1733 }
1734}
static BOOL CALLBACK SHLWAPI_EnumChildProc(HWND hWnd, LPARAM lParam)
Definition: ordinal.c:1688
LONG_PTR LPARAM
Definition: windef.h:208
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().

◆ SHPropertyBag_ReadLONG()

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

Definition at line 5585 of file ordinal.c.

5586{
5587#ifdef __REACTOS__
5588 HRESULT hr;
5589 VARIANTARG varg;
5590
5591 TRACE("%p %s %p\n", ppb, debugstr_w(pszPropName), pValue);
5592
5593 if (!ppb || !pszPropName || !pValue)
5594 {
5595 ERR("%p %s %p\n", ppb, debugstr_w(pszPropName), pValue);
5596 return E_INVALIDARG;
5597 }
5598
5599 hr = SHPropertyBag_ReadType(ppb, pszPropName, &varg, VT_I4);
5600 if (SUCCEEDED(hr))
5601 *pValue = V_I4(&varg);
5602#else
5603 VARIANT var;
5604 HRESULT hr;
5605 TRACE("%p %s %p\n", ppb,debugstr_w(pszPropName),pValue);
5606 if (!pszPropName || !ppb || !pValue)
5607 return E_INVALIDARG;
5608 V_VT(&var) = VT_I4;
5609 hr = IPropertyBag_Read(ppb, pszPropName, &var, NULL);
5610 if (SUCCEEDED(hr))
5611 {
5612 if (V_VT(&var) == VT_I4)
5613 *pValue = V_I4(&var);
5614 else
5616 }
5617#endif
5618 return hr;
5619}
PWCHAR pValue
HRESULT WINAPI SHPropertyBag_ReadType(IPropertyBag *ppb, LPCWSTR pszPropName, VARIANTARG *pvarg, VARTYPE vt)
#define DISP_E_BADVARTYPE
Definition: winerror.h:2517

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 4725 of file ordinal.c.

4728{
4729 TRACE("(%p, %p, %d, %lx, %p, %s, %08x)\n", pfnCallback, pContext,
4730 lPriority, dwTag, pdwId, debugstr_a(pszModule), dwFlags);
4731
4732 if(lPriority || dwTag || pdwId || pszModule || dwFlags)
4733 FIXME("Unsupported arguments\n");
4734
4735 return QueueUserWorkItem(pfnCallback, pContext, 0);
4736}
BOOL WINAPI QueueUserWorkItem(IN LPTHREAD_START_ROUTINE Function, IN PVOID Context, IN ULONG Flags)
Definition: thread.c:1076

◆ SHRegisterClassA()

DWORD WINAPI SHRegisterClassA ( WNDCLASSA wndclass)

Definition at line 1813 of file ordinal.c.

1814{
1815 WNDCLASSA wca;
1816 if (GetClassInfoA(wndclass->hInstance, wndclass->lpszClassName, &wca))
1817 return TRUE;
1818 return (DWORD)RegisterClassA(wndclass);
1819}
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 2555 of file ordinal.c.

2556{
2558
2559 TRACE("(%p %s)\n",lpWndClass->hInstance, debugstr_w(lpWndClass->lpszClassName));
2560
2561 if (GetClassInfoW(lpWndClass->hInstance, lpWndClass->lpszClassName, &WndClass))
2562 return TRUE;
2563 return RegisterClassW(lpWndClass);
2564}
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 1748 of file ordinal.c.

1749{
1750 int iItemCount = GetMenuItemCount(hMenu) - 1;
1751
1752 TRACE("%p\n", hMenu);
1753
1754 while (iItemCount >= 0)
1755 {
1756 HMENU hSubMenu = GetSubMenu(hMenu, iItemCount);
1757 if (hSubMenu)
1758 RemoveMenu(hMenu, iItemCount, MF_BYPOSITION);
1759 iItemCount--;
1760 }
1761 return iItemCount;
1762}

◆ SHRemoveDefaultDialogFont()

HANDLE WINAPI SHRemoveDefaultDialogFont ( HWND  hWnd)

Definition at line 2505 of file ordinal.c.

2506{
2507 HANDLE hProp;
2508
2509 TRACE("(%p)\n", hWnd);
2510
2511 hProp = GetPropA(hWnd, "PropDlgFont");
2512
2513 if(hProp)
2514 {
2515 DeleteObject(hProp);
2516 hProp = RemovePropA(hWnd, "PropDlgFont");
2517 }
2518 return hProp;
2519}
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 2807 of file ordinal.c.

2813{
2814 TRACE("(0x%08x %s %p %p)\n", policy, debugstr_w(initial), polTable, polArr);
2815
2816#ifndef __REACTOS__
2817 if (!polTable || !polArr)
2818 return 0;
2819#endif
2820
2821#ifndef __REACTOS__
2822 for (;polTable->appstr; polTable++, polArr++)
2823#else
2824 for (;polTable->policy; polTable++, polArr++)
2825#endif
2826 {
2827 if (policy == polTable->policy)
2828 {
2829 /* we have a known policy */
2830
2831 /* check if this policy has been cached */
2832 if (*polArr == SHELL_NO_POLICY)
2833 *polArr = SHGetRestriction(initial, polTable->appstr, polTable->keystr);
2834 return *polArr;
2835 }
2836 }
2837 /* we don't know this policy, return 0 */
2838 TRACE("unknown policy: (%08x)\n", policy);
2839 return 0;
2840}
#define SHELL_NO_POLICY
Definition: ordinal.c:2718
DWORD WINAPI SHGetRestriction(LPCWSTR lpSubKey, LPCWSTR lpSubName, LPCWSTR lpValue)
Definition: ordinal.c:2740
WDF_INTERRUPT_POLICY policy
DWORD policy
Definition: ordinal.c:2713
LPCWSTR keystr
Definition: ordinal.c:2715
LPCWSTR appstr
Definition: ordinal.c:2714

Referenced by SHRestricted().

◆ SHSearchMapInt()

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

Definition at line 2157 of file ordinal.c.

2158{
2159 if (lpKeys && lpValues)
2160 {
2161 int i = 0;
2162
2163 while (i < iLen)
2164 {
2165 if (lpKeys[i] == iKey)
2166 return lpValues[i]; /* Found */
2167 i++;
2168 }
2169 }
2170 return -1; /* Not found */
2171}

Referenced by init_pointers().

◆ SHSendMessageBroadcastA()

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

Definition at line 4044 of file ordinal.c.

4045{
4047 SMTO_ABORTIFHUNG, 2000, NULL);
4048}
#define HWND_BROADCAST
Definition: winuser.h:1204
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:1223

◆ SHSendMessageBroadcastW()

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

Definition at line 4056 of file ordinal.c.

4057{
4059 SMTO_ABORTIFHUNG, 2000, NULL);
4060}
LRESULT WINAPI SendMessageTimeoutW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM, _In_ UINT, _In_ UINT, _Out_opt_ PDWORD_PTR)

◆ SHSetDefaultDialogFont()

HRESULT WINAPI SHSetDefaultDialogFont ( HWND  hWnd,
INT  id 
)

Definition at line 2453 of file ordinal.c.

2455{
2456#ifdef __REACTOS__
2457 HFONT hOldFont, hNewFont;
2458 LOGFONTW lfOldFont, lfNewFont;
2459 HWND hwndItem;
2460
2461 TRACE("(%p, %d)\n", hWnd, id);
2462
2463 hOldFont = (HFONT)SendMessageW(hWnd, WM_GETFONT, 0, 0);
2464 GetObjectW(hOldFont, sizeof(lfOldFont), &lfOldFont);
2465 SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(lfNewFont), &lfNewFont, 0);
2466
2467 if (lfOldFont.lfCharSet == lfNewFont.lfCharSet)
2468 return;
2469
2470 hNewFont = GetPropW(hWnd, L"PropDlgFont");
2471 if (!hNewFont)
2472 {
2473 /* Create the icon-title font of the same height */
2474 lfNewFont.lfHeight = lfOldFont.lfHeight;
2475 hNewFont = CreateFontIndirectW(&lfNewFont);
2476
2477 /* If creating the font is failed, then keep the old font */
2478 if (!hNewFont)
2479 hNewFont = hOldFont;
2480
2481 /* Set "PropDlgFont" property if the font is changed */
2482 if (hOldFont != hNewFont)
2483 SetPropW(hWnd, L"PropDlgFont", hNewFont);
2484 }
2485
2486 hwndItem = GetDlgItem(hWnd, id);
2487 SendMessageW(hwndItem, WM_SETFONT, (WPARAM)hNewFont, 0);
2488#else
2489 FIXME("(%p, %d) stub\n", hWnd, id);
2490 return S_OK;
2491#endif
2492}
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
UINT_PTR WPARAM
Definition: windef.h:207
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:1380
#define WM_GETFONT
Definition: winuser.h:1651
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define WM_SETFONT
Definition: winuser.h:1650
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 3418 of file ordinal.c.

3420{
3421 TRACE("(%s, %p, %s, %s)\n", debugstr_w(appName), keyName, debugstr_w(str),
3423
3425}
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 1154 of file ordinal.c.

1155{
1156 TRACE("%p, %p\n", hWnd, hWndParent);
1157
1158 if(GetParent(hWnd) == hWndParent)
1159 return NULL;
1160
1161 if(hWndParent)
1163 else
1165
1167}
LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT mask, UINT flags)
Definition: ordinal.c:1126
#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:852

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 4741 of file ordinal.c.

4744{
4745 HANDLE hNewTimer;
4746
4747 /* SHSetTimerQueueTimer flags -> CreateTimerQueueTimer flags */
4748 if (dwFlags & TPS_LONGEXECTIME) {
4749 dwFlags &= ~TPS_LONGEXECTIME;
4751 }
4752 if (dwFlags & TPS_EXECUTEIO) {
4753 dwFlags &= ~TPS_EXECUTEIO;
4755 }
4756
4757 if (!CreateTimerQueueTimer(&hNewTimer, hQueue, pfnCallback, pContext,
4758 dwDueTime, dwPeriod, dwFlags))
4759 return NULL;
4760
4761 return hNewTimer;
4762}
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:2057
#define TPS_LONGEXECTIME
Definition: shlwapi.h:2058
#define WT_EXECUTEINIOTHREAD
Definition: winnt_old.h:1039
#define WT_EXECUTELONGFUNCTION
Definition: winnt_old.h:1043

◆ SHSetWindowBits()

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

Definition at line 1126 of file ordinal.c.

1127{
1129 LONG new_flags = (flags & mask) | (ret & ~mask);
1130
1131 TRACE("%p %d %x %x\n", hwnd, offset, mask, flags);
1132
1133 if (new_flags != ret)
1134 ret = SetWindowLongW(hwnd, offset, new_flags);
1135 return ret;
1136}
GLenum GLint GLuint mask
Definition: glext.h:6028
GLintptr offset
Definition: glext.h:5920
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)

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

◆ SHSimulateDrop()

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

Definition at line 1824 of file ordinal.c.

1826{
1827 DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;
1828 POINTL pt = { 0, 0 };
1829
1830 TRACE("%p %p 0x%08x %p %p\n", pDrop, pDataObj, grfKeyState, lpPt, pdwEffect);
1831
1832 if (!lpPt)
1833 lpPt = &pt;
1834
1835 if (!pdwEffect)
1836 pdwEffect = &dwEffect;
1837
1838 IDropTarget_DragEnter(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1839
1840 if (*pdwEffect != DROPEFFECT_NONE)
1841 return IDropTarget_Drop(pDrop, pDataObj, grfKeyState, *lpPt, pdwEffect);
1842
1843 IDropTarget_DragLeave(pDrop);
1844 return TRUE;
1845}
#define pt(x, y)
Definition: drawing.c:79

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

◆ SHSkipJunction()

BOOL WINAPI SHSkipJunction ( IBindCtx pbc,
const CLSID pclsid 
)

Definition at line 4558 of file ordinal.c.

4559{
4560 static WCHAR szSkipBinding[] = { 'S','k','i','p',' ',
4561 'B','i','n','d','i','n','g',' ','C','L','S','I','D','\0' };
4562 BOOL bRet = FALSE;
4563
4564 if (pbc)
4565 {
4566 IUnknown* lpUnk;
4567
4568 if (SUCCEEDED(IBindCtx_GetObjectParam(pbc, szSkipBinding, &lpUnk)))
4569 {
4570 CLSID clsid;
4571
4572 if (SUCCEEDED(IUnknown_GetClassID(lpUnk, &clsid)) &&
4573 IsEqualGUID(pclsid, &clsid))
4574 bRet = TRUE;
4575
4576 IUnknown_Release(lpUnk);
4577 }
4578 }
4579 return bRet;
4580}
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *clsid)
Definition: ordinal.c:1453
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

◆ SHStringFromGUIDA()

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

Definition at line 624 of file ordinal.c.

625{
626 char xguid[40];
627 INT iLen;
628
629 TRACE("(%s,%p,%d)\n", debugstr_guid(guid), lpszDest, cchMax);
630
631 sprintf(xguid, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
632 guid->Data1, guid->Data2, guid->Data3,
633 guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
634 guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
635
636 iLen = strlen(xguid) + 1;
637
638 if (iLen > cchMax)
639 return 0;
640 memcpy(lpszDest, xguid, iLen);
641 return iLen;
642}
UINT cchMax
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
const GUID * guid
#define sprintf(buf, format,...)
Definition: sprintf.c:55

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

◆ SHStringFromGUIDW()

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

Definition at line 657 of file ordinal.c.

658{
659 WCHAR xguid[40];
660 INT iLen;
661 static const WCHAR wszFormat[] = {'{','%','0','8','l','X','-','%','0','4','X','-','%','0','4','X','-',
662 '%','0','2','X','%','0','2','X','-','%','0','2','X','%','0','2','X','%','0','2','X','%','0','2',
663 'X','%','0','2','X','%','0','2','X','}',0};
664
665 TRACE("(%s,%p,%d)\n", debugstr_guid(guid), lpszDest, cchMax);
666
667 sprintfW(xguid, wszFormat, guid->Data1, guid->Data2, guid->Data3,
668 guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3],
669 guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]);
670
671 iLen = strlenW(xguid) + 1;
672
673 if (iLen > cchMax)
674 return 0;
675 memcpy(lpszDest, xguid, iLen*sizeof(WCHAR));
676 return iLen;
677}

Referenced by SHCoCreateInstance(), and SHRegGetCLSIDKeyW().

◆ SHUnlockShared()

◆ SHUnregisterClassesA()

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

Definition at line 2579 of file ordinal.c.

2580{
2582
2583 TRACE("(%p,%p,%d)\n", hInst, lppClasses, iCount);
2584
2585 while (iCount > 0)
2586 {
2587 if (GetClassInfoA(hInst, *lppClasses, &WndClass))
2588 UnregisterClassA(*lppClasses, hInst);
2589 lppClasses++;
2590 iCount--;
2591 }
2592}
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)

◆ SHUnregisterClassesW()

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

Definition at line 2599 of file ordinal.c.

2600{
2602
2603 TRACE("(%p,%p,%d)\n", hInst, lppClasses, iCount);
2604
2605 while (iCount > 0)
2606 {
2607 if (GetClassInfoW(hInst, *lppClasses, &WndClass))
2608 UnregisterClassW(*lppClasses, hInst);
2609 lppClasses++;
2610 iCount--;
2611 }
2612}
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)

◆ SHVerbExistsNA()

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

Definition at line 5354 of file ordinal.c.

5355{
5356 FIXME("(%s, %p, %p, %i) STUB\n",verb, pUnknown, pUnknown2, dwUnknown3);
5357 return 0;
5358}
_In_ PUNKNOWN pUnknown
Definition: drmk.h:76

◆ SHWaitForSendMessageThread()

DWORD WINAPI SHWaitForSendMessageThread ( HANDLE  hand,
DWORD  dwTimeout 
)

Definition at line 2046 of file ordinal.c.

2047{
2048 DWORD dwEndTicks = GetTickCount() + dwTimeout;
2049 DWORD dwRet;
2050
2051 while ((dwRet = MsgWaitForMultipleObjectsEx(1, &hand, dwTimeout, QS_SENDMESSAGE, 0)) == 1)
2052 {
2053 MSG msg;
2054
2055 PeekMessageW(&msg, NULL, 0, 0, PM_NOREMOVE);
2056
2057 if (dwTimeout != INFINITE)
2058 {
2059 if ((int)(dwTimeout = dwEndTicks - GetTickCount()) <= 0)
2060 return WAIT_TIMEOUT;
2061 }
2062 }
2063
2064 return dwRet;
2065}
#define WAIT_TIMEOUT
Definition: dderror.h:14
DWORD WINAPI GetTickCount(VOID)
Definition: time.c:455
#define INFINITE
Definition: serial.h:102
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6081
#define QS_SENDMESSAGE
Definition: winuser.h:880
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:1195

◆ SHWeakQueryInterface()

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

Definition at line 2857 of file ordinal.c.

2862{
2863 HRESULT hret = E_NOINTERFACE;
2864 TRACE("(pUnk=%p pInner=%p\n\tIID: %s %p)\n",pUnk,pInner,debugstr_guid(riid), ppv);
2865
2866 *ppv = NULL;
2867 if(pUnk && pInner) {
2868 hret = IUnknown_QueryInterface(pInner, riid, ppv);
2869 if (SUCCEEDED(hret)) IUnknown_Release(pUnk);
2870 }
2871 TRACE("-- 0x%08x\n", hret);
2872 return hret;
2873}

◆ SHWeakReleaseInterface()

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

Definition at line 2887 of file ordinal.c.

2888{
2889 TRACE("(%p,%p)\n", lpDest, lppUnknown);
2890
2891 if (*lppUnknown)
2892 {
2893 /* Copy Reference*/
2894 IUnknown_AddRef(lpDest);
2895 IUnknown_AtomicRelease(lppUnknown); /* Release existing interface */
2896 }
2897}

◆ SHWinHelpOnDemandA()

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

Definition at line 3974 of file ordinal.c.

3975{
3976
3977 FIXME("(%p, %s, 0x%x, %p, %d)\n", hwnd, debugstr_a(helpfile), flags1, ptr1, flags2);
3978 return 0;
3979}
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 3963 of file ordinal.c.

3964{
3965
3966 FIXME("(%p, %s, 0x%x, %p, %d)\n", hwnd, debugstr_w(helpfile), flags1, ptr1, flags2);
3967 return 0;
3968}

◆ SKAllocValueW()

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

Definition at line 4790 of file ordinal.c.

4792{
4793 DWORD ret, size;
4794 HKEY hkey;
4795
4796 TRACE("(0x%x, %s, %s, %p, %p, %p)\n", flags, debugstr_w(subkey),
4798
4799 hkey = SHGetShellKey(flags, subkey, FALSE);
4800 if (!hkey)
4802
4803 ret = SHQueryValueExW(hkey, value, NULL, type, NULL, &size);
4804 if (ret) {
4805 RegCloseKey(hkey);
4806 return HRESULT_FROM_WIN32(ret);
4807 }
4808
4809 size += 2;
4810 *data = LocalAlloc(0, size);
4811 if (!*data) {
4812 RegCloseKey(hkey);
4813 return E_OUTOFMEMORY;
4814 }
4815
4816 ret = SHQueryValueExW(hkey, value, NULL, type, *data, &size);
4817 if (count)
4818 *count = size;
4819
4820 RegCloseKey(hkey);
4821 return HRESULT_FROM_WIN32(ret);
4822}
HKEY WINAPI SHGetShellKey(DWORD flags, LPCWSTR sub_key, BOOL create)
Definition: ordinal.c:4585
DWORD WINAPI SHQueryValueExW(HKEY hKey, LPCWSTR lpszValue, LPDWORD lpReserved, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1461
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92

Referenced by init_pointers().

◆ SKDeleteValueW()

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

Definition at line 4827 of file ordinal.c.

4828{
4829 DWORD ret;
4830 HKEY hkey;
4831
4832 TRACE("(0x%x, %s %s)\n", flags, debugstr_w(subkey), debugstr_w(value));
4833
4834 hkey = SHGetShellKey(flags, subkey, FALSE);
4835 if (!hkey)
4837
4838 ret = RegDeleteValueW(hkey, value);
4839
4840 RegCloseKey(hkey);
4841 return HRESULT_FROM_WIN32(ret);
4842}
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
Definition: reg.c:2361

Referenced by init_pointers().

◆ SKGetValueW()

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

Definition at line 4847 of file ordinal.c.

4849{
4850 DWORD ret;
4851 HKEY hkey;
4852
4853 TRACE("(0x%x, %s, %s, %p, %p, %p)\n", flags, debugstr_w(subkey),
4855
4856 hkey = SHGetShellKey(flags, subkey, FALSE);
4857 if (!hkey)
4859
4861
4862 RegCloseKey(hkey);
4863 return HRESULT_FROM_WIN32(ret);
4864}

Referenced by init_pointers().

◆ SKSetValueW()

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

Definition at line 4869 of file ordinal.c.

4871{
4872 DWORD ret;
4873 HKEY hkey;
4874
4875 TRACE("(0x%x, %s, %s, %x, %p, %d)\n", flags, debugstr_w(subkey),
4877
4878 hkey = SHGetShellKey(flags, subkey, TRUE);
4879 if (!hkey)
4881
4882 ret = RegSetValueExW(hkey, value, 0, type, data, count);
4883
4884 RegCloseKey(hkey);
4885 return HRESULT_FROM_WIN32(ret);
4886}
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:4911

Referenced by init_pointers().

◆ StrCmpCA()

DWORD WINAPI StrCmpCA ( LPCSTR  lpszSrc,
LPCSTR  lpszCmp 
)

Definition at line 855 of file ordinal.c.

856{
857 return lstrcmpA(lpszSrc, lpszCmp);
858}
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:18

◆ StrCmpCW()

DWORD WINAPI StrCmpCW ( LPCWSTR  lpszSrc,
LPCWSTR  lpszCmp 
)

Definition at line 865 of file ordinal.c.

866{
867 return lstrcmpW(lpszSrc, lpszCmp);
868}
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:170

◆ StrCmpICA()

DWORD WINAPI StrCmpICA ( LPCSTR  lpszSrc,
LPCSTR  lpszCmp 
)

Definition at line 883 of file ordinal.c.

884{
885 return lstrcmpiA(lpszSrc, lpszCmp);
886}
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42

◆ StrCmpICW()

DWORD WINAPI StrCmpICW ( LPCWSTR  lpszSrc,
LPCWSTR  lpszCmp 
)

Definition at line 893 of file ordinal.c.

894{
895 return lstrcmpiW(lpszSrc, lpszCmp);
896}
int WINAPI lstrcmpiW(LPCWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:194

◆ StrCmpNCA()

DWORD WINAPI StrCmpNCA ( LPCSTR  lpszSrc,
LPCSTR  lpszCmp,
INT  len 
)

Definition at line 798 of file ordinal.c.

799{
800 return StrCmpNA(lpszSrc, lpszCmp, len);
801}
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
Definition: string.c:493

◆ StrCmpNCW()

DWORD WINAPI StrCmpNCW ( LPCWSTR  lpszSrc,
LPCWSTR  lpszCmp,
INT  len 
)

Definition at line 808 of file ordinal.c.

809{
810 return StrCmpNW(lpszSrc, lpszCmp, len);
811}
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:504

◆ StrCmpNICA()

DWORD WINAPI StrCmpNICA ( LPCSTR  lpszSrc,
LPCSTR  lpszCmp,
DWORD  len 
)

Definition at line 827 of file ordinal.c.

828{
829 return StrCmpNIA(lpszSrc, lpszCmp, len);
830}
INT WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
Definition: string.c:300

◆ StrCmpNICW()

DWORD WINAPI StrCmpNICW ( LPCWSTR  lpszSrc,
LPCWSTR  lpszCmp,
DWORD  len 
)

Definition at line 837 of file ordinal.c.

838{
839 return StrCmpNIW(lpszSrc, lpszCmp, len);
840}
INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
Definition: string.c:311

◆ VerQueryValueWrapW()

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

Definition at line 3524 of file ordinal.c.

3526{
3527 return VerQueryValueW( pBlock, lpSubBlock, lplpBuffer, puLen );
3528}
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
Definition: version.c:1049

◆ WhichPlatform()

DWORD WINAPI WhichPlatform ( void  )

Definition at line 2947 of file ordinal.c.

2948{
2949 static const char szIntegratedBrowser[] = "IntegratedBrowser";
2950 static DWORD dwState = 0;
2951 HKEY hKey;
2952 DWORD dwRet, dwData, dwSize;
2953 HMODULE hshell32;
2954
2955 if (dwState)
2956 return dwState;
2957
2958 /* If shell32 exports DllGetVersion(), the browser is integrated */
2959 dwState = 1;
2960 hshell32 = LoadLibraryA("shell32.dll");
2961 if (hshell32)
2962 {
2963 FARPROC pDllGetVersion;
2964 pDllGetVersion = GetProcAddress(hshell32, "DllGetVersion");
2965 dwState = pDllGetVersion ? 2 : 1;
2966 FreeLibrary(hshell32);
2967 }
2968
2969 /* Set or delete the key accordingly */
2971 "Software\\Microsoft\\Internet Explorer", 0,
2973 if (!dwRet)
2974 {
2975 dwRet = RegQueryValueExA(hKey, szIntegratedBrowser, 0, 0,
2976 (LPBYTE)&dwData, &dwSize);
2977
2978 if (!dwRet && dwState == 1)
2979 {
2980 /* Value exists but browser is not integrated */
2981 RegDeleteValueA(hKey, szIntegratedBrowser);
2982 }
2983 else if (dwRet && dwState == 2)
2984 {
2985 /* Browser is integrated but value does not exist */
2986 dwData = TRUE;
2987 RegSetValueExA(hKey, szIntegratedBrowser, 0, REG_DWORD,
2988 (LPBYTE)&dwData, sizeof(dwData));
2989 }
2991 }
2992 return dwState;
2993}
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4828
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
Definition: reg.c:2325
int(* FARPROC)()
Definition: compat.h:36
static HANDLE ULONG_PTR dwData
Definition: file.c:35
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
#define REG_DWORD
Definition: sdbapi.c:596

◆ 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 3814 of file ordinal.c.

3816{
3817 return WNetGetLastErrorW(lpError, lpErrorBuf, nErrorBufSize, lpNameBuf, nNameBufSize);
3818}
DWORD WINAPI WNetGetLastErrorW(LPDWORD lpError, LPWSTR lpErrorBuf, DWORD nErrorBufSize, LPWSTR lpNameBuf, DWORD nNameBufSize)
Definition: wnet.c:3011

◆ WNetRestoreConnectionWrapW()

DWORD WINAPI WNetRestoreConnectionWrapW ( HWND  hwndOwner,
LPWSTR  lpszDevice 
)

Definition at line 3804 of file ordinal.c.

3805{
3806 return WNetRestoreConnectionW(hwndOwner, lpszDevice);
3807}
DWORD WINAPI WNetRestoreConnectionW(HWND hwndOwner, LPCWSTR lpszDevice)
Definition: wnet.c:2473

◆ ZoneCheckUrlExW()

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

Definition at line 5331 of file ordinal.c.

5334{
5335 FIXME("(%s,%p,%x,%x,%x,%x,%x,%x) STUB\n", debugstr_w(szURL), pUnknown, dwUnknown2,
5336 dwUnknown3, dwUnknown4, dwUnknown5, dwUnknown6, dwUnknown7);
5337
5338 return 0;
5339}

◆ ZoneComputePaneSize()

UINT WINAPI ZoneComputePaneSize ( HWND  hwnd)

Definition at line 4997 of file ordinal.c.

4998{
4999 FIXME("\n");
5000 return 0x95;
5001}

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:6227
#define OBJCOMPAT_CTXMENU_XPQCMFLAGS
Definition: ordinal.c:6226
#define OBJCOMPAT_NOLEGACYWEBVIEW
Definition: ordinal.c:6225
#define OBJCOMPAT_OTNEEDSSFCACHE
Definition: ordinal.c:6215
#define OBJCOMPAT_NEEDSFILESYSANCESTOR
Definition: ordinal.c:6219
#define OBJCOMPAT_CTXMENU_LIMITEDQI
Definition: ordinal.c:6222
#define OBJCOMPAT_NOTAFILESYSTEM
Definition: ordinal.c:6220
#define OBJCOMPAT_PINDLL
Definition: ordinal.c:6218
#define OBJCOMPAT_UNBINDABLE
Definition: ordinal.c:6217
#define OBJCOMPAT_NEEDSSTORAGEANCESTOR
Definition: ordinal.c:6224
#define OBJCOMPAT_NO_WEBVIEW
Definition: ordinal.c:6216
#define OBJCOMPAT_COCREATESHELLFOLDERONLY
Definition: ordinal.c:6223

Definition at line 6236 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 2721 of file ordinal.c.

Referenced by SHGetRestriction().