70
70
gsdll->hmodule = LoadLibrary(name);
72
72
if (gsdll->hmodule < (HINSTANCE)HINSTANCE_ERROR) {
74
DWORD err = GetLastError();
75
sprintf(fullname, "Can't load DLL, LoadLibrary error code %ld", err);
76
strncpy(last_error, fullname, len-1);
77
gsdll->hmodule = (HINSTANCE)0;
74
DWORD err = GetLastError();
75
sprintf(fullname, "Can't load DLL, LoadLibrary error code %ld", err);
76
strncpy(last_error, fullname, len-1);
77
gsdll->hmodule = (HINSTANCE)0;
81
81
/* DLL is now loaded */
82
82
/* Get pointers to functions */
83
gsdll->revision = (PFN_gsapi_revision) GetProcAddress(gsdll->hmodule,
83
gsdll->revision = (PFN_gsapi_revision) GetProcAddress(gsdll->hmodule,
85
85
if (gsdll->revision == NULL) {
86
strncpy(last_error, "Can't find gsapi_revision\n", len-1);
86
strncpy(last_error, "Can't find gsapi_revision\n", len-1);
90
90
/* check DLL version */
91
91
if (gsdll->revision(&rv, sizeof(rv)) != 0) {
92
sprintf(fullname, "Unable to identify Ghostscript DLL revision - it must be newer than needed.\n");
93
strncpy(last_error, fullname, len-1);
92
sprintf(fullname, "Unable to identify Ghostscript DLL revision - it must be newer than needed.\n");
93
strncpy(last_error, fullname, len-1);
97
97
if (rv.revision != GSREVISION) {
98
sprintf(fullname, "Wrong version of DLL found.\n Found version %ld\n Need version %ld\n", rv.revision, GSREVISION);
99
strncpy(last_error, fullname, len-1);
98
sprintf(fullname, "Wrong version of DLL found.\n Found version %ld\n Need version %ld\n", rv.revision, GSREVISION);
99
strncpy(last_error, fullname, len-1);
104
104
/* continue loading other functions */
105
gsdll->new_instance = (PFN_gsapi_new_instance) GetProcAddress(gsdll->hmodule,
106
"gsapi_new_instance");
105
gsdll->new_instance = (PFN_gsapi_new_instance) GetProcAddress(gsdll->hmodule,
106
"gsapi_new_instance");
107
107
if (gsdll->new_instance == NULL) {
108
strncpy(last_error, "Can't find gsapi_new_instance\n", len-1);
108
strncpy(last_error, "Can't find gsapi_new_instance\n", len-1);
113
gsdll->delete_instance = (PFN_gsapi_delete_instance) GetProcAddress(gsdll->hmodule,
114
"gsapi_delete_instance");
113
gsdll->delete_instance = (PFN_gsapi_delete_instance) GetProcAddress(gsdll->hmodule,
114
"gsapi_delete_instance");
115
115
if (gsdll->delete_instance == NULL) {
116
strncpy(last_error, "Can't find gsapi_delete_instance\n", len-1);
116
strncpy(last_error, "Can't find gsapi_delete_instance\n", len-1);
121
gsdll->set_stdio = (PFN_gsapi_set_stdio) GetProcAddress(gsdll->hmodule,
121
gsdll->set_stdio = (PFN_gsapi_set_stdio) GetProcAddress(gsdll->hmodule,
123
123
if (gsdll->set_stdio == NULL) {
124
strncpy(last_error, "Can't find gsapi_set_stdio\n", len-1);
124
strncpy(last_error, "Can't find gsapi_set_stdio\n", len-1);
129
gsdll->set_poll = (PFN_gsapi_set_poll) GetProcAddress(gsdll->hmodule,
129
gsdll->set_poll = (PFN_gsapi_set_poll) GetProcAddress(gsdll->hmodule,
131
131
if (gsdll->set_poll == NULL) {
132
strncpy(last_error, "Can't find gsapi_set_poll\n", len-1);
132
strncpy(last_error, "Can't find gsapi_set_poll\n", len-1);
137
gsdll->set_display_callback = (PFN_gsapi_set_display_callback)
138
GetProcAddress(gsdll->hmodule, "gsapi_set_display_callback");
137
gsdll->set_display_callback = (PFN_gsapi_set_display_callback)
138
GetProcAddress(gsdll->hmodule, "gsapi_set_display_callback");
139
139
if (gsdll->set_display_callback == NULL) {
140
strncpy(last_error, "Can't find gsapi_set_display_callback\n", len-1);
140
strncpy(last_error, "Can't find gsapi_set_display_callback\n", len-1);
145
gsdll->init_with_args = (PFN_gsapi_init_with_args)
146
GetProcAddress(gsdll->hmodule, "gsapi_init_with_args");
145
gsdll->init_with_args = (PFN_gsapi_init_with_args)
146
GetProcAddress(gsdll->hmodule, "gsapi_init_with_args");
147
147
if (gsdll->init_with_args == NULL) {
148
strncpy(last_error, "Can't find gsapi_init_with_args\n", len-1);
148
strncpy(last_error, "Can't find gsapi_init_with_args\n", len-1);
153
gsdll->run_string = (PFN_gsapi_run_string) GetProcAddress(gsdll->hmodule,
153
gsdll->run_string = (PFN_gsapi_run_string) GetProcAddress(gsdll->hmodule,
155
155
if (gsdll->run_string == NULL) {
156
strncpy(last_error, "Can't find gsapi_run_string\n", len-1);
156
strncpy(last_error, "Can't find gsapi_run_string\n", len-1);
161
gsdll->exit = (PFN_gsapi_exit) GetProcAddress(gsdll->hmodule,
161
gsdll->exit = (PFN_gsapi_exit) GetProcAddress(gsdll->hmodule,
163
163
if (gsdll->exit == NULL) {
164
strncpy(last_error, "Can't find gsapi_exit\n", len-1);
164
strncpy(last_error, "Can't find gsapi_exit\n", len-1);
169
gsdll->set_visual_tracer = (PFN_gsapi_set_visual_tracer)
169
gsdll->set_visual_tracer = (PFN_gsapi_set_visual_tracer)
170
170
GetProcAddress(gsdll->hmodule, "gsapi_set_visual_tracer");
171
171
if (gsdll->set_visual_tracer == NULL) {
172
strncpy(last_error, "Can't find gsapi_set_visual_tracer\n", len-1);
172
strncpy(last_error, "Can't find gsapi_set_visual_tracer\n", len-1);