summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-26 17:09:41 +0000
committermataes2007 <mataes2007@e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb>2011-11-26 17:09:41 +0000
commitd79b254cc7961696ac92ab470dbc37ef147838f3 (patch)
tree514fcd5822af2a7d24b15637568826544a44d9c7
parent98d0faa2eeddfe260bd337c69b00734b7cff2375 (diff)
api files moved to EXternalAPI folder
git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@218 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb
-rw-r--r--CountryFlags/m_flags.h102
-rw-r--r--Dbx_tree/m_dbx_tree.h688
-rw-r--r--ExternalAPI/m_flags.h2
-rw-r--r--ExternalAPI/m_flags.inc (renamed from CountryFlags/m_flags.inc)0
-rw-r--r--ExternalAPI/m_nudge.h9
-rw-r--r--ExternalAPI/m_script.h (renamed from mBot/src/mbot/m_script.h)0
-rw-r--r--ExternalAPI/m_voice.h (renamed from Skype/sdk/m_voice.h)0
-rw-r--r--ExternalAPI/m_voiceservice.h (renamed from Skype/sdk/m_voiceservice.h)0
-rw-r--r--FacebookRM/m_folders.h218
-rw-r--r--FacebookRM/m_updater.h150
-rw-r--r--GTalkExt/include/m_utils.h1
-rw-r--r--GTalkExt/stdafx.h4
-rw-r--r--Nudge/m_nudge.h10
-rw-r--r--Skype/m_popup.h307
-rw-r--r--Skype/m_toptoolbar.h107
-rw-r--r--Skype/sdk/m_folders.h207
-rw-r--r--Skype/sdk/m_updater.h146
-rw-r--r--YAMN/include/m_icolib.h75
-rw-r--r--YAMN/include/m_kbdnotify.h64
-rw-r--r--YAMN/include/m_uninstaller.h700
-rw-r--r--YAMN/m_account.h239
-rw-r--r--YAMN/m_filterplugin.h139
-rw-r--r--YAMN/m_messages.h41
-rw-r--r--YAMN/m_protoplugin.h389
-rw-r--r--YAMN/m_synchro.h160
-rw-r--r--YAMN/m_yamn.h154
-rw-r--r--imo2sproxy/src/imo2skype/miranda/sdk/m_updater.h146
27 files changed, 11 insertions, 4047 deletions
diff --git a/CountryFlags/m_flags.h b/CountryFlags/m_flags.h
deleted file mode 100644
index 40ea0c1..0000000
--- a/CountryFlags/m_flags.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Miranda IM Country Flags Plugin
-Copyright (C) 2006-2007 H. Herkenrath
-
-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 (Flags-License.txt); if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifndef M_FLAGS_H__
-#define M_FLAGS_H__
-
-#if defined (_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
-#endif
-
-/*
- Country Flags Plugin v0.1.0.3
-*/
-
-/* interface id */
-#if !defined(MIID_FLAGS)
- #define MIID_FLAGS {0x88a3b66e,0xc438,0x4381,{0xbc,0x17,0x71,0xd9,0x9d,0x22,0x5f,0x9c}}
-#endif
-
-/* Load a country flag icon from the skin library. v0.1.0.0+
-The retrieved icon should be released using MS_SKIN2_RELEASEICON after use.
-The country numbers can be retrieved using MS_UTILS_GETCOUNTRYLIST.
-Another way to get the country numbers are the CTRY_* constants in winnls.h of WinAPI.
-To retrieve the country number from a locale, call GetLocaleInfo().
-with LOCALE_ICOUNTRY.
- wParam=countryNumber
- lParam=(BOOL)fReturnHandle (nonzero to to retrieve the icolib handle instead of the icon)
-Returns a icon handle (HICON) on success, NULL on error.
-*/
-#define MS_FLAGS_LOADFLAGICON "Flags/LoadFlagIcon"
-
-#if !defined(FLAGS_NOHELPERFUNCTIONS)
-__inline static HICON LoadFlagIcon(int countryNumber) {
- if(!ServiceExists(MS_FLAGS_LOADFLAGICON)) return NULL;
- return (HICON)CallService(MS_FLAGS_LOADFLAGICON,countryNumber,0);
-}
-__inline static HANDLE LoadFlagIconHandle(int countryNumber) {
- if(!ServiceExists(MS_FLAGS_LOADFLAGICON)) return NULL;
- return (HICON)CallService(MS_FLAGS_LOADFLAGICON,countryNumber,1);
-}
-#endif
-
-#define CTRY_UNSPECIFIED 0
-#define CTRY_OTHER 9999
-#define CTRY_UNKNOWN 0xFFFF
-
-/* Create a merged country flag icon. v0.1.0.0+
-The retrieved icon should be released using DestroyIcon() after use.
- wParam=countryNumberUpper
- lParam=countryNumberLower
-Returns a icon handle (HICON) on success, NULL on error.
-*/
-#define MS_FLAGS_CREATEMERGEDFLAGICON "Flags/CreateMergedFlagIcon"
-
-/* Get a corresponding country given an (external) IP address. v0.1.0.0+
-The retrieved number can be converted to a normal country name
-using MS_UTILS_GETCOUNTRYBYNUMBER.
- wParam=dwExternalIP (same format as used in Netlib)
- lParam=0
-Returns a country number on success,
-or 0xFFFF on failure (MS_UTILS_GETCOUNTRYBYNUMBER returns "Unknown" for this).
-*/
-#define MS_FLAGS_IPTOCOUNTRY "Flags/IpToCountry"
-
-/* Detect the origin country of a contact. v0.1.0.0+
-This uses the contacts's IP first, and falls back on using
-CNF_COUNTRY and CNF_COCOUNTRY of contact details.
-To get the contact's IP it relies on the db setting
-"RealIP" in the proto module.
- wParam=(WPARAM)(HANDLE)hContact
- lParam=0
-Returns a country number on success,
-or 0xFFFF on failure (MS_UTILS_GETCOUNTRYBYNUMBER returns "Unknown" for this).
-*/
-#define MS_FLAGS_DETECTCONTACTORIGINCOUNTRY "Flags/DetectContactOriginCountry"
-
-
-#if !defined(FLAGS_NOSETTINGS) && defined(EXTRA_ICON_ADV2)
-#define SETTING_SHOWSTATUSICONFLAG_DEFAULT 1
-#define SETTING_SHOWEXTRAIMGFLAG_DEFAULT 1
-#define SETTING_EXTRAIMGFLAGCOLUMN_DEFAULT EXTRA_ICON_ADV2
-#define SETTING_USEUNKNOWNFLAG_DEFAULT 1
-#define SETTING_USEIPTOCOUNTRY_DEFAULT 1
-#endif
-
-#endif // M_FLAGS_H
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
diff --git a/ExternalAPI/m_flags.h b/ExternalAPI/m_flags.h
index aafa2fb..40ea0c1 100644
--- a/ExternalAPI/m_flags.h
+++ b/ExternalAPI/m_flags.h
@@ -89,7 +89,7 @@ Returns a country number on success,
or 0xFFFF on failure (MS_UTILS_GETCOUNTRYBYNUMBER returns "Unknown" for this).
*/
#define MS_FLAGS_DETECTCONTACTORIGINCOUNTRY "Flags/DetectContactOriginCountry"
-#define MS_FLAGS_GETCONTACTORIGINCOUNTRY "Flags/GetContactOriginCountry" //for beta version 0.1.1.0
+
#if !defined(FLAGS_NOSETTINGS) && defined(EXTRA_ICON_ADV2)
#define SETTING_SHOWSTATUSICONFLAG_DEFAULT 1
diff --git a/CountryFlags/m_flags.inc b/ExternalAPI/m_flags.inc
index f3dc0e8..f3dc0e8 100644
--- a/CountryFlags/m_flags.inc
+++ b/ExternalAPI/m_flags.inc
diff --git a/ExternalAPI/m_nudge.h b/ExternalAPI/m_nudge.h
index e87e410..e80215e 100644
--- a/ExternalAPI/m_nudge.h
+++ b/ExternalAPI/m_nudge.h
@@ -1,5 +1,10 @@
#define MS_SHAKE_CLIST "SHAKE/Service/ShakeClist"
#define MS_SHAKE_CHAT "SHAKE/Service/ShakeChat"
-#define MS_SHAKE_CLIST_TRIGGER "SHAKE/Service/TriggerShakeClist"
-#define MS_SHAKE_CHAT_TRIGGER "SHAKE/Service/TirggerShakeChat"
#define MS_NUDGE_SEND "NUDGE/Send"
+
+// Hide or Show the context menu "send nudge"
+// wParam = char *szProto
+// lParam = BOOL show
+#define MS_NUDGE_SHOWMENU "NudgeShowMenu"
+
+#define MUUID_NUDGE_SEND { 0x9c66a9a, 0x57dc, 0x454d, { 0xa9, 0x30, 0xf8, 0xc0, 0x4f, 0xe2, 0x98, 0x38 } }
diff --git a/mBot/src/mbot/m_script.h b/ExternalAPI/m_script.h
index 957333a..957333a 100644
--- a/mBot/src/mbot/m_script.h
+++ b/ExternalAPI/m_script.h
diff --git a/Skype/sdk/m_voice.h b/ExternalAPI/m_voice.h
index a81d866..a81d866 100644
--- a/Skype/sdk/m_voice.h
+++ b/ExternalAPI/m_voice.h
diff --git a/Skype/sdk/m_voiceservice.h b/ExternalAPI/m_voiceservice.h
index 98c3580..98c3580 100644
--- a/Skype/sdk/m_voiceservice.h
+++ b/ExternalAPI/m_voiceservice.h
diff --git a/FacebookRM/m_folders.h b/FacebookRM/m_folders.h
deleted file mode 100644
index 0953432..0000000
--- a/FacebookRM/m_folders.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
-Custom profile folders plugin for Miranda IM
-
-Copyright © 2005 Cristian Libotean
-
-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_CUSTOM_FOLDERS_H
-#define M_CUSTOM_FOLDERS_H
-
-#define FOLDERS_API 501 //dunno why it's here but it is :)
-
-#define PROFILE_PATH "%profile_path%"
-#define CURRENT_PROFILE "%current_profile%"
-#define MIRANDA_PATH "%miranda_path%"
-#define PLUGINS_PATH "%miranda_path%" "\\plugins"
-
-#define TO_WIDE(x) L ## x
-
-#define PROFILE_PATHW L"%profile_path%"
-#define CURRENT_PROFILEW L"%current_profile%"
-#define MIRANDA_PATHW L"%miranda_path%"
-
-#define FOLDER_AVATARS PROFILE_PATH "\\" CURRENT_PROFILE "\\avatars"
-#define FOLDER_VCARDS PROFILE_PATH "\\" CURRENT_PROFILE "\\vcards"
-#define FOLDER_LOGS PROFILE_PATH "\\" CURRENT_PROFILE "\\logs"
-#define FOLDER_RECEIVED_FILES PROFILE_PATH "\\" CURRENT_PROFILE "\\received files"
-#define FOLDER_DOCS MIRANDA_PATH "\\" "docs"
-
-#define FOLDER_CONFIG PLUGINS_PATH "\\" "config"
-
-#define FOLDER_SCRIPTS MIRANDA_PATH "\\" "scripts"
-
-#define FOLDER_UPDATES MIRANDA_PATH "\\" "updates"
-
-#define FOLDER_CUSTOMIZE MIRANDA_PATH "\\" "customize"
-#define FOLDER_CUSTOMIZE_SOUNDS FOLDER_CUSTOMIZE "\\sounds"
-#define FOLDER_CUSTOMIZE_ICONS FOLDER_CUSTOMIZE "\\icons"
-#define FOLDER_CUSTOMIZE_SMILEYS FOLDER_CUSTOMIZE "\\smileys"
-#define FOLDER_CUSTOMIZE_SKINS FOLDER_CUSTOMIZE "\\skins"
-#define FOLDER_CUSTOMIZE_THEMES FOLDER_CUSTOMIZE "\\themes"
-
-
-#define FOLDERS_NAME_MAX_SIZE 64 //maximum name and section size
-
-#define FF_UNICODE 0x00000001
-
-#if defined (UNICODE)
- #define FF_TCHAR FF_UNICODE
-#else
- #define FF_TCHAR 0
-#endif
-
-typedef struct{
- int cbSize; //size of struct
- char szSection[FOLDERS_NAME_MAX_SIZE]; //section name, if it doesn't exist it will be created otherwise it will just add this entry to it
- char szName[FOLDERS_NAME_MAX_SIZE]; //entry name - will be shown in options
- union{
- const char *szFormat; //default string format. Fallback string in case there's no entry in the database for this folder. This should be the initial value for the path, users will be able to change it later.
- const wchar_t *szFormatW; //String is dup()'d so you can free it later. If you set the unicode string don't forget to set the flag accordingly.
- const TCHAR *szFormatT;
- };
- DWORD flags; //FF_* flags
-} FOLDERSDATA;
-
-/*Folders/Register/Path service
- wParam - not used, must be 0
- lParam - (LPARAM) (const FOLDERDATA *) - Data structure filled with
- the necessary information.
- Returns a handle to the registered path or 0 on error.
- You need to use this to call the other services.
-*/
-#define MS_FOLDERS_REGISTER_PATH "Folders/Register/Path"
-
-/*Folders/Get/PathSize service
- wParam - (WPARAM) (int) - handle to registered path
- lParam - (LPARAM) (int *) - pointer to the variable that receives the size of the path
- string (not including the null character). Depending on the flags set when creating the path
- it will either call strlen() or wcslen() to get the length of the string.
- Returns the size of the buffer.
-*/
-#define MS_FOLDERS_GET_SIZE "Folders/Get/PathSize"
-
-typedef struct{
- int cbSize;
- int nMaxPathSize; //maximum size of buffer. This represents the number of characters that can be copied to it (so for unicode strings you don't send the number of bytes but the length of the string).
- union{
- char *szPath; //pointer to the buffer that receives the path without the last "\\"
- wchar_t *szPathW; //unicode version of the buffer.
- TCHAR *szPathT;
- };
-} FOLDERSGETDATA;
-
-/*Folders/Get/Path service
- wParam - (WPARAM) (int) - handle to registered path
- lParam - (LPARAM) (FOLDERSGETDATA *) pointer to a FOLDERSGETDATA that has all the relevant fields filled.
- Should return 0 on success, or nonzero otherwise.
-*/
-#define MS_FOLDERS_GET_PATH "Folders/Get/Path"
-
-typedef struct{
- int cbSize;
- union{
- char **szPath; //address of a string variable (char *) or (wchar_t*) where the path should be stored (the last \ won't be copied).
- wchar_t **szPathW; //unicode version of string.
- TCHAR **szPathT;
- };
-} FOLDERSGETALLOCDATA;
-
-/*Folders/GetRelativePath/Alloc service
- wParam - (WPARAM) (int) - Handle to registered path
- lParam - (LPARAM) (FOLDERSALLOCDATA *) data
- This service is the same as MS_FOLDERS_GET_PATH with the difference that this service
- allocates the needed space for the buffer. It uses miranda's memory functions for that and you need
- to use those to free the resulting buffer.
- Should return 0 on success, or nonzero otherwise. Currently it only returns 0.
-*/
-#define MS_FOLDERS_GET_PATH_ALLOC "Folders/Get/Path/Alloc"
-
-
-/*Folders/On/Path/Changed
- wParam - (WPARAM) 0
- lParam - (LPARAM) 0
- Triggered when the folders change, you should reget the paths you registered.
-*/
-#define ME_FOLDERS_PATH_CHANGED "Folders/On/Path/Changed"
-
-#ifndef FOLDERS_NO_HELPER_FUNCTIONS
-
-#ifndef M_UTILS_H__
-#error The helper functions require that m_utils.h be included in the project. Please include that file if you want to use the helper functions. If you don't want to use the functions just define FOLDERS_NO_HELPER_FUNCTIONS.
-#endif
-//#include "../../../include/newpluginapi.h"
-
-__inline static HANDLE FoldersRegisterCustomPath(const char *section, const char *name, const char *defaultPath)
-{
- FOLDERSDATA fd = {0};
- if (!ServiceExists(MS_FOLDERS_REGISTER_PATH)) return 0;
- fd.cbSize = sizeof(FOLDERSDATA);
- strncpy(fd.szSection, section, FOLDERS_NAME_MAX_SIZE);
- fd.szSection[FOLDERS_NAME_MAX_SIZE - 1] = '\0';
- strncpy(fd.szName, name, FOLDERS_NAME_MAX_SIZE);
- fd.szName[FOLDERS_NAME_MAX_SIZE - 1] = '\0';
- fd.szFormat = defaultPath;
- return (HANDLE) CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &fd);
-}
-
-__inline static HANDLE FoldersRegisterCustomPathW(const char *section, const char *name, const wchar_t *defaultPathW)
-{
- FOLDERSDATA fd = {0};
- if (!ServiceExists(MS_FOLDERS_REGISTER_PATH)) return 0;
- fd.cbSize = sizeof(FOLDERSDATA);
- strncpy(fd.szSection, section, FOLDERS_NAME_MAX_SIZE);
- fd.szSection[FOLDERS_NAME_MAX_SIZE - 1] = '\0'; //make sure it's NULL terminated
- strncpy(fd.szName, name, FOLDERS_NAME_MAX_SIZE);
- fd.szName[FOLDERS_NAME_MAX_SIZE - 1] = '\0'; //make sure it's NULL terminated
- fd.szFormatW = defaultPathW;
- fd.flags = FF_UNICODE;
- return (HANDLE) CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &fd);
-}
-
-__inline static int FoldersGetCustomPath(HANDLE hFolderEntry, char *path, const int size, char *notFound)
-{
- FOLDERSGETDATA fgd = {0};
- int res;
- fgd.cbSize = sizeof(FOLDERSGETDATA);
- fgd.nMaxPathSize = size;
- fgd.szPath = path;
- res = CallService(MS_FOLDERS_GET_PATH, (WPARAM) hFolderEntry, (LPARAM) &fgd);
- if (res)
- {
- char buffer[MAX_PATH];
- CallService(MS_UTILS_PATHTOABSOLUTE, (WPARAM) notFound, (LPARAM) buffer);
- mir_snprintf(path, size, "%s", buffer);
- }
- return res;
-}
-
-__inline static int FoldersGetCustomPathW(HANDLE hFolderEntry, wchar_t *pathW, const int count, wchar_t *notFoundW)
-{
- FOLDERSGETDATA fgd = {0};
- int res;
- fgd.cbSize = sizeof(FOLDERSGETDATA);
- fgd.nMaxPathSize = count;
- fgd.szPathW = pathW;
- res = CallService(MS_FOLDERS_GET_PATH, (WPARAM) hFolderEntry, (LPARAM) &fgd);
- if (res)
- {
- wcsncpy(pathW, notFoundW, count);
- pathW[count - 1] = '\0';
- }
- return res;
-}
-
-# ifdef _UNICODE
-# define FoldersGetCustomPathT FoldersGetCustomPathW
-# define FoldersRegisterCustomPathT FoldersRegisterCustomPathW
-#else
-# define FoldersGetCustomPathT FoldersGetCustomPath
-# define FoldersRegisterCustomPathT FoldersRegisterCustomPath
-#endif
-
-#endif
-
-#endif //M_CUSTOM_FOLDERS_H \ No newline at end of file
diff --git a/FacebookRM/m_updater.h b/FacebookRM/m_updater.h
deleted file mode 100644
index 488d372..0000000
--- a/FacebookRM/m_updater.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#ifndef _M_UPDATER_H
-#define _M_UPDATER_H
-
-// NOTES:
-// - For langpack updates, include a string of the following format in the langpack text file:
-// ";FLID: <file listing name> <version>"
-// version must be four numbers seperated by '.', in the range 0-255 inclusive
-// - Updater will disable plugins that are downloaded but were not active prior to the update (this is so that, if an archive contains e.g. ansi and
-// unicode versions, the correct plugin will be the only one active after the new version is installed)...so if you add a support plugin, you may need
-// to install an ini file to make the plugin activate when miranda restarts after the update
-// - Updater will replace all dlls that have the same internal shortName as a downloaded update dll (this is so that msn1.dll and msn2.dll, for example,
-// will both be updated) - so if you have a unicode and a non-unicode version of a plugin in your archive, you should make the internal names different (which will break automatic
-// updates from the file listing if there is only one file listing entry for both versions, unless you use the 'MS_UPDATE_REGISTER' service below)
-// - Updater will install all files in the root of the archive into the plugins folder, except for langpack files that contain the FLID string which go into the root folder (same
-// folder as miranda32.exe)...all folders in the archive will also be copied to miranda's root folder, and their contents transferred into the new folders. The only exception is a
-// special folder called 'root_files' - if there is a folder by that name in the archive, it's contents will also be copied into miranda's root folder - this is intended to be used
-// to install additional dlls etc that a plugin may require)
-
-// if you set Update.szUpdateURL to the following value when registering, as well as setting your beta site and version data,
-// Updater will ignore szVersionURL and pbVersionPrefix, and attempt to find the file listing URL's from the backend XML data.
-// for this to work, the plugin name in pluginInfo.shortName must match the file listing exactly (except for case)
-#define UPDATER_AUTOREGISTER "UpdaterAUTOREGISTER"
-// Updater will also use the backend xml data if you provide URL's that reference the miranda file listing for updates (so you can use that method
-// if e.g. your plugin shortName does not match the file listing) - it will grab the file listing id from the end of these URLs
-
-typedef struct Update_tag {
- int cbSize;
- char *szComponentName; // component name as it will appear in the UI (will be translated before displaying)
-
- char *szVersionURL; // URL where the current version can be found (NULL to disable)
- BYTE *pbVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- // (note that this URL could point at a binary file - dunno why, but it could :)
- int cpbVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szUpdateURL; // URL where dll/zip is located
- // set to UPDATER_AUTOREGISTER if you want Updater to find the file listing URLs (ensure plugin shortName matches file listing!)
-
- char *szBetaVersionURL; // URL where the beta version can be found (NULL to disable betas)
- BYTE *pbBetaVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- int cpbBetaVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szBetaUpdateURL; // URL where dll/zip is located
-
- BYTE *pbVersion; // bytes of current version, used for comparison with those in VersionURL
- int cpbVersion; // number of bytes pointed to by pbVersion
-
- char *szBetaChangelogURL; // url for displaying changelog for beta versions
-} Update;
-
-// register a comonent with Updater
-//
-// wparam = 0
-// lparam = (LPARAM)&Update
-#define MS_UPDATE_REGISTER "Update/Register"
-
-// utility functions to create a version string from a DWORD or from pluginInfo
-// point buf at a buffer at least 16 chars wide - but note the version string returned may be shorter
-//
-__inline static char *CreateVersionString(DWORD version, char *buf) {
- mir_snprintf(buf, 16, "%d.%d.%d.%d", (version >> 24) & 0xFF, (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);
- return buf;
-}
-
-__inline static char *CreateVersionStringPlugin(PLUGININFO *pluginInfo, char *buf) {
- return CreateVersionString(pluginInfo->version, buf);
-}
-
-__inline static char *CreateVersionStringPluginEx(PLUGININFOEX *pluginInfo, char *buf) {
- return CreateVersionString(pluginInfo->version, buf);
-}
-
-
-// register the 'easy' way - use this method if you have no beta URL and the plugin is on the miranda file listing
-// NOTE: the plugin version string on the file listing must be the string version of the version in pluginInfo (i.e. 0.0.0.1,
-// four numbers between 0 and 255 inclusivem, so no letters, brackets, etc.)
-//
-// wParam = (int)fileID - this is the file ID from the file listing (i.e. the number at the end of the download link)
-// lParam = (PLUGININFO*)&pluginInfo
-#define MS_UPDATE_REGISTERFL "Update/RegisterFL"
-
-// this function can be used to 'unregister' components - useful for plugins that register non-plugin/langpack components and
-// may need to change those components on the fly
-// lParam = (char *)szComponentName
-#define MS_UPDATE_UNREGISTER "Update/Unregister"
-
-// this event is fired when the startup process is complete, but NOT if a restart is imminent
-// it is designed for status managment plugins to use as a trigger for beggining their own startup process
-// wParam = lParam = 0 (unused)
-// (added in version 0.1.6.0)
-#define ME_UPDATE_STARTUPDONE "Update/StartupDone"
-
-// this service can be used to enable/disable Updater's global status control
-// it can be called from the StartupDone event handler
-// wParam = (BOOL)enable
-// lParam = 0
-// (added in version 0.1.6.0)
-#define MS_UPDATE_ENABLESTATUSCONTROL "Update/EnableStatusControl"
-
-// An description of usage of the above service and event:
-// Say you are a status control plugin that normally sets protocol or global statuses in your ModulesLoaded event handler.
-// In order to make yourself 'Updater compatible', you would move the status control code from ModulesLoaded to another function,
-// say DoStartup. Then, in ModulesLoaded you would check for the existence of the MS_UPDATE_ENABLESTATUSCONTROL service.
-// If it does not exist, call DoStartup. If it does exist, hook the ME_UPDATE_STARTUPDONE event and call DoStartup from there. You may
-// also wish to call MS_UPDATE_ENABLESTATUSCONTROL with wParam == FALSE at this time, to disable Updater's own status control feature.
-
-// this service can be used to determine whether updates are possible for a component with the given name
-// wParam = 0
-// lParam = (char *)szComponentName
-// returns TRUE if updates are supported, FALSE otherwise
-#define MS_UPDATE_ISUPDATESUPPORTED "Update/IsUpdateSupported"
-
-#endif
-
-
-/////////////// Usage Example ///////////////
-
-#ifdef EXAMPLE_CODE
-
-// you need to #include "m_updater.h" and HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded) in your Load function...
-
-int OnModulesLoaded(WPARAM wParam, LPARAM lParam) {
-
- Update update = {0}; // for c you'd use memset or ZeroMemory...
- char szVersion[16];
-
- update.cbSize = sizeof(Update);
-
- update.szComponentName = pluginInfo.shortName;
- update.pbVersion = (BYTE *)CreateVersionString(&pluginInfo, szVersion);
- update.cpbVersion = strlen((char *)update.pbVersion);
-
- // these are the three lines that matter - the archive, the page containing the version string, and the text (or data)
- // before the version that we use to locate it on the page
- // (note that if the update URL and the version URL point to standard file listing entries, the backend xml
- // data will be used to check for updates rather than the actual web page - this is not true for beta urls)
- update.szUpdateURL = "http://scottellis.com.au:81/test/updater.zip";
- update.szVersionURL = "http://scottellis.com.au:81/test/updater_test.html";
- update.pbVersionPrefix = (BYTE *)"Updater version ";
-
- update.cpbVersionPrefix = strlen((char *)update.pbVersionPrefix);
-
- // do the same for the beta versions of the above struct members if you wish to allow beta updates from another URL
-
- CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update);
-
- // Alternatively, to register a plugin with e.g. file ID 2254 on the file listing...
- // CallService(MS_UPDATE_REGISTERFL, (WPARAM)2254, (LPARAM)&pluginInfo);
-
- return 0;
-}
-
-#endif
diff --git a/GTalkExt/include/m_utils.h b/GTalkExt/include/m_utils.h
deleted file mode 100644
index ce7e0d3..0000000
--- a/GTalkExt/include/m_utils.h
+++ /dev/null
@@ -1 +0,0 @@
-#define WNDCLASS_COLOURPICKER "ColourPicker"
diff --git a/GTalkExt/stdafx.h b/GTalkExt/stdafx.h
index 0b5b27d..185cda1 100644
--- a/GTalkExt/stdafx.h
+++ b/GTalkExt/stdafx.h
@@ -70,4 +70,6 @@
#if _MSC_VER < 1400
#define _tstoi64 _ttoi
#define _tcstoui64(A,B,C) _ttoi(A)
-#endif \ No newline at end of file
+#endif
+
+#define WNDCLASS_COLOURPICKER "ColourPicker" \ No newline at end of file
diff --git a/Nudge/m_nudge.h b/Nudge/m_nudge.h
deleted file mode 100644
index e80215e..0000000
--- a/Nudge/m_nudge.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#define MS_SHAKE_CLIST "SHAKE/Service/ShakeClist"
-#define MS_SHAKE_CHAT "SHAKE/Service/ShakeChat"
-#define MS_NUDGE_SEND "NUDGE/Send"
-
-// Hide or Show the context menu "send nudge"
-// wParam = char *szProto
-// lParam = BOOL show
-#define MS_NUDGE_SHOWMENU "NudgeShowMenu"
-
-#define MUUID_NUDGE_SEND { 0x9c66a9a, 0x57dc, 0x454d, { 0xa9, 0x30, 0xf8, 0xc0, 0x4f, 0xe2, 0x98, 0x38 } }
diff --git a/Skype/m_popup.h b/Skype/m_popup.h
deleted file mode 100644
index 243c8ac..0000000
--- a/Skype/m_popup.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
-===============================================================================
- PopUp plugin
-Plugin Name: PopUp
-Plugin authors: Luca Santarelli aka hrk (hrk@users.sourceforge.net)
- Victor Pavlychko aka zazoo (zazoo@ua.fm)
-===============================================================================
-The purpose of this plugin is to give developers a common "platform/interface"
-to show PopUps. It is born from the source code of NewStatusNotify, another
-plugin I've made.
-
-Remember that users *must* have this plugin enabled, or they won't get any
-popup. Write this in the requirements, do whatever you wish ;-)... but tell
-them!
-===============================================================================
-*/
-#ifndef M_POPUP_H
-#define M_POPUP_H
-
-/*
-NOTE! Since Popup 1.0.1.2 there is a main meun group called "PopUps" where I
-have put a "Enable/Disable" item. You can add your own "enable/disable" items
-by adding these lines before you call MS_CLIST_ADDMAINMENUITEM:
-mi.pszPopUpName = Translate("PopUps");
-mi.position = 0; //You don't need it and it's better if you put it to zero.
-*/
-
-//#define MAX_CONTACTNAME 32
-//#define MAX_SECONDLINE 40
-#define MAX_CONTACTNAME 2048
-#define MAX_SECONDLINE 2048
-
-#define POPUP_USE_SKINNED_BG 0xffffffff
-
-//This is the basic data you'll need to fill and pass to the service function.
-typedef struct {
- HANDLE lchContact; //Handle to the contact, can be NULL (main contact).
- HICON lchIcon; //Handle to a icon to be shown. Cannot be NULL.
- char lpzContactName[MAX_CONTACTNAME]; //This is the contact name or the first line in the plugin. Cannot be NULL.
- char lpzText[MAX_SECONDLINE]; //This is the second line text. Users can choose to hide it. Cannot be NULL.
- COLORREF colorBack; //COLORREF to be used for the background. Can be NULL, default will be used.
- COLORREF colorText; //COLORREF to be used for the text. Can be NULL, default will be used.
- WNDPROC PluginWindowProc; //Read below. Can be NULL; default will be used.
- void * PluginData; //Read below. Can be NULL.
-} POPUPDATA, * LPPOPUPDATA;
-
-typedef struct {
- HANDLE lchContact;
- HICON lchIcon;
- char lpzContactName[MAX_CONTACTNAME];
- char lpzText[MAX_SECONDLINE];
- COLORREF colorBack; //Set background to POPUP_USE_SKINNED_BG to turn on skinning
- COLORREF colorText;
- WNDPROC PluginWindowProc;
- void * PluginData;
- int iSeconds; //Custom delay time in seconds. -1 means "forever", 0 means "default time".
- LPCTSTR lpzClass; //PopUp class. Used with skinning. See PopUp/AddClass for details
- COLORREF skinBack; //Background color for colorizable skins
- char cZero[16 - sizeof(LPCTSTR) - sizeof(COLORREF)];
- //some unused bytes which may come useful in the future.
-} POPUPDATAEX, *LPPOPUPDATAEX;
-
-/*
-When you call MS_POPUP_ADDPOPUP, my plugin will check if the given POPUPDATA structure is filled with acceptable values. If not, the data will be rejected and no popup will be shown.
-
-- lpzText should be given, because it's really bad if a user chooses to have the second line displayed
-and it's empty :-) Just write it and let the user choose if it will be displayed or not.
-
-- PluginWindowProc is a WNDPROC address you have to give me. Why? What? Where? Calm down 8)
-My plugin will take care of the creation of the popup, of the destruction of the popup, of the come into
-view and the hiding of the popup. Transparency, animations... all this stuff.
-My plugin will not (as example) open the MessageWindow when you left click on a popup.
-Why? Because I don't know if your popup desires to open the MessageWindow :))))
-This means that you need to make a WNDPROC which takes care of the WM_messages you need.
-For example, WM_COMMAND or WM_CONTEXTMENU or WM_LMOUSEUP or whatever.
-At the end of your WNDPROC remember to "return DefWindowProc(hwnd, msg, wParam, lParam);"
-When you process a message that needs a return value (an example could be WM_CTLCOLORSTATIC,
-but you don't need to catch it 'cause it's my plugin's job), simply return the nedeed value. :)
-The default WNDPROC does nothing.
-
-- PluginData is a pointer to a void, which means a pointer to anything. You can make your own structure
-to store the data you need (example: a status information, a date, your name, whatever) and give me a
-pointer to that struct.
-You will need to destroy that structure and free the memory when the PopUp is going to be destroyed. You'll know this when you receive a UM_FREEPLUGINDATA. The name tells it all: free your own plugin data.
-
-Appendix A: Messages my plugin will handle and your WNDPROC will never see.
-WM_CREATE, WM_DESTROY, WM_TIMER, WM_ERASEBKGND
-WM_CTLCOLOR* [whatever it may be: WM_CTLCOLORDLG, WM_CTLCOLORSTATIC...]
-WM_PAINT, WM_PRINT, WM_PRINTCLIENT
-
-Appendix B: "What do I need to do?!?".
-Here is an example in C.
-
-//Your plugin is in /plugins/myPlugin/ or in miranda32/something/
-#include "../../plugins/PopUp/m_popup.h"
-
-Define your own plugin data if you need it. In this example, we need it and we'll use NewStatusNotify as example: thsi plugin shows a popup when someone in your contact list changes his/hers status. We'll need to know his status, both current and old one.
-typedef struct {
- WORD oldStatus;
- WORD newStatus;
-} MY_PLUGIN_DATA;
-
-When we need to show the popup, we do:
-{
- POPUPDATA ppd;
- hContact = A_VALID_HANDLE_YOU_GOT_FROM_SOMEWHERE;
- hIcon = A_VALID_HANDLE_YOU_GOT_SOMEWHERE;
- char * lpzContactName = (char*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)lhContact,0);
- //99% of the times you'll just copy this line.
- //1% of the times you may wish to change the contact's name. I don't know why you should, but you can.
- char * lpzText;
- //The text for the second line. You could even make something like: char lpzText[128]; lstrcpy(lpzText, "Hello world!"); It's your choice.
- COLORREF colorBack = GetSysColor(COLOR_BTNFACE); //The colour of Miranda's option Pages (and many other windows...)
- COLORREF colorText = RGB(255,255,255); //White.
- MY_PLUGIN_DATA * mpd = (MY_PLUGIN_DATA*)malloc(sizeof(MY_PLUGIN_DATA));
-
- ZeroMemory(ppd, sizeof(ppd)); //This is always a good thing to do.
- ppd.lchContact = (HANDLE)hContact; //Be sure to use a GOOD handle, since this will not be checked.
- ppd.lchIcon = hIcon;
- lstrcpy(ppd.lpzContactName, lpzContactName);
- lstrcpy(ppd.lpzText, lpzText);
- ppd.colorBack = colorBack;
- ppd.colorText = colorText;
- ppd.PluginWindowProc = (WNDPROC)PopupDlgProc;
-
- //Now the "additional" data.
- mpd->oldStatus = ID_STATUS_OFFLINE;
- mpd->newStatus = ID_STATUS_ONLINE;
-
- //Now that the plugin data has been filled, we add it to the PopUpData.
- ppd.PluginData = mpd;
-
- //Now that every field has been filled, we want to see the popup.
- CallService(MS_POPUP_ADDPOPUP, (WPARAM)&ppd, 0);
-}
-
-Obviously, you have previously declared some:
-static int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- switch(message) {
- case WM_COMMAND:
- if ((HIWORD)wParam == STN_CLICKED) { //It was a click on the Popup.
- PUDeletePopUp(hWnd);
- return TRUE;
- }
- break;
- case UM_FREEPLUGINDATA: {
- MY_PLUGIN_DATA * mpd = NULL;
- mpd = (MY_PLUGIN_DATA*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)mpd);
- if (mdp > 0) free(mpd);
- return TRUE; //TRUE or FALSE is the same, it gets ignored.
- }
- default:
- break;
- }
- return DefWindowProc(hWnd, message, wParam, lParam);
-}
-*/
-
-/*
-Creates, adds and shows a popup, given a (valid) POPUPDATA structure pointer.
-wParam = (WPARAM)(*POPUPDATA)PopUpDataAddress
-lParam = 0
-Returns: > 0 on success, 0 if creation went bad, -1 if the PopUpData contained unacceptable values.
-NOTE: it returns -1 if the PopUpData was not valid, if there were already too many popups, if the module was disabled.
-Otherwise, it can return anything else...
-*/
-#define MS_POPUP_ADDPOPUP "PopUp/AddPopUp"
-static int __inline PUAddPopUp(POPUPDATA* ppdp) {
- return CallService(MS_POPUP_ADDPOPUP, (WPARAM)ppdp,0);
-}
-
-#define MS_POPUP_ADDPOPUPEX "PopUp/AddPopUpEx"
-static int __inline PUAddPopUpEx(POPUPDATAEX* ppdp) {
- return CallService(MS_POPUP_ADDPOPUPEX, (WPARAM)ppdp,0);
-}
-
-/*
-Returns the handle to the contact associated to the specified PopUpWindow.
-You will probably need to know this handle inside your WNDPROC. Exampole: you want to open the MessageWindow. :-)
-Call MS_POPUP_GETCONTACT on the hWnd you were given in the WNDPROC.
-wParam = (WPARAM)(HWND)hPopUpWindow
-lParam = 0;
-Returns: the HANDLE of the contact. Can return NULL, meaning it's the main contact. -1 means failure.
-*/
-#define MS_POPUP_GETCONTACT "PopUp/GetContact"
-static HANDLE __inline PUGetContact(HWND hPopUpWindow) {
- return (HANDLE)CallService(MS_POPUP_GETCONTACT, (WPARAM)hPopUpWindow,0);
-}
-
-/*
-wParam = (WPARAM)(HWND)hPopUpWindow
-lParam = (LPARAM)(PLUGINDATA*)PluginDataAddress;
-Returns: the address of the PLUGINDATA structure. Can return NULL, meaning nothing was given. -1 means failure.
-IMPORTANT NOTE: it doesn't seem to work if you do:
-CallService(..., (LPARAM)aPointerToAStruct);
-and then use that struct.
-Do this, instead:
-aPointerToStruct = CallService(..., (LPARAM)aPointerToAStruct);
-and it will work. Just look at the example I've written above (PopUpDlgProc).
-*/
-#define MS_POPUP_GETPLUGINDATA "PopUp/GetPluginData"
-static void __inline * PUGetPluginData(HWND hPopUpWindow) {
- long * uselessPointer = NULL;
- return (void*)CallService(MS_POPUP_GETPLUGINDATA,(WPARAM)hPopUpWindow,(LPARAM)uselessPointer);
-}
-
-/*
-wParam = 0
-lParam = 0
-Returns: 0 if the user has chosen not to have the second line, 1 if he choose to have the second line.
-*/
-#define MS_POPUP_ISSECONDLINESHOWN "PopUp/IsSecondLineShown"
-static BOOL __inline PUIsSecondLineShown() {
- return (BOOL)CallService(MS_POPUP_ISSECONDLINESHOWN,0,0);
-}
-
-/*
-Requests an action or an answer from PopUp module.
-wParam = (WPARAM)wpQuery
-returns 0 on success, -1 on error, 1 on stupid calls ;-)
-*/
-#define PUQS_ENABLEPOPUPS 1 //returns 0 if state was changed, 1 if state wasn't changed
-#define PUQS_DISABLEPOPUPS 2 // " "
-#define PUQS_GETSTATUS 3 //Returns 1 (TRUE) if popups are enabled, 0 (FALSE) if popups are disabled.
-
-#define MS_POPUP_QUERY "PopUp/Query"
-
-/*
-UM_FREEPLUGINDATA
-wParam = lParam = 0. Process this message if you have allocated your own memory. (i.e.: POPUPDATA.PluginData != NULL)
-*/
-#define UM_FREEPLUGINDATA (WM_USER + 0x0200)
-
-/*
-UM_DESTROYPOPUP
-wParam = lParam = 0. Send this message when you want to destroy the popup, or use the function below.
-*/
-#define UM_DESTROYPOPUP (WM_USER + 0x0201)
-static int __inline PUDeletePopUp(HWND hWndPopUp) {
- return (int)SendMessage(hWndPopUp, UM_DESTROYPOPUP,0,0);
-}
-
-/*
-UM_INITPOPUP
-wParam = (WPARAM)(HWND)hPopUpWindow (but this is useless, since I'll directly send it to your hPopUpWindow
-lParam = 0.
-This message is sent to the PopUp when its creation has been finished, so POPUPDATA (and thus your PluginData) is reachable.
-Catch it if you needed to catch WM_CREATE or WM_INITDIALOG, which you'll never ever get in your entire popup-life.
-Return value: if you process this message, return 0. If you don't process it, return 0. Do whatever you like ;-)
-*/
-#define UM_INITPOPUP (WM_USER + 0x0202)
-
-/*
-wParam = (WPARAM)(HWND)hPopUpWindow
-lParam = (LPARAM)(char*)lpzNewText
-returns: > 0 for success, -1 for failure, 0 if the failure is due to second line not being shown. (but you could call PUIsSecondLineShown() before changing the text...)
-Changes the text displayed in the second line of the popup.
-*/
-#define MS_POPUP_CHANGETEXT "PopUp/Changetext"
-static int __inline PUChangeText(HWND hWndPopUp, LPCTSTR lpzNewText) {
- return (int)CallService(MS_POPUP_CHANGETEXT, (WPARAM)hWndPopUp, (LPARAM)lpzNewText);
-}
-
-/*
-This is mainly for developers.
-Shows a warning message in a PopUp. It's useful if you need a "MessageBox" like function, but you don't want a modal window (which will interfere with a DialogProcedure. MessageBox steals focus and control, this one not.
-wParam = (char*) lpzMessage
-lParam = 0;
-Returns: 0 if the popup was shown, -1 in case of failure.
-*/
-#define SM_WARNING 0x01 //Triangle icon.
-#define SM_NOTIFY 0x02 //Exclamation mark icon.
-#define MS_POPUP_SHOWMESSAGE "PopUp/ShowMessage"
-
-static int __inline PUShowMessage(char* lpzText, BYTE kind) {
- return (int)CallService(MS_POPUP_SHOWMESSAGE, (WPARAM)lpzText,(LPARAM)kind);
-}
-
-/*
-Each skinned popup (e.g. with colorBack == POPUP_USE_SKINNED_BG) should have
-class set. Then you can choose separate skin for each class (for example, you
-can create separate class for your plugin and use it for all ypu popups. User
-would became able to choose skin for your popups independently from others)
-
-You have to register popup class before using it. To do so call "PopUp/AddClass"
-with lParam = (LPARAM)(const char *)popUpClassName.
-
-All class names are translated (via Translate()) before being added to list. You
-should use english names for them.
-
-There are three predefined classes and one for backward compatability.
-
-Note that you can add clases after popup wal loaded, e.g. you shoul intercept
-ME_SYSTEM_MODULESLOADED event
-*/
-#define MS_POPUP_ADDCLASS "PopUp/AddClass"
-#define POPUP_CLASS_DEFAULT "Default"
-#define POPUP_CLASS_WARNING "Warning"
-#define POPUP_CLASS_NOTIFY "Notify"
-#define POPUP_CLASS_OLDAPI "PopUp 1.0.1.x compatability" // for internal purposes
-
-static void __inline PUAddClass(const char *lpzClass){
- CallService(MS_POPUP_ADDCLASS, 0, (LPARAM)lpzClass);
-}
-
-#endif
diff --git a/Skype/m_toptoolbar.h b/Skype/m_toptoolbar.h
deleted file mode 100644
index 6b1a018..0000000
--- a/Skype/m_toptoolbar.h
+++ /dev/null
@@ -1,107 +0,0 @@
-
-#ifndef M_TOPTOOLBAR_H
-#define M_TOPTOOLBAR_H
-
-//button flags
-#define TTBBF_DISABLED 1
-#define TTBBF_VISIBLE 2
-#define TTBBF_PUSHED 4
-#define TTBBF_SHOWTOOLTIP 8
-#define TTBBF_DRAWBORDER 16//draw border for bitmap,bitmap must be WxH 16x12
-#define TTBBF_ISSEPARATOR 32
-
-//for internal launch buttons
-#define TTBBF_ISLBUTTON 64
-
-typedef struct {
- int cbSize;
- HBITMAP hbBitmapUp;
- HBITMAP hbBitmapDown;
- char *pszServiceUp;
- char *pszServiceDown;
- DWORD dwFlags;
- LPARAM lParamUp;
- WPARAM wParamUp;
- LPARAM lParamDown;
- WPARAM wParamDown;
- char *name;
-
-} TTBButton, * lpTTBButton;
-
-//=== EVENTS ===
-/*
-toptoolbar/moduleloaded event
-wParam = lParam = 0
-Called when the toolbar services are available
-
-!!!Warning you may work with TTB services only in this event or later.
-
-*/
-#define ME_TTB_MODULELOADED "TopToolBar/ModuleLoaded"
-
-
-
-//=== SERVICES ===
-/*
-toptoolbar/addbutton service
-wparam = (TTBButton*)lpTTBButton
-lparam = 0
-returns: hTTBButton - handle of added button on success, -1 on failure.
-*/
-#define MS_TTB_ADDBUTTON "TopToolBar/AddButton"
-
-/*
-toptoolbar/removebutton service
-wparam = (HANDLE)hTTButton
-lparam = 0
-returns: 0 on success, -1 on failure.
-*/
-#define MS_TTB_REMOVEBUTTON "TopToolBar/RemoveButton"
-
-/*
-toptoolbar/setstate service
-wparam = (HANDLE)hTTButton
-lparam = (LPARAM) state
-returns: 0 on success, -1 on failure.
-*/
-#define TTBST_PUSHED 1
-#define TTBST_RELEASED 2
-
-#define MS_TTB_SETBUTTONSTATE "TopToolBar/SetState"
-
-/*
-toptoolbar/getstate service
-wparam = (HANDLE)hTTButton
-lparam = 0
-returns: state on success, -1 on failure.
-*/
-#define MS_TTB_GETBUTTONSTATE "TopToolBar/GetState"
-
-/*
-toptoolbar/getoptions service
-(HIWORD)wparam = (HANDLE)hTTButton
-(LOWORD)wparam = TTBO_FLAG
-lparam = 0,or lparam=lpTTBButton if flag=TTBO_ALLDATA
-returns: value on success, -1 on failure.
-*/
-#define TTBO_FLAGS 0 //get/set all flags
-#define TTBO_POS 1 //position
-#define TTBO_WIDTH 2 //not impemented
-#define TTBO_HEIGHT 3 //not impemented
-#define TTBO_TIPNAME 4 //tool tip name
-#define TTBO_ALLDATA 5 //change all data via lparam=lpTTBButton
-
-
-#define MS_TTB_GETBUTTONOPTIONS "TopToolBar/GetOptions"
-
-/*
-toptoolbar/setoptions service
-(HIWORD)wparam = (HANDLE)hTTButton
-(LOWORD)wparam = TTBO_FLAG
-lparam = value
-returns: 1 on success, -1 on failure.
-*/
-#define MS_TTB_SETBUTTONOPTIONS "TopToolBar/SetOptions"
-
-
-#endif \ No newline at end of file
diff --git a/Skype/sdk/m_folders.h b/Skype/sdk/m_folders.h
deleted file mode 100644
index a112b05..0000000
--- a/Skype/sdk/m_folders.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
-Custom profile folders plugin for Miranda IM
-
-Copyright © 2005 Cristian Libotean
-
-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_CUSTOM_FOLDERS_H
-#define M_CUSTOM_FOLDERS_H
-
-#define FOLDERS_API 501 //dunno why it's here but it is :)
-
-#define PROFILE_PATH "%profile_path%"
-#define CURRENT_PROFILE "%current_profile%"
-#define MIRANDA_PATH "%miranda_path%"
-#define PLUGINS_PATH "%miranda_path%" "\\plugins"
-
-#define TO_WIDE(x) L ## x
-
-#define PROFILE_PATHW L"%profile_path%"
-#define CURRENT_PROFILEW L"%current_profile%"
-#define MIRANDA_PATHW L"%miranda_path%"
-
-#define FOLDER_AVATARS PROFILE_PATH "\\" CURRENT_PROFILE "\\avatars"
-#define FOLDER_VCARDS PROFILE_PATH "\\" CURRENT_PROFILE "\\vcards"
-#define FOLDER_LOGS PROFILE_PATH "\\" CURRENT_PROFILE "\\logs"
-#define FOLDER_RECEIVED_FILES PROFILE_PATH "\\" CURRENT_PROFILE "\\received files"
-#define FOLDER_DOCS MIRANDA_PATH "\\" "docs"
-
-#define FOLDER_CONFIG PLUGINS_PATH "\\" "config"
-
-#define FOLDER_SCRIPTS MIRANDA_PATH "\\" "scripts"
-
-#define FOLDER_UPDATES MIRANDA_PATH "\\" "updates"
-
-#define FOLDER_CUSTOMIZE MIRANDA_PATH "\\" "customize"
-#define FOLDER_CUSTOMIZE_SOUNDS FOLDER_CUSTOMIZE "\\sounds"
-#define FOLDER_CUSTOMIZE_ICONS FOLDER_CUSTOMIZE "\\icons"
-#define FOLDER_CUSTOMIZE_SMILEYS FOLDER_CUSTOMIZE "\\smileys"
-#define FOLDER_CUSTOMIZE_SKINS FOLDER_CUSTOMIZE "\\skins"
-#define FOLDER_CUSTOMIZE_THEMES FOLDER_CUSTOMIZE "\\themes"
-
-
-#define FOLDERS_NAME_MAX_SIZE 64 //maximum name and section size
-
-#define FF_UNICODE 0x00000001
-
-typedef struct{
- int cbSize; //size of struct
- char szSection[FOLDERS_NAME_MAX_SIZE]; //section name, if it doesn't exist it will be created otherwise it will just add this entry to it
- char szName[FOLDERS_NAME_MAX_SIZE]; //entry name - will be shown in options
- union{
- const char *szFormat; //default string format. Fallback string in case there's no entry in the database for this folder. This should be the initial value for the path, users will be able to change it later.
- const wchar_t *szFormatW; //String is dup()'d so you can free it later. If you set the unicode string don't forget to set the flag accordingly.
- const TCHAR *szFormatT;
- };
- DWORD flags; //FF_* flags
-} FOLDERSDATA;
-
-/*Folders/Register/Path service
- wParam - not used, must be 0
- lParam - (LPARAM) (const FOLDERDATA *) - Data structure filled with
- the necessary information.
- Returns a handle to the registered path or 0 on error.
- You need to use this to call the other services.
-*/
-#define MS_FOLDERS_REGISTER_PATH "Folders/Register/Path"
-
-/*Folders/Get/PathSize service
- wParam - (WPARAM) (int) - handle to registered path
- lParam - (LPARAM) (int *) - pointer to the variable that receives the size of the path
- string (not including the null character). Depending on the flags set when creating the path
- it will either call strlen() or wcslen() to get the length of the string.
- Returns the size of the buffer.
-*/
-#define MS_FOLDERS_GET_SIZE "Folders/Get/PathSize"
-
-typedef struct{
- int cbSize;
- int nMaxPathSize; //maximum size of buffer. This represents the number of characters that can be copied to it (so for unicode strings you don't send the number of bytes but the length of the string).
- union{
- char *szPath; //pointer to the buffer that receives the path without the last "\\"
- wchar_t *szPathW; //unicode version of the buffer.
- TCHAR *szPathT;
- };
-} FOLDERSGETDATA;
-
-/*Folders/Get/Path service
- wParam - (WPARAM) (int) - handle to registered path
- lParam - (LPARAM) (FOLDERSGETDATA *) pointer to a FOLDERSGETDATA that has all the relevant fields filled.
- Should return 0 on success, or nonzero otherwise.
-*/
-#define MS_FOLDERS_GET_PATH "Folders/Get/Path"
-
-typedef struct{
- int cbSize;
- union{
- char **szPath; //address of a string variable (char *) or (wchar_t*) where the path should be stored (the last \ won't be copied).
- wchar_t **szPathW; //unicode version of string.
- TCHAR **szPathT;
- };
-} FOLDERSGETALLOCDATA;
-
-/*Folders/GetRelativePath/Alloc service
- wParam - (WPARAM) (int) - Handle to registered path
- lParam - (LPARAM) (FOLDERSALLOCDATA *) data
- This service is the same as MS_FOLDERS_GET_PATH with the difference that this service
- allocates the needed space for the buffer. It uses miranda's memory functions for that and you need
- to use those to free the resulting buffer.
- Should return 0 on success, or nonzero otherwise. Currently it only returns 0.
-*/
-#define MS_FOLDERS_GET_PATH_ALLOC "Folders/Get/Path/Alloc"
-
-
-/*Folders/On/Path/Changed
- wParam - (WPARAM) 0
- lParam - (LPARAM) 0
- Triggered when the folders change, you should reget the paths you registered.
-*/
-#define ME_FOLDERS_PATH_CHANGED "Folders/On/Path/Changed"
-
-#ifndef FOLDERS_NO_HELPER_FUNCTIONS
-//#include "../../../include/newpluginapi.h"
-
-__inline static int FoldersRegisterCustomPath(const char *section, const char *name, const char *defaultPath)
-{
- FOLDERSDATA fd = {0};
- if (!ServiceExists(MS_FOLDERS_REGISTER_PATH)) return 1;
- fd.cbSize = sizeof(FOLDERSDATA);
- strncpy(fd.szSection, section, FOLDERS_NAME_MAX_SIZE);
- fd.szSection[FOLDERS_NAME_MAX_SIZE - 1] = '\0';
- strncpy(fd.szName, name, FOLDERS_NAME_MAX_SIZE);
- fd.szName[FOLDERS_NAME_MAX_SIZE - 1] = '\0';
- fd.szFormat = defaultPath;
- return CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &fd);
-}
-
-__inline static int FoldersRegisterCustomPathW(const char *section, const char *name, const wchar_t *defaultPathW)
-{
- FOLDERSDATA fd = {0};
- if (!ServiceExists(MS_FOLDERS_REGISTER_PATH)) return 1;
- fd.cbSize = sizeof(FOLDERSDATA);
- strncpy(fd.szSection, section, FOLDERS_NAME_MAX_SIZE);
- fd.szSection[FOLDERS_NAME_MAX_SIZE - 1] = '\0'; //make sure it's NULL terminated
- strncpy(fd.szName, name, FOLDERS_NAME_MAX_SIZE);
- fd.szName[FOLDERS_NAME_MAX_SIZE - 1] = '\0'; //make sure it's NULL terminated
- fd.szFormatW = defaultPathW;
- fd.flags = FF_UNICODE;
- return CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM) &fd);
-}
-
-__inline static int FoldersGetCustomPath(HANDLE hFolderEntry, char *path, const int size, char *notFound)
-{
- FOLDERSGETDATA fgd = {0};
- int res;
- fgd.cbSize = sizeof(FOLDERSGETDATA);
- fgd.nMaxPathSize = size;
- fgd.szPath = path;
- res = CallService(MS_FOLDERS_GET_PATH, (WPARAM) hFolderEntry, (LPARAM) &fgd);
- if (res)
- {
- strncpy(path, notFound, size);
- path[size - 1] = '\0'; //make sure it's NULL terminated
- }
- return res;
-}
-
-__inline static int FoldersGetCustomPathW(HANDLE hFolderEntry, wchar_t *pathW, const int count, wchar_t *notFoundW)
-{
- FOLDERSGETDATA fgd = {0};
- int res;
- fgd.cbSize = sizeof(FOLDERSGETDATA);
- fgd.nMaxPathSize = count;
- fgd.szPathW = pathW;
- res = CallService(MS_FOLDERS_GET_PATH, (WPARAM) hFolderEntry, (LPARAM) &fgd);
- if (res)
- {
- wcsncpy(pathW, notFoundW, count);
- pathW[count - 1] = '\0';
- }
- return res;
-}
-
-# ifdef _UNICODE
-# define FoldersGetCustomPathT FoldersGetCustomPathW
-# define FoldersRegisterCustomPathT FoldersRegisterCustomPathW
-#else
-# define FoldersGetCustomPathT FoldersGetCustomPath
-# define FoldersRegisterCustomPathT FoldersRegisterCustomPath
-#endif
-
-#endif
-
-#endif //M_CUSTOM_FOLDERS_H \ No newline at end of file
diff --git a/Skype/sdk/m_updater.h b/Skype/sdk/m_updater.h
deleted file mode 100644
index 371b743..0000000
--- a/Skype/sdk/m_updater.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef _M_UPDATER_H
-#define _M_UPDATER_H
-
-// NOTES:
-// - For langpack updates, include a string of the following format in the langpack text file:
-// ";FLID: <file listing name> <version>"
-// version must be four numbers seperated by '.', in the range 0-255 inclusive
-// - Updater will disable plugins that are downloaded but were not active prior to the update (this is so that, if an archive contains e.g. ansi and
-// unicode versions, the correct plugin will be the only one active after the new version is installed)...so if you add a support plugin, you may need
-// to install an ini file to make the plugin activate when miranda restarts after the update
-// - Updater will replace all dlls that have the same internal shortName as a downloaded update dll (this is so that msn1.dll and msn2.dll, for example,
-// will both be updated) - so if you have a unicode and a non-unicode version of a plugin in your archive, you should make the internal names different (which will break automatic
-// updates from the file listing if there is only one file listing entry for both versions, unless you use the 'MS_UPDATE_REGISTER' service below)
-// - Updater will install all files in the root of the archive into the plugins folder, except for langpack files that contain the FLID string which go into the root folder (same
-// folder as miranda32.exe)...all folders in the archive will also be copied to miranda's root folder, and their contents transferred into the new folders. The only exception is a
-// special folder called 'root_files' - if there is a folder by that name in the archive, it's contents will also be copied into miranda's root folder - this is intended to be used
-// to install additional dlls etc that a plugin may require)
-
-// if you set Update.szUpdateURL to the following value when registering, as well as setting your beta site and version data,
-// Updater will ignore szVersionURL and pbVersionPrefix, and attempt to find the file listing URL's from the backend XML data.
-// for this to work, the plugin name in pluginInfo.shortName must match the file listing exactly (except for case)
-#define UPDATER_AUTOREGISTER "UpdaterAUTOREGISTER"
-// Updater will also use the backend xml data if you provide URL's that reference the miranda file listing for updates (so you can use that method
-// if e.g. your plugin shortName does not match the file listing) - it will grab the file listing id from the end of these URLs
-
-typedef struct Update_tag {
- int cbSize;
- char *szComponentName; // component name as it will appear in the UI (will be translated before displaying)
-
- char *szVersionURL; // URL where the current version can be found (NULL to disable)
- BYTE *pbVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- // (note that this URL could point at a binary file - dunno why, but it could :)
- int cpbVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szUpdateURL; // URL where dll/zip is located
- // set to UPDATER_AUTOREGISTER if you want Updater to find the file listing URLs (ensure plugin shortName matches file listing!)
-
- char *szBetaVersionURL; // URL where the beta version can be found (NULL to disable betas)
- BYTE *pbBetaVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- int cpbBetaVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szBetaUpdateURL; // URL where dll/zip is located
-
- BYTE *pbVersion; // bytes of current version, used for comparison with those in VersionURL
- int cpbVersion; // number of bytes pointed to by pbVersion
-
- char *szBetaChangelogURL; // url for displaying changelog for beta versions
-} Update;
-
-// register a comonent with Updater
-//
-// wparam = 0
-// lparam = (LPARAM)&Update
-#define MS_UPDATE_REGISTER "Update/Register"
-
-// utility functions to create a version string from a DWORD or from pluginInfo
-// point buf at a buffer at least 16 chars wide - but note the version string returned may be shorter
-//
-__inline static char *CreateVersionString(DWORD version, char *buf) {
- mir_snprintf(buf, 16, "%d.%d.%d.%d", (version >> 24) & 0xFF, (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);
- return buf;
-}
-
-__inline static char *CreateVersionStringPlugin(PLUGININFO *pluginInfo, char *buf) {
- return CreateVersionString(pluginInfo->version, buf);
-}
-
-
-// register the 'easy' way - use this method if you have no beta URL and the plugin is on the miranda file listing
-// NOTE: the plugin version string on the file listing must be the string version of the version in pluginInfo (i.e. 0.0.0.1,
-// four numbers between 0 and 255 inclusivem, so no letters, brackets, etc.)
-//
-// wParam = (int)fileID - this is the file ID from the file listing (i.e. the number at the end of the download link)
-// lParam = (PLUGININFO*)&pluginInfo
-#define MS_UPDATE_REGISTERFL "Update/RegisterFL"
-
-// this function can be used to 'unregister' components - useful for plugins that register non-plugin/langpack components and
-// may need to change those components on the fly
-// lParam = (char *)szComponentName
-#define MS_UPDATE_UNREGISTER "Update/Unregister"
-
-// this event is fired when the startup process is complete, but NOT if a restart is imminent
-// it is designed for status managment plugins to use as a trigger for beggining their own startup process
-// wParam = lParam = 0 (unused)
-// (added in version 0.1.6.0)
-#define ME_UPDATE_STARTUPDONE "Update/StartupDone"
-
-// this service can be used to enable/disable Updater's global status control
-// it can be called from the StartupDone event handler
-// wParam = (BOOL)enable
-// lParam = 0
-// (added in version 0.1.6.0)
-#define MS_UPDATE_ENABLESTATUSCONTROL "Update/EnableStatusControl"
-
-// An description of usage of the above service and event:
-// Say you are a status control plugin that normally sets protocol or global statuses in your ModulesLoaded event handler.
-// In order to make yourself 'Updater compatible', you would move the status control code from ModulesLoaded to another function,
-// say DoStartup. Then, in ModulesLoaded you would check for the existence of the MS_UPDATE_ENABLESTATUSCONTROL service.
-// If it does not exist, call DoStartup. If it does exist, hook the ME_UPDATE_STARTUPDONE event and call DoStartup from there. You may
-// also wish to call MS_UPDATE_ENABLESTATUSCONTROL with wParam == FALSE at this time, to disable Updater's own status control feature.
-
-// this service can be used to determine whether updates are possible for a component with the given name
-// wParam = 0
-// lParam = (char *)szComponentName
-// returns TRUE if updates are supported, FALSE otherwise
-#define MS_UPDATE_ISUPDATESUPPORTED "Update/IsUpdateSupported"
-
-#endif
-
-
-/////////////// Usage Example ///////////////
-
-#ifdef EXAMPLE_CODE
-
-// you need to #include "m_updater.h" and HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded) in your Load function...
-
-int OnModulesLoaded(WPARAM wParam, LPARAM lParam) {
-
- Update update = {0}; // for c you'd use memset or ZeroMemory...
- char szVersion[16];
-
- update.cbSize = sizeof(Update);
-
- update.szComponentName = pluginInfo.shortName;
- update.pbVersion = (BYTE *)CreateVersionString(&pluginInfo, szVersion);
- update.cpbVersion = strlen((char *)update.pbVersion);
-
- // these are the three lines that matter - the archive, the page containing the version string, and the text (or data)
- // before the version that we use to locate it on the page
- // (note that if the update URL and the version URL point to standard file listing entries, the backend xml
- // data will be used to check for updates rather than the actual web page - this is not true for beta urls)
- update.szUpdateURL = "http://scottellis.com.au:81/test/updater.zip";
- update.szVersionURL = "http://scottellis.com.au:81/test/updater_test.html";
- update.pbVersionPrefix = (BYTE *)"Updater version ";
-
- update.cpbVersionPrefix = strlen((char *)update.pbVersionPrefix);
-
- // do the same for the beta versions of the above struct members if you wish to allow beta updates from another URL
-
- CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update);
-
- // Alternatively, to register a plugin with e.g. file ID 2254 on the file listing...
- // CallService(MS_UPDATE_REGISTERFL, (WPARAM)2254, (LPARAM)&pluginInfo);
-
- return 0;
-}
-
-#endif
diff --git a/YAMN/include/m_icolib.h b/YAMN/include/m_icolib.h
deleted file mode 100644
index a31abe2..0000000
--- a/YAMN/include/m_icolib.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// ---------------------------------------------------------------------------80
-// Icons Library Manager plugin for Miranda Instant Messenger
-// __________________________________________________________
-//
-// Copyright © 2005 Denis Stanishevskiy // StDenis
-// Copyright © 2006 Joe Kucera
-//
-// 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.
-//
-// -----------------------------------------------------------------------------
-
-#define SKINICONDESC_SIZE sizeof(SKINICONDESC)
-#define SKINICONDESC_SIZE_V1 0x18
-#define SKINICONDESC_SIZE_V2 0x1C
-#define SKINICONDESC_SIZE_V3 0x24
-
-typedef struct {
- int cbSize;
- union {
- char *pszSection; // section name used to group icons
- TCHAR *ptszSection;
- wchar_t *pwszSection;
- };
- union {
- char *pszDescription; // description for options dialog
- TCHAR *ptszDescription;
- wchar_t *pwszDescription;
- };
- char *pszName; // name to refer to icon when playing and in db
- char *pszDefaultFile; // default icon file to use
- int iDefaultIndex; // index of icon in default file
- HICON hDefaultIcon; // handle to default icon
- int cx,cy; // dimensions of icon
- int flags;
-} SKINICONDESC;
-
-#define SIDF_UNICODE 0x100 // Section and Description are in UCS-2
-
-#if defined(_UNICODE)
- #define SIDF_TCHAR SIDF_UNICODE
-#else
- #define SIDF_TCHAR 0
-#endif
-
-//
-// Add a icon into options UI
-//
-// wParam = (WPARAM)0
-// lParam = (LPARAM)(SKINICONDESC*)sid;
-//
-#define MS_SKIN2_ADDICON "Skin2/Icons/AddIcon"
-
-//
-// Retrieve HICON with name specified in lParam
-// Returned HICON SHOULDN'T be destroyed, it is managed by IcoLib
-//
-
-#define MS_SKIN2_GETICON "Skin2/Icons/GetIcon"
-
-//
-// Icons change notification
-//
-#define ME_SKIN2_ICONSCHANGED "Skin2/IconsChanged"
diff --git a/YAMN/include/m_kbdnotify.h b/YAMN/include/m_kbdnotify.h
deleted file mode 100644
index 256c009..0000000
--- a/YAMN/include/m_kbdnotify.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-
-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 _KBDNOTIFY_
-#define _KBDNOTIFY_
-
-//Enables all notifications (for use by BossKey)
-//wParam=0
-//lParam=0
-//returns 0
-#define MS_KBDNOTIFY_ENABLE "KeyboardNotify/Enable"
-
-
-//Disables all notifications (for use by BossKey)
-//wParam=0
-//lParam=0
-//returns 0
-#define MS_KBDNOTIFY_DISABLE "KeyboardNotify/Disable"
-
-
-//Makes the flashing begin
-//wParam=(unsigned int)eventCount
-//lParam=(char *)szFlashingSequence or NULL if you want the plugin to use current settings
-//returns 0
-#define MS_KBDNOTIFY_STARTBLINK "KeyboardNotify/StartBlinking"
-
-
-//Receives the number of events that were opened (usuful for the 'until events opened' setting)
-//wParam=(unsigned int)eventCount
-//lParam=0
-//returns 0
-#define MS_KBDNOTIFY_EVENTSOPENED "KeyboardNotify/EventsWereOpened"
-
-
-//Informs if the flashing is active
-//wParam=0
-//lParam=0
-//returns 0 if the flashing is inactive or a pointer to the string representing the sequence being used
-#define MS_KBDNOTIFY_FLASHINGACTIVE "KeyboardNotify/IsFlashingActive"
-
-
-//Normalizes the flashing sequence informed
-//wParam=0
-//lParam=(char *)szFlashingSequence <- it is rewritten
-//returns a pointer to the string representing the sequence normalized (which is in fact lParam)
-#define MS_KBDNOTIFY_NORMALSEQUENCE "KeyboardNotify/NormalizeSequence"
-
-
-#endif
diff --git a/YAMN/include/m_uninstaller.h b/YAMN/include/m_uninstaller.h
deleted file mode 100644
index e26f55c..0000000
--- a/YAMN/include/m_uninstaller.h
+++ /dev/null
@@ -1,700 +0,0 @@
-/*
-
- PluginUninstaller 1.1.2.1 for Miranda IM 0.3.3a and +
- ------------------------------------------------------------------------
- Developers - C/C++ Header File
-
- Plugin Info: ----------------------------
- | Version: 1.1.2.1
- | Filename: uninstaller.dll
- | Author: H. Herkenrath (hrathh@users.sourceforge.net)
- | Description: Extends the plugin options and offers the possibility
- | to directly remove plugins and delete all associated
- | settings and files.
-
- Contents: -------------------------------
- | > General Info:
- | - Uninstall Example/Template
- | - Changing displayed icon
- | - Changing displayed docs
- | - Message boxes on uninstall
- | - Service Accesibility
- | - Including this file
- |
- | > Structs:
- | - Uninstall Params (PLUGINUNINSTALLPARAMS)
- |
- | > Helpers:
- | - Macro: Run service while uninstalling (PUICallService)
- | - Function: Remove some files in directory (PUIRemoveFilesInDirectory)
- |
- | > Events:
- | - Allow to uninstall a plugin (ME_PLUGINUNINSTALLER_OKTOUNINSTALL)
- | - Plugin gets uninstalled (ME_PLUGINUNINSTALLER_UNINSTALL)
- |
- | > Services:
- | - Remove database module (MS_PLUGINUNINSTALLER_REMOVEDBMODULE)
- | - Remove a setting globally (MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY)
- | - Remove skinned sound (MS_PLUGINUNINSTALLER_REMOVESKINSOUND)
- | - Uninstall a plugin (MS_PLUGINUNISTALLER_UNISTALLPLUGIN)
- | - Getting handles (MS_PLUGINUNINSTALLER_GETHANDLE)
- |
-
-
- This file is only thought for plugin developers.
- If you only want to use "PluginUninstaller" and don't want to develop a plugin
- or something with it you don't need this file.
-
- If there are any problems or bugs with or in this file or something else
- please mail me. My e-mail address is: hrathh@users.sourceforge.net
- For more documentation you can use this address, too. :-)
-
- If you have any whishes on some plugin uninstalling for your
- plugin you can mail me, too. :-)
-
-*/
-#ifndef M_UNINSTALLER_H
-#define M_UNINSTALLER_H
-
-#ifndef CallService
- #pragma message("Mistake Alert!: "m_uninstaller.h" needs to be included after "newpluginapi.h"!\n The following errors are resulting of this mistake.\n")
-#endif
-
-
-// | General Info
-// -----------------------------
-
-// Uninstall Example/Template
-// ---------------------------
-// Making your plugin uninstallable is very easy.
-// Just add the following "Uninstall" function near the "Unload" function
-// in your plugin.
-// A template plugin is available in the source code package.
-
-// Old:
-// int __declspec(dllexport) Uninstall(BOOL bIsMirandaRunning, BOOL bDoDeleteSettings, char* pszPluginPath);
-
-// New:
-//int __declspec(dllexport) UninstallEx(PLUGINUNINSTALLPARAMS* ppup)
-//{
- // Available Variables:
- // -----------------------------
- // ppup->bIsMirandaRunning:
- // Contains if Miranda is running
- // (Currently this is always TRUE).
-
- // ppup->bDoDeleteSettings:
- // Contains if the users selected
- // that he wants all settings be deleted.
-
- // ppup->pszPluginsPath:
- // Contains the plugins directory name.
-
-
- // Notes:
- // -----------------------------
-
- // Run before "Unload" function:
- // -> IMPORTANT: Be careful not to write to the database or to files in "Unload" again!!!
- // -> Perhaps create a global BOOL variable which is set to TRUE when your plugin gets uninstalled
- // or check of a database setting "IsInstalled" in Unload() or sth. like that
-
- // All Miranda is still loaded
-
- // Here you can do:
- // - Delete settings group in database
- // - Delete registry items
- // - Delete ini-files and other settings files
- // - Delete other files
-
- // Your plugin dll gets automatically deleted
-
- // Services to remove are offered:
- // MS_PLUGINUNINSTALLER_REMOVEDBMODULE
- // MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY
- // MS_PLUGINUNINSTALLER_REMOVESKINSOUND
-
-
- // Getting other useful paths:
- // -----------------------------
-
- // System directory:
-
- //char szSysPath[MAX_PATH];
- //GetSystemDirectory(szSysPath, MAX_PATH);
-
-
- // Windows directory:
-
- //char szWinPath[MAX_PATH];
- //GetWindowsDirectory(szWinPath, MAX_PATH);
-
-
- // Other directories:
-
- // char szPath[MAX_PATH];
- // SHGetSpecialFolderPath(NULL, szPath, CSIDL_* , FALSE);
-
- // Some available dirs:
- // CSIDL_APPDATA CSIDL_SENDTO CSIDL_FAVORITES
- // CSIDL_STARTUP CSIDL_PROFILE CSIDL_DESKTOPDIRECTORY
-
-
- // Delete Files
- //const char* apszFiles[] = {"MyPlugin_Readme.txt", "MyPlugin_License.txt", "MyPlugin_Developer.txt", "MyPlugin_Translation.txt"};
- //PUIRemoveFilesInPath(ppup->pszPluginsPath, apszFiles);
-
- // Delete Settings
- //if(ppup->bDoDeleteSettings == TRUE)
- //{
- //if (ppup->bIsMirandaRunning == TRUE) // Check if it is possible to access services
- //{
- // Remove plugin's module
- //PUIRemoveDbModule("MyPlugin");
-
- // Remove plugin's sounds
- //PUIRemoveSkinSound("MySoundSetting1");
- //PUIRemoveSkinSound("MySoundSetting2");
- //}
- //}
-
- // Remember:
- // Do not forget to remove your (eventually) created registry items here, too.
-
-
- // The plugin's dll file gets deleted after returning.
-
- // Remember:
- // If your DLL file is additionally in use by another application (eg. Windows)
- // you need to free the DLL *here* completely. Otherwise it can't be deleted.
-
-// return 0;
-//}
-
-
-
-// Changing displayed icon
-// ---------------------------
-// The icon that gets displayed on the options page is always the "first"
-// icon in your DLL file.
-// An icon in your DLL file is the first icon when it has the lowest recource ID.
-// If you would like to have an other icon shown in the options please change your
-// icon resource IDs so that the icon you would like to have has the lowest one.
-// For example if you use MS Visual C++, open "resource.h" and change the resource define
-// of your prefered icon to the lowest icon number.
-
-
-// Changing displayed docs
-// ---------------------------
-// The items "License" and "More Information" on the plugin details page
-// are created when the a license and/or a readme file for the plugin exists.
-// The files get detected automatically and need a special name
-// so that they get detected.
-// The text files need to be either placed in the "Plugins" directory or
-// in the "Docs" directory. Whereof the last one is the better one :-)
-//
-// For the license file the following file name formatings are possible:
-// PluginName-License.txt (I personally think that this is the best naming solution... :-) )
-// PluginName_License.txt,
-//
-// For the readme file the following ones are possible:
-// PluginName-Readme.txt (Again...I like this one :-D ),
-// PluginName_Readme.txt,
-
-// Message boxes on uninstall
-// ---------------------------
-// If you would like to ask the user for something to remove/uninstall
-// please hook the event ME_PLUGINUNINSTALLER_UNINSTALL and show your
-// message box there. Save the action the user chose in a
-// global BOOL variable and do the chosen action in "UninstallEx".
-// You can get the plugins options window handle with MS_PLUGINUNINSTALLER_GETHANDLE.
-
-
-// Service Accessibility
-// ---------------------------
-// Remember that you only can use these functions after the event ME_SYSTEM_MODULESLOADED
-// or later because "PluginUninstaller" needs to be loaded first.
-// Normally you only use them in your "UninstallEx" function.
-//
-// IMPORTANT!:
-// Please make sure that you always use the macro PUICallService
-// in the "UninstallEx" function instead of the CallService function.
-
-
-// Including this file
-// ---------------------------
-// To use some of the uninstalling functionality you have to include this file
-// into your project.
-//
-// IMPORTANT!:
-// Please make sure that you include the file "newpluginapi.h" before this one.
-// If this isn't the case there may some compile errors come up.
-
- // -> Example:
- // If your plugin is in the directory "Plugins/MyPlugin/" and
- // this include file is in the directory "Plugins/PluginUninstaller"
- // you can use the following:
-
- //#include "../PluginUninstaller/m_uninstaller.h"
-
- // If your plugin is in an directory that is different to that one just
- // change the include path to the one you want.
-
-
-
-
-
-// | Structs
-// -----------------------------
-
-// ---------------------------------------------
-// -- Struct: Uninstall Params -----------------
-// ---------------------------------------------
-
-// Struct: PLUGINUNINSTALLPARAMS
-// (Gets passed to "UninstallEx" function)
-
-typedef int (*HELPERPROC)(const char*, WPARAM, LPARAM); // Used internally (for pHelperProcAddress)
-
-typedef struct {
- BOOL bIsMirandaRunning; // Is TRUE when Miranda is loaded and services are available (Please use PUICallService instead of CallService)
- BOOL bDoDeleteSettings; // Is TRUE when user wants to delete settings (If this is FALSE, please only delete your files)
- char* pszPluginsPath; // Contains the plugin directory path
- char* pszDocsPath; // Contains the document directory for plugins documentation (Added in version 1.1.1.0)
- char* pszIconsPath; // Contains the icon directory for icon dlls (Added in version 1.1.2.0)
- HELPERPROC pHelperProcAddress; // Used internally (Contains proc address for PUICallService)
-} PLUGINUNINSTALLPARAMS;
-
-
-
-
-
-// | Helper
-// -----------------------------
-
-
-// ---------------------------------------------
-// -- Macro: Run service while uninstalling ----
-// ---------------------------------------------
-
-// Macro: PUICallService
-
-#define PUICallService(service, wParam, lParam) (ppup->pHelperProcAddress) (service, wParam, lParam);
-
-// Description:
-// -------------
-// This service provides the possibility to call a Miranda
-// service in the "UninstallEx" function.
-// Important!: Use this macro always instead of "CallService",
-// because else a crash occurs when the plugin was decativated
-// and gets uninstalled
-
-// Parameters:
-// -------------
-// Same parameters as CallService of Miranda Core.
-
-// Return Values:
-// --------------
-// Return values are the same as the CallService function of Miranda Core.
-// Additionaly returns CALLSERVICE_NOTFOUND if Miranda is not loaded
-// which means the services are not accessable.
-
-
- // Example:
- // ----------------------------------
-
- //if ( (bIsMirandaRunning == TRUE) && (bDoDeleteSettings == TRUE) )
- //{
- // Remove plugin's module
- //PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBMODULE, (WPARAM)"MyPlugin", 0);
- //}
-
-
-
-
-// ---------------------------------------------
-// -- Function: Remove some files in directory -
-// ---------------------------------------------
-
-// Function: PUIRemoveFilesInDirectory
-
-static BOOL __inline PUIRemoveFilesInDirectory(char* pszPath, const char* apszFiles[]);
-
-// Description:
-// -------------
-// This helper provides the possibility to easily
-// remove specified files in a specified directory.
-
-// Note: The last version of this helper (PUIRemoveFilesInPath)
-// did not work correctly.
-// Please do now always append a NULL slot to the end of your array.
-
-// Parameters:
-// -------------
-// char* pszPath = Path to the files in array
-// const LPCSTR apszFiles[] = NULL-terminated array of files to be deleted.
-
-// Return Values:
-// --------------
-// Returns TRUE if the files could be deleted.
-// FALSE if the files could not be deleted or did not exist.
-
-
-static BOOL __inline PUIRemoveFilesInDirectory(char* pszPath, const char* apszFiles[])
-{
- char szFile[MAX_PATH];
- BOOL bReturn = FALSE;
- int iFile = 0;
-
- while (apszFiles[iFile] != NULL)
- {
- strncpy(szFile, pszPath, sizeof(szFile));
- strncat(szFile, apszFiles[iFile], sizeof(szFile)-strlen(szFile));
-
- if ((BOOL)DeleteFile(szFile) == TRUE) bReturn = TRUE;
- iFile++;
- }
-
- return bReturn;
-}
-
- // Example:
- // ----------------------------------
-
- //const char* apszFiles[] = {"File1.txt", "File2.txt", "File3.txt", NULL};
- //PUIRemoveFilesInDirectory(ppup->pszPluginsPath, apszFiles);
-
-
-
-
-// | Events
-// -----------------------------
-
-
-// ---------------------------------------------
-// -- Event: Allow to uninstall a plugin -------
-// ---------------------------------------------
-
-// Event: ME_PLUGINUNINSTALLER_OKTOUNINSTALL
-
-#define ME_PLUGINUNINSTALLER_OKTOUNINSTALL "PluginUninstaller/OkToUninstall"
-
-// Submitted Values:
-// -----------------
-// wParam = pszPluginName (String containing the translated plugin name)
-// lParam = pszPluginFile (String containing the plugin dll file name in lower case)
-
-// Return Values:
-// -----------------
-// Returning 1 on this event causes the "Remove Plugin" button to be disabled.
-
-
-
-// ---------------------------------------------
-// -- Event: Plugin gets uninstalled -----------
-// ---------------------------------------------
-
-// Event: ME_PLUGINUNINSTALLER_UNINSTALL
-
-#define ME_PLUGINUNINSTALLER_UNINSTALL "PluginUninstaller/Uninstall"
-
-// Submitted Values:
-// -----------------
-// wParam = pszPluginName (String containing the translated plugin name)
-// lParam = pszPluginFile (String containing the plugin dll file name in lower case)
-
-// Return Values:
-// -----------------
-// Returning 1 on this event causes the uninstall process to be canceled.
-
-// Notice:
-// Hook this event if you would like to ask the user for something to remove/uninstall
-// and show your message box on this event. Save the action the user chose in a
-// global BOOL variable and do the chosen action in "UninstallEx".
-// You can get the plugins options window handle with MS_PLUGINUNINSTALLER_GETHANDLE.
-
-// Other plugins can use this event to be noticed that another plugin isn't installed anylonger.
-
-
-
-
-// | Services
-// -----------------------------
-
-
-// ---------------------------------------------
-// -- Service: Remove database module ----------
-// ---------------------------------------------
-
-// Service: MS_PLUGINUNINSTALLER_REMOVEDBMODULE
-
-#define MS_PLUGINUNINSTALLER_REMOVEDBMODULE "PluginUninstaller/RemoveDbModule"
-
-// Description:
-// -------------
-// This service provides the possibility to delete all database modules
-// associated to your plugin.
-// The specified database module will be removed in all contacts
-// including the NULL contact.
-// Remember to call it always with PUICallService in "UninstallEx" function.
-
-// Parameters:
-// -------------
-// wParam = (char*)pszModule // Pointer to a string containd module name. Can't be NULL
-// lParam = (const char*)apszIgnoreSettings // NULL terminated array of strings. Can be 0 if no settings should be ignored.
- // See example 3 for more details
-
-// Return Values:
-// --------------
-// Returns 0 on success.
-// Nonzero if the module was not present in database.
-
-
-#ifndef UNINSTALLER_NOHELPERS
-
-// Can only be used in "UninstallEx" function
-#define PUIRemoveDbModule(pszModule) PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBMODULE, (WPARAM)pszModule, 0);
-
-#endif
-
-
- // Example 1:
- // ----------------------------------
-
- //PUIRemoveDbModule("MyPlugin");
-
-
- // Example 2:
- // ----------------------------------
-
- //char szModule[] = "MyModule";
- //PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBMODULE, (WPARAM)szModule, 0);
-
-
- // Example 3:
- // ----------------------------------
-
- // This deletes all settings in the specified module exept
- // the specified settings: "Setting1",..."Setting4"
-
- // char szModule[] = "MyModule";
- // const char* apszIgnoreSettings[] = {"Setting1", "Setting2", "Setting3", "Setting4", NULL};
- // PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBMODULE, (WPARAM)szModule, (LPARAM)&apszIgnoreSettings);
-
-
-
-// ---------------------------------------------
-// -- Service: Remove a setting globally -------
-// ---------------------------------------------
-
-// Service: MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY
-
-#define MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY "PluginUninstaller/RemoveDbSettingGlobally"
-
-// Description:
-// -------------
-// This service provides the possibility to delete a specific
-// setting in database in all contacts including the NULL contact.
-// Remember to call it always with PUICallService in "UninstallEx" function.
-
-// Parameters:
-// -------------
-// wParam = (char*)pszModule
-// lParam = (char*)pszSetting
-
-// Return Values:
-// --------------
-// Returns 0 on success.
-// Nonzero if the setting was not present in database.
-
-
-#ifndef UNINSTALLER_NOHELPERS
-
-// Can only be used in "UninstallEx" function
-#define PUIRemoveDbSettingGlobally(pszModule, pszSetting) PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY, (WPARAM)pszModule, (LPARAM)pszSetting);
-
-
-#endif
-
-
- // Example 1:
- // ----------------------------------
-
- //PUIRemoveDbSettingGlobally("MyPlugin", "MySetting");
-
-
- // Example 2:
- // ----------------------------------
-
- //szModule[] = "MyPlugin";
- //szSetting[] = "MySetting";
- //PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBSETTINGGLOBALLY, (WPARAM)szModule, (LPARAM)szSetting);
-
-
-
-
-
-
-// ---------------------------------------------
-// -- Service: Remove skinned sound ------------
-// ---------------------------------------------
-
-// Service: MS_PLUGINUNINSTALLER_REMOVESKINSOUND
-
-#define MS_PLUGINUNINSTALLER_REMOVESKINSOUND "PluginUninstaller/RemoveSkinSound"
-
-// Description:
-// -------------
-// This service provides the possibility to delete all your sound settings
-// associated to your plugin.
-// The specified sound will be be removed.
-// Remember to call it always with PUICallService in "UninstallEx" function.
-
-// Parameters:
-// -------------
-// wParam = (char*)pszSoundSetting
-// lParam = 0
-
-// Return Values:
-// --------------
-// Returns 0 on success.
-// Nonzero if the sound was not present in database.
-
-
-#ifndef UNINSTALLER_NOHELPERS
-
-// Can only be used in "UninstallEx" function
-#define PUIRemoveSkinSound(pszSoundSetting) PUICallService(MS_PLUGINUNINSTALLER_REMOVESKINSOUND, (WPARAM)pszSoundSetting, 0);
-
-#endif
-
-
- // Example 1:
- // ----------------------------------
-
- //PUIRemoveSkinSound("MySoundSetting");
-
-
- // Example 2:
- // ----------------------------------
-
- //szSoundModule[] = "MySoundSetting";
- //PUICallService(MS_PLUGINUNINSTALLER_REMOVEDBMODULE, (WPARAM)szSoundSetting, 0);
-
-
-
-
-
-// ---------------------------------------------
-// -- Service: Uninstall a plugin --------------
-// ---------------------------------------------
-
-// Service: MS_PLUGINUNINSTALLER_UNINSTALLPLUGIN
-
-#define MS_PLUGINUNINSTALLER_UNINSTALLPLUGIN "PluginUninstaller/UninstallPlugin"
-
-// Description:
-// -------------
-// This service marks a plugin to be uninstalled at next restart of Miranda IM.
-// It uses the default value for "Delete all settings".
-// You can use this service for example when you want that your sub-plugin gets
-// also removed when your main-plugin is uninstalled.
-// Note: This service is not needed for the normal uninstalling functionality.
-
-// Parameters:
-// -------------
-// wParam = (char*)pszPluginName // do not translate this!
-// lParam = (char*)pszPluginFile // without path, only file name!
-
-// Return Values:
-// --------------
-// Returns always 0.
-
-
-#ifndef UNINSTALLER_NOHELPERS
-
-int __inline PUIUninstallPlugin(char* pszPluginName, char* pszPluginFile)
-{
- return CallService(MS_PLUGINUNINSTALLER_UNINSTALLPLUGIN, (WPARAM)pszPluginName, (LPARAM)pszPluginFile);
-}
-
-#endif
-
-
- // Example 1:
- // ----------------------------------
-
- //PUIUninstallPlugin("PluginName", "plugin.dll");
-
-
- // Example 2:
- // ----------------------------------
-
- // hInst => Handle of a specific (your?) plugin
- // char szPluginName[] = "YourPluginName";
-
- //char* pFileName;
- //char szPath[MAX_PATH];
-
- //GetModuleFileName(hInst, szPath, sizeof(szPath));
- //pFileName = strrchr(szPath, '\\');
- //pFileName = pFileName+1; // Pointer arithmetic
-
- //CallService(MS_PLUGINUNINSTALLER_UNINSTALLPLUGIN, (WPARAM)szPluginName, (LPARAM)pFileName);
-
-
-
-
-// ---------------------------------------------
-// -- Service: Getting handles -----------------
-// ---------------------------------------------
-
-// Service: MS_PLUGINUNINSTALLER_GETHANDLE
-
-#define MS_PLUGINUNINSTALLER_GETHANDLE "PluginUninstaller/GetHandle"
-
-// Description:
-// -------------
-// This service gets a specified window/instance handle.
-
-// Note: This service must not be used in "UninstallEx" function.
-// It is mainly thought for being used in ME_PLUGINUNINSTALLER_UNINSTALL event
-// to give out a MessageBox or something like that.
-
-// Parameters:
-// -------------
-// wParam = UINT uHandleType;
-// lParam = 0
-
-// Possible values for wParam:
-#define PUIHT_HINST_PLUGIN_INSTANCE 0 // HINSTANCE of the PluginUninstaller plugin
-#define PUIHT_HWND_PLUGIN_OPTIONS 1 // HWND of the plugin options dialog (if it is loaded; else NULL)
-
-// Return Values:
-// --------------
-// Returns the specified handle value.
-// If no handle type is specified it returns NULL.
-// The handle doesn't need to be destroyed.
-
-
-#ifndef UNINSTALLER_NOHELPERS
-
-HANDLE __inline PUIGetHandle(UINT uHandleType)
-{
- return (HANDLE)CallService(MS_PLUGINUNINSTALLER_GETHANDLE, uHandleType, 0);
-}
-
-#endif
-
-
- // Example
- // ----------------------------------
-
- //HWND hwndDlg;
- //hwndDlg = (HWND)PUIGetHandle(PUIHT_HWND_PLUGIN_OPTIONS);
-
-
-
-
-
-#endif // M_UNINSTALLER_H
diff --git a/YAMN/m_account.h b/YAMN/m_account.h
deleted file mode 100644
index 2baadd2..0000000
--- a/YAMN/m_account.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * This file defines all needed parameters for one account.
- * Other plugin can use this (so YAMN does not check it and another plugin can inform YAMN about new mail e.g.),
- * this can be usefull for plugins like Yahoo or MSN (Hotmail notify)
- *
- * (c) majvan 2002-2004
- */
-
-#ifndef __ACCOUNT_H
-#define __ACCOUNT_H
-
-#include <windows.h>
-#include <tchar.h>
-#include "m_synchro.h" //include synchronizing objects. If you want to write protocol plugin, which works with YAMN accounts, it must use YAMN synchronizing objects
-
-//
-//================================== OTHER DEFINITIONS ========================================
-//
-
-enum
-{
-// Error codes returned from functions (services) working with account book files
- EACC_SYSTEM=1, //use GetLastError() to retrieve detailed information about error
- EACC_ALLOC, //problem with memory allocation
- EACC_FILECOMPATIBILITY, //file is corrupted
- EACC_ENDOFFILE, //unexpected end of file occured
- EACC_FILEVERSION, //file should be YAMN book format, but newer version that expected
- EACC_FILESIZE, //file has wrong size
-};
-
-enum
-{
-// Status of account
-// used in messages WM_YAMN_CHANGESTATUS
-// used also in function GetStatus and SetStatus
- ACC_IDLE=0, //account is IDLE (no work is performed with account)
- ACC_FINDING, //DNS lookup for account
- ACC_CONNECTING, //connecting in progress
- ACC_LOGGING, //logging in progress
- ACC_WORKING, //working
- ACC_DISCONNECTING, //disconnecting from server
-};
-
-typedef struct CNotification
-{
-//#define YAMN_NOTIFICATIONVERSION is not implemented, use YAMN_ACCOUNTVERSION instead
- CNotification(): PopUpB(0), PopUpT(0), PopUpTime(0), App(NULL), AppParam(NULL), Sound(NULL), TrayIcon1(NULL), TrayIcon2(NULL) {}
-
-#define YAMN_ACC_SND 0x00000001 //Plays sound (1)
-#define YAMN_ACC_MSG 0x00000002 //Shows dialog
-#define YAMN_ACC_ICO 0x00000004 //Shows system tray icon (1)
-#define YAMN_ACC_ICOB 0x00000008 //not used now, enables tray icon flashing (1)
-#define YAMN_ACC_APP 0x00000010 //Runs application (1)
-#define YAMN_ACC_POP 0x00000020 //Shows popup
-#define YAMN_ACC_POPC 0x00000040 //Use custom colors in popup
-#define YAMN_ACC_MSGP 0x00000080 //Persistant messgage. This means, when an situation occurs (e.g. new mail) and message is displayed, it is not destroyed when YAMN_ACC_MSG is not set
-#define YAMN_ACC_KBN 0x00000100 //Use Keyboard notify
-#define YAMN_ACC_CONT 0x00000200 //Use Contact notify
-#define YAMN_ACC_CONTNICK 0x00000400 //Use Contact Nick replacement
-#define YAMN_ACC_CONTNOEVENT 0x00000800 //Suppress event for this contact
-//(1) - usable only in newmail notification
- DWORD Flags;
-
- COLORREF PopUpB;
- COLORREF PopUpT;
- DWORD PopUpTime;
- WCHAR *App;
- WCHAR *AppParam;
-
-//These parameters are not stored in standard YAMN book file and therefore must be set by plugin
- char *Sound;
- HICON TrayIcon1;
- HICON TrayIcon2;
-} YAMN_NOTIFICATION,*PYAMN_NOTIFICATION;
-
-typedef struct CServer
-{
- CServer(): Name(NULL),Login(NULL),Passwd(NULL) {}
-
- TCHAR *Name;
- DWORD Port;
-
- TCHAR *Login;
-
-// Password encryption definitions
-#define STARTCODEPSW 0x50
-#define ADDCODEPSW 0x0
- TCHAR *Passwd;
-
-} *PSERVER;
-
-//
-//================================== ACCOUNT DEFINITION ==================================
-//
-
-typedef struct CAccount
-{
-#define YAMN_ACCOUNTFILEVERSION 2 //version of standard file format (YAMN book file format)
-#define YAMN_ACCOUNTVERSION 3
-//If changes are made in this structure, version is changed.
-//So then YAMN does not initialzie your structure, if version does not matches.
-
- BOOL AbleToWork; //This is set to TRUE by default. When it is needed to stop working on this account, YAMN sets this to zero.
-
- struct CYAMNProtoPlugin *Plugin; //free access, because this member should not be changed. The same as YAMN_PLUGIN structure
-
- TCHAR *Name; //access only through AccountAccessSO
-
-// DWORD Abilities; //access only through AccountAccessSO
-
- PSERVER Server; //access only through AccountAccessSO
-
- WORD Interval; //access only through AccountAccessSO
-
-// YAMN account flags (set by user)
-#define YAMN_ACC_ENA 0x00000001 //Enables account. If account is disabled, no countdown is performed
-#define YAMN_ACC_POPN 0x00000002 //Shows one popup per one new mail or for N mails
-#define YAMN_ACC_APOP 0x00000004 //Use APOP authentication
-#define YAMN_ACC_SSL23 0x00000008 //Use SSLv2,3
-#define YAMN_ACC_NOTLS 0x00000010 //Don't try StartTLS (STLS) even available
-#define YAMN_ACC_BODY 0x00000020 //Always retrieve body of the message
- DWORD Flags; //access only through AccountAccessSO
-
-// YAMN account flags (set by plugin)
-#define YAMN_ACC_BROWSE 0x00000001 //Can browse mails. On this account we can run mailbrowser window
-#define YAMN_ACC_POPUP 0x00000002 //Popups of new mail belonging to this account can be showed
- DWORD AbilityFlags;
-
-// YAMN account status flags
-#define YAMN_ACC_ST0 0x00000001 //Check (countdown) when Offline
-#define YAMN_ACC_ST1 0x00000002 //Check (countdown) when Online
-#define YAMN_ACC_ST2 0x00000004 //Check (countdown) when Away
-#define YAMN_ACC_ST3 0x00000008 //Check (countdown) when N/A
-#define YAMN_ACC_ST4 0x00000010 //Check (countdown) when Occupied
-#define YAMN_ACC_ST5 0x00000020 //Check (countdown) when DND
-#define YAMN_ACC_ST6 0x00000040 //Check (countdown) when Free for chat
-#define YAMN_ACC_ST7 0x00000080 //Check (countdown) when Invisible
-#define YAMN_ACC_ST8 0x00000100 //Check (countdown) when On the phone
-#define YAMN_ACC_ST9 0x00000200 //Check (countdown) when Out to lunch
-#define YAMN_ACC_STARTA 0x00010000 //Check on start anyway
-#define YAMN_ACC_STARTS 0x00020000 //Check on start regarding to status setting
-#define YAMN_ACC_FORCE 0x00040000 //Check when "check new mail" item pressed (it is called forced checking)
- DWORD StatusFlags; //access only through AccountAccessSO
-
-// Plugin flags. Use this DWORD if you want YAMN to store it to YAMN book file. You can set here any value
- DWORD PluginFlags;
-
- YAMN_NOTIFICATION NewMailN; //access only through AccountAccessSO
- YAMN_NOTIFICATION NoNewMailN; //access only through AccountAccessSO
- YAMN_NOTIFICATION BadConnectN; //access only through AccountAccessSO
-
- SYSTEMTIME LastChecked; //last check, access only through AccountAccessSO
- SYSTEMTIME LastSChecked; //last check (successfull), access only through AccountAccessSO
- SYSTEMTIME LastSynchronised; //last synchronisation (successfull), access only through AccountAccessSO
- SYSTEMTIME LastMail; //last check when new mail detected, access only through AccountAccessSO
-
- char Status[255]; //access only through GetStatusFcn() and SetStatusFcn() functions
-
- DWORD TimeLeft; //access only through AccountAccessSO
-
- HANDLE Mails; //access only through MessagesAccessSO
-
-//Account members are mostly the same, but there can be protocol (POP3,IMAP...) special features.
-//To use them, only inherit this class and add your own features.
-//First idea was to add pointer to void, where plugin can store its own values.
-//But this solution is better in my opinion.
-
-//This is event with counter. Event is signaled when no threads are using account (and will not be using)
-//Very usefull for account delete operation
- PSCOUNTER UsingThreads;
-
-//We have to achieve, that only one thread can write to account and more threads can read.
-//Writing to account means that we change account parameters
-//Reading from account meands we read account parameters
-//Use WaitToRead(), ReadDone(), WaitToWrite(), WriteDone() synchronization functions
-//For plugins, this is a pointer to void. It does not matter for plugin what is this variable for,
-//because plugin works only with synchronization routines. And why is this void * ? It is because
-//plugin does not need to include headers for SWMRG structures...
- PSWMRG AccountAccessSO;
-
-//We have to achieve, that only one thread can write to account mails and more threads can read.
-//While some thread writes mails, other thread can write to account. This can be small problem, but it never appears in YAMN.
-//But you should think about this note if you want to add some features in the future
-//Writing to messages means any changes to message queue or message data
-//Reading from messages means reading message queue (browsing through all messages) or reading message data
-//Use MsgsWaitToRead(),MsgsReadDone(),MsgsWaitToWrite(),MsgsWriteDone() synchronization functions
- PSWMRG MessagesAccessSO;
-
-//For clist contact notification
- HANDLE hContact;
- BOOL isCounting;
-
- struct CAccount *Next;
-} *HACCOUNT;
-
-//
-//================================== FUNCTIONS DEFINITIONS ========================================
-//
-
-typedef void (WINAPI *YAMN_SETSTATUSFCN)(HACCOUNT,TCHAR *);
-typedef void (WINAPI *YAMN_GETSTATUSFCN)(HACCOUNT,TCHAR *);
-
-//
-//================================== QUICK FUNCTION CALL DEFINITIONS ========================================
-//
-
-//These are defininitions for YAMN exported functions. Your plugin can use them.
-//pYAMNFcn is global variable, it is pointer to your structure containing YAMN functions.
-//It is something similar like pluginLink variable in Miranda plugin. If you use
-//this name of variable, you have already defined these functions and you can use them.
-//It's similar to Miranda's CreateService function.
-
-//How to use YAMN functions:
-//Create a structure containing pointer to functions you want to use in your plugin
-//This structure can look something like this:
-//
-// struct
-// {
-// YAMN_SETSTATUSFCN SetStatusFcn;
-// YAMN_GETSTATUSFCN GetStatusFcn;
-// } *pYAMNFcn;
-//
-//then you have to fill this structure with pointers...
-//
-// pYAMNFcn->SetStatusFcn=(YAMN_SETSTATUSFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SETSTATUSID,(LPARAM)0);
-// pYAMNFcn->GetStatusFcn=(YAMN_GETSTATUSFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_GETSTATUSID,(LPARAM)0);
-//
-//and in your plugin just simply use e.g.:
-//
-// SetAccountStatus(ActualAccount,ACC_CONNECTING); //this command set account status to "connecting to server"
-//
-
-#define YAMN_SETSTATUSID "YAMN/SetStatus"
-#define YAMN_GETSTATUSID "YAMN/GetStatus"
-
-#define SetAccountStatus(x,y) pYAMNFcn->SetStatusFcn(x,y)
-#define GetAccountStatus(x,y) pYAMNFcn->GetStatusFcn(x,y)
-
-#endif
diff --git a/YAMN/m_filterplugin.h b/YAMN/m_filterplugin.h
deleted file mode 100644
index 210cb0c..0000000
--- a/YAMN/m_filterplugin.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef __M_FILTERPLUGIN_H
-#define __M_FILTERPLUGIN_H
-
-#include <windows.h>
-#include "mails/m_mails.h" //for mail definition
-
-//
-//================================== IMPORTED FUNCTIONS ==================================
-//
-
-#ifndef YAMN_STANDARDFCN
-typedef DWORD (WINAPI *YAMN_STANDARDFCN)(LPVOID);
-#endif
-typedef DWORD (WINAPI *YAMN_FILTERMAILFCN)(HACCOUNT,DWORD,HYAMNMAIL,DWORD);
-
-typedef struct CFilterImportFcn
-{
-//If changes are made in this structure, version is changed.
-//So then YAMN does not initialize your structure, if version does not match.
-#define YAMN_FILTERIMPORTFCNVERSION 2
-
-//Function is called to get info from mail and mark mail as spam or not...
- YAMN_FILTERMAILFCN FilterMailFcnPtr;
-
-//Function is called when application exits. Plugin should unload
- YAMN_STANDARDFCN UnLoadFcn;
-} YAMN_FILTERIMPORTFCN, *PYAMN_FILTERIMPORTFCN;
-
-//
-//================================== FILTER PLUGIN REGISTRATION STRUCTURES ==================================
-//
-
-typedef struct CFilterPluginRegistration
-{
-#define YAMN_FILTERREGISTRATIONVERSION 2
-//Name of plugin
-//this member CANNOT be NULL. Just write here description, i.e. "PopFile filter plugin for YAMN"
- char *Name;
-
-//The version of plugin. CANNOT be NULL.
- char *Ver;
-
-//Plugin copyright
-//Write here your copyright if you want (or NULL)
- char *Copyright;
-
-//Plugin description. Can be NULL.
- char *Description;
-
-//Your contact (email). Can be NULL.
- char *Email;
-
-//The web page. Can be NULL.
- char *WWW;
-} YAMN_FILTERREGISTRATION, *PYAMN_FILTERREGISTRATION;
-
-typedef struct CYAMNFilterPlugin
-{
-//Importance of plugin. Mails are filtered in the way, that filter with smallest importance number
-//filters and marks mails first and the filter using the highest number marks mails the last. It means,
-//that number with highest number is the most important, because it can set or clear flags as it wants,
-//if another plugin set some flag, plugin with higher number can clear it.
- DWORD Importance;
-
-//All needed other info from plugin
- PYAMN_FILTERREGISTRATION PluginInfo;
-
-//Imported functions
- PYAMN_FILTERIMPORTFCN FilterFcn;
-} YAMN_FILTERPLUGIN, *PYAMN_FILTERPLUGIN, *HYAMNFILTERPLUGIN;
-
-typedef struct CFilterPluginQueue
-{
- HYAMNFILTERPLUGIN Plugin;
- struct CFilterPluginQueue *Next;
-} YAMN_FILTERPLUGINQUEUE,*PYAMN_FILTERPLUGINQUEUE;
-
-//
-//================================== YAMN SERVICES FOR PROTOCOL PLUGIN ==================================
-//
-
-//RegisterFilterPlugin Service
-//Registers filter plugin
-//WPARAM- pointer to YAMN_FILTERREGISTRATION structure. Plugin must not delete this structure from memory.
-//LPARAM- version of YAMN_FILTERREGISTRATION structure (use YAMN_PROTOREGISTRATIONVERSION definition)
-//returns handle to plugin (HYAMNFILTERPLUGIN), if registration failed (plugin not registered) returns NULL
-//You need next to call SetFilterPluginFcnImportFcn to have your plugin cooperated with YAMN.
-#define MS_YAMN_REGISTERFILTERPLUGIN "YAMN/Service/RegisterFilterPlugin"
-
-//UnregisterFilterPlugin Service
-//Unregisters filter plugin
-//WPARAM- (HYAMNFILTERPLUGIN) plugin handle
-//LPARAM- any value
-//returns nonzero if success
-#define MS_YAMN_UNREGISTERFILTERPLUGIN "YAMN/Service/UnregisterFilterPlugin"
-
-//
-//================================== FUNCTIONS DEFINITIONS ========================================
-//
-
-typedef INT_PTR (WINAPI *YAMN_SETFILTERPLUGINFCNIMPORTFCN)(HYAMNFILTERPLUGIN Plugin,DWORD Importance,PYAMN_FILTERIMPORTFCN YAMNFilterFcn,DWORD YAMNFilterFcnVer);
-
-//
-//================================== QUICK FUNCTION CALL DEFINITIONS ========================================
-//
-
-//These are defininitions for YAMN exported functions. Your plugin can use them.
-//pYAMNFcn is global variable, it is pointer to your structure containing YAMN functions.
-//It is something similar like pluginLink variable in Miranda plugin. If you use
-//this name of variable, you have already defined these functions and you can use them.
-//It's similar to Miranda's CreateService function.
-
-//How to use YAMN functions:
-//Create a structure containing pointer to functions you want to use in your plugin
-//This structure can look something like this:
-//
-// struct
-// {
-// YAMN_SETFILTERPLUGINFCNIMPORTFCN SetFilterPluginFcnImportFcn;
-// } *pYAMNFcn;
-//
-//then you have to fill this structure with pointers... If you use Miranda services, you will do it like this
-//
-// pYAMNFcn->SetFilterPluginFcnImportFcn=(YAMN_SETFILTERPLUGINFCNIMPORTFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SETFILTERPLUGINFCNIMPORTID,(LPARAM)0);
-//
-//If you do not use Miranda services, call service MS_YAMN_GETFCNPTR directly. The address to the MS_YAMN_GETFCNPTR is sent to you in LoadFilter function:
-//
-// pYAMNFcn->SetFilterPluginFcnImportFcn=(YAMN_SETFILTERPLUGINFCNIMPORTFCN)YAMN_GetFcnPtr((WPARAM)YAMN_SETFILTERPLUGINFCNIMPORTID,(LPARAM)0);
-//
-//and in your plugin just simply use e.g.:
-//
-// SetFilterPluginFcnImport(...);
-//
-
-#define YAMN_SETFILTERPLUGINFCNIMPORTID "YAMN/SetFilterPluginFcnImport"
-
-#define SetFilterPluginFcnImport(a,b,c,d) pYAMNFcn->SetFilterPluginFcnImportFcn(a,b,c,d)
-
-#endif
diff --git a/YAMN/m_messages.h b/YAMN/m_messages.h
deleted file mode 100644
index 7fc0fbe..0000000
--- a/YAMN/m_messages.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __MESSAGES_H
-#define __MESSAGES_H
-
-//#include "list.h"
-
-// structure for chained list of handles (window handles, account handles, whatever)
-struct WndHandles
-{
- HANDLE Handle;
-
- struct WndHandles *Next;
-};
-
-#define WM_YAMN WM_APP+0x2800 //(0xA800 in fact)
-enum
-{
- WM_YAMN_CHANGEHOTKEY=WM_YAMN,
- WM_YAMN_CHANGETIME,
-
-//ChangeStatus message
-//WPARAM- (HACCOUNT) Account whose status is changed
-//LPARAM- new status of account
- WM_YAMN_CHANGESTATUS,
-
-//StopAccount message
-//WPARAM- (HACCOUNT) Account, which should stop its work and finish immidiatelly
- WM_YAMN_STOPACCOUNT,
-
-//Account content changed
- WM_YAMN_CHANGECONTENT,
-
- WM_YAMN_UPDATEMAILS,
-
- WM_YAMN_NOTIFYICON,
-
- WM_YAMN_CHANGESTATUSOPTION,
-
- WM_YAMN_SHOWSELECTED,
-};
-
-#endif
diff --git a/YAMN/m_protoplugin.h b/YAMN/m_protoplugin.h
deleted file mode 100644
index 4407dae..0000000
--- a/YAMN/m_protoplugin.h
+++ /dev/null
@@ -1,389 +0,0 @@
-#ifndef __M_PROTOPLUGIN_H
-#define __M_PROTOPLUGIN_H
-
-#include <windows.h>
-#include "m_account.h" //for account import functions
-#include "mails/m_mails.h" //for mail import functions
-
-//
-//================================== OTHER DEFINITIONS ========================================
-//
-
-//structure is used to give parameters to Check, Synchro or Timeout function
-struct CheckParam
-{
-//Your plugin should use this definition
-#define YAMN_CHECKVERSION 2
-//Version of this structure. Please verify your version in your plugin
- DWORD Ver;
-//Event that new Check thread must set to signal calling thread that "I've copied all parameters from stack"
-//IMPORTANT!!!: Although version #defined in your plugin is not the same, your plugin MUST signal this event
-//in any way. YAMN is waiting for this event. If you do not signal it, YAMN is blocked.
- HANDLE ThreadRunningEV;
-//ActualAccount- the only parameter used in Check function and should contain all needed information I think :)
- HACCOUNT AccountParam;
-
-//I thought it, but this is needed, too
-#define YAMN_NORMALCHECK 0
-#define YAMN_FORCECHECK 1
- DWORD Flags;
-
-//YAMN writes here some informations that are needed to pass to mail browser function (or bad connection)
- void *BrowserParam;
-//Calling thread (protocol plugin) can write here its own parameters. Usefull when protocol calls its own check function. YAMN always sets this parameter to NULL
- void *CustomParam;
-};
-
-//structure is used to give parameters to DeleteMails function
-struct DeleteParam
-{
-//Your plugin should use this definition
-#define YAMN_DELETEVERSION 1
-//Version of this structure. Please verify your version in your plugin
- DWORD Ver;
-//Event that new Delete thread must set to signal calling thread that it copied all parameters from stack
-//IMPORTANT!!!: Although version #defined in your plugin is not the same, your plugin MUST signal this event
-//in any way. YAMN is waiting for this event. If you do not signal it, YAMN is blocked.
- HANDLE ThreadRunningEV;
-//ActualAccount- which account to delete
- HACCOUNT AccountParam;
-//YAMN writes here some informations that are needed to pass to mail browser function (or bad connection or no new mail)
- void *BrowserParam;
-//Calling thread can write here its own parameter. Usefull when protocol calls its own delete function. YAMN always sets this parameter to NULL
- void *CustomParam;
-};
-
-//
-//================================== IMPORTED FUNCTIONS ==================================
-//
-
-#ifndef YAMN_STANDARDFCN
-typedef DWORD (WINAPI *YAMN_STANDARDFCN)(LPVOID);
-#endif
-typedef struct CYAMNVariables *(WINAPI *YAMN_GETVARIABLESFCN)(DWORD);
-typedef HACCOUNT (WINAPI *YAMN_NEWACCOUNTFCN)(struct CYAMNProtoPlugin *,DWORD);
-typedef void (WINAPI *YAMN_STOPACCOUNTFCN)(HACCOUNT);
-typedef void (WINAPI *YAMN_DELETEACCOUNTFCN)(HACCOUNT);
-typedef DWORD (WINAPI *YAMN_WRITEPLUGINOPTS)(HANDLE File,HACCOUNT);
-typedef DWORD (WINAPI *YAMN_READPLUGINOPTS)(HACCOUNT,TCHAR **,TCHAR *);
-typedef DWORD (WINAPI *YAMN_CHECKFCN)(struct CheckParam *);
-typedef DWORD (WINAPI *YAMN_DELETEFCN)(struct DeleteParam *);
-typedef WCHAR* (WINAPI *YAMN_GETERRORSTRINGWFCN)(DWORD);
-typedef char* (WINAPI *YAMN_GETERRORSTRINGAFCN)(DWORD);
-typedef void (WINAPI *YAMN_DELETEERRORSTRINGFCN)(LPVOID);
-typedef DWORD (WINAPI *YAMN_WRITEACCOUNTSFCN)();
-
-typedef struct CAccountImportFcn
-{
-//If changes are made in this structure, version is changed.
-//So then YAMN does not initialize your structure, if version does not match.
-#define YAMN_PROTOIMPORTFCNVERSION 3
-
-//Note: not all of these functions are needed to be implemented in your protocol plugin. Those
-//functions, which are not implemented, you have to set to NULL.
-
-//Function is called to construct protocol defined account
-//This is VERY IMPORTANT for YAMN and plugin to cooperate:
-//Imagine following situation. YAMN wants to add new account (it is possible e.g.
-//when loading accounts from file), so it has to call protocol constructor.
-//It calls NewAccount function and plugin creates new account and returns
-//its handle (pointer in fact). That means new account is created with plugin features
-//(it is created inherited account, not base class).
- YAMN_NEWACCOUNTFCN NewAccountFcnPtr;
-
-//Function is called to delete protocol defined variables to inherited CAccount structure
- YAMN_DELETEACCOUNTFCN DeleteAccountFcnPtr;
-
-//Function is called when user requests not tu run account longer. (E.g. when closing Miranda)
- YAMN_STOPACCOUNTFCN StopAccountFcnPtr;
-
-//Function is called when plugin should write its own info into book file
- YAMN_WRITEPLUGINOPTS WritePluginOptsFcnPtr;
-
-//Function is called when plugin should read its own info from book file
- YAMN_READPLUGINOPTS ReadPluginOptsFcnPtr;
-
-//Function is called to synchronise account (delete old mails and get the new ones)
- YAMN_CHECKFCN SynchroFcnPtr;
-
-//Function is called when timer timed out- it can be the same as SynchroFcnPtr
- YAMN_CHECKFCN TimeoutFcnPtr;
-
-//Function is called when forced checking- it can be the same as SynchroFcnPtr
- YAMN_CHECKFCN ForceCheckFcnPtr;
-
-//Function is called when user wants to delete mails
- YAMN_DELETEFCN DeleteMailsFcnPtr;
-
-//Function is called when YAMN wants to get error description. Note the parameter given in
-//this function is in fact the same as your CheckFcnPtr, DeleteMailsFcnPtr etc. returns to YAMN.
-//If you want, you may return pointer to some structure, which includes more information about
-//error than only one DWORD. And then, you can in your function create Unicode string containing
-//all your error code. YAMN copies this string into its own buffer. Your error code and pointer
-//can be deleted in DeleteErrorStringFcnPtr, which is called by YAMN
- YAMN_GETERRORSTRINGWFCN GetErrorStringWFcnPtr;
-
-//This is the same as previous one, but plugin returns normal string (not Unicode). YAMN first
-//looks, if your plugin has implemented GetErrorStringWFcnPtr. If not, it looks for this function
-//So as you (of course) wait, you implemnt only one of these functions or no one of them.
- YAMN_GETERRORSTRINGAFCN GetErrorStringAFcnPtr;
-
-//Deletes error string that was allocated in your GetErrorStringXFcnPtr. Parameter to this fcn is
-//Unicode or normal string. Therefore parameter is defined as LPVOID, but your plugin knows if it is
-//Unicode or not...
-//If NULL, YAMN does nothing with string
- YAMN_DELETEERRORSTRINGFCN DeleteErrorStringFcnPtr;
-
-//Function is called to notify plugin, that it is quite good to store account status (and mails)
- YAMN_WRITEACCOUNTSFCN WriteAccountsFcnPtr;
-
-//Function is called when user wants to view mails
-//not used now, in the future
- YAMN_STANDARDFCN ViewMailsFcnPtr;
-
-//Function is called when application exits. Plugin should unload
- YAMN_STANDARDFCN UnLoadFcn;
-} YAMN_PROTOIMPORTFCN, *PYAMN_PROTOIMPORTFCN;
-
-typedef HYAMNMAIL (WINAPI *YAMN_NEWMAILFCN)(HACCOUNT,DWORD);
-typedef void (WINAPI *YAMN_DELETEMAILFCN)(HYAMNMAIL);
-typedef DWORD (WINAPI *YAMN_WRITEMAILOPTS)(HANDLE File,HYAMNMAIL);
-typedef DWORD (WINAPI *YAMN_READMAILOPTS)(HYAMNMAIL,TCHAR **,TCHAR *);
-
-typedef struct CMailImportFcn
-{
-//If changes are made in this structure, version is changed.
-//So then YAMN does not initialize your structure, if version does not match.
-#define YAMN_MAILIMPORTFCNVERSION 1
-
-//Note: not all of these functions are needed to be implemented in your protocol plugin. Those
-//functions, which are not implemented, you have to set to NULL.
-
-//Function is called to construct protocol defined account
-//This is VERY IMPORTANT for YAMN and plugin to cooperate:
-//Imagine following situation. YAMN wants to add new account (it is possible e.g.
-//when loading accounts from file), so it has to call protocol constructor.
-//It calls NewAccount function and plugin creates new account and returns
-//its handle (pointer in fact). That means new account is created with plugin features
-//(it is created inherited account, not base class).
- YAMN_NEWMAILFCN NewMailFcnPtr;
-
-//Function is called to delete protocol defined variables to inherited CAccount structure
- YAMN_DELETEMAILFCN DeleteMailFcnPtr;
-
-//Function is called when plugin should write its own info into book file
- YAMN_WRITEMAILOPTS WriteMailOptsFcnPtr;
-
-//Function is called when plugin should read its own info from book file
- YAMN_READMAILOPTS ReadMailOptsFcnPtr;
-} YAMN_MAILIMPORTFCN, *PYAMN_MAILIMPORTFCN;
-
-//
-//================================== PROTOCOL PLUGIN REGISTRATION STRUCTURES ==================================
-//
-
-typedef struct CProtoPluginRegistration
-{
-#define YAMN_PROTOREGISTRATIONVERSION 1
-//Name of plugin
-//this member CANNOT be NULL. Just write here description, i.e. "Yahoo Mail 1.2"
- char *Name;
-
-//The version of plugin. CANNOT be NULL.
- char *Ver;
-
-//Plugin copyright
-//Write here your copyright if you want (or NULL)
- char *Copyright;
-
-//Plugin description. Can be NULL.
- char *Description;
-
-//Your contact (email). Can be NULL.
- char *Email;
-
-//The web page. Can be NULL.
- char *WWW;
-
-} YAMN_PROTOREGISTRATION, *PYAMN_PROTOREGISTRATION;
-
-typedef struct CYAMNProtoPlugin
-{
-//Pointer to first protocol plugin account
- HACCOUNT FirstAccount;
-
-//We prevent browsing through accounts (chained list) from deleting or adding any account
-//If we want to delete or add, we must have "write" access to AccountBrowserSO
-//Note that accounts can be changed during AccountBrowser is in "read" mode, because we do not add or delete account.
- PSWMRG AccountBrowserSO;
-
-//All needed other info from plugin
- PYAMN_PROTOREGISTRATION PluginInfo;
-
-//Imported functions
- PYAMN_PROTOIMPORTFCN Fcn;
- PYAMN_MAILIMPORTFCN MailFcn;
-} YAMN_PROTOPLUGIN, *PYAMN_PROTOPLUGIN, *HYAMNPROTOPLUGIN;
-
-typedef struct CProtoPluginQueue
-{
- HYAMNPROTOPLUGIN Plugin;
- struct CProtoPluginQueue *Next;
-} YAMN_PROTOPLUGINQUEUE,*PYAMN_PROTOPLUGINQUEUE;
-
-//
-//================================== YAMN SERVICES FOR PROTOCOL PLUGIN ==================================
-//
-
-//RegisterProtoPlugin Service
-//Your plugin can call this service to "connect to YAMN"- it means, that you
-//give some parameters to YAMN and YAMN can then cooperate with your protocol plugins
-//WPARAM- pointer to YAMN_PROTOREGISTRATION structure. Plugin must not delete this structure from memory.
-//LPARAM- version of YAMN_PROTOREGISTRATION structure (use YAMN_PROTOREGISTRATIONVERSION definition)
-//returns handle to plugin (HYAMNPROTOPLUGIN), if registration failed (plugin not registered) returns NULL
-//Note, that your plugin should store returned plugin handle, because it will be usefull in next services.
-//You need next to call SetProtocolPluginFcnImportFcn to have your plugin cooperated with YAMN.
-#define MS_YAMN_REGISTERPROTOPLUGIN "YAMN/Service/RegisterProtocolPlugin"
-
-//UnregisterProtoPlugin Service
-//Removes plugin from YAMN and deltes its structures
-//WPARAM- (HYAMNPROTOPLUGIN) handle of protocol plugin
-//LPARAM- any value
-//returns nonzero if success
-#define MS_YAMN_UNREGISTERPROTOPLUGIN "YAMN/Service/UnregisterProtocolPlugin"
-
-//CreateAccount Service
-//Your plugin should call this to create new account for your plugin.
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- CAccount version (use YAMN_ACCOUNTVERSION definition)
-//returns pointer to (HACCOUNT) or pointer to your structure returned from imported NewAccountFcnPtr, if implemented
-#define MS_YAMN_CREATEPLUGINACCOUNT "YAMN/Service/CreateAccount"
-
-//DeletePluginAccount Service
-//Deletes plugin's account from memory. You probably won't use this service, because it deletes only account
-//without any synchronization. Use MS_YAMN_DELETEACCOUNT instead.
-//WPARAM- (HACCOUNT) to delete
-//LPARAM- any value
-//returns zero if failed, otherwise returns nonzero
-#define MS_YAMN_DELETEPLUGINACCOUNT "YAMN/Service/DeletePluginAccount"
-
-//FindAccountByName Service
-//Searches accounts queue for first account that belongs to plugin
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (TCHAR *)string, name of account to find
-//returns found HACCOUNT handle or NULL if not found
-#define MS_YAMN_FINDACCOUNTBYNAME "YAMN/Service/FindAccountByName"
-
-//GetNextFreeAccount Service
-//Creates new account for plugin and adds it to plugin account queue.
-//Note!!! you have to use AccountBrowserSO in your plugin before and after calling this service, because it is not synchronized
-//So the normal way is like this:
-// WaitToWriteSO(MyPlugin->AccountBrowserSO);
-// CallService(MS_YAMN_GETNEXTFREEACCOUNT,MyPlugin,YAMN_ACCOUNTVERSION);
-// WriteDoneSO(MyPlugin->AccountBrowserSO);
-//
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- CAccount version (use YAMN_ACCOUNTVERSION definition)
-//returns new HACCOUNT handle or NULL if not found
-#define MS_YAMN_GETNEXTFREEACCOUNT "YAMN/Service/GetNextFreeAccount"
-
-//DeleteAccount Service
-//Deletes account from plugin account queue. It also deletes it, but in background (when needed).
-//This deleting is full synchronized and safe. It is recommended for plugins to use this service.
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (HACCOUNT) Account to delete
-#define MS_YAMN_DELETEACCOUNT "YAMN/Service/DeleteAccount"
-
-//ReadAccountsA Service
-//Reads standard accounts to file. Standard account means standard YAMN book format.
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (char *)filename string. Put here your own desired filename.
-//return value is one of the ones written in "account.h" file
-#define MS_YAMN_READACCOUNTSA "YAMN/Service/ReadAccountsA"
-
-//ReadAccountsW Service
-//Same as ReadAccountsA service, but difference is in WPARAM
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (WCHAR *)filename string. Use MS_YAMN_GETFILENAMEW service to retrieve your filename, or
-// just put your own desired filename
-#define MS_YAMN_READACCOUNTSW "YAMN/Service/ReadAccountsW"
-
-//WriteAccountsA Service
-//Writes standard accounts to file. Standard account means standard YAMN book format. It does not
-//store special protocol features. It stores Account settings from CAccount struct and stores MIME mails
-//from CMimeMsgQueue. If your Mails pointer does not point to CMimeMsgQueue structure,
-//do not use this function. You are then forced to write your own function
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (char *)filename string. Put here your own desired filename.
-//return value is one of the ones written in "account.h" file
-#define MS_YAMN_WRITEACCOUNTSA "YAMN/Service/WriteAccountsA"
-
-//WriteAccountsW Service
-//Writes standard accounts to file. Standard account means standard YAMN book format.
-//WPARAM- (HYAMNPLUGIN) Plugin handle
-//LPARAM- (WCHAR *)filename string. Use MS_YAMN_GETFILENAMEW service to retrieve your filename, or
-// just put your own desired filename
-//return value is one of the ones written in "account.h" file
-#define MS_YAMN_WRITEACCOUNTSW "YAMN/Service/WriteAccountsW"
-
-//GetFileNameA Service
-//Function makes original filename, when you add your protocol string
-//From "yahoo" makes "yamn-accounts.yahoo.xxxxx.book" filename
-//It is good to use this fcn to have similar filenames...
-//WPARAM- (char *) plugin string
-//LPARAM- any value
-//returns NULL when failed, otherwise returns (WCHAR *)string (!!! not char *) to filename!!!
-//You can use MS_YAMN_DELETEFILENAME service to release allocated filename from memory
-#define MS_YAMN_GETFILENAMEA "YAMN/Service/GetFileNameA"
-
-//GetFileNameW Service
-//Same as GetFileNameA service, but difference is in WPARAM
-//WPARAM- (WCHAR *) plugin string
-//LPARAM- any value
-#define MS_YAMN_GETFILENAMEW "YAMN/Service/GetFileNameW"
-
-//DeleteFileName Service
-//deletes unicode string from memory
-//WPARAM- (WCHAR *) pointer to unicode string
-//LPARAM- any value
-#define MS_YAMN_DELETEFILENAME "YAMN/Service/DeleteFileName"
-
-//
-//================================== FUNCTIONS DEFINITIONS ========================================
-//
-
-typedef int (WINAPI *YAMN_SETPROTOCOLPLUGINFCNIMPORTFCN)(HYAMNPROTOPLUGIN Plugin,PYAMN_PROTOIMPORTFCN YAMNFcn,DWORD YAMNFcnVer,PYAMN_MAILIMPORTFCN YAMNMailFcn,DWORD YAMNMailFcnVer);
-
-//
-//================================== QUICK FUNCTION CALL DEFINITIONS ========================================
-//
-
-//These are defininitions for YAMN exported functions. Your plugin can use them.
-//pYAMNFcn is global variable, it is pointer to your structure containing YAMN functions.
-//It is something similar like pluginLink variable in Miranda plugin. If you use
-//this name of variable, you have already defined these functions and you can use them.
-//It's similar to Miranda's CreateService function.
-
-//How to use YAMN functions:
-//Create a structure containing pointer to functions you want to use in your plugin
-//This structure can look something like this:
-//
-// struct
-// {
-// YAMN_SETPROTOCOLPLUGINFCNIMPORTFCN SetProtocolPluginFcnImportFcn;
-// } *pYAMNFcn;
-//
-//then you have to fill this structure with pointers...
-//
-// pYAMNFcn->SetProtocolPluginFcnImportFcn=(YAMN_SETPROTOCOLPLUGINFCNIMPORTFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SETPROTOCOLPLUGINFCNIMPORTID,(LPARAM)0);
-//
-//and in your plugin just simply use e.g.:
-//
-// SetProtocolPluginFcnImport(...);
-//
-
-#define YAMN_SETPROTOCOLPLUGINFCNIMPORTID "YAMN/SetProtocolPluginFcnImport"
-
-#define SetProtocolPluginFcnImport(a,b,c,d,e) pYAMNFcn->SetProtocolPluginFcnImportFcn(a,b,c,d,e)
-
-#endif
diff --git a/YAMN/m_synchro.h b/YAMN/m_synchro.h
deleted file mode 100644
index ff3e601..0000000
--- a/YAMN/m_synchro.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#ifndef __SYNCHRO_H
-#define __SYNCHRO_H
-
-#include <windows.h>
-
-//
-//================================== OTHER DEFINITIONS ========================================
-//
-
-#define WAIT_FINISH WAIT_OBJECT_0+1
-
-// This structure is used to get semaphore-like synchronization:
-// Includes incrementing, decrementing DWORD value and if DWORD is zero, sets event
-typedef struct SynchronisedCounter
-{
-// Stores number value
- HANDLE Event;
- DWORD Number;
-
-// These methods are deleted due to external plugins. Use SCGetNumber,SCInc and SCDec instead
-// DWORD GetNumber();
-// DWORD Inc();
-// DWORD Dec();
-
-// Yes, some code is defined here. But it is not so problematic, because it uses only Win32 API calls and Win32 structures,
- SynchronisedCounter(): Number(0)
- {
- InitializeCriticalSection(&CounterCS);
- Event=CreateEvent(NULL,FALSE,TRUE,NULL);
- SetEvent(Event);
- }
-
- SynchronisedCounter(HANDLE InitializedEvent): Number(0)
- {
- InitializeCriticalSection(&CounterCS);
- Event=InitializedEvent;
- SetEvent(Event);
- }
-
- ~SynchronisedCounter()
- {
- DeleteCriticalSection(&CounterCS);
- CloseHandle(Event);
- }
-
-//private: //it is not private as other functions (not methods) use these members
- CRITICAL_SECTION CounterCS;
-} SCOUNTER, *PSCOUNTER;
-
-// The single-writer/multiple-reader guard
-// compound synchronization object (SO)
-// Notices: Copyright (c) 1995-1997 Jeffrey Richter
-// Changes: majvan, only one process implementation,
-// hFinishEV event added- signals when we do not want to use this SO anymore
-typedef struct SingleWriterMultiReaderGuard
-{
-// This event guards access to the other objects
-// managed by this data structure and also indicates
-// whether any writer threads are writing.
- HANDLE hEventNoWriter;
-
-// This manual-reset event is signaled when
-// no reader threads are reading.
- HANDLE hEventNoReaders;
-
-// This value is used simply as a counter.
-// (the count is the number of reader threads)
- HANDLE hSemNumReaders;
-
-// The request is for not to enter critical section
-// for writing or reading due to going to delete guard
- HANDLE hFinishEV;
-} SWMRG, *PSWMRG;
-
-//
-//================================== FUNCTIONS DEFINITIONS ========================================
-//
-
-typedef DWORD (WINAPI *YAMN_WAITTOWRITEFCN)(PSWMRG,PSCOUNTER);
-typedef void (WINAPI *YAMN_WRITEDONEFCN)(PSWMRG,PSCOUNTER);
-typedef DWORD (WINAPI *YAMN_WAITTOREADFCN)(PSWMRG);
-typedef void (WINAPI *YAMN_READDONEFCN)(PSWMRG);
-typedef DWORD (WINAPI *YAMN_SCMANAGEFCN)(PSCOUNTER);
-
-//
-//================================== QUICK FUNCTION CALL DEFINITIONS ========================================
-//
-
-//These are defininitions for YAMN exported functions. Your plugin can use them.
-//pYAMNFcn is global variable, it is pointer to your structure containing YAMN functions.
-//It is something similar like pluginLink variable in Miranda plugin. If you use
-//this name of variable, you have already defined these functions and you can use them.
-//It's similar to Miranda's CreateService function.
-//These functions are used to synchronize accounts. YAMN could create service for these
-//functions and you could call them then e.g. CallService(MS_YAMNWAITTOWRITE,WPARAM,LPARAM),
-//but I think this solution is better, because these functions are much used. It is more
-//"normal" if you call function for example like:
-//WaitToWrite(ActualAccount) than CallService(MS_YAMNWAITTOWRITE,ActualAccount,NULL))
-
-//How to use YAMN functions:
-//Create a structure containing pointer to functions you want to use in your plugin
-//This structure can look something like this:
-//
-// struct
-// {
-// YAMN_WAITTOWRITEFCN WaitToWriteFcn;
-// YAMN_WRITEDONEFCN WriteDoneFcn;
-// } *pYAMNFcn;
-//
-//then you have to fill this structure with pointers...
-//you have to use YAMN service to get pointer, like this (I wrote here all functions you may need,
-//you can copy to your sources only those you need):
-//
-// pYAMNFcn->WaitToWriteFcn=(YAMN_WAITTOWRITEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_WAITTOWRITEID,(LPARAM)0);
-// pYAMNFcn->WriteDoneFcn=(YAMN_WRITEDONEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_WRITEDONEID,(LPARAM)0);
-// pYAMNFcn->WaitToReadFcn=(YAMN_WAITTOREADFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_WAITTOREADID,(LPARAM)0);
-// pYAMNFcn->ReadDoneFcn=(YAMN_READDONEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_READDONEID,(LPARAM)0);
-// pYAMNFcn->SCGetNumberFcn=(YAMN_SCMANAGEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SCGETNUMBERID,(LPARAM)0);
-// pYAMNFcn->SCIncFcn=(YAMN_SCMANAGEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SCINCID,(LPARAM)0);
-// pYAMNFcn->SCDecFcn=(YAMN_SCMANAGEFCN)CallService(MS_YAMN_GETFCNPTR,(WPARAM)YAMN_SCDECID,(LPARAM)0);
-//
-//and in your plugin just simply use e.g.:
-//
-// MsgsWriteDone(ActualAccount); //this command leaves write access to account mails
-//
-
-#define YAMN_WAITTOWRITEID "YAMN/WaitToWrite"
-#define YAMN_WRITEDONEID "YAMN/WriteDone"
-#define YAMN_WAITTOREADID "YAMN/WaitToRead"
-#define YAMN_READDONEID "YAMN/ReadDone"
-#define YAMN_SCGETNUMBERID "YAMN/SCGetNumber"
-#define YAMN_SCINCID "YAMN/SCInc"
-#define YAMN_SCDECID "YAMN/SCDec"
-
-#define WaitToWrite(x) pYAMNFcn->WaitToWriteFcn(x->AccountAccessSO,0)
-#define WaitToWriteEx(x,y) pYAMNFcn->WaitToWriteFcn(x->AccountAccessSO,y)
-#define WriteDone(x) pYAMNFcn->WriteDoneFcn(x->AccountAccessSO,0)
-#define WaitToRead(x) pYAMNFcn->WaitToReadFcn(x->AccountAccessSO)
-#define WaitToReadEx(x,y) pYAMNFcn->WaitToReadFcn(x->AccountAccessSO,y)
-#define ReadDone(x) pYAMNFcn->ReadDoneFcn(x->AccountAccessSO)
-
-#define MsgsWaitToWrite(x) pYAMNFcn->WaitToWriteFcn(x->MessagesAccessSO,0)
-#define MsgsWaitToWriteEx(x,y) pYAMNFcn->WaitToWriteFcn(x->MessagesAccessSO,y)
-#define MsgsWriteDone(x) pYAMNFcn->WriteDoneFcn(x->MessagesAccessSO,0)
-#define MsgsWaitToRead(x) pYAMNFcn->WaitToReadFcn(x->MessagesAccessSO)
-#define MsgsWaitToReadEx(x) pYAMNFcn->WaitToReadFcn(x->MessagesAccessSO,y)
-#define MsgsReadDone(x) pYAMNFcn->ReadDoneFcn(x->MessagesAccessSO)
-
-#define WaitToWriteSO(x) pYAMNFcn->WaitToWriteFcn(x,0)
-#define WaitToWriteSOEx(x,y) pYAMNFcn->WaitToWriteFcn(x,y)
-#define WriteDoneSO(x) pYAMNFcn->WriteDoneFcn(x,0)
-#define WaitToReadSO(x) pYAMNFcn->WaitToReadFcn(x)
-#define WaitToReadSOEx(x,y) pYAMNFcn->WaitToReadFcn(x,y)
-#define ReadDoneSO(x) pYAMNFcn->ReadDoneFcn(x)
-
-#define SCGetNumber(x) pYAMNFcn->SCGetNumberFcn(x)
-#define SCInc(x) pYAMNFcn->SCIncFcn(x)
-#define SCDec(x) pYAMNFcn->SCDecFcn(x)
-
-#endif
diff --git a/YAMN/m_yamn.h b/YAMN/m_yamn.h
deleted file mode 100644
index 035c71f..0000000
--- a/YAMN/m_yamn.h
+++ /dev/null
@@ -1,154 +0,0 @@
-#ifndef __M_YAMN_H
-#define __M_YAMN_H
-
-#include <windows.h>
-
-//
-//================================== VARIABLES STRUCT ========================================
-//
-
-#ifndef MIRANDASERVICE
-typedef INT_PTR (*MIRANDASERVICE)(WPARAM,LPARAM);
-#endif
-
-typedef struct CYAMNVariables
-{
-#define YAMN_VARIABLESVERSION 3
- HINSTANCE hInst;
- HANDLE MessageWnds;
- HANDLE NewMailAccountWnd;
- int Shutdown;
-} YAMN_VARIABLES, *PYAMN_VARIABLES;
-
-//
-//================================== EXPORTED FUNCTIONS STRUCT ===============================
-//
-
-struct CExportedFunctions
-{
- char* ID;
- void *Ptr;
-};
-
-struct CExportedServices
-{
- char* ID;
- INT_PTR (* Ptr)(WPARAM,LPARAM);
-};
-
-//
-//================================== YAMN EVENTS ==================================
-//
-
-//UninstallPlugin Event
-//Sent when user wants to uninstall YAMN and all its plugins
-#define ME_YAMN_UNINSTALLPLUGINS "YAMN/MirandaEvents/UninstallPlugins"
-
-//NewMail Event
-//Notifies you about new mail
-//no arguments now (Developers, send mail, which params would you like to have, but note there's problem that
-//params are 32b numbers. When it is pointer to some data, these data should persist while every plugin read them and
-//after that they can be removed from memory. So it is problem)
-#define ME_YAMN_NEWMAIL "YAMN/MirandaEvents/NewMail"
-
-//
-//================================== YAMN SERVICES ==================================
-//
-
-//GetFcnPtr Service
-//Your plugin can co-operate with YAMN in 2 ways: with Miranda services and with YAMN exported functions
-//Some commands are written in services, some are functions. The advantage of function calling instead of
-//service calling is, that your code is more clear and it is faster than service calling (smaller, FASTER,
-//easier- it is slogan of Miranda, isn't it ?). Miranda service has only 2 parameters, that can be
-//disadvantage too.
-//In every way, it is discutable which functions should be exported or if they should be implemented as
-//services. And if YAMN should export some functions etc. Functions not used very often are now implemented
-//as Miranda services.
-//
-//This service gets pointer to YAMN function. Then you can use function directly. In m_?????.h files you have
-//definitions of some functions, with definitions of structure variable, so you can use functions very
-//clearly, just look to header file.
-//WPARAM- function ID. It is string representating function you need to get pointer (e.g. YAMN_WRITEWAITID)
-//LPARAM- not used now, but set it to 0
-//returns pointer to YAMN function or NULL when functions does not exist
-#define MS_YAMN_GETFCNPTR "YAMN/Service/GetFcn"
-
-//GetVariables Service
-//Ask YAMN for pointer to CYAMNVariables structure.
-//WPARAM- YAMN_VARIABLESVERSION
-//LPARAM- any value
-//returns pointer to YAMN_VARIABLES or NULL when version of structure does not match
-#define MS_YAMN_GETVARIABLES "YAMN/Service/GetVar"
-
-//ForceCheck Service
-//Check mail on accounts
-//WPARAM- not used
-//LPARAM- not used
-#define MS_YAMN_FORCECHECK "YAMN/Service/ForceCheck"
-
-//AccountCheck Service
-//Check mail on individual account
-//WPARAM- HACCOUNT
-//LPARAM- BOOL: Show Popup on no new mail
-#define MS_YAMN_ACCOUNTCHECK "YAMN/Service/AccountCheck"
-
-//Contact List Context Menu Click
-//wParam=(WPARAM)hContact
-//lParam=0
-//
-//Event is fired when there is a double click on a CList contact,
-//it is upto the caller to check for the protocol & status
-//of the HCONTACT, it's not done for you anymore since it didn't make
-//sense to store all this information in memory, etc.
-#define MS_YAMN_CLISTCONTEXT "YAMN/Service/ClistContactContextMenu"
-
-//Contact List Context Menu Click for application
-//wParam=(WPARAM)hContact
-//lParam=0
-//
-//Event is fired when there is a double click on a CList contact,
-//it is upto the caller to check for the protocol & status
-//of the HCONTACT, it's not done for you anymore since it didn't make
-//sense to store all this information in memory, etc.
-#define MS_YAMN_CLISTCONTEXTAPP "YAMN/Service/ClistContactContextMenuApp"
-
-//Contact List Double Click
-//wParam=(WPARAM)hContact
-//lParam=0
-//
-//Event is fired when there is a double click on a CList contact,
-//it is upto the caller to check for the protocol & status
-//of the HCONTACT, it's not done for you anymore since it didn't make
-//sense to store all this information in memory, etc.
-#define MS_YAMN_CLISTDBLCLICK "YAMN/Service/ClistContactDoubleclicked"
-
-//FilterMail Service
-//Ask YAMN to process mail filtering. YAMN calls filter plugins to mark mail as spam etc... Warning! Leave all
-//read or write access to mail as this function waits for write-access to mail!
-//WPARAM- (HACCOUNT) account to which mail belongs
-//LPARAM- (HYAMNMAIL) mail to filter
-#define MS_YAMN_FILTERMAIL "YAMN/Service/FilterMail"
-
-//MailBrowser Service
-//runs mail browser window (or tray icon only or popups only)
-//WPARAM- pointer to YAMN_MAILBROWSERPARAM structure, data to mailbrowser. You do not need to fill ThreadRunningEV event member.
-//LPARAM- YAMN_MAILBROWSERPARAM structure version param. Use YAMN_MAILBROWSERVERSION definition.
-//returns zero if failed, nonzero if succeed
-#define MS_YAMN_MAILBROWSER "YAMN/Service/RunMailBrowser"
-
-//NoNewMail Service
-//runs no new mail procedure (shows popups e.g.)
-//WPARAM- pointer to YAMN_NONEWMAILPARAM structure, data to no new mail procedure. You do not need to fill ThreadRunningEV event member.
-//LPARAM- YAMN_NONEWMAILPARAM structure version param. Use YAMN_NONEWMAILVERSION definition.
-//returns zero if failed, nonzero if succeed
-#define MS_YAMN_NONEWMAILPROC "YAMN/Service/NoNewMailProc"
-
-//BadConnection Service
-//runs bad connection window
-//WPARAM- pointer to YAMN_BADCONNECTIONPARAM structure, data to mailbrowser. You do not need to fill ThreadRunningEV event member.
-//LPARAM- YAMN_BADCONNECTIONPARAM structure version param. Use YAMN_BADCONNECTIONVERSION definition.
-//returns zero if failed, nonzero if succeed
-#define MS_YAMN_BADCONNECTION "YAMN/Service/BadConnection"
-
-#define MUUID_YAMN_FORCECHECK { 0x7d15e716, 0x6045, 0x40e3, { 0xa2, 0xb5, 0x5f, 0xb, 0xa4, 0x2b, 0xc7, 0x77 } }
-#endif
diff --git a/imo2sproxy/src/imo2skype/miranda/sdk/m_updater.h b/imo2sproxy/src/imo2skype/miranda/sdk/m_updater.h
deleted file mode 100644
index 371b743..0000000
--- a/imo2sproxy/src/imo2skype/miranda/sdk/m_updater.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef _M_UPDATER_H
-#define _M_UPDATER_H
-
-// NOTES:
-// - For langpack updates, include a string of the following format in the langpack text file:
-// ";FLID: <file listing name> <version>"
-// version must be four numbers seperated by '.', in the range 0-255 inclusive
-// - Updater will disable plugins that are downloaded but were not active prior to the update (this is so that, if an archive contains e.g. ansi and
-// unicode versions, the correct plugin will be the only one active after the new version is installed)...so if you add a support plugin, you may need
-// to install an ini file to make the plugin activate when miranda restarts after the update
-// - Updater will replace all dlls that have the same internal shortName as a downloaded update dll (this is so that msn1.dll and msn2.dll, for example,
-// will both be updated) - so if you have a unicode and a non-unicode version of a plugin in your archive, you should make the internal names different (which will break automatic
-// updates from the file listing if there is only one file listing entry for both versions, unless you use the 'MS_UPDATE_REGISTER' service below)
-// - Updater will install all files in the root of the archive into the plugins folder, except for langpack files that contain the FLID string which go into the root folder (same
-// folder as miranda32.exe)...all folders in the archive will also be copied to miranda's root folder, and their contents transferred into the new folders. The only exception is a
-// special folder called 'root_files' - if there is a folder by that name in the archive, it's contents will also be copied into miranda's root folder - this is intended to be used
-// to install additional dlls etc that a plugin may require)
-
-// if you set Update.szUpdateURL to the following value when registering, as well as setting your beta site and version data,
-// Updater will ignore szVersionURL and pbVersionPrefix, and attempt to find the file listing URL's from the backend XML data.
-// for this to work, the plugin name in pluginInfo.shortName must match the file listing exactly (except for case)
-#define UPDATER_AUTOREGISTER "UpdaterAUTOREGISTER"
-// Updater will also use the backend xml data if you provide URL's that reference the miranda file listing for updates (so you can use that method
-// if e.g. your plugin shortName does not match the file listing) - it will grab the file listing id from the end of these URLs
-
-typedef struct Update_tag {
- int cbSize;
- char *szComponentName; // component name as it will appear in the UI (will be translated before displaying)
-
- char *szVersionURL; // URL where the current version can be found (NULL to disable)
- BYTE *pbVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- // (note that this URL could point at a binary file - dunno why, but it could :)
- int cpbVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szUpdateURL; // URL where dll/zip is located
- // set to UPDATER_AUTOREGISTER if you want Updater to find the file listing URLs (ensure plugin shortName matches file listing!)
-
- char *szBetaVersionURL; // URL where the beta version can be found (NULL to disable betas)
- BYTE *pbBetaVersionPrefix; // bytes occuring in VersionURL before the version, used to locate the version information within the URL data
- int cpbBetaVersionPrefix; // number of bytes pointed to by pbVersionPrefix
- char *szBetaUpdateURL; // URL where dll/zip is located
-
- BYTE *pbVersion; // bytes of current version, used for comparison with those in VersionURL
- int cpbVersion; // number of bytes pointed to by pbVersion
-
- char *szBetaChangelogURL; // url for displaying changelog for beta versions
-} Update;
-
-// register a comonent with Updater
-//
-// wparam = 0
-// lparam = (LPARAM)&Update
-#define MS_UPDATE_REGISTER "Update/Register"
-
-// utility functions to create a version string from a DWORD or from pluginInfo
-// point buf at a buffer at least 16 chars wide - but note the version string returned may be shorter
-//
-__inline static char *CreateVersionString(DWORD version, char *buf) {
- mir_snprintf(buf, 16, "%d.%d.%d.%d", (version >> 24) & 0xFF, (version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);
- return buf;
-}
-
-__inline static char *CreateVersionStringPlugin(PLUGININFO *pluginInfo, char *buf) {
- return CreateVersionString(pluginInfo->version, buf);
-}
-
-
-// register the 'easy' way - use this method if you have no beta URL and the plugin is on the miranda file listing
-// NOTE: the plugin version string on the file listing must be the string version of the version in pluginInfo (i.e. 0.0.0.1,
-// four numbers between 0 and 255 inclusivem, so no letters, brackets, etc.)
-//
-// wParam = (int)fileID - this is the file ID from the file listing (i.e. the number at the end of the download link)
-// lParam = (PLUGININFO*)&pluginInfo
-#define MS_UPDATE_REGISTERFL "Update/RegisterFL"
-
-// this function can be used to 'unregister' components - useful for plugins that register non-plugin/langpack components and
-// may need to change those components on the fly
-// lParam = (char *)szComponentName
-#define MS_UPDATE_UNREGISTER "Update/Unregister"
-
-// this event is fired when the startup process is complete, but NOT if a restart is imminent
-// it is designed for status managment plugins to use as a trigger for beggining their own startup process
-// wParam = lParam = 0 (unused)
-// (added in version 0.1.6.0)
-#define ME_UPDATE_STARTUPDONE "Update/StartupDone"
-
-// this service can be used to enable/disable Updater's global status control
-// it can be called from the StartupDone event handler
-// wParam = (BOOL)enable
-// lParam = 0
-// (added in version 0.1.6.0)
-#define MS_UPDATE_ENABLESTATUSCONTROL "Update/EnableStatusControl"
-
-// An description of usage of the above service and event:
-// Say you are a status control plugin that normally sets protocol or global statuses in your ModulesLoaded event handler.
-// In order to make yourself 'Updater compatible', you would move the status control code from ModulesLoaded to another function,
-// say DoStartup. Then, in ModulesLoaded you would check for the existence of the MS_UPDATE_ENABLESTATUSCONTROL service.
-// If it does not exist, call DoStartup. If it does exist, hook the ME_UPDATE_STARTUPDONE event and call DoStartup from there. You may
-// also wish to call MS_UPDATE_ENABLESTATUSCONTROL with wParam == FALSE at this time, to disable Updater's own status control feature.
-
-// this service can be used to determine whether updates are possible for a component with the given name
-// wParam = 0
-// lParam = (char *)szComponentName
-// returns TRUE if updates are supported, FALSE otherwise
-#define MS_UPDATE_ISUPDATESUPPORTED "Update/IsUpdateSupported"
-
-#endif
-
-
-/////////////// Usage Example ///////////////
-
-#ifdef EXAMPLE_CODE
-
-// you need to #include "m_updater.h" and HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded) in your Load function...
-
-int OnModulesLoaded(WPARAM wParam, LPARAM lParam) {
-
- Update update = {0}; // for c you'd use memset or ZeroMemory...
- char szVersion[16];
-
- update.cbSize = sizeof(Update);
-
- update.szComponentName = pluginInfo.shortName;
- update.pbVersion = (BYTE *)CreateVersionString(&pluginInfo, szVersion);
- update.cpbVersion = strlen((char *)update.pbVersion);
-
- // these are the three lines that matter - the archive, the page containing the version string, and the text (or data)
- // before the version that we use to locate it on the page
- // (note that if the update URL and the version URL point to standard file listing entries, the backend xml
- // data will be used to check for updates rather than the actual web page - this is not true for beta urls)
- update.szUpdateURL = "http://scottellis.com.au:81/test/updater.zip";
- update.szVersionURL = "http://scottellis.com.au:81/test/updater_test.html";
- update.pbVersionPrefix = (BYTE *)"Updater version ";
-
- update.cpbVersionPrefix = strlen((char *)update.pbVersionPrefix);
-
- // do the same for the beta versions of the above struct members if you wish to allow beta updates from another URL
-
- CallService(MS_UPDATE_REGISTER, 0, (WPARAM)&update);
-
- // Alternatively, to register a plugin with e.g. file ID 2254 on the file listing...
- // CallService(MS_UPDATE_REGISTERFL, (WPARAM)2254, (LPARAM)&pluginInfo);
-
- return 0;
-}
-
-#endif