From 728f3b62ed973a920490111b692ecf0e365243a7 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 14 Dec 2014 12:25:16 +0000 Subject: most evident warnings in MRA fixed git-svn-id: http://svn.miranda-ng.org/main/trunk@11398 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MRA/src/Mra.cpp | 4 +- protocols/MRA/src/MraAvatars.cpp | 30 +++---- protocols/MRA/src/MraChat.cpp | 1 - protocols/MRA/src/MraConstans.h | 4 +- protocols/MRA/src/MraFilesQueue.cpp | 37 +++++---- protocols/MRA/src/MraIcons.cpp | 2 +- protocols/MRA/src/MraMPop.cpp | 4 +- protocols/MRA/src/MraPopUp.cpp | 4 +- protocols/MRA/src/MraProto.cpp | 71 ++++++++--------- protocols/MRA/src/MraProto.h | 8 +- protocols/MRA/src/MraRTFMsg.cpp | 12 +-- protocols/MRA/src/MraSendCommand.cpp | 7 +- protocols/MRA/src/MraSendQueue.cpp | 12 +-- protocols/MRA/src/Mra_functions.cpp | 150 +++++++++++++++++------------------ protocols/MRA/src/Mra_menus.cpp | 44 +++++----- protocols/MRA/src/Mra_proto.cpp | 18 ++--- protocols/MRA/src/Mra_svcs.cpp | 27 +++---- protocols/MRA/src/Sdk/FIFOMT.h | 7 +- protocols/MRA/src/Sdk/InternetTime.h | 2 - protocols/MRA/src/Sdk/ListMT.h | 47 +++-------- protocols/MRA/src/Sdk/timefuncs.h | 14 ---- protocols/MRA/src/version.h | 2 +- 22 files changed, 219 insertions(+), 288 deletions(-) (limited to 'protocols/MRA') diff --git a/protocols/MRA/src/Mra.cpp b/protocols/MRA/src/Mra.cpp index 13d8ee091f..9f609f4056 100644 --- a/protocols/MRA/src/Mra.cpp +++ b/protocols/MRA/src/Mra.cpp @@ -30,7 +30,7 @@ WCHAR g_szMirWorkDirPath[MAX_FILEPATH]; void IconsLoad(); -BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID Reserved) +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID) { switch (dwReason) { case DLL_PROCESS_ATTACH: @@ -47,7 +47,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID Reserved) extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_PROTOCOL, MIID_LAST}; -extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD) { return &pluginInfoEx; } diff --git a/protocols/MRA/src/MraAvatars.cpp b/protocols/MRA/src/MraAvatars.cpp index 23f2d691b0..c8d3466d1c 100644 --- a/protocols/MRA/src/MraAvatars.cpp +++ b/protocols/MRA/src/MraAvatars.cpp @@ -60,7 +60,7 @@ DWORD CMraProto::MraAvatarsQueueInitialize(HANDLE *phAvatarsQueueHandle) if (pmraaqAvatarsQueue == NULL) return GetLastError(); - DWORD dwRetErrorCode = FifoMTInitialize(pmraaqAvatarsQueue, 0); + DWORD dwRetErrorCode = ListMTInitialize(pmraaqAvatarsQueue); if (dwRetErrorCode == NO_ERROR) { char szBuffer[MAX_PATH]; mir_snprintf(szBuffer, SIZEOF(szBuffer), "%s %s", m_szModuleName, Translate("Avatars' plugin connections")); @@ -129,7 +129,7 @@ void CMraProto::MraAvatarsQueueDestroy(HANDLE hAvatarsQueueHandle) MraAvatarsQueueClear(hAvatarsQueueHandle); - FifoMTDestroy(pmraaqAvatarsQueue); + ListMTDestroy(pmraaqAvatarsQueue); Netlib_CloseHandle(pmraaqAvatarsQueue->hNetlibUser); mir_free(pmraaqAvatarsQueue); } @@ -162,9 +162,9 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter) CMStringA szEmail, szServer; CMStringW wszFileName; - BOOL bContinue, bKeepAlive, bUseKeepAliveConn, bFailed, bDownloadNew, bDefaultAvt; + BOOL bContinue, bKeepAlive, bUseKeepAliveConn, bFailed, bDownloadNew; BYTE btBuff[BUFF_SIZE_RCV]; - DWORD dwResultCode, dwAvatarFormat, dwReceived, dwServerPort, dwErrorCode; + DWORD dwResultCode, dwAvatarFormat = PA_FORMAT_DEFAULT, dwReceived, dwServerPort, dwErrorCode; size_t dwAvatarSizeServer; FILETIME ftLastModifiedTimeServer, ftLastModifiedTimeLocal; SYSTEMTIME stAvatarLastModifiedTimeLocal; @@ -188,7 +188,6 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter) /* Try download. */ bFailed = TRUE; bDownloadNew = FALSE; - bDefaultAvt = FALSE; if (!DB_GetStringA(NULL, MRA_AVT_SECT_NAME, "Server", szServer)) szServer = MRA_AVT_DEFAULT_SERVER; @@ -240,8 +239,6 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter) } else//loading default avatar bDownloadNew = TRUE; - - bDefaultAvt = TRUE; } break; @@ -261,9 +258,6 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter) if (hConnection) { ProtoBroadcastAck(pmraaqiAvatarsQueueItem->hContact, ACKTYPE_AVATAR, ACKRESULT_DATA, NULL, 0); if (MraAvatarsHttpTransaction(hConnection, REQUEST_GET, szUser, szDomain, szServer, MAHTRO_AVT, bUseKeepAliveConn, &dwResultCode, &bKeepAlive, &dwAvatarFormat, &dwAvatarSizeServer, &itAvatarLastModifiedTimeServer) == NO_ERROR && dwResultCode == 200) { - if (bDefaultAvt) - dwAvatarFormat = PA_FORMAT_DEFAULT; - if (!MraAvatarsGetFileName(pmraaqAvatarsQueue, pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat, wszFileName)) { HANDLE hFile = CreateFile(wszFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile != INVALID_HANDLE_VALUE) { @@ -336,7 +330,6 @@ void CMraProto::MraAvatarsThreadProc(LPVOID lpParameter) else PathToRelativeT(wszFileName, pai.filename); - if (bDefaultAvt) dwAvatarFormat = PA_FORMAT_DEFAULT; SetContactAvatarFormat(pmraaqiAvatarsQueueItem->hContact, dwAvatarFormat); MraAvatarsSetContactTime(pmraaqiAvatarsQueueItem->hContact, "AvatarLastModifiedTime", &itAvatarLastModifiedTimeServer.stTime); // write owner avatar file name to DB @@ -395,7 +388,7 @@ DWORD MraAvatarsHttpTransaction(HANDLE hConnection, DWORD dwRequestType, LPCSTR } char szBuff[4096]; - DWORD dwBuffSize = mir_snprintf(szBuff, SIZEOF(szBuff), "http://%s/%s/%s/%s", lpszHost, lpszDomain, lpszUser, lpszReqObj); + mir_snprintf(szBuff, SIZEOF(szBuff), "http://%s/%s/%s/%s", lpszHost, lpszDomain, lpszUser, lpszReqObj); CMStringA szSelfVersionString = MraGetSelfVersionString(); NETLIBHTTPHEADER nlbhHeaders[8] = { 0 }; @@ -493,8 +486,6 @@ DWORD CMraProto::MraAvatarsGetFileName(HANDLE hAvatarsQueueHandle, MCONTACT hCon if (IsContactChatAgent(hContact)) return ERROR_NOT_SUPPORTED; - MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle; - TCHAR tszBase[MAX_PATH]; mir_sntprintf(tszBase, SIZEOF(tszBase), _T("%s\\%s\\"), VARST(_T("%miranda_avatarcache%")), m_tszUserName); res = tszBase; @@ -533,7 +524,6 @@ DWORD CMraProto::MraAvatarsQueueGetAvatar(HANDLE hAvatarsQueueHandle, DWORD dwFl return GAIR_NOAVATAR; BOOL bQueueAdd = TRUE;// check for updates - MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle; SYSTEMTIME stAvatarLastCheckTime; if ((dwFlags & GAIF_FORCE) == 0)// если флаг принудит. обновления, то даже не проверяем времени последнего обновления @@ -570,18 +560,18 @@ DWORD CMraProto::MraAvatarsQueueGetAvatar(HANDLE hAvatarsQueueHandle, DWORD dwFl return dwRetCode; } -DWORD CMraProto::MraAvatarsQueueGetAvatarSimple(HANDLE hAvatarsQueueHandle, DWORD dwFlags, MCONTACT hContact, DWORD dwSourceID) +DWORD CMraProto::MraAvatarsQueueGetAvatarSimple(HANDLE hAvatarsQueueHandle, DWORD dwFlags, MCONTACT hContact) { - DWORD dwRetCode; - if ( !hAvatarsQueueHandle) return GAIR_NOAVATAR; + PROTO_AVATAR_INFORMATIONT pai = { 0 }; pai.cbSize = sizeof(pai); pai.hContact = hContact; - dwRetCode = MraAvatarsQueueGetAvatar(hAvatarsQueueHandle, dwFlags, hContact, NULL, (DWORD*)&pai.format, pai.filename); + DWORD dwRetCode = MraAvatarsQueueGetAvatar(hAvatarsQueueHandle, dwFlags, hContact, NULL, (DWORD*)&pai.format, pai.filename); if (dwRetCode != GAIR_SUCCESS) return dwRetCode; + // write owner avatar file name to DB if (hContact == NULL) CallService(MS_AV_REPORTMYAVATARCHANGED, (WPARAM)m_szModuleName, 0); @@ -669,8 +659,6 @@ DWORD CMraProto::MraAvatarsDeleteContactAvatarFile(HANDLE hAvatarsQueueHandle, M if (hAvatarsQueueHandle == NULL) return ERROR_INVALID_HANDLE; - MRA_AVATARS_QUEUE *pmraaqAvatarsQueue = (MRA_AVATARS_QUEUE*)hAvatarsQueueHandle; - DWORD dwAvatarFormat = GetContactAvatarFormat(hContact, PA_FORMAT_UNKNOWN); if (db_get_b(NULL, MRA_AVT_SECT_NAME, "DeleteAvtOnContactDelete", MRA_DELETE_AVT_ON_CONTACT_DELETE) && dwAvatarFormat != PA_FORMAT_DEFAULT) { CMStringW szFileName; diff --git a/protocols/MRA/src/MraChat.cpp b/protocols/MRA/src/MraChat.cpp index 3dd6251320..851fafe2e8 100644 --- a/protocols/MRA/src/MraChat.cpp +++ b/protocols/MRA/src/MraChat.cpp @@ -193,7 +193,6 @@ int CMraProto::MraChatGcEventHook(WPARAM, LPARAM lParam) switch (gch->pDest->iType) { case GC_USER_MESSAGE: if (gch->ptszText && mir_tstrlen(gch->ptszText)) { - size_t dwMessageSize = mir_wstrlen(gch->ptszText); CMStringA szEmail = gch->pDest->ptszID; MCONTACT hContact = MraHContactFromEmail(szEmail, FALSE, TRUE, NULL); BOOL bSlowSend = getByte("SlowSend", MRA_DEFAULT_SLOW_SEND); diff --git a/protocols/MRA/src/MraConstans.h b/protocols/MRA/src/MraConstans.h index 96b7447022..ebfdf6e9aa 100644 --- a/protocols/MRA/src/MraConstans.h +++ b/protocols/MRA/src/MraConstans.h @@ -226,8 +226,8 @@ static const LPSTR lpcszMailRuDomains[] = #define DBSETTING_BLOGSTATUS "BlogStatus" #define DBSETTING_BLOGSTATUSMUSIC "ListeningTo" -extern const LPSTR lpcszStatusUri[]; -extern const LPWSTR lpcszXStatusNameDef[]; +extern LPCSTR lpcszStatusUri[]; +extern LPCWSTR lpcszXStatusNameDef[]; #define MRA_XSTATUS_COUNT 50 /* index = 0 - virtual status "none" */ #define MRA_XSTATUS_OFF_CLI_COUNT 49 /* MRA_XSTATUS_COUNT - dating */ diff --git a/protocols/MRA/src/MraFilesQueue.cpp b/protocols/MRA/src/MraFilesQueue.cpp index 64ae8e554c..f795753d96 100644 --- a/protocols/MRA/src/MraFilesQueue.cpp +++ b/protocols/MRA/src/MraFilesQueue.cpp @@ -145,7 +145,7 @@ DWORD MraFilesQueueInitialize(DWORD dwSendTimeOutInterval, HANDLE *phFilesQueueH if (!pmrafqFilesQueue) return GetLastError(); - DWORD dwRetErrorCode = ListMTInitialize(pmrafqFilesQueue, 0); + DWORD dwRetErrorCode = ListMTInitialize(pmrafqFilesQueue); if (dwRetErrorCode == NO_ERROR) { pmrafqFilesQueue->dwSendTimeOutInterval = dwSendTimeOutInterval; *phFilesQueueHandle = (HANDLE)pmrafqFilesQueue; @@ -163,7 +163,7 @@ void MraFilesQueueDestroy(HANDLE hFilesQueueHandle) MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle; MRA_FILES_QUEUE_ITEM *dat; { - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); while (ListMTItemGetFirst(pmrafqFilesQueue, NULL, (LPVOID*)&dat) == NO_ERROR) MraFilesQueueItemFree(dat); } @@ -180,7 +180,7 @@ DWORD MraFilesQueueItemFindByID(HANDLE hFilesQueueHandle, DWORD dwIDRequest, MRA MRA_FILES_QUEUE_ITEM *dat; LIST_MT_ITERATOR lmtiIterator; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); ListMTIteratorMoveFirst(pmrafqFilesQueue, &lmtiIterator); do { if (ListMTIteratorGet(&lmtiIterator, NULL, (LPVOID*)&dat) == NO_ERROR) @@ -218,7 +218,7 @@ void MraFilesQueueItemFree(MRA_FILES_QUEUE_ITEM *dat) MraMrimProxyFree(dat->hMraMrimProxyData); mir_free(dat->lpwszPath); { - mt_lock l(plmtListMT); + mir_cslock l(plmtListMT->cs); ListMTItemDelete(plmtListMT, dat); } mir_free(dat); @@ -271,7 +271,7 @@ DWORD CMraProto::MraFilesQueueAccept(HANDLE hFilesQueueHandle, DWORD dwIDRequest MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle; MRA_FILES_QUEUE_ITEM *dat; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); DWORD dwRetErrorCode = MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat); if (dwRetErrorCode == NO_ERROR) { MRA_FILES_THREADPROC_PARAMS *pmftpp = (MRA_FILES_THREADPROC_PARAMS*)mir_calloc(sizeof(MRA_FILES_THREADPROC_PARAMS)); @@ -301,7 +301,7 @@ DWORD CMraProto::MraFilesQueueCancel(HANDLE hFilesQueueHandle, DWORD dwIDRequest MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle; MRA_FILES_QUEUE_ITEM *dat; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); DWORD dwRetErrorCode = MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat); if (dwRetErrorCode == NO_ERROR) { //***deb closesocket, send message to thread InterlockedExchange((volatile LONG*)&dat->bIsWorking, FALSE); @@ -309,7 +309,7 @@ DWORD CMraProto::MraFilesQueueCancel(HANDLE hFilesQueueHandle, DWORD dwIDRequest if (bSendDecline) { CMStringA szEmail; if (mraGetStringA(dat->hContact, "e-mail", szEmail)) - MraFileTransferAck(FILE_TRANSFER_STATUS_DECLINE, szEmail, dwIDRequest, NULL, 0); + MraFileTransferAck(FILE_TRANSFER_STATUS_DECLINE, szEmail, dwIDRequest, CMStringA()); } MraMrimProxyCloseConnection(dat->hMraMrimProxyData); @@ -333,7 +333,7 @@ DWORD CMraProto::MraFilesQueueStartMrimProxy(HANDLE hFilesQueueHandle, DWORD dwI MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle; MRA_FILES_QUEUE_ITEM *dat; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); if (!MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat)) if (dat->bSending == FALSE) SetEvent(dat->hWaitHandle);// cancel wait incomming connection @@ -350,7 +350,7 @@ DWORD MraFilesQueueFree(HANDLE hFilesQueueHandle, DWORD dwIDRequest) MRA_FILES_QUEUE_ITEM *dat; LIST_MT_ITERATOR lmtiIterator; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); ListMTIteratorMoveFirst(pmrafqFilesQueue, &lmtiIterator); do { if (ListMTIteratorGet(&lmtiIterator, NULL, (LPVOID*)&dat) == NO_ERROR) @@ -372,7 +372,7 @@ DWORD CMraProto::MraFilesQueueSendMirror(HANDLE hFilesQueueHandle, DWORD dwIDReq MRA_FILES_QUEUE *pmrafqFilesQueue = (MRA_FILES_QUEUE*)hFilesQueueHandle; MRA_FILES_QUEUE_ITEM *dat; - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); DWORD dwRetErrorCode = MraFilesQueueItemFindByID(hFilesQueueHandle, dwIDRequest, &dat); if (dwRetErrorCode == NO_ERROR) { MraAddrListGetFromBuff(szAddresses, &dat->malAddrList); @@ -435,7 +435,7 @@ HANDLE CMraProto::MraFilesQueueConnectOut(MRA_FILES_QUEUE_ITEM *dat) if (getByte("FileSendEnableDirectConn", MRA_DEF_FS_ENABLE_DIRECT_CONN) && InterlockedExchangeAdd((volatile LONG*)&dat->bIsWorking, 0) && ((dat->bSending == FALSE && getByte("FileSendNoOutConnOnRcv", MRA_DEF_FS_NO_OUT_CONN_ON_RCV) == FALSE) || (dat->bSending == TRUE && getByte("FileSendNoOutConnOnSend", MRA_DEF_FS_NO_OUT_CONN_ON_SEND) == FALSE))) { BOOL bFiltering = FALSE, bIsHTTPSProxyUsed = IsHTTPSProxyUsed(m_hNetlibUser); DWORD dwLocalPort = 0, dwConnectReTryCount, dwCurConnectReTryCount; - size_t dwAddrCount; + size_t dwAddrCount = 0; NETLIBOPENCONNECTION nloc = { 0 }; if (getByte("FileSendIgnoryAdditionalPorts", MRA_DEF_FS_IGNORY_ADDITIONAL_PORTS) || bIsHTTPSProxyUsed) {// фильтруем порты для одного IP, вместо 3 будем коннектится только к одному @@ -444,7 +444,6 @@ HANDLE CMraProto::MraFilesQueueConnectOut(MRA_FILES_QUEUE_ITEM *dat) else if ((dwLocalPort = getWord("ServerPort", MRA_DEFAULT_SERVER_PORT)) == MRA_SERVER_PORT_STANDART_NLB) dwLocalPort = MRA_SERVER_PORT_STANDART; - dwAddrCount = 0; for (size_t i = 0; i < dat->malAddrList.dwAddrCount; i++) { if (dwLocalPort == dat->malAddrList.pMailAddress[i].dwPort) { bFiltering = TRUE; @@ -555,7 +554,7 @@ HANDLE CMraProto::MraFilesQueueConnectIn(MRA_FILES_QUEUE_ITEM *dat) if (dwAddrListSize) { dat->hWaitHandle = CreateEvent(NULL, TRUE, FALSE, NULL); if (dat->bSending == FALSE) // запрашиваем зеркальное соединение, тк сами подключится не смогли - MraFileTransferAck(FILE_TRANSFER_MIRROR, szEmail, dat->dwIDRequest, (LPBYTE)szAddrList, dwAddrListSize); + MraFileTransferAck(FILE_TRANSFER_MIRROR, szEmail, dat->dwIDRequest, szAddrList); else { // здесь отправляем запрос на передачу(установление соединения) // создаём текстовый список файлов для отправки другой стороне LPWSTR lpwszFiles, lpwszCurPos; @@ -693,7 +692,7 @@ DWORD CMraProto::MraFilesQueueAddReceive(HANDLE hFilesQueueHandle, DWORD dwFlags MraAddrListGetFromBuff(szAddresses, &dat->malAddrList); MraAddrListStoreToContact(dat->hContact, &dat->malAddrList); { - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); ListMTItemAdd(pmrafqFilesQueue, dat, dat); } @@ -898,13 +897,13 @@ void CMraProto::MraFilesQueueRecvThreadProc(LPVOID lpParameter) if (bFailed) { CMStringA szEmail; if (mraGetStringA(dat->hContact, "e-mail", szEmail)) - MraFileTransferAck(FILE_TRANSFER_STATUS_ERROR, szEmail, dat->dwIDRequest, NULL, 0); + MraFileTransferAck(FILE_TRANSFER_STATUS_ERROR, szEmail, dat->dwIDRequest, CMStringA()); ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_FAILED, (HANDLE)dat->dwIDRequest, 0); } else ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_SUCCESS, (HANDLE)dat->dwIDRequest, 0); - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); MraFilesQueueItemFree(dat); } } @@ -954,7 +953,7 @@ DWORD CMraProto::MraFilesQueueAddSend(HANDLE hFilesQueueHandle, DWORD dwFlags, M if (pdwIDRequest) *pdwIDRequest = dat->dwIDRequest; { - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); ListMTItemAdd(pmrafqFilesQueue, dat, dat); } MRA_FILES_THREADPROC_PARAMS *pmftpp = (MRA_FILES_THREADPROC_PARAMS*)mir_calloc(sizeof(MRA_FILES_THREADPROC_PARAMS)); @@ -1140,12 +1139,12 @@ void CMraProto::MraFilesQueueSendThreadProc(LPVOID lpParameter) if (bFailed) { CMStringA szEmail; if (mraGetStringA(dat->hContact, "e-mail", szEmail)) - MraFileTransferAck(FILE_TRANSFER_STATUS_ERROR, szEmail, dat->dwIDRequest, NULL, 0); + MraFileTransferAck(FILE_TRANSFER_STATUS_ERROR, szEmail, dat->dwIDRequest, CMStringA()); ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_FAILED, (HANDLE)dat->dwIDRequest, 0); } else ProtoBroadcastAck(dat->hContact, ACKTYPE_FILE, ACKRESULT_SUCCESS, (HANDLE)dat->dwIDRequest, 0); - mt_lock l(pmrafqFilesQueue); + mir_cslock l(pmrafqFilesQueue->cs); MraFilesQueueItemFree(dat); } diff --git a/protocols/MRA/src/MraIcons.cpp b/protocols/MRA/src/MraIcons.cpp index 0b6c61130d..22847daec3 100644 --- a/protocols/MRA/src/MraIcons.cpp +++ b/protocols/MRA/src/MraIcons.cpp @@ -113,7 +113,7 @@ void InitXStatusIcons() sid.pszName = szBuff; int iCurIndex = i+IDI_XSTATUS1-1; - sid.ptszDescription = lpcszXStatusNameDef[i]; + sid.ptszDescription = (TCHAR*)lpcszXStatusNameDef[i]; sid.iDefaultIndex = -iCurIndex; hXStatusAdvancedStatusIcons[i] = Skin_AddIcon(&sid); diff --git a/protocols/MRA/src/MraMPop.cpp b/protocols/MRA/src/MraMPop.cpp index 4855d5bd10..9796744f29 100644 --- a/protocols/MRA/src/MraMPop.cpp +++ b/protocols/MRA/src/MraMPop.cpp @@ -31,7 +31,7 @@ DWORD MraMPopSessionQueueInitialize(HANDLE *phMPopSessionQueue) pmpsqMPopSessionQueue->bKeyValid = false; pmpsqMPopSessionQueue->lpszMPOPKey = NULL; pmpsqMPopSessionQueue->dwMPOPKeySize = 0; - FifoMTInitialize(pmpsqMPopSessionQueue, 0); + ListMTInitialize(pmpsqMPopSessionQueue); *phMPopSessionQueue = (HANDLE)pmpsqMPopSessionQueue; return NO_ERROR; } @@ -59,7 +59,7 @@ void MraMPopSessionQueueDestroy(HANDLE hMPopSessionQueue) MRA_MPOP_SESSION_QUEUE *pmpsqMPopSessionQueue = (MRA_MPOP_SESSION_QUEUE*)hMPopSessionQueue; MraMPopSessionQueueClear(hMPopSessionQueue); - FifoMTDestroy(pmpsqMPopSessionQueue); + ListMTDestroy(pmpsqMPopSessionQueue); mir_free(pmpsqMPopSessionQueue); } diff --git a/protocols/MRA/src/MraPopUp.cpp b/protocols/MRA/src/MraPopUp.cpp index e65805a267..bfbd29ee70 100644 --- a/protocols/MRA/src/MraPopUp.cpp +++ b/protocols/MRA/src/MraPopUp.cpp @@ -125,7 +125,7 @@ INT_PTR CALLBACK MraPopupDlgProcOpts(HWND hWndDlg, UINT msg, WPARAM wParam, LPAR return FALSE; } -int CMraProto::OnPopupOptInit(WPARAM wParam, LPARAM lParam) +int CMraProto::OnPopupOptInit(WPARAM wParam, LPARAM) { if ( ServiceExists(MS_POPUP_ADDPOPUPT)) { OPTIONSDIALOGPAGE odp = { sizeof(odp) }; @@ -163,7 +163,7 @@ LRESULT CALLBACK MraPopupDlgProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM l case UM_INITPOPUP: if (dat->iPopupType == MRA_POPUP_TYPE_EMAIL_STATUS) { // update/load avatar - dat->ppro->MraAvatarsQueueGetAvatarSimple(dat->ppro->hAvatarsQueueHandle, GAIF_FORCE, PUGetContact(hWndDlg), 0); + dat->ppro->MraAvatarsQueueGetAvatarSimple(dat->ppro->hAvatarsQueueHandle, GAIF_FORCE, PUGetContact(hWndDlg)); // delete old email popup if (dat->ppro->hWndEMailPopupStatus) diff --git a/protocols/MRA/src/MraProto.cpp b/protocols/MRA/src/MraProto.cpp index 9bc974b01a..c7af6e4b1e 100644 --- a/protocols/MRA/src/MraProto.cpp +++ b/protocols/MRA/src/MraProto.cpp @@ -75,7 +75,7 @@ CMraProto::~CMraProto() DeleteCriticalSection(&csCriticalSectionSend); } -INT_PTR CMraProto::MraCreateAccMgrUI(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraCreateAccMgrUI(WPARAM, LPARAM lParam) { return (INT_PTR)CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_MRAACCOUNT), (HWND)lParam, DlgProcAccount, LPARAM(this)); @@ -161,7 +161,7 @@ MCONTACT CMraProto::AddToList(int flags, PROTOSEARCHRESULT *psr) return AddToListByEmail(psr->email, psr->nick, psr->firstName, psr->lastName, flags); } -MCONTACT CMraProto::AddToListByEvent(int flags, int iContact, HANDLE hDbEvent) +MCONTACT CMraProto::AddToListByEvent(int, int, HANDLE hDbEvent) { DBEVENTINFO dbei = { 0 }; dbei.cbSize = sizeof(dbei); @@ -233,20 +233,20 @@ int CMraProto::AuthDeny(HANDLE hDBEvent, const TCHAR* szReason) return 0; } -int CMraProto::AuthRecv(MCONTACT hContact, PROTORECVEVENT* pre) +int CMraProto::AuthRecv(MCONTACT, PROTORECVEVENT* pre) { Proto_AuthRecv(m_szModuleName, pre); return 0; } -int CMraProto::AuthRequest(MCONTACT hContact, const TCHAR *lptszMessage) +int CMraProto::AuthRequest(MCONTACT, const TCHAR*) { return 1; } ///////////////////////////////////////////////////////////////////////////////////////// -HANDLE CMraProto::FileAllow(MCONTACT hContact, HANDLE hTransfer, const TCHAR *szPath) +HANDLE CMraProto::FileAllow(MCONTACT, HANDLE hTransfer, const TCHAR *szPath) { if (szPath != NULL) if (MraFilesQueueAccept(hFilesQueueHandle, (DWORD)hTransfer, szPath, mir_tstrlen(szPath)) == NO_ERROR) @@ -272,7 +272,7 @@ int CMraProto::FileDeny(MCONTACT hContact, HANDLE hTransfer, const TCHAR*) ///////////////////////////////////////////////////////////////////////////////////////// -DWORD_PTR CMraProto::GetCaps(int type, MCONTACT hContact) +DWORD_PTR CMraProto::GetCaps(int type, MCONTACT) { switch (type) { case PFLAGNUM_1: @@ -309,7 +309,7 @@ DWORD_PTR CMraProto::GetCaps(int type, MCONTACT hContact) } } -int CMraProto::GetInfo(MCONTACT hContact, int infoType) +int CMraProto::GetInfo(MCONTACT hContact, int) { return MraUpdateContactInfo(hContact) != 0; } @@ -323,16 +323,16 @@ HANDLE CMraProto::SearchBasic(const TCHAR *id) HANDLE CMraProto::SearchByEmail(const TCHAR *email) { - if (m_bLoggedIn && email) - return MraWPRequestByEMail(NULL, ACKTYPE_SEARCH, CMStringA(email)); + if (m_bLoggedIn && email) { + CMStringA szEmail(email); + return MraWPRequestByEMail(NULL, ACKTYPE_SEARCH, szEmail); + } return NULL; } HANDLE CMraProto::SearchByName(const TCHAR *pszNick, const TCHAR *pszFirstName, const TCHAR *pszLastName) { - INT_PTR iRet = 0; - if (m_bLoggedIn && (*pszNick || *pszFirstName || *pszLastName)) { DWORD dwRequestFlags = 0; if (*pszNick) SetBit(dwRequestFlags, MRIM_CS_WP_REQUEST_PARAM_NICKNAME); @@ -371,7 +371,7 @@ int CMraProto::RecvMsg(MCONTACT hContact, PROTORECVEVENT *pre) ///////////////////////////////////////////////////////////////////////////////////////// -int CMraProto::SendContacts(MCONTACT hContact, int flags, int nContacts, MCONTACT *hContactsList) +int CMraProto::SendContacts(MCONTACT hContact, int, int nContacts, MCONTACT *hContactsList) { INT_PTR iRet = 0; @@ -397,15 +397,16 @@ int CMraProto::SendContacts(MCONTACT hContact, int flags, int nContacts, MCONTAC return iRet; } -HANDLE CMraProto::SendFile(MCONTACT hContact, const TCHAR* szDescription, TCHAR** ppszFiles) +HANDLE CMraProto::SendFile(MCONTACT hContact, const TCHAR*, TCHAR **ppszFiles) { - INT_PTR iRet = 0; + if (!m_bLoggedIn || !hContact || !ppszFiles) + return NULL; - if (m_bLoggedIn && hContact && ppszFiles) { - size_t dwFilesCount; - for (dwFilesCount = 0; ppszFiles[dwFilesCount]; dwFilesCount++); - MraFilesQueueAddSend(hFilesQueueHandle, 0, hContact, ppszFiles, dwFilesCount, (DWORD*)&iRet); - } + size_t dwFilesCount; + for (dwFilesCount = 0; ppszFiles[dwFilesCount]; dwFilesCount++); + + DWORD iRet = 0; + MraFilesQueueAddSend(hFilesQueueHandle, 0, hContact, ppszFiles, dwFilesCount, &iRet); return (HANDLE)iRet; } @@ -417,33 +418,31 @@ int CMraProto::SendMsg(MCONTACT hContact, int flags, const char *lpszMessage) } DWORD dwFlags = 0; - LPWSTR lpwszMessage = NULL; - int iRet = 0; + CMStringW wszMessage; if (flags & PREF_UNICODE) - lpwszMessage = (LPWSTR)(lpszMessage + mir_strlen(lpszMessage) + 1); + wszMessage = (LPWSTR)(lpszMessage + mir_strlen(lpszMessage) + 1); else if (flags & PREF_UTF) - lpwszMessage = mir_utf8decodeT(lpszMessage); + wszMessage = ptrW(mir_utf8decodeT(lpszMessage)); else - lpwszMessage = mir_a2t(lpszMessage); + wszMessage = ptrW(mir_a2t(lpszMessage)); - if (!lpwszMessage) { + if (wszMessage.IsEmpty()) { ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, NULL, (LPARAM)"Cant allocate buffer for convert to unicode."); return 0; } CMStringA szEmail; - if (mraGetStringA(hContact, "e-mail", szEmail)) { - BOOL bSlowSend = getByte("SlowSend", MRA_DEFAULT_SLOW_SEND); - if (getByte("RTFSendEnable", MRA_DEFAULT_RTF_SEND_ENABLE) && (MraContactCapabilitiesGet(hContact) & FEATURE_FLAG_RTF_MESSAGE)) - dwFlags |= MESSAGE_FLAG_RTF; - - iRet = MraMessage(bSlowSend, hContact, ACKTYPE_MESSAGE, dwFlags, szEmail, lpwszMessage, NULL, 0); - if (bSlowSend == FALSE) - ProtoBroadcastAckAsync(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)iRet, 0); - } - - mir_free(lpwszMessage); + if (!mraGetStringA(hContact, "e-mail", szEmail)) + return 0; + + BOOL bSlowSend = getByte("SlowSend", MRA_DEFAULT_SLOW_SEND); + if (getByte("RTFSendEnable", MRA_DEFAULT_RTF_SEND_ENABLE) && (MraContactCapabilitiesGet(hContact) & FEATURE_FLAG_RTF_MESSAGE)) + dwFlags |= MESSAGE_FLAG_RTF; + + int iRet = MraMessage(bSlowSend, hContact, ACKTYPE_MESSAGE, dwFlags, szEmail, wszMessage, NULL, 0); + if (bSlowSend == FALSE) + ProtoBroadcastAckAsync(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE)iRet, 0); return iRet; } diff --git a/protocols/MRA/src/MraProto.h b/protocols/MRA/src/MraProto.h index 6f81a4a58a..aa076c20ec 100644 --- a/protocols/MRA/src/MraProto.h +++ b/protocols/MRA/src/MraProto.h @@ -211,11 +211,11 @@ struct CMraProto : public PROTO DWORD MraAuthorize(const CMStringA &szEmail); DWORD MraChangeStatus(DWORD dwStatus, const CMStringA &szStatusUri, const CMStringW &wszStatusTitle, const CMStringW &wszStatusDesc, DWORD dwFutureFlags); DWORD MraFileTransfer(const CMStringA &szEmail, DWORD dwIdRequest, DWORD dwFilesTotalSize, const CMStringW &lpwszFiles, const CMStringA &szAddresses); - DWORD MraFileTransferAck(DWORD dwStatus, const CMStringA &szEmail, DWORD dwIdRequest, LPBYTE lpbDescription, size_t dwDescriptionSize); + DWORD MraFileTransferAck(DWORD dwStatus, const CMStringA &szEmail, DWORD dwIdRequest, const CMStringA &szDescription); HANDLE MraWPRequestW(MCONTACT hContact, DWORD dwAckType, DWORD dwRequestFlags, const CMStringA &szUser, const CMStringA &szDomain, const CMStringW &wszNickName, const CMStringW &wszFirstName, const CMStringW &wszLastName, DWORD dwSex, DWORD dwDate1, DWORD dwDate2, DWORD dwCityID, DWORD dwZodiak, DWORD dwBirthdayMonth, DWORD dwBirthdayDay, DWORD dwCountryID, DWORD dwOnline); HANDLE MraWPRequestByEMail(MCONTACT hContact, DWORD dwAckType, CMStringA &szEmail); DWORD MraGame(const CMStringA &szEmail, DWORD dwGameSessionID, DWORD dwGameMsg, DWORD dwGameMsgID, const CMStringA &lpszData); - DWORD MraLogin2W(CMStringA &szLogin, CMStringA &szPassword, DWORD dwStatus, CMStringA &szStatusUri, CMStringW &wszStatusTitle, CMStringW &wszStatusDesc, DWORD dwFutureFlags, CMStringA &szUserAgentFormatted, CMStringA &szUserAgent); + DWORD MraLogin2W(const CMStringA &szLogin, const CMStringA &szPassword, DWORD dwStatus, const CMStringA &szStatusUri, CMStringW &wszStatusTitle, CMStringW &wszStatusDesc, DWORD dwFutureFlags, CMStringA &szUserAgentFormatted, CMStringA &szUserAgent); DWORD MraSMSW(MCONTACT hContact, const CMStringA &lpszPhone, const CMStringW &lpwszMessage); DWORD MraProxy(const CMStringA &szEmail, DWORD dwIDRequest, DWORD dwDataType, const CMStringA &lpszData, const CMStringA &szAddresses, MRA_GUID mguidSessionID); DWORD MraProxyAck(DWORD dwStatus, const CMStringA &szEmail, DWORD dwIDRequest, DWORD dwDataType, const CMStringA &lpszData, const CMStringA &szAddresses, MRA_GUID mguidSessionID); @@ -249,7 +249,7 @@ struct CMraProto : public PROTO DWORD MraSetContactStatus(MCONTACT hContact, DWORD dwNewStatus); DWORD MraContactCapabilitiesGet(MCONTACT hContact); void MraContactCapabilitiesSet(MCONTACT hContact, DWORD dwFutureFlags); - void MraUpdateEmailStatus(const CMStringA &szFrom, const CMStringA &szSubject, DWORD dwDate, DWORD dwUIDL, bool force_display); + void MraUpdateEmailStatus(const CMStringA &szFrom, const CMStringA &szSubject, bool force_display); DWORD MraConvertToRTFW(const CMStringW &wszMessage, CMStringA &szMessageRTF); DWORD StartConnect(); @@ -341,7 +341,7 @@ struct CMraProto : public PROTO void MraAvatarsSetContactTime (MCONTACT hContact, LPSTR lpszValueName, SYSTEMTIME *pstTime); DWORD MraAvatarsGetFileName(HANDLE hAvatarsQueueHandle, MCONTACT hContact, DWORD dwFormat, CMStringW &res); DWORD MraAvatarsQueueGetAvatar(HANDLE hAvatarsQueueHandle, DWORD dwFlags, MCONTACT hContact, DWORD *pdwAvatarsQueueID, DWORD *pdwFormat, LPTSTR lpszPath); - DWORD MraAvatarsQueueGetAvatarSimple(HANDLE hAvatarsQueueHandle, DWORD dwFlags, MCONTACT hContact, DWORD dwSourceID); + DWORD MraAvatarsQueueGetAvatarSimple(HANDLE hAvatarsQueueHandle, DWORD dwFlags, MCONTACT hContact); DWORD MraAvatarsDeleteContactAvatarFile(HANDLE hAvatarsQueueHandle, MCONTACT hContact); void __cdecl MraAvatarsThreadProc(LPVOID lpParameter); diff --git a/protocols/MRA/src/MraRTFMsg.cpp b/protocols/MRA/src/MraRTFMsg.cpp index ba61aae39f..f77901a825 100644 --- a/protocols/MRA/src/MraRTFMsg.cpp +++ b/protocols/MRA/src/MraRTFMsg.cpp @@ -138,7 +138,7 @@ DWORD MraTextToRTFData(LPSTR lpszMessage, size_t dwMessageSize, LPSTR lpszMessag return ERROR_INVALID_HANDLE; } -DWORD MraSymbolsToRTFTags(DWORD dwFlags, LPSTR lpszMessage, size_t dwMessageSize, LPSTR lpszMessageConverted, size_t dwMessageConvertedBuffSize, size_t *pdwMessageConvertedSize) +DWORD MraSymbolsToRTFTags(LPSTR lpszMessage, size_t dwMessageSize, LPSTR lpszMessageConverted, size_t dwMessageConvertedBuffSize, size_t *pdwMessageConvertedSize) { DWORD dwRetErrorCode = NO_ERROR; LPSTR lpszFounded[SYMBOLS_COUNT], lpszMessageConvertedCur, lpszMessageCur, lpszMessageCurPrev, lpszMessageConvertedMax; @@ -229,12 +229,12 @@ DWORD CMraProto::MraConvertToRTFW(const CMStringW &wszMessage, CMStringA &szMess lpszStrikeOut = (lf.lfStrikeOut? "\\strike1":lpszNotfink); lpszMessageRTFCur += mir_snprintf(lpszMessageRTFCur, (szMessageRTF.GetLength()-(lpszMessageRTFCur-lpszBase)), "\\viewkind4\\uc1\\pard\\cf1\\f0\\fs%lu%s%s%s%s", dwFontSize, lpszBold, lpszItalic, lpszUnderline, lpszStrikeOut); - if ( !MraSymbolsToRTFTags(0, lpszMessage, wszMessage.GetLength(), lpszMessageRTFCur, (szMessageRTF.GetLength()-(lpszMessageRTFCur-lpszBase)), &dwtm)) { + if (!MraSymbolsToRTFTags(lpszMessage, wszMessage.GetLength(), lpszMessageRTFCur, (szMessageRTF.GetLength() - (lpszMessageRTFCur - lpszBase)), &dwtm)) { lpszMessageRTFCur += dwtm; - if ((lpszBase + szMessageRTF.GetLength()) >= (lpszMessageRTFCur+sizeof(PAR)+sizeof(CRLF)+2)) { - memcpy(lpszMessageRTFCur, PAR, sizeof(PAR));lpszMessageRTFCur += (sizeof(PAR)-1); - memcpy(lpszMessageRTFCur, CRLF, sizeof(CRLF));lpszMessageRTFCur += (sizeof(CRLF)-1); - memcpy(lpszMessageRTFCur, "}", 2);lpszMessageRTFCur += 2; + if ((lpszBase + szMessageRTF.GetLength()) >= (lpszMessageRTFCur + sizeof(PAR) + sizeof(CRLF) + 2)) { + memcpy(lpszMessageRTFCur, PAR, sizeof(PAR)); lpszMessageRTFCur += (sizeof(PAR) - 1); + memcpy(lpszMessageRTFCur, CRLF, sizeof(CRLF)); lpszMessageRTFCur += (sizeof(CRLF) - 1); + memcpy(lpszMessageRTFCur, "}", 2); lpszMessageRTFCur += 2; debugLogA("%s\n", szMessageRTF); return NO_ERROR; } diff --git a/protocols/MRA/src/MraSendCommand.cpp b/protocols/MRA/src/MraSendCommand.cpp index b25fb0033c..7dadd9cf3c 100644 --- a/protocols/MRA/src/MraSendCommand.cpp +++ b/protocols/MRA/src/MraSendCommand.cpp @@ -298,7 +298,7 @@ DWORD CMraProto::MraFileTransfer(const CMStringA &szEmail, DWORD dwIDRequest, DW } // Ответ на отправку файлов -DWORD CMraProto::MraFileTransferAck(DWORD dwStatus, const CMStringA &szEmail, DWORD dwIDRequest, LPBYTE lpbDescription, size_t dwDescriptionSize) +DWORD CMraProto::MraFileTransferAck(DWORD dwStatus, const CMStringA &szEmail, DWORD dwIDRequest, const CMStringA &szDescription) { if (szEmail.GetLength() <= 4) return 0; @@ -307,7 +307,7 @@ DWORD CMraProto::MraFileTransferAck(DWORD dwStatus, const CMStringA &szEmail, DW buf.SetUL(dwStatus); buf.SetLPSLowerCase(szEmail); buf.SetUL(dwIDRequest); - buf.SetLPS(lpbDescription); + buf.SetLPS(szDescription); return MraSendCMD(MRIM_CS_FILE_TRANSFER_ACK, buf.Data(), buf.Len()); } @@ -413,9 +413,8 @@ DWORD CMraProto::MraGame(const CMStringA &szEmail, DWORD dwGameSessionID, DWORD } // Авторизация -DWORD CMraProto::MraLogin2W(CMStringA &szLogin, CMStringA &szPassword, DWORD dwStatus, CMStringA &szStatusUri, CMStringW &wszStatusTitle, CMStringW &wszStatusDesc, DWORD dwFutureFlags, CMStringA &szUserAgentFormatted, CMStringA &szUserAgent) +DWORD CMraProto::MraLogin2W(const CMStringA &szLogin, const CMStringA &szPassword, DWORD dwStatus, const CMStringA &szStatusUri, CMStringW &wszStatusTitle, CMStringW &wszStatusDesc, DWORD dwFutureFlags, CMStringA &szUserAgentFormatted, CMStringA &szUserAgent) { - if (szStatusUri.GetLength() > SPEC_STATUS_URI_MAX) szStatusUri.Truncate(SPEC_STATUS_URI_MAX); if (wszStatusTitle.GetLength() > STATUS_TITLE_MAX) wszStatusTitle.Truncate(STATUS_TITLE_MAX); if (wszStatusDesc.GetLength() > STATUS_DESC_MAX) wszStatusDesc.Truncate(STATUS_DESC_MAX); if (szUserAgentFormatted.GetLength() > USER_AGENT_MAX) szUserAgentFormatted.Truncate(USER_AGENT_MAX); diff --git a/protocols/MRA/src/MraSendQueue.cpp b/protocols/MRA/src/MraSendQueue.cpp index 41a90c55bc..4e17b3a4f0 100644 --- a/protocols/MRA/src/MraSendQueue.cpp +++ b/protocols/MRA/src/MraSendQueue.cpp @@ -31,7 +31,7 @@ DWORD MraSendQueueInitialize(DWORD dwSendTimeOutInterval, HANDLE *phSendQueueHan if (!pmrasqSendQueue) return GetLastError(); - DWORD dwRetErrorCode = ListMTInitialize(pmrasqSendQueue, 0); + DWORD dwRetErrorCode = ListMTInitialize(pmrasqSendQueue); if (dwRetErrorCode == NO_ERROR) { pmrasqSendQueue->dwSendTimeOutInterval = dwSendTimeOutInterval; *phSendQueueHandle = (HANDLE)pmrasqSendQueue; @@ -47,7 +47,7 @@ void MraSendQueueDestroy(HANDLE hSendQueueHandle) MRA_SEND_QUEUE *pmrasqSendQueue = (MRA_SEND_QUEUE*)hSendQueueHandle; MRA_SEND_QUEUE_ITEM *pmrasqiSendQueueItem; { - mt_lock l(pmrasqSendQueue); + mir_cslock l(pmrasqSendQueue->cs); while ( !ListMTItemGetFirst(pmrasqSendQueue, NULL, (LPVOID*)&pmrasqiSendQueueItem)) { ListMTItemDelete(pmrasqSendQueue, pmrasqiSendQueueItem); mir_free(pmrasqiSendQueueItem); @@ -79,7 +79,7 @@ DWORD MraSendQueueAdd(HANDLE hSendQueueHandle, DWORD dwCMDNum, DWORD dwFlags, MC pmrasqiSendQueueItem->lpbData = lpbData; pmrasqiSendQueueItem->dwDataSize = dwDataSize; - mt_lock l(pmrasqSendQueue); + mir_cslock l(pmrasqSendQueue->cs); ListMTItemAdd(pmrasqSendQueue, pmrasqiSendQueueItem, pmrasqiSendQueueItem); return 0; } @@ -93,7 +93,7 @@ DWORD MraSendQueueFree(HANDLE hSendQueueHandle, DWORD dwCMDNum) MRA_SEND_QUEUE_ITEM *pmrasqiSendQueueItem; LIST_MT_ITERATOR lmtiIterator; - mt_lock l(pmrasqSendQueue); + mir_cslock l(pmrasqSendQueue->cs); ListMTIteratorMoveFirst(pmrasqSendQueue, &lmtiIterator); do { if ( !ListMTIteratorGet(&lmtiIterator, NULL, (LPVOID*)&pmrasqiSendQueueItem)) @@ -117,7 +117,7 @@ DWORD MraSendQueueFind(HANDLE hSendQueueHandle, DWORD dwCMDNum, DWORD *pdwFlags, MRA_SEND_QUEUE_ITEM *pmrasqiSendQueueItem; LIST_MT_ITERATOR lmtiIterator; - mt_lock l(pmrasqSendQueue); + mir_cslock l(pmrasqSendQueue->cs); ListMTIteratorMoveFirst(pmrasqSendQueue, &lmtiIterator); do { if ( !ListMTIteratorGet(&lmtiIterator, NULL, (LPVOID*)&pmrasqiSendQueueItem)) @@ -145,7 +145,7 @@ DWORD MraSendQueueFindOlderThan(HANDLE hSendQueueHandle, DWORD dwTime, DWORD *pd (*((DWORDLONG*)&ftExpireTime))-=((DWORDLONG)dwTime*FILETIME_SECOND); MRA_SEND_QUEUE *pmrasqSendQueue = (MRA_SEND_QUEUE*)hSendQueueHandle; - mt_lock l(pmrasqSendQueue); + mir_cslock l(pmrasqSendQueue->cs); LIST_MT_ITERATOR lmtiIterator; ListMTIteratorMoveFirst(pmrasqSendQueue, &lmtiIterator); diff --git a/protocols/MRA/src/Mra_functions.cpp b/protocols/MRA/src/Mra_functions.cpp index 54b57e5a4e..11f3e8d2a2 100644 --- a/protocols/MRA/src/Mra_functions.cpp +++ b/protocols/MRA/src/Mra_functions.cpp @@ -29,7 +29,7 @@ LRESULT CALLBACK MessageEditSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPA CMStringA MraGetSelfVersionString() { WORD v[4]; - DWORD dwMirVer = CallService(MS_SYSTEM_GETFILEVERSION, 0, (LPARAM)v); + CallService(MS_SYSTEM_GETFILEVERSION, 0, (LPARAM)v); LPSTR lpszSecIM = ServiceExists("SecureIM/IsContactSecured") ? " + SecureIM" : ""; CMStringA szSelfVersion; @@ -569,7 +569,7 @@ bool CMraProto::MraUpdateContactInfo(MCONTACT hContact) if (IsContactMra(hContact)) { CMStringA szEmail; if (mraGetStringA(hContact, "e-mail", szEmail)) { - MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, GAIF_FORCE, hContact, 0); + MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, GAIF_FORCE, hContact); if (MraWPRequestByEMail(hContact, ACKTYPE_GETINFO, szEmail)) return true; } @@ -623,7 +623,7 @@ DWORD CMraProto::MraSetContactStatus(MCONTACT hContact, DWORD dwNewStatus) if (bChatAgent) MraChatSessionNew(hContact); } - MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact, 0); + MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact); } setWord(hContact, "Status", (WORD)dwNewStatus); @@ -631,7 +631,7 @@ DWORD CMraProto::MraSetContactStatus(MCONTACT hContact, DWORD dwNewStatus) return dwOldStatus; } -void CMraProto::MraUpdateEmailStatus(const CMStringA &pszFrom, const CMStringA &pszSubject, DWORD dwDate, DWORD dwUIDL, bool force_display) +void CMraProto::MraUpdateEmailStatus(const CMStringA &pszFrom, const CMStringA &pszSubject, bool force_display) { BOOL bTrayIconNewMailNotify; WCHAR szStatusText[MAX_SECONDLINE]; @@ -1144,7 +1144,7 @@ INT_PTR CALLBACK SendReplyBlogStatusDlgProc(HWND hWndDlg, UINT message, WPARAM w DWORDLONG dwBlogStatusID; TCHAR szBuff[MICBLOG_STATUS_MAX]; - size_t dwBuffSize = GetDlgItemText(hWndDlg, IDC_MSG_TO_SEND, szBuff, SIZEOF(szBuff)); + GetDlgItemText(hWndDlg, IDC_MSG_TO_SEND, szBuff, SIZEOF(szBuff)); if (dat->hContact) { dwFlags = (MRIM_BLOG_STATUS_REPLY | MRIM_BLOG_STATUS_NOTIFY); @@ -1224,85 +1224,83 @@ DWORD GetYears(CONST PSYSTEMTIME pcstSystemTime) DWORD FindFile(LPWSTR lpszFolder, DWORD dwFolderLen, LPWSTR lpszFileName, DWORD dwFileNameLen, LPWSTR lpszRetFilePathName, DWORD dwRetFilePathLen, DWORD *pdwRetFilePathLen) { - DWORD dwRetErrorCode; - - if (lpszFolder && dwFolderLen && lpszFileName && dwFileNameLen) { - TCHAR szPath[32768]; - DWORD dwPathLen, dwRecDeepAllocated, dwRecDeepCurPos, dwFilePathLen; - RECURSION_DATA_STACK_ITEM *prdsiItems; - - if (dwFolderLen == -1) dwFolderLen = mir_wstrlen(lpszFolder); - if (dwFileNameLen == -1) dwFileNameLen = mir_wstrlen(lpszFileName); - - dwRecDeepCurPos = 0; - dwRecDeepAllocated = RECURSION_DATA_STACK_ITEMS_MIN; - prdsiItems = (RECURSION_DATA_STACK_ITEM*)mir_calloc(dwRecDeepAllocated*sizeof(RECURSION_DATA_STACK_ITEM)); - if (prdsiItems) { - dwPathLen = dwFolderLen; - memcpy(szPath, lpszFolder, (dwPathLen*sizeof(WCHAR))); - if (szPath[(dwPathLen - 1)] != '\\') { - szPath[dwPathLen] = '\\'; - dwPathLen++; - } - szPath[dwPathLen] = 0; - mir_tstrcat(szPath, _T("*.*")); - - prdsiItems[dwRecDeepCurPos].dwFileNameLen = 0; - prdsiItems[dwRecDeepCurPos].hFind = FindFirstFileEx(szPath, FindExInfoStandard, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData, FindExSearchNameMatch, NULL, 0); - if (prdsiItems[dwRecDeepCurPos].hFind != INVALID_HANDLE_VALUE) { - dwRetErrorCode = ERROR_FILE_NOT_FOUND; - do { - dwPathLen -= prdsiItems[dwRecDeepCurPos].dwFileNameLen; - - while (dwRetErrorCode == ERROR_FILE_NOT_FOUND && FindNextFile(prdsiItems[dwRecDeepCurPos].hFind, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData)) { - if (prdsiItems[dwRecDeepCurPos].w32fdFindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) {// folder - if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T("."), 1) != CSTR_EQUAL) - if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T(".."), 2) != CSTR_EQUAL) { - prdsiItems[dwRecDeepCurPos].dwFileNameLen = (mir_wstrlen(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName) + 1); - memcpy((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, (prdsiItems[dwRecDeepCurPos].dwFileNameLen*sizeof(WCHAR))); - mir_tstrcat(szPath, _T("\\*.*")); - dwPathLen += prdsiItems[dwRecDeepCurPos].dwFileNameLen; - - dwRecDeepCurPos++; - if (dwRecDeepCurPos == dwRecDeepAllocated) { // need more space - dwRecDeepAllocated += RECURSION_DATA_STACK_ITEMS_MIN; - prdsiItems = (RECURSION_DATA_STACK_ITEM*)mir_realloc(prdsiItems, dwRecDeepAllocated*sizeof(RECURSION_DATA_STACK_ITEM)); - if (prdsiItems == NULL) { - dwRecDeepCurPos = 0; - dwRetErrorCode = GetLastError(); - break; - } - } - prdsiItems[dwRecDeepCurPos].hFind = FindFirstFileEx(szPath, FindExInfoStandard, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData, FindExSearchNameMatch, NULL, 0); - } - } - else {// file - if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, lpszFileName, dwFileNameLen) == CSTR_EQUAL) { - prdsiItems[dwRecDeepCurPos].dwFileNameLen = mir_wstrlen(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName); - memcpy((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, ((prdsiItems[dwRecDeepCurPos].dwFileNameLen + 1)*sizeof(WCHAR))); - dwFilePathLen = (dwPathLen + prdsiItems[dwRecDeepCurPos].dwFileNameLen); - - if (pdwRetFilePathLen) (*pdwRetFilePathLen) = dwFilePathLen; - if (lpszRetFilePathName && dwRetFilePathLen) { - dwFilePathLen = min(dwFilePathLen, dwRetFilePathLen); - memcpy(lpszRetFilePathName, szPath, ((dwFilePathLen + 1)*sizeof(WCHAR))); - } - - dwRetErrorCode = NO_ERROR; + if (!lpszFolder || !dwFolderLen || !lpszFileName || !dwFileNameLen) + return ERROR_INVALID_HANDLE; + + TCHAR szPath[32768]; + DWORD dwPathLen, dwRecDeepAllocated, dwRecDeepCurPos, dwFilePathLen; + RECURSION_DATA_STACK_ITEM *prdsiItems; + + if (dwFolderLen == -1) dwFolderLen = mir_wstrlen(lpszFolder); + if (dwFileNameLen == -1) dwFileNameLen = mir_wstrlen(lpszFileName); + + dwRecDeepCurPos = 0; + dwRecDeepAllocated = RECURSION_DATA_STACK_ITEMS_MIN; + prdsiItems = (RECURSION_DATA_STACK_ITEM*)mir_calloc(dwRecDeepAllocated*sizeof(RECURSION_DATA_STACK_ITEM)); + if (prdsiItems == NULL) + return GetLastError(); + + DWORD dwRetErrorCode = ERROR_FILE_NOT_FOUND; + dwPathLen = dwFolderLen; + memcpy(szPath, lpszFolder, (dwPathLen*sizeof(WCHAR))); + if (szPath[(dwPathLen - 1)] != '\\') { + szPath[dwPathLen] = '\\'; + dwPathLen++; + } + szPath[dwPathLen] = 0; + mir_tstrcat(szPath, _T("*.*")); + + prdsiItems[dwRecDeepCurPos].dwFileNameLen = 0; + prdsiItems[dwRecDeepCurPos].hFind = FindFirstFileEx(szPath, FindExInfoStandard, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData, FindExSearchNameMatch, NULL, 0); + if (prdsiItems[dwRecDeepCurPos].hFind != INVALID_HANDLE_VALUE) { + do { + dwPathLen -= prdsiItems[dwRecDeepCurPos].dwFileNameLen; + + while (dwRetErrorCode == ERROR_FILE_NOT_FOUND && FindNextFile(prdsiItems[dwRecDeepCurPos].hFind, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData)) { + if (prdsiItems[dwRecDeepCurPos].w32fdFindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) {// folder + if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T("."), 1) != CSTR_EQUAL) + if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, _T(".."), 2) != CSTR_EQUAL) { + prdsiItems[dwRecDeepCurPos].dwFileNameLen = (mir_wstrlen(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName) + 1); + memcpy((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, (prdsiItems[dwRecDeepCurPos].dwFileNameLen*sizeof(WCHAR))); + mir_tstrcat(szPath, _T("\\*.*")); + dwPathLen += prdsiItems[dwRecDeepCurPos].dwFileNameLen; + + dwRecDeepCurPos++; + if (dwRecDeepCurPos == dwRecDeepAllocated) { // need more space + dwRecDeepAllocated += RECURSION_DATA_STACK_ITEMS_MIN; + prdsiItems = (RECURSION_DATA_STACK_ITEM*)mir_realloc(prdsiItems, dwRecDeepAllocated*sizeof(RECURSION_DATA_STACK_ITEM)); + if (prdsiItems == NULL) { + dwRecDeepCurPos = 0; + dwRetErrorCode = GetLastError(); + break; } } + prdsiItems[dwRecDeepCurPos].hFind = FindFirstFileEx(szPath, FindExInfoStandard, &prdsiItems[dwRecDeepCurPos].w32fdFindFileData, FindExSearchNameMatch, NULL, 0); } + } + else {// file + if (CompareString(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), NORM_IGNORECASE, prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, -1, lpszFileName, dwFileNameLen) == CSTR_EQUAL) { + prdsiItems[dwRecDeepCurPos].dwFileNameLen = mir_wstrlen(prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName); + memcpy((szPath + dwPathLen), prdsiItems[dwRecDeepCurPos].w32fdFindFileData.cFileName, ((prdsiItems[dwRecDeepCurPos].dwFileNameLen + 1)*sizeof(WCHAR))); + dwFilePathLen = (dwPathLen + prdsiItems[dwRecDeepCurPos].dwFileNameLen); + + if (pdwRetFilePathLen) (*pdwRetFilePathLen) = dwFilePathLen; + if (lpszRetFilePathName && dwRetFilePathLen) { + dwFilePathLen = min(dwFilePathLen, dwRetFilePathLen); + memcpy(lpszRetFilePathName, szPath, ((dwFilePathLen + 1)*sizeof(WCHAR))); + } - if (prdsiItems) FindClose(prdsiItems[dwRecDeepCurPos].hFind); - dwRecDeepCurPos--; + dwRetErrorCode = NO_ERROR; + } } - while (dwRecDeepCurPos != -1); } - mir_free(prdsiItems); + + if (prdsiItems) FindClose(prdsiItems[dwRecDeepCurPos].hFind); + dwRecDeepCurPos--; } - else dwRetErrorCode = GetLastError(); + while (dwRecDeepCurPos != -1); } - else dwRetErrorCode = ERROR_INVALID_HANDLE; + mir_free(prdsiItems); return dwRetErrorCode; } diff --git a/protocols/MRA/src/Mra_menus.cpp b/protocols/MRA/src/Mra_menus.cpp index 5371cec28c..30c114b49b 100644 --- a/protocols/MRA/src/Mra_menus.cpp +++ b/protocols/MRA/src/Mra_menus.cpp @@ -1,31 +1,31 @@ #include "Mra.h" #include "proto.h" -INT_PTR CMraProto::MraGotoInbox(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraGotoInbox(WPARAM, LPARAM) { MraMPopSessionQueueAddUrl(hMPopSessionQueue, MRA_WIN_INBOX_URL); return 0; } -INT_PTR CMraProto::MraShowInboxStatus(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraShowInboxStatus(WPARAM, LPARAM) { - MraUpdateEmailStatus("", "", 0, 0, true); + MraUpdateEmailStatus("", "", true); return 0; } -INT_PTR CMraProto::MraEditProfile(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraEditProfile(WPARAM, LPARAM) { MraMPopSessionQueueAddUrl(hMPopSessionQueue, MRA_EDIT_PROFILE_URL); return 0; } -INT_PTR CMraProto::MraWebSearch(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraWebSearch(WPARAM, LPARAM) { CallService(MS_UTILS_OPENURL, OUF_NEWWINDOW | OUF_TCHAR, (LPARAM)MRA_SEARCH_URL); return 0; } -INT_PTR CMraProto::MraUpdateAllUsersInfo(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraUpdateAllUsersInfo(WPARAM, LPARAM) { if (!m_bLoggedIn) return 0; @@ -40,20 +40,20 @@ INT_PTR CMraProto::MraUpdateAllUsersInfo(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraCheckUpdatesUsersAvt(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraCheckUpdatesUsersAvt(WPARAM, LPARAM) { if (MessageBox(NULL, TranslateT("Are you sure?"), TranslateT(MRA_CHK_USERS_AVATARS_STR), MB_YESNO | MB_ICONQUESTION) == IDYES) { for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { CMStringA szEmail; if (mraGetStringA(hContact, "e-mail", szEmail)) if (!IsEMailChatAgent(szEmail)) - MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact, 0); + MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, 0, hContact); } } return 0; } -INT_PTR CMraProto::MraRequestAuthForAll(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraRequestAuthForAll(WPARAM, LPARAM) { if (!m_bLoggedIn) return 0; @@ -69,7 +69,7 @@ INT_PTR CMraProto::MraRequestAuthForAll(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraRequestAuthorization(WPARAM hContact, LPARAM lParam) +INT_PTR CMraProto::MraRequestAuthorization(WPARAM hContact, LPARAM) { if (!hContact || !m_bLoggedIn) return 0; @@ -93,7 +93,7 @@ INT_PTR CMraProto::MraRequestAuthorization(WPARAM hContact, LPARAM lParam) return 1; } -INT_PTR CMraProto::MraGrantAuthorization(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraGrantAuthorization(WPARAM wParam, LPARAM) { if (!m_bLoggedIn || !wParam) return 0; @@ -106,7 +106,7 @@ INT_PTR CMraProto::MraGrantAuthorization(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraSendEmail(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraSendEmail(WPARAM wParam, LPARAM) { DWORD dwContactEMailCount = GetContactEMailCount(wParam, FALSE); if (dwContactEMailCount) { @@ -123,7 +123,7 @@ INT_PTR CMraProto::MraSendEmail(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraSendPostcard(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraSendPostcard(WPARAM wParam, LPARAM) { DWORD dwContactEMailCount = GetContactEMailCount(wParam, FALSE); if (dwContactEMailCount) { @@ -140,7 +140,7 @@ INT_PTR CMraProto::MraSendPostcard(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraViewAlbum(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraViewAlbum(WPARAM wParam, LPARAM) { DWORD dwContactEMailMRCount = GetContactEMailCount(wParam, TRUE); if (dwContactEMailMRCount) { @@ -154,7 +154,7 @@ INT_PTR CMraProto::MraViewAlbum(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraReplyBlogStatus(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraReplyBlogStatus(WPARAM wParam, LPARAM) { if (!m_bLoggedIn) return 0; @@ -167,7 +167,7 @@ INT_PTR CMraProto::MraReplyBlogStatus(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraViewVideo(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraViewVideo(WPARAM wParam, LPARAM) { DWORD dwContactEMailMRCount = GetContactEMailCount(wParam, TRUE); if (dwContactEMailMRCount) { @@ -181,7 +181,7 @@ INT_PTR CMraProto::MraViewVideo(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraAnswers(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraAnswers(WPARAM wParam, LPARAM) { DWORD dwContactEMailMRCount = GetContactEMailCount(wParam, TRUE); if (dwContactEMailMRCount) { @@ -195,7 +195,7 @@ INT_PTR CMraProto::MraAnswers(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraWorld(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraWorld(WPARAM wParam, LPARAM) { DWORD dwContactEMailMRCount = GetContactEMailCount(wParam, TRUE); if (dwContactEMailMRCount) { @@ -211,7 +211,7 @@ INT_PTR CMraProto::MraWorld(WPARAM wParam, LPARAM lParam) ///////////////////////////////////////////////////////////////////////////////////////// -int CMraProto::MraRebuildContactMenu(WPARAM hContact, LPARAM lParam) +int CMraProto::MraRebuildContactMenu(WPARAM hContact, LPARAM) { bool bIsContactMRA, bHasEMail, bHasEMailMR, bChatAgent; DWORD dwContactSeverFlags = 0; @@ -275,7 +275,7 @@ int CMraProto::MraRebuildContactMenu(WPARAM hContact, LPARAM lParam) ///////////////////////////////////////////////////////////////////////////////////////// -int CMraProto::MraRebuildStatusMenu(WPARAM wParam, LPARAM lParam) +int CMraProto::MraRebuildStatusMenu(WPARAM, LPARAM) { CHAR szServiceFunction[MAX_PATH * 2], *pszServiceFunctionName, szValueName[MAX_PATH]; strncpy(szServiceFunction, m_szModuleName, sizeof(szServiceFunction)); @@ -305,12 +305,12 @@ int CMraProto::MraRebuildStatusMenu(WPARAM wParam, LPARAM lParam) if (mraGetStringW(NULL, szValueName, szStatusTitle)) mi.ptszName = (TCHAR*)szStatusTitle.c_str(); else - mi.ptszName = lpcszXStatusNameDef[i]; + mi.ptszName = (TCHAR*)lpcszXStatusNameDef[i]; mi.icolibItem = hXStatusAdvancedStatusIcons[i]; } else { - mi.ptszName = lpcszXStatusNameDef[i]; + mi.ptszName = (TCHAR*)lpcszXStatusNameDef[i]; mi.hIcon = NULL; } hXStatusMenuItems[i] = Menu_AddStatusMenuItem(&mi); diff --git a/protocols/MRA/src/Mra_proto.cpp b/protocols/MRA/src/Mra_proto.cpp index 948d62cb46..596fe4d1b9 100644 --- a/protocols/MRA/src/Mra_proto.cpp +++ b/protocols/MRA/src/Mra_proto.cpp @@ -30,10 +30,8 @@ DWORD CMraProto::StartConnect() return ERROR_OPERATION_ABORTED; } -void CMraProto::MraThreadProc(LPVOID lpParameter) +void CMraProto::MraThreadProc(LPVOID) { - DWORD dwRetErrorCode = NO_ERROR; - BOOL bConnected = FALSE; CMStringA szHost; DWORD dwConnectReTryCount, dwCurConnectReTryCount; @@ -371,7 +369,7 @@ bool CMraProto::CmdHelloAck(BinBuffer &buf) if (!mraGetStringA(NULL, "e-mail", szEmail)) return false; - MraLogin2W(szEmail, szPass, dwStatus, CMStringA(lpcszStatusUri[dwXStatus]), wszStatusTitle, wszStatusDesc, dwFutureFlags, szUserAgentFormatted, szSelfVersionString); + MraLogin2W(szEmail, szPass, dwStatus, lpcszStatusUri[dwXStatus], wszStatusTitle, wszStatusDesc, dwFutureFlags, szUserAgentFormatted, szSelfVersionString); return true; } @@ -382,7 +380,7 @@ bool CMraProto::CmdLoginAck() m_dwNextPingSendTickTime = 0; // force send ping MraSendCMD(MRIM_CS_PING, NULL, 0); SetStatus(m_iDesiredStatus); - MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, GAIF_FORCE, NULL, 0); + MraAvatarsQueueGetAvatarSimple(hAvatarsQueueHandle, GAIF_FORCE, NULL); return true; } @@ -518,7 +516,7 @@ bool CMraProto::CmdUserInfo(BinBuffer &buf) } else _CrtDbgBreak(); } - MraUpdateEmailStatus("", "", 0, 0, false); + MraUpdateEmailStatus("", "", false); return true; } @@ -1052,7 +1050,7 @@ bool CMraProto::CmdClist2(BinBuffer &buf) if (dwTemp == GET_CONTACTS_OK) { // received contact list m_groups.destroy(); - DWORD dwGroupsCount, dwContactFlag, dwGroupID, dwContactSeverFlags, dwStatus, dwXStatus, dwFutureFlags, dwBlogStatusTime; + DWORD dwGroupsCount, dwContactFlag = 0, dwGroupID = 0, dwContactSeverFlags = 0, dwStatus = 0, dwXStatus, dwFutureFlags = 0, dwBlogStatusTime = 0; ULARGE_INTEGER dwBlogStatusID; CMStringA szGroupMask, szContactMask, szEmail, szString; CMStringA szCustomPhones, szSpecStatusUri, szUserAgentFormatted; @@ -1425,7 +1423,7 @@ bool CMraProto::CmdNewMail(BinBuffer &buf) DWORD dwSave = m_dwEmailMessagesUnread; m_dwEmailMessagesUnread = dwUnreadCount;// store new value if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY) == 0 || dwSave < dwUnreadCount || dwUnreadCount == 0) - MraUpdateEmailStatus(szEmail, szString, dwDate, dwUIDL, false); + MraUpdateEmailStatus(szEmail, szString, false); return true; } @@ -1506,7 +1504,7 @@ bool CMraProto::MraCommandDispatcher(mrim_packet_header_t *pmaHeader) dwAckType = m_dwEmailMessagesUnread;// save old value m_dwEmailMessagesUnread = dwTemp;// store new value if (getByte("IncrementalNewMailNotify", MRA_DEFAULT_INC_NEW_MAIL_NOTIFY) == 0 || dwAckType < dwTemp || dwTemp == 0) - MraUpdateEmailStatus("", "", 0, 0, false); + MraUpdateEmailStatus("", "", false); break; case MRIM_CS_SMS_ACK: @@ -1551,7 +1549,7 @@ bool CMraProto::MraCommandDispatcher(mrim_packet_header_t *pmaHeader) // Сообщение DWORD CMraProto::MraRecvCommand_Message(DWORD dwTime, DWORD dwFlags, CMStringA &plpsFrom, CMStringA &plpsText, CMStringA &plpsRFTText, CMStringA &plpsMultiChatData) { - DWORD dwRetErrorCode = NO_ERROR, dwBackColour; + DWORD dwBackColour; CMStringA lpszMessageExt; CMStringW wszMessage; diff --git a/protocols/MRA/src/Mra_svcs.cpp b/protocols/MRA/src/Mra_svcs.cpp index f114c956fe..3c34bdb147 100644 --- a/protocols/MRA/src/Mra_svcs.cpp +++ b/protocols/MRA/src/Mra_svcs.cpp @@ -1,7 +1,7 @@ #include "Mra.h" #include "proto.h" -const LPSTR lpcszStatusUri[] = +LPCSTR lpcszStatusUri[] = { "", // offline // "status_0", "STATUS_ONLINE", // "status_1", @@ -64,7 +64,7 @@ const LPSTR lpcszStatusUri[] = NULL }; -const LPWSTR lpcszXStatusNameDef[] = +LPCWSTR lpcszXStatusNameDef[] = { LPGENT("None"), LPGENT("Sick"), @@ -159,7 +159,7 @@ void CMraProto::SetExtraIcons(MCONTACT hContact) ExtraIcon_SetIcon(hExtraInfo, hContact, (dwIconID != -1) ? gdiExtraStatusIconsItems[dwIconID].hIcolib : NULL); } -INT_PTR CMraProto::MraXStatusMenu(WPARAM wParam, LPARAM lParam, LPARAM param) +INT_PTR CMraProto::MraXStatusMenu(WPARAM, LPARAM, LPARAM param) { if (MraRequestXStatusDetails(param) == FALSE) MraSetXStatusInternal(param); @@ -168,7 +168,7 @@ INT_PTR CMraProto::MraXStatusMenu(WPARAM wParam, LPARAM lParam, LPARAM param) ///////////////////////////////////////////////////////////////////////////////////////// -int CMraProto::MraContactDeleted(WPARAM hContact, LPARAM lParam) +int CMraProto::MraContactDeleted(WPARAM hContact, LPARAM) { if (!m_bLoggedIn || !hContact) return 0; @@ -293,13 +293,13 @@ int CMraProto::MraDbSettingChanged(WPARAM hContact, LPARAM lParam) ///////////////////////////////////////////////////////////////////////////////////////// // Extra icons -int CMraProto::MraExtraIconsApply(WPARAM wParam, LPARAM lParam) +int CMraProto::MraExtraIconsApply(WPARAM wParam, LPARAM) { SetExtraIcons(wParam); return 0; } -INT_PTR CMraProto::MraSetListeningTo(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraSetListeningTo(WPARAM, LPARAM lParam) { LISTENINGTOINFO *pliInfo = (LISTENINGTOINFO*)lParam; @@ -379,7 +379,7 @@ DWORD CMraProto::MraSetXStatusInternal(DWORD dwXStatus) return dwOldStatusMode; } -INT_PTR CMraProto::MraSetXStatusEx(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraSetXStatusEx(WPARAM, LPARAM lParam) { INT_PTR iRet = 1; DWORD dwXStatus; @@ -564,31 +564,30 @@ INT_PTR CMraProto::MraSendSMS(WPARAM wParam, LPARAM lParam) return 0; } -INT_PTR CMraProto::MraSendNudge(WPARAM hContact, LPARAM lParam) +INT_PTR CMraProto::MraSendNudge(WPARAM hContact, LPARAM) { if (m_bLoggedIn && hContact) { LPWSTR lpwszAlarmMessage = TranslateW(MRA_ALARM_MESSAGE); CMStringA szEmail; if (mraGetStringA(hContact, "e-mail", szEmail)) - if (MraMessage(FALSE, hContact, 0, (MESSAGE_FLAG_RTF | MESSAGE_FLAG_ALARM), szEmail, lpwszAlarmMessage, NULL, 0)) - return 0; + if (MraMessage(FALSE, hContact, 0, (MESSAGE_FLAG_RTF | MESSAGE_FLAG_ALARM), szEmail, lpwszAlarmMessage, NULL, 0)) + return 0; } return 1; } -INT_PTR CMraProto::GetUnreadEmailCount(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::GetUnreadEmailCount(WPARAM, LPARAM) { - if ( !m_bLoggedIn ) + if (!m_bLoggedIn) return 0; return m_dwEmailMessagesUnread; } - ///////////////////////////////////////////////////////////////////////////////////////// // Avatars -INT_PTR CMraProto::MraGetAvatarCaps(WPARAM wParam, LPARAM lParam) +INT_PTR CMraProto::MraGetAvatarCaps(WPARAM wParam, LPARAM) { switch (wParam) { case AF_MAXSIZE: diff --git a/protocols/MRA/src/Sdk/FIFOMT.h b/protocols/MRA/src/Sdk/FIFOMT.h index 3c6c250d87..0cff1914d5 100644 --- a/protocols/MRA/src/Sdk/FIFOMT.h +++ b/protocols/MRA/src/Sdk/FIFOMT.h @@ -44,13 +44,10 @@ typedef PCLIST_MT_ITEM PCFIFO_MT_ITEM, LPCFIFO_MT_ITEM; typedef LIST_MT_ITERATOR FIFO_MT_ITERATOR, *PFIFO_MT_ITERATOR, *LPFIFO_MT_ITERATOR; typedef PCLIST_MT_ITERATOR PCFIFO_MT_ITERATOR, LPCFIFO_MT_ITERATOR; -#define FifoMTInitialize(pcpmtFifoMT,dwSpinCount) ListMTInitialize(pcpmtFifoMT,dwSpinCount) -#define FifoMTDestroy(pcpmtFifoMT) ListMTDestroy(pcpmtFifoMT) - __inline size_t FifoMTItemPush(PCFIFO_MT pcpmtFifoMT,PCFIFO_MT_ITEM pcffmtiFifoItem,LPVOID lpData) { - mt_lock l(pcpmtFifoMT); + mir_cslock l(pcpmtFifoMT->cs); return ListMTItemAdd(pcpmtFifoMT,pcffmtiFifoItem,lpData); } @@ -60,7 +57,7 @@ __inline DWORD FifoMTItemPop(PCFIFO_MT pcpmtFifoMT,PFIFO_MT_ITEM *ppffmtiFifoIte DWORD dwRetErrorCode; PLIST_MT_ITEM plmtiItem; - mt_lock l(pcpmtFifoMT); + mir_cslock l(pcpmtFifoMT->cs); if ((dwRetErrorCode=ListMTItemGetFirst(pcpmtFifoMT,&plmtiItem,plpData))==NO_ERROR) { if (ppffmtiFifoItem) (*ppffmtiFifoItem)=plmtiItem; diff --git a/protocols/MRA/src/Sdk/InternetTime.h b/protocols/MRA/src/Sdk/InternetTime.h index fbb1233e8e..8052bb9ea6 100644 --- a/protocols/MRA/src/Sdk/InternetTime.h +++ b/protocols/MRA/src/Sdk/InternetTime.h @@ -127,8 +127,6 @@ __inline void InternetTimeGetCurrentTime(INTERNET_TIME *pitTime) // Переводит время из MAILTIME в строковое __inline CMStringA InternetTimeGetString(INTERNET_TIME *pitTime) { - DWORD dwRet=NO_ERROR; - char lpszBuff[100]; LPSTR lpszCurPos = lpszBuff; size_t dwTimeLen=0,dwtm; diff --git a/protocols/MRA/src/Sdk/ListMT.h b/protocols/MRA/src/Sdk/ListMT.h index 63cd54b9fb..399765fba2 100644 --- a/protocols/MRA/src/Sdk/ListMT.h +++ b/protocols/MRA/src/Sdk/ListMT.h @@ -57,10 +57,10 @@ 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 + size_t nCount; // *количество элементов в списке + PLIST_MT_ITEM plmtiFirst; // *указывает на первый элемент в списке + PLIST_MT_ITEM plmtiLast; // *указывает на последний элемент в списке + mir_cs cs; // *section for exclysive access to List }LIST_MT, *PLIST_MT, *LPLIST_MT; typedef CONST PLIST_MT PCLIST_MT, LPCLIST_MT; @@ -76,25 +76,12 @@ typedef CONST PLIST_MT_ITERATOR PCLIST_MT_ITERATOR, LPCLIST_MT_ITERATOR; -__inline DWORD ListMTInitialize(PCLIST_MT pclmtListMT,DWORD dwSpinCount) +__inline DWORD ListMTInitialize(PCLIST_MT pclmtListMT) { - DWORD dwRetErrorCode; - -#if (_WIN32_WINNT >= 0x0403) - if (InitializeCriticalSectionAndSpinCount(&pclmtListMT->cs,((dwSpinCount)? (dwSpinCount | 0x80000000):0L))) -#else - InitializeCriticalSection(&pclmtListMT->cs); - if (TRUE) -#endif - { - InterlockedExchangePointer((volatile PVOID*)&pclmtListMT->nCount,NULL); - pclmtListMT->plmtiFirst=NULL; - pclmtListMT->plmtiLast=NULL; - dwRetErrorCode=NO_ERROR; - }else{ - dwRetErrorCode=GetLastError(); - } -return(dwRetErrorCode); + InterlockedExchangePointer((volatile PVOID*)&pclmtListMT->nCount,NULL); + pclmtListMT->plmtiFirst=NULL; + pclmtListMT->plmtiLast=NULL; + return NO_ERROR; } @@ -103,26 +90,10 @@ __inline void ListMTDestroy(PCLIST_MT pclmtListMT) InterlockedExchangePointer((volatile PVOID*)&pclmtListMT->nCount,NULL); pclmtListMT->plmtiFirst=NULL; pclmtListMT->plmtiLast=NULL; - DeleteCriticalSection(&pclmtListMT->cs); SecureZeroMemory(&pclmtListMT->cs,sizeof(CRITICAL_SECTION)); } -class mt_lock -{ - PCLIST_MT m_list; - -public: - __forceinline mt_lock(PCLIST_MT _pList) : - m_list( _pList ) - { EnterCriticalSection(&_pList->cs); - } - - __forceinline ~mt_lock() - { LeaveCriticalSection(&m_list->cs); - } -}; - __inline size_t ListMTGetCount(PCLIST_MT pclmtListMT) { return((size_t)InterlockedCompareExchangePointer((LPVOID*)&pclmtListMT->nCount,NULL,NULL)); diff --git a/protocols/MRA/src/Sdk/timefuncs.h b/protocols/MRA/src/Sdk/timefuncs.h index 8ac5a80edf..eaee4a7e80 100644 --- a/protocols/MRA/src/Sdk/timefuncs.h +++ b/protocols/MRA/src/Sdk/timefuncs.h @@ -51,20 +51,6 @@ typedef union { } FT; -static inline __time32_t __cdecl _time32(__time32_t *timeptr) -{ - __time64_t tim; - FT nt_time; - - GetSystemTimeAsFileTime(&(nt_time.ft_struct)); - tim=(__time64_t)((nt_time.ft_scalar-EPOCH_BIAS)/10000000i64); - if (tim > (__time64_t)(_MAX__TIME32_T)) tim=(__time64_t)(-1); - if (timeptr) *timeptr = (__time32_t)(tim);// store time if requested - -return(__time32_t)(tim); -} - - inline __time32_t MakeTime32FromLocalSystemTime(CONST PSYSTEMTIME pcstSystemTime) { __time64_t tim=0; diff --git a/protocols/MRA/src/version.h b/protocols/MRA/src/version.h index 8334cfee24..fc8129e421 100644 --- a/protocols/MRA/src/version.h +++ b/protocols/MRA/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 2 #define __MINOR_VERSION 1 #define __RELEASE_NUM 0 -#define __BUILD_NUM 8 +#define __BUILD_NUM 9 #include -- cgit v1.2.3