themiron / historypp

History++ plugin for Miranda IM
2 stars 0 forks source link

animated smiles and historypp x64 #20

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. install build from http://rghost.ru/38571373
2. animated smiles plugin - 
http://code.google.com/p/mirandaimplugins/downloads/detail?name=smileyaddbinx64w
02316.zip&can=2&q=
3. animated smilies are not animated (it's being used in tabsrmm window)

What is the expected output? What do you see instead?
smilies should be animated
on 32bit same setup works fine

What version of the product are you using? On what operating system?
latest miranda 0.9.52 unicode

Please provide any additional information below.

Original issue reported on code.google.com by spameden on 6 Jul 2012 at 5:50

GoogleCodeExporter commented 9 years ago
also any chance of adding official build of x64 version? 

thanks.

Original comment by spameden on 6 Jul 2012 at 5:53

GoogleCodeExporter commented 9 years ago
awk, your turn, my friend.

Original comment by themiron.ru on 28 Jul 2012 at 1:20

GoogleCodeExporter commented 9 years ago
here is an update (thanks to cheshirabit):

you need to change in hpp_olesmilies.cpp (2 lines idFrom :UINT to :UINT_PTR and 
cbSize :integer to :size_t) in this structure:

type
    PFVCNDATA_NMHDR = ^TFVCNDATA_NMHDR;
    TFVCNDATA_NMHDR = record
    //NMHDR structure
    hwndFrom :HWND; // Window of smiley host
    idFrom :UINT_PTR; // ignored    --------------- was UINT
    code :UINT; // NM_FIREVIEWCHANGE
      cbSize :size_t; //------------------ 8 bytes in 64bit, NOT 4 (integer)
      bEvent :Byte; // FVCN_ value - pre- or post- painting
      bAction :Byte; // FVCA_ keys
      hDC :HDC; // Canvas to draw on
      rcRect :TRECT; // Valid/should be in case of FVCA_DRAW
      clrBackground:COLORREF; // color to fill background if fTransparent is not set
      fTransparent :BOOL; // if need to fill back color (not supported)
      lParam :LPARAM; // used by host window PreFire and PostFire event
end;

in SmileyAdd you need to edit m_smileyadd.h and change 1 line (UINT idFrom to 
UINT_PTR idFrom):

typedef struct  
{   
    //NMHDR structure
    HWND hwndFrom;              // Window of smiley host
    UINT_PTR idFrom;                // ignored was UINT before
    UINT code;                  // NM_FIREVIEWCHANGE

    size_t      cbSize;
    BYTE        bEvent;         // FVCN_ value - pre- or post- painting
    BYTE        bAction;        // FVCA_ keys
    HDC         hDC;            // Canvas to draw on
    RECT        rcRect;         // Valid/should be in case of FVCA_DRAW
    COLORREF    clrBackground;  // color to fill background if fTransparent is not set
    BOOL        fTransparent;   // if need to fill back color (not supported)
    LPARAM      lParam;         // used by host window PreFire and PostFire event
} FVCNDATA_NMHDR;

after these changes history++ works correctly with SmileyAdd and animated 
smilies work.

Just in case if you're lazy here are built versions working on x64 miranda:

http://www.mediafire.com/?9cb6jvjpzzposs7 (history++ for miranda x64)
http://www.mediafire.com/?bl7w60nyod0c7h7 (smileyadd for miranda x64)

Original comment by spameden on 19 Aug 2012 at 10:50

GoogleCodeExporter commented 9 years ago
I opened an issue at SmileyAdd, hope borkra will fix it.

Please commit this in SVN as well.

Thanks

Original comment by spameden on 19 Aug 2012 at 10:52