summaryrefslogtreecommitdiff
path: root/plugins/!NotAdopted
diff options
context:
space:
mode:
authorRobert Pösel <robyer@seznam.cz>2012-12-24 21:30:41 +0000
committerRobert Pösel <robyer@seznam.cz>2012-12-24 21:30:41 +0000
commit367d9f6f71420e4c7ed5f273e04d280655bb3d7a (patch)
treed4bb82414145d3be020ab2b579bcd1947d8b6fa2 /plugins/!NotAdopted
parent0851c3965879663c41cfe435d1b320ba68cf873a (diff)
SMS plugin adopted (32bit version only)
git-svn-id: http://svn.miranda-ng.org/main/trunk@2831 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/!NotAdopted')
-rw-r--r--plugins/!NotAdopted/SMS/!clear.bat36
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/BuffToLowerCase.h56
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/DebugFunctions.h101
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/InterlockedFunctions.h127
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/ListMT.h328
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryCompare.h177
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFind.h81
-rw-r--r--plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFindByte.h71
-rw-r--r--plugins/!NotAdopted/SMS/SMS.def8
-rw-r--r--plugins/!NotAdopted/SMS/SMSConstans.h108
-rw-r--r--plugins/!NotAdopted/SMS/SMS_svc.cpp243
-rw-r--r--plugins/!NotAdopted/SMS/functions.cpp761
-rw-r--r--plugins/!NotAdopted/SMS/main.cpp298
-rw-r--r--plugins/!NotAdopted/SMS/main.h236
-rw-r--r--plugins/!NotAdopted/SMS/options.cpp116
-rw-r--r--plugins/!NotAdopted/SMS/readme.txt49
-rw-r--r--plugins/!NotAdopted/SMS/receive.cpp310
-rw-r--r--plugins/!NotAdopted/SMS/recvdlg.cpp269
-rw-r--r--plugins/!NotAdopted/SMS/recvdlg.h18
-rw-r--r--plugins/!NotAdopted/SMS/res/SMSNOTSENT.icobin1406 -> 0 bytes
-rw-r--r--plugins/!NotAdopted/SMS/res/SMSSENT.icobin1406 -> 0 bytes
-rw-r--r--plugins/!NotAdopted/SMS/res/halftick.icobin318 -> 0 bytes
-rw-r--r--plugins/!NotAdopted/SMS/resource.h70
-rw-r--r--plugins/!NotAdopted/SMS/resource.rc291
-rw-r--r--plugins/!NotAdopted/SMS/send.cpp88
-rw-r--r--plugins/!NotAdopted/SMS/senddlg.cpp1177
-rw-r--r--plugins/!NotAdopted/SMS/senddlg.h40
-rw-r--r--plugins/!NotAdopted/SMS/sms.dsp231
-rw-r--r--plugins/!NotAdopted/SMS/sms.dsw29
-rw-r--r--plugins/!NotAdopted/SMS/sms.optbin52736 -> 0 bytes
-rw-r--r--plugins/!NotAdopted/SMS/sms.vcproj388
31 files changed, 0 insertions, 5707 deletions
diff --git a/plugins/!NotAdopted/SMS/!clear.bat b/plugins/!NotAdopted/SMS/!clear.bat
deleted file mode 100644
index f35ebe94fd..0000000000
--- a/plugins/!NotAdopted/SMS/!clear.bat
+++ /dev/null
@@ -1,36 +0,0 @@
-@echo off
-
-del .\*.aps /q
-del .\*.clw /q
-del .\*.ncb /q
-rem del .\*.opt /q
-del .\*.plg /q
-
-del .\Release\*.obj /q
-del .\Release\*.pch /q
-del .\Release\*.pdb /q
-del .\Release\*.idb /q
-del .\Release\*.res /q
-del .\Release\*.exp /q
-del .\Release\*.sbr /q
-del .\Release\*.map /q
-del .\Release\*.cod /q
-
-del .\debug\*.obj /q
-del .\debug\*.pch /q
-del .\debug\*.pdb /q
-del .\debug\*.idb /q
-del .\debug\*.res /q
-del .\debug\*.ilk /q
-del .\debug\*.exp /q
-del .\debug\*.sbr /q
-del .\debug\*.asm /q
-del .\debug\*.cod /q
-del .\debug\*.map /q
-del .\debug\*.opt /q
-del .\debug\*._xe /q
-del .\debug\*.pbi /q
-del .\debug\*.pbo /q
-del .\debug\*.pbt /q
-del .\debug\*.map /q
-del .\debug\*.cod /q
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/BuffToLowerCase.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/BuffToLowerCase.h
deleted file mode 100644
index d2bb7a6671..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/BuffToLowerCase.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#if !defined(AFX_BUFFTOLOWERCASE__H__INCLUDED_)
-#define AFX_BUFFTOLOWERCASE__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-
-__inline DWORD BuffToLowerCase(LPCVOID lpcOutBuff,LPCVOID lpcBuff,SIZE_T dwLen)
-{
- DWORD dwRetErrorCode=NO_ERROR;
-
- __asm
- {
- mov ecx,dwLen
- test ecx,ecx
- jz short end_func
-
- push ebx // сохраняем регистр
- push edi // сохраняем регистр
- push esi // сохраняем регистр
- mov esi,lpcBuff
- mov edi,lpcOutBuff
- mov bl,'A'
- mov bh,'Z'
- mov ah,32
- cld
-
- lowcaseloop:
- lodsb
- cmp al,bl
- jl short savebyte
- cmp al,bh
- jg short savebyte
- or al,ah
-
- savebyte:
- stosb
-
- dec ecx
- jnz short lowcaseloop
-
- pop esi // восстанавливаем содержимое регистра
- pop edi // восстанавливаем содержимое регистра
- pop ebx // восстанавливаем содержимое регистра
- end_func:
- }
-
-return(dwRetErrorCode);
-}
-
-
-
-
-#endif // !defined(AFX_BUFFTOLOWERCASE__H__INCLUDED_) \ No newline at end of file
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/DebugFunctions.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/DebugFunctions.h
deleted file mode 100644
index 8b21d1bc5a..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/DebugFunctions.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#if !defined(AFX_DEBUG_FUNCTIONS__H__INCLUDED_)
-#define AFX_DEBUG_FUNCTIONS__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#ifndef szCRLF
-#define szCRLF TEXT("\r\n")
-#endif
-//////////////////////////////////////////////////////////////////////////
-////////////////////////////DebugPrint////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-// DebugBuildPrint(Helo world);
-// Отображение текста в Debug окне во время отладки
-#ifdef _DEBUG
- #define DebugPrintA(szText) OutputDebugStringA((szText))
- #define DebugPrintW(szText) OutputDebugStringW((szText))
- #define DebugPrintCRLFA(szText) OutputDebugStringA((szText));OutputDebugStringA("\r\n")
- #define DebugPrintCRLFW(szText) OutputDebugStringW((szText));OutputDebugStringW(L"\r\n")
-#else
- #define DebugPrintA(szText)
- #define DebugPrintW(szText)
- #define DebugPrintCRLFA(szText)
- #define DebugPrintCRLFW(szText)
-#endif //_DEBUG
-
-
-#ifdef UNICODE
- #define DebugPrint DebugPrintW
- #define DebugPrintCRLF DebugPrintCRLFW
-#else
- #define DebugPrint DebugPrintA
- #define DebugPrintCRLF DebugPrintCRLFA
-#endif
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-
-
-
-
-//////////////////////////////////////////////////////////////////////////
-////////////////////////////DebugBuildPrint///////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-// #pragma DebugBuildPrint(Helo world);
-// Отображение сообщений в Build окне во время компиляции
-#ifdef _DEBUG
- #pragma warning(disable:4081)
- #define chSTR2(x) #x
- #define chSTR(x) chSTR2(x)
- #define DebugBuildPrint(szText) message(__FILE__ "(" chSTR(__LINE__) "): " #szText)
- #pragma warning(default:4081)
-#else
- #define DebugBuildPrint(szText)
-#endif //_DEBUG
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-
-
-
-
-//////////////////////////////////////////////////////////////////////////
-////////////////////////////DebugBufferFill///////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-// DebugBufferFill(szString,sizeof(szString));
-// Полностью заполняет переданный буффер символом "A", применяется
-// для выходного буффера на входе в функцию.
-#ifdef _DEBUG
- #define DebugBufferFill(lpBuffer,dwSize) memset(lpBuffer,'A',dwSize)
-#else
- #define DebugBufferFill(lpBuffer,dwSize)
-#endif //_DEBUG
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-
-
-
-
-//////////////////////////////////////////////////////////////////////////
-////////////////////////////DebugBreak////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-// DebugBreak();
-// Точка останова, более удобная альтернатива API
-#if defined(_DEBUG) && defined(_X86_)
- #define DebugBreak() _asm{int 3}
-#else
- #define DebugBreak()
-#endif //_DEBUG
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////
-
-
-
-
-
-
-#endif // !defined(AFX_DEBUG_FUNCTIONS__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/InterlockedFunctions.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/InterlockedFunctions.h
deleted file mode 100644
index 3fb008b216..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/InterlockedFunctions.h
+++ /dev/null
@@ -1,127 +0,0 @@
-#if !defined(AFX_INTERLOCKED_FUNCTIONS__H__INCLUDED_)
-#define AFX_INTERLOCKED_FUNCTIONS__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-
-
-
-#ifdef InterlockedCompareExchange
-#ifndef InterlockedAnd
-LONG FORCEINLINE InterlockedAnd(LONG volatile *Destination,LONG Value)
-{
- LONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange(Destination,(Old&Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedAnd
-
-
-#ifndef InterlockedOr
-LONG FORCEINLINE InterlockedOr(LONG volatile *Destination,LONG Value)
-{
- LONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange(Destination,(Old|Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedOr
-
-
-#ifndef InterlockedXor
-LONG FORCEINLINE InterlockedXor(LONG volatile *Destination,LONG Value)
-{
- LONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange(Destination,(Old^Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedXor
-#endif //InterlockedCompareExchange
-
-
-
-
-
-#ifdef InterlockedCompareExchange64
-#ifndef InterlockedAnd64
-LONGLONG FORCEINLINE InterlockedAnd64(LONGLONG volatile *Destination,LONGLONG Value)
-{
- LONGLONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange64(Destination,(Old&Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedAnd64
-
-
-#ifndef InterlockedOr64
-LONGLONG FORCEINLINE InterlockedOr64(LONGLONG volatile *Destination,LONGLONG Value)
-{
- LONGLONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange64(Destination,(Old|Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedOr64
-
-
-#ifndef InterlockedXor64
-LONGLONG FORCEINLINE InterlockedXor64(LONGLONG volatile *Destination,LONGLONG Value)
-{
- LONGLONG Old;
-
- do
- {
- Old=*Destination;
- }while(InterlockedCompareExchange64(Destination,(Old^Value),Old)!=Old);
-return(Old);
-}
-#endif //InterlockedXor64
-#endif //InterlockedCompareExchange64
-
-
-
-
-
-#ifndef InterlockedIncrementPointer
-#if defined(_WIN64)
-#define InterlockedIncrementPointer(lpAddend) (LPVOID)InterlockedIncrement64((LONGLONG volatile*)lpAddend)
-#else
-#define InterlockedIncrementPointer(lpAddend) (LPVOID)InterlockedIncrement((LONG volatile*)lpAddend)
-#endif
-#endif //InterlockedIncrementPointer
-
-
-#ifndef InterlockedDecrementPointer
-#if defined(_WIN64)
-#define InterlockedDecrementPointer(lpAddend) (LPVOID)InterlockedDecrement64((LONGLONG volatile*)lpAddend)
-#else
-#define InterlockedDecrementPointer(lpAddend) (LPVOID)InterlockedDecrement((LONG volatile*)lpAddend)
-#endif
-#endif //InterlockedDecrementPointer
-
-
-
-
-
-#endif // !defined(AFX_INTERLOCKED_FUNCTIONS__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/ListMT.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/ListMT.h
deleted file mode 100644
index 7cf1e81808..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/ListMT.h
+++ /dev/null
@@ -1,328 +0,0 @@
-#if !defined(AFX_LIST_MT__H__INCLUDED_)
-#define AFX_LIST_MT__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-#include <InterlockedFunctions.h>
-
-#if defined(_MSC_VER)
-#if _MSC_VER >= 800
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-#pragma warning(disable:4312) // warning C4312: 'type cast' : conversion from 'LONG' to 'PVOID' of greater size
-#endif
-#endif
-
-
-// структура для работы со списком, элемент списка
-typedef struct _LIST_MT_ITEM
-{
-#ifdef __cplusplus
- _LIST_MT_ITEM *plmtiPrev; // *предыдущий элемент в списке
- _LIST_MT_ITEM *plmtiNext; // *следующий элемент в списке
-#else
- LPVOID *plmtiPrev; // *предыдущий элемент в списке
- LPVOID *plmtiNext; // *следующий элемент в списке
-#endif
- LPVOID lpData; // указатель на данные, связанные с элементом списка
- LPVOID lpListMT; // указатель на заголовок списка, см структуру ниже
-}LIST_MT_ITEM, *PLIST_MT_ITEM, *LPLIST_MT_ITEM;
-typedef CONST PLIST_MT_ITEM PCLIST_MT_ITEM, LPCLIST_MT_ITEM;
-
-
-// структура для работы со списком, заголовок списка
-typedef struct _LIST_MT
-{
- SIZE_T nCount; // *колличество элементов в списке
- PLIST_MT_ITEM plmtiFirst; // *указывает на первый элемент в списке
- PLIST_MT_ITEM plmtiLast; // *указывает на последний элемент в списке
- CRITICAL_SECTION cs; // *section for exclysive access to List
-}LIST_MT, *PLIST_MT, *LPLIST_MT;
-typedef CONST PLIST_MT PCLIST_MT, LPCLIST_MT;
-
-
-// структура для работы с итератором
-typedef struct _LIST_MT_ITERATOR
-{
- PLIST_MT_ITEM plmtListMTItem;
-}LIST_MT_ITERATOR, *PLIST_MT_ITERATOR, *LPLIST_MT_ITERATOR;
-//typedef LIST_MT_ITEM LIST_MT_ITERATOR, *PLIST_MT_ITERATOR, *LPLIST_MT_ITERATOR;
-typedef CONST PLIST_MT_ITERATOR PCLIST_MT_ITERATOR, LPCLIST_MT_ITERATOR;
-
-
-
-
-__inline DWORD ListMTInitialize(PCLIST_MT pclmtListMT,DWORD dwSpinCount)
-{
- DWORD dwRetErrorCode;
-
-#if (_WIN32_WINNT >= 0x0403)
- if (InitializeCriticalSectionAndSpinCount(&pclmtListMT->cs,((dwSpinCount)? (dwSpinCount | 0x80000000):0L)))
-#else
- InitializeCriticalSection(&pclmtListMT->cs);
- if (TRUE)
-#endif
- {
- InterlockedExchangePointer(&pclmtListMT->nCount,NULL);
- pclmtListMT->plmtiFirst=NULL;
- pclmtListMT->plmtiLast=NULL;
- dwRetErrorCode=NO_ERROR;
- }else{
- dwRetErrorCode=GetLastError();
- }
-return(dwRetErrorCode);
-}
-
-
-__inline void ListMTDestroy(PCLIST_MT pclmtListMT)
-{
- InterlockedExchangePointer(&pclmtListMT->nCount,NULL);
- pclmtListMT->plmtiFirst=NULL;
- pclmtListMT->plmtiLast=NULL;
- DeleteCriticalSection(&pclmtListMT->cs);
-}
-
-
-__inline BOOL ListMTTryLock(PCLIST_MT pclmtListMT)
-{
-#if (_WIN32_WINNT >= 0x0400)
- return(TryEnterCriticalSection(&pclmtListMT->cs));
-#else
- return(FALSE);
-#endif
-}
-
-
-__inline void ListMTLock(PCLIST_MT pclmtListMT)
-{
- EnterCriticalSection(&pclmtListMT->cs);
-}
-
-
-__inline void ListMTUnLock(PCLIST_MT pclmtListMT)
-{
- LeaveCriticalSection(&pclmtListMT->cs);
-}
-
-
-__inline SIZE_T ListMTGetCount(PCLIST_MT pclmtListMT)
-{
- return((SIZE_T)InterlockedCompareExchangePointer((LPVOID*)&pclmtListMT->nCount,NULL,NULL));
-}
-
-
-__inline SIZE_T ListMTItemAdd(PCLIST_MT pclmtListMT,PCLIST_MT_ITEM pclmtListMTItem,LPVOID lpData)
-{
- SIZE_T dwRet=(SIZE_T)InterlockedIncrementPointer(&pclmtListMT->nCount);//pclmtListMT->nCount++;
- pclmtListMTItem->lpData=lpData;
- pclmtListMTItem->lpListMT=pclmtListMT;
-
- if (pclmtListMT->plmtiLast)
- {// add node to end of list
- pclmtListMTItem->plmtiPrev=pclmtListMT->plmtiLast;
- pclmtListMTItem->plmtiNext=NULL;
- pclmtListMT->plmtiLast->plmtiNext=pclmtListMTItem;
- pclmtListMT->plmtiLast=pclmtListMTItem;
- }else{// add the first node to the linked list
- pclmtListMTItem->plmtiPrev=NULL;
- pclmtListMTItem->plmtiNext=NULL;
- pclmtListMT->plmtiFirst=pclmtListMTItem;
- pclmtListMT->plmtiLast=pclmtListMTItem;
- }
-
-return(dwRet);
-}
-
-
-__inline DWORD ListMTItemDelete(PCLIST_MT pclmtListMT,PCLIST_MT_ITEM pclmtListMTItem)
-{
- DWORD dwRetErrorCode;
-
- if (pclmtListMTItem->lpListMT==pclmtListMT && pclmtListMT)
- {// Данный элемент принадлежит к этому списку, можно удалить.
- PLIST_MT_ITEM plmtiPrevNode=pclmtListMTItem->plmtiPrev,plmtiNextNode=pclmtListMTItem->plmtiNext;
-
- if (plmtiPrevNode || plmtiNextNode)
- {
- if (plmtiPrevNode && plmtiNextNode==NULL)
- {// This is the start node in the list to delete
- // отключился последний подключившийся
- plmtiPrevNode->plmtiNext=NULL;
- pclmtListMT->plmtiLast=plmtiPrevNode;
- }else{
- if (plmtiPrevNode==NULL && plmtiNextNode)
- {// This is the end node in the list to delete
- // отключился первый подключившийся
- plmtiNextNode->plmtiPrev=NULL;
- pclmtListMT->plmtiFirst=plmtiNextNode;
- }else{// оключился клиент не первый и не последний
- //if (plmtiPrev && plmtiNext)
- {// Neither start node nor end node in the list
- plmtiPrevNode->plmtiNext=plmtiNextNode;
- plmtiNextNode->plmtiPrev=plmtiPrevNode;
- }
- }
- }
- }else{// This is the only node in the list to delete
- pclmtListMT->plmtiFirst=NULL;
- pclmtListMT->plmtiLast=NULL;
- }
-
- pclmtListMTItem->lpListMT=NULL;
- InterlockedDecrementPointer(&pclmtListMT->nCount);// pclmtListMT->nCount--;
- dwRetErrorCode=NO_ERROR;
- }else{// попытались удалить элемент не относящийся к данному списку
- dwRetErrorCode=ERROR_INVALID_HANDLE;
- }
-return(dwRetErrorCode);
-}
-
-
-__inline LPVOID ListMTItemDataGet(PCLIST_MT_ITEM pclmtListMTItem)
-{
- return(pclmtListMTItem->lpData);
-}
-
-
-__inline void ListMTItemDataSet(PCLIST_MT_ITEM pclmtListMTItem, LPVOID lpData)
-{
- pclmtListMTItem->lpData=lpData;
-}
-
-
-__inline DWORD ListMTItemGetFirst(PCLIST_MT pclmtListMT,PLIST_MT_ITEM *pplmtListMTItem,LPVOID *plpData)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- DWORD dwRetErrorCode;
-
- if (pclmtListMT->plmtiFirst)
- {
- if (pplmtListMTItem) (*pplmtListMTItem)=pclmtListMT->plmtiFirst;
- if (plpData) (*plpData)=pclmtListMT->plmtiFirst->lpData;
- dwRetErrorCode=NO_ERROR;
- }else{
- dwRetErrorCode=ERROR_NO_MORE_ITEMS;
- }
-return(dwRetErrorCode);
-}
-
-
-__inline DWORD ListMTItemGetLast(PCLIST_MT pclmtListMT,PLIST_MT_ITEM *pplmtListMTItem,LPVOID *plpData)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- DWORD dwRetErrorCode;
-
- if (pclmtListMT->plmtiLast)
- {
- if (pplmtListMTItem) (*pplmtListMTItem)=pclmtListMT->plmtiLast;
- if (plpData) (*plpData)=pclmtListMT->plmtiLast->lpData;
- dwRetErrorCode=NO_ERROR;
- }else{
- dwRetErrorCode=ERROR_NO_MORE_ITEMS;
- }
-return(dwRetErrorCode);
-}
-
-
-
-__inline void ListMTItemSwap(PCLIST_MT pclmtListMT,PCLIST_MT_ITEM pclmtListMTItem1,PCLIST_MT_ITEM pclmtListMTItem2)
-{// поменять два элемента списка местами, даже если они из разных списков
-
- if (pclmtListMTItem1!=pclmtListMTItem2)
- {// это разные элементы списка
- PLIST_MT_ITEM lpTemp;
-
- lpTemp=pclmtListMTItem1->plmtiPrev;
- if ((pclmtListMTItem1->plmtiPrev=pclmtListMTItem2->plmtiPrev)==NULL)
- {// pclmtListMTItem2 был первым, обновляем заголвок листа, теперь первый pclmtListMTItem1
- pclmtListMT->plmtiFirst=pclmtListMTItem1;
- }
-
- if ((pclmtListMTItem2->plmtiPrev=lpTemp)==NULL)
- {// pclmtListMTItem1 был первым, обновляем заголвок листа, теперь первый pclmtListMTItem2
- pclmtListMT->plmtiFirst=pclmtListMTItem2;
- }
-
-
- lpTemp=pclmtListMTItem1->plmtiNext;
- if ((pclmtListMTItem1->plmtiNext=pclmtListMTItem2->plmtiNext)==NULL)
- {// pclmtListMTItem2 был последним, обновляем заголвок листа, теперь последний pclmtListMTItem1
- pclmtListMT->plmtiLast=pclmtListMTItem1;
- }
-
- if ((pclmtListMTItem2->plmtiNext=lpTemp)==NULL)
- {// pclmtListMTItem1 был последним, обновляем заголвок листа, теперь последний pclmtListMTItem2
- pclmtListMT->plmtiLast=pclmtListMTItem2;
- }
- }
-}
-
-
-__inline BOOL ListMTIteratorMoveFirst(PCLIST_MT pclmtListMT,PCLIST_MT_ITERATOR pclmtiIterator)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- return((pclmtiIterator->plmtListMTItem=pclmtListMT->plmtiFirst)? TRUE:FALSE);
-}
-
-
-__inline BOOL ListMTIteratorMoveLast(PCLIST_MT pclmtListMT,PCLIST_MT_ITERATOR pclmtiIterator)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- return((pclmtiIterator->plmtListMTItem=pclmtListMT->plmtiLast)? TRUE:FALSE);
-}
-
-
-__inline BOOL ListMTIteratorMovePrev(PCLIST_MT_ITERATOR pclmtiIterator)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- BOOL bRet=FALSE;
-
- if (pclmtiIterator->plmtListMTItem)
- {
- if (pclmtiIterator->plmtListMTItem=pclmtiIterator->plmtListMTItem->plmtiPrev) bRet=TRUE;
- }
-return(bRet);
-}
-
-
-__inline BOOL ListMTIteratorMoveNext(PCLIST_MT_ITERATOR pclmtiIterator)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- BOOL bRet=FALSE;
-
- if (pclmtiIterator->plmtListMTItem)
- {
- if (pclmtiIterator->plmtListMTItem=pclmtiIterator->plmtListMTItem->plmtiNext) bRet=TRUE;
- }
-return(bRet);
-}
-
-
-__inline DWORD ListMTIteratorGet(PCLIST_MT_ITERATOR pclmtiIterator,PLIST_MT_ITEM *pplmtListMTItem,LPVOID *plpData)
-{// если нужно гарантировать эксклюзивный доступ, то есть ListMTLock и ListMTUnLock
- DWORD dwRetErrorCode;
-
- if (pclmtiIterator->plmtListMTItem)
- {
- if (pplmtListMTItem) (*pplmtListMTItem)=pclmtiIterator->plmtListMTItem;
- if (plpData) (*plpData)=pclmtiIterator->plmtListMTItem->lpData;
- dwRetErrorCode=NO_ERROR;
- }else{
- dwRetErrorCode=ERROR_NO_MORE_ITEMS;
- }
-return(dwRetErrorCode);
-}
-
-
-
-#if defined(_MSC_VER)
-#if _MSC_VER >= 800
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#else
-#pragma warning(default:4312) // warning C4312: 'type cast' : conversion from 'LONG' to 'PVOID' of greater size
-#endif
-#endif
-#endif
-
-
-
-#endif // !defined(AFX_LIST_MT__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryCompare.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryCompare.h
deleted file mode 100644
index de663c6d8a..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryCompare.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#if !defined(AFX_MEMORYCOMPARE__H__INCLUDED_)
-#define AFX_MEMORYCOMPARE__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-// If the string pointed to by lpString1 is less than the string pointed
-// to by lpString2, the return value is negative.
-// If the string pointed to by lpString1 is greater than the string pointed
-// to by lpString2, the return value is positive.
-// If the strings are equal, the return value is zero.
-//
-// lpString1<lpString2 >> ret=1=CSTR_LESS_THAN
-// lpString1=lpString2 >> ret=2=CSTR_EQUAL
-// lpString1>lpString2 >> ret=3=CSTR_GREATER_THAN
-
-
-/*__inline DWORD MemoryCompare(LPCVOID lpcSource1,SIZE_T dwSource1Size,LPCVOID lpcSource2,SIZE_T dwSource2Size)
-{
- DWORD dwRet;
-
- __asm
- {
- mov ecx,dwSource1Size //; ecx = Source string 1 Size
- cmp ecx,dwSource2Size //; сверяем длинны участков памяти
- jg short greater_than
- jl short less_than
- test ecx,ecx
- jz short equal //; NULL=NULL
-
- mov esi,lpcSource1 //; edi = Source string 1
- mov edi,lpcSource2 //; esi = Source string 2
- cmp edi,esi //; сверяем указатели на участки памяти
- je short equal //; это один и тотже участок, они естественно равны
-
- test esi,esi //; lpcSource1=NULL, lpcSource1<lpcSource2
- jz short less_than //; CSTR_LESS_THAN
-
- test edi,edi //; lpcSource2=NULL, lpcSource1>lpcSource2
- jz short greater_than //; CSTR_GREATER_THAN
-
- //cld //; сканируя в прямом направлении
-
- repe cmpsb //; цикл сравнения.
- cmp_loop:
- //sub ecx,4
- //jz short equal
-
- //inc esi
- //inc edi
- //mov al,byte ptr [esi]
- //cmpsd
- //cmp al,byte ptr [edi]
- //je short cmp_loop
- jg short greater_than
- jl short less_than
-
- equal: //; если мы попали сюда, значит, они
- mov dwRet,CSTR_EQUAL //; совпадают (match)
- jmp end_func
- less_than: //; не совпадают
- mov dwRet,CSTR_LESS_THAN
- jmp end_func
- greater_than:
- mov dwRet,CSTR_GREATER_THAN
-
- end_func:
- }
-return(dwRet);
-}//*/
-
-__inline DWORD MemoryCompare(LPCVOID lpcSource1,SIZE_T dwSource1Size,LPCVOID lpcSource2,SIZE_T dwSource2Size)
-{
- DWORD dwRet;
-
- if (dwSource1Size==dwSource2Size)
- {
- if (lpcSource1==lpcSource2)
- {
- dwRet=CSTR_EQUAL;
- }else{
- if (lpcSource1 && lpcSource2)
- {
-#ifdef _INC_MEMORY
- dwRet=(2+memcmp(lpcSource1,lpcSource2,dwSource1Size));
-#else
- SIZE_T dwDiffPosition;
-
- //dwDiffPosition=RtlCompareMemory(lpcSource1,lpcSource2,dwSource1Size);
- for(dwDiffPosition=0; (dwDiffPosition<dwSource1Size) && (((const BYTE*)lpcSource1)[dwDiffPosition]==((const BYTE*)lpcSource2)[dwDiffPosition]); dwDiffPosition++);
- if (dwDiffPosition==dwSource1Size)
- {
- dwRet=CSTR_EQUAL;
- }else{
- if ((*((BYTE*)(((SIZE_T)lpcSource1)+dwDiffPosition)))>(*((BYTE*)(((SIZE_T)lpcSource2)+dwDiffPosition))))
- {
- dwRet=CSTR_GREATER_THAN;
- }else{
- dwRet=CSTR_LESS_THAN;
- }
- }
-#endif
- }else{
- if (lpcSource1)
- {//lpcSource2==NULL
- dwRet=CSTR_GREATER_THAN;
- }else{//lpcSource1==NULL
- dwRet=CSTR_LESS_THAN;
- }
- }
- }
- }else{
- if (dwSource1Size<dwSource2Size)
- {
- dwRet=CSTR_LESS_THAN;
- }else{
- dwRet=CSTR_GREATER_THAN;
- }
- }
-return(dwRet);
-}//*/
-
-
-/*
-__inline DWORD MemoryCompareEx(LPCVOID lpcSource1,SIZE_T dwSource1Size,LPCVOID lpcSource2,SIZE_T dwSource2Size,SIZE_T *pdwDiffPosition)
-{
- DWORD dwRet;
-
- if (dwSource1Size==dwSource2Size)
- {
- if (lpcSource1==lpcSource2)
- {
- dwRet=CSTR_EQUAL;
- }else{
- if (lpcSource1 && lpcSource2)
- {
- SIZE_T dwDiffPosition;
-
- dwDiffPosition=RtlCompareMemory(lpcSource1,lpcSource2,dwSource1Size);
- if (dwDiffPosition==dwSource1Size)
- {
- dwRet=CSTR_EQUAL;
- }else{
- if ((*((BYTE*)(((SIZE_T)lpcSource1)+dwDiffPosition)))>(*((BYTE*)(((SIZE_T)lpcSource2)+dwDiffPosition))))
- {
- dwRet=CSTR_GREATER_THAN;
- }else{
- dwRet=CSTR_LESS_THAN;
- }
- }
-
- if (pdwDiffPosition) (*pdwDiffPosition)=dwDiffPosition;
- }else{
- if (lpcSource1)
- {//lpcSource2==NULL
- dwRet=CSTR_GREATER_THAN;
- }else{//lpcSource1==NULL
- dwRet=CSTR_LESS_THAN;
- }
- }
- }
- }else{
- if (dwSource1Size<dwSource2Size)
- {
- dwRet=CSTR_LESS_THAN;
- }else{
- dwRet=CSTR_GREATER_THAN;
- }
- }
-return(dwRet);
-}
-*/
-
-
-#endif // !defined(AFX_MEMORYCOMPARE__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFind.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFind.h
deleted file mode 100644
index dbc5f1a2d1..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFind.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#if !defined(AFX_MEMORYFIND__H__INCLUDED_)
-#define AFX_MEMORYFIND__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-__inline LPVOID MemoryFind(SIZE_T dwFrom,LPCVOID lpcSource,SIZE_T dwSourceSize,LPCVOID lpcWhatFind,SIZE_T dwWhatFindSize)
-{
- LPVOID lpRet=NULL;
-
- __asm
- {
- push ebx // сохраняем регистр
- push edi // сохраняем регистр
- push esi // сохраняем регистр
-
- mov ecx,dwSourceSize //; ecx = Source string Size
- test ecx,ecx // is size unknown?
- jz short end_func
-
- mov edx,dwWhatFindSize //; edx = WhatFind string Size
- test edx,edx // is size unknown?
- jz short end_func
-
- mov ebx,dwFrom // ebx - start pos in Source string
- mov edi,lpcSource //; edi = Source string
- mov esi,lpcWhatFind //; esi = WhatFind string
-
- cmp ebx,ecx // проверка ecx(=len)=>ulFrom
- jae short end_func
-
- add edi,ebx // сдвигаем начало на ulFrom(нач смещен)
- sub ecx,ebx // уменьшаем длинну SourceSize на ulFrom(нач смещен)
-
- cmp ecx,edx // проверка NEWSourceSize ??? ulWhatFindSize
- je short begin_memorycompare // NEWulSourceSize==ulWhatFindSize, Source ??? WhatFind
- jl short end_func // NEWulSourceSize<ulWhatFindSize, => Source!=WhatFind
-
- sub ecx,edx // уменьшаем длинну SourceSize на ulWhatFindSize
- inc ecx
-
- mov al,[esi] //; al=search byte
- dec edi
- cld //; сканируя в прямом направлении
-
- find_loop:
- test ecx,ecx
- jz short end_func
- inc edi
- repne scasb //; find that byte
- dec edi //; di points to byte which stopped scan
-
- cmp [edi],al //; see if we have a hit
- jne short end_func //; yes, point to byte
-
- begin_memorycompare:
- push esi
- push edi
- push ecx
- mov ecx,edx //; ulWhatFindSize байтов (CX используется в REPE),
- repe cmpsb //; сравниваем их.
- pop ecx
- pop edi
- pop esi
- jne short find_loop //; признак ZF = 0, если сравниваемые
- //; строки не совпадают (mismatch) match:
- //; если мы попали сюда, значит, они
- //; совпадают (match)
- mov lpRet,edi //; ax=pointer to byte
- end_func:
-
- pop esi // восстанавливаем содержимое регистра
- pop edi // восстанавливаем содержимое регистра
- pop ebx // восстанавливаем содержимое регистра
- }
-return(lpRet);
-}
-
-
-#endif // !defined(AFX_MEMORYFIND__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFindByte.h b/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFindByte.h
deleted file mode 100644
index 0dcc1f91a6..0000000000
--- a/plugins/!NotAdopted/SMS/AdditionalFunctions/MemoryFindByte.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#if !defined(AFX_MEMORYFINDBYTE__H__INCLUDED_)
-#define AFX_MEMORYFINDBYTE__H__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-
-__inline LPVOID MemoryFindByte(SIZE_T dwFrom,LPCVOID lpcSource,SIZE_T dwSourceSize,unsigned char chWhatFind)
-{
- LPVOID lpRet=NULL;
-
- if (lpcSource && dwSourceSize)
- {
- if (dwFrom<dwSourceSize)
- {
- lpRet=memchr((LPCVOID)(((SIZE_T)lpcSource)+dwFrom),chWhatFind,(dwSourceSize-dwFrom));
- }
- }
-return(lpRet);
-}
-
-
-
-__inline LPVOID MemoryFindByteReverse(SIZE_T dwFrom,LPCVOID lpcSource,SIZE_T dwSourceSize,unsigned char chWhatFind)
-{
- LPVOID lpRet=NULL;
-
- __asm
- {
- push ebx // сохраняем регистр
- push edi // сохраняем регистр
- push esi // сохраняем регистр
-
- mov ecx,dwSourceSize
- test ecx,ecx //; проверка входного параметра, он !=0
- je short end_func
-
- mov edi,lpcSource //; di = string
- test edi,edi //; проверка входного параметра, он !=0
- jz short end_func
-
- mov eax,dwFrom
-
-/////////////////////////////////////////////
- cmp eax,ecx //; проверка ecx(=len)=>dwFrom
- jae short end_func
-
- std //; count 'up' on string this time
- sub ecx,eax //; уменьшаем длинну на dwFrom(нач смещен)
- add edi,ecx //; сдвигаем начало на dwSourceSize(на конец)
- mov al,chWhatFind //; al=search byte
- repne scasb //; find that byte
- inc edi //; di points to byte which stopped scan
- cmp [edi],al //; see if we have a hit
- jne short end_func //; yes, point to byte
- mov lpRet,edi //; ax=pointer to byte
- end_func:
-
- cld
- pop esi // восстанавливаем содержимое регистра
- pop edi // восстанавливаем содержимое регистра
- pop ebx // восстанавливаем содержимое регистра
- }
-return(lpRet);
-}
-
-
-
-#endif // !defined(AFX_MEMORYFINDBYTE__H__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/SMS.def b/plugins/!NotAdopted/SMS/SMS.def
deleted file mode 100644
index 3ec70ac7bb..0000000000
--- a/plugins/!NotAdopted/SMS/SMS.def
+++ /dev/null
@@ -1,8 +0,0 @@
-LIBRARY SMS
-
-EXPORTS
- MirandaPluginInfo @1
- MirandaPluginInfoEx @2
- MirandaPluginInterfaces @3
- Load @4
- Unload @5
diff --git a/plugins/!NotAdopted/SMS/SMSConstans.h b/plugins/!NotAdopted/SMS/SMSConstans.h
deleted file mode 100644
index ddaddc3df7..0000000000
--- a/plugins/!NotAdopted/SMS/SMSConstans.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#if !defined(AFX_SMS_CONSTANS_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
-#define AFX_SMS_CONSTANS_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_
-
-
-
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-
-// {CF97FD5D-B911-47a8-AF03-D21968B5B894}
-#define SMS_GUID { 0xcf97fd5d, 0xb911, 0x47a8, { 0xaf, 0x3, 0xd2, 0x19, 0x68, 0xb5, 0xb8, 0x94 } }
-
-
-#define MIN_MIR_VER_VERSION_DWORD PLUGIN_MAKE_VERSION(0,8,0,0)
-
-
-#define PLUGIN_VERSION_DWORD PLUGIN_MAKE_VERSION(0,2,5,3)
-#define PROTOCOL_NAMEA "SMSPlugin"
-#define PROTOCOL_NAMEW TEXT(PROTOCOL_NAMEA)
-#define PROTOCOL_NAME_LEN (sizeof(PROTOCOL_NAMEA)-1)
-#define PROTOCOL_NAME_SIZE sizeof(PROTOCOL_NAMEA)
-#define PROTOCOL_DISPLAY_NAME_ORIG "SMS"
-#define PROTOCOL_DISPLAY_NAME_ORIGW TEXT(PROTOCOL_DISPLAY_NAME_ORIG)
-
-
-
-
-#define TIMEOUT_MSGSEND 60000 // send sms timeout
-#define MIN_SMS_DBEVENT_LEN 4 // для фильтрации событий авторизации от джабер плагина
-#define MAX_PHONE_LEN MAX_PATH
-#define PHONES_MIN_COUNT 4 //internal // колличество элементов обязательно проверяемых при извлечении email адреса из инфы юзера
-#define SMS_PLUGIN_UPDATER_ID 4187 //появляется после первого выкладывания на сайт
-
-
-
-#define SMS_DEFAULT_
-#define SMS_DEFAULT_SIGNATUREPOS FALSE
-#define SMS_DEFAULT_SHOWACK TRUE
-#define SMS_DEFAULT_USESIGNATURE TRUE
-#define SMS_DEFAULT_AUTOPOP FALSE
-#define SMS_DEFAULT_SAVEWINPOS FALSE
-
-
-
-//
-#define ICQEVENTTYPE_SMSCONFIRMATION 3001
-
-
-//Fonts defenitions
-//#define SRMMMOD "SRMM"
-#define SRMMMOD "TabSRMM_Fonts"
-
-#define FONTF_BOLD 1
-#define FONTF_ITALIC 2
-struct FontOptionsList
-{
- COLORREF defColour;
- TCHAR* szDefFace;
- BYTE defStyle;
- char defSize;
-}
-
-static fontOptionsList[] = {
- { RGB(106, 106, 106), _T("Arial"), 0, -12},
-};
-
-
-#define MSGFONTID_MYMSG 0
-#define MSGFONTID_YOURMSG 2
-#define MSGFONTID_MESSAGEAREA 16
-
-
-#define SRMSGSET_BKGCOLOUR "BkgColour"
-#define SRMSGSET_INPBKGCOLOUR "inputbg"
-#define SRMSGDEFSET_BKGCOLOUR GetSysColor(COLOR_WINDOW)
-#define FONTF_BOLD 1
-#define FONTF_ITALIC 2
-
-
-
-//Decleration of functions that used when user hit miranda for new message/confirmation
-int ReadAckSMS(WPARAM wParam,LPARAM lParam);
-int ReadMsgSMS(WPARAM wParam,LPARAM lParam);
-int SendSMSMenuCommand(WPARAM wParam,LPARAM lParam);
-
-
-
-#define SMS_READ "/ReadSms"
-#define SMS_READ_ACK "/ReadSmsAck"
-#define SMS_SEND "/SendSMS"
-#define SMS_SEND_STR L"Send &SMS..."
-#define SMS_SEND_CM_STR L"&SMS Message"
-
-
-static const SERVICE_ITEM siPluginServices[] =
-{
- { SMS_READ, ReadMsgSMS },
- { SMS_READ_ACK, ReadAckSMS },
- { SMS_SEND, SendSMSMenuCommand },
-};
-
-
-
-
-#endif // !defined(AFX_SMS_CONSTANS_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/SMS_svc.cpp b/plugins/!NotAdopted/SMS/SMS_svc.cpp
deleted file mode 100644
index 24e6d1ad2f..0000000000
--- a/plugins/!NotAdopted/SMS/SMS_svc.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-#include "main.h"
-
-
-
-int LoadServices(void)
-{
- CHAR szServiceFunction[MAX_PATH],*pszServiceFunctionName;
-
- CopyMemory(szServiceFunction,PROTOCOL_NAMEA,PROTOCOL_NAME_SIZE);
- pszServiceFunctionName=szServiceFunction+PROTOCOL_NAME_LEN;
-
- // Service creation
- for (SIZE_T i=0;i<SIZEOF(siPluginServices);i++)
- {
- CopyMemory(pszServiceFunctionName,siPluginServices[i].lpszName,(lstrlenA(siPluginServices[i].lpszName)+1));
- CreateServiceFunction(szServiceFunction,(MIRANDASERVICE)siPluginServices[i].lpFunc);
- }
-return(0);
-}
-
-
-int LoadModules(void)
-{
- ssSMSSettings.hHookOptInitialize=HookEvent(ME_OPT_INITIALISE,OptInitialise);
- ssSMSSettings.hHookRebuildCMenu=HookEvent(ME_CLIST_PREBUILDCONTACTMENU,SmsRebuildContactMenu);
- ssSMSSettings.hHookProtoAck=HookEvent(ME_PROTO_ACK,handleAckSMS);
- ssSMSSettings.hHookDbAdd=HookEvent(ME_DB_EVENT_ADDED,handleNewMessage);
- ssSMSSettings.hHookAccListChanged=HookEvent(ME_PROTO_ACCLISTCHANGED,RefreshAccountList);
-
-
- CLISTMENUITEM mi={0};
- CHAR szServiceFunction[MAX_PATH];
-
- mir_snprintf(szServiceFunction,sizeof(szServiceFunction),"%s%s",PROTOCOL_NAMEA,SMS_SEND);
-
- mi.cbSize=sizeof(mi);
- mi.position=300050000;
- mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_SMS);
- mi.ptszName=SMS_SEND_STR;
- mi.pszService=szServiceFunction;
- mi.flags=(CMIF_UNICODE);
- CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi);
-
- mi.position=-2000070000;
- mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_SMS);
- mi.ptszName=SMS_SEND_CM_STR;
- mi.pszService=szServiceFunction;
- mi.flags=(CMIF_UNICODE);
- ssSMSSettings.hContactMenuItems[0]=(HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&mi);
-
-
-
- SkinAddNewSoundEx("RecvSMSMsg",PROTOCOL_NAMEA,Translate("Incoming SMS Message"));
- SkinAddNewSoundEx("RecvSMSConfirmation",PROTOCOL_NAMEA,Translate("Incoming SMS Confirmation"));
-
-
- RefreshAccountList(NULL,NULL);
-
- RestoreUnreadMessageAlerts();
-
-return(0);
-}
-
-
-void UnloadModules()
-{
- // Main menu destroy
- //CListDestroyMenu(gdiMenuItems,SIZEOF(gdiMenuItems));
- //ZeroMemory(masMraSettings.hMainMenuItems,sizeof(masMraSettings.hMainMenuItems));
-
- // Contact menu destroy
- //CListDestroyMenu(gdiContactMenuItems,(SIZEOF(gdiContactMenuItems) - ((masMraSettings.heNudgeReceived==NULL)? 0:1)));
- //ZeroMemory(masMraSettings.hContactMenuItems,sizeof(masMraSettings.hContactMenuItems));
-
- if (ssSMSSettings.hHookAccListChanged) {UnhookEvent(ssSMSSettings.hHookAccListChanged); ssSMSSettings.hHookAccListChanged=NULL;}
- if (ssSMSSettings.hHookDbAdd) {UnhookEvent(ssSMSSettings.hHookDbAdd); ssSMSSettings.hHookDbAdd=NULL;}
- if (ssSMSSettings.hHookProtoAck) {UnhookEvent(ssSMSSettings.hHookProtoAck); ssSMSSettings.hHookProtoAck=NULL;}
- if (ssSMSSettings.hHookRebuildCMenu) {UnhookEvent(ssSMSSettings.hHookRebuildCMenu); ssSMSSettings.hHookRebuildCMenu=NULL;}
- if (ssSMSSettings.hHookOptInitialize) {UnhookEvent(ssSMSSettings.hHookOptInitialize); ssSMSSettings.hHookOptInitialize=NULL;}
-
- //IconsUnLoad();
-
-}
-
-
-void UnloadServices()
-{
- CHAR szServiceFunction[MAX_PATH],*pszServiceFunctionName;
-
- CopyMemory(szServiceFunction,PROTOCOL_NAMEA,PROTOCOL_NAME_SIZE);
- pszServiceFunctionName=szServiceFunction+PROTOCOL_NAME_LEN;
-
- // destroy plugin services
- for (SIZE_T i=0;i<SIZEOF(siPluginServices);i++)
- {
- CopyMemory(pszServiceFunctionName,siPluginServices[i].lpszName,(lstrlenA(siPluginServices[i].lpszName)+1));
- DestroyServiceFunction(szServiceFunction);
- }
-}
-
-
-
-int SmsRebuildContactMenu(WPARAM wParam,LPARAM lParam)
-{
- CListShowMenuItem(ssSMSSettings.hContactMenuItems[0],(BOOL)GetContactPhonesCount((HANDLE)wParam));
-return(0);
-}
-
-
-//This function called when user clicked Menu.
-int SendSMSMenuCommand(WPARAM wParam,LPARAM lParam)
-{
- HWND hwndSendSms;
-
- if (wParam)
- {// user clicked on the "SMS Message" on one of the users
- hwndSendSms=SendSMSWindowIsOtherInstanceHContact((HANDLE)wParam);
- if (hwndSendSms)
- {
- SetFocus(hwndSendSms);
- }else{
- hwndSendSms=SendSMSWindowAdd((HANDLE)wParam);
- }
- }else{// user clicked on the "SMS Send" in the Main Menu
- hwndSendSms=SendSMSWindowAdd(NULL);
- EnableWindow(GetDlgItem(hwndSendSms,IDC_NAME),TRUE);
- EnableWindow(GetDlgItem(hwndSendSms,IDC_SAVENUMBER),FALSE);
-
- for(HANDLE hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDFIRST,0,0);hContact!=NULL;hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDNEXT,(WPARAM)hContact,0))
- {
- if (GetContactPhonesCount(hContact))
- {
- SEND_DLG_ITEM_MESSAGEW(hwndSendSms,IDC_NAME,CB_ADDSTRING,0,(LPARAM)GetContactNameW(hContact));
- SendSMSWindowSMSContactAdd(hwndSendSms,hContact);
- }
- }
- }
-return(0);
-}
-
-
-//This function used to popup a read SMS window after the user clicked on the received SMS message.
-int ReadMsgSMS(WPARAM wParam,LPARAM lParam)
-{
- int iRet=1;
- DBEVENTINFO dbei={0};
-
- dbei.cbSize=sizeof(dbei);
- if ((dbei.cbBlob=CallService(MS_DB_EVENT_GETBLOBSIZE,(WPARAM)((CLISTEVENT*)lParam)->hDbEvent,0))!=-1)
- {
- dbei.pBlob=(PBYTE)MEMALLOC(dbei.cbBlob);
- if (dbei.pBlob)
- {
- if (CallService(MS_DB_EVENT_GET,(WPARAM)((CLISTEVENT*)lParam)->hDbEvent,(LPARAM)&dbei)==0)
- if (dbei.eventType==ICQEVENTTYPE_SMS || dbei.eventType==ICQEVENTTYPE_SMSCONFIRMATION)
- if (dbei.cbBlob>MIN_SMS_DBEVENT_LEN)
- {
- if (RecvSMSWindowAdd(((CLISTEVENT*)lParam)->hContact,ICQEVENTTYPE_SMS,NULL,0,(LPSTR)dbei.pBlob,dbei.cbBlob))
- {
- CallService(MS_DB_EVENT_MARKREAD,(WPARAM)((CLISTEVENT*)lParam)->hContact,(LPARAM)((CLISTEVENT*)lParam)->hDbEvent);
- iRet=0;
- }
- }
- MEMFREE(dbei.pBlob);
- }
- }
-return(iRet);
-}
-
-//This function used to popup a read SMS window after the user clicked on the received SMS confirmation.
-int ReadAckSMS(WPARAM wParam,LPARAM lParam)
-{
- int iRet=1;
- DBEVENTINFO dbei={0};
-
- dbei.cbSize=sizeof(dbei);
- if ((dbei.cbBlob=CallService(MS_DB_EVENT_GETBLOBSIZE,(WPARAM)((CLISTEVENT*)lParam)->hDbEvent,0))!=-1)
- {
- dbei.pBlob=(PBYTE)MEMALLOC(dbei.cbBlob);
- if (dbei.pBlob)
- {
- if (CallService(MS_DB_EVENT_GET,(WPARAM)((CLISTEVENT*)lParam)->hDbEvent,(LPARAM)&dbei)==0)
- if (dbei.eventType==ICQEVENTTYPE_SMS || dbei.eventType==ICQEVENTTYPE_SMSCONFIRMATION)
- if (dbei.cbBlob>MIN_SMS_DBEVENT_LEN)
- {
- if (RecvSMSWindowAdd(((CLISTEVENT*)lParam)->hContact,ICQEVENTTYPE_SMSCONFIRMATION,NULL,0,(LPSTR)dbei.pBlob,dbei.cbBlob))
- {
- CallService(MS_DB_EVENT_DELETE,(WPARAM)((CLISTEVENT*)lParam)->hContact,(LPARAM)((CLISTEVENT*)lParam)->hDbEvent);
- iRet=0;
- }
- }
- MEMFREE(dbei.pBlob);
- }
- }
-return(iRet);
-}
-
-void RestoreUnreadMessageAlerts(void)
-{
- DBEVENTINFO dbei={0};
- HANDLE hDbEvent,hContact;
-
- dbei.cbSize=sizeof(dbei);
- for(hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDFIRST,0,0);hContact!=NULL;hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDNEXT,(WPARAM)hContact,0))
- for(hDbEvent=(HANDLE)CallService(MS_DB_EVENT_FINDFIRSTUNREAD,(WPARAM)hContact,0);hDbEvent!=NULL;hDbEvent=(HANDLE)CallService(MS_DB_EVENT_FINDNEXT,(WPARAM)hDbEvent,0))
- {
- dbei.cbBlob=0;
- if (CallService(MS_DB_EVENT_GET,(WPARAM)hDbEvent,(LPARAM)&dbei)==0)
- if ((dbei.flags&(DBEF_SENT|DBEF_READ))==0 && ((dbei.eventType==ICQEVENTTYPE_SMS) || (dbei.eventType==ICQEVENTTYPE_SMSCONFIRMATION)))
- if (dbei.cbBlob>MIN_SMS_DBEVENT_LEN)
- {
- handleNewMessage((WPARAM)hContact,(LPARAM)hDbEvent);
- }
- }
-
- hContact=NULL;
- for(hDbEvent=(HANDLE)CallService(MS_DB_EVENT_FINDFIRSTUNREAD,(WPARAM)hContact,0);hDbEvent!=NULL;hDbEvent=(HANDLE)CallService(MS_DB_EVENT_FINDNEXT,(WPARAM)hDbEvent,0))
- {
- dbei.cbBlob=0;
- if (CallService(MS_DB_EVENT_GET,(WPARAM)hDbEvent,(LPARAM)&dbei)==0)
- if ((dbei.flags&(DBEF_SENT|DBEF_READ))==0 && ((dbei.eventType==ICQEVENTTYPE_SMS) || (dbei.eventType==ICQEVENTTYPE_SMSCONFIRMATION)))
- if (dbei.cbBlob>MIN_SMS_DBEVENT_LEN)
- {
- handleNewMessage((WPARAM)hContact,(LPARAM)hDbEvent);
- }
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/!NotAdopted/SMS/functions.cpp b/plugins/!NotAdopted/SMS/functions.cpp
deleted file mode 100644
index aebafa42d8..0000000000
--- a/plugins/!NotAdopted/SMS/functions.cpp
+++ /dev/null
@@ -1,761 +0,0 @@
-#include "main.h"
-
-
-
-
-
-BOOL DB_GetStaticStringW(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,LPWSTR lpwszRetBuff,SIZE_T dwRetBuffSize,SIZE_T *pdwRetBuffSize)
-{// sizes in wchars
- BOOL bRet=FALSE;
- SIZE_T dwReadedStringLen;
- DBVARIANT dbv={0};
- DBCONTACTGETSETTING sVal={0};
-
- dbv.type=DBVT_WCHAR;
- sVal.pValue=&dbv;
- sVal.szModule=lpszModule;
- sVal.szSetting=lpszValueName;
- if (CallService(MS_DB_CONTACT_GETSETTING_STR,(WPARAM)hContact,(LPARAM)&sVal)==0)
- {
- dwReadedStringLen=lstrlenW(dbv.pwszVal);
- if (lpwszRetBuff && (dwRetBuffSize>dwReadedStringLen))
- {
- CopyMemory(lpwszRetBuff,dbv.pszVal,(dwReadedStringLen*sizeof(WCHAR)));//include null terminated
- (*((WCHAR*)(lpwszRetBuff+dwReadedStringLen)))=0;
- bRet=TRUE;
- }else{
- if (lpwszRetBuff && dwRetBuffSize>=sizeof(WCHAR)) (*((WCHAR*)lpwszRetBuff))=0;
- }
- if (pdwRetBuffSize) (*pdwRetBuffSize)=dwReadedStringLen;
-
- DBFreeVariant(&dbv);
- }else{
- if (lpwszRetBuff && dwRetBuffSize>=sizeof(WCHAR)) (*((WCHAR*)lpwszRetBuff))=0;
- if (pdwRetBuffSize) (*pdwRetBuffSize)=0;
- }
-return(bRet);
-}
-
-
-BOOL DB_SetStringExW(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,LPWSTR lpwszValue,SIZE_T dwValueSize)
-{
- BOOL bRet=FALSE;
-
- if (lpwszValue && dwValueSize)
- {
- LPWSTR lpwszValueLocal=(LPWSTR)MEMALLOC(((dwValueSize+MAX_PATH)*sizeof(WCHAR)));
-
- if (lpwszValueLocal)
- {
- DBCONTACTWRITESETTING cws={0};
-
- cws.szModule=lpszModule;
- cws.szSetting=lpszValueName;
- cws.value.type=DBVT_WCHAR;
- cws.value.pwszVal=(WCHAR*)lpwszValueLocal;
- CopyMemory(lpwszValueLocal,lpwszValue,(dwValueSize*sizeof(WCHAR)));
- bRet=(CallService(MS_DB_CONTACT_WRITESETTING,(WPARAM)hContact,(LPARAM)&cws)==0);
-
- MEMFREE(lpwszValueLocal);
- }
- }else{
- bRet=TRUE;
- DBDeleteContactSetting(hContact,lpszModule,lpszValueName);
- }
-return(bRet);
-}
-
-
-LPSTR GetModuleName(HANDLE hContact)
-{
- LPSTR lpszRet;
-
- if (hContact)
- {
- lpszRet=(LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);
- if (lpszRet==NULL) lpszRet=PROTOCOL_NAMEA;
- }else{
- lpszRet=PROTOCOL_NAMEA;
- }
-return(lpszRet);
-}
-
-
-void EnableControlsArray(HWND hWndDlg,WORD *pwControlsList,SIZE_T dwControlsListCount,BOOL bEnabled)
-{
- for(SIZE_T i=0;i<dwControlsListCount;i++) EnableWindow(GetDlgItem(hWndDlg,pwControlsList[i]),bEnabled);
-}
-
-
-void CListShowMenuItem(HANDLE hMenuItem,BOOL bShow)
-{
- CLISTMENUITEM mi={0};
-
- mi.cbSize=sizeof(mi);
- mi.flags=CMIM_FLAGS;
- if (bShow==FALSE) mi.flags|=CMIF_HIDDEN;
-
- CallService(MS_CLIST_MODIFYMENUITEM,(WPARAM)hMenuItem,(LPARAM)&mi);
-}
-
-
-//This function gets a Cellular string szPhone and clean it from symbools.
-SIZE_T CopyNumberA(LPSTR lpszOutBuff,LPSTR lpszBuff,SIZE_T dwLen)
-{
- BYTE btChar;
- LPBYTE lpbOutBuff=(LPBYTE)lpszOutBuff,lpbInBuff=(LPBYTE)lpszBuff;
-
- for(SIZE_T i=0;i<dwLen;i++)
- {
- btChar=(*lpbInBuff++);
- if (btChar>='0' && btChar<='9') (*lpbOutBuff++)=btChar;
- }
- (*lpbOutBuff)=0;
-
-return((lpbOutBuff-(LPBYTE)lpszOutBuff));
-}
-
-SIZE_T CopyNumberW(LPWSTR lpcOutBuff,LPWSTR lpcBuff,SIZE_T dwLen)
-{
- WCHAR wChar;
- LPWSTR lpwszOutBuff=lpcOutBuff,lpwszInBuff=lpcBuff;
-
- for(SIZE_T i=0;i<dwLen;i++)
- {
- wChar=(*lpwszInBuff++);
- if (wChar>='0' && wChar<='9') (*lpwszOutBuff++)=wChar;
- }
- (*lpwszOutBuff)=0;
-
-return((lpwszOutBuff-lpcOutBuff));
-}
-
-
-BOOL IsPhoneW(LPWSTR lpwszString,SIZE_T dwStringLen)
-{
- BOOL bRet;
-
- if (dwStringLen>1)
- {// country code
- WCHAR wChar;
-
- bRet=TRUE;
- for(SIZE_T i=0;i<dwStringLen;i++)
- {
- wChar=(*lpwszString++);
- if (wChar<'0' || wChar>'9')
- if (wChar!='+' && wChar!='S' && wChar!='M' && wChar!=' ' && wChar!='(' && wChar!=')')
- {
- bRet=FALSE;
- break;
- }
- }
- }else{
- bRet=FALSE;
- }
-return(bRet);
-}
-
-
-
-DWORD GetContactPhonesCountParam(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName)
-{
- DWORD dwRet=0;
- char szBuff[MAX_PATH];
- WCHAR wszPhone[MAX_PHONE_LEN];
- SIZE_T i,dwPhoneSize;
-
- if (DB_GetStaticStringW(hContact,lpszModule,lpszValueName,wszPhone,SIZEOF(wszPhone),&dwPhoneSize))
- {
- if (IsPhoneW(wszPhone,dwPhoneSize)) dwRet++;
- }
-
- for (i=0;TRUE;i++)
- {
- mir_snprintf(szBuff,sizeof(szBuff),"%s%ld",lpszValueName,i);
- if (DB_GetStaticStringW(hContact,lpszModule,szBuff,wszPhone,SIZEOF(wszPhone),&dwPhoneSize))
- {
- if (IsPhoneW(wszPhone,dwPhoneSize)) dwRet++;
- }else{
- if (i>PHONES_MIN_COUNT) break;
- }
- }
-return(dwRet);
-}
-
-
-DWORD GetContactPhonesCount(HANDLE hContact)
-{
- DWORD dwRet=0;
- LPSTR lpszProto;
-
- lpszProto=(LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);
- if (lpszProto)
- {
- dwRet+=GetContactPhonesCountParam(hContact,lpszProto,"Phone");
- dwRet+=GetContactPhonesCountParam(hContact,lpszProto,"Cellular");
- dwRet+=GetContactPhonesCountParam(hContact,lpszProto,"Fax");
- }
- dwRet+=GetContactPhonesCountParam(hContact,"UserInfo","MyPhone");
- dwRet+=GetContactPhonesCountParam(hContact,"UserInfo","Phone");
- dwRet+=GetContactPhonesCountParam(hContact,"UserInfo","Cellular");
- dwRet+=GetContactPhonesCountParam(hContact,"UserInfo","Fax");
-
-return(dwRet);
-}
-
-
-BOOL IsContactPhoneParam(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,LPWSTR lpwszPhone,SIZE_T dwPhoneSize)
-{
- BOOL bRet=FALSE;
- char szBuff[MAX_PATH];
- WCHAR wszPhoneLocal[MAX_PHONE_LEN];
- SIZE_T i,dwPhoneSizeLocal;
-
- if (DB_GetStaticStringW(hContact,lpszModule,lpszValueName,wszPhoneLocal,SIZEOF(wszPhoneLocal),&dwPhoneSizeLocal))
- if (IsPhoneW(wszPhoneLocal,dwPhoneSizeLocal))
- {
- dwPhoneSizeLocal=CopyNumberW(wszPhoneLocal,wszPhoneLocal,dwPhoneSizeLocal);
- if (MemoryCompare(wszPhoneLocal,dwPhoneSizeLocal,lpwszPhone,dwPhoneSize)==CSTR_EQUAL)
- {
- bRet=TRUE;
- }
- }
-
- for (i=0;bRet==FALSE;i++)
- {
- mir_snprintf(szBuff,sizeof(szBuff),"%s%ld",lpszValueName,i);
- if (DB_GetStaticStringW(hContact,lpszModule,szBuff,wszPhoneLocal,SIZEOF(wszPhoneLocal),&dwPhoneSizeLocal))
- {
- if (IsPhoneW(wszPhoneLocal,dwPhoneSizeLocal))
- {
- dwPhoneSizeLocal=CopyNumberW(wszPhoneLocal,wszPhoneLocal,dwPhoneSizeLocal);
- if (MemoryCompare(wszPhoneLocal,dwPhoneSizeLocal,lpwszPhone,dwPhoneSize)==CSTR_EQUAL)
- {
- bRet=TRUE;
- break;
- }
- }
- }else{
- if (i>PHONES_MIN_COUNT) break;
- }
- }
-return(bRet);
-}
-
-
-BOOL IsContactPhone(HANDLE hContact,LPWSTR lpwszPhone,SIZE_T dwPhoneSize)
-{
- BOOL bRet=FALSE;
- WCHAR wszPhoneLocal[MAX_PHONE_LEN];
- LPSTR lpszProto;
- SIZE_T dwPhoneSizeLocal;
-
- dwPhoneSizeLocal=CopyNumberW(wszPhoneLocal,lpwszPhone,dwPhoneSize);
- lpszProto=(LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);
- if (lpszProto)
- {
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,lpszProto,"Phone",wszPhoneLocal,dwPhoneSizeLocal);
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,lpszProto,"Cellular",wszPhoneLocal,dwPhoneSizeLocal);
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,lpszProto,"Fax",wszPhoneLocal,dwPhoneSizeLocal);
- }
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,"UserInfo","MyPhone",wszPhoneLocal,dwPhoneSizeLocal);
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,"UserInfo","Phone",wszPhoneLocal,dwPhoneSizeLocal);
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,"UserInfo","Cellular",wszPhoneLocal,dwPhoneSizeLocal);
- if (bRet==FALSE) bRet=IsContactPhoneParam(hContact,"UserInfo","Fax",wszPhoneLocal,dwPhoneSizeLocal);
-
-return(bRet);
-}
-
-
-//This function get a string cellular number and return the HANDLE of the contact that has this
-//number in the miranda phonebook (and marked as an SMS able) at the User Details.
-//If no one has this number function returns NULL.
-HANDLE HContactFromPhone(LPWSTR lpwszPhone,SIZE_T dwPhoneSize)
-{
- HANDLE hContact=NULL;
-
- if (lpwszPhone && dwPhoneSize)
- {
- //check not already on list
- for(hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDFIRST,0,0);hContact!=NULL;hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDNEXT,(WPARAM)hContact,0))
- {
- if (IsContactPhone(hContact,lpwszPhone,dwPhoneSize)) break;
- }
- }
-return(hContact);
-}
-
-
-BOOL GetDataFromMessage(LPSTR lpszMessage,SIZE_T dwMessageSize,DWORD *pdwEventType,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,SIZE_T *pdwPhoneSizeRet,UINT *piIcon)
-{
- BOOL bRet=FALSE;
-
- DWORD dwEventTypeRet=0;
- SIZE_T dwPhoneSizeRet=0;
- UINT iIconRet=0;
-
- if (lpszMessage && dwMessageSize)
- {
- LPSTR lpsz;
-
- if (MemoryCompare(lpszMessage,10,"SMS From: ",10)==CSTR_EQUAL)
- {
- lpsz=(LPSTR)MemoryFind(10,lpszMessage,dwMessageSize,"\r\n",2);
- if (lpsz)
- {
- if (lpwszPhone && dwPhoneSize)
- {
- dwPhoneSizeRet=MultiByteToWideChar(CP_UTF8,0,(lpszMessage+10),min((SIZE_T)(lpsz-(lpszMessage+10)),dwPhoneSize),lpwszPhone,dwPhoneSize);
- dwPhoneSizeRet=CopyNumberW(lpwszPhone,lpwszPhone,dwPhoneSizeRet);
- }
- }
- iIconRet=0;
- dwEventTypeRet=ICQEVENTTYPE_SMS;
- bRet=TRUE;
- }else
- if (MemoryCompare(lpszMessage,23,"SMS Confirmation From: ",23)==CSTR_EQUAL)
- {
- lpsz=(LPSTR)MemoryFind(23,lpszMessage,dwMessageSize,"\r\n",2);
- if (lpsz)
- {
- if (lpwszPhone && dwPhoneSize)
- {
- dwPhoneSizeRet=MultiByteToWideChar(CP_UTF8,0,(lpszMessage+23),min((SIZE_T)(lpsz-(lpszMessage+23)),dwPhoneSize),lpwszPhone,dwPhoneSize);
- dwPhoneSizeRet=CopyNumberW(lpwszPhone,lpwszPhone,dwPhoneSizeRet);
- }
-
- lpsz+=2;
- if (MemoryCompare(lpsz,24,"SMS was sent succesfully",24)==CSTR_EQUAL)
- {
- iIconRet=IDI_SMSSENT;
- }else{
- iIconRet=IDI_SMSNOTSENT;
- }
- }
- dwEventTypeRet=ICQEVENTTYPE_SMSCONFIRMATION;
- bRet=TRUE;
- }
- }
-
- if (pdwPhoneSizeRet) (*pdwPhoneSizeRet)=dwPhoneSizeRet;
- if (pdwEventType) (*pdwEventType)=dwEventTypeRet;
- if (piIcon) (*piIcon)=iIconRet;
-
-return(bRet);
-}
-
-BOOL GetXMLFieldEx(LPSTR lpszXML,SIZE_T dwXMLSize,LPSTR *plpszData,SIZE_T *pdwDataSize,const char *tag1,...)
-{
- BOOL bRet=FALSE;
- int thisLevel=0;
- LPSTR lpszFindTag=(LPSTR)tag1,lpszTagStart,lpszTagEnd=lpszXML,lpszDataStart=NULL;
- va_list va;
-
- va_start(va,tag1);
- while(TRUE)
- {
- lpszTagStart=(LPSTR)MemoryFindByte((lpszTagEnd-lpszXML),lpszXML,dwXMLSize,'<');
- if (lpszTagStart)
- {
- lpszTagEnd=(LPSTR)MemoryFindByte((lpszTagStart-lpszXML),lpszXML,dwXMLSize,'>');
- if (lpszTagEnd)
- {
- lpszTagStart++;
- lpszTagEnd--;
- if ((*((BYTE*)lpszTagStart))=='/')
- {
- if (--thisLevel<0)
- {
- if (lpszDataStart)
- {
- if (plpszData) (*plpszData)=lpszDataStart;
- if (pdwDataSize) (*pdwDataSize)=((lpszTagStart-1)-lpszDataStart);
- bRet=TRUE;
- }
- break;
- }
- }else{
- if (++thisLevel==1)
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszFindTag,-1,lpszTagStart,((lpszTagEnd+1)-lpszTagStart))==CSTR_EQUAL)
- {
- lpszFindTag=va_arg(va,LPSTR);
- if (lpszFindTag==NULL) lpszDataStart=(lpszTagEnd+2);
- thisLevel=0;
- }
- }
- }else{
- break;
- }
- }else{
- break;
- }
- }
- va_end(va);
-return(bRet);
-}
-
-
-BOOL GetXMLFieldExBuff(LPSTR lpszXML,SIZE_T dwXMLSize,LPSTR lpszBuff,SIZE_T dwBuffSize,SIZE_T *pdwBuffSizeRet,const char *tag1,...)
-{
- BOOL bRet=FALSE;
- int thisLevel=0;
- LPSTR lpszFindTag=(LPSTR)tag1,lpszTagStart,lpszTagEnd=lpszXML,lpszDataStart=NULL;
- va_list va;
-
-
- va_start(va,tag1);
- while(TRUE)
- {
- lpszTagStart=(LPSTR)MemoryFindByte((lpszTagEnd-lpszXML),lpszXML,dwXMLSize,'<');
- if (lpszTagStart)
- {
- lpszTagEnd=(LPSTR)MemoryFindByte((lpszTagStart-lpszXML),lpszXML,dwXMLSize,'>');
- if (lpszTagEnd)
- {
- lpszTagStart++;
- lpszTagEnd--;
- if ((*((BYTE*)lpszTagStart))=='/')
- {
- if (--thisLevel<0)
- {
- if (lpszDataStart)
- {
- SIZE_T dwBuffSizeRet=min((dwBuffSize-2),(SIZE_T)((lpszTagStart-1)-lpszDataStart));
- if (lpszBuff && dwBuffSize) CopyMemory(lpszBuff,lpszDataStart,dwBuffSizeRet);(*((WORD*)(lpszBuff+dwBuffSizeRet)))=0;
- if (pdwBuffSizeRet) (*pdwBuffSizeRet)=dwBuffSizeRet;
- bRet=TRUE;
- }
- break;
- }
- }else{
- if (++thisLevel==1)
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszFindTag,-1,lpszTagStart,((lpszTagEnd+1)-lpszTagStart))==CSTR_EQUAL)
- {
- lpszFindTag=va_arg(va,LPSTR);
- if (lpszFindTag==NULL) lpszDataStart=(lpszTagEnd+2);
- thisLevel=0;
- }
- }
- }else{
- break;
- }
- }else{
- break;
- }
- }
- va_end(va);
-
-
- if (bRet==FALSE)
- {
- if (lpszBuff) (*((WORD*)lpszBuff))=0;
- if (pdwBuffSizeRet) (*pdwBuffSizeRet)=0;
- }
-
-return(bRet);
-}
-
-
-/*BOOL GetXMLFieldExW(LPWSTR lpwszXML,SIZE_T dwXMLSize,LPWSTR *plpwszData,SIZE_T *pdwDataSize,const WCHAR *tag1,...)
-{
- BOOL bRet=FALSE;
- int thisLevel=0;
- LPWSTR lpwszFindTag=(LPWSTR)tag1,lpwszTagStart,lpwszTagEnd=lpwszXML,lpwszDataStart=NULL;
- va_list va;
-
- va_start(va,tag1);
- while(TRUE)
- {
- lpwszTagStart=(LPWSTR)MemoryFind((lpwszTagEnd-lpwszXML),lpwszXML,dwXMLSize,L"<",2);
- if (lpwszTagStart)
- {
- lpwszTagEnd=(LPWSTR)MemoryFind((lpwszTagStart-lpwszXML),lpwszXML,dwXMLSize,L">",2);
- if (lpwszTagEnd)
- {
- lpwszTagStart++;
- lpwszTagEnd--;
- if ((*((WORD*)lpwszTagStart))==(*((WORD*)"/")))
- {
- if (--thisLevel<0)
- {
- if (lpwszDataStart)
- {
- if (plpwszData) (*plpwszData)=lpwszDataStart;
- if (pdwDataSize) (*pdwDataSize)=((lpwszTagStart-1)-lpwszDataStart);
- bRet=TRUE;
- }
- break;
- }
- }else{
- if (++thisLevel==1)
- if (CompareStringW(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpwszFindTag,-1,lpwszTagStart,((lpwszTagEnd+1)-lpwszTagStart))==CSTR_EQUAL)
- {
- lpwszFindTag=va_arg(va,LPWSTR);
- if (lpwszFindTag==NULL) lpwszDataStart=(lpwszTagEnd+2);
- thisLevel=0;
- }
- }
- }else{
- break;
- }
- }else{
- break;
- }
- }
- va_end(va);
-return(bRet);
-}
-
-
-BOOL GetXMLFieldExBuffW(LPWSTR lpwszXML,SIZE_T dwXMLSize,LPWSTR lpwszBuff,SIZE_T dwBuffSize,SIZE_T *pdwBuffSizeRet,const WCHAR *tag1,...)
-{
- BOOL bRet;
- LPWSTR lpwszData;
- SIZE_T dwDataSize;
-
- if ((bRet=GetXMLFieldExW(lpwszXML,dwXMLSize,&lpwszData,&dwDataSize,tag1)))
- {
- SIZE_T dwBuffSizeRet=min((dwBuffSize-2),dwDataSize);
-
- if (lpwszBuff && dwBuffSize) CopyMemory(lpwszBuff,lpwszData,dwBuffSizeRet);(*((WORD*)(lpwszBuff+dwBuffSizeRet)))=0;
- if (pdwBuffSizeRet) (*pdwBuffSizeRet)=dwBuffSizeRet;
- }else{
- if (lpwszBuff) (*((WORD*)lpwszBuff))=0;
- if (pdwBuffSizeRet) (*pdwBuffSizeRet)=0;
- }
-
-return(bRet);
-}//*/
-
-
-DWORD ReplaceInBuff(LPVOID lpInBuff,SIZE_T dwInBuffSize,SIZE_T dwReplaceItemsCount,LPVOID *plpInReplaceItems,SIZE_T *pdwInReplaceItemsCounts,LPVOID *plpOutReplaceItems,SIZE_T *pdwOutReplaceItemsCounts,LPVOID lpOutBuff,SIZE_T dwOutBuffSize,SIZE_T *pdwOutBuffSize)
-{
- DWORD dwRetErrorCode=NO_ERROR;
- LPBYTE *plpszFounded,lpszMessageConvertedCur,lpszMessageCur,lpszMessageCurPrev,lpszMessageConvertedMax;
- SIZE_T i,dwFirstFoundedIndex=0,dwFoundedCount=0,dwMemPartToCopy;
-
-#ifdef _DEBUG //check tables
- for(i=0;i<dwReplaceItemsCount;i++)
- {
- if (lstrlen((LPTSTR)plpInReplaceItems[i])!=(pdwInReplaceItemsCounts[i]/sizeof(TCHAR))) DebugBreak();
- if (lstrlen((LPTSTR)plpOutReplaceItems[i])!=(pdwOutReplaceItemsCounts[i]/sizeof(TCHAR))) DebugBreak();
- }
-#endif
-
- plpszFounded=(LPBYTE*)MEMALLOC((sizeof(LPBYTE)*dwReplaceItemsCount));
-
- lpszMessageCurPrev=(LPBYTE)lpInBuff;
- lpszMessageConvertedCur=(LPBYTE)lpOutBuff;
- lpszMessageConvertedMax=(((LPBYTE)lpOutBuff)+dwOutBuffSize);
- for(i=0;i<dwReplaceItemsCount;i++)
- {// loking for in first time
- plpszFounded[i]=(LPBYTE)MemoryFind((lpszMessageCurPrev-(LPBYTE)lpInBuff),lpInBuff,dwInBuffSize,plpInReplaceItems[i],pdwInReplaceItemsCounts[i]);
- if (plpszFounded[i]) dwFoundedCount++;
- }
-
- while(dwFoundedCount)
- {
- for(i=0;i<dwReplaceItemsCount;i++)
- {// looking for first to replace
- if (plpszFounded[i] && (plpszFounded[i]<plpszFounded[dwFirstFoundedIndex] || plpszFounded[dwFirstFoundedIndex]==NULL)) dwFirstFoundedIndex=i;
- }
-
- if (plpszFounded[dwFirstFoundedIndex])
- {// in founded
- dwMemPartToCopy=(plpszFounded[dwFirstFoundedIndex]-lpszMessageCurPrev);
- if (lpszMessageConvertedMax>(lpszMessageConvertedCur+(dwMemPartToCopy+pdwInReplaceItemsCounts[dwFirstFoundedIndex])))
- {
- CopyMemory(lpszMessageConvertedCur,lpszMessageCurPrev,dwMemPartToCopy);lpszMessageConvertedCur+=dwMemPartToCopy;
- CopyMemory(lpszMessageConvertedCur,plpOutReplaceItems[dwFirstFoundedIndex],pdwOutReplaceItemsCounts[dwFirstFoundedIndex]);lpszMessageConvertedCur+=pdwOutReplaceItemsCounts[dwFirstFoundedIndex];
- lpszMessageCurPrev=(plpszFounded[dwFirstFoundedIndex]+pdwInReplaceItemsCounts[dwFirstFoundedIndex]);
-
- for(i=0;i<dwReplaceItemsCount;i++)
- {// loking for in next time
- if (plpszFounded[i] && plpszFounded[i]<lpszMessageCurPrev)
- {
- dwFoundedCount--;
- plpszFounded[i]=(LPBYTE)MemoryFind((lpszMessageCurPrev-(LPBYTE)lpInBuff),lpInBuff,dwInBuffSize,plpInReplaceItems[i],pdwInReplaceItemsCounts[i]);
- if (plpszFounded[i]) dwFoundedCount++;
- }
- }
- }else{
- dwRetErrorCode=ERROR_BUFFER_OVERFLOW;
- DebugBreak();
- break;
- }
- }else{// сюда по идее никогда не попадём, на всякий случай.
- DebugBreak();
- break;
- }
- }
- lpszMessageCur=(((LPBYTE)lpInBuff)+dwInBuffSize);
- CopyMemory(lpszMessageConvertedCur,lpszMessageCurPrev,(lpszMessageCur-lpszMessageCurPrev));lpszMessageConvertedCur+=(lpszMessageCur-lpszMessageCurPrev);
- (*((WORD*)lpszMessageConvertedCur))=0;
-
- MEMFREE(plpszFounded);
-
- if (pdwOutBuffSize) (*pdwOutBuffSize)=(lpszMessageConvertedCur-((LPBYTE)lpOutBuff));
-
-return(dwRetErrorCode);
-}
-
-
-static const LPTSTR lpszXMLTags[] ={TEXT("&apos;"), TEXT("&quot;"), TEXT("&amp;"), TEXT("&lt;"), TEXT("&gt;")};
-static const SIZE_T dwXMLTagsCount[] ={(6*sizeof(TCHAR)), (6*sizeof(TCHAR)), (5*sizeof(TCHAR)), (4*sizeof(TCHAR)), (4*sizeof(TCHAR))};
-static const LPTSTR lpszXMLSymbols[] ={TEXT("\'"), TEXT("\""), TEXT("&"), TEXT("<"), TEXT(">")};
-static const SIZE_T dwXMLSymbolsCount[] ={sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR), sizeof(TCHAR)};
-
-//Decode XML coded string. The function translate special xml code into standard characters.
-DWORD DecodeXML(LPTSTR lptszMessage,SIZE_T dwMessageSize,LPTSTR lptszMessageConverted,SIZE_T dwMessageConvertedBuffSize,SIZE_T *pdwMessageConvertedSize)
-{
- DWORD dwRet=ReplaceInBuff(lptszMessage,(dwMessageSize*sizeof(TCHAR)),SIZEOF(lpszXMLTags),(LPVOID*)lpszXMLTags,(SIZE_T*)dwXMLTagsCount,(LPVOID*)lpszXMLSymbols,(SIZE_T*)dwXMLSymbolsCount,lptszMessageConverted,(dwMessageConvertedBuffSize*sizeof(TCHAR)),pdwMessageConvertedSize);
-
- if (pdwMessageConvertedSize) (*pdwMessageConvertedSize)/=sizeof(TCHAR);
-return(dwRet);
-}
-
-//Encode XML coded string. The function translate special saved xml characters into special characters.
-DWORD EncodeXML(LPTSTR lptszMessage,SIZE_T dwMessageSize,LPTSTR lptszMessageConverted,SIZE_T dwMessageConvertedBuffSize,SIZE_T *pdwMessageConvertedSize)
-{
- DWORD dwRet=ReplaceInBuff(lptszMessage,(dwMessageSize*sizeof(TCHAR)),SIZEOF(lpszXMLTags),(LPVOID*)lpszXMLSymbols,(SIZE_T*)dwXMLSymbolsCount,(LPVOID*)lpszXMLTags,(SIZE_T*)dwXMLTagsCount,lptszMessageConverted,(dwMessageConvertedBuffSize*sizeof(TCHAR)),pdwMessageConvertedSize);
-
- if (pdwMessageConvertedSize) (*pdwMessageConvertedSize)/=sizeof(TCHAR);
-return(dwRet);
-}
-
-
-//(Taken from Miranda-IM source code:)
-BYTE MsgDlgGetFontDefaultCharset(const TCHAR* szFont)
-{
- return(DEFAULT_CHARSET);
-}
-
-
-void LoadMsgDlgFont(int i,LOGFONT *lf,COLORREF *colour)
-{
- int style;
- char str[MAX_PATH];
- DBVARIANT dbv;
-
- if (colour)
- {
- mir_snprintf(str,sizeof(str),"Font%dCol",i);
- (*colour)=DBGetContactSettingDword(NULL,SRMMMOD,str,fontOptionsList[0].defColour);
- }
-
- if (lf)
- {
- if (DBGetContactSetting(NULL,SRMMMOD,str,&dbv))
- {
- lstrcpyn(lf->lfFaceName,fontOptionsList[0].szDefFace,SIZEOF(lf->lfFaceName));
- }else{
- lstrcpyn(lf->lfFaceName,dbv.ptszVal,SIZEOF(lf->lfFaceName));
- DBFreeVariant(&dbv);
- }
-
- mir_snprintf(str,sizeof(str),"Font%dSize",i);
- lf->lfHeight=(char)DBGetContactSettingByte(NULL,SRMMMOD,str,fontOptionsList[0].defSize);
- lf->lfWidth=0;
- lf->lfEscapement=0;
- lf->lfOrientation=0;
- mir_snprintf(str,sizeof(str),"Font%dSty",i);
- style=DBGetContactSettingByte(NULL,SRMMMOD,str,fontOptionsList[0].defStyle);
- lf->lfWeight=style&FONTF_BOLD?FW_BOLD:FW_NORMAL;
- lf->lfItalic=style&FONTF_ITALIC?1:0;
- lf->lfUnderline=0;
- lf->lfStrikeOut=0;
- mir_snprintf(str,sizeof(str),"Font%dSet",i);
- lf->lfCharSet=DBGetContactSettingByte(NULL,SRMMMOD,str,MsgDlgGetFontDefaultCharset(lf->lfFaceName));
- lf->lfOutPrecision=OUT_DEFAULT_PRECIS;
- lf->lfClipPrecision=CLIP_DEFAULT_PRECIS;
- lf->lfQuality=DEFAULT_QUALITY;
- lf->lfPitchAndFamily=DEFAULT_PITCH|FF_DONTCARE;
- mir_snprintf(str,sizeof(str),"Font%d",i);
- }
-}
-
-
-LRESULT CALLBACK MessageSubclassProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
-{
- LRESULT lrRet=0;
- WNDPROC OldMessageEditProc=(WNDPROC)GetWindowLongPtr(hwnd,GWL_USERDATA);
-
- switch(message){
- case WM_CHAR:
- if (wParam=='\n' && GetKeyState(VK_CONTROL)&0x8000)
- {
- PostMessage(GetParent(hwnd),WM_COMMAND,IDOK,0);
- return(0);
- }
- break;
- }
-
- if (OldMessageEditProc) lrRet=CallWindowProc(OldMessageEditProc,hwnd,message,wParam,lParam);
-
-return(lrRet);
-}
-
-
-
-
-//This function refresh account list.
-//It called when SMS plugin loaded and upon change in the account list.
-int RefreshAccountList(WPARAM eventCode,LPARAM lParam)
-{
- SIZE_T dwAccCount=0,i,dwSMSAccountsCount=0;
- PROTOACCOUNT **ppaAccounts;
-
- ProtoEnumAccounts((int*)&dwAccCount,&ppaAccounts);
-
- FreeAccountList();
- ssSMSSettings.ppaSMSAccounts=(PROTOACCOUNT**)MEMALLOC((dwAccCount*sizeof(LPVOID)));
- if (ssSMSSettings.ppaSMSAccounts)
- {
- char szServiceName[MAX_PATH];
-
- for (i=0;i<dwAccCount;i++)
- {
- if (IsAccountEnabled(ppaAccounts[i]))
- {
- mir_snprintf(szServiceName,sizeof(szServiceName),"%s%s",ppaAccounts[i]->szModuleName,MS_ICQ_SENDSMS);
- if (ServiceExists(szServiceName))
- {
- ssSMSSettings.ppaSMSAccounts[dwSMSAccountsCount++]=ppaAccounts[i];
- }
- }
- }
- }
- ssSMSSettings.dwSMSAccountsCount=dwSMSAccountsCount;
- SendSMSWindowsUpdateAllAccountLists();
-
-return(0);
-}
-
-//This function free the global account list.
-//This function should be called before list refresh or when SMS plugin unloaded.
-void FreeAccountList()
-{
- MEMFREE(ssSMSSettings.ppaSMSAccounts);
- ssSMSSettings.dwSMSAccountsCount=0;
-}
-
-//This function check if the module is in the account list that supports sms sending in miranda.
-/*BOOL IsModuleInAccountList(LPSTR lpszModule)
-{
- BOOL bRet=FALSE;
-
- if (ssSMSSettings.ppaSMSAccounts && ssSMSSettings.dwSMSAccountsCount)
- {
- for(SIZE_T i=0;i<ssSMSSettings.dwSMSAccountsCount;i++)
- {
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,ssSMSSettings.ppaSMSAccounts[i]->szModuleName,-1,lpszModule,-1)==CSTR_EQUAL)
- {
- bRet=TRUE;
- break;
- }
- }
- }
-return(bRet);
-}//*/
-
diff --git a/plugins/!NotAdopted/SMS/main.cpp b/plugins/!NotAdopted/SMS/main.cpp
deleted file mode 100644
index 051064ac4d..0000000000
--- a/plugins/!NotAdopted/SMS/main.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2 Richard Hughes
-Copyright (C) 2007-8 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-
-#include "main.h"
-
-
-
-
-
-extern "C" __declspec(naked) void __cdecl _chkstk()
-{
- #define _PAGESIZE_ 4096
-
- __asm
- {
- push ecx
-
- ; Calculate new TOS.
-
- lea ecx, [esp] + 8 - 4 ; TOS before entering function + size for ret value
- sub ecx, eax ; new TOS
-
- ; Handle allocation size that results in wraparound.
- ; Wraparound will result in StackOverflow exception.
-
- sbb eax, eax ; 0 if CF==0, ~0 if CF==1
- not eax ; ~0 if TOS did not wrapped around, 0 otherwise
- and ecx, eax ; set to 0 if wraparound
-
- mov eax, esp ; current TOS
- and eax, not ( _PAGESIZE_ - 1) ; Round down to current page boundary
-
- cs10:
- cmp ecx, eax ; Is new TOS
- jb short cs20 ; in probed page?
- mov eax, ecx ; yes.
- pop ecx
- xchg esp, eax ; update esp
- mov eax, dword ptr [eax] ; get return address
- mov dword ptr [esp], eax ; and put it at new TOS
- ret
-
- ; Find next lower page and probe
- cs20:
- sub eax, _PAGESIZE_ ; decrease by PAGESIZE
- test dword ptr [eax],eax ; probe page.
- jmp short cs10
-
- }
-}//
-
-
-extern "C" void __declspec(naked) __cdecl _aulldiv()
-{// http://tamiaode.3322.org/svn/ntldr/trunk/source/ntldr/ia32/x86stub.cpp
- __asm
- {
- push ebx
- push esi
-
- mov eax,[esp + 24]
- or eax,eax
- jnz short L1
-
- mov ecx,[esp + 20]
- mov eax,[esp + 16]
- xor edx,edx
- div ecx
- mov ebx,eax
- mov eax,[esp + 12]
- div ecx
- mov edx,ebx
- jmp short L2
-
- L1:
- mov ecx,eax
- mov ebx,[esp + 20]
- mov edx,[esp + 14]
- mov eax,[esp + 12]
-
- L3:
- shr ecx,1
- rcr ebx,1
- shr edx,1
- rcr eax,1
- or ecx,ecx
- jnz short L3
- div ebx
- mov esi,eax
-
- mul dword ptr [esp + 24]
- mov ecx,eax
- mov eax,[esp + 20]
- mul esi
- add edx,ecx
- jc short L4
-
- cmp edx,[esp + 16]
- ja short L4
- jb short L5
- cmp eax,[esp + 12]
- jbe short L5
- L4:
- dec esi
- L5:
- xor edx,edx
- mov eax,esi
-
- L2:
-
- pop esi
- pop ebx
-
- ret 16
- }
-}//
-
-
-
-
-
-MM_INTERFACE mmi;
-PLUGINLINK *pluginLink;
-SMS_SETTINGS ssSMSSettings;
-
-
-PLUGININFOEX pluginInfoEx={
- sizeof(PLUGININFOEX),
- PROTOCOL_DISPLAY_NAME_ORIG" (Unicode)",
- PLUGIN_VERSION_DWORD,
- "Send SMS text messages to mobile phones through the IM networks",
- "Richard Hughes, Improved by Ariel Shulman, rewritten by Rozhuk Ivan",
- "Rozhuk_I@mail.ru",
- "© 2001-2 Richard Hughes, 2003 Ariel Shulman, 2007-2009 Rozhuk Ivan (Rozhuk_I@mail.ru)",
- "http://miranda-icq.sourceforge.net/",
- UNICODE_AWARE, //not transient
- 0, //doesn't replace anything built-in
- // {70AC2AC9-85C6-4624-9B05-24733FEBB052}
- SMS_GUID
-};
-
-
-extern "C" __declspec(dllexport) const MUUID interfaces[]={SMS_GUID,MIID_LAST};
-
-
-
-int OnModulesLoaded (WPARAM wParam,LPARAM lParam);
-int OnPreShutdown (WPARAM wParam,LPARAM lParam);
-void VersionConversions();
-
-
-
-BOOL WINAPI DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID lpvReserved)
-{
- switch(dwReason){
- case DLL_PROCESS_ATTACH:
- ZeroMemory(&ssSMSSettings,sizeof(ssSMSSettings));
- ssSMSSettings.hInstance=hInstance;
- ssSMSSettings.hHeap=HeapCreate(0,0,0);//GetProcessHeap();
- DisableThreadLibraryCalls((HMODULE)hInstance);
- break;
- case DLL_PROCESS_DETACH:
- HeapDestroy(ssSMSSettings.hHeap);
- ssSMSSettings.hHeap=NULL;
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- break;
- }
-return(TRUE);
-}
-
-__declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
-{
- if (mirandaVersion<MIN_MIR_VER_VERSION_DWORD)
- {
- MessageBox(NULL,TEXT("Pleace, update your Miranda NG, SMS will not load with this version."),NULL,(MB_OK|MB_ICONERROR));
- return(NULL);
- }
-return(&pluginInfoEx);
-}
-
-__declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion)
-{
-return((PLUGININFO*)MirandaPluginInfoEx(mirandaVersion));
-}
-
-
-__declspec(dllexport) const MUUID* MirandaPluginInterfaces()
-{
-return(interfaces);
-}
-
-
-
-int __declspec(dllexport) Load(PLUGINLINK *link)
-{
- pluginLink=link;
- mir_getMMI(&mmi);
-
- ssSMSSettings.hHookModulesLoaded=HookEvent(ME_SYSTEM_MODULESLOADED,OnModulesLoaded);
- ssSMSSettings.hHookPreShutdown=HookEvent(ME_SYSTEM_PRESHUTDOWN,OnPreShutdown);
-
- SendSMSWindowInitialize();
- RecvSMSWindowInitialize();
-
- LoadServices();
-
-return(0);
-}
-
-int __declspec(dllexport) Unload(void)
-{
- UnloadServices();
-
- if (ssSMSSettings.hHookPreShutdown) {UnhookEvent(ssSMSSettings.hHookPreShutdown); ssSMSSettings.hHookPreShutdown=NULL;}
- if (ssSMSSettings.hHookModulesLoaded) {UnhookEvent(ssSMSSettings.hHookModulesLoaded); ssSMSSettings.hHookModulesLoaded=NULL;}
-
- SecureZeroMemory(pluginLink,sizeof(pluginLink));
- SecureZeroMemory(&mmi,sizeof(pluginLink));
-
-return(0);
-}
-
-
-int OnModulesLoaded(WPARAM wParam,LPARAM lParam)
-{
- VersionConversions();
-
- LoadModules();
-
- CallService(MS_UPDATE_REGISTERFL,(WPARAM)SMS_PLUGIN_UPDATER_ID,(LPARAM)&pluginInfoEx);
-
-return(0);
-}
-
-
-int OnPreShutdown(WPARAM wParam,LPARAM lParam)
-{
- UnloadModules();
-
- RecvSMSWindowDestroy();
- SendSMSWindowDestroy();
- FreeAccountList();
-
-return(0);
-}
-
-
-
-void VersionConversions()
-{
- WCHAR wsztm[MAX_PATH];
-
- if (DB_SMS_GetStaticStringW(NULL,"UseSignature",wsztm,SIZEOF(wsztm),NULL))
- {
- DB_SMS_SetByte(NULL,"UseSignature",(wsztm[0]=='0'));
- }else{
- DB_SMS_SetByte(NULL,"UseSignature",SMS_DEFAULT_USESIGNATURE);
- }
-
- if (DB_SMS_GetStaticStringW(NULL,"SignaturePos",wsztm,SIZEOF(wsztm),NULL))
- {
- DB_SMS_SetByte(NULL,"SignaturePos",(wsztm[0]=='0'));
- }else{
- DB_SMS_SetByte(NULL,"SignaturePos",SMS_DEFAULT_SIGNATUREPOS);
- }
-
- if (DB_SMS_GetStaticStringW(NULL,"ShowACK",wsztm,SIZEOF(wsztm),NULL))
- {
- DB_SMS_SetByte(NULL,"ShowACK",(wsztm[0]=='0'));
- }else{
- DB_SMS_SetByte(NULL,"ShowACK",SMS_DEFAULT_SHOWACK);
- }
-
-} \ No newline at end of file
diff --git a/plugins/!NotAdopted/SMS/main.h b/plugins/!NotAdopted/SMS/main.h
deleted file mode 100644
index 8becfefb44..0000000000
--- a/plugins/!NotAdopted/SMS/main.h
+++ /dev/null
@@ -1,236 +0,0 @@
-#ifndef _MAIN_H
-#define _MAIN_H
-
-
-
-
-#define _USE_32BIT_TIME_T
-#define _CRT_SECURE_NO_WARNINGS
-
-#define UNICODE
-#define _UNICODE
-
-#ifdef NDEBUG
- #pragma optimize("gsy",on)
- #pragma comment(linker,"/subsystem:Windows,5")
- #pragma comment(linker,"/version:5")
-
- #pragma comment(linker,"/nodefaultlib")
- //#pragma comment(linker,"/GS")
- //#pragma comment(linker,"/merge:.rdata=.text /merge:.data=.text")
- //#pragma comment(linker,"/verbose")
- //#pragma comment(linker,"/noentry")
- #pragma comment(linker,"/ENTRY:DllMain")
-
-#endif //_DEBUG*/
-
- //#pragma comment(linker,"/nodefaultlib")
- //#pragma comment(linker,"/noentry")
- //#pragma comment(linker,"/ENTRY:DllMain")
-
-#define CRTDLL
-
-#define MIRANDA_VER 0x0800
-
-
-#include "resource.h"
-#include <windows.h>
-#include <commctrl.h>
-#include <stdio.h>
-#include <time.h>
-#ifdef NDEBUG
- #include <..\minicrt\minicrt.h>
-#else
- #include <..\minicrt\timefuncs.h>
-#endif //_DEBUG*/
-
-#include <ListMT.h>
-#include <DebugFunctions.h>
-#include <MemoryCompare.h>
-#include <MemoryFind.h>
-#include <MemoryFindByte.h>
-#include <BuffToLowerCase.h>
-#include "newpluginapi.h"
-#include "m_database.h"
-#include "m_clist.h"
-#include "m_langpack.h"
-#include "m_history.h"
-#include "m_protomod.h"
-#include "m_autoreplacer.h"
-#include "resource.h"
-#include "m_skin.h"
-#include "m_protosvc.h"
-#include "m_icq.h"
-#include "m_protosvc.h"
-#include "m_system.h"
-#include "m_utils.h"
-#include "m_options.h"
-#include "m_updater.h"
-#include "win2k.h"
-
-
-// структура содержащая информацию по построению меню или расширеных иконок
-struct GUI_DISPLAY_ITEM
-{
- LPSTR lpszName; // имя сервиса, оно же имя в иколибе
- LPWSTR lpwszDescr; // текстовое описание отображаемое юзеру
- LONG defIcon; // иконка из ресурсов
- LPVOID lpFunc; // функция вызываемая меню
-};
-
-
-// структура содержащая информацию о сервисах/функциях
-struct SERVICE_ITEM
-{
- LPSTR lpszName; // имя сервиса, оно же имя в иколибе
- LPVOID lpFunc; // функция вызываемая
-};
-
-
-
-
-#include "SMSConstans.h"
-#include "senddlg.h"
-#include "recvdlg.h"
-
-
-
-#define MAIN_MENU_ITEMS_COUNT 1
-#define CONTACT_MENU_ITEMS_COUNT 1
-
-
-typedef struct
-{
- HANDLE hHeap;
- HINSTANCE hInstance;
-
- //HANDLE hMainMenuIcons[MAIN_MENU_ITEMS_COUNT+1];
- HANDLE hMainMenuItems[MAIN_MENU_ITEMS_COUNT+1];
-
- //HANDLE hContactMenuIcons[CONTACT_MENU_ITEMS_COUNT+1];
- HANDLE hContactMenuItems[CONTACT_MENU_ITEMS_COUNT+1];
-
- HANDLE hHookModulesLoaded;
- HANDLE hHookPreShutdown;
- HANDLE hHookOptInitialize;
- HANDLE hHookRebuildCMenu;
- HANDLE hHookDbAdd;
- HANDLE hHookProtoAck;
- HANDLE hHookAccListChanged;
-
- LIST_MT lmtSendSMSWindowsListMT;
- LIST_MT lmtRecvSMSWindowsListMT;
-
- PROTOACCOUNT **ppaSMSAccounts;
- SIZE_T dwSMSAccountsCount;
-
-} SMS_SETTINGS;
-
-
-
-extern SMS_SETTINGS ssSMSSettings;
-
-
-
-
-#define MEMALLOC(Size) HeapAlloc(ssSMSSettings.hHeap,HEAP_ZERO_MEMORY,(Size+sizeof(SIZE_T)))
-#define MEMREALLOC(Mem,Size) HeapReAlloc(ssSMSSettings.hHeap,(HEAP_ZERO_MEMORY),(LPVOID)Mem,(Size+sizeof(SIZE_T)))
-#define MEMFREE(Mem) if (Mem) {HeapFree(ssSMSSettings.hHeap,0,(LPVOID)Mem);Mem=NULL;}
-
-#define SEND_DLG_ITEM_MESSAGEW(hDlg,nIDDlgItem,Msg,wParam,lParam) SendMessageW(GetDlgItem(hDlg,nIDDlgItem),Msg,wParam,lParam)
-#define SEND_DLG_ITEM_MESSAGEA(hDlg,nIDDlgItem,Msg,wParam,lParam) SendMessageA(GetDlgItem(hDlg,nIDDlgItem),Msg,wParam,lParam)
-#define SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,Msg,wParam,lParam) SendMessage(GetDlgItem(hDlg,nIDDlgItem),Msg,wParam,lParam)
-
-#define IS_DLG_BUTTON_CHECKED(hDlg,nIDDlgItem) SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,BM_GETCHECK,NULL,NULL)
-#define CHECK_DLG_BUTTON(hDlg,nIDDlgItem,uCheck) SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,BM_SETCHECK,(WPARAM)uCheck,NULL)
-
-#define SET_DLG_ITEM_TEXTW(hDlg,nIDDlgItem,lpString) SEND_DLG_ITEM_MESSAGEW(hDlg,nIDDlgItem,WM_SETTEXT,0,(LPARAM)lpString)
-#define SET_DLG_ITEM_TEXTA(hDlg,nIDDlgItem,lpString) SEND_DLG_ITEM_MESSAGEA(hDlg,nIDDlgItem,WM_SETTEXT,0,(LPARAM)lpString)
-#define SET_DLG_ITEM_TEXT(hDlg,nIDDlgItem,lpString) SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,WM_SETTEXT,0,(LPARAM)lpString)
-
-#define GET_DLG_ITEM_TEXTW(hDlg,nIDDlgItem,lpString,nMaxCount) SEND_DLG_ITEM_MESSAGEW(hDlg,nIDDlgItem,WM_GETTEXT,(WPARAM)nMaxCount,(LPARAM)lpString)
-#define GET_DLG_ITEM_TEXTA(hDlg,nIDDlgItem,lpString,nMaxCount) SEND_DLG_ITEM_MESSAGEA(hDlg,nIDDlgItem,WM_GETTEXT,(WPARAM)nMaxCount,(LPARAM)lpString)
-#define GET_DLG_ITEM_TEXT(hDlg,nIDDlgItem,lpString,nMaxCount) SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,WM_GETTEXT,(WPARAM)nMaxCount,(LPARAM)lpString)
-
-#define GET_DLG_ITEM_TEXT_LENGTH(hDlg,nIDDlgItem) SEND_DLG_ITEM_MESSAGE(hDlg,nIDDlgItem,WM_GETTEXTLENGTH,NULL,NULL)
-#define GET_WINDOW_TEXT_LENGTH(hDlg) SendMessage(hDlg,WM_GETTEXTLENGTH,NULL,NULL)
-
-#define GET_CURRENT_COMBO_DATA(hWndDlg,ControlID) SEND_DLG_ITEM_MESSAGE(hWndDlg,ControlID,CB_GETITEMDATA,SEND_DLG_ITEM_MESSAGE(hWndDlg,ControlID,CB_GETCURSEL,0,0),0)
-
-
-
-
-#define GetContactNameA(Contact) (LPSTR)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)Contact,0)
-#define GetContactNameW(Contact) (LPWSTR)CallService(MS_CLIST_GETCONTACTDISPLAYNAME,(WPARAM)Contact,GCDNF_UNICODE)
-
-#define DB_SMS_DeleteValue(Contact,valueName) DBDeleteContactSetting(Contact,PROTOCOL_NAMEA,valueName)
-#define DB_SMS_GetDword(Contact,valueName,parDefltValue) DBGetContactSettingDword(Contact,PROTOCOL_NAMEA,valueName,parDefltValue)
-#define DB_SMS_SetDword(Contact,valueName,parValue) DBWriteContactSettingDword(Contact,PROTOCOL_NAMEA,valueName,parValue)
-#define DB_SMS_GetWord(Contact,valueName,parDefltValue) DBGetContactSettingWord(Contact,PROTOCOL_NAMEA,valueName,parDefltValue)
-#define DB_SMS_SetWord(Contact,valueName,parValue) DBWriteContactSettingWord(Contact,PROTOCOL_NAMEA,valueName,parValue)
-#define DB_SMS_GetByte(Contact,valueName,parDefltValue) DBGetContactSettingByte(Contact,PROTOCOL_NAMEA,valueName,parDefltValue)
-#define DB_SMS_SetByte(Contact,valueName,parValue) DBWriteContactSettingByte(Contact,PROTOCOL_NAMEA,valueName,parValue)
-BOOL DB_GetStaticStringW(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,LPWSTR lpszRetBuff,SIZE_T dwRetBuffSize,SIZE_T *pdwRetBuffSize);
-#define DB_SMS_GetStaticStringW(Contact,ValueName,Ret,RetBuffSize,pRetBuffSize) DB_GetStaticStringW(Contact,PROTOCOL_NAMEA,ValueName,Ret,RetBuffSize,pRetBuffSize)
-BOOL DB_SetStringExW(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,LPWSTR lpwszValue,SIZE_T dwValueSize);
-#define DB_SetStringW(Contact,Module,valueName,parValue) DBWriteContactSettingWString(Contact,Module,valueName,parValue)
-#define DB_SMS_SetStringW(Contact,valueName,parValue) DBWriteContactSettingWString(Contact,PROTOCOL_NAMEA,valueName,parValue)
-#define DB_SMS_SetStringExW(Contact,valueName,parValue,parValueSize) DB_SetStringExW(Contact,PROTOCOL_NAMEA,valueName,parValue,parValueSize)
-
-
-LPSTR GetModuleName (HANDLE hContact);
-void EnableControlsArray (HWND hWndDlg,WORD *pwControlsList,SIZE_T dwControlsListCount,BOOL bEnabled);
-void CListShowMenuItem (HANDLE hMenuItem,BOOL bShow);
-//Decleration of function that returns received string with only numbers
-SIZE_T CopyNumberA (LPSTR lpszOutBuff,LPSTR lpszBuff,SIZE_T dwLen);
-SIZE_T CopyNumberW (LPWSTR lpcOutBuff,LPWSTR lpcBuff,SIZE_T dwLen);
-BOOL IsPhoneW (LPWSTR lpwszString,SIZE_T dwStringLen);
-DWORD GetContactPhonesCount (HANDLE hContact);
-BOOL IsContactPhone (HANDLE hContact,LPWSTR lpwszPhone,SIZE_T dwPhoneSize);
-//Decleration of function that returns HANDLE of contact by his cellular number
-HANDLE HContactFromPhone (LPWSTR lpwszPhone,SIZE_T dwPhoneSize);
-BOOL GetDataFromMessage (LPSTR lpszMessage,SIZE_T dwMessageSize,DWORD *pdwEventType,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,SIZE_T *pdwPhoneSizeRet,UINT *piIcon);
-//Decleration of function that gets a XML string and return the asked tag.
-BOOL GetXMLFieldEx (LPSTR lpszXML,SIZE_T dwXMLSize,LPSTR *plpszData,SIZE_T *pdwDataSize,const char *tag1,...);
-BOOL GetXMLFieldExBuff (LPSTR lpszXML,SIZE_T dwXMLSize,LPSTR lpszBuff,SIZE_T dwBuffSize,SIZE_T *pdwBuffSizeRet,const char *tag1,...);
-//BOOL GetXMLFieldExW (LPWSTR lpwszXML,SIZE_T dwXMLSize,LPWSTR *plpwszData,SIZE_T *pdwDataSize,const WCHAR *tag1,...);
-//BOOL GetXMLFieldExBuffW (LPWSTR lpwszXML,SIZE_T dwXMLSize,LPWSTR lpwszBuff,SIZE_T dwBuffSize,SIZE_T *pdwBuffSizeRet,const WCHAR *tag1,...);
-DWORD DecodeXML (LPTSTR lptszMessage,SIZE_T dwMessageSize,LPTSTR lptszMessageConverted,SIZE_T dwMessageConvertedBuffSize,SIZE_T *pdwMessageConvertedSize);
-DWORD EncodeXML (LPTSTR lptszMessage,SIZE_T dwMessageSize,LPTSTR lptszMessageConverted,SIZE_T dwMessageConvertedBuffSize,SIZE_T *pdwMessageConvertedSize);
-void LoadMsgDlgFont (int i,LOGFONT *lf,COLORREF *colour);
-LRESULT CALLBACK MessageSubclassProc (HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
-int RefreshAccountList (WPARAM eventCode,LPARAM lParam);
-void FreeAccountList ();
-//BOOL IsModuleInAccountList (LPSTR lpszModule);
-
-
-
-
-int OptInitialise (WPARAM wParam,LPARAM lParam);
-
-int LoadServices ();
-int LoadModules ();
-void UnloadModules ();
-void UnloadServices ();
-
-int handleAckSMS(WPARAM wParam,LPARAM lParam);
-int handleNewMessage(WPARAM wParam,LPARAM lParam);
-void RestoreUnreadMessageAlerts();
-
-//Decleration of Menu SMS send click function
-int SmsRebuildContactMenu(WPARAM wParam,LPARAM lParam);
-
-
-void StartSmsSend(HWND hWndDlg,SIZE_T dwModuleIndex,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,LPWSTR lpwszMessage,SIZE_T dwMessageSize);
-
-
-
-
-
-
-
-
-
-
-
-#endif \ No newline at end of file
diff --git a/plugins/!NotAdopted/SMS/options.cpp b/plugins/!NotAdopted/SMS/options.cpp
deleted file mode 100644
index dd52602484..0000000000
--- a/plugins/!NotAdopted/SMS/options.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2002 Richard Hughes
-Copyright (C) 2007-2009 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-#include "main.h"
-
-
-
-WORD wSMSSignControlsList[]={
- IDC_BEGIN,
- IDC_END,
- IDC_SIGNATURE,
- IDC_SIGNGROUP
-};
-
-
-BOOL CALLBACK DlgProcEditorOptions(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch(msg){
- case WM_INITDIALOG:
- TranslateDialogDefault(hWndDlg);
- {
- WCHAR wszSign[1024];
- BOOL bSignBebefore,bUseSign;
-
- if (DB_SMS_GetStaticStringW(NULL,"Signature",wszSign,SIZEOF(wszSign),NULL)==FALSE)
- {
- mir_sntprintf(wszSign,SIZEOF(wszSign),TranslateW(L"From %s:\r\n\r\n"),GetContactNameW(NULL));
- }
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_SIGNATURE,wszSign);
-
- bUseSign=DB_SMS_GetByte(NULL,"UseSignature",SMS_DEFAULT_USESIGNATURE);
- CHECK_DLG_BUTTON(hWndDlg,IDC_USESIGNATURE,bUseSign);
- EnableControlsArray(hWndDlg,(WORD*)&wSMSSignControlsList,SIZEOF(wSMSSignControlsList),bUseSign);
-
- bSignBebefore=DB_SMS_GetByte(NULL,"SignaturePos",SMS_DEFAULT_SIGNATUREPOS);
- CHECK_DLG_BUTTON(hWndDlg,IDC_BEGIN,bSignBebefore);
- CHECK_DLG_BUTTON(hWndDlg,IDC_END,(!bSignBebefore));
-
- CHECK_DLG_BUTTON(hWndDlg,IDC_SHOWACK,DB_SMS_GetByte(NULL,"ShowACK",SMS_DEFAULT_SHOWACK));
- CHECK_DLG_BUTTON(hWndDlg,IDC_AUTOPOP,DB_SMS_GetByte(NULL,"AutoPopup",SMS_DEFAULT_AUTOPOP));
- CHECK_DLG_BUTTON(hWndDlg,IDC_SAVEWINPOS,DB_SMS_GetByte(NULL,"SavePerContact",SMS_DEFAULT_SAVEWINPOS));
- }
- return(TRUE);
- case WM_COMMAND:
- SendMessage(GetParent(hWndDlg),PSM_CHANGED,0,0);
- switch(LOWORD(wParam)){
- case IDC_USESIGNATURE:
- EnableControlsArray(hWndDlg,(WORD*)&wSMSSignControlsList,SIZEOF(wSMSSignControlsList),IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_USESIGNATURE));
- break;
- }
- break;
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->idFrom){
- case 0:
- switch (((LPNMHDR)lParam)->code){
- case PSN_APPLY:
- {
- WCHAR wszSign[1024];
-
- GET_DLG_ITEM_TEXTW(hWndDlg,IDC_SIGNATURE,wszSign,SIZEOF(wszSign));
- DB_SMS_SetStringW(NULL,"Signature",wszSign);
-
- DB_SMS_SetByte(NULL,"UseSignature",IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_USESIGNATURE));
- DB_SMS_SetByte(NULL,"SignaturePos",IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_BEGIN));
- DB_SMS_SetByte(NULL,"ShowACK",IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_SHOWACK));
- DB_SMS_SetByte(NULL,"AutoPopup",IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_AUTOPOP));
- DB_SMS_SetByte(NULL,"SavePerContact",IS_DLG_BUTTON_CHECKED(hWndDlg,IDC_SAVEWINPOS));
- }
- return(TRUE);
- }
- break;
- }
- break;
- }
-return(FALSE);
-}
-
-int OptInitialise(WPARAM wParam,LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp={0};
-
- odp.cbSize=sizeof(odp);
- odp.position=910000000;
- odp.hInstance=ssSMSSettings.hInstance;
- odp.ptszGroup=TranslateW(L"Events");
- odp.flags=(ODPF_BOLDGROUPS|ODPF_UNICODE);
- odp.pszTemplate=MAKEINTRESOURCEA(IDD_OPT_SMSPLUGIN);
- odp.ptszTitle=PROTOCOL_DISPLAY_NAME_ORIGW;
- odp.pfnDlgProc=DlgProcEditorOptions;
- CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
-return(0);
-}
-
diff --git a/plugins/!NotAdopted/SMS/readme.txt b/plugins/!NotAdopted/SMS/readme.txt
deleted file mode 100644
index 3fe787fec8..0000000000
--- a/plugins/!NotAdopted/SMS/readme.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-SMS плагин для Miranda IM
-
-
-2001-2002 Richard Hughes
-2003 Ariel Shulman
-2007-2009 Rozhuk Ivan (Ivan 83)
-
-
- Плагин предназначен для отправки SMS сообщений через миранду
-с использованием ICQ, MRA и других протоколов поддерживающих отправку SMS.
-
- Эта версия плагина была переписана почти полностью, сохранены без изменений
-только диалоги и часть коментариев.
-
-
-Home page: http://www.rozhuk.org.ru/forum/index.php?topic=3.0
-
-
-
-
-Change Log:
-
-Version 0.2.5.3 // 02.11.2009
- - Поддержка Updater плагина
-
-Version 0.2.5.2 // 01.11.2009
- - Unicode версия
- - Поддержка мультиакаунтов
- - Добавлены настройки
- - Внутренние изменения
- - Частично используются иконки из миранды (Main Icons)
- - Исправлены недочёты при обработке XML
- - Улучшен алгоритм подсчёта "оставшихся" символов
-
-Version 0.2.5.1 // 26.10.2009
- - В диалоге отправки автоматически выбирается первый номер телефона из списка
- - Настройки шрифтов и цветов фона берутся от TabSRMM
- - Уменьшен размер плагина
- - Устранены утечки ресурсов
- - Устранено появление ложных пустых сообщений от джабер протокола
-
-Version 0.2.5.0 // 17.03.2008
- - Добавлена совместимость с новым ядром (GUID идентификатор)
-
-Version 0.2.4.9
- - Полностью переписан код: оптимизирован, устранены утечки памяти
- - Добавленна возможность выбора потокола для отправки сообщений
- - Автоподстановка номера при ответе
- - Мелкие исправлени \ No newline at end of file
diff --git a/plugins/!NotAdopted/SMS/receive.cpp b/plugins/!NotAdopted/SMS/receive.cpp
deleted file mode 100644
index 24a1df5be5..0000000000
--- a/plugins/!NotAdopted/SMS/receive.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2 Richard Hughes
-Copyright (C) 2007-2009 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-
-#include "main.h"
-
-
-
-//This function handles the ACK received from that hooked.
-int handleAckSMS(WPARAM wParam,LPARAM lParam)
-{
- if (lParam)
- if (((ACKDATA*)lParam)->type==ICQACKTYPE_SMS)
- {
- char szPhone[MAX_PHONE_LEN]={0};
- WCHAR wszPhone[MAX_PHONE_LEN]={0};
- LPSTR lpszXML=(LPSTR)((ACKDATA*)lParam)->lParam,lpszData,lpszPhone;
- SIZE_T dwXMLSize=lstrlenA(lpszXML),dwDataSize,dwPhoneSize;
- ACKDATA *ack=((ACKDATA*)lParam);
-
- if (GetXMLFieldEx(lpszXML,dwXMLSize,&lpszData,&dwDataSize,"sms_message","text",NULL))
- {
- if (GetXMLFieldEx(lpszXML,dwXMLSize,&lpszPhone,&dwPhoneSize,"sms_message","sender",NULL))
- {
- LPSTR lpszMessageUTF;
- LPWSTR lpwszMessageXMLEncoded,lpwszMessageXMLDecoded;
- SIZE_T dwBuffLen,dwMessageXMLEncodedSize,dwMessageXMLDecodedSize;
- HANDLE hContact;
- DBEVENTINFO dbei={0};
-
- dwBuffLen=(dwDataSize+MAX_PATH);
- dbei.pBlob=(LPBYTE)MEMALLOC((dwBuffLen+dwPhoneSize));
- lpwszMessageXMLEncoded=(LPWSTR)MEMALLOC((dwBuffLen*sizeof(WCHAR)));
- lpwszMessageXMLDecoded=(LPWSTR)MEMALLOC((dwBuffLen*sizeof(WCHAR)));
- if (dbei.pBlob && lpwszMessageXMLEncoded && lpwszMessageXMLDecoded)
- {
- dwMessageXMLEncodedSize=MultiByteToWideChar(CP_UTF8,0,lpszData,dwDataSize,lpwszMessageXMLEncoded,dwBuffLen);
- DecodeXML(lpwszMessageXMLEncoded,dwMessageXMLEncodedSize,lpwszMessageXMLDecoded,dwBuffLen,&dwMessageXMLDecodedSize);
- lpszMessageUTF=(LPSTR)lpwszMessageXMLEncoded;
- WideCharToMultiByte(CP_UTF8,0,lpwszMessageXMLDecoded,dwMessageXMLDecodedSize,lpszMessageUTF,dwBuffLen,NULL,NULL);
-
- dwPhoneSize=CopyNumberA(szPhone,lpszPhone,dwPhoneSize);
- dwPhoneSize=MultiByteToWideChar(CP_UTF8,0,szPhone,dwPhoneSize,wszPhone,MAX_PHONE_LEN);
- hContact=HContactFromPhone(wszPhone,dwPhoneSize);
-
- dbei.cbSize=sizeof(dbei);
- dbei.szModule=GetModuleName(hContact);
- dbei.timestamp=time(NULL);
- dbei.flags=(DBEF_UTF);
- dbei.eventType=ICQEVENTTYPE_SMS;
- dbei.cbBlob=(mir_snprintf((LPSTR)dbei.pBlob,((dwBuffLen+dwPhoneSize)),"SMS From: +%s\r\n%s",szPhone,lpszMessageUTF)+sizeof(DWORD));
- //dbei.pBlob=(LPBYTE)lpszBuff;
- (*((DWORD*)(dbei.pBlob+(dbei.cbBlob-sizeof(DWORD)))))=0;
- CallService(MS_DB_EVENT_ADD,(WPARAM)hContact,(LPARAM)&dbei);
- if (hContact==NULL)
- {
- if (RecvSMSWindowAdd(NULL,ICQEVENTTYPE_SMS,wszPhone,dwPhoneSize,(LPSTR)dbei.pBlob,dbei.cbBlob))
- {
- CallService(MS_DB_EVENT_MARKREAD,(WPARAM)hContact,(LPARAM)&dbei);
- SkinPlaySound("RecvSMSMsg");
- }
- }
- }
- MEMFREE(lpwszMessageXMLDecoded);
- MEMFREE(lpwszMessageXMLEncoded);
- MEMFREE(dbei.pBlob);
- }
- }else
- if (GetXMLFieldEx(lpszXML,dwXMLSize,&lpszData,&dwDataSize,"sms_delivery_receipt","delivered",NULL))
- {
- if (GetXMLFieldEx(lpszXML,dwXMLSize,&lpszPhone,&dwPhoneSize,"sms_delivery_receipt","destination",NULL))
- {
- HANDLE hContact;
- DBEVENTINFO dbei={0};
-
- dwPhoneSize=CopyNumberA(szPhone,lpszPhone,dwPhoneSize);
- dwPhoneSize=MultiByteToWideChar(CP_UTF8,0,szPhone,dwPhoneSize,wszPhone,MAX_PHONE_LEN);
- hContact=HContactFromPhone(wszPhone,dwPhoneSize);
-
- dbei.cbSize=sizeof(dbei);
- dbei.szModule=GetModuleName(hContact);
- dbei.timestamp=time(NULL);
- dbei.eventType=ICQEVENTTYPE_SMSCONFIRMATION;
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszData,dwDataSize,"yes",3)==CSTR_EQUAL)
- {
- dbei.cbBlob=(MAX_PHONE_LEN+MAX_PATH);
- dbei.pBlob=(PBYTE)MEMALLOC(dbei.cbBlob);
- if (dbei.pBlob) dbei.cbBlob=(mir_snprintf((LPSTR)dbei.pBlob,dbei.cbBlob,"SMS Confirmation From: +%s\r\nSMS was sent succesfully",szPhone)+4);
- }else{
- if (GetXMLFieldEx(lpszXML,dwXMLSize,&lpszData,&dwDataSize,"sms_delivery_receipt","error","params","param",NULL)==FALSE)
- {
- lpszData="";
- dwDataSize=0;
- }
- dbei.cbBlob=(MAX_PHONE_LEN+MAX_PATH+dwDataSize);
- dbei.pBlob=(PBYTE)MEMALLOC(dbei.cbBlob);
- if (dbei.pBlob)
- {
- dbei.cbBlob=mir_snprintf((LPSTR)dbei.pBlob,dbei.cbBlob,"SMS Confirmation From: +%s\r\nSMS was not sent succesfully: ",szPhone);
- CopyMemory((dbei.pBlob+dbei.cbBlob),lpszData,dwDataSize);
- dbei.cbBlob+=(dwDataSize+sizeof(DWORD));
- (*((DWORD*)(dbei.pBlob+(dbei.cbBlob-sizeof(DWORD)))))=0;
- }
- }
-
- if (dbei.pBlob)
- {
- if (hContact)
- {
- CallService(MS_DB_EVENT_ADD,(WPARAM)hContact,(LPARAM)&dbei);
- }else{
- RecvSMSWindowAdd(NULL,ICQEVENTTYPE_SMSCONFIRMATION,wszPhone,dwPhoneSize,(LPSTR)dbei.pBlob,dbei.cbBlob);
- }
- MEMFREE(dbei.pBlob);
- }
- }
- }else
- if ((ack->result==ACKRESULT_FAILED) || GetXMLFieldEx(lpszXML,dwXMLSize,&lpszData,&dwDataSize,"sms_response","deliverable",NULL))
- {
- HWND hWndDlg=SendSMSWindowHwndByHProcessGet(ack->hProcess);
- if (hWndDlg)
- {
- char szNetwork[MAX_PATH];
-
- KillTimer(hWndDlg,wParam);
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szNetwork,sizeof(szNetwork),NULL,"sms_response","network",NULL);
-
- if (ack->result==ACKRESULT_FAILED || CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszData,dwDataSize,"no",2)==CSTR_EQUAL)
- {
- HWND hwndTimeOut;
- char szBuff[1024];
- WCHAR wszErrorMessage[1028];
- LPSTR lpszErrorDescription;
-
- if (SendSMSWindowMultipleGet(hWndDlg))
- {
- TVITEM tvi;
- tvi.mask=TVIF_TEXT;
- tvi.hItem=SendSMSWindowHItemSendGet(hWndDlg);
- tvi.pszText=wszPhone;
- tvi.cchTextMax=SIZEOF(wszPhone);
- TreeView_GetItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&tvi);
- }else{
- GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,SIZEOF(szPhone));
- }
-
- if (ack->result==ACKRESULT_FAILED)
- {
- lpszErrorDescription=lpszXML;
- }else{
- lpszErrorDescription=szBuff;
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szBuff,sizeof(szBuff),NULL,"sms_response","error","params","param",NULL);
- }
-
- mir_sntprintf(wszErrorMessage,SIZEOF(wszErrorMessage),TranslateW(L"SMS message didn't send by %S to %s because: %S"),szNetwork,wszPhone,lpszErrorDescription);
- ShowWindow(hWndDlg,SW_SHOWNORMAL);
- EnableWindow(hWndDlg,FALSE);
- hwndTimeOut=CreateDialog(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDD_SENDSMSTIMEDOUT),hWndDlg,SMSTimedOutDlgProc);
- SET_DLG_ITEM_TEXTW(hwndTimeOut,IDC_STATUS,wszErrorMessage);
- }else{
- SendSMSWindowDBAdd(hWndDlg);
- if (SendSMSWindowMultipleGet(hWndDlg))
- {
- if (SendSMSWindowNextHItemGet(hWndDlg,SendSMSWindowHItemSendGet(hWndDlg)))
- {
- SendSMSWindowAsSentSet(hWndDlg);
- SendSMSWindowHItemSendSet(hWndDlg,SendSMSWindowNextHItemGet(hWndDlg,SendSMSWindowHItemSendGet(hWndDlg)));
- SendSMSWindowNext(hWndDlg);
- }else{
- SendSMSWindowRemove(hWndDlg);
- }
- }else{
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszData,dwDataSize,"yes",3)==CSTR_EQUAL || CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszData,dwDataSize,"smtp",4)==CSTR_EQUAL)
- {
- char szSource[MAX_PATH],szMessageID[MAX_PATH];
-
- if (DB_SMS_GetByte(NULL,"ShowACK",SMS_DEFAULT_SHOWACK))
- {
- HWND hwndAccepted=CreateDialog(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDD_SENDSMSACCEPT),hWndDlg,SMSAcceptedDlgProc);
- if (CompareStringA(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),NORM_IGNORECASE,lpszData,dwDataSize,"yes",3)==CSTR_EQUAL)
- {
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szSource,sizeof(szSource),NULL,"sms_response","source",NULL);
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szMessageID,sizeof(szMessageID),NULL,"sms_response","message_id",NULL);
- }else{
- SET_DLG_ITEM_TEXTW(hwndAccepted,IDC_ST_SOURCE,TranslateW(L"From:"));
- SET_DLG_ITEM_TEXTW(hwndAccepted,IDC_ST_MESSAGEID,TranslateW(L"To:"));
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szSource,sizeof(szSource),NULL,"sms_response","from",NULL);
- GetXMLFieldExBuff(lpszXML,dwXMLSize,szMessageID,sizeof(szMessageID),NULL,"sms_response","to",NULL);
- }
- SET_DLG_ITEM_TEXTA(hwndAccepted,IDC_NETWORK,szNetwork);
- SET_DLG_ITEM_TEXTA(hwndAccepted,IDC_SOURCE,szSource);
- SET_DLG_ITEM_TEXTA(hwndAccepted,IDC_MESSAGEID,szMessageID);
- }else{
- SendSMSWindowRemove(hWndDlg);
- }
- }else{
- SendSMSWindowRemove(hWndDlg);
- }
- }
- }
- }
- }
- }
-return(0);
-}
-
-//Handles new SMS messages added to the database
-int handleNewMessage(WPARAM wParam,LPARAM lParam)
-{
- CHAR szServiceFunction[MAX_PATH],*pszServiceFunctionName;
- WCHAR szToolTip[MAX_PATH];
- HANDLE hContact=(HANDLE)wParam,hDbEvent=(HANDLE)lParam;
- CLISTEVENT cle={0};
- DBEVENTINFO dbei={0};
-
- dbei.cbSize=sizeof(dbei);
- if ((dbei.cbBlob=CallService(MS_DB_EVENT_GETBLOBSIZE,lParam,0))!=-1)
- {
- dbei.pBlob=(PBYTE)MEMALLOC(dbei.cbBlob);
- if (dbei.pBlob)
- {
- CopyMemory(szServiceFunction,PROTOCOL_NAMEA,PROTOCOL_NAME_SIZE);
- pszServiceFunctionName=szServiceFunction+PROTOCOL_NAME_LEN;
-
- if (CallService(MS_DB_EVENT_GET,lParam,(LPARAM)&dbei)==0)
- if ((dbei.flags&DBEF_SENT)==0)
- if (dbei.eventType==ICQEVENTTYPE_SMS)
- {
- if (dbei.cbBlob>MIN_SMS_DBEVENT_LEN)
- {
- SkinPlaySound("RecvSMSMsg");
- if (DB_SMS_GetByte(NULL,"AutoPopup",0))
- {
- if (RecvSMSWindowAdd(hContact,ICQEVENTTYPE_SMS,NULL,0,(LPSTR)dbei.pBlob,dbei.cbBlob))
- {
- CallService(MS_DB_EVENT_MARKREAD,(WPARAM)hContact,(LPARAM)&dbei);
- }
- }else{
- CopyMemory(pszServiceFunctionName,SMS_READ,sizeof(SMS_READ));
-
- cle.cbSize=sizeof(cle);
- cle.flags=CLEF_UNICODE;
- cle.hContact=hContact;
- cle.hDbEvent=hDbEvent;
- cle.hIcon=LoadSkinnedIcon(SKINICON_OTHER_SMS);
- cle.pszService=szServiceFunction;
- mir_sntprintf(szToolTip,SIZEOF(szToolTip),TranslateW(L"SMS Message from %s"),GetContactNameW(hContact));
- cle.ptszTooltip=szToolTip;
- CallService(MS_CLIST_ADDEVENT,0,(LPARAM)&cle);
- }
- }
- }else
- if (dbei.eventType==ICQEVENTTYPE_SMSCONFIRMATION)
- {
- SkinPlaySound("RecvSMSConfirmation");
- if (DB_SMS_GetByte(NULL,"AutoPopup",0))
- {
- if (RecvSMSWindowAdd(hContact,ICQEVENTTYPE_SMSCONFIRMATION,NULL,0,(LPSTR)dbei.pBlob,dbei.cbBlob))
- {
- CallService(MS_DB_EVENT_DELETE,(WPARAM)hContact,(LPARAM)&dbei);
- }
- }else{
- UINT iIcon;
-
- if (GetDataFromMessage((LPSTR)dbei.pBlob,dbei.cbBlob,NULL,NULL,0,NULL,&iIcon))
- {
- CopyMemory(pszServiceFunctionName,SMS_READ_ACK,sizeof(SMS_READ_ACK));
-
- cle.cbSize=sizeof(cle);
- cle.flags=(CLEF_UNICODE);
- cle.hContact=hContact;
- cle.hDbEvent=hDbEvent;
- cle.hIcon=(HICON)LoadImage(ssSMSSettings.hInstance,MAKEINTRESOURCE(iIcon),IMAGE_ICON,0,0,LR_SHARED);
- cle.pszService=szServiceFunction;
- mir_sntprintf(szToolTip,SIZEOF(szToolTip),TranslateW(L"SMS Confirmation from %s"),GetContactNameW(hContact));
- cle.ptszTooltip=szToolTip;
- CallService(MS_CLIST_ADDEVENT,0,(LPARAM)&cle);
- }
- }
- }
- MEMFREE(dbei.pBlob);
- }
- }
-return(0);
-}
-
-
diff --git a/plugins/!NotAdopted/SMS/recvdlg.cpp b/plugins/!NotAdopted/SMS/recvdlg.cpp
deleted file mode 100644
index ec3998edfc..0000000000
--- a/plugins/!NotAdopted/SMS/recvdlg.cpp
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2 Richard Hughes
-Copyright (C) 2007-2009 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-
-#include "main.h"
-#include "recvdlg.h"
-
-//Defnition needed to the SMS window list
-typedef struct
-{
- LIST_MT_ITEM lmtListMTItem;
- HWND hWnd;
- HBRUSH hBkgBrush;
- HANDLE hContact;
-} RECV_SMS_WINDOW_DATA;
-
-
-
-BOOL CALLBACK RecvSmsDlgProc (HWND hWndDlg,UINT message,WPARAM wParam,LPARAM lParam);
-#define GET_WINDOW_DATA(hWndDlg) ((RECV_SMS_WINDOW_DATA*)GetWindowLongPtr(hWndDlg,GWL_USERDATA))
-
-
-
-
-
-DWORD RecvSMSWindowInitialize()
-{
- DWORD dwRetErrorCode;
-
- dwRetErrorCode=ListMTInitialize(&ssSMSSettings.lmtRecvSMSWindowsListMT,0);
-return(dwRetErrorCode);
-}
-
-//This function destroy all SMS receive windows
-void RecvSMSWindowDestroy()
-{
- RECV_SMS_WINDOW_DATA *prswdWindowData;
-
- ListMTLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
- while(ListMTItemGetFirst(&ssSMSSettings.lmtRecvSMSWindowsListMT,NULL,(LPVOID*)&prswdWindowData)==NO_ERROR)
- {// цикл
- RecvSMSWindowRemove(prswdWindowData->hWnd);
- }
- ListMTUnLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
- ListMTDestroy(&ssSMSSettings.lmtRecvSMSWindowsListMT);
-}
-
-
-BOOL CALLBACK RecvSmsDlgProc(HWND hWndDlg,UINT message,WPARAM wParam,LPARAM lParam)
-{
- RECV_SMS_WINDOW_DATA *prswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- switch(message){
- case WM_INITDIALOG:
- TranslateDialogDefault(hWndDlg); //Translate intially - bid
-
- prswdWindowData=(RECV_SMS_WINDOW_DATA*)lParam;
- SetWindowLongPtr(hWndDlg,GWL_USERDATA,(LONG_PTR)lParam);
-
- {
- WNDPROC OldEditWndProc;
-
- OldEditWndProc=(WNDPROC)SetWindowLongPtr(GetDlgItem(hWndDlg,IDC_MESSAGE),GWL_WNDPROC,(LONG_PTR)MessageSubclassProc);
- SetWindowLongPtr(GetDlgItem(hWndDlg,IDC_MESSAGE),GWL_USERDATA,(LONG_PTR)OldEditWndProc);
- }
-
- {
- HFONT hFont;
- LOGFONT lf;
- hFont=(HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_GETFONT,0,0);
- if (hFont && hFont!=(HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDOK,WM_GETFONT,0,0)) DeleteObject(hFont);
- LoadMsgDlgFont(MSGFONTID_YOURMSG,&lf,NULL);
- hFont=CreateFontIndirect(&lf);
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
-
- COLORREF colour=DBGetContactSettingDword(NULL,SRMMMOD,SRMSGSET_BKGCOLOUR,SRMSGDEFSET_BKGCOLOUR);
- prswdWindowData->hBkgBrush=CreateSolidBrush(colour);
- }
-
- if (Utils_RestoreWindowPosition(hWndDlg,(DB_SMS_GetByte(NULL,"SavePerContact",0)? prswdWindowData->hContact:NULL),PROTOCOL_NAMEA,"recv"))
- {// def pos
- SetWindowPos(hWndDlg,0,200,200,400,350,SWP_NOZORDER);
- }
- InvalidateRect(GetDlgItem(hWndDlg,IDC_MESSAGE),NULL,FALSE);
- break;
- case WM_CTLCOLORSTATIC:
- if ((HWND)lParam==GetDlgItem(hWndDlg,IDC_MESSAGE))
- {
- COLORREF colour;
-
- LoadMsgDlgFont(MSGFONTID_YOURMSG,NULL,&colour);
- SetTextColor((HDC)wParam,colour);
- SetBkColor((HDC)wParam,DBGetContactSettingDword(NULL,SRMMMOD,SRMSGSET_BKGCOLOUR,SRMSGDEFSET_BKGCOLOUR));
- return((BOOL)prswdWindowData->hBkgBrush);
- }
- break;
- case WM_GETMINMAXINFO:
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x=300;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y=230;
- break;
- case WM_SIZE:
- {
- int cx,cy;
- RECT rcWin;
-
- GetWindowRect(hWndDlg,&rcWin);
- cx = rcWin.right - rcWin.left;
- cy = rcWin.bottom - rcWin.top;
- SetWindowPos(GetDlgItem(hWndDlg,IDC_MESSAGE),0,0,0,cx - 14,cy - 112,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_NAME),0,0,0,(cx*35)/100,20,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_NUMBER),0,cx - (cx*35)/100 - 11,5,(cx*35)/100,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ST_NUMBER),0,cx - (cx*35)/100 - 58,5,40,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_READNEXT),0,cx - 87, cy - 60,80,25,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDOK),0,cx/2 - 87,cy - 60,80,25,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDCANCEL),0,cx/2 + 7,cy - 60,80,25,SWP_NOZORDER);
-
- RedrawWindow(hWndDlg,NULL,NULL,RDW_FRAME|RDW_INVALIDATE);
- }
- break;
- case WM_COMMAND:
- switch(LOWORD(wParam)){
- case IDOK:
- {
- WCHAR wszPhone[MAX_PHONE_LEN];
- HWND hwndSendSms;
- HANDLE hContact;
-
- hContact=HContactFromPhone(wszPhone,GET_DLG_ITEM_TEXTW(hWndDlg,IDC_NUMBER,wszPhone,SIZEOF(wszPhone)));
- hwndSendSms=SendSMSWindowIsOtherInstanceHContact(hContact);
- if (hwndSendSms)
- {
- SetFocus(hwndSendSms);
- }else{
- hwndSendSms=SendSMSWindowAdd(prswdWindowData->hContact);
- SET_DLG_ITEM_TEXTW(hwndSendSms,IDC_ADDRESS,wszPhone);
- }
- }
- case IDCANCEL:
- RecvSMSWindowRemove(hWndDlg);
- break;
- }
- break;
- case WM_CLOSE:
- DeleteObject(prswdWindowData->hBkgBrush);
- RecvSMSWindowRemove(hWndDlg);
- break;
- }
-return(FALSE);
-}
-
-//SMS Receive window list functions
-
-//This function create a new SMS receive window, and insert it to the list.
-//The function gets void and return the window HWND
-HWND RecvSMSWindowAdd(HANDLE hContact,DWORD dwEventType,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,LPSTR lpszMessage,SIZE_T dwMessageSize)
-{
- HWND hRet=NULL;
-
- if ((dwPhoneSize+dwMessageSize)>MIN_SMS_DBEVENT_LEN)
- {
- LPWSTR lpwszMessage;
-
- lpwszMessage=(LPWSTR)MEMALLOC(((dwMessageSize+MAX_PATH)*sizeof(WCHAR)));
- if (lpwszMessage)
- {
- RECV_SMS_WINDOW_DATA *prswdWindowData;
-
- prswdWindowData=(RECV_SMS_WINDOW_DATA*)MEMALLOC(sizeof(RECV_SMS_WINDOW_DATA));
- if (prswdWindowData)
- {
- prswdWindowData->hContact=hContact;
- prswdWindowData->hWnd=CreateDialogParam(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDD_RECVSMS),NULL,RecvSmsDlgProc,(LPARAM)prswdWindowData);
- if (prswdWindowData->hWnd)
- {
- HICON hIcon;
- WCHAR wszTitle[MAX_PATH]={0},wszPhoneLocal[MAX_PHONE_LEN]={0};
- UINT iIcon;
- LPWSTR lpwszContactDisplayName,lpwszTitlepart;
-
- ListMTLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
- ListMTItemAdd(&ssSMSSettings.lmtRecvSMSWindowsListMT,&prswdWindowData->lmtListMTItem,prswdWindowData);
- ListMTUnLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
-
- switch(dwEventType){
- case ICQEVENTTYPE_SMS:
- lpwszTitlepart=TranslateW(L"Received SMS");
- hIcon=LoadSkinnedIcon(SKINICON_OTHER_SMS);
- break;
- case ICQEVENTTYPE_SMSCONFIRMATION:
- lpwszTitlepart=TranslateW(L"Received SMS Confirmation");
- GetDataFromMessage(lpszMessage,dwMessageSize,NULL,NULL,0,NULL,&iIcon);
- hIcon=(HICON)LoadImage(ssSMSSettings.hInstance,MAKEINTRESOURCE(iIcon),IMAGE_ICON,0,0,LR_SHARED);
- break;
- default:
- lpwszTitlepart=L"Unknown event type";
- }
-
- wszPhoneLocal[0]='+';
- if (dwPhoneSize)
- {
- dwPhoneSize=CopyNumberW((wszPhoneLocal+1),lpwszPhone,dwPhoneSize);
- }else{
- GetDataFromMessage(lpszMessage,dwMessageSize,NULL,(wszPhoneLocal+1),(SIZEOF(wszPhoneLocal)-1),&dwPhoneSize,NULL);
- dwPhoneSize++;
- }
-
- lpwszContactDisplayName=GetContactNameW(hContact);
- mir_sntprintf(wszTitle,SIZEOF(wszTitle),L"%s - %s",lpwszContactDisplayName,lpwszTitlepart);
- MultiByteToWideChar(CP_UTF8,0,lpszMessage,dwMessageSize,lpwszMessage,(dwMessageSize+MAX_PATH));
-
- SendMessageW(prswdWindowData->hWnd,WM_SETTEXT,NULL,(LPARAM)wszTitle);
- SET_DLG_ITEM_TEXTW(prswdWindowData->hWnd,IDC_NAME,lpwszContactDisplayName);
- SET_DLG_ITEM_TEXTW(prswdWindowData->hWnd,IDC_NUMBER,wszPhoneLocal);
- SET_DLG_ITEM_TEXTW(prswdWindowData->hWnd,IDC_MESSAGE,lpwszMessage);
- SendMessage(prswdWindowData->hWnd,WM_SETICON,ICON_BIG,(LPARAM)hIcon);
-
- SetFocus(GetDlgItem(prswdWindowData->hWnd,IDC_MESSAGE));
- hRet=prswdWindowData->hWnd;
- }else{
- MEMFREE(prswdWindowData);
- }
- }
- MEMFREE(lpwszMessage);
- }
- }
-return(hRet);
-}
-
-//This function close the SMS receive window that given, and remove it from the list.
-//The function gets the HWND of the window that should be removed and return void
-void RecvSMSWindowRemove(HWND hWndDlg)
-{
- RECV_SMS_WINDOW_DATA *prswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (prswdWindowData)
- {
- Utils_SaveWindowPosition(hWndDlg,(DB_SMS_GetByte(NULL,"SavePerContact",0)? prswdWindowData->hContact:NULL),PROTOCOL_NAMEA,"recv");
-
- ListMTLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
- ListMTItemDelete(&ssSMSSettings.lmtRecvSMSWindowsListMT,&prswdWindowData->lmtListMTItem);
- ListMTUnLock(&ssSMSSettings.lmtRecvSMSWindowsListMT);
- MEMFREE(prswdWindowData);
- }
- DestroyWindow(hWndDlg);
-}
-
diff --git a/plugins/!NotAdopted/SMS/recvdlg.h b/plugins/!NotAdopted/SMS/recvdlg.h
deleted file mode 100644
index a34231b255..0000000000
--- a/plugins/!NotAdopted/SMS/recvdlg.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#if !defined(AFX_SMS_RECVDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
-#define AFX_SMS_RECVDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_
-
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-
-DWORD RecvSMSWindowInitialize ();
-void RecvSMSWindowDestroy ();
-HWND RecvSMSWindowAdd (HANDLE hContact,DWORD dwEventType,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,LPSTR lpszMessage,SIZE_T dwMessageSize);
-void RecvSMSWindowRemove (HWND hWndDlg);
-
-
-
-#endif // !defined(AFX_SMS_RECVDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/res/SMSNOTSENT.ico b/plugins/!NotAdopted/SMS/res/SMSNOTSENT.ico
deleted file mode 100644
index edc59a9d00..0000000000
--- a/plugins/!NotAdopted/SMS/res/SMSNOTSENT.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/!NotAdopted/SMS/res/SMSSENT.ico b/plugins/!NotAdopted/SMS/res/SMSSENT.ico
deleted file mode 100644
index da61e1c52c..0000000000
--- a/plugins/!NotAdopted/SMS/res/SMSSENT.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/!NotAdopted/SMS/res/halftick.ico b/plugins/!NotAdopted/SMS/res/halftick.ico
deleted file mode 100644
index a7fcd94b7a..0000000000
--- a/plugins/!NotAdopted/SMS/res/halftick.ico
+++ /dev/null
Binary files differ
diff --git a/plugins/!NotAdopted/SMS/resource.h b/plugins/!NotAdopted/SMS/resource.h
deleted file mode 100644
index 3a7e98455d..0000000000
--- a/plugins/!NotAdopted/SMS/resource.h
+++ /dev/null
@@ -1,70 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by resource.rc
-//
-#define IDD_SENDSMS 102
-#define IDR_CONTEXT 104
-#define IDD_RECVSMS 109
-#define IDI_SMSNOTSENT 110
-#define IDI_SMSSENT 111
-#define IDD_SMSTIMEDOUT 112
-#define IDD_SENDSMSTIMEDOUT 113
-#define IDI_HALFTICK 119
-#define IDD_SENDSMSACCEPT 120
-#define IDD_OPT_SMSPLUGIN 234
-#define IDC_ADDRESS 1000
-#define IDC_EDIT 1001
-#define IDC_ADDRESS2 1001
-#define IDC_ACCOUNTS 1001
-#define IDC_MESSAGE 1002
-#define IDC_STATUS 1003
-#define IDC_NUMBER 1004
-#define IDC_NAME 1005
-#define IDC_ADD 1006
-#define IDC_DELETE 1008
-#define IDC_SIGNATURE 1008
-#define IDC_LIST 1009
-#define IDC_COUNT 1010
-#define IDC_TEXT 1011
-#define IDC_MSGTYPE 1012
-#define IDC_MSGTIME 1013
-#define IDC_BEGIN 1017
-#define IDC_END 1018
-#define IDC_SAVENUMBER 1020
-#define IDC_MULTIPLE 1025
-#define IDC_ADDNUMBER 1029
-#define IDC_ST_CHARS 1033
-#define IDC_ST_ENTERMESSAGE 1034
-#define IDC_ST_TO 1035
-#define IDC_ST_ADDRESS 1036
-#define IDC_ST_NUMBER 1037
-#define IDC_NUMBERSLIST 1038
-#define IDC_MESSAGEID 1039
-#define IDC_SOURCE 1040
-#define IDC_NETWORK 1041
-#define IDC_SHOWACK 1044
-#define IDC_NOSHOWACK 1045
-#define IDC_AUTOPOP 1045
-#define IDC_READNEXT 1046
-#define IDC_SAVEWINPOS 1046
-#define IDC_USESIGNATURE 1047
-#define IDC_SIGNGROUP 1048
-#define IDC_ST_MESSAGEID 1049
-#define IDC_ST_NETWORK 1050
-#define IDC_ST_SOURCE 1051
-#define IDC_HISTORY 1080
-#define IDM_VIEWMSG 40001
-#define IDM_VIEWACK 40002
-#define IDM_VIEWRCPT 40003
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 121
-#define _APS_NEXT_COMMAND_VALUE 40004
-#define _APS_NEXT_CONTROL_VALUE 1053
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/plugins/!NotAdopted/SMS/resource.rc b/plugins/!NotAdopted/SMS/resource.rc
deleted file mode 100644
index 5f34d6e13d..0000000000
--- a/plugins/!NotAdopted/SMS/resource.rc
+++ /dev/null
@@ -1,291 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include <windows.h>
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1251)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,2,5,3
- PRODUCTVERSION 0,2,5,3
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x40004L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "000004b0"
- BEGIN
- VALUE "Comments", "Send and receive SMS messages"
- VALUE "CompanyName", " "
- VALUE "FileDescription", "Miranda SMS plugin"
- VALUE "FileVersion", "0.2.5.3"
- VALUE "InternalName", "sms plugin"
- VALUE "LegalCopyright", "Copyright © 2002-3 Ariel Shulman (Original by Richard Hughes), 2007-2009 Rozhuk Ivan (Ivan 83)"
- VALUE "OriginalFilename", "sms.dll"
- VALUE "ProductName", "Miranda NG"
- VALUE "ProductVersion", "0.2.5.3"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x0, 1200
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_SMSNOTSENT ICON "res\\SMSNOTSENT.ico"
-IDI_SMSSENT ICON "res\\SMSSENT.ico"
-IDI_HALFTICK ICON "res\\halftick.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_RECVSMS DIALOGEX 0, 0, 278, 126
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-CAPTION "Received SMS"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- EDITTEXT IDC_MESSAGE,3,29,271,76,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_WANTRETURN | WS_VSCROLL,WS_EX_CLIENTEDGE
- DEFPUSHBUTTON "&Reply",IDOK,83,108,50,14
- PUSHBUTTON "&Close",IDCANCEL,143,108,50,14
- PUSHBUTTON "Read Next",IDC_READNEXT,217,105,57,17,NOT WS_VISIBLE
- LTEXT "From:",IDC_STATIC,3,6,19,11
- LTEXT "Message received:",IDC_STATIC,3,20,108,8
- LTEXT "",IDC_NAME,24,5,105,11,SS_SUNKEN
- LTEXT "Number:",IDC_ST_NUMBER,133,6,28,11
- LTEXT "",IDC_NUMBER,164,5,110,11,SS_SUNKEN
-END
-
-IDD_SENDSMS DIALOGEX 0, 0, 394, 145
-STYLE DS_SETFONT | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-CAPTION "Send SMS"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- LTEXT "To:",IDC_ST_TO,2,5,18,8
- COMBOBOX IDC_NAME,20,3,111,12,CBS_DROPDOWNLIST | WS_DISABLED | WS_VSCROLL | WS_TABSTOP
- RTEXT "Number:",IDC_ST_ADDRESS,134,5,30,8
- COMBOBOX IDC_ADDRESS,164,3,113,62,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Add number to list",IDC_ADDNUMBER,284,3,108,14
- CONTROL "Tree1",IDC_NUMBERSLIST,"SysTreeView32",TVS_HASBUTTONS | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_NOTOOLTIPS | TVS_TRACKSELECT | TVS_FULLROWSELECT | WS_BORDER | WS_HSCROLL | WS_TABSTOP,284,17,108,109
- PUSHBUTTON "&H",IDC_HISTORY,2,17,15,11,BS_ICON
- COMBOBOX IDC_ACCOUNTS,20,18,72,83,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "Save number",IDC_SAVENUMBER,133,17,46,11
- PUSHBUTTON "Multiple >>",IDC_MULTIPLE,232,17,45,11
- LTEXT "Enter message:",IDC_ST_ENTERMESSAGE,2,32,76,9
- RTEXT "Chars:",IDC_ST_CHARS,207,32,34,8
- RTEXT "%d/160",IDC_COUNT,242,32,35,8,SS_NOPREFIX | SS_SUNKEN
- EDITTEXT IDC_MESSAGE,2,42,275,84,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL,WS_EX_CLIENTEDGE
- DEFPUSHBUTTON "&Send",IDOK,73,130,50,14
- PUSHBUTTON "&Close",IDCANCEL,143,130,50,14
-END
-
-IDD_SENDSMSTIMEDOUT DIALOG 0, 0, 211, 94
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "SMS Message Didn't Send"
-FONT 8, "MS Shell Dlg"
-BEGIN
- DEFPUSHBUTTON "&Try again",IDOK,39,73,62,16
- PUSHBUTTON "&Cancel",IDCANCEL,106,73,62,16
- LTEXT "The SMS message send timed out",IDC_STATUS,5,6,201,61
-END
-
-IDD_OPT_SMSPLUGIN DIALOGEX 0, 0, 255, 161
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- GROUPBOX "SMS Plugin",IDC_STATIC,6,4,244,150
- GROUPBOX "",IDC_SIGNGROUP,12,28,231,74,WS_GROUP
- EDITTEXT IDC_SIGNATURE,17,40,221,44,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
- CONTROL "Begining",IDC_BEGIN,"Button",BS_AUTORADIOBUTTON | WS_GROUP,115,90,65,8
- CONTROL "End",IDC_END,"Button",BS_AUTORADIOBUTTON,180,90,58,8
- LTEXT "Put signature at the:",IDC_STATIC,18,90,89,10
- CONTROL "Use Signature",IDC_USESIGNATURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,21,226,10
- CONTROL "Show server notifications",IDC_SHOWACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,108,226,10
- CONTROL "Auto popup on new message",IDC_AUTOPOP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,120,226,10
- CONTROL "Save window position per contact",IDC_SAVEWINPOS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,132,226,10
-END
-
-IDD_SENDSMSACCEPT DIALOG 0, 0, 256, 90
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
-CAPTION "SMS Message Sent"
-FONT 8, "MS Shell Dlg"
-BEGIN
- PUSHBUTTON "&OK",IDOK,91,69,62,16
- LTEXT "",IDC_MESSAGEID,57,6,194,9
- LTEXT "Message ID:",IDC_ST_MESSAGEID,5,6,52,8
- LTEXT "Source:",IDC_ST_SOURCE,5,27,52,8
- LTEXT "",IDC_SOURCE,57,27,194,39
- LTEXT "Network:",IDC_ST_NETWORK,5,17,52,8
- LTEXT "",IDC_NETWORK,57,17,194,10
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_RECVSMS, DIALOG
- BEGIN
- LEFTMARGIN, 3
- RIGHTMARGIN, 274
- TOPMARGIN, 5
- BOTTOMMARGIN, 122
- HORZGUIDE, 16
- HORZGUIDE, 29
- HORZGUIDE, 105
- END
-
- IDD_SENDSMS, DIALOG
- BEGIN
- LEFTMARGIN, 2
- RIGHTMARGIN, 392
- VERTGUIDE, 164
- VERTGUIDE, 277
- VERTGUIDE, 284
- TOPMARGIN, 3
- BOTTOMMARGIN, 144
- HORZGUIDE, 17
- HORZGUIDE, 28
- HORZGUIDE, 32
- HORZGUIDE, 51
- HORZGUIDE, 111
- HORZGUIDE, 126
- HORZGUIDE, 130
- END
-
- IDD_SENDSMSTIMEDOUT, DIALOG
- BEGIN
- LEFTMARGIN, 5
- RIGHTMARGIN, 206
- TOPMARGIN, 6
- BOTTOMMARGIN, 89
- END
-
- IDD_OPT_SMSPLUGIN, DIALOG
- BEGIN
- RIGHTMARGIN, 250
- VERTGUIDE, 6
- VERTGUIDE, 12
- VERTGUIDE, 18
- VERTGUIDE, 115
- VERTGUIDE, 180
- VERTGUIDE, 238
- VERTGUIDE, 243
- VERTGUIDE, 248
- BOTTOMMARGIN, 150
- HORZGUIDE, 84
- HORZGUIDE, 90
- HORZGUIDE, 95
- HORZGUIDE, 107
- HORZGUIDE, 116
- END
-
- IDD_SENDSMSACCEPT, DIALOG
- BEGIN
- LEFTMARGIN, 5
- RIGHTMARGIN, 251
- VERTGUIDE, 57
- TOPMARGIN, 6
- BOTTOMMARGIN, 85
- HORZGUIDE, 14
- HORZGUIDE, 17
- HORZGUIDE, 27
- END
-END
-#endif // APSTUDIO_INVOKED
-
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.K.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include <windows.h>\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (U.K.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/plugins/!NotAdopted/SMS/send.cpp b/plugins/!NotAdopted/SMS/send.cpp
deleted file mode 100644
index fdfc80ffd8..0000000000
--- a/plugins/!NotAdopted/SMS/send.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2 Richard Hughes
-Copyright (C) 2007-2009 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-
-#include "main.h"
-
-
-
-//This function gets HWND of the window, the number, and the message.
-void StartSmsSend(HWND hWndDlg,SIZE_T dwModuleIndex,LPWSTR lpwszPhone,SIZE_T dwPhoneSize,LPWSTR lpwszMessage,SIZE_T dwMessageSize)
-{
- if (ssSMSSettings.ppaSMSAccounts && dwModuleIndex!=-1 && dwModuleIndex<ssSMSSettings.dwSMSAccountsCount)
- {
- LPSTR lpszMessageUTF;
- LPWSTR lpwszMessageXMLEncoded;
- SIZE_T dwMessageUTFBuffSize,dwMessageXMLEncodedSize,dwBuffSize;
- DBEVENTINFO *pdbei;
-
- dwMessageXMLEncodedSize=((dwMessageSize+MAX_PATH)*sizeof(WCHAR)*6);
- lpwszMessageXMLEncoded=(LPWSTR)MEMALLOC(dwMessageXMLEncodedSize);
- if (lpwszMessageXMLEncoded)
- {
- EncodeXML(lpwszMessage,dwMessageSize,lpwszMessageXMLEncoded,(dwMessageXMLEncodedSize/sizeof(WCHAR)),&dwMessageXMLEncodedSize);
-
- dwMessageUTFBuffSize=(dwMessageXMLEncodedSize+MAX_PATH);
- lpszMessageUTF=(LPSTR)MEMALLOC(dwMessageUTFBuffSize);
- if (lpszMessageUTF)
- {
- dwBuffSize=(dwPhoneSize+MAX_PATH+WideCharToMultiByte(CP_UTF8,0,lpwszMessage,dwMessageSize,lpszMessageUTF,dwMessageUTFBuffSize,NULL,NULL));
- pdbei=(DBEVENTINFO*)MEMALLOC((sizeof(DBEVENTINFO)+dwBuffSize));
- if (pdbei)
- {
- char szServiceName[MAX_PATH],szPhone[MAX_PHONE_LEN];
- LPSTR lpszBuff=(LPSTR)(pdbei+1);
- HANDLE hProcess;
-
- WideCharToMultiByte(CP_UTF8,0,lpwszPhone,dwPhoneSize,szPhone,MAX_PHONE_LEN,NULL,NULL);
- dwPhoneSize=CopyNumberA(szPhone,szPhone,dwPhoneSize);
-
- pdbei->timestamp=time(NULL);
- pdbei->flags=(DBEF_SENT|DBEF_UTF);
- pdbei->eventType=ICQEVENTTYPE_SMS;
- pdbei->cbBlob=(mir_snprintf(lpszBuff,dwBuffSize,"SMS To: +%s\r\n%s",szPhone,lpszMessageUTF)+4);
- pdbei->pBlob=(PBYTE)lpszBuff;
- SendSMSWindowDbeiSet(hWndDlg,pdbei);
-
- mir_snprintf(szServiceName,sizeof(szServiceName),"%s%s",ssSMSSettings.ppaSMSAccounts[dwModuleIndex]->szModuleName,MS_ICQ_SENDSMS);
- if (ServiceExists(szServiceName))
- {
- WideCharToMultiByte(CP_UTF8,0,lpwszMessageXMLEncoded,dwMessageXMLEncodedSize,lpszMessageUTF,dwMessageUTFBuffSize,NULL,NULL);
- hProcess=(HANDLE)CallService(szServiceName,(WPARAM)szPhone,(LPARAM)lpszMessageUTF);
- SendSMSWindowHProcessSet(hWndDlg,hProcess);
- }else{
- MEMFREE(pdbei);
- }
- }
- MEMFREE(lpszMessageUTF);
- }
- MEMFREE(lpwszMessageXMLEncoded);
- }
- }
-}
-
-
-
diff --git a/plugins/!NotAdopted/SMS/senddlg.cpp b/plugins/!NotAdopted/SMS/senddlg.cpp
deleted file mode 100644
index dbecd20ec6..0000000000
--- a/plugins/!NotAdopted/SMS/senddlg.cpp
+++ /dev/null
@@ -1,1177 +0,0 @@
-/*
-Miranda-IM SMS Plugin
-Copyright (C) 2001-2 Richard Hughes
-Copyright (C) 2007-2009 Rozhuk Ivan
-
-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.
----------------------------------------------------------------------------
-
-This was the original words.
-This plugin was modified by Ariel Shulman (NuKe007).
-For any comments, problems, etc. contact me at Miranda-IM forums or E-Mail or ICQ.
-All the information needed you can find at www.nuke007.tk
-Enjoy the code and use it smartly!
-*/
-
-#include "main.h"
-
-
-
-#define TIMERID_MSGSEND 0
-#define TIMEDOUT_CANCEL 0
-#define TIMEDOUT_RETRY 1
-#define DM_TIMEOUTDECIDED (WM_USER+18)
-
-
-//Defnition needed to the SMS window list
-typedef struct
-{
- LIST_MT_ITEM lmtListMTItem;
- HWND hWnd;
- HBRUSH hBkgBrush;
- HANDLE hProcess;
- HANDLE hContact;
- HANDLE hMyContact;
- HTREEITEM hItemSend;
- BOOL bMultiple;
- SIZE_T dwContactsListCount;
- HANDLE *phContactsList;
- DBEVENTINFO *pdbei;
-} SEND_SMS_WINDOW_DATA;
-
-
-
-void AddContactPhonesToCombo (HWND hWnd,HANDLE hContact);
-void SendSMSWindowFillTreeView (HWND hWnd);
-SIZE_T GetSMSMessageLenMax (HWND hWndDlg);
-
-#define GET_WINDOW_DATA(hWndDlg) ((SEND_SMS_WINDOW_DATA*)GetWindowLongPtr(hWndDlg,GWL_USERDATA))
-
-
-
-
-
-DWORD SendSMSWindowInitialize()
-{
- DWORD dwRetErrorCode;
-
- dwRetErrorCode=ListMTInitialize(&ssSMSSettings.lmtSendSMSWindowsListMT,0);
-return(dwRetErrorCode);
-}
-
-void SendSMSWindowDestroy()
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData;
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- while(ListMTItemGetFirst(&ssSMSSettings.lmtSendSMSWindowsListMT,NULL,(LPVOID*)&psswdWindowData)==NO_ERROR)
- {// цикл
- SendSMSWindowRemove(psswdWindowData->hWnd);
- }
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTDestroy(&ssSMSSettings.lmtSendSMSWindowsListMT);
-}
-
-
-
-BOOL CALLBACK SendSmsDlgProc(HWND hWndDlg,UINT message,WPARAM wParam,LPARAM lParam)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- switch(message){
- case WM_INITDIALOG:
- TranslateDialogDefault(hWndDlg); //Translate intially - bid
- AddWinHandle(GetDlgItem(hWndDlg,IDC_MESSAGE));
-
- psswdWindowData=(SEND_SMS_WINDOW_DATA*)lParam;
- SetWindowLongPtr(hWndDlg,GWL_USERDATA,(LONG_PTR)lParam);
-
- {
- WNDPROC OldEditWndProc;
-
- OldEditWndProc=(WNDPROC)SetWindowLongPtr(GetDlgItem(hWndDlg,IDC_MESSAGE),GWL_WNDPROC,(LONG_PTR)MessageSubclassProc);
- SetWindowLongPtr(GetDlgItem(hWndDlg,IDC_MESSAGE),GWL_USERDATA,(LONG_PTR)OldEditWndProc);
- }
-
- SendMessage(hWndDlg,WM_SETICON,ICON_BIG,(LPARAM)LoadSkinnedIcon(SKINICON_OTHER_SMS));
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_HISTORY,BM_SETIMAGE,IMAGE_ICON,(LPARAM)LoadSkinnedIcon(SKINICON_OTHER_HISTORY));
- {
- HICON hIcon;
- HIMAGELIST hIml=ImageList_Create(16,16,ILC_COLOR32|ILC_MASK,0,30);
- TreeView_SetImageList(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),hIml,TVSIL_NORMAL);
- hIcon=LoadSkinnedIcon(SKINICON_OTHER_NOTICK); ImageList_AddIcon(hIml,hIcon);
- hIcon=LoadSkinnedIcon(SKINICON_OTHER_TICK); ImageList_AddIcon(hIml,hIcon);
- hIcon=(HICON)LoadImage(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDI_HALFTICK),IMAGE_ICON,0,0,LR_SHARED); ImageList_AddIcon(hIml,hIcon);
- }
- {
- HFONT hFont;
- LOGFONT lf;
- hFont=(HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_GETFONT,0,0);
- if (hFont && hFont!=(HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDOK,WM_GETFONT,0,0)) DeleteObject(hFont);
- LoadMsgDlgFont(MSGFONTID_MESSAGEAREA,&lf,NULL);
- hFont=CreateFontIndirect(&lf);
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
-
- COLORREF colour=DBGetContactSettingDword(NULL,SRMMMOD,SRMSGSET_INPBKGCOLOUR,SRMSGDEFSET_BKGCOLOUR);
- psswdWindowData->hBkgBrush=CreateSolidBrush(colour);
- }
- {
- TOOLINFO ti;
- HWND hwndToolTips;
- hwndToolTips=CreateWindowEx(WS_EX_TOPMOST,TOOLTIPS_CLASS,TEXT(""),WS_POPUP,0,0,0,0,NULL,NULL,GetModuleHandle(NULL),NULL);
- ZeroMemory(&ti,sizeof(ti));
- ti.cbSize=sizeof(ti);
- ti.uFlags=TTF_IDISHWND|TTF_SUBCLASS;
- ti.uId=(UINT)GetDlgItem(hWndDlg,IDC_HISTORY);
- ti.lpszText=TranslateW(L"View User's History");
- SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti);
- ti.uId=(UINT)GetDlgItem(hWndDlg,IDC_ADDNUMBER);
- ti.lpszText=TranslateW(L"Add Number To The Multiple List");
- SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti);
- ti.uId=(UINT)GetDlgItem(hWndDlg,IDC_SAVENUMBER);
- ti.lpszText=TranslateW(L"Save Number To The User's Details Phonebook");
- SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti);
- ti.uId=(UINT)GetDlgItem(hWndDlg,IDC_MULTIPLE);
- ti.lpszText=TranslateW(L"Show/Hide Multiple List");
- SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti);
- ti.uId=(UINT)GetDlgItem(hWndDlg,IDC_COUNT);
- ti.lpszText=TranslateW(L"Shows How Much Chars You've Typed");
- SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti);
- }
- {
- RECT rcWin,rcList;
- GetWindowRect(hWndDlg,&rcWin);
- GetWindowRect(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&rcList);
- SetWindowPos(hWndDlg,0,rcWin.left,rcWin.top,rcWin.right-rcWin.left - (rcList.right-rcList.left) - 10,rcWin.bottom - rcWin.top,SWP_NOZORDER|SWP_NOMOVE);
- }
-
- SendSMSWindowUpdateAccountList(hWndDlg);
-
- {
- WCHAR wszSign[1024];
- SIZE_T dwSignLen;
-
- if (DB_SMS_GetByte(NULL,"UseSignature",SMS_DEFAULT_USESIGNATURE))
- if (DB_SMS_GetStaticStringW(NULL,"Signature",wszSign,SIZEOF(wszSign),&dwSignLen))
- {
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_MESSAGE,wszSign);
-
- if (DB_SMS_GetByte(NULL,"SignaturePos",SMS_DEFAULT_SIGNATUREPOS)) SEND_DLG_ITEM_MESSAGEW(hWndDlg,IDC_MESSAGE,EM_SETSEL,dwSignLen,dwSignLen);
- EnableWindow(GetDlgItem(hWndDlg,IDOK),dwSignLen);
- }
-
- mir_sntprintf(wszSign,SIZEOF(wszSign),L"%d/%d",dwSignLen,GetSMSMessageLenMax(hWndDlg));
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_COUNT,wszSign);
- }
-
- if (Utils_RestoreWindowPosition(hWndDlg,(DB_SMS_GetByte(NULL,"SavePerContact",0)? psswdWindowData->hMyContact:NULL),PROTOCOL_NAMEA,"send"))
- {// def pos
- SetWindowPos(hWndDlg,0,200,200,400,350,SWP_NOZORDER);
- }
- InvalidateRect(GetDlgItem(hWndDlg,IDC_MESSAGE),NULL,FALSE);
- return(TRUE);
- case WM_GETMINMAXINFO:
- if (psswdWindowData->bMultiple)
- {
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x=461;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y=230;
- }else{
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.x=300;
- ((LPMINMAXINFO)lParam)->ptMinTrackSize.y=230;
- }
- break;
- case WM_SIZE:
- {
- int cx,cy;
- RECT rcWin;
- GetWindowRect(hWndDlg,&rcWin);
- if (psswdWindowData->bMultiple)
- {
- cx=rcWin.right-rcWin.left-181;
- cy=rcWin.bottom-rcWin.top;
- }else{
- cx=rcWin.right-rcWin.left;
- cy=rcWin.bottom-rcWin.top;
- }
- SetWindowPos(GetDlgItem(hWndDlg,IDC_MESSAGE),0,0,0,cx - 14,cy - 132,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_NAME),0,0,0,(cx*35)/100,20,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ACCOUNTS),0,0,0,(cx*35)/100,20,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ADDRESS),0,cx - (cx*35)/100 - 11,5,(cx*35)/100,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ST_ADDRESS),0,cx - (cx*35)/100 - 68,5,50,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_MULTIPLE),0,cx - ((cx*35)/100 + 35)/2 - 11,30,((cx*35)/100 + 35)/2,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_SAVENUMBER),0,cx - (cx*35)/100 - 58,30,((cx*35)/100 + 35)/2,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_HISTORY),0,0,0,20,20,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_COUNT),0,cx - 61,52,50,15,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ST_CHARS),0,cx - 106,52,40,15,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_ADDNUMBER),0,cx,5,170,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),0,cx,25,170,cy - 90,SWP_NOZORDER);
- //SetWindowPos(GetDlgItem(hWndDlg,IDC_REMOVENUMBER),0,cx,cy - 110 + 25,170,20,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDOK),0,cx/2 - 87,cy - 60,80,25,SWP_NOZORDER);
- SetWindowPos(GetDlgItem(hWndDlg,IDCANCEL),0,cx/2 + 7,cy - 60,80,25,SWP_NOZORDER);
- RedrawWindow(hWndDlg,NULL,NULL,RDW_FRAME|RDW_INVALIDATE);
- }
- break;
- case WM_TIMER:
- if (wParam==TIMERID_MSGSEND)
- {
- HWND hwndTimeOut;
- WCHAR wszMessage[1028],wszPhone[MAX_PHONE_LEN];
-
- if (psswdWindowData->bMultiple)
- {
- TVITEM tvi;
- tvi.mask=TVIF_TEXT;
- tvi.hItem=SendSMSWindowHItemSendGet(hWndDlg);
- tvi.pszText=wszPhone;
- tvi.cchTextMax=SIZEOF(wszPhone);
- TreeView_GetItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&tvi);
- }else{
- GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,SIZEOF(wszPhone));
- }
- mir_sntprintf(wszMessage,SIZEOF(wszMessage),TranslateW(L"The SMS message send to %s timed out."),wszPhone);
- KillTimer(hWndDlg,wParam);
- ShowWindow(hWndDlg,SW_SHOWNORMAL);
- EnableWindow(hWndDlg,FALSE);
- hwndTimeOut=CreateDialog(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDD_SENDSMSTIMEDOUT),hWndDlg,SMSTimedOutDlgProc);
- SET_DLG_ITEM_TEXTW(hwndTimeOut,IDC_STATUS,wszMessage);
- }
- break;
- case WM_CTLCOLOREDIT:
- if ((HWND)lParam==GetDlgItem(hWndDlg,IDC_MESSAGE))
- {
- COLORREF colour;
-
- LoadMsgDlgFont(MSGFONTID_MESSAGEAREA,NULL,&colour);
- SetTextColor((HDC)wParam,colour);
- SetBkColor((HDC)wParam,DBGetContactSettingDword(NULL,SRMMMOD,SRMSGSET_INPBKGCOLOUR,SRMSGDEFSET_BKGCOLOUR));
- return((BOOL)psswdWindowData->hBkgBrush);
- }
- break;
- case DM_TIMEOUTDECIDED:
- EnableWindow(hWndDlg,TRUE);
- switch(wParam){
- case TIMEDOUT_CANCEL:
- if (psswdWindowData->bMultiple)
- {
- if (SendSMSWindowNextHItemGet(hWndDlg,psswdWindowData->hItemSend))
- {
- psswdWindowData->hItemSend=SendSMSWindowNextHItemGet(hWndDlg,psswdWindowData->hItemSend);
- SendSMSWindowNext(hWndDlg);
- }else{
- SendSMSWindowRemove(hWndDlg);
- }
- }else{
- EnableWindow(GetDlgItem(hWndDlg,IDOK),TRUE);
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,EM_SETREADONLY,FALSE,0);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ACCOUNTS),TRUE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ADDRESS),TRUE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_SAVENUMBER),TRUE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_MULTIPLE),TRUE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),TRUE);
- if (psswdWindowData->hMyContact==NULL) EnableWindow(GetDlgItem(hWndDlg,IDC_NAME),TRUE);
- SetFocus(GetDlgItem(hWndDlg,IDC_MESSAGE));
- psswdWindowData->hItemSend=NULL;
- }
- break;
- case TIMEDOUT_RETRY:
- {
- WCHAR wszPhone[MAX_PHONE_LEN];
- LPWSTR lpwszMessage;
- SIZE_T dwPhoneSize,dwMessageSize;
-
- dwMessageSize=GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE);
- lpwszMessage=(LPWSTR)MEMALLOC(((dwMessageSize+4)*sizeof(WCHAR)));
- if (lpwszMessage)
- {
- if (psswdWindowData->bMultiple)
- {
- TVITEM tvi;
- tvi.mask=TVIF_TEXT;
- tvi.hItem=psswdWindowData->hItemSend;
- tvi.pszText=wszPhone;
- tvi.cchTextMax=SIZEOF(wszPhone);
- TreeView_GetItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&tvi);
- dwPhoneSize=lstrlenW(wszPhone);
- }else{
- dwPhoneSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,SIZEOF(wszPhone));
- }
- dwMessageSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_MESSAGE,lpwszMessage,(dwMessageSize+2));
- SendSMSWindowNumberSet(hWndDlg,wszPhone,dwPhoneSize);
- StartSmsSend(hWndDlg,SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_GETCURSEL,0,0),wszPhone,dwPhoneSize,lpwszMessage,dwMessageSize);
- MEMFREE(lpwszMessage);
- }
- }
- SetTimer(hWndDlg,TIMERID_MSGSEND,TIMEOUT_MSGSEND,NULL);
- break;
- }
- break;
- case WM_COMMAND:
- switch(LOWORD(wParam)){
- case IDC_MULTIPLE:
- SendSMSWindowMultipleSet(hWndDlg,!psswdWindowData->bMultiple);
- break;
- case IDC_ADDNUMBER:
- {
- WCHAR wszPhone[MAX_PHONE_LEN];
- if (IsPhoneW(wszPhone,GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,SIZEOF(wszPhone))))
- {
- TVINSERTSTRUCT tvis={0};
-
- tvis.item.mask=(TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE);
- tvis.hInsertAfter=TVI_SORT;
- tvis.item.pszText=wszPhone;
- TreeView_InsertItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&tvis);
- }else{
- MessageBox(hWndDlg,TranslateW(L"The phone szPhone should start with a + and consist of numbers, spaces, brackets and hyphens only."),TranslateW(L"Invalid Phone Number"),MB_OK);
- }
- }
- break;
- case IDC_HISTORY:
- CallService(MS_HISTORY_SHOWCONTACTHISTORY,(WPARAM)psswdWindowData->hMyContact,0);
- break;
- case IDOK:
- if ((SIZE_T)GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE) > GetSMSMessageLenMax(hWndDlg))
- {
- MessageBox(hWndDlg,TranslateW(L"Message is too long, press OK to continue."),TranslateW(L"Error - Message too long"),MB_OK);
- }else{
- if (psswdWindowData->bMultiple)
- {
- HTREEITEM hItem=SendSMSWindowNextHItemGet(hWndDlg,TreeView_GetRoot(GetDlgItem(hWndDlg,IDC_NUMBERSLIST)));
- if (hItem)
- {
- psswdWindowData->hItemSend=hItem;
- EnableWindow(GetDlgItem(hWndDlg,IDOK),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_SAVENUMBER),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_NAME),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_MULTIPLE),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ADDNUMBER),FALSE);
- //EnableWindow(GetDlgItem(hWndDlg,IDC_REMOVENUMBER),FALSE);
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,EM_SETREADONLY,TRUE,0);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ACCOUNTS),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ADDRESS),FALSE);
- SendSMSWindowNext(hWndDlg);
- }else{
- MessageBox(hWndDlg,TranslateW(L"There must be numbers in the list first."),TranslateW(L"No Numbers"),MB_OK);
- }
- }else{
- WCHAR wszPhone[MAX_PHONE_LEN];
- SIZE_T dwPhoneSize;
-
- dwPhoneSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,SIZEOF(wszPhone));
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- LPWSTR lpwszMessage;
- SIZE_T dwMessageSize;
-
- dwMessageSize=GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE);
- lpwszMessage=(LPWSTR)MEMALLOC((dwMessageSize+4)*sizeof(WCHAR));
- if (lpwszMessage)
- {
- dwMessageSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_MESSAGE,lpwszMessage,(dwMessageSize+2));
- SendSMSWindowNumberSet(hWndDlg,wszPhone,dwPhoneSize);
- EnableWindow(GetDlgItem(hWndDlg,IDOK),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_SAVENUMBER),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_NAME),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_MULTIPLE),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ACCOUNTS),FALSE);
- EnableWindow(GetDlgItem(hWndDlg,IDC_ADDRESS),FALSE);
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,EM_SETREADONLY,TRUE,0);
- StartSmsSend(hWndDlg,SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_GETCURSEL,0,0),wszPhone,dwPhoneSize,lpwszMessage,dwMessageSize);
- SetTimer(hWndDlg,TIMERID_MSGSEND,TIMEOUT_MSGSEND,NULL);
-
- MEMFREE(lpwszMessage);
- }
- }else{
- MessageBox(hWndDlg,TranslateW(L"Valid phone numbers are of the form '+(country code)(phone szPhone)'. The contents of the phone szPhone portion is dependent on the national layout of phone numbers, but often omits the leading zero."),TranslateW(L"Invalid phone number"),MB_OK);
- SetFocus(GetDlgItem(hWndDlg,IDC_ADDRESS));
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ADDRESS,CB_SETEDITSEL,0,MAKELPARAM(0,-1));
- }
- }
- }
- break;
- case IDCANCEL:
- DeleteObject((HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_GETFONT,0,0));
- KillTimer(GetParent(hWndDlg),TIMERID_MSGSEND);
- SendSMSWindowRemove(hWndDlg);
- break;
- case IDC_MESSAGE:
- if (HIWORD(wParam)==EN_CHANGE)
- {
- WCHAR wszBuff[MAX_PATH];
- SIZE_T dwMessageSize=GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE);
-
- EnableWindow(GetDlgItem(hWndDlg,IDOK),dwMessageSize);
- mir_sntprintf(wszBuff,SIZEOF(wszBuff),L"%d/%d",dwMessageSize,GetSMSMessageLenMax(hWndDlg));
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_COUNT,wszBuff);
- }
- break;
- case IDC_SAVENUMBER:
- {
- BOOL bCont=TRUE;
- char szBuff[MAX_PATH];
- WCHAR wszPhone[MAX_PHONE_LEN];
- SIZE_T dwPhoneSize;
- DBVARIANT dbv;
-
- dwPhoneSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_ADDRESS,wszPhone,(SIZEOF(wszPhone)-4));
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- if (IsContactPhone(psswdWindowData->hMyContact,wszPhone,dwPhoneSize)==FALSE)
- {
- lstrcatW(wszPhone,L" SMS");
- for(DWORD i=0;bCont;i++)
- {
- mir_snprintf(szBuff,SIZEOF(szBuff),"MyPhone%d",i);
- if (DBGetContactSetting(psswdWindowData->hMyContact,"UserInfo",szBuff,&dbv)) bCont=FALSE;
- DBFreeVariant(&dbv);
- }
- DB_SetStringW(psswdWindowData->hMyContact,"UserInfo",szBuff,wszPhone);
- }
- }else{
- MessageBox(hWndDlg,TranslateW(L"The phone szPhone should start with a + and consist of numbers, spaces, brackets and hyphens only."),TranslateW(L"Invalid Phone Number"),MB_OK);
- }
- }
- break;
- case IDC_NAME:
- if (HIWORD(wParam)==CBN_SELCHANGE)
- {
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ADDRESS,CB_RESETCONTENT,0,0);
- if (SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_NAME,CB_GETCURSEL,0,0))
- {
- HANDLE hContact=SendSMSWindowSMSContactGet(hWndDlg,(SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_NAME,CB_GETCURSEL,0,0)-1));
- if (hContact) AddContactPhonesToCombo(hWndDlg,hContact);
- }
- }
- break;
- }
- break;
- case WM_NOTIFY:
- switch(((NMHDR*)lParam)->idFrom){
- case IDC_NUMBERSLIST:
- switch(((NMHDR*)lParam)->code){
- case NM_CLICK:
- {
- int iImage,iSame=1;
- HWND hWndTree=GetDlgItem(hWndDlg,IDC_NUMBERSLIST);
- TVITEM tvi={0};
- HTREEITEM hParent;
- TVHITTESTINFO hti={0};
-
- hti.pt.x=(short)LOWORD(GetMessagePos());
- hti.pt.y=(short)HIWORD(GetMessagePos());
- ScreenToClient(((LPNMHDR)lParam)->hwndFrom,&hti.pt);
-
- if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom,&hti))
- if (hti.flags&TVHT_ONITEMICON)
- {
- tvi.mask=(TVIF_IMAGE|TVIF_SELECTEDIMAGE);
- tvi.hItem=hti.hItem;
- TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- iImage=tvi.iImage=tvi.iSelectedImage=!tvi.iImage;
- TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
-
- if (TreeView_GetParent(hWndTree,hti.hItem))
- {
- hParent=TreeView_GetParent(hWndTree,hti.hItem);
- for(tvi.hItem=TreeView_GetChild(hWndTree,hParent);tvi.hItem;tvi.hItem=TreeView_GetNextSibling(hWndTree,tvi.hItem))
- {
- TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- if (tvi.iImage!=iImage)
- {
- iSame=0;
- break;
- }
- }
- tvi.hItem=hParent;
- tvi.iImage=tvi.iSelectedImage=((iSame==1)? iImage:2);
- TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- }else{
- for(tvi.hItem=TreeView_GetChild(hWndTree,hti.hItem);tvi.hItem;tvi.hItem=TreeView_GetNextSibling(hWndTree,tvi.hItem))
- {
- TreeView_GetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- tvi.iImage=tvi.iSelectedImage=iImage;
- TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom,&tvi);
- }
- }
- }
- }
- break;
- }
- }
- break;
- case WM_CLOSE:
- DeleteObject((HFONT)SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_MESSAGE,WM_GETFONT,0,0));
- DeleteObject(psswdWindowData->hBkgBrush);
- RemWinHandle(GetDlgItem(hWndDlg,IDC_MESSAGE));
- KillTimer(GetParent(hWndDlg),TIMERID_MSGSEND);
- SendSMSWindowRemove(hWndDlg);
- break;
- }
-return(FALSE);
-}
-
-BOOL CALLBACK SMSTimedOutDlgProc(HWND hWndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
-{
- switch(msg){
- case WM_INITDIALOG:
- {
- RECT rc,rcParent;
- TranslateDialogDefault(hWndDlg);
- GetWindowRect(hWndDlg,&rc);
- GetWindowRect(GetParent(hWndDlg),&rcParent);
- SetWindowPos(hWndDlg,0,(rcParent.left+rcParent.right-(rc.right-rc.left))/2,(rcParent.top+rcParent.bottom-(rc.bottom-rc.top))/2,0,0,SWP_NOZORDER|SWP_NOSIZE);
- KillTimer(GetParent(hWndDlg),TIMERID_MSGSEND);
- }
- return(TRUE);
- case WM_COMMAND:
- switch(LOWORD(wParam)){
- case IDOK:
- SendMessage(GetParent(hWndDlg),DM_TIMEOUTDECIDED,TIMEDOUT_RETRY,0);
- DestroyWindow(hWndDlg);
- break;
- case IDCANCEL:
- SendMessage(GetParent(hWndDlg),DM_TIMEOUTDECIDED,TIMEDOUT_CANCEL,0);
- DestroyWindow(hWndDlg);
- break;
- }
- break;
- }
-return(FALSE);
-}
-
-BOOL CALLBACK SMSAcceptedDlgProc(HWND hWndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
-{
- switch(msg){
- case WM_INITDIALOG:
- {
- RECT rc,rcParent;
- TranslateDialogDefault(hWndDlg);
- GetWindowRect(hWndDlg,&rc);
- GetWindowRect(GetParent(hWndDlg),&rcParent);
- SetWindowPos(hWndDlg,0,(rcParent.left+rcParent.right-(rc.right-rc.left))/2,(rcParent.top+rcParent.bottom-(rc.bottom-rc.top))/2,0,0,SWP_NOZORDER|SWP_NOSIZE);
- }
- return(TRUE);
- case WM_COMMAND:
- switch(LOWORD(wParam)){
- case IDOK:
- SendSMSWindowRemove(GetParent(hWndDlg));
- DestroyWindow(hWndDlg);
- break;
- }
- break;
- }
-return(FALSE);
-}
-
-//SMS Send window list functions
-
-//This function create a new SMS send window, and insert it to the list.
-//The function gets void and return the window HWND
-HWND SendSMSWindowAdd(HANDLE hContact)
-{
- HWND hRet=NULL;
- SEND_SMS_WINDOW_DATA *psswdWindowData;
-
- psswdWindowData=(SEND_SMS_WINDOW_DATA*)MEMALLOC(sizeof(SEND_SMS_WINDOW_DATA));
- if (psswdWindowData)
- {
- psswdWindowData->hMyContact=hContact;
- psswdWindowData->hWnd=CreateDialogParam(ssSMSSettings.hInstance,MAKEINTRESOURCE(IDD_SENDSMS),NULL,SendSmsDlgProc,(LPARAM)psswdWindowData);
- if (psswdWindowData->hWnd)
- {
- WCHAR wszTitle[MAX_PATH];
- LPWSTR lpwszContactDisplayName;
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTItemAdd(&ssSMSSettings.lmtSendSMSWindowsListMT,&psswdWindowData->lmtListMTItem,psswdWindowData);
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
-
- lpwszContactDisplayName=GetContactNameW(hContact);
- mir_sntprintf(wszTitle,SIZEOF(wszTitle),L"%s - %s",lpwszContactDisplayName,TranslateW(L"Send SMS"));
- SendMessageW(psswdWindowData->hWnd,WM_SETTEXT,NULL,(LPARAM)wszTitle);
- SEND_DLG_ITEM_MESSAGEW(psswdWindowData->hWnd,IDC_NAME,CB_ADDSTRING,0,(LPARAM)lpwszContactDisplayName);
- SEND_DLG_ITEM_MESSAGE(psswdWindowData->hWnd,IDC_NAME,CB_SETCURSEL,0,0);
- AddContactPhonesToCombo(psswdWindowData->hWnd,hContact);
- SetFocus(GetDlgItem(psswdWindowData->hWnd,IDC_MESSAGE));
- hRet=psswdWindowData->hWnd;
- }else{
- MEMFREE(psswdWindowData);
- }
- }
-return(hRet);
-}
-
-//This function close the SMS send window that given, and remove it from the list.
-//The function gets the HWND of the window that should be removed and return void
-void SendSMSWindowRemove(HWND hWndDlg)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- {
- DB_SMS_SetDword(NULL,"LastProto",SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_GETCURSEL,0,0));
- SendSMSWindowMultipleSet(hWndDlg,FALSE);
- Utils_SaveWindowPosition(hWndDlg,(DB_SMS_GetByte(NULL,"SavePerContact",0)? psswdWindowData->hMyContact:NULL),PROTOCOL_NAMEA,"send");
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTItemDelete(&ssSMSSettings.lmtSendSMSWindowsListMT,&psswdWindowData->lmtListMTItem);
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- SendSMSWindowSMSContactsRemove(hWndDlg);
- MEMFREE(psswdWindowData->pdbei);
- MEMFREE(psswdWindowData);
- }
- DestroyWindow(hWndDlg);
-}
-
-//This function return the contact HANDLE for the given to the SMS send window.
-//The function gets the HWND of the window and return the HANDLE of the contact.
-HANDLE SendSMSWindowHContactGet(HWND hWndDlg)
-{
- HANDLE hRet=NULL;
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData) hRet=psswdWindowData->hMyContact;
-return(hRet);
-}
-
-//This function set the contact info of the person we send him the in the given to the SMS send window.
-//The function gets the HWND of the window and the HANDLE of the contact and return void
-void SendSMSWindowHContactSet(HWND hWndDlg,HANDLE hContact)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
- if (psswdWindowData) psswdWindowData->hMyContact=hContact;
-}
-
-//This function return the HWND of a SMS send window that have the same process as given.
-//The function gets the HANDLE of a process and return the HWND of the SMS send window that has
-//the same process
-HWND SendSMSWindowHwndByHProcessGet(HANDLE hProcess)
-{
- HWND hRet=NULL;
- SEND_SMS_WINDOW_DATA *psswdWindowData;
- LIST_MT_ITERATOR lmtiIterator;
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTIteratorMoveFirst(&ssSMSSettings.lmtSendSMSWindowsListMT,&lmtiIterator);
- do
- {// цикл
- if (ListMTIteratorGet(&lmtiIterator,NULL,(LPVOID*)&psswdWindowData)==NO_ERROR)
- if (psswdWindowData->hProcess==hProcess)
- {
- hRet=psswdWindowData->hWnd;
- break;
- }
- }while(ListMTIteratorMoveNext(&lmtiIterator));
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
-return(hRet);
-}
-
-//This function set the process info of the send procedure we sent with the given SMS send window.
-//The function gets the HWND of the window and the HANDLE of the process and return void
-void SendSMSWindowHProcessSet(HWND hWndDlg,HANDLE hProcess)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
- if (psswdWindowData) psswdWindowData->hProcess=hProcess;
-}
-
-//
-BOOL SendSMSWindowMultipleGet(HWND hWndDlg)
-{
- BOOL bRet=FALSE;
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData) bRet=psswdWindowData->bMultiple;
-return(bRet);
-}
-
-//
-void SendSMSWindowMultipleSet(HWND hWndDlg,BOOL bMultiple)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- if (psswdWindowData->bMultiple!=bMultiple)
- {
- RECT rcWin,rcList;
- WINDOWPLACEMENT wp;
-
- psswdWindowData->bMultiple=bMultiple;
- wp.length=sizeof(WINDOWPLACEMENT);
- GetWindowRect(hWndDlg,&rcWin);
- GetWindowRect(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&rcList);
- GetWindowPlacement(hWndDlg,&wp);
-
- if (bMultiple)
- {
- SendSMSWindowFillTreeView(hWndDlg);
-
- EnableWindow(GetDlgItem(hWndDlg,IDC_SAVENUMBER),FALSE);
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_MULTIPLE,TranslateW(L"<< Single"));
- if (wp.showCmd==SW_MAXIMIZE) SetWindowPos(hWndDlg,0,0,0,rcWin.right - rcWin.left - (rcList.right - rcList.left + 11) ,rcWin.bottom - rcWin.top,SWP_NOZORDER|SWP_NOMOVE);
- SetWindowPos(hWndDlg,0,rcWin.left,rcWin.top,rcWin.right - rcWin.left + (rcList.right-rcList.left) + 11,rcWin.bottom - rcWin.top,SWP_NOZORDER|SWP_NOMOVE);
- }else{
- if (psswdWindowData->hMyContact) AddContactPhonesToCombo(hWndDlg,psswdWindowData->hMyContact);
-
- EnableWindow(GetDlgItem(hWndDlg,IDC_SAVENUMBER),TRUE);
- SET_DLG_ITEM_TEXTW(hWndDlg,IDC_MULTIPLE,TranslateW(L"Multiple >>"));
- SetWindowPos(hWndDlg,0,rcWin.left,rcWin.top,rcWin.right-rcWin.left - (rcList.right-rcList.left) - 11,rcWin.bottom - rcWin.top,SWP_NOZORDER|SWP_NOMOVE);
- if (wp.showCmd==SW_MAXIMIZE) SetWindowPos(hWndDlg,0,0,0,rcWin.right - rcWin.left + (rcList.right - rcList.left + 11) ,rcWin.bottom - rcWin.top,SWP_NOZORDER|SWP_NOMOVE);
- }
- }
-}
-
-//
-void SendSMSWindowNumberSet(HWND hWndDlg,LPWSTR lpwszPhone,SIZE_T dwPhoneSize)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- if (psswdWindowData->bMultiple)
- {
- psswdWindowData->hContact=psswdWindowData->hMyContact;
- }else{
- psswdWindowData->hContact=HContactFromPhone(lpwszPhone,dwPhoneSize);
- }
-}
-
-//
-void SendSMSWindowAsSentSet(HWND hWndDlg)
-{
-// LVITEM lvi;
-// char szPhone[MAX_PHONE_LEN];
-// lvi.mask=LVIF_TEXT|LVIF_IMAGE;
-// lvi.iItem=GetSendSMSWindowSMSSend(hWndDlg) - 1;
-// lvi.iSubItem=0;
-// ListView_GetItemText(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),GetSendSMSWindowSMSSend(hWndDlg) - 1,0,szPhone,sizeof(szPhone));
-// lvi.pszText=szPhone;
-// lvi.iImage=2;
-// ListView_SetItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&lvi);
-// ListView_RedrawItems(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),0,ListView_GetItemCount(GetDlgItem(hWndDlg,IDC_NUMBERSLIST)) - 1);
-}
-
-//This function set the databsae info of the sent message we sent with the SMS send window.
-//The function gets the HWND of the window and the DBEI of the database information of the message
-//and return void
-void SendSMSWindowDbeiSet(HWND hWndDlg,DBEVENTINFO *pdbei)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
- if (psswdWindowData) psswdWindowData->pdbei=pdbei;
-}
-
-//This function get a HWND of SMS send window and add its database information into Miranda-IM database
-//The function gets the HWND of the window and return void
-//and return void
-void SendSMSWindowDBAdd(HWND hWndDlg)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- {
- psswdWindowData->pdbei->cbSize=sizeof(DBEVENTINFO);
- psswdWindowData->pdbei->szModule=GetModuleName(psswdWindowData->hContact);
-
- CallService(MS_DB_EVENT_ADD,(WPARAM)psswdWindowData->hContact,(LPARAM)psswdWindowData->pdbei);
- MEMFREE(psswdWindowData->pdbei);
- }
-}
-
-//
-void SendSMSWindowHItemSendSet(HWND hWndDlg,HTREEITEM hItemSend)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
- if (psswdWindowData) psswdWindowData->hItemSend=hItemSend;
-}
-
-//
-HTREEITEM SendSMSWindowHItemSendGet(HWND hWndDlg)
-{
- HTREEITEM hRet=NULL;
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData) hRet=psswdWindowData->hItemSend;
-return(hRet);
-}
-
-//
-HTREEITEM SendSMSWindowNextHItemGet(HWND hWndDlg,HTREEITEM hItem)
-{
- int isFound=0;
- HWND hWndTree=GetDlgItem(hWndDlg,IDC_NUMBERSLIST);
- TVITEM tvi;
- HTREEITEM hItemNext,hItemChild;
-
- if (hItem==TreeView_GetRoot(hWndTree)) isFound=1;
-
- for(hItemNext=TreeView_GetRoot(hWndTree);hItemNext;hItemNext=TreeView_GetNextSibling(hWndTree,hItemNext))
- {
- if ((hItem==hItemNext) && (hItem!=TreeView_GetRoot(hWndTree)))
- {
- isFound=1;
- continue;
- }
-
- tvi.mask=(TVIF_IMAGE|TVIF_SELECTEDIMAGE);
- tvi.hItem=hItemNext;
- tvi.iImage=0;
- tvi.iSelectedImage=0;
- TreeView_GetItem(hWndTree,&tvi);
-
- if (tvi.iImage || tvi.iSelectedImage)
- if (TreeView_GetChild(hWndTree,hItemNext))
- {
- for (hItemChild=TreeView_GetChild(hWndTree,hItemNext);hItemChild;hItemChild=TreeView_GetNextSibling(hWndTree,hItemChild))
- {
- if (hItem==hItemChild)
- {
- isFound=1;
- continue;
- }
-
- tvi.mask=(TVIF_IMAGE|TVIF_SELECTEDIMAGE);
- tvi.hItem=hItemChild;
- tvi.iImage=0;
- tvi.iSelectedImage=0;
- TreeView_GetItem(hWndTree,&tvi);
-
- if (tvi.iImage || tvi.iSelectedImage)
- if (isFound)
- {
- return(hItemChild);
- }else{
- continue;
- }
- }
- }else{
- if (isFound)
- {
- return(hItemNext);
- }else{
- continue;
- }
- }
- }
-return(NULL);
-}
-
-//This function get the HANDLE of an user. if there is already a SMS send window for this contact
-//it return its HWND else the function return NULL.
-//The function gets the HANDLE of a contact and return HWND
-HWND SendSMSWindowIsOtherInstanceHContact(HANDLE hContact)
-{
- HWND hRet=NULL;
- SEND_SMS_WINDOW_DATA *psswdWindowData;
- LIST_MT_ITERATOR lmtiIterator;
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTIteratorMoveFirst(&ssSMSSettings.lmtSendSMSWindowsListMT,&lmtiIterator);
- do
- {// цикл
- if (ListMTIteratorGet(&lmtiIterator,NULL,(LPVOID*)&psswdWindowData)==NO_ERROR)
- if (psswdWindowData->hMyContact==hContact)
- {
- hRet=psswdWindowData->hWnd;
- break;
- }
- }while(ListMTIteratorMoveNext(&lmtiIterator));
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
-return(hRet);
-}
-
-
-//
-void SendSMSWindowNext(HWND hWndDlg)
-{
- WCHAR wszPhone[MAX_PHONE_LEN];
- LPWSTR lpwszMessage;
- SIZE_T dwPhoneSize,dwMessageSize;
- TVITEM tvi={0};
-
- dwMessageSize=GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE);
- lpwszMessage=(LPWSTR)MEMALLOC(((dwMessageSize+4)*sizeof(WCHAR)));
- if (lpwszMessage)
- {
- dwMessageSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_MESSAGE,lpwszMessage,(dwMessageSize+2));
-
- // if (SendSMSWindowNextHItemGet(hWndDlg,SendSMSWindowHItemSendGet(hWndDlg))==NULL) SendSMSWindowMultipleSet(hWndDlg,FALSE);
- tvi.mask=TVIF_TEXT;
- tvi.hItem=SendSMSWindowHItemSendGet(hWndDlg);
- tvi.pszText=wszPhone;
- tvi.cchTextMax=SIZEOF(wszPhone);
- TreeView_GetItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),&tvi);
- TreeView_SelectItem(GetDlgItem(hWndDlg,IDC_NUMBERSLIST),tvi.hItem);
- dwPhoneSize=lstrlenW(wszPhone);
- SendSMSWindowNumberSet(hWndDlg,wszPhone,dwPhoneSize);
- StartSmsSend(hWndDlg,SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_GETCURSEL,0,0),wszPhone,dwPhoneSize,lpwszMessage,dwMessageSize);
- SetTimer(hWndDlg,TIMERID_MSGSEND,TIMEOUT_MSGSEND,NULL);
- MEMFREE(lpwszMessage);
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-//This function gets a HANDLE of a contact and add it to a list.
-void SendSMSWindowSMSContactAdd(HWND hWndDlg,HANDLE hContact)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- {
- psswdWindowData->dwContactsListCount++;
- if (psswdWindowData->phContactsList)
- {
- psswdWindowData->phContactsList=(HANDLE*)MEMREALLOC(psswdWindowData->phContactsList,(sizeof(HANDLE)*psswdWindowData->dwContactsListCount));
- }else{
- psswdWindowData->phContactsList=(HANDLE*)MEMALLOC((sizeof(HANDLE)*psswdWindowData->dwContactsListCount));
- }
- *(psswdWindowData->phContactsList+psswdWindowData->dwContactsListCount-1)=hContact;
- }
-}
-
-//This function gets the number of the given contact in the combo list and return its contact.
-HANDLE SendSMSWindowSMSContactGet(HWND hWndDlg,SIZE_T iNum)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- {
- return(*((psswdWindowData->phContactsList)+iNum));
- }
-return(NULL);
-}
-
-void SendSMSWindowSMSContactsRemove(HWND hWndDlg)
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData=GET_WINDOW_DATA(hWndDlg);
-
- if (psswdWindowData)
- {
- MEMFREE(psswdWindowData->phContactsList);
- psswdWindowData->dwContactsListCount=0;
- }
-}
-
-void SendSMSWindowUpdateAccountList(HWND hWndDlg)
-{
- if (ssSMSSettings.ppaSMSAccounts && ssSMSSettings.dwSMSAccountsCount)
- {
- SIZE_T i,dwCurSel;
-
- dwCurSel=SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_GETCURSEL,0,0);
- if (dwCurSel==-1) dwCurSel=DB_SMS_GetDword(NULL,"LastProto",0);
- if (dwCurSel==-1) dwCurSel=0;
-
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_RESETCONTENT,0,0);
- for(i=0;i<ssSMSSettings.dwSMSAccountsCount;i++)
- {
- SEND_DLG_ITEM_MESSAGEA(hWndDlg,IDC_ACCOUNTS,CB_ADDSTRING,0,(LPARAM)ssSMSSettings.ppaSMSAccounts[i]->szModuleName);
- }
- SEND_DLG_ITEM_MESSAGE(hWndDlg,IDC_ACCOUNTS,CB_SETCURSEL,(WPARAM)dwCurSel,0);
- }
-}
-
-
-void SendSMSWindowsUpdateAllAccountLists()
-{
- SEND_SMS_WINDOW_DATA *psswdWindowData;
- LIST_MT_ITERATOR lmtiIterator;
-
- ListMTLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
- ListMTIteratorMoveFirst(&ssSMSSettings.lmtSendSMSWindowsListMT,&lmtiIterator);
- do
- {// цикл
- if (ListMTIteratorGet(&lmtiIterator,NULL,(LPVOID*)&psswdWindowData)==NO_ERROR)
- {
- SendSMSWindowUpdateAccountList(psswdWindowData->hWnd);
- }
- }while(ListMTIteratorMoveNext(&lmtiIterator));
- ListMTUnLock(&ssSMSSettings.lmtSendSMSWindowsListMT);
-}
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////////////////////////////////////////////////
-
-
-
-
-void AddContactPhonesToComboToListParam(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,HWND hWndList)
-{
- char szBuff[MAX_PATH];
- WCHAR wszPhone[MAX_PHONE_LEN],wszPhoneRaw[MAX_PHONE_LEN];
- SIZE_T i,dwPhoneSize;
-
- if (DB_GetStaticStringW(hContact,lpszModule,lpszValueName,wszPhoneRaw,SIZEOF(wszPhoneRaw),&dwPhoneSize))
- {
- wszPhone[0]='+';
- dwPhoneSize=CopyNumberW((wszPhone+1),wszPhoneRaw,dwPhoneSize);
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- if (SendMessage(hWndList,CB_FINDSTRING,-1,(LPARAM)wszPhone)==CB_ERR) SendMessage(hWndList,CB_ADDSTRING,0,(LPARAM)wszPhone);
- }
- }
-
- for (i=0;TRUE;i++)
- {
- mir_snprintf(szBuff,sizeof(szBuff),"%s%ld",lpszValueName,i);
- if (DB_GetStaticStringW(hContact,lpszModule,szBuff,wszPhoneRaw,SIZEOF(wszPhoneRaw),&dwPhoneSize))
- {
- wszPhone[0]='+';
- dwPhoneSize=CopyNumberW((wszPhone+1),wszPhoneRaw,dwPhoneSize);
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- if (SendMessage(hWndList,CB_FINDSTRING,-1,(LPARAM)wszPhone)==CB_ERR) SendMessage(hWndList,CB_ADDSTRING,0,(LPARAM)wszPhone);
- }
- }else{
- if (i>PHONES_MIN_COUNT) break;
- }
- }
-}
-
-
-void AddContactPhonesToCombo(HWND hWnd,HANDLE hContact)
-{
- HWND hWndList;
- LPSTR lpszProto;
-
- hWndList=GetDlgItem(hWnd,IDC_ADDRESS);
- SEND_DLG_ITEM_MESSAGE(hWnd,IDC_ADDRESS,CB_RESETCONTENT,0,0);
-
- lpszProto=(LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);
- if (lpszProto)
- {
- AddContactPhonesToComboToListParam(hContact,lpszProto,"Phone",hWndList);
- AddContactPhonesToComboToListParam(hContact,lpszProto,"Cellular",hWndList);
- AddContactPhonesToComboToListParam(hContact,lpszProto,"Fax",hWndList);
- }
- AddContactPhonesToComboToListParam(hContact,"UserInfo","MyPhone",hWndList);
- AddContactPhonesToComboToListParam(hContact,"UserInfo","Phone",hWndList);
- AddContactPhonesToComboToListParam(hContact,"UserInfo","Cellular",hWndList);
- AddContactPhonesToComboToListParam(hContact,"UserInfo","Fax",hWndList);
-
- SEND_DLG_ITEM_MESSAGE(hWnd,IDC_ADDRESS,CB_SETCURSEL,0,0);
-}
-
-
-
-void AddContactPhonesToTreeViewParam(HANDLE hContact,LPSTR lpszModule,LPSTR lpszValueName,HWND hWndList,HTREEITEM *phParent)
-{
- char szBuff[MAX_PATH];
- WCHAR wszPhone[MAX_PHONE_LEN],wszPhoneRaw[MAX_PHONE_LEN];
- SIZE_T i,dwPhoneSize;
- TVINSERTSTRUCT tvis={0};
-
- if (phParent) tvis.hParent=(*phParent);
- tvis.item.mask=(TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE);
- tvis.hInsertAfter=TVI_SORT;
- tvis.item.iImage=tvis.item.iSelectedImage=0;
-
- if (DB_GetStaticStringW(hContact,lpszModule,lpszValueName,wszPhoneRaw,SIZEOF(wszPhoneRaw),&dwPhoneSize))
- {
- wszPhone[0]='+';
- dwPhoneSize=CopyNumberW((wszPhone+1),wszPhoneRaw,dwPhoneSize);
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- if (tvis.hParent==NULL)
- {
- tvis.item.pszText=GetContactNameW(hContact);
- tvis.hParent=TreeView_InsertItem(hWndList,&tvis);
- }
- tvis.item.pszText=wszPhone;
- TreeView_InsertItem(hWndList,&tvis);
- }
- }
-
- for (i=0;TRUE;i++)
- {
- mir_snprintf(szBuff,sizeof(szBuff),"%s%ld",lpszValueName,i);
- if (DB_GetStaticStringW(hContact,lpszModule,szBuff,wszPhoneRaw,SIZEOF(wszPhoneRaw),&dwPhoneSize))
- {
- wszPhone[0]='+';
- dwPhoneSize=CopyNumberW((wszPhone+1),wszPhoneRaw,dwPhoneSize);
- if (IsPhoneW(wszPhone,dwPhoneSize))
- {
- if (tvis.hParent==NULL)
- {
- tvis.item.pszText=GetContactNameW(hContact);
- tvis.hParent=TreeView_InsertItem(hWndList,&tvis);
- }
- tvis.item.pszText=wszPhone;
- TreeView_InsertItem(hWndList,&tvis);
- }
- }else{
- if (i>PHONES_MIN_COUNT) break;
- }
- }
- if (phParent) (*phParent)=tvis.hParent;
-}
-
-
-void SendSMSWindowFillTreeView(HWND hWnd)
-{
- HWND hWndTreeView;
- LPSTR lpszProto;
- HTREEITEM hParent;
-
- hWndTreeView=GetDlgItem(hWnd,IDC_NUMBERSLIST);
- TreeView_DeleteAllItems(hWndTreeView);
-
- for(HANDLE hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDFIRST,0,0);hContact!=NULL;hContact=(HANDLE)CallService(MS_DB_CONTACT_FINDNEXT,(WPARAM)hContact,0))
- {
- hParent=NULL;
- lpszProto=(LPSTR)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)hContact,0);
- if (lpszProto)
- {
- AddContactPhonesToTreeViewParam(hContact,lpszProto,"Phone",hWndTreeView,&hParent);
- AddContactPhonesToTreeViewParam(hContact,lpszProto,"Cellular",hWndTreeView,&hParent);
- AddContactPhonesToTreeViewParam(hContact,lpszProto,"Fax",hWndTreeView,&hParent);
- }
- AddContactPhonesToTreeViewParam(hContact,"UserInfo","MyPhone",hWndTreeView,&hParent);
- AddContactPhonesToTreeViewParam(hContact,"UserInfo","Phone",hWndTreeView,&hParent);
- AddContactPhonesToTreeViewParam(hContact,"UserInfo","Cellular",hWndTreeView,&hParent);
- AddContactPhonesToTreeViewParam(hContact,"UserInfo","Fax",hWndTreeView,&hParent);
- }
-}
-
-
-SIZE_T GetSMSMessageLenMax(HWND hWndDlg)
-{
- LPWSTR lpwszMessage;
- SIZE_T dwMessageSize,dwLenght=160;
-
- dwMessageSize=GET_DLG_ITEM_TEXT_LENGTH(hWndDlg,IDC_MESSAGE);
- lpwszMessage=(LPWSTR)MEMALLOC(((dwMessageSize+4)*sizeof(WCHAR)));
- if (lpwszMessage)
- {
- dwMessageSize=GET_DLG_ITEM_TEXTW(hWndDlg,IDC_MESSAGE,lpwszMessage,(dwMessageSize+2));
- if (dwMessageSize!=WideCharToMultiByte(CP_UTF8,0,lpwszMessage,dwMessageSize,NULL,0,NULL,NULL)) dwLenght=70;
- MEMFREE(lpwszMessage);
- }
-return(dwLenght);
-}
-
-
-
-
-
-
-
-
-
-
diff --git a/plugins/!NotAdopted/SMS/senddlg.h b/plugins/!NotAdopted/SMS/senddlg.h
deleted file mode 100644
index 225cf80f28..0000000000
--- a/plugins/!NotAdopted/SMS/senddlg.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#if !defined(AFX_SMS_SENDDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
-#define AFX_SMS_SENDDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_
-
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-DWORD SendSMSWindowInitialize ();
-void SendSMSWindowDestroy ();
-
-//Decleration of SMS send window list
-BOOL CALLBACK SMSAcceptedDlgProc (HWND hWndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
-BOOL CALLBACK SMSTimedOutDlgProc (HWND hWndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
-HWND SendSMSWindowAdd (HANDLE hContact);
-void SendSMSWindowRemove (HWND hWndDlg);
-HANDLE SendSMSWindowHContactGet (HWND hWndDlg);
-void SendSMSWindowHContactSet (HWND hWndDlg,HANDLE hContact);
-HWND SendSMSWindowHwndByHProcessGet (HANDLE hProcess);
-void SendSMSWindowHProcessSet (HWND hWndDlg,HANDLE hProcess);
-BOOL SendSMSWindowMultipleGet (HWND hWndDlg);
-void SendSMSWindowMultipleSet (HWND hWndDlg,BOOL bMultiple);
-void SendSMSWindowNumberSet (HWND hWndDlg,LPWSTR lpwszPhone,SIZE_T dwPhoneSize);
-void SendSMSWindowAsSentSet (HWND hWndDlg);
-void SendSMSWindowDbeiSet (HWND hWndDlg,DBEVENTINFO *pdbei);
-void SendSMSWindowDBAdd (HWND hWndDlg);
-void SendSMSWindowHItemSendSet (HWND hWndDlg,HTREEITEM hItemSend);
-HTREEITEM SendSMSWindowHItemSendGet (HWND hWndDlg);
-HTREEITEM SendSMSWindowNextHItemGet (HWND hWndDlg,HTREEITEM hItem);
-HWND SendSMSWindowIsOtherInstanceHContact(HANDLE hContact);
-void SendSMSWindowNext (HWND hWndDlg);
-
-void SendSMSWindowSMSContactAdd (HWND hWndDlg,HANDLE hContact);
-HANDLE SendSMSWindowSMSContactGet (HWND hWndDlg,SIZE_T iNum);
-void SendSMSWindowSMSContactsRemove (HWND hWndDlg);
-void SendSMSWindowUpdateAccountList (HWND hWndDlg);
-void SendSMSWindowsUpdateAllAccountLists ();
-
-#endif // !defined(AFX_SMS_SENDDLG_H__F58D13FF_F6F2_476C_B8F0_7B9E9357CF48__INCLUDED_)
diff --git a/plugins/!NotAdopted/SMS/sms.dsp b/plugins/!NotAdopted/SMS/sms.dsp
deleted file mode 100644
index 75d75ee5d8..0000000000
--- a/plugins/!NotAdopted/SMS/sms.dsp
+++ /dev/null
@@ -1,231 +0,0 @@
-# Microsoft Developer Studio Project File - Name="sms" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=sms - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "sms.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "sms.mak" CFG="sms - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "sms - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "sms - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "sms - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SMS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SMS_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 LIBCTINY.LIB kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /base:"0x25000000" /dll /map /machine:I386 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "sms - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SMS_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SMS_EXPORTS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 LIBCTINY.LIB kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /nodefaultlib /out:"../../Debug/plugins/sms.dll" /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "sms - Win32 Release"
-# Name "sms - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Group "minicrt"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mincrt\MEMSET.C
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\STRCHR.C
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\STRDUP.C
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\strncmp.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\STRSPN.C
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\time.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\wsnprintf.c
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\main.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\options.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\receive.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\recvdlg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\send.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\senddlg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utf8.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\AggressiveOptimize.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\m_autoreplacer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\receive.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\send.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\utf8.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mincrt\wsnprintf.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\halftick.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\history.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\res\history.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\notick.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\SMSMSG.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\SMSNOTSENT.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\SMSSENT.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\tick.ico
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/plugins/!NotAdopted/SMS/sms.dsw b/plugins/!NotAdopted/SMS/sms.dsw
deleted file mode 100644
index 2bc1715ec7..0000000000
--- a/plugins/!NotAdopted/SMS/sms.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "sms"=.\sms.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/plugins/!NotAdopted/SMS/sms.opt b/plugins/!NotAdopted/SMS/sms.opt
deleted file mode 100644
index d32d04fb8b..0000000000
--- a/plugins/!NotAdopted/SMS/sms.opt
+++ /dev/null
Binary files differ
diff --git a/plugins/!NotAdopted/SMS/sms.vcproj b/plugins/!NotAdopted/SMS/sms.vcproj
deleted file mode 100644
index 2b5e61d508..0000000000
--- a/plugins/!NotAdopted/SMS/sms.vcproj
+++ /dev/null
@@ -1,388 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="sms"
- ProjectGUID="{896C1557-3841-4D04-B3CA-3DED03AFED37}"
- RootNamespace="sms"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/sms.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="1"
- InlineFunctionExpansion="1"
- FavorSizeOrSpeed="2"
- EnableFiberSafeOptimizations="true"
- WholeProgramOptimization="false"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SMS_EXPORTS"
- StringPooling="true"
- MinimalRebuild="false"
- ExceptionHandling="0"
- RuntimeLibrary="0"
- BufferSecurityCheck="false"
- EnableFunctionLevelLinking="false"
- UsePrecompiledHeader="0"
- PrecompiledHeaderFile=""
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="2057"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="comctl32.lib"
- OutputFile=".\Release/sms.dll"
- LinkIncremental="0"
- SuppressStartupBanner="true"
- AdditionalManifestDependencies="type=&apos;Win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; processorArchitecture=&apos;X86&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos;"
- IgnoreAllDefaultLibraries="true"
- IgnoreDefaultLibraryNames=""
- ModuleDefinitionFile="sms.def"
- ProgramDatabaseFile=".\Release/sms.pdb"
- GenerateMapFile="true"
- MapFileName=".\Release/sms.map"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- OptimizeForWindows98="0"
- LinkTimeCodeGeneration="0"
- ResourceOnlyDLL="true"
- SetChecksum="true"
- BaseAddress=""
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- ImportLibrary=".\Release/sms.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- CommandLine="copy &quot;C:\Documents and Settings\rozhuk_IM\Мои документы\Programmer\VC\smsvsrc-unicode\Debug\SMS.dll&quot; &quot;C:\Documents and Settings\rozhuk_IM\Мои документы\Programmer\VC\Mra\Miranda IM\Plugins\SMS.dll&quot;&#x0D;&#x0A;"
- Outputs="w"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/sms.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SMS_EXPORTS"
- StringPooling="true"
- MinimalRebuild="true"
- ExceptionHandling="0"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- UsePrecompiledHeader="0"
- PrecompiledHeaderFile=""
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="2057"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="comctl32.lib"
- OutputFile="Debug/sms.dll"
- LinkIncremental="2"
- SuppressStartupBanner="true"
- AdditionalManifestDependencies="type=&apos;Win32&apos; name=&apos;Microsoft.Windows.Common-Controls&apos; version=&apos;6.0.0.0&apos; processorArchitecture=&apos;X86&apos; publicKeyToken=&apos;6595b64144ccf1df&apos; language=&apos;*&apos;"
- IgnoreAllDefaultLibraries="false"
- IgnoreDefaultLibraryNames="msvcrtd.lib"
- ModuleDefinitionFile="sms.def"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/sms.pdb"
- OptimizeReferences="1"
- EnableCOMDATFolding="1"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="2"
- ImportLibrary=".\Debug/sms.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
- >
- <File
- RelativePath="functions.cpp"
- >
- </File>
- <File
- RelativePath="main.cpp"
- >
- </File>
- <File
- RelativePath="options.cpp"
- >
- </File>
- <File
- RelativePath="receive.cpp"
- >
- </File>
- <File
- RelativePath="recvdlg.cpp"
- >
- </File>
- <File
- RelativePath="send.cpp"
- >
- </File>
- <File
- RelativePath="senddlg.cpp"
- >
- </File>
- <File
- RelativePath=".\SMS_svc.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl"
- >
- <File
- RelativePath="..\!Clases\include\ListMT.h"
- >
- </File>
- <File
- RelativePath=".\m_autoreplacer.h"
- >
- </File>
- <File
- RelativePath="..\!Clases\include\Miranda\m_fontservice.h"
- >
- </File>
- <File
- RelativePath=".\main.h"
- >
- </File>
- <File
- RelativePath="..\!Clases\include\MemoryCompare.h"
- >
- </File>
- <File
- RelativePath="..\!Clases\include\MemoryFind.h"
- >
- </File>
- <File
- RelativePath="..\!Clases\include\MemoryFindByte.h"
- >
- </File>
- <File
- RelativePath="recvdlg.h"
- >
- </File>
- <File
- RelativePath=".\resource.h"
- >
- </File>
- <File
- RelativePath="senddlg.h"
- >
- </File>
- <File
- RelativePath="SMS.def"
- >
- </File>
- <File
- RelativePath=".\SMSConstans.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- <File
- RelativePath=".\halftick.ico"
- >
- </File>
- <File
- RelativePath=".\res\halftick.ico"
- >
- </File>
- <File
- RelativePath=".\res\history.ico"
- >
- </File>
- <File
- RelativePath=".\history.ico"
- >
- </File>
- <File
- RelativePath=".\notick.ico"
- >
- </File>
- <File
- RelativePath=".\resource.rc"
- >
- </File>
- <File
- RelativePath=".\SMSMSG.ico"
- >
- </File>
- <File
- RelativePath=".\SMSNOTSENT.ico"
- >
- </File>
- <File
- RelativePath=".\res\SMSNOTSENT.ico"
- >
- </File>
- <File
- RelativePath=".\res\SMSSENT.ico"
- >
- </File>
- <File
- RelativePath=".\SMSSENT.ico"
- >
- </File>
- <File
- RelativePath=".\tick.ico"
- >
- </File>
- </Filter>
- <File
- RelativePath="readme.txt"
- >
- </File>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>