Mercurial > mplayer.hg
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(¶ms, globals); | 66 ret = dispatcher_func(params, globals); |
64 printf("CDComponentDispatch(%p, %p) => %x\n", | 67 printf("CDComponentDispatch(%p, %p) => %x\n", |
65 ¶ms, globals, ret); | 68 ¶ms, globals, ret); |
66 free(globals); | 69 free(globals); |
67 free(params); | 70 free(params); |
68 } | 71 } |