reactos/dll/win32/ole32/dictionary.h

94 lines
3.7 KiB
C
Raw Normal View History

Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* Simple dictionary
*
* Copyright 2005 Juan Lang
*
* This is a pretty basic dictionary, or map if you prefer. It's not
* thread-safe.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
*/
#ifndef __DICTIONARY_H__
#define __DICTIONARY_H__
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
struct dictionary;
/* Returns whether key a is less than, equal to, or greater than key b, in
* the same way (a - b) would for integers or strcmp(a, b) would for ANSI
* strings.
*/
typedef int (*comparefunc)(const void *a, const void *b, void *extra);
/* Called for every element removed from the dictionary. See
* dictionary_destroy, dictionary_insert, and dictionary_remove.
*/
typedef void (*destroyfunc)(void *k, void *v, void *extra);
/* Called for each element in the dictionary. Return FALSE if you don't want
* to enumerate any more.
*/
typedef BOOL (*enumeratefunc)(const void *k, const void *v, void *extra,
void *closure);
/* Constructs a dictionary, using c as a comparison function for keys.
* If d is not NULL, it will be called whenever an item is about to be removed
* from the table, for example when dictionary_remove is called for a key, or
* when dictionary_destroy is called.
* extra is passed to c (and d, if it's provided).
* Assumes c is not NULL.
*/
struct dictionary *dictionary_create(comparefunc c, destroyfunc d, void *extra) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* Assumes d is not NULL. */
void dictionary_destroy(struct dictionary *d) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* Returns how many entries have been stored in the dictionary. If two values
* with the same key are inserted, only one is counted.
*/
UINT dictionary_num_entries(struct dictionary *d) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* Sets an element with key k and value v to the dictionary. If a value
* already exists with key k, its value is replaced, and the destroyfunc (if
* set) is called for the previous item.
* Assumes k and v can be bitwise-copied.
* Both k and v are allowed to be NULL, in case you want to use integer
* values for either the key or the value.
* Assumes d is not NULL.
*/
void dictionary_insert(struct dictionary *d, const void *k, const void *v) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* If a value with key k has been inserted into the dictionary, *v is set
* to its associated value. Returns FALSE if the key is not found, and TRUE
* if it is. *v is undefined if it returns FALSE. (It is not set to NULL,
* because this dictionary doesn't prevent you from using NULL as a value
* value; see dictionary_insert.)
* Assumes d and v are not NULL.
*/
BOOL dictionary_find(struct dictionary *d, const void *k, void **v) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
/* Removes the element with key k from the dictionary. Calls the destroyfunc
* for the dictionary with the element if found (so you may destroy it if it's
* dynamically allocated.)
* Assumes d is not NULL.
*/
void dictionary_remove(struct dictionary *d, const void *k) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
void dictionary_enumerate(struct dictionary *d, enumeratefunc e, void *closure) DECLSPEC_HIDDEN;
Sync to Wine-20050419: Juan Lang <juan_lang@yahoo.com> - Implement PropSys{Alloc|Free}String, and support BSTRs in PropVariant{Clear|Copy} using them. - Begin implementing IPropertyStorage. - Add traces, add unit tests for IPropertyStorage, and fix the problems they caught. - Implement FmtIdToPropStgName & PropStgNameToFmtId, with tests. - add write support to IPropertyStorage, with tests - misc. cleanups the tests turned up - Add a comment about byte order, change types to reduce casting and not cast away constness. Vincent Beron <vberon@mecano.gme.usherb.ca> - Change prototypes so gcc with some warnings doesn't bark. - Correct and complete some api documentation. Mike McCormack <mike@codeweavers.com> - Eliminate forward declarations, make functions static. - Eliminate casts of the return value of HeapAlloc. - Remove function prototypes, make functions static. - StgOpenStorage shouldn't open zero length storage files. - Remove unnecessary function prototypes. Robert Shearman <rob@codeweavers.com> - Add critsec debugging info. - Move the modal loop called during RPCs into CoWaitForMultipleHandles. - Use a mutex for long remoting calls to IRemUnknown methods. - Remove locking in apartment_disconnectproxies as it is not needed. - Use PostMessage instead of SendMessage so we can run the message loop or not as appropriate. - Rename apartment functions to become more object-oriented. - Rename register_ifstub to marshal_object to more accurately describe what it does. - Add new function, apartment_getoxid, to prepare for a possible future patch where remoting is started on demand. Jon Griffiths <jon_p_griffiths@yahoo.com> - Use LMEM_ flags for LocalAlloc(), not GMEM_ (GlobalAlloc). Francois Gouget <fgouget@free.fr> - Assorted spelling fixes. Huw Davies <huw@codeweavers.com> - Don't close reg key if the open failed. - WriteFmtUserTypeStg doesn't pull a CLSID from the registry - it's unclear when (if at all) this gets written. Alexandre Julliard <julliard@winehq.org> - Fixed a buffer overflow. Joris Huizer <jorishuizer@planet.nl> - A few memory checks avoiding memory leaks. Dmitry Timoshkov <dmitry@codeweavers.com> - Zero out an invalidated runningObjectTableInstance pointer. Dimitrie O. Paun <dpaun@rogers.com> - Remove the need for the non-standard (Close|Delete)MetaFile16(). Troy Rollo <wine@troy.rollo.name> - ix test for STGM_SHARE_EXCLUSIVE on nameless DocFiles. svn path=/trunk/; revision=15010
2005-05-05 18:16:09 +00:00
#endif /* ndef __DICTIONARY_H__ */