/* Facebook plugin for Miranda Instant Messenger _____________________________________________ Copyright © 2009-11 Michal Zelinka, 2011-17 Robert Pösel 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, see . */ #pragma once #pragma warning(disable:4996) #define _CRT_RAND_S #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class FacebookProto; #include "../../utils/std_string_utils.h" #include "constants.h" #include "entities.h" #include "http.h" #include "http_request.h" #include "list.hpp" #include "client.h" #include "proto.h" #include "json.h" #include "db.h" #include "dialogs.h" #include "theme.h" #include "resource.h" #include "version.h" #include "requests/contacts.h" #include "requests/feeds.h" #include "requests/history.h" #include "requests/channel.h" #include "requests/login.h" #include "requests/messages.h" #include "requests/notifications.h" #include "requests/profile.h" #include "requests/search.h" #include "requests/status.h" #include "requests/utils.h" extern HINSTANCE g_hInstance; extern std::string g_strUserAgent; extern DWORD g_mirandaVersion; class ScopedLock { public: ScopedLock(HANDLE h, int t = INFINITE) : handle_(h), timeout_(t) { WaitForSingleObject(handle_,timeout_); } ~ScopedLock() { if(handle_) ReleaseMutex(handle_); } void Unlock() { ReleaseMutex(handle_); handle_ = 0; } private: HANDLE handle_; int timeout_; }; template __inline static void FreeList(const LIST &lst) { for (int i = 0; i < lst.getCount(); i++) mir_free(lst[i]); }