summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-11 07:54:06 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-11 07:54:06 +0000
commit801768c22a7643afad2f334b5fecead14645ab78 (patch)
treee8728a438a9ed4d8ff8d027a7c0e2492cf35329f
parent01a664406e36abb810364237fda24e204265d7b4 (diff)
added myim: link support
added main menu item to add myspace friends to contact list git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@277 4f64403b-2f21-0410-a795-97e2b3489a10
-rw-r--r--MySpace/MySpace.cpp5
-rw-r--r--MySpace/MySpace.rc3
-rw-r--r--MySpace/MySpace_8.vcproj8
-rw-r--r--MySpace/links.cpp236
-rw-r--r--MySpace/links.h27
-rw-r--r--MySpace/menu.cpp52
-rw-r--r--MySpace/menu.h2
-rw-r--r--MySpace/notifications.h2
-rw-r--r--MySpace/options.cpp16
-rw-r--r--MySpace/options.h1
-rw-r--r--MySpace/resource.h4
-rw-r--r--MySpace/version.h4
12 files changed, 338 insertions, 22 deletions
diff --git a/MySpace/MySpace.cpp b/MySpace/MySpace.cpp
index ec43337..c259305 100644
--- a/MySpace/MySpace.cpp
+++ b/MySpace/MySpace.cpp
@@ -9,6 +9,7 @@
#include "arc4.h"
#include "notifications.h"
#include "srmm_icon.h"
+#include "links.h"
///////////////////////////////////////////////
// Common Plugin Stuff
@@ -159,6 +160,8 @@ extern "C" __declspec (dllexport) int Load(PLUGINLINK *link) {
SetAllOffline();
+ myspace_links_init();
+
// hook modules loaded
hModulesLoaded = HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded);
return 0;
@@ -170,6 +173,8 @@ extern "C" __declspec (dllexport) int Unload(void) {
DeinitMenu();
DeinitNetlib();
DeinitProto();
+
+ myspace_links_destroy();
DeinitOptions();
DeinitNotifications();
DeinitARC4Module();
diff --git a/MySpace/MySpace.rc b/MySpace/MySpace.rc
index 313f698..6cb28e1 100644
--- a/MySpace/MySpace.rc
+++ b/MySpace/MySpace.rc
@@ -31,12 +31,13 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
- GROUPBOX "MySpace",IDC_STATIC,26,17,201,119
+ GROUPBOX "MySpace",IDC_STATIC,26,17,201,142
RTEXT "E-mail:",IDC_STATIC,40,39,54,8
EDITTEXT IDC_ED_EMAIL,113,36,89,14,ES_AUTOHSCROLL
RTEXT "Password:",IDC_STATIC,35,72,59,8
EDITTEXT IDC_ED_PW,113,68,89,14,ES_PASSWORD | ES_AUTOHSCROLL
CONTROL "Sign up for a new account",IDC_LNK_NEWACCOUNT,"Hyperlink",WS_TABSTOP | 0x1,36,102,174,15
+ CONTROL "Handle myim: links on websites",IDC_CHK_LINKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,60,132,145,10
END
diff --git a/MySpace/MySpace_8.vcproj b/MySpace/MySpace_8.vcproj
index 7a5bc89..40f1065 100644
--- a/MySpace/MySpace_8.vcproj
+++ b/MySpace/MySpace_8.vcproj
@@ -349,6 +349,10 @@
>
</File>
<File
+ RelativePath=".\links.cpp"
+ >
+ </File>
+ <File
RelativePath=".\menu.cpp"
>
</File>
@@ -411,6 +415,10 @@
>
</File>
<File
+ RelativePath=".\links.h"
+ >
+ </File>
+ <File
RelativePath=".\menu.h"
>
</File>
diff --git a/MySpace/links.cpp b/MySpace/links.cpp
new file mode 100644
index 0000000..ad5ff8c
--- /dev/null
+++ b/MySpace/links.cpp
@@ -0,0 +1,236 @@
+/*
+Copyright © 2003 Robert Rainwater, 2007 Scott Ellis
+adapted for MySpace, 2007 Scott Ellis
+
+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.
+*/
+
+#include "common.h"
+#include "links.h"
+#include "server_con.h"
+
+#include <malloc.h>
+#include <cstdlib>
+
+#define MYSPACEWATCHERCLASS _T("__MYSPACEWatcherClass__")
+
+static ATOM aWatcherClass = 0;
+static HWND hWatcher = NULL;
+
+static LRESULT CALLBACK myspace_links_watcherwndproc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg) {
+ case WM_COPYDATA:
+ {
+ char *szData, *s;
+ COPYDATASTRUCT *cds = (COPYDATASTRUCT *) lParam;
+
+ //LOG(LOG_DEBUG, "Links: WM_COPYDATA");
+ // Check to see if link support is enabled
+ // We shouldn't need this check since the class instance shouldn't be running
+ // but lets be safe
+ if (!DBGetContactSettingByte(NULL, MODULE, "EnableLinkHandling", 0))
+ break;
+ if (!(char *) cds->lpData)
+ break;
+ s = szData = strdup((char *) cds->lpData);
+
+ s += 5;
+ if (!_strnicmp(s, "addContact?", 11)) {
+ s =strstr(s, "cID=");
+ if(s) {
+ s += 4;
+ char *t = strchr(s, '&');
+ if(t) *t = 0;
+
+ HANDLE hContact;
+ int uid;
+ for(t = strtok(s, ","); t ;t = strtok(0, ",")) {
+ uid = atoi(t);
+ hContact = FindContact(uid);
+ if(!hContact) {
+ hContact = CreateContact(uid, 0, 0, true);
+ LookupUID(uid);
+ }
+ }
+ }
+ }
+ else if (_strnicmp(s, "sendIM?", 7) == 0 && ServiceExists(MS_MSG_SENDMESSAGE))
+ {
+ s=strrchr(s, '=');
+ if(s) {
+ s++;
+ int uid = atoi(s);
+
+ HANDLE hContact = FindContact(uid);
+ if(!hContact) {
+ hContact = CreateContact(uid, 0, 0, false);
+ DBWriteContactSettingByte(hContact, "CList", "NotOnList", 1);
+ DBWriteContactSettingByte(hContact, "CList", "Hidden", 1);
+ LookupUID(uid);
+ }
+ CallService(MS_MSG_SENDMESSAGE, (WPARAM)hContact, 0);
+ }
+ }
+
+ free(szData);
+ }
+ }
+ return DefWindowProc(hwnd, msg, wParam, lParam);
+}
+
+static void myspace_links_regwatcher()
+{
+ WNDCLASS wc;
+
+ //LOG(LOG_DEBUG, "Links: regwatcher");
+ if (hWatcher || aWatcherClass) {
+ return;
+ }
+ memset(&wc, 0, sizeof(WNDCLASS));
+ wc.lpfnWndProc = myspace_links_watcherwndproc;
+ wc.hInstance = hInst;
+ wc.lpszClassName = MYSPACEWATCHERCLASS;
+ aWatcherClass = RegisterClass(&wc);
+ hWatcher = CreateWindowEx(0, MYSPACEWATCHERCLASS, _T(""), 0, 0, 0, 0, 0, NULL, NULL, hInst, NULL);
+ return;
+}
+
+static void myspace_links_unregwatcher()
+{
+ //LOG(LOG_DEBUG, "Links: unregwatcher");
+ if (hWatcher) {
+ DestroyWindow(hWatcher);
+ hWatcher = NULL;
+ }
+ if (aWatcherClass) {
+ UnregisterClass(MYSPACEWATCHERCLASS, hInst);
+ aWatcherClass = 0;
+ }
+ return;
+}
+
+static BOOL CALLBACK myspace_linsk_enumthreadwindowsproc(HWND hwnd, LPARAM lParam)
+{
+ TCHAR szBuf[64];
+
+ if (GetClassName(hwnd, szBuf, 64)) {
+ if (!lstrcmp(szBuf, MYSPACEWATCHERCLASS)) {
+ COPYDATASTRUCT cds;
+
+ //LOG(LOG_DEBUG, "Links: enumthreadwindowsproc - found AIMWATCHERCLASS");
+ cds.dwData = 1;
+ cds.cbData = strlen((char *) lParam) + 1;
+ cds.lpData = (char *) lParam;
+ SendMessageTimeout(hwnd, WM_COPYDATA, (WPARAM) hwnd, (LPARAM) & cds, SMTO_ABORTIFHUNG | SMTO_BLOCK, 150, NULL);
+ }
+ };
+ return TRUE;
+}
+
+static BOOL CALLBACK myspace_links_enumwindowsproc(HWND hwnd, LPARAM lParam)
+{
+ char szBuf[32];
+
+ //LOG(LOG_DEBUG, "Links: enumwindowsproc");
+ if (GetClassNameA(hwnd, szBuf, 32))
+ {
+ if (!strcmp(szBuf, MIRANDACLASS)) {
+ //LOG(LOG_DEBUG, "Links: enumwindowsproc - found Miranda window");
+ EnumThreadWindows(GetWindowThreadProcessId(hwnd, NULL), myspace_linsk_enumthreadwindowsproc, lParam);
+ }
+ }
+ return TRUE;
+}
+
+static void myspace_links_register()
+{
+ HKEY hkey;
+ char szBuf[MAX_PATH], szExe[MAX_PATH * 2], szShort[MAX_PATH];
+
+
+ GetModuleFileNameA(hInst, szBuf, sizeof(szBuf));
+ GetShortPathNameA(szBuf, szShort, sizeof(szShort));
+ //LOG(LOG_DEBUG, "Links: register");
+ if (RegCreateKeyA(HKEY_CLASSES_ROOT, "myim", &hkey) == ERROR_SUCCESS) {
+ RegSetValueA(hkey, NULL, REG_SZ, "URL:MySpace IM Protocol", strlen("URL:MySpace IM Protocol"));
+ RegSetValueExA(hkey, "URL Protocol", 0, REG_SZ, (PBYTE) "", 1);
+ RegCloseKey(hkey);
+ }
+ else {
+ //LOG(LOG_ERROR, "Links: register - unable to create registry key (root)");
+ return;
+ }
+ if (RegCreateKeyA(HKEY_CLASSES_ROOT, "myim\\DefaultIcon", &hkey) == ERROR_SUCCESS) {
+ char szIcon[MAX_PATH];
+
+ mir_snprintf(szIcon, sizeof(szIcon), "%s,0", szShort);
+ RegSetValueA(hkey, NULL, REG_SZ, szIcon, strlen(szIcon));
+ RegCloseKey(hkey);
+ }
+ else {
+ //LOG(LOG_ERROR, "Links: register - unable to create registry key (DefaultIcon)");
+ return;
+ }
+ if (RegCreateKeyA(HKEY_CLASSES_ROOT, "myim\\shell\\open\\command", &hkey) == ERROR_SUCCESS) {
+ // MSVC exports differently than gcc/mingw
+#ifdef _MSC_VER
+ mir_snprintf(szExe, sizeof(szExe), "RUNDLL32.EXE %s,_myspace_links_exec@16 %%1", szShort);
+ //LOG(LOG_INFO, "Links: registering (%s)", szExe);
+#else
+ mir_snprintf(szExe, sizeof(szExe), "RUNDLL32.EXE %s,myspace_links_exec@16 %%1", szShort);
+ //LOG(LOG_INFO, "Links: registering (%s)", szExe);
+#endif
+ RegSetValueA(hkey, NULL, REG_SZ, szExe, strlen(szExe));
+ RegCloseKey(hkey);
+ }
+ else {
+ //LOG(LOG_ERROR, "Links: register - unable to create registry key (command)");
+ return;
+ }
+
+}
+
+void myspace_links_unregister()
+{
+ //LOG(LOG_DEBUG, "Links: unregister");
+ RegDeleteKeyA(HKEY_CLASSES_ROOT, "myim\\shell\\open\\command");
+ RegDeleteKeyA(HKEY_CLASSES_ROOT, "myim\\shell\\open");
+ RegDeleteKeyA(HKEY_CLASSES_ROOT, "myim\\shell");
+ RegDeleteKeyA(HKEY_CLASSES_ROOT, "myim\\DefaultIcon");
+ RegDeleteKeyA(HKEY_CLASSES_ROOT, "myim");
+}
+
+void myspace_links_init()
+{
+ //LOG(LOG_DEBUG, "Links: init");
+ if (DBGetContactSettingByte(NULL, MODULE, "EnableLinkHandling", 0)) {
+ //LOG(LOG_DEBUG, "Links: init - links support is on");
+ myspace_links_register();
+ myspace_links_regwatcher();
+ }
+}
+
+void myspace_links_destroy()
+{
+ // LOG(LOG_DEBUG, "Links: destroy");
+ myspace_links_unregwatcher();
+}
+
+extern "C" void __declspec(dllexport)
+ CALLBACK myspace_links_exec(HWND /*hwnd*/, HINSTANCE /*hInst*/, char *lpszCmdLine, int /*nCmdShow*/)
+{
+ EnumWindows(myspace_links_enumwindowsproc, (LPARAM) lpszCmdLine);
+}
diff --git a/MySpace/links.h b/MySpace/links.h
new file mode 100644
index 0000000..140ef77
--- /dev/null
+++ b/MySpace/links.h
@@ -0,0 +1,27 @@
+/*
+Copyright © 2003 Robert Rainwater
+adapted for MySpace, 2007 Scott Ellis
+
+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.
+*/
+
+#ifndef LINKS_H
+#define LINKS_H
+
+void myspace_links_unregister();
+void myspace_links_init();
+void myspace_links_destroy();
+
+#endif
diff --git a/MySpace/menu.cpp b/MySpace/menu.cpp
index c713aba..889204e 100644
--- a/MySpace/menu.cpp
+++ b/MySpace/menu.cpp
@@ -2,24 +2,25 @@
#include "menu.h"
#include "resource.h"
#include "server_con.h"
+#include "options.h"
+#include "notifications.h"
HANDLE hMenuMain = 0, hServiceMenuMain = 0;
int MainMenuService(WPARAM wParam, LPARAM lParam) {
- // TODO: add code here that executes when the menu item is chosen
-
- // e.g. modify main menu item - see m_clist.h
- //CLISTMENUITEM menu = {0};
- //menu.cbSize=sizeof(menu);
- //menu.flags = CMIM_NAME | CMIF_TCHAR;
- //menu.ptszName = (char *)TranslateT("Changed menu text");
- //CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuMain, (LPARAM)&menu);
-
CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://home.myspace.com/index.cfm?fuseaction=user");
return 0;
}
+HANDLE hMenuMainAdd = 0, hServiceMenuMainAdd = 0;
+
+int MainMenuServiceAdd(WPARAM wParam, LPARAM lParam) {
+ CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)"http://www.myspace.com/index.cfm?fuseaction=im.friendslist&tab=1");
+
+ return 0;
+}
+
HANDLE hMenuContact = 0, hServiceMenuContact = 0, hEventMenuBuild = 0;
int ContactMenuService(WPARAM wParam, LPARAM lParam) {
@@ -33,6 +34,13 @@ int ContactMenuService(WPARAM wParam, LPARAM lParam) {
return 0;
}
+void EnableMainAdd(bool enable) {
+ CLISTMENUITEM menu = {0};
+ menu.cbSize=sizeof(menu);
+ menu.flags = CMIM_FLAGS | (enable ? 0 : CMIF_GRAYED);
+ CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenuMainAdd, (LPARAM)&menu);
+}
+
// this function is called when the contact's menu is about to be shown - you can e.g.
// modify the menu here using the MS_CLIST_MODIFYMENUITEM service
int PrebuildContactMenu(WPARAM wParam, LPARAM lParam) {
@@ -54,25 +62,30 @@ void InitMenu() {
menu.cbSize=sizeof(menu);
char buff[512];
- menu.flags = CMIM_ALL | CMIF_TCHAR;
+ menu.flags = CMIM_ALL;
menu.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MYSPACE), IMAGE_ICON, 0, 0, 0);
hServiceMenuMain = CreateProtoServiceFunction(MODULE, "/MainMenu", MainMenuService);
- TCHAR tbuff[512];
-#ifdef _UNICODE
- MultiByteToWideChar(code_page, 0, MODULE, -1, tbuff, 512);
-#else
- strncpy(tbuff, MODULE, 512);
-#endif
- menu.ptszName = TranslateTS(tbuff);
mir_snprintf(buff, 512, "%s%s", MODULE, "/MainMenu");
+ menu.pszName = Translate("Home");
menu.pszService = buff;
menu.position = 2000060000;
+ menu.popupPosition = 500099900;
+ menu.pszPopupName = MODULE;
hMenuMain = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&menu);
+ hServiceMenuMainAdd = CreateProtoServiceFunction(MODULE, "/MainMenuAdd", MainMenuServiceAdd);
+ mir_snprintf(buff, 512, "%s%s", MODULE, "/MainMenuAdd");
+ menu.pszName = Translate("Add friends");
+ menu.pszService = buff;
+ menu.position = 2000060001;
+ menu.popupPosition = 0;
+ menu.pszPopupName = MODULE;
+ hMenuMainAdd = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&menu);
+
// contact menu item
hServiceMenuContact = CreateProtoServiceFunction(MODULE, "/ContactMenu", ContactMenuService);
- menu.ptszName = TranslateT("Show profile");
+ menu.pszName = Translate("Show profile");
mir_snprintf(buff, 512, "%s%s", MODULE, "/ContactMenu");
menu.pszService = buff;
menu.position = 0;
@@ -81,10 +94,13 @@ void InitMenu() {
hMenuContact = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&menu);
hEventMenuBuild = HookEvent(ME_CLIST_PREBUILDCONTACTMENU, PrebuildContactMenu);
+
+ EnableMainAdd(options.handle_links);
}
void DeinitMenu() {
UnhookEvent(hEventMenuBuild);
DestroyServiceFunction(hServiceMenuContact);
DestroyServiceFunction(hServiceMenuMain);
+ DestroyServiceFunction(hServiceMenuMainAdd);
} \ No newline at end of file
diff --git a/MySpace/menu.h b/MySpace/menu.h
index 0add0ed..ca7e36f 100644
--- a/MySpace/menu.h
+++ b/MySpace/menu.h
@@ -1,6 +1,8 @@
#ifndef _MENU_INC
#define _MENU_INC
+void EnableMainAdd(bool enable);
+
void InitMenu();
void DeinitMenu();
diff --git a/MySpace/notifications.h b/MySpace/notifications.h
index 3340046..9795f07 100644
--- a/MySpace/notifications.h
+++ b/MySpace/notifications.h
@@ -15,5 +15,7 @@ extern char *zap_array[];
void NotifyZapRecv(HANDLE hContact, int zap_num);
void NotifyZapSend(HANDLE hContact, int zap_num);
+extern char popup_class_name[];
+
#endif
diff --git a/MySpace/options.cpp b/MySpace/options.cpp
index 4192039..a12e38e 100644
--- a/MySpace/options.cpp
+++ b/MySpace/options.cpp
@@ -1,6 +1,8 @@
#include "common.h"
#include "options.h"
#include "resource.h"
+#include "links.h"
+#include "menu.h"
Options options = {0};
@@ -46,6 +48,7 @@ void LoadOptions() {
strncpy(options.im_name, dbv.pszVal, 256);
DBFreeVariant(&dbv);
}
+ options.handle_links = (DBGetContactSettingByte(0, MODULE, "EnableLinkHandling", 0) != 0);
}
void SaveOptions() {
@@ -67,6 +70,7 @@ void SaveOptions() {
DBWriteContactSettingByte(0, MODULE, "offline_message_mode", (BYTE)options.offline_message_mode);
DBWriteContactSettingByte(0, MODULE, "show_avatar", options.show_avatar ? 1 : 0);
DBWriteContactSettingStringUtf(0, MODULE, "Nick", options.im_name);
+ DBWriteContactSettingByte(0, MODULE, "EnableLinkHandling", options.handle_links ? 1 : 0);
}
BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
@@ -77,6 +81,7 @@ BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
TranslateDialogDefault( hwndDlg );
SetDlgItemText(hwndDlg, IDC_ED_EMAIL, options.email);
SetDlgItemText(hwndDlg, IDC_ED_PW, options.pw);
+ CheckDlgButton(hwndDlg, IDC_CHK_LINKS, options.handle_links ? TRUE : FALSE);
return FALSE;
case WM_COMMAND:
switch( LOWORD( wParam )) {
@@ -88,6 +93,8 @@ BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
break;
case IDC_LNK_NEWACCOUNT:
CallService(MS_UTILS_OPENURL, (WPARAM)TRUE, (LPARAM)URL_NEW_ACCOUNT);
+ case IDC_CHK_LINKS:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
}
break;
@@ -99,8 +106,17 @@ BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
case PSN_APPLY:
GetDlgItemText(hwndDlg, IDC_ED_EMAIL, options.email, 256);
GetDlgItemText(hwndDlg, IDC_ED_PW, options.pw, 256);
+ options.handle_links = IsDlgButtonChecked(hwndDlg, IDC_CHK_LINKS) ? true : false;
SaveOptions();
+
+ if(options.handle_links) {
+ myspace_links_init();
+ } else {
+ myspace_links_destroy();
+ myspace_links_unregister();
+ }
+ EnableMainAdd(options.handle_links);
}
break;
}
diff --git a/MySpace/options.h b/MySpace/options.h
index da190c8..3392c1d 100644
--- a/MySpace/options.h
+++ b/MySpace/options.h
@@ -16,6 +16,7 @@ typedef struct {
OfflineMessageMode offline_message_mode;
bool show_avatar;
char im_name[256];
+ bool handle_links;
} Options;
extern Options options;
diff --git a/MySpace/resource.h b/MySpace/resource.h
index 45ab1c5..d5fd912 100644
--- a/MySpace/resource.h
+++ b/MySpace/resource.h
@@ -12,6 +12,8 @@
#define IDC_BTN_CHECK 1003
#define IDC_ST_MSG 1004
#define IDC_LNK_NEWACCOUNT 1005
+#define IDC_CHECK1 1006
+#define IDC_CHK_LINKS 1006
// Next default values for new objects
//
@@ -19,7 +21,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 125
#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1006
+#define _APS_NEXT_CONTROL_VALUE 1007
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/MySpace/version.h b/MySpace/version.h
index 74807fa..b927398 100644
--- a/MySpace/version.h
+++ b/MySpace/version.h
@@ -4,8 +4,8 @@
#define __MAJOR_VERSION 0
#define __MINOR_VERSION 0
-#define __RELEASE_NUM 4
-#define __BUILD_NUM 6
+#define __RELEASE_NUM 5
+#define __BUILD_NUM 0
#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM