diff options
Diffstat (limited to 'Dbx_tree')
| -rw-r--r-- | Dbx_tree/m_dbx_tree.h | 688 | 
1 files changed, 0 insertions, 688 deletions
diff --git a/Dbx_tree/m_dbx_tree.h b/Dbx_tree/m_dbx_tree.h deleted file mode 100644 index 932b1bc..0000000 --- a/Dbx_tree/m_dbx_tree.h +++ /dev/null @@ -1,688 +0,0 @@ -/*
 -
 -dbx_tree: tree database driver for Miranda IM
 -
 -Copyright 2007-2010 Michael "Protogenes" Kunz,
 -
 -This program is free software; you can redistribute it and/or
 -modify it under the terms of the GNU General Public License
 -as published by the Free Software Foundation; either version 2
 -of the License, or (at your option) any later version.
 -
 -This program 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 General Public License for more details.
 -
 -You should have received a copy of the GNU General Public License
 -along with this program; if not, write to the Free Software
 -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 -
 -*/
 -
 -#ifndef M_DBX_TREE_H__
 -
 -#define M_DBX_TREE_H__ 1
 -
 -#ifndef _MSC_VER
 -#include <stdint.h>
 -#else
 -#include "stdint.h"
 -#endif
 -#pragma pack(push, 8)
 -
 -
 -/**
 -	\brief general return value if invalid param or invalid combination of params specified
 -**/
 -static const unsigned int DBT_INVALIDPARAM = 0xFFFFFFFF;
 -
 -
 -///////////////////////////////////////////////////////////
 -// Entities
 -///////////////////////////////////////////////////////////
 -
 -/**
 -	\brief A handle to a Entity
 -**/
 -typedef uint32_t TDBTEntityHandle;
 -
 -static const uint32_t DBT_NF_IsRoot      = 0x00000001;  /// Entity is the Root
 -static const uint32_t DBT_NF_IsGroup     = 0x00000002;  /// Entity is a   group
 -static const uint32_t DBT_NF_IsAccount   = 0x00000004;  /// Entity is an  account
 -
 -static const uint32_t DBT_NF_HasChildren = 0x00010000;  /// Entity has Children (for Groups and Metacontacts)
 -static const uint32_t DBT_NF_HasVirtuals = 0x00020000;  /// Entity has at least one Virtual duplicate
 -static const uint32_t DBT_NF_IsVirtual   = 0x00040000;  /// Entity is a Virtual duplicate
 -
 -static const uint32_t DBT_NFM_SpecialEntity = DBT_NF_IsRoot | DBT_NF_IsGroup | DBT_NF_IsAccount | DBT_NF_IsVirtual;
 -
 -///////////////////////////////////////////////////////////
 -// Entities
 -///////////////////////////////////////////////////////////
 -
 -/**
 -	\brief
 -	\param wParam = 0
 -	\param lParam = 0
 -
 -	\return Handle to root Entity
 -**/
 -#define MS_DBT_ENTITY_GETROOT "DBT/Entity/GetRoot"
 -
 -
 -/**
 -	\brief
 -	\param wParam = hEntity
 -	\param lParam = 0
 -
 -	\return ChildCount of specified Entity
 -**/
 -#define MS_DBT_ENTITY_CHILDCOUNT "DBT/Entity/ChildCount"
 -
 -
 -/**
 -	\brief
 -	\param wParam = hEntity
 -	\param lParam = 0
 -
 -	\return Parent hEntity of specified Entity
 -**/
 -#define MS_DBT_ENTITY_GETPARENT "DBT/Entity/GetParent"
 -
 -
 -/**
 -	\brief
 -  \param wParam = hEntity
 -  \param lParam = hNewEntity
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_ENTITY_MOVE "DBT/Entity/Move"
 -
 -/**
 -	\brief
 -	\param wParam = hEntity
 -	\param lParam = hNewParent
 -**/
 -#define ME_DBT_ENTITY_MOVING "DBT/Entity/Moving"
 -/**
 -	\brief
 -	\param wParam = hEntity
 -	\param lParam = hOldParent
 -**/
 -#define ME_DBT_ENTITY_MOVED "DBT/Entity/Moved"
 -
 -/**
 -	\brief Read the flags of an Entity
 -  \param wParam = hEntity
 -  \param lParam = 0
 -
 -	\return Flags
 -**/
 -#define MS_DBT_ENTITY_GETFLAGS "DBT/Entity/GetFlags"
 -
 -
 -
 -static const uint32_t DBT_NIFO_OSC_AC   = 0x00000001;                       /// onStartEntity - AddChildren
 -static const uint32_t DBT_NIFO_OSC_AP   = 0x00000002;                       /// onStartEntity - AddParent
 -static const uint32_t DBT_NIFO_OSC_AO   = 0x00000004;                       /// onStartEntity - AddOriginal (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OSC_AOC  = 0x00000008 | DBT_NIFO_OSC_AO;     /// onStartEntity - AddOriginalChildren (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OSC_AOP  = 0x00000010 | DBT_NIFO_OSC_AO;     /// onStartEntity - AddOriginalParent (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OSC_USEACCOUNT  = 0x00000080;                /// onStartEntity - use Account as fallback, only for settings
 -
 -static const uint32_t DBT_NIFO_OC_AC    = 0x00000001 <<8;                   /// onChildEntity - AddChildren
 -//static const uint32_t DBT_LC_OC_AP      = 0x00000002 <<8;                 /// invalid for children
 -static const uint32_t DBT_NIFO_OC_AO    = 0x00000004 <<8;                   /// onChildEntity - AddOriginal (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OC_AOC   = 0x00000008 <<8 | DBT_NIFO_OC_AO;  /// onChildEntity - AddOriginalChildren (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OC_AOP   = 0x00000010 <<8 | DBT_NIFO_OC_AO;  /// onChildEntity - AddOriginalParent (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OC_USEACCOUNT  = 0x00000080 <<8;             /// onStartEntity - use Account as fallback, only for settings
 -
 -static const uint32_t DBT_NIFO_OP_AC    = 0x00000001 <<16;                  /// onParentEntity - AddChildren
 -static const uint32_t DBT_NIFO_OP_AP    = 0x00000002 <<16;                  /// onParentEntity - AddParent
 -static const uint32_t DBT_NIFO_OP_AO    = 0x00000004 <<16;                  /// onParentEntity - AddOriginal (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OP_AOC   = 0x00000008 <<16 | DBT_NIFO_OP_AO; /// onParentEntity - AddOriginalChildren (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OP_AOP   = 0x00000010 <<16 | DBT_NIFO_OP_AO; /// onParentEntity - AddOriginalParent (only if Entity is virtual)
 -static const uint32_t DBT_NIFO_OP_USEACCOUNT  = 0x00000080 <<16;           /// onStartEntity - use Account as fallback, only for settings
 -
 -static const uint32_t DBT_NIFO_GF_DEPTHFIRST = 0x01000000;  /// general flags - depth first iteration instead of breath first
 -static const uint32_t DBT_NIFO_GF_USEROOT    = 0x02000000;  /// general flags - use root as fallback, only for settings
 -static const uint32_t DBT_NIFO_GF_VL1        = 0x10000000;  /// general flags - limit virtual lookup depth to 1
 -static const uint32_t DBT_NIFO_GF_VL2        = 0x20000000;  /// general flags - limit virtual lookup depth to 2
 -static const uint32_t DBT_NIFO_GF_VL3        = 0x30000000;  /// general flags - limit virtual lookup depth to 3
 -static const uint32_t DBT_NIFO_GF_VL4        = 0x40000000;  /// general flags - limit virtual lookup depth to 4
 -
 -/**
 -	\brief Entityfilter options for Entity iteration
 -**/
 -typedef
 -	struct TDBTEntityIterFilter
 -	{
 -		uint32_t cbSize;					/// size of the structur in bytes
 -		uint32_t Options;					/// Options for iteration: DB_EIFO_*
 -		uint32_t fHasFlags;				/// flags an Entity must have to be iterated
 -		uint32_t fDontHasFlags;		/// flags an Entity have not to have to be iterated
 -	} TDBTEntityIterFilter, *PDBTEntityIterFilter;
 -
 -/**
 -	\brief Handle of an Entity-Iteration
 -**/
 -typedef uintptr_t TDBTEntityIterationHandle;
 -/**
 -	\brief initialize an iteration of Entities
 -	\param wParam = PDBTEntityIterFilter, NULL to iterate all Entities (breadthfirst, all but root)
 -	\param lParam = TDBTEntityHandle Entity, where iteration starts
 -
 -	\return EnumID
 -**/
 -#define MS_DBT_ENTITY_ITER_INIT "DBT/Entity/Iter/Init"
 -
 -
 -/**
 -	\brief get the next Entity
 -	\param wParam = EnumID returned by MS_DBT_ENTITY_ITER_INIT
 -	\param lParam = 0
 -
 -	\return hEntity, 0 at the end
 -**/
 -#define MS_DBT_ENTITY_ITER_NEXT "DBT/Entity/Iter/Next"
 -
 -/**
 -	\brief closes an iteration and frees its ressourcs
 -	\param wParam = IterationHandle returned by MS_DBT_ENTITY_ITER_INIT
 -	\param lParam = 0
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_ENTITY_ITER_CLOSE "DBT/Entity/Iter/Close"
 -
 -/**
 -	\brief Deletes an Entity.
 -
 -	All children will be moved to its parent.
 -	If the Entity has virtual copies, history and settings will be transfered to the first duplicate.
 -
 -	\param wParam = hEntity
 -	\param lParam = 0
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_ENTITY_DELETE  "DBT/Entity/Delete"
 -
 -
 -typedef struct TDBTEntity
 -{
 -	uint32_t bcSize;
 -	TDBTEntityHandle hParentEntity;
 -	uint32_t fFlags;                 /// Flags DBT_NF_
 -	TDBTEntityHandle hAccountEntity; /// Needed for normal Entities, reference to AccountEntity for the created one
 -} TDBTEntity, *PDBTEntity;
 -
 -/**
 -	\brief Creates a new Entity.
 -  \param wParam = PDBTEntity
 -  \param lParam = 0
 -
 -	\return hEntity on success, 0 otherwise
 -**/
 -#define MS_DBT_ENTITY_CREATE  "DBT/Entity/Create"
 -
 -
 -/**
 -	\brief returns the account entity handle specified during creation
 -  \param wParam = TDBTEntityHandle
 -  \param lParam = 0
 -
 -	\return hEntity on success, 0 otherwise
 -**/
 -#define MS_DBT_ENTITY_GETACCOUNT "DBT/Entity/GetAccount"
 -
 -
 -///////////////////////////////////////////////////////////
 -// Virtual Entities
 -///////////////////////////////////////////////////////////
 -
 -/**
 -	\brief Creates a virtual duplicate of an Entity
 -  \param wParam = hEntity to duplicate, couldn't be a group (DBT_NF_IsGroup set to 0)
 -  \param lParam = hParentEntity to place duplicate
 -
 -	\return hEntity of created duplicate
 -**/
 -#define MS_DBT_VIRTUALENTITY_CREATE  "DBT/VirtualEntity/Create"
 -
 -/**
 -	\brief Retrieves the original Entity, which this is a duplicate of
 -  \param wParam = hEntity of virtual Entity
 -  \param lParam = 0
 -
 -	\return hEntity of original Entity
 -**/
 -#define MS_DBT_VIRTUALENTITY_GETPARENT  "DBT/VirtualEntity/GetParent"
 -
 -/**
 -	\brief Retrieves the first virtual duplicate of an Entity (if any)
 -  \param wParam = hEntity with virtual copies
 -  \param lParam
 -
 -	\return hEntity of first virtual duplicate
 -**/
 -#define MS_DBT_VIRTUALENTITY_GETFIRST  "DBT/VirtualEntity/GetFirst"
 -
 -/**
 -	\brief Retrieves the following duplicate
 -  \param wParam = hVirtualEntity of virtual Entity
 -  \param lParam = 0
 -
 -	\return hEntity of next duplicate, 0 if hVirtualEntity was the last duplicate
 -**/
 -#define MS_DBT_VIRTUALENTITY_GETNEXT  "DBT/VirtualEntity/GetNext"
 -
 -
 -///////////////////////////////////////////////////////////
 -// Settings
 -///////////////////////////////////////////////////////////
 -
 -/**
 -	\brief Handle of a Setting
 -**/
 -typedef uint32_t TDBTSettingHandle;
 -
 -
 -static const uint16_t DBT_ST_BYTE   = 0x01;
 -static const uint16_t DBT_ST_WORD   = 0x02;
 -static const uint16_t DBT_ST_DWORD  = 0x03;
 -static const uint16_t DBT_ST_QWORD  = 0x04;
 -
 -static const uint16_t DBT_ST_CHAR   = 0x11;
 -static const uint16_t DBT_ST_SHORT  = 0x12;
 -static const uint16_t DBT_ST_INT    = 0x13;
 -static const uint16_t DBT_ST_INT64  = 0x14;
 -
 -static const uint16_t DBT_ST_BOOL   = 0x20;
 -static const uint16_t DBT_ST_FLOAT  = 0x21;
 -static const uint16_t DBT_ST_DOUBLE = 0x22;
 -
 -static const uint16_t DBT_ST_ANSI   = 0xff;
 -static const uint16_t DBT_ST_BLOB   = 0xfe;
 -static const uint16_t DBT_ST_UTF8   = 0xfd;
 -static const uint16_t DBT_ST_WCHAR  = 0xfc;
 -
 -#if (defined(_UNICODE) || defined(UNICODE))
 -	static const uint16_t DBT_ST_TCHAR  = DBT_ST_WCHAR;
 -#else
 -	static const uint16_t DBT_ST_TCHAR  = DBT_ST_ANSI;
 -#endif
 -
 -static const uint16_t DBT_STF_Signed         = 0x10;
 -static const uint16_t DBT_STF_VariableLength = 0x80;
 -
 -
 -
 -static const uint32_t DBT_SDF_FoundValid  = 0x00000001;
 -static const uint32_t DBT_SDF_HashValid   = 0x00000002;
 -
 -/**
 -	\brief Describes a setting, its name and location
 -**/
 -typedef
 -	struct TDBTSettingDescriptor {
 -		uint32_t cbSize;                               /// size of the structure in bytes
 -		TDBTEntityHandle Entity;                      /// Entityhandle where the setting can be found, or where searching starts
 -		char * pszSettingName;                         /// Setting name
 -		uint32_t Options;                              /// options describing where the setting can be found DBT_NIFO_*
 -		uint32_t Flags;                                /// Valid Flags. DBT_SDF_* describes which following values are valid (internal use)
 -
 -		TDBTEntityHandle FoundInEntity;               /// internal use to avoid to do the searching twice
 -		uint32_t Hash;                                 /// internal used HashValue for settingname
 -		TDBTSettingHandle FoundHandle;                  /// internal used SettingHandle
 -	} TDBTSettingDescriptor, * PDBTSettingDescriptor;
 -
 -/**
 -	\brief Describes a settings value
 -
 -	it is never used alone, without a type qualifier
 -**/
 -typedef
 -	union TDBTSettingValue {
 -		bool Bool;
 -		int8_t  Char;  uint8_t  Byte;
 -		int16_t Short; uint16_t Word;
 -		uint32_t Int;   uint32_t DWord;
 -		int64_t Int64; uint64_t QWord;
 -		float Float;
 -		double Double;
 -
 -		struct {
 -			uint32_t Length;  // length in bytes of pBlob, length in characters of char types including trailing null
 -			union {
 -				uint8_t * pBlob;
 -				char * pAnsi;
 -				char * pUTF8;
 -				wchar_t * pWide;
 -				TCHAR * pTChar;
 -			};
 -		};
 -	} TDBTSettingValue;
 -
 -/**
 -	\brief Describes a setting
 -**/
 -typedef
 -	struct TDBTSetting {
 -		uint32_t cbSize;		          /// size of the structure in bytes
 -		PDBTSettingDescriptor Descriptor;  /// pointer to a Setting descriptor used to locate the setting
 -		uint16_t Type;			        /// type of the setting, see DBT_ST_*
 -		TDBTSettingValue Value;		        /// Value of the setting according to Type
 -	} TDBTSetting, * PDBTSetting;
 -
 -
 -
 -/**
 -	\brief retrieves the handle of the setting
 -  \param wParam = PDBTSettingDescriptor
 -  \param lParam = 0
 -
 -	\return hSetting when found, 0 otherwise
 -**/
 -#define MS_DBT_SETTING_FIND  "DBT/Setting/Find"
 -
 -
 -/**
 -	\brief deletes the specified Setting
 -  \param wParam = PDBTSettingDescriptor
 -  \param lParam = 0
 -
 -	\return hSetting when found, 0 otherwise
 -**/
 -#define MS_DBT_SETTING_DELETE  "DBT/Setting/Delete"
 -
 -/**
 -	\brief deletes the specified Setting
 -  \param wParam = TDBTSettingHandle
 -  \param lParam = 0
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_SETTING_DELETEHANDLE  "DBT/Setting/DeleteHandle"
 -
 -
 -/**
 -	\brief Write a setting (and creates it if neccessary)
 -  \param wParam = PDBTSetting
 -  \param lParam = 0
 -
 -	\return TDBTSettingHandle on success, 0 otherwise
 -**/
 -#define MS_DBT_SETTING_WRITE  "DBT/Setting/Write"
 -
 -/**
 -	\brief retrieves the handle of the setting
 -  \param wParam = PDBTSetting
 -  \param lParam = TDBTSettingHandle, could be 0 to create new setting, but needs wParam->Descriptor with valid data
 -
 -	\return hSetting when found or created, 0 otherwise
 -**/
 -#define MS_DBT_SETTING_WRITEHANDLE  "DBT/Setting/WriteHandle"
 -
 -/**
 -	\brief retrieves the value of the setting
 -  \param wParam = PDBTSetting
 -  \param lParam = 0
 -
 -	\return SettingHandle
 -**/
 -#define MS_DBT_SETTING_READ  "DBT/Setting/Read"
 -
 -/**
 -	\brief retrieves the value of the setting
 -
 -	Also retrieves the SettingDescriptor if it is set and prepared correctly (name buffers set etc)
 -  \param wParam = PDBTSetting
 -  \param lParam = TDBTSettingHandle
 -
 -	\return original settings type
 -**/
 -#define MS_DBT_SETTING_READHANDLE  "DBT/Setting/ReadHandle"
 -
 -
 -
 -/**
 -	\brief Settings Filter Options for setting iteration
 -**/
 -typedef
 -	struct TDBTSettingIterFilter {
 -		uint32_t cbSize;								  /// size in bytes of this structure
 -		uint32_t Options;                 /// DBT_NIFO_* flags
 -		TDBTEntityHandle hEntity;        /// hEntity which settings should be iterated (or where iteration begins)
 -		char * NameStart;                 /// if set != NULL the iteration will only return settings which name starts with this string
 -		uint32_t ExtraCount;              /// count of additional Entities which settings are enumerated, size of the array pointed by ExtraEntities
 -		TDBTEntityHandle * ExtraEntities; /// pointer to an array with additional Entity handles in prioritized order
 -
 -		PDBTSettingDescriptor Descriptor;  /// if set, the iteration will fill in the correct data, you may set SettingsNameLength and SettingName to a buffer to recieve the name of each setting
 -		PDBTSetting Setting;	              /// if set, iteration loads every settings value, except variable length data (blob, strings) but returns their length
 -
 -	} TDBTSettingIterFilter, *PDBTSettingIterFilter;
 -
 -
 -/**
 -	\brief Handle of a Setting-Iteration
 -**/
 -typedef uintptr_t TDBTSettingIterationHandle;
 -/**
 -	\brief initialize an iteration of settings
 -	\param wParam = PDBTSettingIterFilter
 -	\param lParam = 0
 -
 -	\return EnumID
 -**/
 -#define MS_DBT_SETTING_ITER_INIT "DBT/Setting/Iter/Init"
 -
 -
 -/**
 -	\brief get the next setting
 -	\param wParam = EnumID returned by MS_DBT_SETTING_ITER_INIT
 -	\param lParam = 0
 -
 -	\return hSetting, 0 at the end
 -**/
 -#define MS_DBT_SETTING_ITER_NEXT "DBT/Setting/Iter/Next"
 -
 -/**
 -	\brief closes an iteration and frees its ressourcs
 -	\param wParam = IterationHandle returned by MS_DBT_SETTING_ITER_INIT
 -	\param lParam = 0
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_SETTING_ITER_CLOSE "DBT/Setting/Iter/Close"
 -
 -
 -///////////////////////////////////////////////////////////
 -// Events
 -///////////////////////////////////////////////////////////
 -
 -typedef uint32_t TDBTEventHandle;
 -
 -
 -/**
 -	\brief this event was sent by the user. If not set this event was received.
 -**/
 -static const uint32_t DBT_EF_SENT  = 0x00000002;
 -
 -/**
 -	\brief event has been read by the user. It does not need to be processed any more except for history.
 -**/
 -static const uint32_t DBT_EF_READ  = 0x00000004;
 -
 -/**
 -	\brief event contains the right-to-left aligned text
 -**/
 -static const uint32_t DBT_EF_RTL   = 0x00000008;
 -
 -/**
 -	\brief event contains a text in utf-8
 -**/
 -static const uint32_t DBT_EF_UTF   = 0x00000010;
 -
 -/**
 -	\brief event is virtual. it is not stored to db file yet.
 -**/
 -static const uint32_t DBT_EF_VIRTUAL   = 0x00000020;
 -
 -/**
 -	\brief describes an event
 -**/
 -typedef struct TDBTEvent {
 -	uint32_t    cbSize;     /// size of the structure in bytes
 -	char *			ModuleName; /// 
 -	uint32_t    Timestamp;  /// seconds since 00:00, 01/01/1970. Gives us times until 2106 unless you use the standard C library which is signed and can only do until 2038. In GMT.
 -	uint32_t    Flags;	    /// the omnipresent flags	
 -	uint32_t    EventType;  /// module-unique event type ID
 -	uint32_t    cbBlob;	    /// size of pBlob in bytes
 -	uint8_t  *  pBlob;	    /// pointer to buffer containing module-defined event data
 -} TDBTEvent, *PDBTEvent;
 -
 -static const uint32_t DBT_EventType_Message     = 0;
 -static const uint32_t DBT_EventType_URL         = 1;
 -static const uint32_t DBT_EventType_Contacts    = 2;
 -static const uint32_t DBT_EventType_Added       = 1000;
 -static const uint32_t DBT_EventType_AuthRequest = 1001;  //specific codes, hence the module-
 -static const uint32_t DBT_EventType_File        = 1002;  //specific limit has been raised to 2000
 -
 -
 -/**
 -	\brief retrieves the blobsize of an event in bytes
 -  \param wParam = hEvent
 -  \param lParam = 0
 -
 -	\return blobsize
 -**/
 -#define MS_DBT_EVENT_GETBLOBSIZE "DBT/Event/GetBlobSize"
 -
 -
 -
 -/**
 -	\brief retrieves all information of an event
 -  \param wParam = hEvent
 -  \param lParam = PDBTEvent
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_EVENT_GET "DBT/Event/Get"
 -
 -/**
 -	\brief retrieves all information of an event
 -  \param wParam = hEntity
 -  \param lParam = 0
 -
 -	\return Event count of specified Entity on success, DBT_INVALIDPARAM on error
 -**/
 -#define MS_DBT_EVENT_GETCOUNT "DBT/Event/GetCount"
 -
 -
 -/**
 -	\brief Deletes the specfied event
 -  \param wParam = hEntity
 -  \param lParam = hEvent
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_EVENT_DELETE "DBT/Event/Delete"
 -
 -/**
 -	\brief Creates a new Event
 -  \param wParam = hEntity
 -  \param lParam = PDBTEvent
 -
 -	\return hEvent on success, 0 otherwise
 -**/
 -
 -#define MS_DBT_EVENT_ADD "DBT/Event/Add"
 -
 -
 -/**
 -	\brief Changes the flags for an event to mark it as read.
 -  \param wParam = hEntity
 -  \param lParam = hEvent
 -
 -	\return New flags
 -**/
 -#define MS_DBT_EVENT_MARKREAD "DBT/Event/MarkRead"
 -
 -/**
 -	\brief Saves a virtual event to file and changes the flags.
 -  \param wParam = hEntity
 -  \param lParam = hEvent
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_EVENT_WRITETODISK  "DBT/Event/WriteToDisk"
 -
 -/**
 -	\brief Retrieves a handle to a Entity that owns hEvent.
 -  \param wParam = hEvent
 -  \param lParam = 0
 -
 -	\return NULL is a valid return value, meaning, as usual, the user.
 -					DBT_INVALIDPARAM if hDbEvent is invalid, or the handle to the Entity on
 -					success
 -**/
 -#define MS_DBT_EVENT_GETENTITY  "DBT/Event/GetEntity"
 -
 -/**
 -	\brief Event Filter Options for event iteration
 -**/
 -typedef
 -	struct TDBTEventIterFilter {
 -		uint32_t cbSize;										/// size in bytes of this structure
 -		uint32_t Options;										/// DBT_NIFO_* flags
 -		TDBTEntityHandle hEntity;					/// hEntity which events should be iterated (or where iteration begins)
 -		uint32_t ExtraCount;								/// count of additional Entities which settings are enumerated, size of the array pointed by ExtraEntities
 -		TDBTEntityHandle * ExtraEntities;   /// pointer to an array with additional Entity handles in prioritized order
 -
 -		uint32_t tSince;                    /// timestamp when to start iteration, 0 for first item
 -		uint32_t tTill;                     /// timestamp when to stop iteration, 0 for last item
 -
 -		PDBTEvent Event;	                    /// if set every events data gets stored there
 -
 -	} TDBTEventIterFilter, *PDBTEventIterFilter;
 -
 -
 -/**
 -	\brief Handle of a Event-Iteration
 -**/
 -typedef uintptr_t TDBTEventIterationHandle;
 -/**
 -	\brief initialize an iteration of events
 -	\param wParam = PDBTEventIterFilter
 -	\param lParam = 0
 -
 -	\return EnumID
 -**/
 -#define MS_DBT_EVENT_ITER_INIT "DBT/Event/Iter/Init"
 -
 -
 -/**
 -	\brief get the next event
 -	\param wParam = EnumID returned by MS_DBT_EVENT_ITER_INIT
 -	\param lParam = 0
 -
 -	\return hSetting, 0 at the end
 -**/
 -#define MS_DBT_EVENT_ITER_NEXT "DBT/Event/Iter/Next"
 -
 -/**
 -	\brief closes an iteration and frees its resourcs
 -	\param wParam = IterationHandle returned by MS_DBT_EVENT_ITER_INIT
 -	\param lParam = 0
 -
 -	\return 0 on success
 -**/
 -#define MS_DBT_EVENT_ITER_CLOSE "DBT/Event/Iter/Close"
 -
 -
 -
 -#pragma pack(pop)
 -
 -#endif
  | 
