32 |
#include <stdlib.h> |
#include <stdlib.h> |
33 |
#include <stdio.h> |
#include <stdio.h> |
34 |
|
|
35 |
HDDEDATA CALLBACK |
HDDEDATA CALLBACK |
36 |
DdeCallback (UINT uType, UINT uFmt, HCONV hconv, |
DdeCallback (UINT uType, UINT uFmt, HCONV hconv, |
37 |
HSZ hsz1, HSZ hsz2, HDDEDATA hdata, |
HSZ hsz1, HSZ hsz2, HDDEDATA hdata, |
38 |
DWORD dwData1, DWORD dwData2) |
DWORD dwData1, DWORD dwData2) |
50 |
{ |
{ |
51 |
char *name; |
char *name; |
52 |
char *value; |
char *value; |
53 |
} |
} |
54 |
env_vars[] = |
env_vars[] = |
55 |
{ |
{ |
56 |
{"emacs_dir", NULL}, |
{"emacs_dir", NULL}, |
57 |
{"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"}, |
{"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/../site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"}, |
58 |
{"SHELL", "%emacs_dir%/bin/cmdproxy.exe"}, |
{"SHELL", "%emacs_dir%/bin/cmdproxy.exe"}, |
59 |
{"EMACSDATA", "%emacs_dir%/etc"}, |
{"EMACSDATA", "%emacs_dir%/etc"}, |
60 |
{"EMACSPATH", "%emacs_dir%/bin"}, |
{"EMACSPATH", "%emacs_dir%/bin"}, |
|
{"EMACSLOCKDIR", "%emacs_dir%/lock"}, |
|
61 |
/* We no longer set INFOPATH because Info-default-directory-list |
/* We no longer set INFOPATH because Info-default-directory-list |
62 |
is then ignored. */ |
is then ignored. */ |
63 |
/* {"INFOPATH", "%emacs_dir%/info"}, */ |
/* {"INFOPATH", "%emacs_dir%/info"}, */ |
65 |
{"TERM", "cmd"} |
{"TERM", "cmd"} |
66 |
}; |
}; |
67 |
|
|
68 |
BOOL |
BOOL |
69 |
add_registry (path) |
add_registry (path) |
70 |
char *path; |
char *path; |
71 |
{ |
{ |
73 |
DWORD dwDisp; |
DWORD dwDisp; |
74 |
int i; |
int i; |
75 |
BOOL ok = TRUE; |
BOOL ok = TRUE; |
76 |
|
|
77 |
/* Check both the current user and the local machine to see if we |
/* Check both the current user and the local machine to see if we |
78 |
have any resources. */ |
have any resources. */ |
79 |
|
|
80 |
if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, |
if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, |
81 |
0, "", REG_OPTION_NON_VOLATILE, |
0, "", REG_OPTION_NON_VOLATILE, |
82 |
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS |
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS |
83 |
&& RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT, |
&& RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT, |
84 |
0, "", REG_OPTION_NON_VOLATILE, |
0, "", REG_OPTION_NON_VOLATILE, |
85 |
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS) |
KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS) |
86 |
{ |
{ |
87 |
return FALSE; |
return FALSE; |
88 |
} |
} |
89 |
|
|
90 |
for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) |
for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) |
91 |
{ |
{ |
92 |
char * value = env_vars[i].value ? env_vars[i].value : path; |
char * value = env_vars[i].value ? env_vars[i].value : path; |
93 |
|
|
94 |
if (RegSetValueEx (hrootkey, env_vars[i].name, |
if (RegSetValueEx (hrootkey, env_vars[i].name, |
95 |
0, REG_EXPAND_SZ, |
0, REG_EXPAND_SZ, |
96 |
value, lstrlen (value) + 1) != ERROR_SUCCESS) |
value, lstrlen (value) + 1) != ERROR_SUCCESS) |
97 |
ok = FALSE; |
ok = FALSE; |
98 |
} |
} |
99 |
|
|
100 |
RegCloseKey (hrootkey); |
RegCloseKey (hrootkey); |
101 |
|
|
102 |
return (ok); |
return (ok); |
103 |
} |
} |
104 |
|
|
105 |
int |
int |
106 |
main (argc, argv) |
main (argc, argv) |
107 |
int argc; |
int argc; |
108 |
char *argv[]; |
char *argv[]; |
109 |
{ |
{ |
110 |
DWORD idDde = 0; |
DWORD idDde = 0; |
111 |
HCONV HConversation; |
HCONV HConversation; |