comparison loader/qtx/qtxload.c @ 2582:1616ad8fec1b

hm, non-working :)
author alex
date Tue, 30 Oct 2001 23:20:31 +0000
parents 67d859e9c29e
children a0b454046396
comparison
equal deleted inserted replaced
2581:e94a20dec331 2582:1616ad8fec1b
1 /* to compile: gcc -o qtxload qtxload.c ../libloader.a -lpthread -ldl -ggdb ../../cpudetect.o */
2
1 #include <stdio.h> 3 #include <stdio.h>
2 #include "qtxsdk/components.h" 4 #include "qtxsdk/components.h"
3 5
4 #define DEF_DISPATCHER(name) ComponentResult (*##name)(struct ComponentParameters *, void **) 6 #define DEF_DISPATCHER(name) ComponentResult (*##name)(struct ComponentParameters *, void **)
5 7
19 char *get_path() 21 char *get_path()
20 { 22 {
21 return("."); 23 return(".");
22 } 24 }
23 25
24 main() 26 main(int argc, char *argv[])
25 { 27 {
26 void *handler; 28 void *handler;
27 void *dispatcher; 29 void *dispatcher;
28 30
29 Setup_LDT_Keeper(); 31 Setup_LDT_Keeper();
43 globals = malloc(sizeof(long)); 45 globals = malloc(sizeof(long));
44 (long)*(void **)globals = 0x2001; 46 (long)*(void **)globals = 0x2001;
45 47
46 params = malloc(sizeof(struct ComponentParameters)); 48 params = malloc(sizeof(struct ComponentParameters));
47 49
48 params->flags = 0; 50 params->flags = 2;
49 params->paramSize = sizeof(params); 51 params->paramSize = sizeof(params);
50 params->what = 0x3f; /* probarly register :p */ 52 params->what = atoi(argv[1]);
51 params->params[0] = 0x1984; 53 params->params[0] = 0x1984;
52 /* 0x1000100f will load QuickTime.qts */ 54 /* 0x1000100f will load QuickTime.qts */
53 /* 0x10001014 will use SendMessageA */ 55 /* 0x10001014 will use SendMessageA */
54 /* 0x10001019 returns 0 */ 56 /* 0x10001019 returns 0 */
55 /* 0x1000101e will load QuickTime.qts */ 57 /* 0x1000101e will load QuickTime.qts */
56 /* 0x10001028 returns params' addr */ 58 /* 0x10001028 returns params' addr */
57 /* 0x1000102d is a dialog */ 59 /* 0x1000102d is a dialog */
58 /* 0x10001032 returns 20001 => CDVersion */ 60 /* 0x10001032 returns 20001 => CDVersion */
59 /* 0x10001069 returns 8a */ 61 /* 0x10001069 returns 8a */
62 /* 0x100010b4 probarly init ?? */
60 printf("params: flags: %d, paramSize: %d, what: %d\n", 63 printf("params: flags: %d, paramSize: %d, what: %d\n",
61 params->flags, params->paramSize, params->what); 64 params->flags, params->paramSize, params->what);
62 printf("params[0] = %x\n", params->params[0]); 65 printf("params[0] = %x\n", params->params[0]);
63 ret = dispatcher_func(&params, globals); 66 ret = dispatcher_func(params, globals);
64 printf("CDComponentDispatch(%p, %p) => %x\n", 67 printf("CDComponentDispatch(%p, %p) => %x\n",
65 &params, globals, ret); 68 &params, globals, ret);
66 free(globals); 69 free(globals);
67 free(params); 70 free(params);
68 } 71 }