ReactOS 0.4.16-dev-1946-g52006dd
ordinal.c File Reference
#include <stdio.h>
#include "wine/test.h"
#include "winbase.h"
#include "winerror.h"
#include "winuser.h"
#include "ole2.h"
#include "oaidl.h"
#include "ocidl.h"
#include "mlang.h"
#include "shlwapi.h"
#include "docobj.h"
#include "shobjidl.h"
#include "shlobj.h"
Include dependency graph for ordinal.c:

Go to the source code of this file.

Classes

struct  SHELL_USER_SID
 
struct  SHELL_USER_PERMISSION
 
struct  call_entry_t
 
struct  call_trace_t
 
struct  shared_struct
 
struct  _disp
 
struct  _contain
 
struct  _cntptn
 
struct  _enum
 
struct  _enumpt
 
struct  _propbag
 
struct  IOleCommandTargetImpl
 
struct  IServiceProviderImpl
 
struct  IProfferServiceImpl< T >
 

Macros

#define COBJMACROS
 
#define CONST_VTABLE
 
#define ok_trace(a, b)   ok_trace_(a, b, __LINE__)
 
#define MY_INHERITANCE   0xBE /* invalid value to proof behavior */
 
#define UNICODE_LTR_MARK   0x200e
 
#define UNICODE_RTL_MARK   0x200f
 
#define verify_inifile(f, e)   r_verify_inifile(__LINE__, f, e)
 
#define MAKEFUNC(f, ord)   (p##f = (void*)GetProcAddress(hShlwapi, (LPSTR)(ord)))
 

Typedefs

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
 
typedef struct _disp Disp
 
typedef struct _contain Contain
 
typedef struct _cntptn ConPt
 
typedef struct _enum EnumCon
 
typedef struct _enumpt EnumPt
 
typedef struct _propbag PropBag
 

Enumerations

enum  _shellkey_flags {
  SHKEY_Root_HKCU = 0x1 , SHKEY_Root_HKLM = 0x2 , SHKEY_Key_Explorer = 0x00 , SHKEY_Key_Shell = 0x10 ,
  SHKEY_Key_ShellNoRoam = 0x20 , SHKEY_Key_Classes = 0x30 , SHKEY_Subkey_Default = 0x0000 , SHKEY_Subkey_ResourceName = 0x1000 ,
  SHKEY_Subkey_Handlers = 0x2000 , SHKEY_Subkey_Associations = 0x3000 , SHKEY_Subkey_Volatile = 0x4000 , SHKEY_Subkey_MUICache = 0x5000 ,
  SHKEY_Subkey_FileExts = 0x6000 , SHKEY_Root_HKCU = 0x1 , SHKEY_Root_HKLM = 0x2 , SHKEY_Key_Explorer = 0x00 ,
  SHKEY_Key_Shell = 0x10 , SHKEY_Key_ShellNoRoam = 0x20 , SHKEY_Key_Classes = 0x30 , SHKEY_Subkey_Default = 0x0000 ,
  SHKEY_Subkey_ResourceName = 0x1000 , SHKEY_Subkey_Handlers = 0x2000 , SHKEY_Subkey_Associations = 0x3000 , SHKEY_Subkey_Volatile = 0x4000 ,
  SHKEY_Subkey_MUICache = 0x5000 , SHKEY_Subkey_FileExts = 0x6000
}
 

Functions

static int (WINAPI *pSHSearchMapInt)(const int *
 
static HRESULT (WINAPI *pGetAcceptLanguagesA)(LPSTR
 
static HANDLE (WINAPI *pSHAllocShared)(LPCVOID
 
static LPVOID (WINAPI *pSHLockShared)(HANDLE
 
static BOOL (WINAPI *pSHUnlockShared)(LPVOID)
 
static HRESULT (WINAPIV *pSHPackDispParams)(DISPPARAMS *
 
static LONG (WINAPI *pSHSetWindowBits)(HWND
 
static INT (WINAPI *pSHFormatDateTimeA)(const FILETIME *
 
static DWORD (WINAPI *pSHGetObjectCompatFlags)(IUnknown *
 
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HWND (WINAPI *pSHCreateWorkerWindowA)(LONG
 
static HKEY (WINAPI *pSHGetShellKey)(DWORD
 
static SECURITY_DESCRIPTOR *WINAPIpGetShellSecurityDescriptor (const SHELL_USER_PERMISSION **, int)
 
static void init_call_trace (call_trace_t *ctrace)
 
static void free_call_trace (const call_trace_t *ctrace)
 
static void add_call (call_trace_t *ctrace, int id, const void *arg0, const void *arg1, const void *arg2, const void *arg3, const void *arg4)
 
static void ok_trace_ (call_trace_t *texpected, call_trace_t *tgot, int line)
 
static void test_GetAcceptLanguagesA (void)
 
static void test_SHSearchMapInt (void)
 
static void test_alloc_shared (int argc, char **argv)
 
static void test_alloc_shared_remote (DWORD procid, HANDLE hmem)
 
static void test_fdsa (void)
 
static void test_GetShellSecurityDescriptor (void)
 
static void test_SHPackDispParams (void)
 
static Dispimpl_from_IDispatch (IDispatch *iface)
 
static Containimpl_from_IConnectionPointContainer (IConnectionPointContainer *iface)
 
static ConPtimpl_from_IConnectionPoint (IConnectionPoint *iface)
 
static EnumConimpl_from_IEnumConnections (IEnumConnections *iface)
 
static EnumPtimpl_from_IEnumConnectionPoints (IEnumConnectionPoints *iface)
 
static HRESULT WINAPI Disp_QueryInterface (IDispatch *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI Disp_AddRef (IDispatch *This)
 
static ULONG WINAPI Disp_Release (IDispatch *This)
 
static HRESULT WINAPI Disp_GetTypeInfoCount (IDispatch *This, UINT *pctinfo)
 
static HRESULT WINAPI Disp_GetTypeInfo (IDispatch *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
static HRESULT WINAPI Disp_GetIDsOfNames (IDispatch *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
static HRESULT WINAPI Disp_Invoke (IDispatch *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
static HRESULT WINAPI Enum_QueryInterface (IEnumConnections *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI Enum_AddRef (IEnumConnections *This)
 
static ULONG WINAPI Enum_Release (IEnumConnections *This)
 
static HRESULT WINAPI Enum_Next (IEnumConnections *This, ULONG cConnections, LPCONNECTDATA rgcd, ULONG *pcFetched)
 
static HRESULT WINAPI Enum_Skip (IEnumConnections *This, ULONG cConnections)
 
static HRESULT WINAPI Enum_Reset (IEnumConnections *This)
 
static HRESULT WINAPI Enum_Clone (IEnumConnections *This, IEnumConnections **ppEnum)
 
static HRESULT WINAPI ConPt_QueryInterface (IConnectionPoint *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI ConPt_AddRef (IConnectionPoint *This)
 
static ULONG WINAPI ConPt_Release (IConnectionPoint *This)
 
static HRESULT WINAPI ConPt_GetConnectionInterface (IConnectionPoint *This, IID *pIID)
 
static HRESULT WINAPI ConPt_GetConnectionPointContainer (IConnectionPoint *This, IConnectionPointContainer **ppCPC)
 
static HRESULT WINAPI ConPt_Advise (IConnectionPoint *This, IUnknown *pUnkSink, DWORD *pdwCookie)
 
static HRESULT WINAPI ConPt_Unadvise (IConnectionPoint *This, DWORD dwCookie)
 
static HRESULT WINAPI ConPt_EnumConnections (IConnectionPoint *This, IEnumConnections **ppEnum)
 
static HRESULT WINAPI EnumPt_QueryInterface (IEnumConnectionPoints *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI EnumPt_AddRef (IEnumConnectionPoints *This)
 
static ULONG WINAPI EnumPt_Release (IEnumConnectionPoints *This)
 
static HRESULT WINAPI EnumPt_Next (IEnumConnectionPoints *This, ULONG cConnections, IConnectionPoint **rgcd, ULONG *pcFetched)
 
static HRESULT WINAPI EnumPt_Skip (IEnumConnectionPoints *This, ULONG cConnections)
 
static HRESULT WINAPI EnumPt_Reset (IEnumConnectionPoints *This)
 
static HRESULT WINAPI EnumPt_Clone (IEnumConnectionPoints *This, IEnumConnectionPoints **ppEnumPt)
 
static HRESULT WINAPI Contain_QueryInterface (IConnectionPointContainer *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI Contain_AddRef (IConnectionPointContainer *This)
 
static ULONG WINAPI Contain_Release (IConnectionPointContainer *This)
 
static HRESULT WINAPI Contain_EnumConnectionPoints (IConnectionPointContainer *This, IEnumConnectionPoints **ppEnum)
 
static HRESULT WINAPI Contain_FindConnectionPoint (IConnectionPointContainer *This, REFIID riid, IConnectionPoint **ppCP)
 
static void test_IConnectionPoint (void)
 
static PropBagimpl_from_IPropertyBag (IPropertyBag *iface)
 
static HRESULT WINAPI Prop_QueryInterface (IPropertyBag *This, REFIID riid, void **ppvObject)
 
static ULONG WINAPI Prop_AddRef (IPropertyBag *This)
 
static ULONG WINAPI Prop_Release (IPropertyBag *This)
 
static HRESULT WINAPI Prop_Read (IPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
 
static HRESULT WINAPI Prop_Write (IPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar)
 
static void test_SHPropertyBag_ReadLONG (void)
 
static void test_SHSetWindowBits (void)
 
static void test_SHFormatDateTimeA (const SYSTEMTIME *st)
 
static void test_SHFormatDateTimeW (void)
 
static void test_SHGetObjectCompatFlags (void)
 
static IOleCommandTargetImplimpl_from_IOleCommandTarget (IOleCommandTarget *iface)
 
static IOleCommandTargetIOleCommandTargetImpl_Construct (void)
 
static HRESULT WINAPI IOleCommandTargetImpl_QueryInterface (IOleCommandTarget *iface, REFIID riid, void **ppvObj)
 
static ULONG WINAPI IOleCommandTargetImpl_AddRef (IOleCommandTarget *iface)
 
static ULONG WINAPI IOleCommandTargetImpl_Release (IOleCommandTarget *iface)
 
static HRESULT WINAPI IOleCommandTargetImpl_QueryStatus (IOleCommandTarget *iface, const GUID *group, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
 
static HRESULT WINAPI IOleCommandTargetImpl_Exec (IOleCommandTarget *iface, const GUID *CmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
 
static IServiceProviderImplimpl_from_IServiceProvider (IServiceProvider *iface)
 
static IProfferServiceImplimpl_from_IProfferService (IProfferService *iface)
 
static IServiceProviderIServiceProviderImpl_Construct (void)
 
static IProfferServiceIProfferServiceImpl_Construct (void)
 
static HRESULT WINAPI IServiceProviderImpl_QueryInterface (IServiceProvider *iface, REFIID riid, void **ppvObj)
 
static ULONG WINAPI IServiceProviderImpl_AddRef (IServiceProvider *iface)
 
static ULONG WINAPI IServiceProviderImpl_Release (IServiceProvider *iface)
 
static HRESULT WINAPI IServiceProviderImpl_QueryService (IServiceProvider *iface, REFGUID service, REFIID riid, void **ppv)
 
static void test_IUnknown_QueryServiceExec (void)
 
static HRESULT WINAPI IProfferServiceImpl_QueryInterface (IProfferService *iface, REFIID riid, void **ppvObj)
 
static ULONG WINAPI IProfferServiceImpl_AddRef (IProfferService *iface)
 
static ULONG WINAPI IProfferServiceImpl_Release (IProfferService *iface)
 
static HRESULT WINAPI IProfferServiceImpl_ProfferService (IProfferService *iface, REFGUID service, IServiceProvider *pService, DWORD *pCookie)
 
static HRESULT WINAPI IProfferServiceImpl_RevokeService (IProfferService *iface, DWORD cookie)
 
static void test_IUnknown_ProfferService (void)
 
static void test_SHCreateWorkerWindowA (void)
 
static HRESULT WINAPI SF_QueryInterface (IShellFolder *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI SF_AddRef (IShellFolder *iface)
 
static ULONG WINAPI SF_Release (IShellFolder *iface)
 
static HRESULT WINAPI SF_ParseDisplayName (IShellFolder *iface, HWND owner, LPBC reserved, LPOLESTR displayName, ULONG *eaten, LPITEMIDLIST *idl, ULONG *attr)
 
static HRESULT WINAPI SF_EnumObjects (IShellFolder *iface, HWND owner, SHCONTF flags, IEnumIDList **enm)
 
static HRESULT WINAPI SF_BindToObject (IShellFolder *iface, LPCITEMIDLIST idl, LPBC reserved, REFIID riid, void **obj)
 
static HRESULT WINAPI SF_BindToStorage (IShellFolder *iface, LPCITEMIDLIST idl, LPBC reserved, REFIID riid, void **obj)
 
static HRESULT WINAPI SF_CompareIDs (IShellFolder *iface, LPARAM lparam, LPCITEMIDLIST idl1, LPCITEMIDLIST idl2)
 
static HRESULT WINAPI SF_CreateViewObject (IShellFolder *iface, HWND owner, REFIID riid, void **out)
 
static HRESULT WINAPI SF_GetAttributesOf (IShellFolder *iface, UINT cidl, LPCITEMIDLIST *idl, SFGAOF *inOut)
 
static HRESULT WINAPI SF_GetUIObjectOf (IShellFolder *iface, HWND owner, UINT cidl, LPCITEMIDLIST *idls, REFIID riid, UINT *inOut, void **out)
 
static HRESULT WINAPI SF_GetDisplayNameOf (IShellFolder *iface, LPCITEMIDLIST idl, SHGDNF flags, STRRET *name)
 
static HRESULT WINAPI SF_SetNameOf (IShellFolder *iface, HWND hwnd, LPCITEMIDLIST idl, LPCOLESTR name, SHGDNF flags, LPITEMIDLIST *idlOut)
 
static void test_SHIShellFolder_EnumObjects (void)
 
static BOOL write_inifile (LPCWSTR filename)
 
static void r_verify_inifile (unsigned l, LPCWSTR filename, LPCSTR exp)
 
static void test_SHGetIniString (void)
 
static void test_SHSetIniString (void)
 
static void test_SHGetShellKey (void)
 
static void init_pointers (void)
 
static void test_SHSetParentHwnd (void)
 
static HRESULT WINAPI testpersist_QI (IPersist *iface, REFIID riid, void **obj)
 
static HRESULT WINAPI testpersist_QI2 (IPersist *iface, REFIID riid, void **obj)
 
static ULONG WINAPI testpersist_AddRef (IPersist *iface)
 
static ULONG WINAPI testpersist_Release (IPersist *iface)
 
static HRESULT WINAPI testpersist_GetClassID (IPersist *iface, CLSID *clsid)
 
static void test_IUnknown_GetClassID (void)
 
static void test_DllGetVersion (void)
 
 START_TEST (ordinal)
 

Variables

static HMODULE hShlwapi
 
static const int int
 
static LPDWORD
 
static DWORD
 
static VARIANTARG UINT
 
static VARIANTARG static DISPID
 
static REFIID
 
static BOOL
 
static IUnknown IConnectionPoint **static LPCWSTR
 
static IUnknown IConnectionPoint **static LPLONG
 
static INT
 
static DWORD LPSTR
 
static DWORD LPWSTR
 
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static REFGUID
 
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HWND
 
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
 
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static LONG_PTR
 
static SHCONTF
 
static const CHAR ie_international []
 
static const CHAR acceptlanguage []
 
static call_trace_t trace_got
 
static const IDispatchVtbl disp_vtbl
 
static const IEnumConnectionsVtbl enum_vtbl
 
static const IConnectionPointVtbl point_vtbl
 
static const IEnumConnectionPointsVtbl enumpt_vtbl
 
static const IConnectionPointContainerVtbl contain_vtbl
 
static const IPropertyBagVtbl prop_vtbl
 
static const IOleCommandTargetVtbl IOleCommandTargetImpl_Vtbl
 
static const IServiceProviderVtbl IServiceProviderImpl_Vtbl
 
static const IProfferServiceVtbl IProfferServiceImpl_Vtbl
 
static IShellFolderVtbl ShellFolderVtbl
 
static IShellFolder ShellFolder = { &ShellFolderVtbl }
 
static IPersistVtbl testpersistvtbl
 
static IPersistVtbl testpersist2vtbl
 
static IPersist testpersist = { &testpersistvtbl }
 
static IPersist testpersist2 = { &testpersist2vtbl }
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 22 of file ordinal.c.

◆ CONST_VTABLE

#define CONST_VTABLE

Definition at line 23 of file ordinal.c.

◆ MAKEFUNC

#define MAKEFUNC (   f,
  ord 
)    (p##f = (void*)GetProcAddress(hShlwapi, (LPSTR)(ord)))

◆ MY_INHERITANCE

#define MY_INHERITANCE   0xBE /* invalid value to proof behavior */

◆ ok_trace

#define ok_trace (   a,
  b 
)    ok_trace_(a, b, __LINE__)

Definition at line 167 of file ordinal.c.

◆ UNICODE_LTR_MARK

#define UNICODE_LTR_MARK   0x200e

◆ UNICODE_RTL_MARK

#define UNICODE_RTL_MARK   0x200f

◆ verify_inifile

#define verify_inifile (   f,
  e 
)    r_verify_inifile(__LINE__, f, e)

Definition at line 2698 of file ordinal.c.

Typedef Documentation

◆ ConPt

typedef struct _cntptn ConPt

◆ Contain

◆ Disp

typedef struct _disp Disp

◆ EnumCon

typedef struct _enum EnumCon

◆ EnumPt

◆ PropBag

◆ PSHELL_USER_PERMISSION

◆ PSHELL_USER_SID

◆ SHELL_USER_PERMISSION

◆ SHELL_USER_SID

Enumeration Type Documentation

◆ _shellkey_flags

Enumerator
SHKEY_Root_HKCU 
SHKEY_Root_HKLM 
SHKEY_Key_Explorer 
SHKEY_Key_Shell 
SHKEY_Key_ShellNoRoam 
SHKEY_Key_Classes 
SHKEY_Subkey_Default 
SHKEY_Subkey_ResourceName 
SHKEY_Subkey_Handlers 
SHKEY_Subkey_Associations 
SHKEY_Subkey_Volatile 
SHKEY_Subkey_MUICache 
SHKEY_Subkey_FileExts 
SHKEY_Root_HKCU 
SHKEY_Root_HKLM 
SHKEY_Key_Explorer 
SHKEY_Key_Shell 
SHKEY_Key_ShellNoRoam 
SHKEY_Key_Classes 
SHKEY_Subkey_Default 
SHKEY_Subkey_ResourceName 
SHKEY_Subkey_Handlers 
SHKEY_Subkey_Associations 
SHKEY_Subkey_Volatile 
SHKEY_Subkey_MUICache 
SHKEY_Subkey_FileExts 

Definition at line 2804 of file ordinal.c.

2804 {
2805 SHKEY_Root_HKCU = 0x1,
2806 SHKEY_Root_HKLM = 0x2,
2807 SHKEY_Key_Explorer = 0x00,
2808 SHKEY_Key_Shell = 0x10,
2809 SHKEY_Key_ShellNoRoam = 0x20,
2810 SHKEY_Key_Classes = 0x30,
2811 SHKEY_Subkey_Default = 0x0000,
2813 SHKEY_Subkey_Handlers = 0x2000,
2815 SHKEY_Subkey_Volatile = 0x4000,
2816 SHKEY_Subkey_MUICache = 0x5000,
2817 SHKEY_Subkey_FileExts = 0x6000
2818};
@ SHKEY_Subkey_Handlers
Definition: ordinal.c:2813
@ SHKEY_Root_HKLM
Definition: ordinal.c:2806
@ SHKEY_Key_ShellNoRoam
Definition: ordinal.c:2809
@ SHKEY_Subkey_Volatile
Definition: ordinal.c:2815
@ SHKEY_Subkey_Associations
Definition: ordinal.c:2814
@ SHKEY_Key_Classes
Definition: ordinal.c:2810
@ SHKEY_Subkey_MUICache
Definition: ordinal.c:2816
@ SHKEY_Key_Explorer
Definition: ordinal.c:2807
@ SHKEY_Root_HKCU
Definition: ordinal.c:2805
@ SHKEY_Subkey_FileExts
Definition: ordinal.c:2817
@ SHKEY_Key_Shell
Definition: ordinal.c:2808
@ SHKEY_Subkey_Default
Definition: ordinal.c:2811
@ SHKEY_Subkey_ResourceName
Definition: ordinal.c:2812

Function Documentation

◆ add_call()

static void add_call ( call_trace_t ctrace,
int  id,
const void arg0,
const void arg1,
const void arg2,
const void arg3,
const void arg4 
)
static

Definition at line 121 of file ordinal.c.

123{
124 call_entry_t call;
125
126 call.id = id;
127 call.args[0] = arg0;
128 call.args[1] = arg1;
129 call.args[2] = arg2;
130 call.args[3] = arg3;
131 call.args[4] = arg4;
132
133 if (ctrace->count == ctrace->alloc)
134 {
135 ctrace->alloc *= 2;
136 ctrace->calls = HeapReAlloc(GetProcessHeap(),0, ctrace->calls, ctrace->alloc*sizeof(call_entry_t));
137 }
138
139 ctrace->calls[ctrace->count++] = call;
140}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapReAlloc
Definition: compat.h:734
GLuint GLuint GLuint GLuint arg1
Definition: glext.h:9513
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
Definition: glext.h:9515
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: glext.h:9514
GLuint id
Definition: glext.h:5910
Definition: ordinal.c:98
int id
Definition: ordinal.c:99
const void * args[5]
Definition: ordinal.c:100
call_entry_t * calls
Definition: ordinal.c:104

Referenced by IOleCommandTargetImpl_Exec(), IProfferServiceImpl_ProfferService(), IProfferServiceImpl_QueryInterface(), IProfferServiceImpl_RevokeService(), IServiceProviderImpl_QueryInterface(), IServiceProviderImpl_QueryService(), test_IUnknown_ProfferService(), and test_IUnknown_QueryServiceExec().

◆ BOOL()

static BOOL ( WINAPI pSHUnlockShared)
static

◆ ConPt_AddRef()

static ULONG WINAPI ConPt_AddRef ( IConnectionPoint This)
static

Definition at line 1120 of file ordinal.c.

1122{
1124 return InterlockedIncrement(&iface->refCount);
1125}
#define InterlockedIncrement
Definition: armddk.h:53
static ConPt * impl_from_IConnectionPoint(IConnectionPoint *iface)
Definition: ordinal.c:856
LONG refCount
Definition: ordinal.c:848

◆ ConPt_Advise()

static HRESULT WINAPI ConPt_Advise ( IConnectionPoint This,
IUnknown pUnkSink,
DWORD pdwCookie 
)
static

Definition at line 1177 of file ordinal.c.

1181{
1183
1184 if (iface->sinkCount == 0)
1185 iface->sink = HeapAlloc(GetProcessHeap(),0,sizeof(IUnknown*));
1186 else
1187 iface->sink = HeapReAlloc(GetProcessHeap(),0,iface->sink,sizeof(IUnknown*)*(iface->sinkCount+1));
1188 iface->sink[iface->sinkCount] = pUnkSink;
1189 IUnknown_AddRef(pUnkSink);
1190 iface->sinkCount++;
1191 *pdwCookie = iface->sinkCount;
1192 return S_OK;
1193}
#define HeapAlloc
Definition: compat.h:733
#define S_OK
Definition: intsafe.h:52
IUnknown ** sink
Definition: ordinal.c:853
UINT sinkCount
Definition: ordinal.c:852

◆ ConPt_EnumConnections()

static HRESULT WINAPI ConPt_EnumConnections ( IConnectionPoint This,
IEnumConnections **  ppEnum 
)
static

Definition at line 1211 of file ordinal.c.

1214{
1215 EnumCon *ec;
1216
1217 ec = HeapAlloc(GetProcessHeap(),0,sizeof(EnumCon));
1218 ec->IEnumConnections_iface.lpVtbl = &enum_vtbl;
1219 ec->refCount = 1;
1221 ec->idx = 0;
1222 *ppEnum = &ec->IEnumConnections_iface;
1223
1224 return S_OK;
1225}
static const IEnumConnectionsVtbl enum_vtbl
Definition: ordinal.c:1087
Definition: ordinal.c:862
IEnumConnections IEnumConnections_iface
Definition: ordinal.c:863
ConPt * pt
Definition: ordinal.c:867
UINT idx
Definition: ordinal.c:866
LONG refCount
Definition: ordinal.c:864

◆ ConPt_GetConnectionInterface()

static HRESULT WINAPI ConPt_GetConnectionInterface ( IConnectionPoint This,
IID pIID 
)
static

Definition at line 1151 of file ordinal.c.

1154{
1155 static int i = 0;
1157 if (i==0)
1158 {
1159 i++;
1160 return E_FAIL;
1161 }
1162 else
1163 memcpy(pIID,&iface->id,sizeof(GUID));
1164 return S_OK;
1165}
#define E_FAIL
Definition: ddrawi.h:102
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GUID id
Definition: ordinal.c:851

◆ ConPt_GetConnectionPointContainer()

static HRESULT WINAPI ConPt_GetConnectionPointContainer ( IConnectionPoint This,
IConnectionPointContainer **  ppCPC 
)
static

Definition at line 1167 of file ordinal.c.

1170{
1172
1174 return S_OK;
1175}
Contain * container
Definition: ordinal.c:850
IConnectionPointContainer IConnectionPointContainer_iface
Definition: ordinal.c:833

◆ ConPt_QueryInterface()

static HRESULT WINAPI ConPt_QueryInterface ( IConnectionPoint This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1098 of file ordinal.c.

1102{
1103 *ppvObject = NULL;
1104
1106 {
1107 *ppvObject = This;
1108 }
1109
1110 if (*ppvObject)
1111 {
1112 IConnectionPoint_AddRef(This);
1113 return S_OK;
1114 }
1115
1116 trace("no interface\n");
1117 return E_NOINTERFACE;
1118}
#define trace
Definition: atltest.h:70
const GUID IID_IUnknown
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
const GUID IID_IConnectionPoint
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ ConPt_Release()

static ULONG WINAPI ConPt_Release ( IConnectionPoint This)
static

Definition at line 1127 of file ordinal.c.

1129{
1131 ULONG ret;
1132
1134 if (ret == 0)
1135 {
1136 if (iface->sinkCount > 0)
1137 {
1138 int i;
1139 for (i = 0; i < iface->sinkCount; i++)
1140 {
1141 if (iface->sink[i])
1142 IUnknown_Release(iface->sink[i]);
1143 }
1144 HeapFree(GetProcessHeap(),0,iface->sink);
1145 }
1147 }
1148 return ret;
1149}
#define InterlockedDecrement
Definition: armddk.h:52
#define HeapFree(x, y, z)
Definition: compat.h:735
return ret
Definition: mutex.c:146
uint32_t ULONG
Definition: typedefs.h:59

◆ ConPt_Unadvise()

static HRESULT WINAPI ConPt_Unadvise ( IConnectionPoint This,
DWORD  dwCookie 
)
static

Definition at line 1195 of file ordinal.c.

1198{
1200
1201 if (dwCookie > iface->sinkCount)
1202 return E_FAIL;
1203 else
1204 {
1205 IUnknown_Release(iface->sink[dwCookie-1]);
1206 iface->sink[dwCookie-1] = NULL;
1207 }
1208 return S_OK;
1209}

◆ Contain_AddRef()

static ULONG WINAPI Contain_AddRef ( IConnectionPointContainer This)
static

Definition at line 1352 of file ordinal.c.

1354{
1356 return InterlockedIncrement(&iface->refCount);
1357}
static Contain * impl_from_IConnectionPointContainer(IConnectionPointContainer *iface)
Definition: ordinal.c:840
LONG refCount
Definition: ordinal.c:834

◆ Contain_EnumConnectionPoints()

static HRESULT WINAPI Contain_EnumConnectionPoints ( IConnectionPointContainer This,
IEnumConnectionPoints **  ppEnum 
)
static

Definition at line 1380 of file ordinal.c.

1383{
1384 EnumPt *ec;
1385
1386 ec = HeapAlloc(GetProcessHeap(),0,sizeof(EnumPt));
1388 ec->refCount = 1;
1389 ec->idx= 0;
1391 *ppEnum = &ec->IEnumConnectionPoints_iface;
1392
1393 return S_OK;
1394}
static const IEnumConnectionPointsVtbl enumpt_vtbl
Definition: ordinal.c:1319
LONG refCount
Definition: ordinal.c:878
int idx
Definition: ordinal.c:880
IEnumConnectionPoints IEnumConnectionPoints_iface
Definition: ordinal.c:877
Contain * container
Definition: ordinal.c:881

◆ Contain_FindConnectionPoint()

static HRESULT WINAPI Contain_FindConnectionPoint ( IConnectionPointContainer This,
REFIID  riid,
IConnectionPoint **  ppCP 
)
static

Definition at line 1396 of file ordinal.c.

1400{
1402 ConPt *pt;
1403
1404 if (!IsEqualIID(riid, &IID_NULL) || iface->ptCount ==0)
1405 {
1406 pt = HeapAlloc(GetProcessHeap(),0,sizeof(ConPt));
1407 pt->IConnectionPoint_iface.lpVtbl = &point_vtbl;
1408 pt->refCount = 1;
1409 pt->sinkCount = 0;
1410 pt->sink = NULL;
1411 pt->container = iface;
1412 pt->id = IID_IDispatch;
1413
1414 if (iface->ptCount == 0)
1415 iface->pt =HeapAlloc(GetProcessHeap(),0,sizeof(IUnknown*));
1416 else
1417 iface->pt = HeapReAlloc(GetProcessHeap(),0,iface->pt,sizeof(IUnknown*)*(iface->ptCount+1));
1418 iface->pt[iface->ptCount] = &pt->IConnectionPoint_iface;
1419 iface->ptCount++;
1420
1421 *ppCP = &pt->IConnectionPoint_iface;
1422 }
1423 else
1424 {
1425 *ppCP = iface->pt[0];
1426 IConnectionPoint_AddRef(*ppCP);
1427 }
1428
1429 return S_OK;
1430}
#define pt(x, y)
Definition: drawing.c:79
static const IConnectionPointVtbl point_vtbl
Definition: ordinal.c:1227
const GUID IID_IDispatch
#define IID_NULL
Definition: guiddef.h:98
UINT ptCount
Definition: ordinal.c:836
IConnectionPoint ** pt
Definition: ordinal.c:837

◆ Contain_QueryInterface()

static HRESULT WINAPI Contain_QueryInterface ( IConnectionPointContainer This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1330 of file ordinal.c.

1334{
1335 *ppvObject = NULL;
1336
1338 {
1339 *ppvObject = This;
1340 }
1341
1342 if (*ppvObject)
1343 {
1344 IConnectionPointContainer_AddRef(This);
1345 return S_OK;
1346 }
1347
1348 trace("no interface\n");
1349 return E_NOINTERFACE;
1350}
const GUID IID_IConnectionPointContainer

◆ Contain_Release()

static ULONG WINAPI Contain_Release ( IConnectionPointContainer This)
static

Definition at line 1359 of file ordinal.c.

1361{
1363 ULONG ret;
1364
1366 if (ret == 0)
1367 {
1368 if (iface->ptCount > 0)
1369 {
1370 int i;
1371 for (i = 0; i < iface->ptCount; i++)
1372 IConnectionPoint_Release(iface->pt[i]);
1373 HeapFree(GetProcessHeap(),0,iface->pt);
1374 }
1376 }
1377 return ret;
1378}

◆ Disp_AddRef()

static ULONG WINAPI Disp_AddRef ( IDispatch This)
static

Definition at line 912 of file ordinal.c.

913{
914 Disp *iface = impl_from_IDispatch(This);
915 return InterlockedIncrement(&iface->refCount);
916}
static Disp * impl_from_IDispatch(IDispatch *iface)
Definition: ordinal.c:826
Definition: ordinal.c:821
LONG refCount
Definition: ordinal.c:823

◆ Disp_GetIDsOfNames()

static HRESULT WINAPI Disp_GetIDsOfNames ( IDispatch This,
REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
static

Definition at line 945 of file ordinal.c.

952{
953 return ERROR_SUCCESS;
954}
#define ERROR_SUCCESS
Definition: deptool.c:10

◆ Disp_GetTypeInfo()

static HRESULT WINAPI Disp_GetTypeInfo ( IDispatch This,
UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
static

Definition at line 936 of file ordinal.c.

941{
942 return ERROR_SUCCESS;
943}

◆ Disp_GetTypeInfoCount()

static HRESULT WINAPI Disp_GetTypeInfoCount ( IDispatch This,
UINT pctinfo 
)
static

Definition at line 929 of file ordinal.c.

932{
933 return ERROR_SUCCESS;
934}

◆ Disp_Invoke()

static HRESULT WINAPI Disp_Invoke ( IDispatch This,
DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
static

Definition at line 956 of file ordinal.c.

966{
967 trace("%p %lx %s %lx %x %p %p %p %p\n", This, dispIdMember, wine_dbgstr_guid(riid), lcid, wFlags,
968 pDispParams, pVarResult, pExcepInfo, puArgErr);
969
970 ok(dispIdMember == 0xa0 || dispIdMember == 0xa1, "Unknown dispIdMember\n");
971 ok(pDispParams != NULL, "Invoked with NULL pDispParams\n");
972 ok(wFlags == DISPATCH_METHOD, "Wrong flags %x\n",wFlags);
973 ok(lcid == 0,"Wrong lcid %lx\n",lcid);
974 if (dispIdMember == 0xa0)
975 {
976 ok(pDispParams->cArgs == 0, "params.cArgs = %d\n", pDispParams->cArgs);
977 ok(pDispParams->cNamedArgs == 0, "params.cNamedArgs = %d\n", pDispParams->cArgs);
978 ok(pDispParams->rgdispidNamedArgs == NULL, "params.rgdispidNamedArgs = %p\n", pDispParams->rgdispidNamedArgs);
979 ok(pDispParams->rgvarg == NULL, "params.rgvarg = %p\n", pDispParams->rgvarg);
980 }
981 else if (dispIdMember == 0xa1)
982 {
983 ok(pDispParams->cArgs == 2, "params.cArgs = %d\n", pDispParams->cArgs);
984 ok(pDispParams->cNamedArgs == 0, "params.cNamedArgs = %d\n", pDispParams->cArgs);
985 ok(pDispParams->rgdispidNamedArgs == NULL, "params.rgdispidNamedArgs = %p\n", pDispParams->rgdispidNamedArgs);
986 ok(V_VT(pDispParams->rgvarg) == VT_BSTR, "V_VT(var) = %d\n", V_VT(pDispParams->rgvarg));
987 ok(V_I4(pDispParams->rgvarg) == 0xdeadcafe , "failed %p\n", V_BSTR(pDispParams->rgvarg));
988 ok(V_VT(pDispParams->rgvarg+1) == VT_I4, "V_VT(var) = %d\n", V_VT(pDispParams->rgvarg+1));
989 ok(V_I4(pDispParams->rgvarg+1) == 0xdeadbeef, "failed %lx\n", V_I4(pDispParams->rgvarg+1));
990 }
991
992 return ERROR_SUCCESS;
993}
#define ok(value,...)
Definition: atltest.h:57
@ VT_BSTR
Definition: compat.h:2303
@ VT_I4
Definition: compat.h:2298
LCID lcid
Definition: locale.c:5656
#define DISPATCH_METHOD
Definition: oleauto.h:1006
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_I4(A)
Definition: oleauto.h:247
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:197
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon_undoc.h:337

◆ Disp_QueryInterface()

static HRESULT WINAPI Disp_QueryInterface ( IDispatch This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 890 of file ordinal.c.

894{
895 *ppvObject = NULL;
896
898 {
899 *ppvObject = This;
900 }
901
902 if (*ppvObject)
903 {
904 IDispatch_AddRef(This);
905 return S_OK;
906 }
907
908 trace("no interface\n");
909 return E_NOINTERFACE;
910}

◆ Disp_Release()

static ULONG WINAPI Disp_Release ( IDispatch This)
static

Definition at line 918 of file ordinal.c.

919{
920 Disp *iface = impl_from_IDispatch(This);
921 ULONG ret;
922
924 if (ret == 0)
926 return ret;
927}

◆ DWORD()

static DWORD ( WINAPI pSHGetObjectCompatFlags)
static

◆ Enum_AddRef()

static ULONG WINAPI Enum_AddRef ( IEnumConnections This)
static

Definition at line 1028 of file ordinal.c.

1029{
1031 return InterlockedIncrement(&iface->refCount);
1032}
static EnumCon * impl_from_IEnumConnections(IEnumConnections *iface)
Definition: ordinal.c:870

◆ Enum_Clone()

static HRESULT WINAPI Enum_Clone ( IEnumConnections This,
IEnumConnections **  ppEnum 
)
static

Definition at line 1080 of file ordinal.c.

1083{
1084 return E_FAIL;
1085}

◆ Enum_Next()

static HRESULT WINAPI Enum_Next ( IEnumConnections This,
ULONG  cConnections,
LPCONNECTDATA  rgcd,
ULONG pcFetched 
)
static

Definition at line 1045 of file ordinal.c.

1050{
1052
1053 if (cConnections > 0 && iface->idx < iface->pt->sinkCount)
1054 {
1055 rgcd->pUnk = iface->pt->sink[iface->idx];
1056 IUnknown_AddRef(iface->pt->sink[iface->idx]);
1057 rgcd->dwCookie=0xff;
1058 if (pcFetched)
1059 *pcFetched = 1;
1060 iface->idx++;
1061 return S_OK;
1062 }
1063
1064 return E_FAIL;
1065}

◆ Enum_QueryInterface()

static HRESULT WINAPI Enum_QueryInterface ( IEnumConnections This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1006 of file ordinal.c.

1010{
1011 *ppvObject = NULL;
1012
1014 {
1015 *ppvObject = This;
1016 }
1017
1018 if (*ppvObject)
1019 {
1020 IEnumConnections_AddRef(This);
1021 return S_OK;
1022 }
1023
1024 trace("no interface\n");
1025 return E_NOINTERFACE;
1026}
const GUID IID_IEnumConnections

◆ Enum_Release()

static ULONG WINAPI Enum_Release ( IEnumConnections This)
static

Definition at line 1034 of file ordinal.c.

1035{
1037 ULONG ret;
1038
1040 if (ret == 0)
1042 return ret;
1043}

◆ Enum_Reset()

static HRESULT WINAPI Enum_Reset ( IEnumConnections This)
static

Definition at line 1074 of file ordinal.c.

1076{
1077 return E_FAIL;
1078}

◆ Enum_Skip()

static HRESULT WINAPI Enum_Skip ( IEnumConnections This,
ULONG  cConnections 
)
static

Definition at line 1067 of file ordinal.c.

1070{
1071 return E_FAIL;
1072}

◆ EnumPt_AddRef()

static ULONG WINAPI EnumPt_AddRef ( IEnumConnectionPoints This)
static

Definition at line 1261 of file ordinal.c.

1262{
1264 return InterlockedIncrement(&iface->refCount);
1265}
static EnumPt * impl_from_IEnumConnectionPoints(IEnumConnectionPoints *iface)
Definition: ordinal.c:884

◆ EnumPt_Clone()

static HRESULT WINAPI EnumPt_Clone ( IEnumConnectionPoints This,
IEnumConnectionPoints **  ppEnumPt 
)
static

Definition at line 1312 of file ordinal.c.

1315{
1316 return E_FAIL;
1317}

◆ EnumPt_Next()

static HRESULT WINAPI EnumPt_Next ( IEnumConnectionPoints This,
ULONG  cConnections,
IConnectionPoint **  rgcd,
ULONG pcFetched 
)
static

Definition at line 1278 of file ordinal.c.

1283{
1285
1286 if (cConnections > 0 && iface->idx < iface->container->ptCount)
1287 {
1288 *rgcd = iface->container->pt[iface->idx];
1289 IConnectionPoint_AddRef(iface->container->pt[iface->idx]);
1290 if (pcFetched)
1291 *pcFetched = 1;
1292 iface->idx++;
1293 return S_OK;
1294 }
1295
1296 return E_FAIL;
1297}

◆ EnumPt_QueryInterface()

static HRESULT WINAPI EnumPt_QueryInterface ( IEnumConnectionPoints This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1239 of file ordinal.c.

1243{
1244 *ppvObject = NULL;
1245
1247 {
1248 *ppvObject = This;
1249 }
1250
1251 if (*ppvObject)
1252 {
1253 IEnumConnectionPoints_AddRef(This);
1254 return S_OK;
1255 }
1256
1257 trace("no interface\n");
1258 return E_NOINTERFACE;
1259}
const GUID IID_IEnumConnectionPoints

◆ EnumPt_Release()

static ULONG WINAPI EnumPt_Release ( IEnumConnectionPoints This)
static

Definition at line 1267 of file ordinal.c.

1268{
1270 ULONG ret;
1271
1273 if (ret == 0)
1275 return ret;
1276}

◆ EnumPt_Reset()

static HRESULT WINAPI EnumPt_Reset ( IEnumConnectionPoints This)
static

Definition at line 1306 of file ordinal.c.

1308{
1309 return E_FAIL;
1310}

◆ EnumPt_Skip()

static HRESULT WINAPI EnumPt_Skip ( IEnumConnectionPoints This,
ULONG  cConnections 
)
static

Definition at line 1299 of file ordinal.c.

1302{
1303 return E_FAIL;
1304}

◆ free_call_trace()

static void free_call_trace ( const call_trace_t ctrace)
static

Definition at line 116 of file ordinal.c.

117{
118 HeapFree(GetProcessHeap(), 0, ctrace->calls);
119}

Referenced by test_IUnknown_ProfferService(), and test_IUnknown_QueryServiceExec().

◆ HANDLE()

static HANDLE ( WINAPI pSHAllocShared)
static

◆ HKEY()

static HKEY ( WINAPI pSHGetShellKey)
static

◆ HRESULT() [1/2]

static HRESULT ( WINAPI pGetAcceptLanguagesA)
static

◆ HRESULT() [2/2]

static HRESULT ( WINAPIV pSHPackDispParams)
static

◆ HWND()

static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HWND ( WINAPI pSHCreateWorkerWindowA)
static

◆ impl_from_IConnectionPoint()

static ConPt * impl_from_IConnectionPoint ( IConnectionPoint iface)
inlinestatic

Definition at line 856 of file ordinal.c.

857{
858 return CONTAINING_RECORD(iface, ConPt, IConnectionPoint_iface);
859}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by ConPt_AddRef(), ConPt_Advise(), ConPt_EnumConnections(), ConPt_GetConnectionInterface(), ConPt_GetConnectionPointContainer(), ConPt_Release(), and ConPt_Unadvise().

◆ impl_from_IConnectionPointContainer()

static Contain * impl_from_IConnectionPointContainer ( IConnectionPointContainer iface)
inlinestatic

Definition at line 840 of file ordinal.c.

841{
842 return CONTAINING_RECORD(iface, Contain, IConnectionPointContainer_iface);
843}

Referenced by Contain_AddRef(), Contain_EnumConnectionPoints(), Contain_FindConnectionPoint(), and Contain_Release().

◆ impl_from_IDispatch()

static Disp * impl_from_IDispatch ( IDispatch iface)
inlinestatic

Definition at line 826 of file ordinal.c.

827{
828 return CONTAINING_RECORD(iface, Disp, IDispatch_iface);
829}

Referenced by Disp_AddRef(), and Disp_Release().

◆ impl_from_IEnumConnectionPoints()

static EnumPt * impl_from_IEnumConnectionPoints ( IEnumConnectionPoints iface)
inlinestatic

Definition at line 884 of file ordinal.c.

885{
886 return CONTAINING_RECORD(iface, EnumPt, IEnumConnectionPoints_iface);
887}

Referenced by EnumPt_AddRef(), EnumPt_Next(), and EnumPt_Release().

◆ impl_from_IEnumConnections()

static EnumCon * impl_from_IEnumConnections ( IEnumConnections iface)
inlinestatic

Definition at line 870 of file ordinal.c.

871{
872 return CONTAINING_RECORD(iface, EnumCon, IEnumConnections_iface);
873}

Referenced by Enum_AddRef(), Enum_Next(), and Enum_Release().

◆ impl_from_IOleCommandTarget()

static IOleCommandTargetImpl * impl_from_IOleCommandTarget ( IOleCommandTarget iface)
inlinestatic

Definition at line 2109 of file ordinal.c.

2110{
2111 return CONTAINING_RECORD(iface, IOleCommandTargetImpl, IOleCommandTarget_iface);
2112}

Referenced by IOleCommandTargetImpl_AddRef(), IOleCommandTargetImpl_QueryInterface(), and IOleCommandTargetImpl_Release().

◆ impl_from_IProfferService()

static IProfferServiceImpl * impl_from_IProfferService ( IProfferService iface)
inlinestatic

Definition at line 2207 of file ordinal.c.

2208{
2209 return CONTAINING_RECORD(iface, IProfferServiceImpl, IProfferService_iface);
2210}

Referenced by IProfferServiceImpl_AddRef(), IProfferServiceImpl_QueryInterface(), and IProfferServiceImpl_Release().

◆ impl_from_IPropertyBag()

static PropBag * impl_from_IPropertyBag ( IPropertyBag iface)
inlinestatic

Definition at line 1499 of file ordinal.c.

1500{
1501 return CONTAINING_RECORD(iface, PropBag, IPropertyBag_iface);
1502}

Referenced by Prop_AddRef(), and Prop_Release().

◆ impl_from_IServiceProvider()

static IServiceProviderImpl * impl_from_IServiceProvider ( IServiceProvider iface)
inlinestatic

Definition at line 2197 of file ordinal.c.

2198{
2199 return CONTAINING_RECORD(iface, IServiceProviderImpl, IServiceProvider_iface);
2200}

Referenced by IServiceProviderImpl_AddRef(), IServiceProviderImpl_QueryInterface(), and IServiceProviderImpl_Release().

◆ init_call_trace()

static void init_call_trace ( call_trace_t ctrace)
static

Definition at line 109 of file ordinal.c.

110{
111 ctrace->alloc = 10;
112 ctrace->count = 0;
113 ctrace->calls = HeapAlloc(GetProcessHeap(), 0, sizeof(call_entry_t) * ctrace->alloc);
114}

Referenced by test_IUnknown_ProfferService(), and test_IUnknown_QueryServiceExec().

◆ init_pointers()

static void init_pointers ( void  )
static

Definition at line 2910 of file ordinal.c.

2911{
2912#define MAKEFUNC(f, ord) (p##f = (void*)GetProcAddress(hShlwapi, (LPSTR)(ord)))
2917 MAKEFUNC(SHMapHandle, 11);
2937 MAKEFUNC(SHGetShellKey, 491);
2940 MAKEFUNC(SKGetValueW, 516);
2941 MAKEFUNC(SKSetValueW, 517);
2943 MAKEFUNC(SKAllocValueW, 519);
2944#undef MAKEFUNC
2945
2946 pDllGetVersion = (void*)GetProcAddress(hShlwapi, "DllGetVersion");
2947}
EXTERN_C INT WINAPI SHFormatDateTimeA(const FILETIME UNALIGNED *fileTime, DWORD *flags, LPSTR buf, UINT size)
Definition: ordinal.c:5518
#define GetProcAddress(x, y)
Definition: compat.h:753
HRESULT WINAPI GetAcceptLanguagesA(LPSTR langbuf, DWORD *buflen)
Definition: main.c:463
HANDLE WINAPI SHAllocShared(LPCVOID lpvData, DWORD dwSize, DWORD dwProcId)
Definition: ordinal.c:169
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut)
Definition: ordinal.c:1553
BOOL WINAPI SHSetIniStringW(LPCWSTR appName, LPCWSTR keyName, LPCWSTR str, LPCWSTR filename)
Definition: ordinal.c:3549
LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT mask, UINT flags)
Definition: ordinal.c:1130
HWND WINAPI SHCreateWorkerWindowA(WNDPROC wndProc, HWND hWndParent, DWORD dwExStyle, DWORD dwStyle, HMENU hMenu, LONG_PTR wnd_extra)
Definition: ordinal.c:2798
HANDLE WINAPI SHMapHandle(HANDLE hShared, DWORD dwSrcProcId, DWORD dwDstProcId, DWORD dwAccess, DWORD dwOptions)
Definition: ordinal.c:98
HRESULT WINAPI IConnectionPoint_InvokeWithCancel(IConnectionPoint *iCP, DISPID dispId, DISPPARAMS *dispParams, DWORD unknown1, DWORD unknown2)
Definition: ordinal.c:3307
DWORD WINAPI SHGetIniStringW(LPCWSTR appName, LPCWSTR keyName, LPWSTR out, DWORD outLen, LPCWSTR filename)
Definition: ordinal.c:3502
HRESULT WINAPI IUnknown_ProfferService(IUnknown *lpUnknown, REFGUID service, IServiceProvider *pService, DWORD *pCookie)
Definition: ordinal.c:1592
HRESULT WINAPI ConnectToConnectionPoint(IUnknown *lpUnkSink, REFIID riid, BOOL fConnect, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP)
Definition: ordinal.c:1193
DWORD WINAPI SHGetObjectCompatFlags(IUnknown *pUnk, const CLSID *clsid)
Definition: ordinal.c:6499
INT WINAPI SHFormatDateTimeW(const FILETIME UNALIGNED *fileTime, DWORD *flags, LPWSTR buf, UINT size)
Definition: ordinal.c:5453
HRESULT WINAPI SKAllocValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type, LPVOID *data, DWORD *count)
Definition: ordinal.c:5011
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *clsid)
Definition: ordinal.c:1457
PVOID WINAPI SHLockShared(HANDLE hShared, DWORD dwProcId)
Definition: ordinal.c:259
HRESULT WINAPI SHIShellFolder_EnumObjects(LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum)
Definition: ordinal.c:3992
HRESULT WINAPI SKGetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD *type, void *data, DWORD *count)
Definition: ordinal.c:5068
HRESULT WINAPIV SHPackDispParams(DISPPARAMS *params, VARIANTARG *args, UINT cnt,...)
Definition: ordinal.c:3250
BOOL WINAPI SHFreeShared(HANDLE hShared, DWORD dwProcId)
Definition: ordinal.c:315
HRESULT WINAPI IConnectionPoint_SimpleInvoke(IConnectionPoint *iCP, DISPID dispId, DISPPARAMS *dispParams)
Definition: ordinal.c:3331
HKEY WINAPI SHGetShellKey(DWORD flags, LPCWSTR sub_key, BOOL create)
Definition: ordinal.c:4806
HRESULT WINAPI SKSetValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value, DWORD type, void *data, DWORD count)
Definition: ordinal.c:5090
PSECURITY_DESCRIPTOR WINAPI GetShellSecurityDescriptor(const PSHELL_USER_PERMISSION *apUserPerm, int cUserPerm)
Definition: ordinal.c:5264
int WINAPI SHSearchMapInt(const int *lpKeys, const int *lpValues, int iLen, int iKey)
Definition: ordinal.c:2161
BOOL WINAPI SHUnlockShared(LPVOID lpView)
Definition: ordinal.c:295
HRESULT WINAPI SHPropertyBag_ReadLONG(IPropertyBag *ppb, LPCWSTR pszPropName, LPLONG pValue)
Definition: ordinal.c:5806
HRESULT WINAPI SKDeleteValueW(DWORD flags, LPCWSTR subkey, LPCWSTR value)
Definition: ordinal.c:5048
static HMODULE hShlwapi
Definition: ordinal.c:38
#define MAKEFUNC(f, ord)
HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent)
Definition: ordinal.c:1158
BOOL WINAPI GUIDFromStringA(LPCSTR str, LPGUID guid)
Definition: shellord.c:2096

Referenced by START_TEST().

◆ INT()

static INT ( WINAPI pSHFormatDateTimeA) const
static

◆ int()

static int ( WINAPI pSHSearchMapInt) const
static

◆ IOleCommandTargetImpl_AddRef()

static ULONG WINAPI IOleCommandTargetImpl_AddRef ( IOleCommandTarget iface)
static

Definition at line 2146 of file ordinal.c.

2147{
2149 return InterlockedIncrement(&This->ref);
2150}
static IOleCommandTargetImpl * impl_from_IOleCommandTarget(IOleCommandTarget *iface)
Definition: ordinal.c:2109

◆ IOleCommandTargetImpl_Construct()

static IOleCommandTarget * IOleCommandTargetImpl_Construct ( void  )
static

Definition at line 2116 of file ordinal.c.

2117{
2119
2120 obj = HeapAlloc(GetProcessHeap(), 0, sizeof(*obj));
2121 obj->IOleCommandTarget_iface.lpVtbl = &IOleCommandTargetImpl_Vtbl;
2122 obj->ref = 1;
2123
2124 return &obj->IOleCommandTarget_iface;
2125}
static const IOleCommandTargetVtbl IOleCommandTargetImpl_Vtbl
Definition: ordinal.c:2114

Referenced by IServiceProviderImpl_QueryService().

◆ IOleCommandTargetImpl_Exec()

static HRESULT WINAPI IOleCommandTargetImpl_Exec ( IOleCommandTarget iface,
const GUID CmdGroup,
DWORD  nCmdID,
DWORD  nCmdexecopt,
VARIANT pvaIn,
VARIANT pvaOut 
)
static

Definition at line 2171 of file ordinal.c.

2178{
2179 add_call(&trace_got, 3, CmdGroup, (void*)(DWORD_PTR)nCmdID, (void*)(DWORD_PTR)nCmdexecopt, pvaIn, pvaOut);
2180 return S_OK;
2181}
static call_trace_t trace_got
Definition: ordinal.c:170
static void add_call(call_trace_t *ctrace, int id, const void *arg0, const void *arg1, const void *arg2, const void *arg3, const void *arg4)
Definition: ordinal.c:121
uint32_t DWORD_PTR
Definition: typedefs.h:65

◆ IOleCommandTargetImpl_QueryInterface()

static HRESULT WINAPI IOleCommandTargetImpl_QueryInterface ( IOleCommandTarget iface,
REFIID  riid,
void **  ppvObj 
)
static

Definition at line 2127 of file ordinal.c.

2128{
2130
2131 if (IsEqualIID(riid, &IID_IUnknown) ||
2132 IsEqualIID(riid, &IID_IOleCommandTarget))
2133 {
2134 *ppvObj = This;
2135 }
2136
2137 if(*ppvObj)
2138 {
2139 IOleCommandTarget_AddRef(iface);
2140 return S_OK;
2141 }
2142
2143 return E_NOINTERFACE;
2144}

◆ IOleCommandTargetImpl_QueryStatus()

static HRESULT WINAPI IOleCommandTargetImpl_QueryStatus ( IOleCommandTarget iface,
const GUID group,
ULONG  cCmds,
OLECMD  prgCmds[],
OLECMDTEXT *  pCmdText 
)
static

Definition at line 2165 of file ordinal.c.

2167{
2168 return E_NOTIMPL;
2169}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ IOleCommandTargetImpl_Release()

static ULONG WINAPI IOleCommandTargetImpl_Release ( IOleCommandTarget iface)
static

Definition at line 2152 of file ordinal.c.

2153{
2156
2157 if (!ref)
2158 {
2160 return 0;
2161 }
2162 return ref;
2163}
Definition: send.c:48

◆ IProfferServiceImpl_AddRef()

static ULONG WINAPI IProfferServiceImpl_AddRef ( IProfferService iface)
static

Definition at line 2371 of file ordinal.c.

2372{
2374 return InterlockedIncrement(&This->ref);
2375}
static IProfferServiceImpl * impl_from_IProfferService(IProfferService *iface)
Definition: ordinal.c:2207

◆ IProfferServiceImpl_Construct()

static IProfferService * IProfferServiceImpl_Construct ( void  )
static

Definition at line 2227 of file ordinal.c.

2228{
2230
2231 obj = HeapAlloc(GetProcessHeap(), 0, sizeof(*obj));
2232 obj->IProfferService_iface.lpVtbl = &IProfferServiceImpl_Vtbl;
2233 obj->ref = 1;
2234
2235 return &obj->IProfferService_iface;
2236}
static const IProfferServiceVtbl IProfferServiceImpl_Vtbl
Definition: ordinal.c:2214

Referenced by IServiceProviderImpl_QueryService(), and test_IUnknown_ProfferService().

◆ IProfferServiceImpl_ProfferService()

static HRESULT WINAPI IProfferServiceImpl_ProfferService ( IProfferService iface,
REFGUID  service,
IServiceProvider pService,
DWORD pCookie 
)
static

Definition at line 2390 of file ordinal.c.

2392{
2393 *pCookie = 0xdeadbeef;
2394 add_call(&trace_got, 3, service, pService, pCookie, 0, 0);
2395 return S_OK;
2396}

◆ IProfferServiceImpl_QueryInterface()

static HRESULT WINAPI IProfferServiceImpl_QueryInterface ( IProfferService iface,
REFIID  riid,
void **  ppvObj 
)
static

Definition at line 2346 of file ordinal.c.

2347{
2349
2350 if (IsEqualIID(riid, &IID_IUnknown) ||
2351 IsEqualIID(riid, &IID_IProfferService))
2352 {
2353 *ppvObj = This;
2354 }
2355 else if (IsEqualIID(riid, &IID_IServiceProvider))
2356 {
2358 add_call(&trace_got, 1, iface, &IID_IServiceProvider, 0, 0, 0);
2359 return S_OK;
2360 }
2361
2362 if(*ppvObj)
2363 {
2364 IProfferService_AddRef(iface);
2365 return S_OK;
2366 }
2367
2368 return E_NOINTERFACE;
2369}
static IServiceProvider * IServiceProviderImpl_Construct(void)
Definition: ordinal.c:2216

◆ IProfferServiceImpl_Release()

static ULONG WINAPI IProfferServiceImpl_Release ( IProfferService iface)
static

Definition at line 2377 of file ordinal.c.

2378{
2381
2382 if (!ref)
2383 {
2385 return 0;
2386 }
2387 return ref;
2388}

◆ IProfferServiceImpl_RevokeService()

static HRESULT WINAPI IProfferServiceImpl_RevokeService ( IProfferService iface,
DWORD  cookie 
)
static

Definition at line 2398 of file ordinal.c.

2399{
2400 add_call(&trace_got, 4, (void*)(DWORD_PTR)cookie, 0, 0, 0, 0);
2401 return S_OK;
2402}
Definition: cookie.c:34

◆ IServiceProviderImpl_AddRef()

static ULONG WINAPI IServiceProviderImpl_AddRef ( IServiceProvider iface)
static

Definition at line 2260 of file ordinal.c.

2261{
2263 return InterlockedIncrement(&This->ref);
2264}
static IServiceProviderImpl * impl_from_IServiceProvider(IServiceProvider *iface)
Definition: ordinal.c:2197

◆ IServiceProviderImpl_Construct()

static IServiceProvider * IServiceProviderImpl_Construct ( void  )
static

Definition at line 2216 of file ordinal.c.

2217{
2219
2220 obj = HeapAlloc(GetProcessHeap(), 0, sizeof(*obj));
2221 obj->IServiceProvider_iface.lpVtbl = &IServiceProviderImpl_Vtbl;
2222 obj->ref = 1;
2223
2224 return &obj->IServiceProvider_iface;
2225}
static const IServiceProviderVtbl IServiceProviderImpl_Vtbl
Definition: ordinal.c:2213

Referenced by IProfferServiceImpl_QueryInterface(), test_IUnknown_ProfferService(), and test_IUnknown_QueryServiceExec().

◆ IServiceProviderImpl_QueryInterface()

static HRESULT WINAPI IServiceProviderImpl_QueryInterface ( IServiceProvider iface,
REFIID  riid,
void **  ppvObj 
)
static

Definition at line 2238 of file ordinal.c.

2239{
2241
2242 if (IsEqualIID(riid, &IID_IUnknown) ||
2243 IsEqualIID(riid, &IID_IServiceProvider))
2244 {
2245 *ppvObj = This;
2246 }
2247
2248 if(*ppvObj)
2249 {
2250 IServiceProvider_AddRef(iface);
2251 /* native uses redefined IID_IServiceProvider symbol, so we can't compare pointers */
2252 if (IsEqualIID(riid, &IID_IServiceProvider))
2253 add_call(&trace_got, 1, iface, &IID_IServiceProvider, 0, 0, 0);
2254 return S_OK;
2255 }
2256
2257 return E_NOINTERFACE;
2258}

◆ IServiceProviderImpl_QueryService()

static HRESULT WINAPI IServiceProviderImpl_QueryService ( IServiceProvider iface,
REFGUID  service,
REFIID  riid,
void **  ppv 
)
static

Definition at line 2279 of file ordinal.c.

2281{
2282 /* native uses redefined pointer for IID_IOleCommandTarget, not one from uuid.lib */
2283 if (IsEqualIID(riid, &IID_IOleCommandTarget))
2284 {
2285 add_call(&trace_got, 2, iface, service, &IID_IOleCommandTarget, 0, 0);
2287 }
2288 if (IsEqualIID(riid, &IID_IProfferService))
2289 {
2290 if (IsEqualIID(service, &IID_IProfferService))
2291 add_call(&trace_got, 2, &IID_IProfferService, &IID_IProfferService, 0, 0, 0);
2293 }
2294 return S_OK;
2295}
REFIID LPVOID * ppv
Definition: atlbase.h:39
static IProfferService * IProfferServiceImpl_Construct(void)
Definition: ordinal.c:2227
static IOleCommandTarget * IOleCommandTargetImpl_Construct(void)
Definition: ordinal.c:2116

◆ IServiceProviderImpl_Release()

static ULONG WINAPI IServiceProviderImpl_Release ( IServiceProvider iface)
static

Definition at line 2266 of file ordinal.c.

2267{
2270
2271 if (!ref)
2272 {
2274 return 0;
2275 }
2276 return ref;
2277}

◆ LONG()

static LONG ( WINAPI pSHSetWindowBits)
static

◆ LPVOID()

static LPVOID ( WINAPI pSHLockShared)
static

◆ ok_trace_()

static void ok_trace_ ( call_trace_t texpected,
call_trace_t tgot,
int  line 
)
static

Definition at line 142 of file ordinal.c.

143{
144 if (texpected->count == tgot->count)
145 {
146 INT i;
147 /* compare */
148 for (i = 0; i < texpected->count; i++)
149 {
150 call_entry_t *expected = &texpected->calls[i];
151 call_entry_t *got = &tgot->calls[i];
152 INT j;
153
154 ok_(__FILE__, line)(expected->id == got->id, "got different ids %d: %d, %d\n", i+1, expected->id, got->id);
155
156 for (j = 0; j < 5; j++)
157 {
158 ok_(__FILE__, line)(expected->args[j] == got->args[j], "got different args[%d] for %d: %p, %p\n", j, i+1,
159 expected->args[j], got->args[j]);
160 }
161 }
162 }
163 else
164 ok_(__FILE__, line)(0, "traces length mismatch\n");
165}
#define ok_(x1, x2)
Definition: atltest.h:61
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 GLint GLint j
Definition: glfuncs.h:250
BOOL expected
Definition: store.c:2000
Definition: parser.c:49
int32_t INT
Definition: typedefs.h:58

◆ pGetShellSecurityDescriptor()

static SECURITY_DESCRIPTOR *WINAPI * pGetShellSecurityDescriptor ( const SHELL_USER_PERMISSION **  ,
int   
)
static

◆ Prop_AddRef()

static ULONG WINAPI Prop_AddRef ( IPropertyBag This)
static

Definition at line 1527 of file ordinal.c.

1529{
1531 return InterlockedIncrement(&iface->refCount);
1532}
static PropBag * impl_from_IPropertyBag(IPropertyBag *iface)
Definition: ordinal.c:1499
LONG refCount
Definition: ordinal.c:1495

◆ Prop_QueryInterface()

static HRESULT WINAPI Prop_QueryInterface ( IPropertyBag This,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1505 of file ordinal.c.

1509{
1510 *ppvObject = NULL;
1511
1513 {
1514 *ppvObject = This;
1515 }
1516
1517 if (*ppvObject)
1518 {
1519 IPropertyBag_AddRef(This);
1520 return S_OK;
1521 }
1522
1523 trace("no interface\n");
1524 return E_NOINTERFACE;
1525}
const GUID IID_IPropertyBag

◆ Prop_Read()

static HRESULT WINAPI Prop_Read ( IPropertyBag This,
LPCOLESTR  pszPropName,
VARIANT pVar,
IErrorLog pErrorLog 
)
static

Definition at line 1546 of file ordinal.c.

1551{
1552 V_VT(pVar) = VT_BLOB|VT_BYREF;
1553 V_BYREF(pVar) = (LPVOID)0xdeadcafe;
1554 return S_OK;
1555}
@ VT_BLOB
Definition: compat.h:2330
@ VT_BYREF
Definition: compat.h:2342
#define LPVOID
Definition: nt_native.h:45
#define V_BYREF(A)
Definition: oleauto.h:228

◆ Prop_Release()

static ULONG WINAPI Prop_Release ( IPropertyBag This)
static

Definition at line 1534 of file ordinal.c.

1536{
1538 ULONG ret;
1539
1541 if (ret == 0)
1543 return ret;
1544}

◆ Prop_Write()

static HRESULT WINAPI Prop_Write ( IPropertyBag This,
LPCOLESTR  pszPropName,
VARIANT pVar 
)
static

Definition at line 1557 of file ordinal.c.

1561{
1562 return S_OK;
1563}

◆ r_verify_inifile()

static void r_verify_inifile ( unsigned  l,
LPCWSTR  filename,
LPCSTR  exp 
)
static

Definition at line 2699 of file ordinal.c.

2700{
2701 HANDLE file;
2702 CHAR buf[1024];
2703 DWORD read;
2704
2706
2708 return;
2709
2710 ReadFile(file, buf, sizeof(buf) * sizeof(CHAR), &read, NULL);
2711 buf[read] = '\0';
2712
2714
2715 ok_(__FILE__,l)(!strcmp(buf, exp), "Expected:\n%s\nGot:\n%s\n", exp,
2716 buf);
2717}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define read
Definition: acwin.h:96
r l[0]
Definition: byte_order.h:168
#define CloseHandle
Definition: compat.h:739
#define OPEN_EXISTING
Definition: compat.h:775
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define GENERIC_READ
Definition: compat.h:135
#define CreateFileW
Definition: compat.h:741
unsigned long DWORD
Definition: ntddk_ex.h:95
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
const char * filename
Definition: ioapi.h:137
DWORD exp
Definition: msg.c:16058
Definition: fci.c:127
char CHAR
Definition: xmlstorage.h:175

◆ SF_AddRef()

static ULONG WINAPI SF_AddRef ( IShellFolder iface)
static

Definition at line 2538 of file ordinal.c.

2539{
2540 return 2;
2541}

◆ SF_BindToObject()

static HRESULT WINAPI SF_BindToObject ( IShellFolder iface,
LPCITEMIDLIST  idl,
LPBC  reserved,
REFIID  riid,
void **  obj 
)
static

Definition at line 2563 of file ordinal.c.

2565{
2566 ok(0, "Didn't expect BindToObject\n");
2567 return E_NOTIMPL;
2568}

◆ SF_BindToStorage()

static HRESULT WINAPI SF_BindToStorage ( IShellFolder iface,
LPCITEMIDLIST  idl,
LPBC  reserved,
REFIID  riid,
void **  obj 
)
static

Definition at line 2570 of file ordinal.c.

2572{
2573 ok(0, "Didn't expect BindToStorage\n");
2574 return E_NOTIMPL;
2575}

◆ SF_CompareIDs()

static HRESULT WINAPI SF_CompareIDs ( IShellFolder iface,
LPARAM  lparam,
LPCITEMIDLIST  idl1,
LPCITEMIDLIST  idl2 
)
static

Definition at line 2577 of file ordinal.c.

2579{
2580 ok(0, "Didn't expect CompareIDs\n");
2581 return E_NOTIMPL;
2582}

◆ SF_CreateViewObject()

static HRESULT WINAPI SF_CreateViewObject ( IShellFolder iface,
HWND  owner,
REFIID  riid,
void **  out 
)
static

Definition at line 2584 of file ordinal.c.

2586{
2587 ok(0, "Didn't expect CreateViewObject\n");
2588 return E_NOTIMPL;
2589}

◆ SF_EnumObjects()

static HRESULT WINAPI SF_EnumObjects ( IShellFolder iface,
HWND  owner,
SHCONTF  flags,
IEnumIDList **  enm 
)
static

Definition at line 2556 of file ordinal.c.

2558{
2559 *enm = (IEnumIDList*)0xcafebabe;
2560 return S_OK;
2561}

◆ SF_GetAttributesOf()

static HRESULT WINAPI SF_GetAttributesOf ( IShellFolder iface,
UINT  cidl,
LPCITEMIDLIST idl,
SFGAOF inOut 
)
static

Definition at line 2591 of file ordinal.c.

2593{
2594 ok(0, "Didn't expect GetAttributesOf\n");
2595 return E_NOTIMPL;
2596}

◆ SF_GetDisplayNameOf()

static HRESULT WINAPI SF_GetDisplayNameOf ( IShellFolder iface,
LPCITEMIDLIST  idl,
SHGDNF  flags,
STRRET name 
)
static

Definition at line 2606 of file ordinal.c.

2608{
2609 ok(0, "Didn't expect GetDisplayNameOf\n");
2610 return E_NOTIMPL;
2611}

◆ SF_GetUIObjectOf()

static HRESULT WINAPI SF_GetUIObjectOf ( IShellFolder iface,
HWND  owner,
UINT  cidl,
LPCITEMIDLIST idls,
REFIID  riid,
UINT inOut,
void **  out 
)
static

Definition at line 2598 of file ordinal.c.

2601{
2602 ok(0, "Didn't expect GetUIObjectOf\n");
2603 return E_NOTIMPL;
2604}

◆ SF_ParseDisplayName()

static HRESULT WINAPI SF_ParseDisplayName ( IShellFolder iface,
HWND  owner,
LPBC  reserved,
LPOLESTR  displayName,
ULONG eaten,
LPITEMIDLIST idl,
ULONG attr 
)
static

Definition at line 2548 of file ordinal.c.

2551{
2552 ok(0, "Didn't expect ParseDisplayName\n");
2553 return E_NOTIMPL;
2554}

◆ SF_QueryInterface()

static HRESULT WINAPI SF_QueryInterface ( IShellFolder iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 2529 of file ordinal.c.

2531{
2532 /* SHIShellFolder_EnumObjects doesn't QI the object for IShellFolder */
2533 ok(!IsEqualGUID(&IID_IShellFolder, riid),
2534 "Unexpected QI for IShellFolder\n");
2535 return E_NOINTERFACE;
2536}
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

◆ SF_Release()

static ULONG WINAPI SF_Release ( IShellFolder iface)
static

Definition at line 2543 of file ordinal.c.

2544{
2545 return 1;
2546}

◆ SF_SetNameOf()

static HRESULT WINAPI SF_SetNameOf ( IShellFolder iface,
HWND  hwnd,
LPCITEMIDLIST  idl,
LPCOLESTR  name,
SHGDNF  flags,
LPITEMIDLIST idlOut 
)
static

Definition at line 2613 of file ordinal.c.

2616{
2617 ok(0, "Didn't expect SetNameOf\n");
2618 return E_NOTIMPL;
2619}

◆ START_TEST()

START_TEST ( ordinal  )

Definition at line 3122 of file ordinal.c.

3123{
3124 SYSTEMTIME st;
3125 static const SYSTEMTIME february = {2023, 2, 2, 14, 12, 0, 0, 0};
3126 char **argv;
3127 int argc;
3128
3129 hShlwapi = GetModuleHandleA("shlwapi.dll");
3130
3131 init_pointers();
3132
3134 if (argc >= 4)
3135 {
3136 DWORD procid;
3137 HANDLE hmem;
3138 sscanf(argv[2], "%ld", &procid);
3139 sscanf(argv[3], "%p", &hmem);
3141 return;
3142 }
3143
3147 test_fdsa();
3153
3154 GetLocalTime(&st);
3156 /* Test how the locale and code page interact for date formatting by
3157 * repeating the tests with a February date which in French contains an
3158 * e-acute that can only be represented in some code pages.
3159 */
3160 test_SHFormatDateTimeA(&february);
3161
3174}
static int argc
Definition: ServiceArgs.c:12
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:286
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
static void test_IUnknown_ProfferService(void)
Definition: ordinal.c:2413
static void test_alloc_shared_remote(DWORD procid, HANDLE hmem)
Definition: ordinal.c:522
static void test_IConnectionPoint(void)
Definition: ordinal.c:1441
static void test_SHCreateWorkerWindowA(void)
Definition: ordinal.c:2477
static void test_alloc_shared(int argc, char **argv)
Definition: ordinal.c:451
static void test_SHSetIniString(void)
Definition: ordinal.c:2770
static void test_SHSetParentHwnd(void)
Definition: ordinal.c:2949
static void test_IUnknown_QueryServiceExec(void)
Definition: ordinal.c:2305
static void test_GetShellSecurityDescriptor(void)
Definition: ordinal.c:679
static void test_GetAcceptLanguagesA(void)
Definition: ordinal.c:172
static void test_SHFormatDateTimeA(const SYSTEMTIME *st)
Definition: ordinal.c:1669
static void test_SHSearchMapInt(void)
Definition: ordinal.c:404
static void test_DllGetVersion(void)
Definition: ordinal.c:3114
static void test_SHFormatDateTimeW(void)
Definition: ordinal.c:1838
static void test_SHIShellFolder_EnumObjects(void)
Definition: ordinal.c:2639
static void test_SHGetIniString(void)
Definition: ordinal.c:2719
static void test_SHGetShellKey(void)
Definition: ordinal.c:2820
static void test_SHGetObjectCompatFlags(void)
Definition: ordinal.c:2028
static void test_fdsa(void)
Definition: ordinal.c:579
static void test_SHPackDispParams(void)
Definition: ordinal.c:776
static void test_SHPropertyBag_ReadLONG(void)
Definition: ordinal.c:1575
static void test_IUnknown_GetClassID(void)
Definition: ordinal.c:3082
static void test_SHSetWindowBits(void)
Definition: ordinal.c:1601
static void init_pointers(void)
Definition: ordinal.c:2910
#define argv
Definition: mplay32.c:18
int winetest_get_mainargs(char ***pargv)
static const WCHAR procid[]
Definition: wbemdisp.c:289

◆ test_alloc_shared()

static void test_alloc_shared ( int  argc,
char **  argv 
)
static

Definition at line 451 of file ordinal.c.

452{
453 char cmdline[MAX_PATH];
455 STARTUPINFOA si = { 0 };
457 HANDLE hmem, hmem2 = 0;
458 struct shared_struct val, *p;
459 BOOL ret;
460
462 hmem=pSHAllocShared(NULL,10,procid);
463 ok(hmem!=NULL,"SHAllocShared(NULL...) failed: %lu\n", GetLastError());
464 ret = pSHFreeShared(hmem, procid);
465 ok( ret, "SHFreeShared failed: %lu\n", GetLastError());
466
467 val.value = 0x12345678;
468 val.handle = 0;
469 hmem = pSHAllocShared(&val, sizeof(val), procid);
470 ok(hmem!=NULL,"SHAllocShared(NULL...) failed: %lu\n", GetLastError());
471
472 p=pSHLockShared(hmem,procid);
473 ok(p!=NULL,"SHLockShared failed: %lu\n", GetLastError());
474 if (p!=NULL)
475 ok(p->value == 0x12345678, "Wrong value in shared memory: %ld instead of %d\n", p->value, 0x12345678);
476 ret = pSHUnlockShared(p);
477 ok( ret, "SHUnlockShared failed: %lu\n", GetLastError());
478
479 sprintf(cmdline, "%s %s %ld %p", argv[0], argv[1], procid, hmem);
480 ret = CreateProcessA(NULL, cmdline, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
481 ok(ret, "could not create child process error: %lu\n", GetLastError());
482 if (ret)
483 {
484 wait_child_process(pi.hProcess);
485 CloseHandle(pi.hThread);
486 CloseHandle(pi.hProcess);
487
488 p = pSHLockShared(hmem, procid);
489 ok(p != NULL,"SHLockShared failed: %lu\n", GetLastError());
490 if (p != NULL && p->value != 0x12345678)
491 {
492 ok(p->value == 0x12345679, "Wrong value in shared memory: %ld instead of %d\n", p->value, 0x12345679);
493 hmem2 = p->handle;
494 ok(hmem2 != NULL, "Expected handle in shared memory\n");
495 }
496 ret = pSHUnlockShared(p);
497 ok(ret, "SHUnlockShared failed: %lu\n", GetLastError());
498 }
499
500 ret = pSHFreeShared(hmem, procid);
501 ok( ret, "SHFreeShared failed: %lu\n", GetLastError());
502
503 if (hmem2)
504 {
505 p = pSHLockShared(hmem2, procid);
506 ok(p != NULL,"SHLockShared failed: %lu\n", GetLastError());
507 if (p != NULL)
508 ok(p->value == 0xDEADBEEF, "Wrong value in shared memory: %ld instead of %d\n", p->value, 0xDEADBEEF);
509 ret = pSHUnlockShared(p);
510 ok(ret, "SHUnlockShared failed: %lu\n", GetLastError());
511
512 ret = pSHFreeShared(hmem2, procid);
513 ok(ret, "SHFreeShared failed: %lu\n", GetLastError());
514 }
515
516 SetLastError(0xdeadbeef);
517 ret = pSHFreeShared(NULL, procid);
518 ok(ret, "SHFreeShared failed: %lu\n", GetLastError());
519 ok(GetLastError() == 0xdeadbeef, "last error should not have changed, got %lu\n", GetLastError());
520}
#define FALSE
Definition: types.h:117
#define SetLastError(x)
Definition: compat.h:752
#define MAX_PATH
Definition: compat.h:34
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation)
Definition: proc.c:4749
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint GLfloat * val
Definition: glext.h:7180
GLfloat GLfloat p
Definition: glext.h:8902
#define sprintf
Definition: sprintf.c:45
static refpint_t pi[]
Definition: server.c:112
#define wait_child_process
Definition: test.h:177
TCHAR * cmdline
Definition: stretchblt.cpp:32
char * value
Definition: compiler.c:67
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
DWORD WINAPI GetCurrentProcessId(void)
Definition: proc.c:1158

Referenced by START_TEST().

◆ test_alloc_shared_remote()

static void test_alloc_shared_remote ( DWORD  procid,
HANDLE  hmem 
)
static

Definition at line 522 of file ordinal.c.

523{
524 struct shared_struct val, *p;
525 HANDLE hmem2;
526 BOOL ret;
527
528 /* test directly accessing shared memory of a remote process */
529 p = pSHLockShared(hmem, procid);
530 ok(p != NULL || broken(p == NULL) /* Windows 7/8 */, "SHLockShared failed: %lu\n", GetLastError());
531 if (p == NULL)
532 {
533 win_skip("Subprocess failed to modify shared memory, skipping test\n");
534 return;
535 }
536
537 ok(p->value == 0x12345678, "Wrong value in shared memory: %ld instead of %d\n", p->value, 0x12345678);
538 p->value++;
539
540 val.value = 0xDEADBEEF;
541 val.handle = 0;
542 p->handle = pSHAllocShared(&val, sizeof(val), procid);
543 ok(p->handle != NULL, "SHAllocShared failed: %lu\n", GetLastError());
544
545 ret = pSHUnlockShared(p);
546 ok(ret, "SHUnlockShared failed: %lu\n", GetLastError());
547
548 /* test SHMapHandle */
549 SetLastError(0xdeadbeef);
550 hmem2 = pSHMapHandle(NULL, procid, GetCurrentProcessId(), 0, 0);
551 ok(hmem2 == NULL, "expected NULL, got new handle\n");
552 ok(GetLastError() == 0xdeadbeef, "last error should not have changed, got %lu\n", GetLastError());
553
554 hmem2 = pSHMapHandle(hmem, procid, GetCurrentProcessId(), 0, 0);
555
556 /* It seems like Windows Vista/2008 uses a different internal implementation
557 * for shared memory, and calling SHMapHandle fails. */
558 ok(hmem2 != NULL || broken(hmem2 == NULL),
559 "SHMapHandle failed: %lu\n", GetLastError());
560 if (hmem2 == NULL)
561 {
562 win_skip("Subprocess failed to map shared memory, skipping test\n");
563 return;
564 }
565
566 p = pSHLockShared(hmem2, GetCurrentProcessId());
567 ok(p != NULL, "SHLockShared failed: %lu\n", GetLastError());
568
569 if (p != NULL)
570 ok(p->value == 0x12345679, "Wrong value in shared memory: %ld instead of %d\n", p->value, 0x12345679);
571
572 ret = pSHUnlockShared(p);
573 ok(ret, "SHUnlockShared failed: %lu\n", GetLastError());
574
575 ret = pSHFreeShared(hmem2, GetCurrentProcessId());
576 ok(ret, "SHFreeShared failed: %lu\n", GetLastError());
577}
#define broken(x)
Definition: atltest.h:178
#define win_skip
Definition: minitest.h:67

Referenced by START_TEST().

◆ test_DllGetVersion()

static void test_DllGetVersion ( void  )
static

Definition at line 3114 of file ordinal.c.

3115{
3116 HRESULT hr;
3117
3118 hr = pDllGetVersion(NULL);
3119 ok(hr == E_INVALIDARG, "got 0x%08lx\n", hr);
3120}
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT hr
Definition: shlfolder.c:183

Referenced by START_TEST().

◆ test_fdsa()

static void test_fdsa ( void  )
static

Definition at line 579 of file ordinal.c.

580{
581 typedef struct
582 {
583 DWORD num_items; /* Number of elements inserted */
584 void *mem; /* Ptr to array */
585 DWORD blocks_alloced; /* Number of elements allocated */
586 BYTE inc; /* Number of elements to grow by when we need to expand */
587 BYTE block_size; /* Size in bytes of an element */
588 BYTE flags; /* Flags */
589 } FDSA_info;
590
591 BOOL (WINAPI *pFDSA_Initialize)(DWORD block_size, DWORD inc, FDSA_info *info, void *mem,
592 DWORD init_blocks);
593 BOOL (WINAPI *pFDSA_Destroy)(FDSA_info *info);
594 DWORD (WINAPI *pFDSA_InsertItem)(FDSA_info *info, DWORD where, const void *block);
595 BOOL (WINAPI *pFDSA_DeleteItem)(FDSA_info *info, DWORD where);
596
598 int block_size = 10, init_blocks = 4, inc = 2;
599 DWORD ret;
600 char *mem;
601
602 pFDSA_Initialize = (void *)GetProcAddress(hShlwapi, (LPSTR)208);
603 pFDSA_Destroy = (void *)GetProcAddress(hShlwapi, (LPSTR)209);
604 pFDSA_InsertItem = (void *)GetProcAddress(hShlwapi, (LPSTR)210);
605 pFDSA_DeleteItem = (void *)GetProcAddress(hShlwapi, (LPSTR)211);
606
607 mem = HeapAlloc(GetProcessHeap(), 0, block_size * init_blocks);
608 memset(&info, 0, sizeof(info));
609
610 ok(pFDSA_Initialize(block_size, inc, &info, mem, init_blocks), "FDSA_Initialize rets FALSE\n");
611 ok(info.num_items == 0, "num_items = %ld\n", info.num_items);
612 ok(info.mem == mem, "mem = %p\n", info.mem);
613 ok(info.blocks_alloced == init_blocks, "blocks_alloced = %ld\n", info.blocks_alloced);
614 ok(info.inc == inc, "inc = %d\n", info.inc);
615 ok(info.block_size == block_size, "block_size = %d\n", info.block_size);
616 ok(info.flags == 0, "flags = %d\n", info.flags);
617
618 ret = pFDSA_InsertItem(&info, 1234, "1234567890");
619 ok(ret == 0, "ret = %ld\n", ret);
620 ok(info.num_items == 1, "num_items = %ld\n", info.num_items);
621 ok(info.mem == mem, "mem = %p\n", info.mem);
622 ok(info.blocks_alloced == init_blocks, "blocks_alloced = %ld\n", info.blocks_alloced);
623 ok(info.inc == inc, "inc = %d\n", info.inc);
624 ok(info.block_size == block_size, "block_size = %d\n", info.block_size);
625 ok(info.flags == 0, "flags = %d\n", info.flags);
626
627 ret = pFDSA_InsertItem(&info, 1234, "abcdefghij");
628 ok(ret == 1, "ret = %ld\n", ret);
629
630 ret = pFDSA_InsertItem(&info, 1, "klmnopqrst");
631 ok(ret == 1, "ret = %ld\n", ret);
632
633 ret = pFDSA_InsertItem(&info, 0, "uvwxyzABCD");
634 ok(ret == 0, "ret = %ld\n", ret);
635 ok(info.mem == mem, "mem = %p\n", info.mem);
636 ok(info.flags == 0, "flags = %d\n", info.flags);
637
638 /* This next InsertItem will cause shlwapi to allocate its own mem buffer */
639 ret = pFDSA_InsertItem(&info, 0, "EFGHIJKLMN");
640 ok(ret == 0, "ret = %ld\n", ret);
641 ok(info.mem != mem, "mem = %p\n", info.mem);
642 ok(info.blocks_alloced == init_blocks + inc, "blocks_alloced = %ld\n", info.blocks_alloced);
643 ok(info.flags == 0x1, "flags = %d\n", info.flags);
644
645 ok(!memcmp(info.mem, "EFGHIJKLMNuvwxyzABCD1234567890klmnopqrstabcdefghij", 50), "mem %s\n", (char*)info.mem);
646
647 ok(pFDSA_DeleteItem(&info, 2), "rets FALSE\n");
648 ok(info.mem != mem, "mem = %p\n", info.mem);
649 ok(info.blocks_alloced == init_blocks + inc, "blocks_alloced = %ld\n", info.blocks_alloced);
650 ok(info.flags == 0x1, "flags = %d\n", info.flags);
651
652 ok(!memcmp(info.mem, "EFGHIJKLMNuvwxyzABCDklmnopqrstabcdefghij", 40), "mem %s\n", (char*)info.mem);
653
654 ok(pFDSA_DeleteItem(&info, 3), "rets FALSE\n");
655 ok(info.mem != mem, "mem = %p\n", info.mem);
656 ok(info.blocks_alloced == init_blocks + inc, "blocks_alloced = %ld\n", info.blocks_alloced);
657 ok(info.flags == 0x1, "flags = %d\n", info.flags);
658
659 ok(!memcmp(info.mem, "EFGHIJKLMNuvwxyzABCDklmnopqrst", 30), "mem %s\n", (char*)info.mem);
660
661 ok(!pFDSA_DeleteItem(&info, 4), "does not ret FALSE\n");
662
663 /* As shlwapi has allocated memory internally, Destroy will ret FALSE */
664 ok(!pFDSA_Destroy(&info), "FDSA_Destroy does not ret FALSE\n");
665
666
667 /* When Initialize is called with inc = 0, set it to 1 */
668 ok(pFDSA_Initialize(block_size, 0, &info, mem, init_blocks), "FDSA_Initialize rets FALSE\n");
669 ok(info.inc == 1, "inc = %d\n", info.inc);
670
671 /* This time, because shlwapi hasn't had to allocate memory
672 internally, Destroy rets non-zero */
673 ok(pFDSA_Destroy(&info), "FDSA_Destroy rets FALSE\n");
674
675
677}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
GLbitfield flags
Definition: glext.h:7161
static DWORD block_size(DWORD block)
Definition: jsutils.c:66
static BOOL
Definition: ordinal.c:51
#define DWORD
Definition: nt_native.h:44
#define memset(x, y, z)
Definition: compat.h:39
Definition: mem.c:349
#define WINAPI
Definition: msvc.h:6
static unsigned int block
Definition: xmlmemory.c:101
char * LPSTR
Definition: xmlstorage.h:182
unsigned char BYTE
Definition: xxhash.c:193

Referenced by START_TEST().

◆ test_GetAcceptLanguagesA()

static void test_GetAcceptLanguagesA ( void  )
static

Definition at line 172 of file ordinal.c.

173{
174 static LPCSTR table[] = {"de,en-gb;q=0.7,en;q=0.3",
175 "de,en;q=0.3,en-gb;q=0.7", /* sorting is ignored */
176 "winetest", /* content is ignored */
177 "de-de,de;q=0.5",
178 "de",
179 NULL};
180
181 DWORD exactsize;
182 char original[512];
183 char language[32];
184 char buffer[64];
185 HKEY hroot = NULL;
186 LONG res_query = ERROR_SUCCESS;
187 LONG lres;
188 HRESULT hr;
189 DWORD maxlen = sizeof(buffer) - 2;
190 DWORD len;
191 LCID lcid;
193 INT i = 0;
194
196
197 /* Get the original Value */
199 if (lres) {
200 skip("RegOpenKey(%s) failed: %ld\n", ie_international, lres);
201 return;
202 }
203 len = sizeof(original);
204 original[0] = 0;
205 res_query = RegQueryValueExA(hroot, acceptlanguage, 0, NULL, (PBYTE)original, &len);
206
208
209 /* Some windows versions use "lang-COUNTRY" as default */
210 memset(language, 0, sizeof(language));
211 len = GetLocaleInfoA(lcid, LOCALE_SISO639LANGNAME, language, sizeof(language));
212
213 if (len) {
214 lstrcatA(language, "-");
215 memset(buffer, 0, sizeof(buffer));
217 lstrcatA(language, buffer);
218 }
219 else
220 {
221 /* LOCALE_SNAME has additional parts in some languages. Try only as last chance */
222 memset(language, 0, sizeof(language));
223 len = GetLocaleInfoA(lcid, LOCALE_SNAME, language, sizeof(language));
224 }
225
226 /* get the default value */
227 len = maxlen;
228 memset(buffer, '#', maxlen);
229 buffer[maxlen] = 0;
230 hr = pGetAcceptLanguagesA( buffer, &len);
231
232 if (hr != S_OK) {
233 win_skip("GetAcceptLanguagesA failed with 0x%lx\n", hr);
234 goto restore_original;
235 }
236
237 if (lstrcmpA(buffer, language)) {
238 /* some windows versions use "lang" or "lang-country" as default */
239 language[0] = 0;
240 hr = LcidToRfc1766A(lcid, language, sizeof(language));
241 ok(hr == S_OK, "LcidToRfc1766A returned 0x%lx and %s\n", hr, language);
242 }
243
244 ok(!lstrcmpA(buffer, language),
245 "have '%s' (searching for '%s')\n", language, buffer);
246
247 if (lstrcmpA(buffer, language)) {
248 win_skip("no more ideas, how to build the default language '%s'\n", buffer);
249 goto restore_original;
250 }
251
252 trace("detected default: %s\n", language);
253 while ((entry = table[i])) {
254
255 exactsize = lstrlenA(entry);
256
257 lres = RegSetValueExA(hroot, acceptlanguage, 0, REG_SZ, (const BYTE *) entry, exactsize + 1);
258 ok(!lres, "got %ld for RegSetValueExA: %s\n", lres, entry);
259
260 /* len includes space for the terminating 0 before vista/w2k8 */
261 len = exactsize + 2;
262 memset(buffer, '#', maxlen);
263 buffer[maxlen] = 0;
264 hr = pGetAcceptLanguagesA( buffer, &len);
265 ok(((hr == E_INVALIDARG) && (len == 0)) ||
266 (SUCCEEDED(hr) &&
267 ((len == exactsize) || (len == exactsize+1)) &&
269 "+2_#%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
270
271 len = exactsize + 1;
272 memset(buffer, '#', maxlen);
273 buffer[maxlen] = 0;
274 hr = pGetAcceptLanguagesA( buffer, &len);
275 ok(((hr == E_INVALIDARG) && (len == 0)) ||
276 (SUCCEEDED(hr) &&
277 ((len == exactsize) || (len == exactsize+1)) &&
279 "+1_#%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
280
281 len = exactsize;
282 memset(buffer, '#', maxlen);
283 buffer[maxlen] = 0;
284 hr = pGetAcceptLanguagesA( buffer, &len);
285
286 /* There is no space for the string in the registry.
287 When the buffer is large enough, the default language is returned
288
289 When the buffer is too small for that fallback, win7_32 and w2k8_64
290 fail with E_NOT_SUFFICIENT_BUFFER, win8 fails with HRESULT_FROM_WIN32(ERROR_MORE_DATA),
291 other versions succeed and return a partial result while older os succeed
292 and overflow the buffer */
293
294 ok(((hr == E_INVALIDARG) && (len == 0)) ||
295 (((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
296 ((hr == S_OK) && !memcmp(buffer, language, len)) ||
297 ((hr == E_NOT_SUFFICIENT_BUFFER) && !len) ||
298 ((hr == __HRESULT_FROM_WIN32(ERROR_MORE_DATA)) && len == exactsize)),
299 "==_#%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
300
301 if (exactsize > 1) {
302 len = exactsize - 1;
303 memset(buffer, '#', maxlen);
304 buffer[maxlen] = 0;
305 hr = pGetAcceptLanguagesA( buffer, &len);
306 ok(((hr == E_INVALIDARG) && (len == 0)) ||
307 (((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
308 ((hr == S_OK) && !memcmp(buffer, language, len)) ||
309 ((hr == E_NOT_SUFFICIENT_BUFFER) && !len) ||
310 ((hr == __HRESULT_FROM_WIN32(ERROR_MORE_DATA)) && len == exactsize - 1)),
311 "-1_#%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
312 }
313
314 len = 1;
315 memset(buffer, '#', maxlen);
316 buffer[maxlen] = 0;
317 hr = pGetAcceptLanguagesA( buffer, &len);
318 ok(((hr == E_INVALIDARG) && (len == 0)) ||
319 (((hr == S_OK) && !lstrcmpA(buffer, language) && (len == lstrlenA(language))) ||
320 ((hr == S_OK) && !memcmp(buffer, language, len)) ||
321 ((hr == E_NOT_SUFFICIENT_BUFFER) && !len) ||
323 "=1_#%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
324
325 len = maxlen;
326 hr = pGetAcceptLanguagesA( NULL, &len);
327
328 /* w2k3 and below: E_FAIL and untouched len,
329 since w2k8: S_OK and needed size (excluding 0), win8 S_OK and size including 0. */
330 ok( ((hr == S_OK) && ((len == exactsize) || (len == exactsize + 1))) ||
331 ((hr == E_FAIL) && (len == maxlen)),
332 "NULL,max #%d: got 0x%lx with %ld and %s\n", i, hr, len, buffer);
333
334 i++;
335 }
336
337 /* without a value in the registry, a default language is returned */
339
340 len = maxlen;
341 memset(buffer, '#', maxlen);
342 buffer[maxlen] = 0;
343 hr = pGetAcceptLanguagesA( buffer, &len);
344 ok( ((hr == S_OK) && (len == lstrlenA(language))),
345 "max: got 0x%lx with %ld and %s (expected S_OK with %d and '%s'\n",
346 hr, len, buffer, lstrlenA(language), language);
347
348 len = 2;
349 memset(buffer, '#', maxlen);
350 buffer[maxlen] = 0;
351 hr = pGetAcceptLanguagesA( buffer, &len);
352 ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
353 ((hr == E_NOT_SUFFICIENT_BUFFER) && !len) ||
355 "=2: got 0x%lx with %ld and %s\n", hr, len, buffer);
356
357 len = 1;
358 memset(buffer, '#', maxlen);
359 buffer[maxlen] = 0;
360 hr = pGetAcceptLanguagesA( buffer, &len);
361 /* When the buffer is too small, win7_32 and w2k8_64 and above fail with
362 E_NOT_SUFFICIENT_BUFFER, win8 ERROR_CANNOT_COPY,
363 other versions succeed and return a partial 0 terminated result while other versions
364 fail with E_INVALIDARG and return a partial unterminated result */
365 ok( (((hr == S_OK) || (hr == E_INVALIDARG)) && !memcmp(buffer, language, len)) ||
366 ((hr == E_NOT_SUFFICIENT_BUFFER) && !len) ||
368 "=1: got 0x%lx with %ld and %s\n", hr, len, buffer);
369
370 len = 0;
371 memset(buffer, '#', maxlen);
372 buffer[maxlen] = 0;
373 hr = pGetAcceptLanguagesA( buffer, &len);
374 /* w2k3 and below: E_FAIL, since w2k8: E_INVALIDARG, win8 ERROR_CANNOT_COPY */
376 "got 0x%lx\n", hr);
377
378 memset(buffer, '#', maxlen);
379 buffer[maxlen] = 0;
380 hr = pGetAcceptLanguagesA( buffer, NULL);
381 /* w2k3 and below: E_FAIL, since w2k8: E_INVALIDARG */
382 ok((hr == E_FAIL) || (hr == E_INVALIDARG),
383 "got 0x%lx (expected E_FAIL or E_INVALIDARG)\n", hr);
384
385
386 hr = pGetAcceptLanguagesA( NULL, NULL);
387 /* w2k3 and below: E_FAIL, since w2k8: E_INVALIDARG */
388 ok((hr == E_FAIL) || (hr == E_INVALIDARG),
389 "got 0x%lx (expected E_FAIL or E_INVALIDARG)\n", hr);
390
391restore_original:
392 if (!res_query) {
393 len = lstrlenA(original);
394 lres = RegSetValueExA(hroot, acceptlanguage, 0, REG_SZ, (const BYTE *) original, len ? len + 1: 0);
395 ok(!lres, "RegSetValueEx(%s) failed: %ld\n", original, lres);
396 }
397 else
398 {
400 }
401 RegCloseKey(hroot);
402}
#define skip(...)
Definition: atltest.h:64
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_MORE_DATA
Definition: dderror.h:13
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4799
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3234
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
Definition: reg.c:2287
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
Definition: locale.c:1609
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4198
LCID WINAPI GetUserDefaultLCID(void)
Definition: locale.c:1216
GLuint buffer
Definition: glext.h:5915
GLenum GLsizei len
Definition: glext.h:6722
#define SUCCEEDED(hr)
Definition: intsafe.h:50
uint32_t entry
Definition: isohybrid.c:63
#define REG_SZ
Definition: layer.c:22
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
static const CHAR ie_international[]
Definition: ordinal.c:90
static const CHAR acceptlanguage[]
Definition: ordinal.c:95
BYTE * PBYTE
Definition: pedump.c:66
long LONG
Definition: pedump.c:60
DWORD LCID
Definition: nls.h:13
static LCIDTORFC1766A LcidToRfc1766A
Definition: win_iconv.c:708
#define E_NOT_SUFFICIENT_BUFFER
Definition: winerror.h:3437
#define __HRESULT_FROM_WIN32(x)
Definition: winerror.h:197
#define ERROR_CANNOT_COPY
Definition: winerror.h:415
#define LOCALE_SNAME
Definition: winnls.h:137
#define LOCALE_SISO639LANGNAME
Definition: winnls.h:133
#define LOCALE_SISO3166CTRYNAME
Definition: winnls.h:134
#define HKEY_CURRENT_USER
Definition: winreg.h:11
const char * LPCSTR
Definition: xmlstorage.h:183

Referenced by START_TEST().

◆ test_GetShellSecurityDescriptor()

static void test_GetShellSecurityDescriptor ( void  )
static

Definition at line 679 of file ordinal.c.

680{
681 static const SHELL_USER_PERMISSION supCurrentUserFull = {
682 { {SECURITY_NULL_SID_AUTHORITY}, 0, 0 },
684 GENERIC_ALL, 0, 0 };
685#define MY_INHERITANCE 0xBE /* invalid value to proof behavior */
686 static const SHELL_USER_PERMISSION supEveryoneDenied = {
690 const SHELL_USER_PERMISSION* rgsup[2] = {
691 &supCurrentUserFull, &supEveryoneDenied,
692 };
694
695 if(!pGetShellSecurityDescriptor) /* vista and later */
696 {
697 win_skip("GetShellSecurityDescriptor not available\n");
698 return;
699 }
700
702 ok(psd==NULL, "GetShellSecurityDescriptor should fail\n");
703 psd = pGetShellSecurityDescriptor(rgsup, 0);
704 ok(psd==NULL, "GetShellSecurityDescriptor should fail, got %p\n", psd);
705
706 SetLastError(0xdeadbeef);
707 psd = pGetShellSecurityDescriptor(rgsup, 2);
708 ok(psd!=NULL, "GetShellSecurityDescriptor failed\n");
709 if (psd!=NULL)
710 {
711 BOOL bHasDacl = FALSE, bDefaulted, ret;
712 PACL pAcl;
713 DWORD dwRev;
715
716 ok(IsValidSecurityDescriptor(psd), "returned value is not valid SD\n");
717
719 ok(ret, "GetSecurityDescriptorControl failed with error %lu\n", GetLastError());
720 ok(0 == (control & SE_SELF_RELATIVE), "SD should be absolute\n");
721
722 ret = GetSecurityDescriptorDacl(psd, &bHasDacl, &pAcl, &bDefaulted);
723 ok(ret, "GetSecurityDescriptorDacl failed with error %lu\n", GetLastError());
724
725 ok(bHasDacl, "SD has no DACL\n");
726 if (bHasDacl)
727 {
728 ok(!bDefaulted, "DACL should not be defaulted\n");
729
730 ok(pAcl != NULL, "NULL DACL!\n");
731 if (pAcl != NULL)
732 {
733 ACL_SIZE_INFORMATION asiSize;
734
735 ok(IsValidAcl(pAcl), "DACL is not valid\n");
736
737 ret = GetAclInformation(pAcl, &asiSize, sizeof(asiSize), AclSizeInformation);
738 ok(ret, "GetAclInformation failed with error %lu\n", GetLastError());
739
740 ok(asiSize.AceCount == 3, "Incorrect number of ACEs: %ld entries\n", asiSize.AceCount);
741 if (asiSize.AceCount == 3)
742 {
743 ACCESS_ALLOWED_ACE *paaa; /* will use for DENIED too */
744
745 ret = GetAce(pAcl, 0, (LPVOID*)&paaa);
746 ok(ret, "GetAce failed with error %lu\n", GetLastError());
748 "Invalid ACE type %d\n", paaa->Header.AceType);
749 ok(paaa->Header.AceFlags == 0, "Invalid ACE flags %x\n", paaa->Header.AceFlags);
750 ok(paaa->Mask == GENERIC_ALL, "Invalid ACE mask %lx\n", paaa->Mask);
751
752 ret = GetAce(pAcl, 1, (LPVOID*)&paaa);
753 ok(ret, "GetAce failed with error %lu\n", GetLastError());
755 "Invalid ACE type %d\n", paaa->Header.AceType);
756 /* first one of two ACEs generated from inheritable entry - without inheritance */
757 ok(paaa->Header.AceFlags == 0, "Invalid ACE flags %x\n", paaa->Header.AceFlags);
758 ok(paaa->Mask == GENERIC_WRITE, "Invalid ACE mask %lx\n", paaa->Mask);
759
760 ret = GetAce(pAcl, 2, (LPVOID*)&paaa);
761 ok(ret, "GetAce failed with error %lu\n", GetLastError());
763 "Invalid ACE type %d\n", paaa->Header.AceType);
764 /* second ACE - with inheritance */
766 "Invalid ACE flags %x\n", paaa->Header.AceFlags);
767 ok(paaa->Mask == GENERIC_READ, "Invalid ACE mask %lx\n", paaa->Mask);
768 }
769 }
770 }
771
772 LocalFree(psd);
773 }
774}
#define TRUE
Definition: types.h:120
BOOL WINAPI GetAclInformation(PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass)
Definition: security.c:1194
BOOL WINAPI GetAce(PACL pAcl, DWORD dwAceIndex, LPVOID *pAce)
Definition: security.c:1186
BOOL WINAPI IsValidAcl(PACL pAcl)
Definition: security.c:1209
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
WORD SECURITY_DESCRIPTOR_CONTROL
Definition: lsa.idl:37
#define MY_INHERITANCE
static SECURITY_DESCRIPTOR *WINAPI * pGetShellSecurityDescriptor(const SHELL_USER_PERMISSION **, int)
#define GENERIC_ALL
Definition: nt_native.h:92
#define GENERIC_WRITE
Definition: nt_native.h:90
BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor)
Definition: sec.c:176
BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR pSecurityDescriptor, PSECURITY_DESCRIPTOR_CONTROL pControl, LPDWORD lpdwRevision)
Definition: sec.c:21
BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, LPBOOL lpbDaclPresent, PACL *pDacl, LPBOOL lpbDaclDefaulted)
Definition: sec.c:45
ACE_HEADER Header
Definition: ms-dtyp.idl:216
ACCESS_MASK Mask
Definition: ms-dtyp.idl:217
UCHAR AceFlags
Definition: ms-dtyp.idl:211
UCHAR AceType
Definition: ms-dtyp.idl:210
Definition: dialog.c:52
@ AclSizeInformation
Definition: winnt_old.h:1166
#define SECURITY_WORLD_SID_AUTHORITY
Definition: setypes.h:527
#define SECURITY_WORLD_RID
Definition: setypes.h:541
#define ACCESS_ALLOWED_ACE_TYPE
Definition: setypes.h:717
#define SE_SELF_RELATIVE
Definition: setypes.h:846
#define ACCESS_DENIED_ACE_TYPE
Definition: setypes.h:718
#define SECURITY_NULL_SID_AUTHORITY
Definition: setypes.h:524

Referenced by START_TEST().

◆ test_IConnectionPoint()

static void test_IConnectionPoint ( void  )
static

Definition at line 1441 of file ordinal.c.

1442{
1443 HRESULT rc;
1444 ULONG ref;
1447 Disp *dispatch;
1448 DWORD cookie = 0xffffffff;
1450 VARIANT vars[10];
1451
1453 container->IConnectionPointContainer_iface.lpVtbl = &contain_vtbl;
1454 container->refCount = 1;
1455 container->ptCount = 0;
1456 container->pt = NULL;
1457
1458 dispatch = HeapAlloc(GetProcessHeap(),0,sizeof(Disp));
1459 dispatch->IDispatch_iface.lpVtbl = &disp_vtbl;
1460 dispatch->refCount = 1;
1461
1462 rc = pConnectToConnectionPoint((IUnknown*)&dispatch->IDispatch_iface, &IID_NULL, TRUE,
1463 (IUnknown*)&container->IConnectionPointContainer_iface, &cookie, &point);
1464 ok(rc == S_OK, "pConnectToConnectionPoint failed with %lx\n",rc);
1465 ok(point != NULL, "returned ConnectionPoint is NULL\n");
1466 ok(cookie != 0xffffffff, "invalid cookie returned\n");
1467
1468 rc = pIConnectionPoint_SimpleInvoke(point,0xa0,NULL);
1469 ok(rc == S_OK, "pConnectToConnectionPoint failed with %lx\n",rc);
1470
1471 memset(&params, 0xc0, sizeof(params));
1472 memset(vars, 0xc0, sizeof(vars));
1473 rc = pSHPackDispParams(&params, vars, 2, VT_I4, 0xdeadbeef, VT_BSTR, 0xdeadcafe);
1474 ok(rc == S_OK, "SHPackDispParams failed: %08lx\n", rc);
1475
1476 rc = pIConnectionPoint_SimpleInvoke(point,0xa1,&params);
1477 ok(rc == S_OK, "pConnectToConnectionPoint failed with %lx\n",rc);
1478
1479 rc = pConnectToConnectionPoint(NULL, &IID_NULL, FALSE,
1480 (IUnknown*)&container->IConnectionPointContainer_iface, &cookie, NULL);
1481 ok(rc == S_OK, "pConnectToConnectionPoint failed with %lx\n",rc);
1482
1483/* MSDN says this should be required but it crashes on XP
1484 IUnknown_Release(point);
1485*/
1486 ref = IConnectionPointContainer_Release(&container->IConnectionPointContainer_iface);
1487 ok(ref == 0, "leftover IConnectionPointContainer reference %li\n",ref);
1488 ref = IDispatch_Release(&dispatch->IDispatch_iface);
1489 ok(ref == 0, "leftover IDispatch reference %li\n",ref);
1490}
void dispatch(HANDLE hStopEvent)
Definition: dispatch.c:70
POINTL point
Definition: edittest.c:50
GLenum const GLfloat * params
Definition: glext.h:5645
static const IConnectionPointContainerVtbl contain_vtbl
Definition: ordinal.c:1432
static const IDispatchVtbl disp_vtbl
Definition: ordinal.c:995
struct stdole::DISPPARAMS DISPPARAMS

Referenced by START_TEST().

◆ test_IUnknown_GetClassID()

static void test_IUnknown_GetClassID ( void  )
static

Definition at line 3082 of file ordinal.c.

3083{
3084 CLSID clsid, clsid2, clsid3;
3085 HRESULT hr;
3086
3087 if (0) /* crashes on native systems */
3088 hr = pIUnknown_GetClassID(NULL, NULL);
3089
3090 memset(&clsid, 0xcc, sizeof(clsid));
3091 memset(&clsid3, 0xcc, sizeof(clsid3));
3092 hr = pIUnknown_GetClassID(NULL, &clsid);
3093 ok(hr == E_FAIL, "got 0x%08lx\n", hr);
3094 ok(IsEqualCLSID(&clsid, &CLSID_NULL) || broken(IsEqualCLSID(&clsid, &clsid3)) /* win2k, winxp, win2k3 */,
3095 "got wrong clsid %s\n", wine_dbgstr_guid(&clsid));
3096
3097 memset(&clsid, 0xcc, sizeof(clsid));
3098 memset(&clsid2, 0xab, sizeof(clsid2));
3099 hr = pIUnknown_GetClassID((IUnknown*)&testpersist, &clsid);
3100 ok(hr == 0x8fff2222, "got 0x%08lx\n", hr);
3101 ok(IsEqualCLSID(&clsid, &clsid2) || broken(IsEqualCLSID(&clsid, &clsid3)) /* win2k3 */,
3102 "got wrong clsid %s\n", wine_dbgstr_guid(&clsid));
3103
3104 /* IPersistFolder is also supported */
3105 memset(&clsid, 0xcc, sizeof(clsid));
3106 memset(&clsid2, 0xab, sizeof(clsid2));
3107 memset(&clsid3, 0xcc, sizeof(clsid3));
3108 hr = pIUnknown_GetClassID((IUnknown*)&testpersist2, &clsid);
3109 ok(hr == 0x8fff2222, "got 0x%08lx\n", hr);
3110 ok(IsEqualCLSID(&clsid, &clsid2) || broken(IsEqualCLSID(&clsid, &clsid3)) /* win2k3 */,
3111 "got wrong clsid %s\n", wine_dbgstr_guid(&clsid));
3112}
static IPersist testpersist2
Definition: ordinal.c:3080
static IPersist testpersist
Definition: ordinal.c:3079
const CLSID * clsid
Definition: msctf.cpp:50
#define CLSID_NULL
Definition: guiddef.h:99
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96

Referenced by START_TEST().

◆ test_IUnknown_ProfferService()

static void test_IUnknown_ProfferService ( void  )
static

Definition at line 2413 of file ordinal.c.

2414{
2415 IServiceProvider *provider;
2416 IProfferService *proff;
2417 static const GUID dummy_serviceid = { 0xdeadbeef };
2418 call_trace_t trace_expected;
2419 HRESULT hr;
2420 DWORD cookie;
2421
2422 provider = IServiceProviderImpl_Construct();
2424
2425 /* null source pointer */
2426 hr = pIUnknown_ProfferService(NULL, &dummy_serviceid, 0, 0);
2427 ok(hr == E_FAIL ||
2428 hr == E_NOTIMPL, /* win 8 */
2429 "got 0x%08lx\n", hr);
2430
2431 /* expected trace:
2432 IUnknown_ProfferService( ptr1, serviceid, arg1, arg2);
2433 -> IUnknown_QueryInterface( ptr1, &IID_IServiceProvider, &provider );
2434 -> IServiceProvider_QueryService( provider, &IID_IProfferService, &IID_IProfferService, &proffer );
2435
2436 if (service pointer not null):
2437 -> IProfferService_ProfferService( proffer, serviceid, arg1, arg2 );
2438 else
2439 -> IProfferService_RevokeService( proffer, *arg2 );
2440 */
2441 init_call_trace(&trace_expected);
2442
2443 add_call(&trace_expected, 1, proff, &IID_IServiceProvider, 0, 0, 0);
2444 add_call(&trace_expected, 2, &IID_IProfferService, &IID_IProfferService, 0, 0, 0);
2445 add_call(&trace_expected, 3, &dummy_serviceid, provider, &cookie, 0, 0);
2446
2448 cookie = 0;
2449 hr = pIUnknown_ProfferService((IUnknown*)proff, &dummy_serviceid, provider, &cookie);
2450 ok(hr == S_OK, "got 0x%08lx\n", hr);
2451 ok(cookie == 0xdeadbeef, "got %lx\n", cookie);
2452
2453 ok_trace(&trace_expected, &trace_got);
2455 free_call_trace(&trace_expected);
2456
2457 /* same with ::Revoke path */
2458 init_call_trace(&trace_expected);
2459
2460 add_call(&trace_expected, 1, proff, &IID_IServiceProvider, 0, 0, 0);
2461 add_call(&trace_expected, 2, &IID_IProfferService, &IID_IProfferService, 0, 0, 0);
2462 add_call(&trace_expected, 4, (void*)(DWORD_PTR)cookie, 0, 0, 0, 0);
2463
2465 ok(cookie != 0, "got %lx\n", cookie);
2466 hr = pIUnknown_ProfferService((IUnknown*)proff, &dummy_serviceid, 0, &cookie);
2467 ok(hr == S_OK, "got 0x%08lx\n", hr);
2468 ok(cookie == 0, "got %lx\n", cookie);
2469 ok_trace(&trace_expected, &trace_got);
2471 free_call_trace(&trace_expected);
2472
2473 IServiceProvider_Release(provider);
2474 IProfferService_Release(proff);
2475}
#define ok_trace(a, b)
Definition: ordinal.c:167
static void free_call_trace(const call_trace_t *ctrace)
Definition: ordinal.c:116
static void init_call_trace(call_trace_t *ctrace)
Definition: ordinal.c:109

Referenced by START_TEST().

◆ test_IUnknown_QueryServiceExec()

static void test_IUnknown_QueryServiceExec ( void  )
static

Definition at line 2305 of file ordinal.c.

2306{
2307 IServiceProvider *provider;
2308 static const GUID dummy_serviceid = { 0xdeadbeef };
2309 static const GUID dummy_groupid = { 0xbeefbeef };
2310 call_trace_t trace_expected;
2311 HRESULT hr;
2312
2313 provider = IServiceProviderImpl_Construct();
2314
2315 /* null source pointer */
2316 hr = pIUnknown_QueryServiceExec(NULL, &dummy_serviceid, &dummy_groupid, 0, 0, 0, 0);
2317 ok(hr == E_FAIL ||
2318 hr == E_NOTIMPL, /* win 8 */
2319 "got 0x%08lx\n", hr);
2320
2321 /* expected trace:
2322 IUnknown_QueryServiceExec( ptr1, serviceid, groupid, arg1, arg2, arg3, arg4);
2323 -> IUnknown_QueryInterface( ptr1, &IID_IServiceProvider, &prov );
2324 -> IServiceProvider_QueryService( prov, serviceid, &IID_IOleCommandTarget, &obj );
2325 -> IOleCommandTarget_Exec( obj, groupid, arg1, arg2, arg3, arg4 );
2326 */
2327 init_call_trace(&trace_expected);
2328
2329 add_call(&trace_expected, 1, provider, &IID_IServiceProvider, 0, 0, 0);
2330 add_call(&trace_expected, 2, provider, &dummy_serviceid, &IID_IOleCommandTarget, 0, 0);
2331 add_call(&trace_expected, 3, &dummy_groupid, (void*)0x1, (void*)0x2, (void*)0x3, (void*)0x4);
2332
2334 hr = pIUnknown_QueryServiceExec((IUnknown*)provider, &dummy_serviceid, &dummy_groupid, 0x1, 0x2, (void*)0x3, (void*)0x4);
2335 ok(hr == S_OK, "got 0x%08lx\n", hr);
2336
2337 ok_trace(&trace_expected, &trace_got);
2338
2339 free_call_trace(&trace_expected);
2341
2342 IServiceProvider_Release(provider);
2343}

Referenced by START_TEST().

◆ test_SHCreateWorkerWindowA()

static void test_SHCreateWorkerWindowA ( void  )
static

Definition at line 2477 of file ordinal.c.

2478{
2479 WNDCLASSA cliA;
2480 char classA[20];
2481 HWND hwnd;
2482 LONG_PTR ret;
2483 BOOL res;
2484
2485 hwnd = pSHCreateWorkerWindowA(0, NULL, 0, 0, 0, 0);
2486 ok(hwnd != 0, "expected window\n");
2487
2488 GetClassNameA(hwnd, classA, 20);
2489 ok(lstrcmpA(classA, "WorkerA") == 0, "expected WorkerA class, got %s\n", classA);
2490
2492 ok(ret == 0, "got %Id\n", ret);
2493
2494 /* class info */
2495 memset(&cliA, 0, sizeof(cliA));
2496 res = GetClassInfoA(GetModuleHandleA("shlwapi.dll"), "WorkerA", &cliA);
2497 ok(res, "failed to get class info\n");
2498 ok(cliA.style == 0, "got 0x%08x\n", cliA.style);
2499 ok(cliA.cbClsExtra == 0, "got %d\n", cliA.cbClsExtra);
2500 ok(cliA.cbWndExtra == sizeof(LONG_PTR), "got %d\n", cliA.cbWndExtra);
2501 ok(cliA.lpszMenuName == 0, "got %s\n", cliA.lpszMenuName);
2502
2504
2505 /* set extra bytes */
2506 hwnd = pSHCreateWorkerWindowA(0, NULL, 0, 0, 0, 0xdeadbeef);
2507 ok(hwnd != 0, "expected window\n");
2508
2509 GetClassNameA(hwnd, classA, 20);
2510 ok(lstrcmpA(classA, "WorkerA") == 0, "expected WorkerA class, got %s\n", classA);
2511
2513 ok(ret == 0xdeadbeef, "got %Id\n", ret);
2514
2515 /* test exstyle */
2517 ok(ret == WS_EX_WINDOWEDGE ||
2518 ret == (WS_EX_WINDOWEDGE|WS_EX_LAYOUTRTL) /* systems with RTL locale */, "0x%08Ix\n", ret);
2519
2521
2522 hwnd = pSHCreateWorkerWindowA(0, NULL, WS_EX_TOOLWINDOW, 0, 0, 0);
2525 ret == (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_LAYOUTRTL) /* systems with RTL locale */, "0x%08Ix\n", ret);
2527}
GLuint res
Definition: glext.h:9613
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
int cbWndExtra
Definition: winuser.h:3268
UINT style
Definition: winuser.h:3265
LPCSTR lpszMenuName
Definition: winuser.h:3273
int cbClsExtra
Definition: winuser.h:3267
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define WS_EX_LAYOUTRTL
Definition: winuser.h:390
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
int WINAPI GetClassNameA(_In_ HWND hWnd, _Out_writes_to_(nMaxCount, return) LPSTR lpClassName, _In_ int nMaxCount)
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
#define GetWindowLongPtrA
Definition: winuser.h:4930
#define WS_EX_WINDOWEDGE
Definition: winuser.h:407
BOOL WINAPI GetClassInfoA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSA)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define GWL_EXSTYLE
Definition: winuser.h:862

Referenced by START_TEST().

◆ test_SHFormatDateTimeA()

static void test_SHFormatDateTimeA ( const SYSTEMTIME st)
static

Definition at line 1669 of file ordinal.c.

1670{
1672 FILETIME filetimeCheck;
1673 SYSTEMTIME universalSystemTime;
1674 CHAR buff[100], buff2[100], buff3[100];
1675 BOOL dstMatch;
1676 DWORD flags;
1677 INT ret;
1678
1679 /* SHFormatDateTime expects input as utc */
1680 TzSpecificLocalTimeToSystemTime(NULL, st, &universalSystemTime);
1681 SystemTimeToFileTime(&universalSystemTime, &filetime);
1682
1683 SystemTimeToFileTime(st, &filetimeCheck);
1684 LocalFileTimeToFileTime(&filetimeCheck, &filetimeCheck);
1685 dstMatch = (filetime.dwHighDateTime == filetimeCheck.dwHighDateTime) &&
1686 (filetime.dwLowDateTime == filetimeCheck.dwLowDateTime);
1687
1688 /* no way to get required buffer length here */
1689 ret = pSHFormatDateTimeA(&filetime, NULL, NULL, 0);
1690 ok(ret == 0, "got %d\n", ret);
1691
1692 SetLastError(0xdeadbeef);
1693 buff[0] = 'a'; buff[1] = 0;
1694 ret = pSHFormatDateTimeA(&filetime, NULL, buff, 0);
1695 ok(ret == 0, "got %d\n", ret);
1696 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1697 ok(buff[0] == 'a', "expected same string, got %s\n", buff);
1698
1699 /* flags needs to have FDTF_NOAUTOREADINGORDER for these tests to succeed on Vista+ */
1700
1701 /* all combinations documented as invalid succeeded */
1703 SetLastError(0xdeadbeef);
1704 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1705 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1706 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1707
1709 SetLastError(0xdeadbeef);
1710 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1711 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1712 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1713
1715 SetLastError(0xdeadbeef);
1716 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1717 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1718 ok(GetLastError() == 0xdeadbeef,
1719 "expected 0xdeadbeef, got %ld\n", GetLastError());
1720
1722 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1723 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1724
1725 buff2[0] = '\0';
1727 ret = pSHFormatDateTimeA(&filetime, &flags, buff2, sizeof(buff2));
1728 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1729 ok(lstrcmpA(buff, buff2) == 0, "expected (%s), got (%s)\n", buff, buff2);
1730
1731 buff2[0] = '\0';
1732 ret = pSHFormatDateTimeA(&filetime, NULL, buff2, sizeof(buff2));
1733 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1734 ok(lstrcmpA(buff, buff2) == 0, "expected (%s), got (%s)\n", buff, buff2);
1735
1736 /* now check returned strings */
1738 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1739 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1741 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1742 ok(lstrcmpA(buff, buff2) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1743 "expected (%s), got (%s)\n", buff2, buff);
1744
1746 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1747 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1748 ret = GetTimeFormatA(LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, st, NULL, buff2, sizeof(buff2));
1749 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1750 ok(lstrcmpA(buff, buff2) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1751 "expected (%s), got (%s)\n", buff2, buff);
1752
1753 /* both time flags */
1755 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1756 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1757 ret = GetTimeFormatA(LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, st, NULL, buff2, sizeof(buff2));
1758 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1759 ok(lstrcmpA(buff, buff2) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1760 "expected (%s), got (%s)\n", buff2, buff);
1761
1763 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1764 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1766 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1767 ok(lstrcmpA(buff, buff2) == 0, "expected (%s), got (%s)\n", buff2, buff);
1768
1770 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1771 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1773 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1774 ok(lstrcmpA(buff, buff2) == 0, "expected (%s), got (%s)\n", buff2, buff);
1775
1776 /* both date flags */
1778 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1779 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1781 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1782 ok(lstrcmpA(buff, buff2) == 0, "expected (%s), got (%s)\n", buff2, buff);
1783
1784 /* various combinations of date/time flags */
1786 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1787 ok(ret == lstrlenA(buff)+1, "got %d, length %d\n", ret, lstrlenA(buff)+1);
1789 ok(ret == lstrlenA(buff3)+1, "got %d\n", ret);
1790 ok(lstrcmpA(buff3, buff + lstrlenA(buff) - lstrlenA(buff3)) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1791 "expected (%s), got (%s) for time part\n",
1792 buff3, buff + lstrlenA(buff) - lstrlenA(buff3));
1794 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1795 buff[lstrlenA(buff2)] = '\0';
1796 ok(lstrcmpA(buff2, buff) == 0, "expected (%s) got (%s) for date part\n",
1797 buff2, buff);
1798
1800 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1801 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1802 ret = GetTimeFormatA(LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, st, NULL, buff3, sizeof(buff3));
1803 ok(ret == lstrlenA(buff3)+1, "got %d\n", ret);
1804 ok(lstrcmpA(buff3, buff + lstrlenA(buff) - lstrlenA(buff3)) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1805 "expected (%s), got (%s) for time part\n",
1806 buff3, buff + lstrlenA(buff) - lstrlenA(buff3));
1808 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1809 buff[lstrlenA(buff2)] = '\0';
1810 ok(lstrcmpA(buff2, buff) == 0, "expected (%s) got (%s) for date part\n",
1811 buff2, buff);
1812
1814 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1815 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1817 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1818 strcat(buff2, " ");
1820 ok(ret == lstrlenA(buff3)+1, "got %d\n", ret);
1821 strcat(buff2, buff3);
1822 ok(lstrcmpA(buff, buff2) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1823 "expected (%s), got (%s)\n", buff2, buff);
1824
1826 ret = pSHFormatDateTimeA(&filetime, &flags, buff, sizeof(buff));
1827 ok(ret == lstrlenA(buff)+1, "got %d\n", ret);
1829 ok(ret == lstrlenA(buff2)+1, "got %d\n", ret);
1830 strcat(buff2, " ");
1831 ret = GetTimeFormatA(LOCALE_USER_DEFAULT, LOCALE_USE_CP_ACP, st, NULL, buff3, sizeof(buff3));
1832 ok(ret == lstrlenA(buff3)+1, "got %d\n", ret);
1833 strcat(buff2, buff3);
1834 ok(lstrcmpA(buff, buff2) == 0 || broken(!dstMatch) /* pre Windows 7 */,
1835 "expected (%s), got (%s)\n", buff2, buff);
1836}
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
Definition: time.c:158
BOOL WINAPI LocalFileTimeToFileTime(IN CONST FILETIME *lpLocalFileTime, OUT LPFILETIME lpFileTime)
Definition: time.c:253
BOOL WINAPI TzSpecificLocalTimeToSystemTime(LPTIME_ZONE_INFORMATION lpTimeZoneInformation, LPSYSTEMTIME lpLocalTime, LPSYSTEMTIME lpUniversalTime)
Definition: timezone.c:421
static unsigned char buff[32768]
Definition: fatten.c:17
INT WINAPI GetTimeFormatA(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCSTR lpFormat, LPSTR lpTimeStr, INT cchOut)
Definition: lcformat.c:1040
INT WINAPI GetDateFormatA(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCSTR lpFormat, LPSTR lpDateStr, INT cchOut)
Definition: lcformat.c:932
#define LOCALE_USER_DEFAULT
#define FDTF_SHORTTIME
Definition: shlwapi.h:97
#define FDTF_NOAUTOREADINGORDER
Definition: shlwapi.h:105
#define FDTF_LONGDATE
Definition: shlwapi.h:100
#define FDTF_DEFAULT
Definition: shlwapi.h:99
#define FDTF_RTLDATE
Definition: shlwapi.h:104
#define FDTF_LTRDATE
Definition: shlwapi.h:103
#define FDTF_LONGTIME
Definition: shlwapi.h:101
#define FDTF_SHORTDATE
Definition: shlwapi.h:98
strcat
Definition: string.h:92
DWORD dwHighDateTime
Definition: mapidefs.h:66
DWORD dwLowDateTime
Definition: mapidefs.h:65
#define LOCALE_USE_CP_ACP
Definition: winnls.h:20
#define TIME_NOSECONDS
Definition: winnls.h:296
#define DATE_LONGDATE
Definition: winnls.h:210
#define DATE_SHORTDATE
Definition: winnls.h:209

Referenced by START_TEST().

◆ test_SHFormatDateTimeW()

static void test_SHFormatDateTimeW ( void  )
static

Definition at line 1838 of file ordinal.c.

1839{
1841 SYSTEMTIME universalSystemTime;
1842 WCHAR buff[100], buff2[100], buff3[100], *p1, *p2;
1843 SYSTEMTIME st;
1844 DWORD flags;
1845 INT ret;
1846 static const WCHAR spaceW[] = {' ',0};
1847#define UNICODE_LTR_MARK 0x200e
1848#define UNICODE_RTL_MARK 0x200f
1849
1850if (0)
1851{
1852 /* crashes on native */
1853 pSHFormatDateTimeW(NULL, NULL, NULL, 0);
1854}
1855
1856 GetLocalTime(&st);
1857 /* SHFormatDateTime expects input as utc */
1858 TzSpecificLocalTimeToSystemTime(NULL, &st, &universalSystemTime);
1859 SystemTimeToFileTime(&universalSystemTime, &filetime);
1860
1861 /* no way to get required buffer length here */
1862 SetLastError(0xdeadbeef);
1863 ret = pSHFormatDateTimeW(&filetime, NULL, NULL, 0);
1864 ok(ret == 0, "expected 0, got %d\n", ret);
1865 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1866
1867 SetLastError(0xdeadbeef);
1868 buff[0] = 'a'; buff[1] = 0;
1869 ret = pSHFormatDateTimeW(&filetime, NULL, buff, 0);
1870 ok(ret == 0, "expected 0, got %d\n", ret);
1871 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1872 ok(buff[0] == 'a', "expected same string\n");
1873
1874 /* all combinations documented as invalid succeeded */
1876 SetLastError(0xdeadbeef);
1877 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1878 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1879 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1880 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1881
1883 SetLastError(0xdeadbeef);
1884 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1885 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1886 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1887 ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %ld\n", GetLastError());
1888
1890 SetLastError(0xdeadbeef);
1891 buff[0] = 0; /* NT4 doesn't clear the buffer on failure */
1892 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1893 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1894 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1895 ok(GetLastError() == 0xdeadbeef,
1896 "expected 0xdeadbeef, got %ld\n", GetLastError());
1897
1898 /* now check returned strings */
1900 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1901 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1902 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1903 SetLastError(0xdeadbeef);
1905 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1906 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
1907
1909 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1910 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1911 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1912 ret = GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &st, NULL, buff2, ARRAY_SIZE(buff2));
1913 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1914 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
1915
1916 /* both time flags */
1918 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1919 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1920 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1921 ret = GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &st, NULL, buff2, ARRAY_SIZE(buff2));
1922 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1923 ok(lstrcmpW(buff, buff2) == 0, "expected equal string\n");
1924
1926 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1927 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1928 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1930 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1931 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
1932
1934 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1935 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1936 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1938 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1939 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
1940
1941 /* both date flags */
1943 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1944 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1945 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1947 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1948 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
1949
1950 /* various combinations of date/time flags */
1952 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1953 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1954 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1956 ok(ret == lstrlenW(buff3)+1, "expected %d, got %d\n", lstrlenW(buff3)+1, ret);
1957 ok(lstrcmpW(buff3, buff + lstrlenW(buff) - lstrlenW(buff3)) == 0,
1958 "expected (%s), got (%s) for time part\n",
1959 wine_dbgstr_w(buff3), wine_dbgstr_w(buff + lstrlenW(buff) - lstrlenW(buff3)));
1961 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1962 p1 = buff;
1963 p2 = buff2;
1964 while (*p2 != '\0')
1965 {
1966 while (*p1 == UNICODE_LTR_MARK || *p1 == UNICODE_RTL_MARK)
1967 p1++;
1968 while (*p2 == UNICODE_LTR_MARK || *p2 == UNICODE_RTL_MARK)
1969 p2++;
1970 p1++;
1971 p2++;
1972 }
1973 *p1 = '\0';
1974 ok(lstrcmpW(buff2, buff) == 0, "expected (%s) got (%s) for date part\n",
1976
1978 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
1979 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
1980 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
1981 ret = GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &st, NULL, buff3, ARRAY_SIZE(buff3));
1982 ok(ret == lstrlenW(buff3)+1, "expected %d, got %d\n", lstrlenW(buff3)+1, ret);
1983 ok(lstrcmpW(buff3, buff + lstrlenW(buff) - lstrlenW(buff3)) == 0,
1984 "expected (%s), got (%s) for time part\n",
1985 wine_dbgstr_w(buff3), wine_dbgstr_w(buff + lstrlenW(buff) - lstrlenW(buff3)));
1987 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
1988 p1 = buff;
1989 p2 = buff2;
1990 while (*p2 != '\0')
1991 {
1992 while (*p1 == UNICODE_LTR_MARK || *p1 == UNICODE_RTL_MARK)
1993 p1++;
1994 while (*p2 == UNICODE_LTR_MARK || *p2 == UNICODE_RTL_MARK)
1995 p2++;
1996 p1++;
1997 p2++;
1998 }
1999 *p1 = '\0';
2000 ok(lstrcmpW(buff2, buff) == 0, "expected (%s) got (%s) for date part\n",
2002
2004 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
2005 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
2006 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
2008 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
2009 lstrcatW(buff2, spaceW);
2011 ok(ret == lstrlenW(buff3)+1, "expected %d, got %d\n", lstrlenW(buff3)+1, ret);
2012 lstrcatW(buff2, buff3);
2013 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
2014
2016 ret = pSHFormatDateTimeW(&filetime, &flags, buff, ARRAY_SIZE(buff));
2017 ok(ret == lstrlenW(buff)+1 || ret == lstrlenW(buff),
2018 "expected %d or %d, got %d\n", lstrlenW(buff)+1, lstrlenW(buff), ret);
2020 ok(ret == lstrlenW(buff2)+1, "expected %d, got %d\n", lstrlenW(buff2)+1, ret);
2021 lstrcatW(buff2, spaceW);
2022 ret = GetTimeFormatW(LOCALE_USER_DEFAULT, 0, &st, NULL, buff3, ARRAY_SIZE(buff3));
2023 ok(ret == lstrlenW(buff3)+1, "expected %d, got %d\n", lstrlenW(buff3)+1, ret);
2024 lstrcatW(buff2, buff3);
2025 ok(lstrcmpW(buff, buff2) == 0, "expected equal strings\n");
2026}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define lstrlenW
Definition: compat.h:750
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4246
#define wine_dbgstr_w
Definition: kernel32.h:34
INT WINAPI GetTimeFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpTimeStr, INT cchOut)
Definition: lcformat.c:1089
INT WINAPI GetDateFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpDateStr, INT cchOut)
Definition: lcformat.c:989
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
#define UNICODE_RTL_MARK
#define UNICODE_LTR_MARK
static const WCHAR spaceW[]
Definition: mxwriter.c:44
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by START_TEST().

◆ test_SHGetIniString()

static void test_SHGetIniString ( void  )
static

Definition at line 2719 of file ordinal.c.

2720{
2721 DWORD ret;
2722 WCHAR out[64] = {0};
2723
2724 static const WCHAR TestAppW[] = {'T','e','s','t','A','p','p',0};
2725 static const WCHAR AKeyW[] = {'A','K','e','y',0};
2726 static const WCHAR AnotherKeyW[] = {'A','n','o','t','h','e','r','K','e','y',0};
2727 static const WCHAR JunkKeyW[] = {'J','u','n','k','K','e','y',0};
2728 static const WCHAR testpathW[] = {'C',':','\\','t','e','s','t','.','i','n','i',0};
2729 WCHAR pathW[MAX_PATH];
2730
2731 lstrcpyW(pathW, testpathW);
2732
2733 if (!write_inifile(pathW))
2734 return;
2735
2736 if(0){
2737 /* these crash on Windows */
2738 pSHGetIniStringW(NULL, NULL, NULL, 0, NULL);
2739 pSHGetIniStringW(NULL, AKeyW, out, ARRAY_SIZE(out), pathW);
2740 pSHGetIniStringW(TestAppW, AKeyW, NULL, ARRAY_SIZE(out), pathW);
2741 }
2742
2743 ret = pSHGetIniStringW(TestAppW, AKeyW, out, 0, pathW);
2744 ok(ret == 0, "SHGetIniStringW should have given 0, instead: %ld\n", ret);
2745
2746 /* valid arguments */
2747 out[0] = 0;
2748 SetLastError(0xdeadbeef);
2749 ret = pSHGetIniStringW(TestAppW, NULL, out, ARRAY_SIZE(out), pathW);
2750 ok(ret == 4, "SHGetIniStringW should have given 4, instead: %ld\n", ret);
2751 ok(!lstrcmpW(out, AKeyW), "Expected %s, got: %s, %ld\n",
2753
2754 ret = pSHGetIniStringW(TestAppW, AKeyW, out, ARRAY_SIZE(out), pathW);
2755 ok(ret == 1, "SHGetIniStringW should have given 1, instead: %ld\n", ret);
2756 ok(!lstrcmpW(out, L"1"), "Expected L\"1\", got: %s\n", wine_dbgstr_w(out));
2757
2758 ret = pSHGetIniStringW(TestAppW, AnotherKeyW, out, ARRAY_SIZE(out), pathW);
2759 ok(ret == 4, "SHGetIniStringW should have given 4, instead: %ld\n", ret);
2760 ok(!lstrcmpW(out, L"asdf"), "Expected L\"asdf\", got: %s\n", wine_dbgstr_w(out));
2761
2762 out[0] = 1;
2763 ret = pSHGetIniStringW(TestAppW, JunkKeyW, out, ARRAY_SIZE(out), pathW);
2764 ok(ret == 0, "SHGetIniStringW should have given 0, instead: %ld\n", ret);
2765 ok(*out == 0, "Expected L\"\", got: %s\n", wine_dbgstr_w(out));
2766
2767 DeleteFileW(pathW);
2768}
#define lstrcpyW
Definition: compat.h:749
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
#define L(x)
Definition: resources.c:13
static BOOL write_inifile(LPCWSTR filename)
Definition: ordinal.c:2675
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

Referenced by START_TEST().

◆ test_SHGetObjectCompatFlags()

static void test_SHGetObjectCompatFlags ( void  )
static

Definition at line 2028 of file ordinal.c.

2029{
2030 struct compat_value {
2031 CHAR nameA[30];
2032 DWORD value;
2033 };
2034
2035 struct compat_value values[] = {
2036 { "OTNEEDSSFCACHE", 0x1 },
2037 { "NO_WEBVIEW", 0x2 },
2038 { "UNBINDABLE", 0x4 },
2039 { "PINDLL", 0x8 },
2040 { "NEEDSFILESYSANCESTOR", 0x10 },
2041 { "NOTAFILESYSTEM", 0x20 },
2042 { "CTXMENU_NOVERBS", 0x40 },
2043 { "CTXMENU_LIMITEDQI", 0x80 },
2044 { "COCREATESHELLFOLDERONLY", 0x100 },
2045 { "NEEDSSTORAGEANCESTOR", 0x200 },
2046 { "NOLEGACYWEBVIEW", 0x400 },
2047 { "CTXMENU_XPQCMFLAGS", 0x1000 },
2048 { "NOIPROPERTYSTORE", 0x2000 }
2049 };
2050
2051 static const char compat_path[] = "Software\\Microsoft\\Windows\\CurrentVersion\\ShellCompatibility\\Objects";
2052 CHAR keyA[39]; /* {CLSID} */
2053 HKEY root;
2054 DWORD ret;
2055 int i;
2056
2057 /* null args */
2058 ret = pSHGetObjectCompatFlags(NULL, NULL);
2059 ok(ret == 0, "got %ld\n", ret);
2060
2061 ret = RegOpenKeyA(HKEY_LOCAL_MACHINE, compat_path, &root);
2062 if (ret != ERROR_SUCCESS)
2063 {
2064 skip("No compatibility class data found\n");
2065 return;
2066 }
2067
2068 for (i = 0; RegEnumKeyA(root, i, keyA, sizeof(keyA)) == ERROR_SUCCESS; i++)
2069 {
2070 HKEY clsid_key;
2071
2072 if (RegOpenKeyA(root, keyA, &clsid_key) == ERROR_SUCCESS)
2073 {
2074 CHAR valueA[30];
2075 DWORD expected = 0, got, length = sizeof(valueA);
2076 CLSID clsid;
2077 int v;
2078
2079 for (v = 0; RegEnumValueA(clsid_key, v, valueA, &length, NULL, NULL, NULL, NULL) == ERROR_SUCCESS; v++)
2080 {
2081 int j;
2082
2083 for (j = 0; j < ARRAY_SIZE(values); j++)
2084 if (lstrcmpA(values[j].nameA, valueA) == 0)
2085 {
2086 expected |= values[j].value;
2087 break;
2088 }
2089
2090 length = sizeof(valueA);
2091 }
2092
2093 pGUIDFromStringA(keyA, &clsid);
2094 got = pSHGetObjectCompatFlags(NULL, &clsid);
2095 ok(got == expected, "got 0x%08lx, expected 0x%08lx. Key %s\n", got, expected, keyA);
2096
2097 RegCloseKey(clsid_key);
2098 }
2099 }
2100
2102}
struct _root root
LONG WINAPI RegEnumValueA(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpdwReserved, _Out_opt_ LPDWORD lpdwType, _Out_opt_ LPBYTE lpData, _Inout_opt_ LPDWORD lpcbData)
Definition: reg.c:2668
LONG WINAPI RegEnumKeyA(HKEY hKey, DWORD dwIndex, LPSTR lpName, DWORD cbName)
Definition: reg.c:2368
const GLdouble * v
Definition: gl.h:2040
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:5666
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
Definition: pdh_main.c:96
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by START_TEST().

◆ test_SHGetShellKey()

static void test_SHGetShellKey ( void  )
static

Definition at line 2820 of file ordinal.c.

2821{
2822 static const WCHAR ShellFoldersW[] = { 'S','h','e','l','l',' ','F','o','l','d','e','r','s',0 };
2823 static const WCHAR WineTestW[] = { 'W','i','n','e','T','e','s','t',0 };
2824
2825 DWORD *alloc_data, data, size;
2826 HKEY hkey;
2827 HRESULT hres;
2828
2829 /* Vista+ limits SHKEY enumeration values */
2830 SetLastError(0xdeadbeef);
2831 hkey = pSHGetShellKey(SHKEY_Key_Explorer, ShellFoldersW, FALSE);
2832 if (hkey)
2833 {
2834 /* Tests not working on Vista+ */
2835 RegCloseKey(hkey);
2836
2837 hkey = pSHGetShellKey(SHKEY_Root_HKLM|SHKEY_Key_Classes, NULL, FALSE);
2838 ok(hkey != NULL, "hkey = NULL\n");
2839 RegCloseKey(hkey);
2840 }
2841
2842 hkey = pSHGetShellKey(SHKEY_Root_HKCU|SHKEY_Key_Explorer, ShellFoldersW, FALSE);
2843 ok(hkey != NULL, "hkey = NULL\n");
2844 RegCloseKey(hkey);
2845
2846 hkey = pSHGetShellKey(SHKEY_Root_HKLM|SHKEY_Key_Explorer, ShellFoldersW, FALSE);
2847 ok(hkey != NULL, "hkey = NULL\n");
2848 RegCloseKey(hkey);
2849
2850 hkey = pSHGetShellKey(SHKEY_Root_HKLM, WineTestW, FALSE);
2851 ok(hkey == NULL, "hkey != NULL\n");
2852
2853 hkey = pSHGetShellKey(SHKEY_Root_HKLM, NULL, FALSE);
2854 ok(hkey != NULL, "Can't open key\n");
2855 ok(SUCCEEDED(RegDeleteKeyW(hkey, WineTestW)), "Can't delete key\n");
2856 RegCloseKey(hkey);
2857
2858 hkey = pSHGetShellKey(SHKEY_Root_HKLM, WineTestW, TRUE);
2859 if (!hkey && GetLastError() == ERROR_ACCESS_DENIED)
2860 {
2861 skip("Not authorized to create keys\n");
2862 return;
2863 }
2864 ok(hkey != NULL, "Can't create key\n");
2865 RegCloseKey(hkey);
2866
2867 size = sizeof(data);
2868 hres = pSKGetValueW(SHKEY_Root_HKLM, WineTestW, NULL, NULL, &data, &size);
2869 ok(hres == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "hres = %lx\n", hres);
2870
2871 data = 1234;
2872 hres = pSKSetValueW(SHKEY_Root_HKLM, WineTestW, NULL, REG_DWORD, &data, sizeof(DWORD));
2873 ok(hres == S_OK, "hres = %lx\n", hres);
2874
2875 size = 1;
2876 hres = pSKGetValueW(SHKEY_Root_HKLM, WineTestW, NULL, NULL, NULL, &size);
2877 ok(hres == S_OK, "hres = %lx\n", hres);
2878 ok(size == sizeof(DWORD), "size = %ld\n", size);
2879
2880 data = 0xdeadbeef;
2881 hres = pSKGetValueW(SHKEY_Root_HKLM, WineTestW, NULL, NULL, &data, &size);
2882 ok(hres == S_OK, "hres = %lx\n", hres);
2883 ok(size == sizeof(DWORD), "size = %ld\n", size);
2884 ok(data == 1234, "data = %ld\n", data);
2885
2886 hres = pSKAllocValueW(SHKEY_Root_HKLM, WineTestW, NULL, NULL, (void**)&alloc_data, &size);
2887 ok(hres == S_OK, "hres= %lx\n", hres);
2888 ok(size == sizeof(DWORD), "size = %ld\n", size);
2889 if (SUCCEEDED(hres))
2890 {
2891 ok(*alloc_data == 1234, "*alloc_data = %ld\n", *alloc_data);
2892 LocalFree(alloc_data);
2893 }
2894
2895 hres = pSKDeleteValueW(SHKEY_Root_HKLM, WineTestW, NULL);
2896 ok(hres == S_OK, "hres = %lx\n", hres);
2897
2898 hres = pSKDeleteValueW(SHKEY_Root_HKLM, WineTestW, NULL);
2899 ok(hres == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "hres = %lx\n", hres);
2900
2901 hres = pSKGetValueW(SHKEY_Root_HKLM, WineTestW, NULL, NULL, &data, &size);
2902 ok(hres == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), "hres = %lx\n", hres);
2903
2904 hkey = pSHGetShellKey(SHKEY_Root_HKLM, NULL, FALSE);
2905 ok(hkey != NULL, "Can't create key\n");
2906 ok(SUCCEEDED(RegDeleteKeyW(hkey, WineTestW)), "Can't delete key\n");
2907 RegCloseKey(hkey);
2908}
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
Definition: reg.c:1239
#define ERROR_ACCESS_DENIED
Definition: compat.h:97
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
HRESULT hres
Definition: protocol.c:465
#define REG_DWORD
Definition: sdbapi.c:615
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

Referenced by START_TEST().

◆ test_SHIShellFolder_EnumObjects()

static void test_SHIShellFolder_EnumObjects ( void  )
static

Definition at line 2639 of file ordinal.c.

2640{
2641 IEnumIDList *enm;
2642 HRESULT hres;
2644
2645 if(!pSHIShellFolder_EnumObjects){ /* win7 and later */
2646 win_skip("SHIShellFolder_EnumObjects not available\n");
2647 return;
2648 }
2649
2650 if(0){
2651 /* NULL object crashes on Windows */
2652 pSHIShellFolder_EnumObjects(NULL, NULL, 0, NULL);
2653 }
2654
2655 /* SHIShellFolder_EnumObjects doesn't QI the object for IShellFolder */
2656 enm = (IEnumIDList*)0xdeadbeef;
2657 hres = pSHIShellFolder_EnumObjects(&ShellFolder, NULL, 0, &enm);
2658 ok(hres == S_OK, "SHIShellFolder_EnumObjects failed: 0x%08lx\n", hres);
2659 ok(enm == (IEnumIDList*)0xcafebabe, "Didn't get expected enumerator location, instead: %p\n", enm);
2660
2661 /* SHIShellFolder_EnumObjects isn't strict about the IShellFolder object */
2663 ok(hres == S_OK, "SHGetDesktopFolder failed: 0x%08lx\n", hres);
2664
2665 enm = NULL;
2666 hres = pSHIShellFolder_EnumObjects(folder, NULL, 0, &enm);
2667 ok(hres == S_OK, "SHIShellFolder_EnumObjects failed: 0x%08lx\n", hres);
2668 ok(enm != NULL, "Didn't get an enumerator\n");
2669 if(enm)
2670 IEnumIDList_Release(enm);
2671
2672 IShellFolder_Release(folder);
2673}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
IShellFolder smart pointer.
Definition: shellclasses.h:594
Definition: fci.c:116

Referenced by START_TEST().

◆ test_SHPackDispParams()

static void test_SHPackDispParams ( void  )
static

Definition at line 776 of file ordinal.c.

777{
779 VARIANT vars[10];
781
782 memset(&params, 0xc0, sizeof(params));
783 memset(vars, 0xc0, sizeof(vars));
784 hres = pSHPackDispParams(&params, vars, 1, VT_I4, 0xdeadbeef);
785 ok(hres == S_OK, "SHPackDispParams failed: %08lx\n", hres);
786 ok(params.cArgs == 1, "params.cArgs = %d\n", params.cArgs);
787 ok(params.cNamedArgs == 0, "params.cNamedArgs = %d\n", params.cArgs);
788 ok(params.rgdispidNamedArgs == NULL, "params.rgdispidNamedArgs = %p\n", params.rgdispidNamedArgs);
789 ok(params.rgvarg == vars, "params.rgvarg = %p\n", params.rgvarg);
790 ok(V_VT(vars) == VT_I4, "V_VT(var) = %d\n", V_VT(vars));
791 ok(V_I4(vars) == 0xdeadbeef, "failed %lx\n", V_I4(vars));
792
793 memset(&params, 0xc0, sizeof(params));
794 hres = pSHPackDispParams(&params, NULL, 0, 0);
795 ok(hres == S_OK, "SHPackDispParams failed: %08lx\n", hres);
796 ok(params.cArgs == 0, "params.cArgs = %d\n", params.cArgs);
797 ok(params.cNamedArgs == 0, "params.cNamedArgs = %d\n", params.cArgs);
798 ok(params.rgdispidNamedArgs == NULL, "params.rgdispidNamedArgs = %p\n", params.rgdispidNamedArgs);
799 ok(params.rgvarg == NULL, "params.rgvarg = %p\n", params.rgvarg);
800
801 memset(vars, 0xc0, sizeof(vars));
802 memset(&params, 0xc0, sizeof(params));
803 hres = pSHPackDispParams(&params, vars, 4, VT_BSTR, (void*)0xdeadbeef, VT_EMPTY, 10,
804 VT_I4, 100, VT_DISPATCH, (void*)0xdeadbeef);
805 ok(hres == S_OK, "SHPackDispParams failed: %08lx\n", hres);
806 ok(params.cArgs == 4, "params.cArgs = %d\n", params.cArgs);
807 ok(params.cNamedArgs == 0, "params.cNamedArgs = %d\n", params.cArgs);
808 ok(params.rgdispidNamedArgs == NULL, "params.rgdispidNamedArgs = %p\n", params.rgdispidNamedArgs);
809 ok(params.rgvarg == vars, "params.rgvarg = %p\n", params.rgvarg);
810 ok(V_VT(vars) == VT_DISPATCH, "V_VT(vars[0]) = %x\n", V_VT(vars));
811 ok(V_I4(vars) == 0xdeadbeef, "V_I4(vars[0]) = %lx\n", V_I4(vars));
812 ok(V_VT(vars+1) == VT_I4, "V_VT(vars[1]) = %d\n", V_VT(vars+1));
813 ok(V_I4(vars+1) == 100, "V_I4(vars[1]) = %lx\n", V_I4(vars+1));
814 ok(V_VT(vars+2) == VT_I4, "V_VT(vars[2]) = %d\n", V_VT(vars+2));
815 ok(V_I4(vars+2) == 10, "V_I4(vars[2]) = %lx\n", V_I4(vars+2));
816 ok(V_VT(vars+3) == VT_BSTR, "V_VT(vars[3]) = %d\n", V_VT(vars+3));
817 ok(V_BSTR(vars+3) == (void*)0xdeadbeef, "V_BSTR(vars[3]) = %p\n", V_BSTR(vars+3));
818}
@ VT_EMPTY
Definition: compat.h:2295
@ VT_DISPATCH
Definition: compat.h:2304

Referenced by START_TEST().

◆ test_SHPropertyBag_ReadLONG()

static void test_SHPropertyBag_ReadLONG ( void  )
static

Definition at line 1575 of file ordinal.c.

1576{
1577 PropBag *pb;
1578 HRESULT rc;
1579 LONG out;
1580 static const WCHAR szName1[] = {'n','a','m','e','1',0};
1581
1582 pb = HeapAlloc(GetProcessHeap(),0,sizeof(PropBag));
1583 pb->refCount = 1;
1584 pb->IPropertyBag_iface.lpVtbl = &prop_vtbl;
1585
1586 out = 0xfeedface;
1587 rc = pSHPropertyBag_ReadLONG(NULL, szName1, &out);
1588 ok(rc == E_INVALIDARG || broken(rc == S_OK), "incorrect return %lx\n",rc);
1589 ok(out == 0xfeedface, "value should not have changed\n");
1590 rc = pSHPropertyBag_ReadLONG(&pb->IPropertyBag_iface, NULL, &out);
1591 ok(rc == E_INVALIDARG || broken(rc == S_OK) || broken(rc == S_FALSE), "incorrect return %lx\n",rc);
1592 ok(out == 0xfeedface, "value should not have changed\n");
1593 rc = pSHPropertyBag_ReadLONG(&pb->IPropertyBag_iface, szName1, NULL);
1594 ok(rc == E_INVALIDARG || broken(rc == S_OK) || broken(rc == S_FALSE), "incorrect return %lx\n",rc);
1595 rc = pSHPropertyBag_ReadLONG(&pb->IPropertyBag_iface, szName1, &out);
1596 ok(rc == DISP_E_BADVARTYPE || broken(rc == S_OK) || broken(rc == S_FALSE), "incorrect return %lx\n",rc);
1597 ok(out == 0xfeedface || broken(out == 0xfeedfa00), "value should not have changed %lx\n",out);
1598 IPropertyBag_Release(&pb->IPropertyBag_iface);
1599}
static const IPropertyBagVtbl prop_vtbl
Definition: ordinal.c:1566
IPropertyBag IPropertyBag_iface
Definition: ordinal.c:1494
#define S_FALSE
Definition: winerror.h:3451
#define DISP_E_BADVARTYPE
Definition: winerror.h:3620

Referenced by START_TEST().

◆ test_SHSearchMapInt()

static void test_SHSearchMapInt ( void  )
static

Definition at line 404 of file ordinal.c.

405{
406 int keys[8], values[8];
407 int i = 0;
408
409 if (!pSHSearchMapInt)
410 return;
411
412 memset(keys, 0, sizeof(keys));
413 memset(values, 0, sizeof(values));
414 keys[0] = 99; values[0] = 101;
415
416 /* NULL key/value lists crash native, so skip testing them */
417
418 /* 1 element */
419 i = pSHSearchMapInt(keys, values, 1, keys[0]);
420 ok(i == values[0], "Len 1, expected %d, got %d\n", values[0], i);
421
422 /* Key doesn't exist */
423 i = pSHSearchMapInt(keys, values, 1, 100);
424 ok(i == -1, "Len 1 - bad key, expected -1, got %d\n", i);
425
426 /* Len = 0 => not found */
427 i = pSHSearchMapInt(keys, values, 0, keys[0]);
428 ok(i == -1, "Len 1 - passed len 0, expected -1, got %d\n", i);
429
430 /* 2 elements, len = 1 */
431 keys[1] = 98; values[1] = 102;
432 i = pSHSearchMapInt(keys, values, 1, keys[1]);
433 ok(i == -1, "Len 1 - array len 2, expected -1, got %d\n", i);
434
435 /* 2 elements, len = 2 */
436 i = pSHSearchMapInt(keys, values, 2, keys[1]);
437 ok(i == values[1], "Len 2, expected %d, got %d\n", values[1], i);
438
439 /* Searches forward */
440 keys[2] = 99; values[2] = 103;
441 i = pSHSearchMapInt(keys, values, 3, keys[0]);
442 ok(i == values[0], "Len 3, expected %d, got %d\n", values[0], i);
443}
const UINT * keys
Definition: locale.c:416

Referenced by START_TEST().

◆ test_SHSetIniString()

static void test_SHSetIniString ( void  )
static

Definition at line 2770 of file ordinal.c.

2771{
2772 BOOL ret;
2773
2774 static const WCHAR TestAppW[] = {'T','e','s','t','A','p','p',0};
2775 static const WCHAR AnotherAppW[] = {'A','n','o','t','h','e','r','A','p','p',0};
2776 static const WCHAR TestIniW[] = {'C',':','\\','t','e','s','t','.','i','n','i',0};
2777 static const WCHAR AKeyW[] = {'A','K','e','y',0};
2778 static const WCHAR NewKeyW[] = {'N','e','w','K','e','y',0};
2779 static const WCHAR AValueW[] = {'A','V','a','l','u','e',0};
2780
2781 if (!write_inifile(TestIniW))
2782 return;
2783
2784 ret = pSHSetIniStringW(TestAppW, AKeyW, AValueW, TestIniW);
2785 ok(ret == TRUE, "SHSetIniStringW should not have failed\n");
2786 todo_wine /* wine sticks an extra \r\n at the end of the file */
2787 verify_inifile(TestIniW, "[TestApp]\r\nAKey=AValue\r\nAnotherKey=asdf\r\n");
2788
2789 ret = pSHSetIniStringW(TestAppW, AKeyW, NULL, TestIniW);
2790 ok(ret == TRUE, "SHSetIniStringW should not have failed\n");
2791 verify_inifile(TestIniW, "[TestApp]\r\nAnotherKey=asdf\r\n");
2792
2793 ret = pSHSetIniStringW(AnotherAppW, NewKeyW, AValueW, TestIniW);
2794 ok(ret == TRUE, "SHSetIniStringW should not have failed\n");
2795 verify_inifile(TestIniW, "[TestApp]\r\nAnotherKey=asdf\r\n[AnotherApp]\r\nNewKey=AValue\r\n");
2796
2797 ret = pSHSetIniStringW(TestAppW, NULL, AValueW, TestIniW);
2798 ok(ret == TRUE, "SHSetIniStringW should not have failed\n");
2799 verify_inifile(TestIniW, "[AnotherApp]\r\nNewKey=AValue\r\n");
2800
2801 DeleteFileW(TestIniW);
2802}
#define todo_wine
Definition: minitest.h:80
#define verify_inifile(f, e)
Definition: ordinal.c:2698

Referenced by START_TEST().

◆ test_SHSetParentHwnd()

static void test_SHSetParentHwnd ( void  )
static

Definition at line 2949 of file ordinal.c.

2950{
2951 HWND hwnd, hwnd2, ret;
2952 DWORD style;
2953
2954 hwnd = CreateWindowA("Button", "", WS_VISIBLE, 0, 0, 10, 10, NULL, NULL, NULL, NULL);
2955 ok(hwnd != NULL, "got %p\n", hwnd);
2956
2957 hwnd2 = CreateWindowA("Button", "", WS_VISIBLE | WS_CHILD, 0, 0, 10, 10, hwnd, NULL, NULL, NULL);
2958 ok(hwnd2 != NULL, "got %p\n", hwnd2);
2959
2960 /* null params */
2961 ret = pSHSetParentHwnd(NULL, NULL);
2962 ok(ret == NULL, "got %p\n", ret);
2963
2964 /* set to no parent while already no parent present */
2965 ret = GetParent(hwnd);
2966 ok(ret == NULL, "got %p\n", ret);
2968 ok((style & (WS_POPUP|WS_CHILD)) == 0, "got style 0x%08lx\n", style);
2969 ret = pSHSetParentHwnd(hwnd, NULL);
2970 ok(ret == NULL, "got %p\n", ret);
2972 ok((style & (WS_POPUP|WS_CHILD)) == 0, "got style 0x%08lx\n", style);
2973
2974 /* reset to null parent from not null */
2975 ret = GetParent(hwnd2);
2976 ok(ret == hwnd, "got %p\n", ret);
2977 style = GetWindowLongA(hwnd2, GWL_STYLE);
2978 ok((style & (WS_POPUP|WS_CHILD)) == WS_CHILD, "got style 0x%08lx\n", style);
2979 ret = pSHSetParentHwnd(hwnd2, NULL);
2980 ok(ret == NULL, "got %p\n", ret);
2981 style = GetWindowLongA(hwnd2, GWL_STYLE);
2982 ok((style & (WS_POPUP|WS_CHILD)) == WS_POPUP, "got style 0x%08lx\n", style);
2983 ret = GetParent(hwnd2);
2984 ok(ret == NULL, "got %p\n", ret);
2985
2986 /* set parent back */
2987 style = GetWindowLongA(hwnd2, GWL_STYLE);
2989 style = GetWindowLongA(hwnd2, GWL_STYLE);
2990 ok((style & (WS_CHILD|WS_POPUP)) == 0, "got 0x%08lx\n", style);
2991
2992 ret = pSHSetParentHwnd(hwnd2, hwnd);
2993 todo_wine ok(ret == NULL, "got %p\n", ret);
2994
2995 style = GetWindowLongA(hwnd2, GWL_STYLE);
2996 ok((style & (WS_POPUP|WS_CHILD)) == WS_CHILD, "got style 0x%08lx\n", style);
2997 ret = GetParent(hwnd2);
2998 ok(ret == hwnd, "got %p\n", ret);
2999
3000 /* try to set same parent again */
3001 /* with WS_POPUP */
3002 style = GetWindowLongA(hwnd2, GWL_STYLE);
3004 ret = pSHSetParentHwnd(hwnd2, hwnd);
3005 todo_wine ok(ret == NULL, "got %p\n", ret);
3006 style = GetWindowLongA(hwnd2, GWL_STYLE);
3007 ok((style & (WS_CHILD|WS_POPUP)) == WS_CHILD, "got 0x%08lx\n", style);
3008 ret = GetParent(hwnd2);
3009 ok(ret == hwnd, "got %p\n", ret);
3010
3011 /* without WS_POPUP */
3012 style = GetWindowLongA(hwnd2, GWL_STYLE);
3014 ret = pSHSetParentHwnd(hwnd2, hwnd);
3015 todo_wine ok(ret == hwnd, "got %p\n", ret);
3016 style = GetWindowLongA(hwnd2, GWL_STYLE);
3017 ok((style & (WS_CHILD|WS_POPUP)) == WS_CHILD, "got 0x%08lx\n", style);
3018 ret = GetParent(hwnd2);
3019 ok(ret == hwnd, "got %p\n", ret);
3020
3022 DestroyWindow(hwnd2);
3023}
Arabic default style
Definition: afstyles.h:94
#define WS_CHILD
Definition: pedump.c:617
#define WS_POPUP
Definition: pedump.c:616
#define WS_VISIBLE
Definition: pedump.c:620
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4417
LONG WINAPI SetWindowLongA(_In_ HWND, _In_ int, _In_ LONG)
HWND WINAPI GetParent(_In_ HWND)
#define GWL_STYLE
Definition: winuser.h:863

Referenced by START_TEST().

◆ test_SHSetWindowBits()

static void test_SHSetWindowBits ( void  )
static

Definition at line 1601 of file ordinal.c.

1602{
1603 HWND hwnd;
1604 DWORD style, styleold;
1605 WNDCLASSA clsA;
1606
1607 clsA.style = 0;
1609 clsA.cbClsExtra = 0;
1610 clsA.cbWndExtra = 0;
1612 clsA.hIcon = 0;
1613 clsA.hCursor = LoadCursorA(0, (LPSTR)IDC_ARROW);
1614 clsA.hbrBackground = NULL;
1615 clsA.lpszMenuName = NULL;
1616 clsA.lpszClassName = "Shlwapi test class";
1617 RegisterClassA(&clsA);
1618
1619 hwnd = CreateWindowA("Shlwapi test class", "Test", WS_VISIBLE, 0, 0, 100, 100,
1621 ok(IsWindow(hwnd), "failed to create window\n");
1622
1623 /* null window */
1624 SetLastError(0xdeadbeef);
1625 style = pSHSetWindowBits(NULL, GWL_STYLE, 0, 0);
1626 ok(style == 0, "expected 0 retval, got %ld\n", style);
1628 "expected ERROR_INVALID_WINDOW_HANDLE, got %ld\n", GetLastError());
1629
1630 /* zero mask, zero flags */
1631 styleold = GetWindowLongA(hwnd, GWL_STYLE);
1632 style = pSHSetWindowBits(hwnd, GWL_STYLE, 0, 0);
1633 ok(styleold == style, "expected old style\n");
1634 ok(styleold == GetWindowLongA(hwnd, GWL_STYLE), "expected to keep old style\n");
1635
1636 /* test mask */
1637 styleold = GetWindowLongA(hwnd, GWL_STYLE);
1638 ok(styleold & WS_VISIBLE, "expected WS_VISIBLE\n");
1639 style = pSHSetWindowBits(hwnd, GWL_STYLE, WS_VISIBLE, 0);
1640
1641 ok(style == styleold, "expected previous style, got %lx\n", style);
1642 ok((GetWindowLongA(hwnd, GWL_STYLE) & WS_VISIBLE) == 0, "expected updated style\n");
1643
1644 /* test mask, unset style bit used */
1645 styleold = GetWindowLongA(hwnd, GWL_STYLE);
1646 style = pSHSetWindowBits(hwnd, GWL_STYLE, WS_VISIBLE, 0);
1647 ok(style == styleold, "expected previous style, got %lx\n", style);
1648 ok(styleold == GetWindowLongA(hwnd, GWL_STYLE), "expected to keep old style\n");
1649
1650 /* set back with flags */
1651 styleold = GetWindowLongA(hwnd, GWL_STYLE);
1652 style = pSHSetWindowBits(hwnd, GWL_STYLE, WS_VISIBLE, WS_VISIBLE);
1653 ok(style == styleold, "expected previous style, got %lx\n", style);
1654 ok(GetWindowLongA(hwnd, GWL_STYLE) & WS_VISIBLE, "expected updated style\n");
1655
1656 /* reset and try to set without a mask */
1657 pSHSetWindowBits(hwnd, GWL_STYLE, WS_VISIBLE, 0);
1658 ok((GetWindowLongA(hwnd, GWL_STYLE) & WS_VISIBLE) == 0, "expected updated style\n");
1659 styleold = GetWindowLongA(hwnd, GWL_STYLE);
1660 style = pSHSetWindowBits(hwnd, GWL_STYLE, 0, WS_VISIBLE);
1661 ok(style == styleold, "expected previous style, got %lx\n", style);
1662 ok((GetWindowLongA(hwnd, GWL_STYLE) & WS_VISIBLE) == 0, "expected updated style\n");
1663
1665
1666 UnregisterClassA("Shlwapi test class", GetModuleHandleA(NULL));
1667}
HBRUSH hbrBackground
Definition: winuser.h:3272
HICON hIcon
Definition: winuser.h:3270
HINSTANCE hInstance
Definition: winuser.h:3269
HCURSOR hCursor
Definition: winuser.h:3271
LPCSTR lpszClassName
Definition: winuser.h:3274
WNDPROC lpfnWndProc
Definition: winuser.h:3266
#define ERROR_INVALID_WINDOW_HANDLE
Definition: winerror.h:1226
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define IDC_ARROW
Definition: winuser.h:695
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2442

Referenced by START_TEST().

◆ testpersist_AddRef()

static ULONG WINAPI testpersist_AddRef ( IPersist iface)
static

Definition at line 3049 of file ordinal.c.

3050{
3051 return 2;
3052}

◆ testpersist_GetClassID()

static HRESULT WINAPI testpersist_GetClassID ( IPersist iface,
CLSID clsid 
)
static

Definition at line 3059 of file ordinal.c.

3060{
3061 memset(clsid, 0xab, sizeof(*clsid));
3062 return 0x8fff2222;
3063}

◆ testpersist_QI()

static HRESULT WINAPI testpersist_QI ( IPersist iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 3025 of file ordinal.c.

3026{
3028 *obj = iface;
3029 IPersist_AddRef(iface);
3030 return S_OK;
3031 }
3032
3033 *obj = NULL;
3034 return E_NOINTERFACE;
3035}
const GUID IID_IPersist
Definition: proxy.cpp:14

◆ testpersist_QI2()

static HRESULT WINAPI testpersist_QI2 ( IPersist iface,
REFIID  riid,
void **  obj 
)
static

Definition at line 3037 of file ordinal.c.

3038{
3039 if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IPersistFolder)) {
3040 *obj = iface;
3041 IPersist_AddRef(iface);
3042 return S_OK;
3043 }
3044
3045 *obj = NULL;
3046 return E_NOINTERFACE;
3047}

◆ testpersist_Release()

static ULONG WINAPI testpersist_Release ( IPersist iface)
static

Definition at line 3054 of file ordinal.c.

3055{
3056 return 1;
3057}

◆ write_inifile()

static BOOL write_inifile ( LPCWSTR  filename)
static

Definition at line 2675 of file ordinal.c.

2676{
2677 DWORD written;
2678 HANDLE file;
2679
2680 static const char data[] =
2681 "[TestApp]\r\n"
2682 "AKey=1\r\n"
2683 "AnotherKey=asdf\r\n";
2684
2686 if(file == INVALID_HANDLE_VALUE) {
2687 win_skip("failed to create ini file at %s\n", wine_dbgstr_w(filename));
2688 return FALSE;
2689 }
2690
2691 WriteFile(file, data, sizeof(data), &written, NULL);
2692
2694
2695 return TRUE;
2696}
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
#define CREATE_ALWAYS
Definition: disk.h:72

Referenced by test_SHGetIniString(), and test_SHSetIniString().

Variable Documentation

◆ acceptlanguage

const CHAR acceptlanguage[]
static
Initial value:
= {
'A','c','c','e','p','t','L','a','n','g','u','a','g','e',0}

Definition at line 95 of file ordinal.c.

Referenced by test_GetAcceptLanguagesA().

◆ BOOL

Definition at line 51 of file ordinal.c.

Referenced by test_fdsa().

◆ contain_vtbl

const IConnectionPointContainerVtbl contain_vtbl
static
Initial value:
= {
}
static ULONG WINAPI Contain_AddRef(IConnectionPointContainer *This)
Definition: ordinal.c:1352
static HRESULT WINAPI Contain_QueryInterface(IConnectionPointContainer *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:1330
static HRESULT WINAPI Contain_FindConnectionPoint(IConnectionPointContainer *This, REFIID riid, IConnectionPoint **ppCP)
Definition: ordinal.c:1396
static ULONG WINAPI Contain_Release(IConnectionPointContainer *This)
Definition: ordinal.c:1359
static HRESULT WINAPI Contain_EnumConnectionPoints(IConnectionPointContainer *This, IEnumConnectionPoints **ppEnum)
Definition: ordinal.c:1380

Definition at line 1432 of file ordinal.c.

Referenced by test_IConnectionPoint().

◆ disp_vtbl

const IDispatchVtbl disp_vtbl
static
Initial value:
= {
}
static HRESULT WINAPI Disp_GetTypeInfoCount(IDispatch *This, UINT *pctinfo)
Definition: ordinal.c:929
static ULONG WINAPI Disp_Release(IDispatch *This)
Definition: ordinal.c:918
static HRESULT WINAPI Disp_Invoke(IDispatch *This, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: ordinal.c:956
static HRESULT WINAPI Disp_GetIDsOfNames(IDispatch *This, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: ordinal.c:945
static HRESULT WINAPI Disp_QueryInterface(IDispatch *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:890
static HRESULT WINAPI Disp_GetTypeInfo(IDispatch *This, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: ordinal.c:936
static ULONG WINAPI Disp_AddRef(IDispatch *This)
Definition: ordinal.c:912

Definition at line 995 of file ordinal.c.

Referenced by test_IConnectionPoint().

◆ DISPID

static VARIANTARG static DISPPARAMS *static DISPID

Definition at line 49 of file ordinal.c.

Referenced by _get_disp_id(), _set_dispex_value(), _test_border_styles(), Array_unshift(), bind_activex_event(), call_event_handlers(), call_script(), disp_call(), disp_call_value(), disp_delete_name(), disp_propput(), dispex_propput(), do_mcall(), exec_source(), get_attr_dispid_by_idx(), get_dispid(), get_dispids(), get_plugin_dispid(), Global_InvokeEx(), HTMLAttributeCollection2_getNamedItem(), HTMLAttributeCollection3_item(), HTMLAttributeCollection_item(), HTMLDOMAttribute_put_nodeValue(), HTMLElement_getAttribute(), HTMLElement_populate_props(), HTMLElement_removeAttribute(), HTMLElement_setAttribute(), HTMLStyle_getAttribute(), HTMLStyle_removeAttribute(), HTMLStyle_setAttribute(), HTMLWindow_invoke(), id_cmp(), identifier_eval(), Installer_UILevelPut(), interp_array(), interp_assign_member(), interp_forin(), interp_identifier_ref(), interp_in(), interp_member(), interp_memberid(), interp_set_member(), invoke(), invoke_disp_value(), ITypeInfo_fnInvoke(), jsdisp_define_properties(), load_doc(), lookup_global_members(), lookup_identifier(), Object_hasOwnProperty(), Record_IntegerDataPut(), Record_StringDataPut(), run_script(), search_window_props(), Session_FeatureRequestStatePut(), Session_ModePut(), Session_PropertyPut(), stack_topn_exprval(), stringify(), stringify_object(), SummaryInfo_PropertyPut(), test_attr_collection_disp(), test_callbacks(), test_child_col_disp(), test_disp(), test_dispatch(), test_dispex(), test_dispid(), test_domobj_dispex(), test_dynamic_properties(), test_elem_dispex(), test_elems(), test_eval(), test_func(), test_global_id(), test_invoke_func(), test_invokeex(), test_IWinHttpRequest_Invoke(), test_locator(), test_names_ids(), test_nextdispid(), test_obj_dispex(), test_ParseDisplayName(), test_saxreader_dispex(), test_script_dispatch(), test_script_run(), test_scriptdisp(), test_selection(), test_TypeInfo(), test_typelibmarshal(), testObj_GetDispID(), to_primitive(), and to_property_descriptor().

◆ DWORD

Definition at line 43 of file ordinal.c.

◆ enum_vtbl

const IEnumConnectionsVtbl enum_vtbl
static
Initial value:
= {
}
static HRESULT WINAPI Enum_Next(IEnumConnections *This, ULONG cConnections, LPCONNECTDATA rgcd, ULONG *pcFetched)
Definition: ordinal.c:1045
static HRESULT WINAPI Enum_QueryInterface(IEnumConnections *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:1006
static ULONG WINAPI Enum_Release(IEnumConnections *This)
Definition: ordinal.c:1034
static HRESULT WINAPI Enum_Clone(IEnumConnections *This, IEnumConnections **ppEnum)
Definition: ordinal.c:1080
static ULONG WINAPI Enum_AddRef(IEnumConnections *This)
Definition: ordinal.c:1028
static HRESULT WINAPI Enum_Reset(IEnumConnections *This)
Definition: ordinal.c:1074
static HRESULT WINAPI Enum_Skip(IEnumConnections *This, ULONG cConnections)
Definition: ordinal.c:1067

Definition at line 1087 of file ordinal.c.

Referenced by ConPt_EnumConnections().

◆ enumpt_vtbl

const IEnumConnectionPointsVtbl enumpt_vtbl
static
Initial value:
= {
}
static ULONG WINAPI EnumPt_Release(IEnumConnectionPoints *This)
Definition: ordinal.c:1267
static ULONG WINAPI EnumPt_AddRef(IEnumConnectionPoints *This)
Definition: ordinal.c:1261
static HRESULT WINAPI EnumPt_Skip(IEnumConnectionPoints *This, ULONG cConnections)
Definition: ordinal.c:1299
static HRESULT WINAPI EnumPt_Reset(IEnumConnectionPoints *This)
Definition: ordinal.c:1306
static HRESULT WINAPI EnumPt_Clone(IEnumConnectionPoints *This, IEnumConnectionPoints **ppEnumPt)
Definition: ordinal.c:1312
static HRESULT WINAPI EnumPt_QueryInterface(IEnumConnectionPoints *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:1239
static HRESULT WINAPI EnumPt_Next(IEnumConnectionPoints *This, ULONG cConnections, IConnectionPoint **rgcd, ULONG *pcFetched)
Definition: ordinal.c:1278

Definition at line 1319 of file ordinal.c.

Referenced by Contain_EnumConnectionPoints().

◆ HMENU

const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU

Definition at line 60 of file ordinal.c.

Referenced by _CmdWndProc(), CBandSiteMenu::_CreateMenuPart(), CFSDropTarget::_GetEffectFromMenu(), _layout_ModifySystemMenu(), CBandSiteBase::_OnContextMenu(), _ShowContextMenu(), _ShowContextMenuR(), CMenuBand::_TrackContextMenu(), _tWinMain(), ATL::_U_MENUorID::_U_MENUorID(), AdvProcDetailsDlgProc(), CStartMenuSite::AppendMenu(), AppendMenuItems(), ApplicationPage_OnView(), ApplicationPageShowContextMenu1(), ApplicationPageShowContextMenu2(), ApplicationPageUpdate(), BrFolder_OnContextMenu(), build_combo(), build_static(), build_toolbar(), CShellBrowser::BuildExplorerBandMenu(), BuildLeftPopupMenu(), CDesktopFolder::CallBack(), CDrivesFolder::CallBack(), CFSFolder::CallBack(), cancel_popup_proc(), cctrl_create_new(), CheckLocalEchoMenuItem(), CheckMenuRadioItem(), ChildWndProc(), click_menu(), CNetFolderBackgroundMenuCB(), co_IntCallLoadMenu(), co_IntLoadSysMenuTemplate(), co_IntTranslateAccelerator(), co_UserFreeWindow(), CDefView::ColumnListChanged(), COMBO_Create(), COMBOEX_Create(), Control_CreateListView(), Control_FreeCPlItems(), Control_GetCPlItem_From_MenuID(), Control_UpdateListViewStyle(), Control_WndProc_Create(), ConWndProc(), MDIMainFrame::Create(), SDIMainFrame::Create(), CSearchBar::Create(), CApplicationView::Create(), CStartButton::Create(), ATL::CWindowImplBaseT< TBase, TWinTraits >::Create(), create_button(), create_combobox(), Pane::create_header(), create_ie_menu(), create_listbox(), create_menu_from_data(), create_menuitem_from_data(), create_rebar(), create_rebar_control(), create_static(), create_treeview_control(), create_updown_control(), CreateListView(), CreateMainWindow(), CInternetToolbar::CreateMenuBar(), CreateMyMenuBarMenu(), CreateMyPopupMenu(), CreatePushButton(), CShellMenuCallback::CreateRecentMenu(), CMainWindow::CreateStatusBar(), CreateStatusBar(), CCharMapWindow::CreateStatusBar(), CDeviceManager::CreateStatusBar(), CreateStatusWindowA(), CreateStatusWindowW(), CreateSysMenu(), CDeviceManager::CreateToolBar(), CreateToolbarEx(), CreateUpDownControl(), CreateVdmMenu(), CreateWindows(), ctrl_free(), DECLARE_INTERFACE_(), DefWndNCHitTest(), DIALOG_CreateControls32(), DIALOG_CreateIndirect(), DisplayPopupMenu(), DlgInitHandler(), CDefView::DoColumnContextMenu(), DesktopShellView::DoDesktopContextMenu(), DoShellContextMenu(), EDIT_WM_ContextMenu(), EnableCommandIfVerbExistsProc(), EnableFileMenuItemByID(), EnableFormatDriveDlgControls(), CDefView::Exec(), FILEDLG95_InitControls(), FileMenu_Create(), FileOpenDlgProc95(), CDefView::FillEditMenu(), CDefView::FillFileMenu(), CDefView::FillViewMenu(), FM_InitMenuPopup(), FrameOnCreate(), FrameWndProc(), get_bad_hmenu(), get_tb_menu(), GetMenuItemInfo_common(), GetMenuState(), CMenuCallback::GetObject(), GetSubMenu(), handle_context_menu(), handle_findmsg(), CDefaultContextMenu::HandleMenuMsg2(), HEXEDIT_WM_CONTEXTMENU(), IFileDialogCustomize_fnAddControlItem(), IFileDialogCustomize_fnRemoveControlItem(), IFileDialogCustomize_fnSetControlItemState(), init_preview(), init_toolbar(), InitBoard(), CShellBrowser::Initialize(), CDeviceView::Initialize(), InitInstance(), InitInstance_wave(), InitMainWnd(), CShellBrowser::InsertMenusSB(), IntCreateWindow(), IntDefWindowProc(), InternetExplorer_put_MenuBar(), IntFindSubMenu(), IntGetSubMenu(), IntGetSystemMenu(), IPADDRESS_Create(), CApplicationView::ItemGetFocus(), KbSwitch_OnNotifyIconMsg(), KbSwitch_OnPenIconMsg(), ListViewSelectionChanged(), LoadMenuIndirectW(), LoadPopupMenu(), MACRO_HelpOnTop(), MainFrameBase::MainFrameBase(), MainProc(), MainWnd_OnContextMenu(), MainWnd_OnCreate(), MainWndProc(), MCIWND_Create(), MDI_AugmentFrameMenu(), MDI_RestoreFrameMenu(), MDIChildWndProc(), MDIClientWndProc_common(), MDISetMenu(), ME_ShowContextMenu(), MENU_DoNextMenu(), menu_fill_in_init(), MENU_FindItem(), MENU_GetSystemMenu(), MENU_mnu2mnuii(), menu_ownerdraw_wnd_proc(), MENU_ParseResource(), MenuFromImeMenu(), MessageBoxProc(), ShellBrowser::MessageSFVCB(), mi_create_window(), MONTHCAL_LButtonDown(), MONTHCAL_RButtonUp(), CMenuFocusManager::MsgFilterHook(), MSGTestProcMDI(), MSGTestProcMDI2(), MyWndProc(), NOTEPAD_WndProc(), notifysink_on_tvn_dropdown(), NtUserCallTwoParam(), NtUserGetMenuBarInfo(), NtUserGetSystemMenu(), NtUserxCreateMenu(), NtUserxCreatePopupMenu(), OLEMenu_CallWndProc(), OLEMenu_FindMainMenuIndex(), OleUIAddVerbMenuW(), on_listbox_container_create(), CDeviceManager::OnCommand(), OnCommand(), CDefView::OnCommand(), CDeviceView::OnContextMenu(), CInternetToolbar::OnContextMenu(), CDefView::OnContextMenu(), CCharMapWindow::OnCreate(), OnCreate(), CDefView::OnExplorerCommand(), CShellMenuCallback::OnGetSubMenu(), CShellMenuCallback::OnInitMenu(), OnInitMenu(), CTrayWindow::OnInitMenuPopup(), CMainWindow::OnInitMenuPopup(), CShellBrowser::OnInitMenuPopup(), CDefView::OnInitMenuPopup(), OnInitPopupMenu(), OnMainWindowCreate(), CInternetToolbar::OnMenuDropDown(), CDeviceManager::OnNotify(), OnRButtonDown(), CTrayWindow::OnSysChar(), OnTestDlgCreate(), CISFBand::OnWinEvent(), CDefView::OpenSelectedItems(), OSK_SetKeys(), PanelOnCreate(), PerformancePage_OnViewCPUHistoryOneGraphAll(), PerformancePage_OnViewCPUHistoryOneGraphPerCPU(), PerformancePage_OnViewShowKernelTimes(), CMenuFocusManager::PopTrackedPopup(), PopupMenuWndProc(), CMenuToolbarBase::PopupSubMenu(), Preview_CreateToolBar(), preview_exit(), ProcessPageShowContextMenu(), CApplicationView::ProcessWindowMessage(), PropSheetCallback(), CSendToMenu::QueryContextMenu(), CBandSiteMenu::QueryContextMenu(), CISFBand::QueryContextMenu(), CDefaultContextMenu::QueryContextMenu(), CDefViewBckgrndMenu::QueryContextMenu(), CTrayWindowCtxMenu::QueryContextMenu(), rebuild_toolbar(), registry_read_filelist(), registry_set_filelist(), RichEditOleCallback_GetContextMenu(), seltree_popup_menu(), SetDifficulty(), CApplicationView::SetDisplayAppType(), SetMenuAndButtonStates(), CShellBrowser::SetMenuSB(), CAddressBand::SetSite(), SettingsPageProc(), SHELL_InvokePidl(), Shell_MergeMenus(), shellex_run_context_menu_default(), ShellExecute_ContextMenuVerb(), ShellFolderContextMenu(), SHInvokeCommand(), SHInvokeCommandOnContextMenuInternal(), SHLoadMenuPopup(), show_context_menu(), show_opendropdown(), TaskBar::ShowAppSystemMenu(), ShowContextMenu(), ShowHideMenuCtl(), ShowNetworkIconContextMenu(), ShowPopupMenuEx(), SHRemoveAllSubMenus(), START_TEST(), STRING_LoadMenus(), taskdialog_add_button(), TaskManager_OnOptionsAlwaysOnTop(), TaskManager_OnOptionsHideWhenMinimized(), TaskManager_OnOptionsMinimizeOnUse(), TaskManager_OnOptionsShow16BitTasks(), TaskManager_OnTabWndSelChange(), TaskManager_OnViewUpdateSpeed(), TaskManagerWndProc(), test_AppendMenu(), test_button_messages(), test_capture_4(), test_change_focus(), test_changing_selection_styles(), test_CheckMenuRadioItem(), test_combo_dropdown_size(), test_combobox_messages(), test_contextmenu(), test_create(), test_CreateWindow(), test_CShellMenu_params(), test_DestroyWindow(), test_dialog_messages(), test_dialogmode(), test_edit_control_2(), test_edit_messages(), test_editbox(), test_emptypopup(), test_getmenubarinfo(), test_GetMenuItemRect(), test_getstring(), test_init_storage(), test_InsertMenu(), TEST_InvalidFlags(), TEST_InvalidSize(), test_LBS_NODATA(), test_listbox_messages(), test_listbox_size(), test_mbs_help(), test_mdi(), test_MDI_create(), test_mdi_messages(), test_menu_add_string(), test_menu_bmp_and_string(), test_menu_cancelmode(), test_menu_circref(), test_menu_flags(), test_menu_getmenuinfo(), test_menu_hilitemenuitem(), test_menu_iteminfo(), test_menu_locked_by_window(), test_menu_maxdepth(), test_menu_messages(), test_menu_ownerdraw(), test_menu_resource_layout(), test_menu_search_bycommand(), test_menu_setmenuinfo(), test_menu_trackpopupmenu(), test_menualign(), test_messages(), Test_NoParamRoutine_CreateMenu(), Test_NoParamRoutine_CreatePopupMenu(), test_noresize(), test_OleUIAddVerbMenu(), Test_OneParamRoutine_MapDesktopObject(), test_params(), test_SetMenu(), test_SetParent(), test_shlmenu(), test_subpopup_locked_by_menu(), test_sys_menu(), test_system_menu(), test_tooltip(), test_updown_buddy(), test_updown_create(), test_window_tree(), test_WM_LBUTTONDOWN(), test_WM_MEASUREITEM(), test_WM_NEXTDLGCTL(), ThemeDrawCaptionButton(), toggle_child(), CTrayWindow::TrackCtxMenu(), CMainWindow::TrackPopupMenu(), TreeListEditLabel(), TreeListInsertColumn(), UI_ShowContextMenu(), update_menu(), update_radio(), SDIMainFrame::update_shell_browser(), MDIShellBrowserChild::update_shell_browser(), UpdateDisplayMenu(), CShellBrowser::UpdateViewMenu(), UserCreateMenu(), VerifyMenu(), WIN_CreateWindowEx(), WindowProc(), WINHELP_ButtonBoxWndProc(), WINHELP_CreateHelpWindow(), WINHELP_MainWndProc(), WinMain(), wmain(), WndProc(), and wWinMain().

◆ hShlwapi

HMODULE hShlwapi
static

Definition at line 38 of file ordinal.c.

Referenced by init_pointers(), START_TEST(), and test_fdsa().

◆ HWND

DWORD void DWORD *static HWND

Definition at line 60 of file ordinal.c.

◆ ie_international

const CHAR ie_international[]
static
Initial value:
= {
'S','o','f','t','w','a','r','e','\\',
'M','i','c','r','o','s','o','f','t','\\',
'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\',
'I','n','t','e','r','n','a','t','i','o','n','a','l',0}

Definition at line 90 of file ordinal.c.

Referenced by test_GetAcceptLanguagesA().

◆ int

const int int

Definition at line 40 of file ordinal.c.

◆ INT

INT

Definition at line 53 of file ordinal.c.

◆ IOleCommandTargetImpl_Vtbl

static const IOleCommandTargetVtbl IOleCommandTargetImpl_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI IOleCommandTargetImpl_QueryStatus(IOleCommandTarget *iface, const GUID *group, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
Definition: ordinal.c:2165
static ULONG WINAPI IOleCommandTargetImpl_AddRef(IOleCommandTarget *iface)
Definition: ordinal.c:2146
static HRESULT WINAPI IOleCommandTargetImpl_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppvObj)
Definition: ordinal.c:2127
static ULONG WINAPI IOleCommandTargetImpl_Release(IOleCommandTarget *iface)
Definition: ordinal.c:2152
static HRESULT WINAPI IOleCommandTargetImpl_Exec(IOleCommandTarget *iface, const GUID *CmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: ordinal.c:2171

Definition at line 2114 of file ordinal.c.

Referenced by IOleCommandTargetImpl_Construct().

◆ IProfferServiceImpl_Vtbl

static const IProfferServiceVtbl IProfferServiceImpl_Vtbl
static
Initial value:
=
{
}
static ULONG WINAPI IProfferServiceImpl_AddRef(IProfferService *iface)
Definition: ordinal.c:2371
static HRESULT WINAPI IProfferServiceImpl_RevokeService(IProfferService *iface, DWORD cookie)
Definition: ordinal.c:2398
static HRESULT WINAPI IProfferServiceImpl_ProfferService(IProfferService *iface, REFGUID service, IServiceProvider *pService, DWORD *pCookie)
Definition: ordinal.c:2390
static HRESULT WINAPI IProfferServiceImpl_QueryInterface(IProfferService *iface, REFIID riid, void **ppvObj)
Definition: ordinal.c:2346
static ULONG WINAPI IProfferServiceImpl_Release(IProfferService *iface)
Definition: ordinal.c:2377

Definition at line 2214 of file ordinal.c.

Referenced by IProfferServiceImpl_Construct().

◆ IServiceProviderImpl_Vtbl

static const IServiceProviderVtbl IServiceProviderImpl_Vtbl
static
Initial value:
=
{
}
static ULONG WINAPI IServiceProviderImpl_Release(IServiceProvider *iface)
Definition: ordinal.c:2266
static ULONG WINAPI IServiceProviderImpl_AddRef(IServiceProvider *iface)
Definition: ordinal.c:2260
static HRESULT WINAPI IServiceProviderImpl_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppvObj)
Definition: ordinal.c:2238
static HRESULT WINAPI IServiceProviderImpl_QueryService(IServiceProvider *iface, REFGUID service, REFIID riid, void **ppv)
Definition: ordinal.c:2279

Definition at line 2213 of file ordinal.c.

Referenced by IServiceProviderImpl_Construct().

◆ LONG_PTR

Definition at line 60 of file ordinal.c.

◆ LPCWSTR

Definition at line 52 of file ordinal.c.

◆ LPDWORD

Definition at line 41 of file ordinal.c.

◆ LPLONG

Definition at line 52 of file ordinal.c.

◆ LPSTR

Definition at line 54 of file ordinal.c.

◆ LPWSTR

IEnumIDList **static LPWSTR

Definition at line 55 of file ordinal.c.

◆ point_vtbl

const IConnectionPointVtbl point_vtbl
static
Initial value:
= {
}
static HRESULT WINAPI ConPt_EnumConnections(IConnectionPoint *This, IEnumConnections **ppEnum)
Definition: ordinal.c:1211
static HRESULT WINAPI ConPt_Advise(IConnectionPoint *This, IUnknown *pUnkSink, DWORD *pdwCookie)
Definition: ordinal.c:1177
static ULONG WINAPI ConPt_Release(IConnectionPoint *This)
Definition: ordinal.c:1127
static HRESULT WINAPI ConPt_GetConnectionPointContainer(IConnectionPoint *This, IConnectionPointContainer **ppCPC)
Definition: ordinal.c:1167
static HRESULT WINAPI ConPt_QueryInterface(IConnectionPoint *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:1098
static ULONG WINAPI ConPt_AddRef(IConnectionPoint *This)
Definition: ordinal.c:1120
static HRESULT WINAPI ConPt_GetConnectionInterface(IConnectionPoint *This, IID *pIID)
Definition: ordinal.c:1151
static HRESULT WINAPI ConPt_Unadvise(IConnectionPoint *This, DWORD dwCookie)
Definition: ordinal.c:1195

Definition at line 1227 of file ordinal.c.

Referenced by Contain_FindConnectionPoint().

◆ prop_vtbl

const IPropertyBagVtbl prop_vtbl
static
Initial value:
= {
}
static ULONG WINAPI Prop_AddRef(IPropertyBag *This)
Definition: ordinal.c:1527
static HRESULT WINAPI Prop_QueryInterface(IPropertyBag *This, REFIID riid, void **ppvObject)
Definition: ordinal.c:1505
static HRESULT WINAPI Prop_Write(IPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar)
Definition: ordinal.c:1557
static HRESULT WINAPI Prop_Read(IPropertyBag *This, LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
Definition: ordinal.c:1546
static ULONG WINAPI Prop_Release(IPropertyBag *This)
Definition: ordinal.c:1534

Definition at line 1566 of file ordinal.c.

Referenced by test_SHPropertyBag_ReadLONG().

◆ REFGUID

const CLSID *static CLSID *static const GUID VARIANT VARIANT *static REFGUID

Definition at line 59 of file ordinal.c.

◆ REFIID

const CLSID *static CLSID *static REFIID

Definition at line 51 of file ordinal.c.

◆ SHCONTF

◆ ShellFolder

Definition at line 2637 of file ordinal.c.

◆ ShellFolderVtbl

IShellFolderVtbl ShellFolderVtbl
static
Initial value:
= {
}
static HRESULT WINAPI SF_QueryInterface(IShellFolder *iface, REFIID riid, void **ppv)
Definition: ordinal.c:2529
static HRESULT WINAPI SF_BindToStorage(IShellFolder *iface, LPCITEMIDLIST idl, LPBC reserved, REFIID riid, void **obj)
Definition: ordinal.c:2570
static HRESULT WINAPI SF_CreateViewObject(IShellFolder *iface, HWND owner, REFIID riid, void **out)
Definition: ordinal.c:2584
static HRESULT WINAPI SF_SetNameOf(IShellFolder *iface, HWND hwnd, LPCITEMIDLIST idl, LPCOLESTR name, SHGDNF flags, LPITEMIDLIST *idlOut)
Definition: ordinal.c:2613
static HRESULT WINAPI SF_GetUIObjectOf(IShellFolder *iface, HWND owner, UINT cidl, LPCITEMIDLIST *idls, REFIID riid, UINT *inOut, void **out)
Definition: ordinal.c:2598
static HRESULT WINAPI SF_GetDisplayNameOf(IShellFolder *iface, LPCITEMIDLIST idl, SHGDNF flags, STRRET *name)
Definition: ordinal.c:2606
static ULONG WINAPI SF_AddRef(IShellFolder *iface)
Definition: ordinal.c:2538
static HRESULT WINAPI SF_EnumObjects(IShellFolder *iface, HWND owner, SHCONTF flags, IEnumIDList **enm)
Definition: ordinal.c:2556
static HRESULT WINAPI SF_CompareIDs(IShellFolder *iface, LPARAM lparam, LPCITEMIDLIST idl1, LPCITEMIDLIST idl2)
Definition: ordinal.c:2577
static HRESULT WINAPI SF_BindToObject(IShellFolder *iface, LPCITEMIDLIST idl, LPBC reserved, REFIID riid, void **obj)
Definition: ordinal.c:2563
static ULONG WINAPI SF_Release(IShellFolder *iface)
Definition: ordinal.c:2543
static HRESULT WINAPI SF_ParseDisplayName(IShellFolder *iface, HWND owner, LPBC reserved, LPOLESTR displayName, ULONG *eaten, LPITEMIDLIST *idl, ULONG *attr)
Definition: ordinal.c:2548
static HRESULT WINAPI SF_GetAttributesOf(IShellFolder *iface, UINT cidl, LPCITEMIDLIST *idl, SFGAOF *inOut)
Definition: ordinal.c:2591

Definition at line 2621 of file ordinal.c.

◆ testpersist

IPersist testpersist = { &testpersistvtbl }
static

Definition at line 3079 of file ordinal.c.

Referenced by test_IUnknown_GetClassID().

◆ testpersist2

IPersist testpersist2 = { &testpersist2vtbl }
static

Definition at line 3080 of file ordinal.c.

Referenced by test_IUnknown_GetClassID().

◆ testpersist2vtbl

IPersistVtbl testpersist2vtbl
static
Initial value:
= {
}
static HRESULT WINAPI testpersist_GetClassID(IPersist *iface, CLSID *clsid)
Definition: ordinal.c:3059
static ULONG WINAPI testpersist_Release(IPersist *iface)
Definition: ordinal.c:3054
static ULONG WINAPI testpersist_AddRef(IPersist *iface)
Definition: ordinal.c:3049
static HRESULT WINAPI testpersist_QI2(IPersist *iface, REFIID riid, void **obj)
Definition: ordinal.c:3037

Definition at line 3072 of file ordinal.c.

◆ testpersistvtbl

IPersistVtbl testpersistvtbl
static
Initial value:
= {
}
static HRESULT WINAPI testpersist_QI(IPersist *iface, REFIID riid, void **obj)
Definition: ordinal.c:3025

Definition at line 3065 of file ordinal.c.

◆ trace_got

◆ UINT

Definition at line 48 of file ordinal.c.