From 30aa26c864fa09b974e3c223ccf907421ebc0759 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 10 Apr 2018 13:11:16 +0300 Subject: obsolete compatibility code removed from AVS --- include/delphi/m_avatars.inc | 255 +------------------------------------------ include/m_avatars.h | 14 +-- 2 files changed, 6 insertions(+), 263 deletions(-) (limited to 'include') diff --git a/include/delphi/m_avatars.inc b/include/delphi/m_avatars.inc index 9f7b820ee0..fe2f0401b4 100644 --- a/include/delphi/m_avatars.inc +++ b/include/delphi/m_avatars.inc @@ -70,7 +70,6 @@ const type PavatarCacheEntry = ^TavatarCacheEntry; TavatarCacheEntry = record - cbSize : dword; // set to sizeof(struct) hContact : TMCONTACT; // contacts handle, 0, if it is a protocol avatar hbmPic : HBITMAP; // bitmap handle of the picture itself dwFlags : dword; // see above for flag values @@ -83,52 +82,6 @@ type szFilename : array[0..MAX_PATH-1] of WideChar; // filename of the avatar (absolute path) end; -const - AVDRQ_FALLBACKPROTO = $0001; // use the protocol picture as fallback (currently not used) - AVDRQ_FAILIFNOTCACHED = $0002; // don't create a cache entry if it doesn't already - // exist. (currently not working) - AVDRQ_ROUNDEDCORNER = $0004; // draw with rounded corners - AVDRQ_DRAWBORDER = $0008; // draw a border around the picture - AVDRQ_PROTOPICT = $0010; // draw a protocol picture (if available). - AVDRQ_HIDEBORDERONTRANSPARENCY = $0020; // hide border if bitmap has transparency - AVDRQ_OWNPIC = $0040; // draw own avatar (szProto is valid, use "" for global avatar) - AVDRQ_RESPECTHIDDEN = $0080; // don't draw images marked as hidden - AVDRQ_DONTRESIZEIFSMALLER = $0100; // don't resize images that are smaller then the draw area - AVDRQ_FORCEFASTALPHA = $0200; // force rendering with simple AlphaBlend (will use FI_Resample otherwise) - AVDRQ_FORCEALPHA = $0400; // force with simple AlphaBlend (may use StretchBlt otherwise) - AVDRQ_AERO = $0800; // draw on aero surface - -// request to draw a contacts picture. See MS_AV_DRAWAVATAR service description - -type - PavatarDrawRequest = ^TavatarDrawRequest; - TavatarDrawRequest = record - cbSize : dword; // set this to sizeof(AVATARDRAWREQUEST) - mandatory, - // service will return failure code if cbSize is wrong - hContact : TMCONTACT; // the contact for which the avatar should be drawn. - // set it to 0 to draw a protocol picture - hTargetDC : HDC; // target device context - rcDraw : TRECT; // target rectangle. The avatar will be centered - // within the rectangle and scaled to fit. - dwFlags : dword; // flags (see above for valid bitflags) - dwReserved: dword; // for future use - dwInternal: dword; // don't use it - clrBorder : TCOLORREF; // color for the border (used with AVDRQ_DRAWBORDER) - radius : byte; // radius (used with AVDRQ_ROUNDEDCORNER) - alpha : byte; // alpha value for semi-transparent avatars (valid - // values form 1 to 255, if it is set to 0 the - // avatar won't be transparent. - szProto : PAnsiChar; // only used when AVDRQ_PROTOPICT is set - end; - -const -// INITIAL_AVATARCACHESIZE = 300; -// CACHE_GROWSTEP = 50; - CACHE_BLOCKSIZE = 20; -const - AVS_MODULE :PAnsiChar = 'AVS_Settings'; // db settings module path - PPICT_MODULE:PAnsiChar = 'AVS_ProtoPics'; // protocol pictures are saved here - { obtain the bitmap handle of the avatar for the given contact wParam = hContact @@ -138,214 +91,8 @@ const receive a notification via ME_AV_AVATARCHANGED DONT modify the contents of the returned data structure } - MS_AV_GETAVATARBITMAP:PAnsiChar = 'SV_Avatars/GetAvatar'; - - { - obtain a avatar cache entry for one of my own avatars - wParam = 0 - lParam = szProto (protocol for which we need to obtain the own avatar information) - Use "" to global - returns: pointer to a struct avatarCacheEntry *, NULL on failure - DONT modify the contents of the returned data structure - } - MS_AV_GETMYAVATAR:PAnsiChar = 'SV_Avatars/GetMyAvatar'; - - { - protect the current contact picture from being overwritten by automatic - avatar updates. Actually, it only backups the contact picture filename - and will used the backuped version until the contact picture gets unlocked - again. So this service does not disable avatar updates, but it "fakes" - a locked contact picture to the users of the GetAvatar service. - - wParam = hContact - lParam = 1 -> lock the avatar, lParam = 0 -> unlock - } - MS_AV_PROTECTAVATAR:PAnsiChar = 'SV_Avatars/ProtectAvatar'; - - { - set (and optionally protect) a local contact picture for the given hContact - - wParam = hContact - lParam = either a full picture filename or NIL. If lParam = NIL, the service - will open a file selection dialog. - } - MS_AV_SETAVATARW:PAnsiChar = 'SV_Avatars/SetAvatarW'; - - { - set a local picture for the given protocol - - wParam = (AnsiChar *) protocol name or NULL for all protocols - lParam = either a full picture filename or NULL. If lParam == NULL, the service - will open a file selection dialog. - } - MS_AV_SETMYAVATARW:PAnsiChar = 'SV_Avatars/SetMyAvatarW'; - - { - see if is possible to set the avatar for the expecified protocol - - wParam = (AnsiChar *) protocol name - lParam = 0 - return = 1 if can set, 0 if can't - } - MS_AV_CANSETMYAVATAR:PAnsiChar = 'SV_Avatars/CanSetMyAvatar'; - { - Call avatar option dialog for contact - wParam = hContact - } - MS_AV_CONTACTOPTIONS:PAnsiChar = 'SV_Avatars/ContactOptions'; - - { - draw an avatar picture - - wParam = 0 (not used) - lParam = pointer to AVATARDRAWREQUEST - draw a contact picture to a destination device context. see description of - the AVATARDRAWREQUEST structure for more information on how to use this - service. - return value: 0 -> failure, avatar probably not available, or not ready. The - drawing service DOES schedule an avatar update so your plugin will be notified - by the ME_AV_AVATARCHANGED event when the requested avatar is ready for use. - 1 -> success. avatar was found and drawing should be ok. - -1 -> global avatar is incosistent - } - MS_AV_DRAWAVATAR:PAnsiChar = 'SV_Avatars/Draw'; -// MS_AV_BLENDDRAWAVATAR = 'SV_Avatars/BlendDraw'; - - { - fired when the contacts avatar changes - wParam = hContact - lParam = struct avatarCacheEntry *cacheEntry - the event CAN pass a NULL pointer in lParam which means that the avatar has - changed, but is no longer valid (happens, when a contact removes his avatar, - for example). - DONT DESTROY the bitmap handle passed in the struct avatarCacheEntry * - - It is also possible that this event passes 0 as wParam (hContact), in which case, - a protocol picture (pseudo - avatar) has been changed. - } - ME_AV_AVATARCHANGED:PAnsiChar = 'SV_Avatars/AvatarChanged'; - -type - TContactAvatarChangedNotificationW = record - cbSize :int; // sizeof() - hContact:TMCONTACT; // this might have to be set by the caller too - format :int; // PA_FORMAT_* - filename:array [0..MAX_PATH-1] of WideChar; // full path to filename which contains the avatar - hash :array [0..127] of WideChar; // avatar hash (always an empty string by now) - end; - - TContactAvatarChangedNotification = record - cbSize :int; // sizeof() - hContact:TMCONTACT; // this might have to be set by the caller too - format :int; // PA_FORMAT_* - filename:array [0..MAX_PATH-1] of AnsiChar; // full path to filename which contains the avatar - hash :array [0..127] of AnsiChar; // avatar hash (always an empty string by now) - end; const - { - fired when the contacts avatar is changed by the contact - wParam = hContact - lParam = struct CONTACTAVATARCHANGEDNOTIFICATION *cacn - the event CAN pass a NULL pointer in lParam which means that the contact deleted its avatar - } - ME_AV_CONTACTAVATARCHANGED:PAnsiChar = 'SV_Avatars/ContactAvatarChanged'; - - { - fired when one of our own avatars was changed - wParam = szProto (protocol for which a new avatar was set) - lParam = AVATARCACHEENTRY *ace (new cache entry, - NULL if the new avatar is not valid) - } - ME_AV_MYAVATARCHANGED:PAnsiChar = 'SV_Avatars/MyAvatarChanged'; - - { - Service to be called by protocols to report an avatar has changed. Some avatar changes - can be detected automatically, but some not (by now only Skype ones) - wParam = (AnsiChar *)szProto (protocol for which a new avatar was set) - lParam = 0 - } - MS_AV_REPORTMYAVATARCHANGED:PAnsiChar = 'SV_Avatars/ReportMyAvatarChanged'; - -{ - * flags for internal use ONLY -} - - AVH_MUSTNOTIFY = 4; // node->dwFlags (loader thread must notify avatar - // history about change/delete event) - AVS_DELETENODEFOREVER = 8; - -// Protocol services ////////////////////////////////////////////////////////////////////// - -{ - wParam=0 - lParam=(const AnsiChar *)Avatar file name or NULL to remove the avatar - return=0 for sucess -} - PS_SETMYAVATAR = '/SetMyAvatar'; - PS_SETMYAVATARW = '/SetMyAvatarW'; - -{ - wParam=Buffer to file name - lParam=(int)Buffer size - return=0 for sucess -} - PS_GETMYAVATAR = '/GetMyAvatar'; - PS_GETMYAVATARW = '/GetMyAvatarW'; - - PIP_NONE = 0; - PIP_SQUARE = 1; - -// Avatar image max size -// lParam = (POINT*) maxSize (use -1 for no max) -// return 0 for success - AF_MAXSIZE = 1; - -// Avatar image proportion -// lParam = 0 -// return or of PIP_* - AF_PROPORTION = 2; - -// Avatar format -// lParam = PA_FORMAT_* -// return = 1 (supported) or 0 (not supported) - AF_FORMATSUPPORTED = 3; - -// Avatars are enabled for protocol? -// lParam = 0 -// return = 1 (avatars ready) or 0 (disabled) - AF_ENABLED = 4; - -// This protocol don't need delays for fetching contact avatars -// lParam = 0 -// return = 1 (don't need) or 0 (need) - AF_DONTNEEDDELAYS = 5; - -// Avatar file max size -// return size in bytes (0 for no limit) - AF_MAXFILESIZE = 6; - -// The amount of time avs should wait after a download avatar failed for a contact -// lParam = 0 -// return = the time, in ms - AF_DELAYAFTERFAIL = 7; - -// Fetching avatars is allowed when protocol's status is invisible -// lParam = 0 -// return = 1 (allowed) or 0 (depending on our protocol status mode) - AF_FETCHIFPROTONOTVISIBLE = 8; - -// Fetching avatars is allowed when contact is in offline status -// lParam = 0 -// return = 1 (allowed) or 0 (depending on remote contact status mode) - AF_FETCHIFCONTACTOFFLINE = 9; - -{ - Query avatar caps for a protocol - wParam = One of AF_* - lParam = See descr of each AF_* - return = See descr of each AF_*. Return 0 by default -} - PS_GETAVATARCAPS = '/GetAvatarCaps'; + MS_AV_GETAVATARBITMAP:PAnsiChar = 'SV_Avatars/GetAvatar'; {$ENDIF} diff --git a/include/m_avatars.h b/include/m_avatars.h index d634802bc0..d27f56e0e4 100644 --- a/include/m_avatars.h +++ b/include/m_avatars.h @@ -72,7 +72,6 @@ unless AF_FETCHIFPROTONOTVISIBLE is set. struct AVATARCACHEENTRY { - DWORD cbSize; // set to sizeof(struct) MCONTACT hContact; // contacts handle, 0, if it is a protocol avatar HBITMAP hbmPic; // bitmap handle of the picutre itself DWORD dwFlags; // see above for flag values @@ -81,7 +80,7 @@ struct AVATARCACHEENTRY // use it whenever they access the avatar. may be used in the future // to implement cache expiration LPVOID lpDIBSection; // unused field - wchar_t szFilename[MAX_PATH]; // filename of the avatar (absolute path) + wchar_t szFilename[MAX_PATH]; // filename of the avatar (absolute path) }; #define AVDRQ_FALLBACKPROTO 0x0001 // use the protocol picture as fallback (currently not used) @@ -90,18 +89,17 @@ struct AVATARCACHEENTRY #define AVDRQ_DRAWBORDER 0x0008 // draw a border around the picture #define AVDRQ_PROTOPICT 0x0010 // draw a protocol picture (if available). #define AVDRQ_HIDEBORDERONTRANSPARENCY 0x0020 // hide border if bitmap has transparency -#define AVDRQ_OWNPIC 0x0040 // draw own avatar (szProto is valid - use "" for global avatar) +#define AVDRQ_OWNPIC 0x0040 // draw own avatar (szProto is valid - use "" for global avatar) #define AVDRQ_RESPECTHIDDEN 0x0080 // don't draw images marked as hidden #define AVDRQ_DONTRESIZEIFSMALLER 0x0100 // don't resize images that are smaller then the draw area #define AVDRQ_FORCEFASTALPHA 0x0200 // force rendering with simple AlphaBlend (will use FI_Resample otherwise) #define AVDRQ_FORCEALPHA 0x0400 // force with simple AlphaBlend (may use StretchBlt otherwise) -#define AVDRQ_AERO 0x0800 // draw on aero surface +#define AVDRQ_AERO 0x0800 // draw on aero surface // request to draw a contacts picture. See MS_AV_DRAWAVATAR service description -typedef struct _avatarDrawRequest +struct AVATARDRAWREQUEST { - DWORD cbSize; // set this to sizeof(AVATARDRAWREQUEST) - mandatory, service will return failure code if cbSize is wrong MCONTACT hContact; // the contact for which the avatar should be drawn. set it to 0 to draw a protocol picture HDC hTargetDC; // target device context RECT rcDraw; // target rectangle. The avatar will be centered within the rectangle and scaled to fit. @@ -113,8 +111,7 @@ typedef struct _avatarDrawRequest UCHAR alpha; // alpha value for semi-transparent avatars (valid values form 1 to 255, if it is set to 0 // the avatar won't be transparent. char *szProto; // only used when AVDRQ_PROTOPICT or AVDRQ_OWNPIC is set -} - AVATARDRAWREQUEST; +}; #define CACHE_BLOCKSIZE 20 @@ -210,7 +207,6 @@ typedef struct _avatarDrawRequest struct CONTACTAVATARCHANGEDNOTIFICATION { - int cbSize; // sizeof() MCONTACT hContact; // this might have to be set by the caller too int format; // PA_FORMAT_* wchar_t filename[MAX_PATH]; // full path to filename which contains the avatar -- cgit v1.2.3