Tue, 30 Sep 2003 18:41:28 +0000
[gaim-migrate @ 7643]
robot101 gave us images in notify_formatted windows. very cool. This lets what I committed earlier (which was support for images in jabber vcards) to work.
| 4490 | 1 | /* |
| 2 | * win_aim.c | |
| 3 | * | |
| 4 | * Author: Herman Bloggs <hermanator12002@yahoo.com> | |
| 5 | * Date: June, 2002 | |
| 6 | * Description: Entry point for win32 gaim, and various win32 dependant | |
| 7 | * routines. | |
| 8 | */ | |
| 9 | #include <windows.h> | |
| 10 | #include <stdlib.h> | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
11 | #include <string.h> |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
12 | #include <stdio.h> |
| 4490 | 13 | |
| 14 | /* | |
| 15 | * GLOBALS | |
| 16 | */ | |
| 17 | __declspec(dllimport) HINSTANCE gaimexe_hInstance; | |
| 18 | ||
| 19 | /* | |
| 20 | * LOCALS | |
| 21 | */ | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
22 | static char msg1[] = "The following duplicate of "; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
23 | static char msg2[] = " has been found in your dll search path and will likely\x0d\x0a" |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
24 | "cause Gaim to malfunction:\x0d\x0a\x0d\x0a"; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
25 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
26 | static char msg3[] = "\x0d\x0a\x0d\x0aWould you like to rename this dll to "; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
27 | static char msg4[] = ".prob in order to avoid any possible conflicts?\x0d\x0a" |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
28 | "\x0d\x0a" |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
29 | "Note: Doing so will likely cause the application that installed this dll to stop functioning.\x0d\x0a" |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
30 | "You may wish to inform the author of the responsible application so that future versions\x0d\x0a" |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
31 | "do not cause 'Dll Hell'."; |
| 4490 | 32 | |
| 33 | /* | |
| 34 | * PROTOTYPES | |
| 35 | */ | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
36 | int (*gaim_main)( HINSTANCE, int, char** ) = NULL; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
37 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
38 | static void check_dll(char* dll, char* orig) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
39 | char tmp[MAX_PATH]; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
40 | char *last; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
41 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
42 | if(SearchPath(NULL, dll, NULL, MAX_PATH, tmp, &last)) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
43 | char* patha = (char*)malloc(strlen(orig) + strlen(dll) + 4); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
44 | strcpy(patha, orig); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
45 | strcat(patha, "\\"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
46 | strcat(patha, dll); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
47 | /* Make sure that 2 paths are not the same */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
48 | if(strcasecmp(patha, tmp) != 0) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
49 | char *warning = (char*)malloc(strlen(msg1)+ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
50 | strlen(msg2)+ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
51 | strlen(msg3)+ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
52 | strlen(msg4)+ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
53 | strlen(tmp)+ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
54 | (strlen(dll)*2)+4); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
55 | sprintf(warning, "%s%s%s%s%s%s%s", msg1, dll, msg2, tmp, msg3, dll, msg4); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
56 | if(MessageBox(NULL, warning, "Gaim Warning", MB_YESNO | MB_TOPMOST)==IDYES) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
57 | char *newname = (char*)malloc(strlen(tmp)+6); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
58 | /* Rename offending dll */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
59 | sprintf(newname, "%s%s", tmp, ".prob"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
60 | if(rename(tmp, newname) != 0) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
61 | MessageBox(NULL, "Error renaming file.", NULL, MB_OK | MB_TOPMOST); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
62 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
63 | else |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
64 | check_dll(dll, orig); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
65 | free(newname); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
66 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
67 | free(warning); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
68 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
69 | free(patha); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
70 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
71 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
72 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
73 | static void dll_hell_check(char* gtkpath) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
74 | HANDLE myHandle; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
75 | WIN32_FIND_DATA fd; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
76 | char* srchstr = (char*)malloc(strlen(gtkpath) + 8); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
77 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
78 | sprintf(srchstr, "%s%s", gtkpath, "\\*.dll"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
79 | myHandle = FindFirstFile(srchstr, &fd ); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
80 | if(myHandle != INVALID_HANDLE_VALUE) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
81 | check_dll(fd.cFileName, gtkpath); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
82 | while(FindNextFile(myHandle, &fd)) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
83 | check_dll(fd.cFileName, gtkpath); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
84 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
85 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
86 | free(srchstr); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
87 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
88 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
89 | BOOL read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
90 | HKEY hkey; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
91 | BOOL ret = FALSE; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
92 | int retv; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
93 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
94 | if(ERROR_SUCCESS == RegOpenKeyEx(key, |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
95 | sub_key, |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
96 | 0, KEY_QUERY_VALUE, &hkey)) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
97 | if(ERROR_SUCCESS == (retv=RegQueryValueEx(hkey, val_name, 0, NULL, data, data_len))) |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
98 | ret = TRUE; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
99 | else { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
100 | printf("Error reading registry string value: %d\n", retv); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
101 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
102 | RegCloseKey(key); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
103 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
104 | return ret; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
105 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
106 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
107 | void run_dll_check() { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
108 | char path[MAX_PATH]; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
109 | DWORD plen = MAX_PATH; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
110 | int gotreg=FALSE; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
111 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
112 | /* Dll Hell Check.. Only run check if we are the same gaim as found in the |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
113 | gaim registry key */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
114 | if(!(gotreg = read_reg_string(HKEY_LOCAL_MACHINE, "SOFTWARE\\gaim", "", (LPBYTE)&path, &plen))) |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
115 | gotreg = read_reg_string(HKEY_CURRENT_USER, "SOFTWARE\\gaim", "", (LPBYTE)&path, &plen); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
116 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
117 | if(gotreg) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
118 | char modpath[MAX_PATH]; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
119 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
120 | strcat(path, "\\gaim.exe"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
121 | GetModuleFileName(NULL, modpath, MAX_PATH); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
122 | if(strcasecmp(path, modpath) == 0) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
123 | plen = MAX_PATH; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
124 | if(!(gotreg = read_reg_string(HKEY_LOCAL_MACHINE, "SOFTWARE\\GTK\\2.0", "Path", (LPBYTE)&path, &plen))) |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
125 | gotreg = read_reg_string(HKEY_CURRENT_USER, "SOFTWARE\\GTK\\2.0", "Path", (LPBYTE)&path, &plen); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
126 | if(gotreg) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
127 | strcat(path, "\\bin"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
128 | dll_hell_check(path); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
129 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
130 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
131 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
132 | } |
| 4490 | 133 | |
| 134 | #ifdef __GNUC__ | |
| 135 | # ifndef _stdcall | |
| 136 | # define _stdcall __attribute__((stdcall)) | |
| 137 | # endif | |
| 138 | #endif | |
| 139 | ||
| 140 | int _stdcall | |
| 141 | WinMain (struct HINSTANCE__ *hInstance, | |
| 142 | struct HINSTANCE__ *hPrevInstance, | |
| 143 | char *lpszCmdLine, | |
| 144 | int nCmdShow) | |
| 145 | { | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
146 | char gaimdir[MAX_PATH]; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
147 | char *point; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
148 | HMODULE hmod; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
149 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
150 | /* If GAIM_NO_DLL_CHECK is set, don't run the dll check */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
151 | if(!getenv("GAIM_NO_DLL_CHECK")) |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
152 | run_dll_check(); |
|
6816
b14a3043ed09
[gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents:
4490
diff
changeset
|
153 | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
154 | /* Load exception handler if we have it */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
155 | GetModuleFileName(NULL, gaimdir, MAX_PATH); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
156 | if((point=strstr(gaimdir, "gaim.exe"))) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
157 | point[0] = '\0'; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
158 | strcat(gaimdir, "exchndl.dll"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
159 | LoadLibrary(gaimdir); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
160 | } |
|
6816
b14a3043ed09
[gaim-migrate @ 7356]
Herman Bloggs <herman@bluedigits.com>
parents:
4490
diff
changeset
|
161 | |
|
6890
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
162 | /* Now we are ready for Gaim .. */ |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
163 | if((hmod=LoadLibrary("gaim.dll"))) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
164 | gaim_main = (void*)GetProcAddress(hmod, "gaim_main"); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
165 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
166 | |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
167 | if(!gaim_main) { |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
168 | MessageBox(NULL, "Error loading gaim.dll entry point.", NULL, MB_OK | MB_TOPMOST); |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
169 | return 0; |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
170 | } |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
171 | else |
|
7833463f1b73
[gaim-migrate @ 7436]
Herman Bloggs <herman@bluedigits.com>
parents:
6816
diff
changeset
|
172 | return gaim_main (hInstance, __argc, __argv); |
| 4490 | 173 | } |
| 174 |