Rev | Line | |
---|
[48] | 1 | #include "stdafx.h"
|
---|
| 2 | #include "helpers.h"
|
---|
| 3 |
|
---|
| 4 | bool MessageEquals(const MSG & msg1, const MSG & msg2) {
|
---|
| 5 | bool retVal = false;
|
---|
| 6 | if( (msg1.time==-1 && msg1.pt.x==-1 && msg1.pt.y==-1) || (msg2.time==-1 && msg2.pt.x==-1 && msg2.pt.y==-1) ) {
|
---|
| 7 | retVal = msg1.hwnd==msg2.hwnd && msg1.message==msg2.message && msg1.lParam==msg2.lParam &&
|
---|
| 8 | msg1.wParam==msg2.wParam;
|
---|
| 9 | } else {
|
---|
| 10 | retVal = msg1.hwnd==msg2.hwnd && msg1.message==msg2.message && msg1.lParam==msg2.lParam &&
|
---|
| 11 | msg1.wParam==msg2.wParam && msg1.time==msg2.time && msg1.pt.x==msg2.pt.x && msg1.pt.y==msg2.pt.y;
|
---|
| 12 | }
|
---|
| 13 | return retVal;
|
---|
| 14 | }
|
---|
| 15 |
|
---|
| 16 | int replaceWithXmlEntitiesWString(const wchar_t * source, wchar_t ** target, size_t sourceLength) {
|
---|
| 17 | size_t j=0;
|
---|
| 18 | size_t extraLength = 0;
|
---|
| 19 | size_t bufsize = 300;
|
---|
| 20 | wchar_t * tmpTarget = new wchar_t[sourceLength+bufsize];
|
---|
| 21 | size_t i;
|
---|
| 22 | for( i=0; i<sourceLength && j<sourceLength+bufsize-5; i++ ) {
|
---|
| 23 | switch (source[i]) {
|
---|
| 24 | case L'&':
|
---|
| 25 | tmpTarget[j] = L'&';
|
---|
| 26 | tmpTarget[j+1]=L'a';
|
---|
| 27 | tmpTarget[j+2]=L'm';
|
---|
| 28 | tmpTarget[j+3]=L'p';
|
---|
| 29 | tmpTarget[j+4]=L';';
|
---|
| 30 | j += 5;
|
---|
| 31 | extraLength += 4;
|
---|
| 32 | break;
|
---|
| 33 | case L'<':
|
---|
| 34 | tmpTarget[j] = L'&';
|
---|
| 35 | tmpTarget[j+1]=L'l';
|
---|
| 36 | tmpTarget[j+2]=L't';
|
---|
| 37 | tmpTarget[j+3]=L';';
|
---|
| 38 | j += 4;
|
---|
| 39 | extraLength += 3;
|
---|
| 40 | break;
|
---|
| 41 | case L'>':
|
---|
| 42 | tmpTarget[j] = L'&';
|
---|
| 43 | tmpTarget[j+1]=L'g';
|
---|
| 44 | tmpTarget[j+2]=L't';
|
---|
| 45 | tmpTarget[j+3]=L';';
|
---|
| 46 | j += 4;
|
---|
| 47 | extraLength += 3;
|
---|
| 48 | break;
|
---|
| 49 | case L'\"':
|
---|
| 50 | tmpTarget[j] = L'&';
|
---|
| 51 | tmpTarget[j+1]=L'q';
|
---|
| 52 | tmpTarget[j+2]=L'u';
|
---|
| 53 | tmpTarget[j+3]=L'o';
|
---|
| 54 | tmpTarget[j+4]=L't';
|
---|
| 55 | tmpTarget[j+5]=L';';
|
---|
| 56 | j += 6;
|
---|
| 57 | extraLength += 5;
|
---|
| 58 | break;
|
---|
| 59 | case L'\'':
|
---|
| 60 | tmpTarget[j] = L'&';
|
---|
| 61 | tmpTarget[j+1]=L'a';
|
---|
| 62 | tmpTarget[j+2]=L'p';
|
---|
| 63 | tmpTarget[j+3]=L'o';
|
---|
| 64 | tmpTarget[j+4]=L's';
|
---|
| 65 | tmpTarget[j+5]=L';';
|
---|
| 66 | j += 6;
|
---|
| 67 | extraLength += 5;
|
---|
| 68 | break;
|
---|
| 69 | case L'%':
|
---|
| 70 | tmpTarget[j] = L'\\';
|
---|
| 71 | tmpTarget[j+1] = L'%';
|
---|
| 72 | j += 2;
|
---|
| 73 | extraLength += 1;
|
---|
| 74 | break;
|
---|
| 75 | default:
|
---|
| 76 | tmpTarget[j] = source[i];
|
---|
| 77 | j++;
|
---|
| 78 | }
|
---|
| 79 | }
|
---|
| 80 | *target = new wchar_t[j+1];
|
---|
| 81 | memcpy(*target,tmpTarget,j*sizeof(wchar_t));
|
---|
| 82 | (*target)[j] = '\0';
|
---|
[63] | 83 | delete tmpTarget;
|
---|
[48] | 84 | return j;
|
---|
| 85 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.