From bed6bee936ff79d32c08245f0fedaee9d839f76f Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Thu, 28 Apr 2011 12:14:32 +0000 Subject: test rename git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@64 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- dbeditorpp/main.c | 918 ------------------------------------------------------ 1 file changed, 918 deletions(-) delete mode 100644 dbeditorpp/main.c (limited to 'dbeditorpp/main.c') diff --git a/dbeditorpp/main.c b/dbeditorpp/main.c deleted file mode 100644 index e5a0060..0000000 --- a/dbeditorpp/main.c +++ /dev/null @@ -1,918 +0,0 @@ -#include "headers.h" - -#pragma comment(exestr, "\n\n Bio was here 8-) \n") - -// {A8A417EF-07AA-4f37-869F-7BFD74886534} -#define MIID_DBEDITOR {0xa8a417ef, 0x7aa, 0x4f37, { 0x86, 0x9f, 0x7b, 0xfd, 0x74, 0x88, 0x65, 0x34}} - - - -HANDLE hTTBButt = NULL; -DWORD mirandaVer; -BOOL bServiceMode = FALSE; - -//======================== -// MirandaPluginInfo -//======================== -PLUGININFO pluginInfo={ - sizeof(PLUGININFO), - modFullname, - PLUGIN_MAKE_VERSION(3,2,0,0), - "Advanced Database Editor. More advanced & bugfixed by Bio.\r\n[ "__DATE__" "__TIME__" ]", - "Bio, Jonathan Gordon", - "bio@msx.ru, jdgordy@gmail.com", - "© 2003-2006 Bio, Jonathan Gordon", - "http://addons.miranda-im.org/details.php?action=viewfile&id=2957", - 0, //not transient - 0 //doesn't replace anything built-in -}; - -__declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) -{ - if (mirandaVersion < PLUGIN_MAKE_VERSION(0, 7, 0, 0)) // 0.4 better. 0.3 have too many bugs - { - return NULL; - } - return &pluginInfo; -} - -PLUGININFOEX pluginInfoEx={ - sizeof(PLUGININFOEX), - modFullname, - PLUGIN_MAKE_VERSION(3,2,0,0), - "Advanced Database Editor. More advanced & bugfixed by Bio.\r\n[ "__DATE__" "__TIME__" ]", - "Bio, Jonathan Gordon", - "bio@msx.ru, jdgordy@gmail.com", - "© 2003-2006 Bio, Jonathan Gordon", - "http://addons.miranda-im.org/details.php?action=viewfile&id=2957", - UNICODE_AWARE, - 0, - MIID_DBEDITOR -}; - - -__declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) -{ - mirandaVer = mirandaVersion; - return &pluginInfoEx; -} - -// we implement service mode interface -static const MUUID interfaces[] = {MIID_SERVICEMODE, MIID_LAST}; -__declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) -{ - return interfaces; -} - - -//======================== -// WINAPI DllMain -//======================== - -BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) -{ - hInst=hinstDLL; - return TRUE; -} - -//=================== -// MainInit -//=================== - -int MainInit(WPARAM wParam,LPARAM lParam) -{ - return 0; -} - -void settingChanged(HWND hwnd2Settings, HANDLE hContact, char* module, char* setting); - -int DBSettingChanged(WPARAM wParam,LPARAM lParam) -{ - DBCONTACTWRITESETTING *cws=(DBCONTACTWRITESETTING*)lParam; - HANDLE hContact = (HANDLE)wParam; - char *setting; - int i; - SettingListInfo* info; - - if (hwnd2mainWindow) - { - HWND hwnd2Settings = GetDlgItem(hwnd2mainWindow, IDC_SETTINGS); - if (info = (SettingListInfo*)GetWindowLong(hwnd2Settings,GWL_USERDATA)) - { - if ((hContact == info->hContact) && !mir_strcmp(info->module, cws->szModule)) - { - setting = strdup(cws->szSetting); - if (cws->value.type == DBVT_DELETED) - { - LVFINDINFO lvfi; - int index; - lvfi.flags = LVFI_STRING; - lvfi.psz = setting; - lvfi.vkDirection = VK_DOWN; - index = ListView_FindItem(hwnd2Settings,-1,&lvfi); - if (index > -1) - ListView_DeleteItem(hwnd2Settings, index); - safe_free(setting); - return 0; - } - settingChanged(hwnd2Settings, hContact, info->module, setting); - safe_free(setting); - } - } - } - // watch list - if (!hwnd2watchedVarsWindow && !usePopUps) return 0; - - for (i=0; iszModule, WatchListArray.item[i].module)) - { - if (!WatchListArray.item[i].setting || !mir_strcmp(cws->szSetting, WatchListArray.item[i].setting)) - { - if (usePopUps) - popupWatchedVar(hContact,cws->szModule, cws->szSetting); - if (hwnd2watchedVarsWindow) - PopulateWatchedWindow(GetDlgItem(hwnd2watchedVarsWindow, IDC_VARS)); - break; - } - } - } - } - return 0; -} - -static int DBEditorppMenuCommand(WPARAM wParam,LPARAM lParam) -{ - - if (!hwnd2mainWindow) // so only opens 1 at a time - { - hRestore = (HANDLE)wParam; - SetCursor(LoadCursor(NULL,IDC_WAIT)); - CreateDialog(hInst,MAKEINTRESOURCE(IDD_MAIN),0,MainDlgProc); - } - else - { - ShowWindow(hwnd2mainWindow, SW_RESTORE); - SetForegroundWindow(hwnd2mainWindow); - if (!hRestore && wParam) { - hRestore = (HANDLE)wParam; - refreshTree(4); - } - } - - if (hTTBButt) - CallService(MS_TTB_SETBUTTONSTATE, (WPARAM)hTTBButt, (LPARAM)(TTBST_RELEASED)); - - return 0; -} - - -BOOL IsCP_UTF8(void) -{ - CPINFO CPInfo; - - return GetCPInfo(CP_UTF8, &CPInfo); -} - - -BOOL InitWFuctions(void) -{ - HMODULE hDll = LoadLibrary("user32.dll"); - if (hDll) - { - _CreateDialogParamW = (HWND (WINAPI *)(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM))GetProcAddress(hDll, "CreateDialogParamW"); - _CreateWindowExW = (HWND (WINAPI *)(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID))GetProcAddress(hDll, "CreateWindowExW"); - _CallWindowProcW = (LRESULT (WINAPI *)(WNDPROC,HWND,UINT,WPARAM,LPARAM))GetProcAddress(hDll, "CallWindowProcW"); - _SetWindowLongW = (LONG (WINAPI *)(HWND,int,LONG))GetProcAddress(hDll, "SetWindowLongW"); - _SendMessageW = (LRESULT (WINAPI *)(HWND,UINT,WPARAM,LPARAM))GetProcAddress(hDll, "SendMessageW"); - - if (_CreateDialogParamW && - _CreateWindowExW && - _CallWindowProcW && - _SetWindowLongW && - _SendMessageW) - return 1; - - } - return 0; -} - -HANDLE hTTBHook = NULL; -static int OnTTBLoaded(WPARAM wParam,LPARAM lParam) -{ - TTBButtonV2 ttbb = {0}; - HICON ico = LoadIcon(hInst,MAKEINTRESOURCE(ICO_DBE_BUTT)); - UnhookEvent(hTTBHook); - - ttbb.cbSize = sizeof(ttbb); - ttbb.dwFlags=TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP; - ttbb.pszServiceDown = "DBEditorpp/MenuCommand"; - ttbb.name = Translate("Database Editor++"); - ttbb.hIconUp = ico; - ttbb.hIconDn = ico; -// ttbb.tooltipDn = Translate("Show DataBase Editor"); - - hTTBButt = (HANDLE)CallService(MS_TTB_ADDBUTTON, (WPARAM)&ttbb, 0); - - if (hTTBButt) - CallService(MS_TTB_SETBUTTONOPTIONS,MAKEWPARAM(TTBO_TIPNAME,hTTBButt), - (LPARAM)(Translate("Show DataBase Editor"))); - - return 0; -} - -HANDLE hModulesLoadedHook = NULL; -int ModulesLoaded(WPARAM wParam,LPARAM lParam) -{ - DBVARIANT dbv; - char *coreMods = "AutoAway, CLC, CList CListGroups, CLUI, Contact, DBEditorpp, Icons, Idle, Ignore, Netlib, Options, PluginDisable, Skin, SkinHotKeys, SkinSounds, SkinSoundsOff, SRAway, SRFile, SRMsg, SRUrl, UpdateCheck, UserInfo, UserOnline, _Filter, Protocol, KnownModules, SkinIcons, FirstRun"; - char *mods; - char mod[64] = ""; - char szModuleFileName[MAX_PATH]; - int i=0, len; - if (!DBGetContactSetting(NULL,modname,"CoreModules",&dbv) && dbv.type == DBVT_ASCIIZ) - mods = dbv.pszVal; - else - { - DBWriteContactSettingString(NULL,modname,"CoreModules",coreMods); - mods = coreMods; - } - - len=strlen(mods); - while (i='0' && b<='9') || - (b>='A' && b<='F') || - (b>='a' && b<='f')) - { - if (sscanf(&szValue[j], "%02X", &tmp) == 1) - { - data[i++] = (BYTE)tmp; - j++; - } - } - j++; - } - - if (i) - return DBWriteContactSettingBlob(hContact,szModule,szSetting, data, (WORD)i); - - return 0; -} - - -int GetSetting(HANDLE hContact, const char *szModule, const char *szSetting, DBVARIANT *dbv) -{ - DBCONTACTGETSETTING cgs; - - cgs.szModule=szModule; - cgs.szSetting=szSetting; - cgs.pValue=dbv; - dbv->type = 0; - - if (UDB) - return CallService(MS_DB_CONTACT_GETSETTING_STR,(WPARAM)hContact,(LPARAM)&cgs); - else - { - int rr = CallService(MS_DB_CONTACT_GETSETTING,(WPARAM)hContact,(LPARAM)&cgs); - - if (dbv->type != DBVT_UTF8) - return rr; - else - return 1; - } -} - - -int GetValue(HANDLE hContact, const char* szModule, const char* szSetting, char* Value, int length) -{ - DBVARIANT dbv = {0}; - - if (Value && length >= 10 && !GetSetting(hContact, szModule, szSetting, &dbv)) - { - switch(dbv.type) { - case DBVT_UTF8: - if (UOS) - { - int len = strlen(dbv.pszVal)+1; - char *sz = _alloca(len*3); - WCHAR *wc = _alloca(len*sizeof(WCHAR)); - MultiByteToWideChar(CP_UTF8, 0, dbv.pszVal, -1, wc, len); - WideCharToMultiByte(CP_ACP, 0, wc, -1, sz, len, NULL, NULL); - strncpy(Value, sz, length); - break; - }// else fall through - case DBVT_ASCIIZ: - strncpy(Value, dbv.pszVal, length); - break; - case DBVT_DWORD: - _itoa(dbv.dVal,Value,10); - break; - case DBVT_BYTE: - _itoa(dbv.bVal,Value,10); - break; - case DBVT_WORD: - _itoa(dbv.wVal,Value,10); - break; - } - - DBFreeVariant(&dbv); - - Value[length-1] = 0; - return 1; - } - - if (Value) - Value[0] = 0; - - return 0; -} - - -int GetValueW(HANDLE hContact, const char* szModule, const char* szSetting, WCHAR* Value, int length) -{ - DBVARIANT dbv ={0}; - - if (Value && length >= 10 && !GetSetting(hContact, szModule, szSetting, &dbv)) - { - switch(dbv.type) { - case DBVT_UTF8: - { - int len = strlen(dbv.pszVal)+1; - WCHAR *wc = _alloca(length*sizeof(WCHAR)); - MultiByteToWideChar(CP_UTF8, 0, dbv.pszVal, -1, wc, len); - wcsncpy((WCHAR*)Value, wc, length); - } - break; - case DBVT_ASCIIZ: - { - int len = strlen(dbv.pszVal)+1; - WCHAR *wc = _alloca(len*sizeof(WCHAR)); - MultiByteToWideChar(CP_ACP, 0, dbv.pszVal, -1, wc, len); - wcsncpy((WCHAR*)Value, wc, length); - } - break; - case DBVT_DWORD: - _itow(dbv.dVal,Value,10); - break; - case DBVT_BYTE: - _itow(dbv.bVal,Value,10); - break; - case DBVT_WORD: - _itow(dbv.wVal,Value,10); - break; - } - - DBFreeVariant(&dbv); - - Value[length-1] = 0; - return 1; - } - - if (Value) - Value[0] = 0; - - return 0; -} - - -char *u2a( wchar_t* src ) -{ - if (src) - { - int cbLen = WideCharToMultiByte( CP_ACP, 0, src, -1, NULL, 0, NULL, NULL ); - char* result = ( char* )calloc( cbLen+1, 1); - if ( result == NULL ) - return NULL; - - WideCharToMultiByte( CP_ACP, 0, src, -1, result, cbLen, NULL, NULL ); - result[ cbLen ] = 0; - return result; - } - else - return NULL; -} - - -wchar_t *a2u( char* src , wchar_t *buffer, int len ) -{ - wchar_t *result = buffer; - if ( result == NULL || len < 3) - return NULL; - - MultiByteToWideChar( CP_ACP, 0, src, -1, result, len - 1 ); - result[ len - 1 ] = 0; - - return result; -} - -/* -wchar_t *a2u( char* src ) -{ - int cbLen = MultiByteToWideChar( CP_ACP, 0, src, -1, NULL, 0 ); - wchar_t* result = ( wchar_t* )calloc(sizeof(wchar_t),(cbLen+1)); - if ( result == NULL ) - return NULL; - - MultiByteToWideChar( CP_ACP, 0, src, -1, result, cbLen ); - result[ cbLen ] = 0; - return result; -} - -*/ -/* - * The following UTF8 routines are - * - * Copyright (C) 2001 Peter Harris - * Copyright (C) 2001 Edmund Grimley Evans - * - * under a GPL license - * - * -------------------------------------------------------------- - * Convert a string between UTF-8 and the locale's charset. - * Invalid bytes are replaced by '#', and characters that are - * not available in the target encoding are replaced by '?'. - * - * If the locale's charset is not set explicitly then it is - * obtained using nl_langinfo(CODESET), where available, the - * environment variable CHARSET, or assumed to be US-ASCII. - * - * Return value of conversion functions: - * - * -1 : memory allocation failed - * 0 : data was converted exactly - * 1 : valid data was converted approximately (using '?') - * 2 : input was invalid (but still converted, using '#') - * 3 : unknown encoding (but still converted, using '?') - */ - - -/* -unsigned char *make_utf8_string(const wchar_t *unicode) -{ - - int size = 0; - int index = 0; - int out_index = 0; - unsigned char* out; - unsigned short c; - - - // first calculate the size of the target string - c = unicode[index++]; - while(c) { - if(c < 0x0080) { - size += 1; - } else if(c < 0x0800) { - size += 2; - } else { - size += 3; - } - c = unicode[index++]; - } - - out = malloc(size + 1); - if (out == NULL) - return NULL; - index = 0; - - c = unicode[index++]; - while(c) - { - if(c < 0x080) { - out[out_index++] = (unsigned char)c; - } else if(c < 0x800) { - out[out_index++] = 0xc0 | (c >> 6); - out[out_index++] = 0x80 | (c & 0x3f); - } else { - out[out_index++] = 0xe0 | (c >> 12); - out[out_index++] = 0x80 | ((c >> 6) & 0x3f); - out[out_index++] = 0x80 | (c & 0x3f); - } - c = unicode[index++]; - } - out[out_index] = 0x00; - - return out; -} - - -wchar_t *make_unicode_string(const unsigned char *utf8) -{ - - int size = 0, index = 0, out_index = 0; - wchar_t *out; - unsigned char c; - - - // first calculate the size of the target string - c = utf8[index++]; - while(c) { - if((c & 0x80) == 0) { - index += 0; - } else if((c & 0xe0) == 0xe0) { - index += 2; - } else { - index += 1; - } - size += 1; - c = utf8[index++]; - } - - out = malloc((size + 1) * sizeof(wchar_t)); - if (out == NULL) - return NULL; - index = 0; - - c = utf8[index++]; - while(c) - { - if((c & 0x80) == 0) { - out[out_index++] = c; - } else if((c & 0xe0) == 0xe0) { - out[out_index] = (c & 0x1F) << 12; - c = utf8[index++]; - out[out_index] |= (c & 0x3F) << 6; - c = utf8[index++]; - out[out_index++] |= (c & 0x3F); - } else { - out[out_index] = (c & 0x3F) << 6; - c = utf8[index++]; - out[out_index++] |= (c & 0x3F); - } - c = utf8[index++]; - } - out[out_index] = 0; - - return out; -} -*/ - - -int mir_snwprintf(WCHAR *buffer, size_t count, const WCHAR* fmt, ...) -{ - va_list va; - int len; - - va_start(va, fmt); - len = _vsnwprintf(buffer, count-1, fmt, va); - va_end(va); - - buffer[count-1] = 0; - - return len; -} - - -int GetDatabaseString(HANDLE hContact, const char *szModule, const char* szSetting, WCHAR *Value, int length, BOOL unicode) -{ - if (unicode) - return GetValueW(hContact, szModule, szSetting, Value, length); - else - return GetValue(hContact, szModule, szSetting, (char*)Value, length); -} - - -WCHAR *GetContactName(HANDLE hContact, const char *szProto, int unicode) -{ - - int i, r = 0; - static WCHAR res[512]; - char *proto = (char*)szProto; - char name[256]; - - if (hContact && !proto) - { - if (GetValue(hContact,"Protocol","p",name,sizeof(name))) - proto = name; - } - - if (proto) - { - - for(i=0;i 1) - r |= GetDatabaseString(hContact,proto,"LastName",&res[len],SIZEOF(res)-len,unicode); - - break; - } - } - - if (r) return res; - } - } - - if (unicode) - return nick_unknownW; - else - return (WCHAR*)nick_unknown; -} -- cgit v1.2.3