42#define BUCKET_COUNT 509
43#define DICT_HASH_MOD 1201
125 const WCHAR *str1, *str2;
233 IEnumVARIANT_AddRef(iface);
260 IDictionary_Release(&
This->dict->IDictionary_iface);
308 if (!
This->cur)
break;
373 else if (dict_enum->
cur ==
pair) {
390 *
obj = &
This->IDictionary_iface;
394 *
obj = &
This->classinfo.IProvideClassInfo_iface;
398 TRACE(
"Interface IDispatchEx not supported - returning NULL\n");
404 TRACE(
"Interface IObjectWithSite not supported - returning NULL\n");
436 IDictionary_RemoveAll(iface);
457 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
473 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
482 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
489 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
495 pDispParams, pVarResult, pExcepInfo, puArgErr);
521 return IDictionary_Add(iface,
key,
item);
535 return IDictionary_Add(iface,
key,
item);
548 return CTL_E_KEY_ALREADY_EXISTS;
628 hr = IDictionary_Add(iface, newkey, &
pair->item);
632 return IDictionary_Remove(iface,
key);
636 return IDictionary_Add(iface, newkey, &
empty);
686 return CTL_E_ELEMENT_NOT_FOUND;
704 if (
This->count == 0)
779 else if (!
isnan(flt)) {
838 IUnknown_Release(unk);
905 This->method = BinaryCompare;
912 *
obj = &
This->IDictionary_iface;
static struct sockaddr_in sa
struct outqueuenode * head
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static const WCHAR empty[]
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
SAFEARRAY *WINAPI SafeArrayCreate(VARTYPE vt, UINT cDims, SAFEARRAYBOUND *rgsabound)
static void notify_remove_pair(struct list *notifier, struct list *pair)
static HRESULT WINAPI dictionary_putref_Item(IDictionary *iface, VARIANT *Key, VARIANT *pRetItem)
static HRESULT WINAPI dict_enum_Skip(IEnumVARIANT *iface, ULONG count)
static HRESULT WINAPI dictionary_QueryInterface(IDictionary *iface, REFIID riid, void **obj)
static HRESULT WINAPI dictionary_GetIDsOfNames(IDictionary *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static dictionary * impl_from_IDictionary(IDictionary *iface)
static ULONG WINAPI dict_enum_AddRef(IEnumVARIANT *iface)
static DWORD get_str_hash(const WCHAR *str, CompareMethod method)
static HRESULT WINAPI dictionary_get_HashVal(IDictionary *iface, VARIANT *key, VARIANT *hash)
static WCHAR * get_key_strptr(const VARIANT *key)
static HRESULT WINAPI dictionary__NewEnum(IDictionary *iface, IUnknown **ret)
static HRESULT create_dict_enum(dictionary *, IUnknown **)
static HRESULT WINAPI dict_enum_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **obj)
static BOOL is_matching_key(const dictionary *dict, const struct keyitem_pair *pair, const VARIANT *key, DWORD hash)
static HRESULT WINAPI dictionary_GetTypeInfo(IDictionary *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static const struct IDictionaryVtbl dictionary_vtbl
static HRESULT WINAPI dictionary_get_Item(IDictionary *iface, VARIANT *key, VARIANT *item)
static ULONG WINAPI dictionary_AddRef(IDictionary *iface)
static HRESULT WINAPI dictionary_Items(IDictionary *iface, VARIANT *items)
static void free_keyitem_pair(struct keyitem_pair *pair)
static const IEnumVARIANTVtbl dictenumvtbl
static DWORD get_num_hash(FLOAT num)
static int strcmp_key(const dictionary *dict, const VARIANT *key1, const VARIANT *key2)
static HRESULT get_flt_hash(FLOAT flt, LONG *hash)
static HRESULT WINAPI dict_enum_Clone(IEnumVARIANT *iface, IEnumVARIANT **cloned)
static ULONG WINAPI dictionary_Release(IDictionary *iface)
static BOOL is_string_key(const VARIANT *key)
static HRESULT WINAPI dictionary_Remove(IDictionary *iface, VARIANT *key)
static HRESULT WINAPI dict_enum_Next(IEnumVARIANT *iface, ULONG count, VARIANT *keys, ULONG *fetched)
static struct list * get_bucket_head(dictionary *dict, DWORD hash)
static HRESULT WINAPI dictionary_Invoke(IDictionary *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI dictionary_put_Item(IDictionary *iface, VARIANT *key, VARIANT *item)
static HRESULT WINAPI dictionary_Add(IDictionary *iface, VARIANT *key, VARIANT *item)
HRESULT WINAPI Dictionary_CreateInstance(IClassFactory *factory, IUnknown *outer, REFIID riid, void **obj)
static HRESULT WINAPI dictionary_put_Key(IDictionary *iface, VARIANT *key, VARIANT *newkey)
static HRESULT WINAPI dictionary_Keys(IDictionary *iface, VARIANT *keys)
static DWORD get_ptr_hash(void *ptr)
static struct keyitem_pair * get_keyitem_pair(dictionary *dict, VARIANT *key)
static ULONG WINAPI dict_enum_Release(IEnumVARIANT *iface)
static HRESULT WINAPI dictionary_Exists(IDictionary *iface, VARIANT *key, VARIANT_BOOL *exists)
static HRESULT add_keyitem_pair(dictionary *dict, VARIANT *key, VARIANT *item)
static HRESULT WINAPI dictionary_RemoveAll(IDictionary *iface)
static HRESULT WINAPI dict_enum_Reset(IEnumVARIANT *iface)
static HRESULT WINAPI dictionary_put_CompareMode(IDictionary *iface, CompareMethod method)
static HRESULT WINAPI dictionary_GetTypeInfoCount(IDictionary *iface, UINT *pctinfo)
static HRESULT WINAPI dictionary_get_CompareMode(IDictionary *iface, CompareMethod *method)
static struct dictionary_enum * impl_from_IEnumVARIANT(IEnumVARIANT *iface)
static HRESULT WINAPI dictionary_get_Count(IDictionary *iface, LONG *count)
GLuint GLuint GLsizei count
GLuint64EXT GLuint GLuint GLenum GLenum GLuint GLuint GLenum GLuint GLuint key1
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
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
const IID IID_IObjectWithSite
static const char * debugstr_variant(const VARIANT *var)
static VARIANTARG static DISPID
#define CTL_E_ILLEGALFUNCTIONCALL
const GUID IID_IProvideClassInfo
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
void init_classinfo(const GUID *guid, IUnknown *outer, struct provideclassinfo *classinfo)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
#define LIST_FOR_EACH(cursor, list)
IEnumVARIANT IEnumVARIANT_iface
struct list buckets[BUCKET_COUNT]
IDictionary IDictionary_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
HRESULT WINAPI VariantCopyInd(VARIANT *pvargDest, VARIANTARG *pvargSrc)
HRESULT WINAPI VariantCopy(VARIANTARG *pvargDest, VARIANTARG *pvargSrc)
_In_ DWORD _Out_ _In_ WORD wFlags