// ---------------------------------------------------------------------------80 // ICQ plugin for Miranda Instant Messenger // ________________________________________ // // Copyright © 2000-2001 Richard Hughes, Roland Rabien, Tristan Van de Vreede // Copyright © 2001-2002 Jon Keating, Richard Hughes // Copyright © 2002-2004 Martin Öberg, Sam Kothari, Robert Rainwater // Copyright © 2004-2010 Joe Kucera // Copyright © 2012-2018 Miranda NG team // // 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. // ----------------------------------------------------------------------------- #ifndef __UTILITIES_H #define __UTILITIES_H struct icq_ack_args { MCONTACT hContact; int nAckType; int nAckResult; HANDLE hSequence; LPARAM pszMessage; }; struct icq_contacts_cache { MCONTACT hContact; DWORD dwUin; const char *szUid; }; /*---------* Functions *---------------*/ void MoveDlgItem(HWND hwndDlg, int iItem, int left, int top, int width, int height); void EnableDlgItem(HWND hwndDlg, UINT control, int state); void ShowDlgItem(HWND hwndDlg, UINT control, int state); void icq_EnableMultipleControls(HWND hwndDlg, const UINT* controls, int cControls, int state); void icq_ShowMultipleControls(HWND hwndDlg, const UINT* controls, int cControls, int state); int IcqStatusToMiranda(WORD wStatus); WORD MirandaStatusToIcq(int nStatus); int MirandaStatusToSupported(int nMirandaStatus); char* MirandaStatusToStringUtf(int); int AwayMsgTypeToStatus(int nMsgType); void SetGatewayIndex(HANDLE hConn, DWORD dwIndex); DWORD GetGatewayIndex(HANDLE hConn); void FreeGatewayIndex(HANDLE hConn); char* NickFromHandle(MCONTACT hContact); char* NickFromHandleUtf(MCONTACT hContact); char* strUID(DWORD dwUIN, char *pszUID); char* __fastcall strstrnull(const char *str, const char *substr); char* __fastcall null_strdup(const char *string); char* __fastcall null_strcpy(char *dest, const char *src, size_t maxlen); size_t __fastcall null_strcut(char *string, size_t maxlen); WCHAR* __fastcall null_strdup(const WCHAR *string); WCHAR* __fastcall null_strcpy(WCHAR *dest, const WCHAR *src, size_t maxlen); void parseServerAddress(char *szServer, WORD* wPort); char* DemangleXml(const char *string, size_t len); char* MangleXml(const char *string, size_t len); char* EliminateHtml(const char *string, size_t len); char* ApplyEncoding(const char *string, const char *pszEncoding); int RandRange(int nLow, int nHigh); bool IsStringUIN(const char *pszString); char* time2text(time_t time); void __fastcall SAFE_FREE(void** p); void* __fastcall SAFE_MALLOC(size_t size); void* __fastcall SAFE_REALLOC(void* p, size_t size); __inline static void SAFE_FREE(char** str) { SAFE_FREE((void**)str); } __inline static void SAFE_FREE(WCHAR** str) { SAFE_FREE((void**)str); } DWORD ICQWaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds, int bWaitAlways = FALSE); HNETLIBCONN NetLib_OpenConnection(HNETLIBUSER hUser, const char* szIdent, NETLIBOPENCONNECTION* nloc); void NetLib_CloseConnection(HNETLIBCONN *hConnection, int bServerConn); void NetLib_SafeCloseHandle(HANDLE *); char* __fastcall ICQTranslateUtf(const char *src); char* __fastcall ICQTranslateUtfStatic(const char *src, char *buf, size_t bufsize); WORD GetMyStatusFlags(); /* Unicode FS utility functions */ int IsValidRelativePath(const char *filename); LPCSTR ExtractFileName(const char *fullname); char* FileNameToUtf(const wchar_t *filename); int FileAccessUtf(const char *path, int mode); int FileStatUtf(const char *path, struct _stati64 *buffer); int MakeDirUtf(const char *dir); int OpenFileUtf(const char *filename, int oflag, int pmode); /* Unicode UI utility functions */ WCHAR* GetWindowTextUcs(HWND hWnd); void SetWindowTextUcs(HWND hWnd, WCHAR *text); char* GetWindowTextUtf(HWND hWnd); char* GetDlgItemTextUtf(HWND hwndDlg, int iItem); void SetWindowTextUtf(HWND hWnd, const char *szText); void SetDlgItemTextUtf(HWND hwndDlg, int iItem, const char *szText); int ComboBoxAddStringUtf(HWND hCombo, const char *szString, DWORD data); int ListBoxAddStringUtf(HWND hList, const char *szString); int MessageBoxUtf(HWND hWnd, const char *szText, const char *szCaption, UINT uType); void InitXStatusIcons(); void setContactExtraIcon(MCONTACT hContact, int xstatus); int OnReloadIcons(WPARAM wParam, LPARAM lParam); #endif /* __UTILITIES_H */