annotate loader/win32.c @ 2165:03b83a9eafa3

dshow codec is preferred for mp42 - it does postprocess
author arpi
date Thu, 11 Oct 2001 14:46:09 +0000
parents e06cabbd1a9b
children f7ebe1935ffa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /***********************************************************
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3 Win32 emulation code. Functions that emulate
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
4 responses from corresponding Win32 API calls.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 Since we are not going to be able to load
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 virtually any DLL, we can only implement this
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 much, adding needed functions with each new codec.
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
8
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
9 Basic principle of implementation: it's not good
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
10 for DLL to know too much about its environment.
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 ************************************************************/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
14 #include "config.h"
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
16 #include "wine/winbase.h"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
17 #include "wine/winreg.h"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
18 #include "wine/winnt.h"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
19 #include "wine/winerror.h"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
20 #include "wine/debugtools.h"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
21 #include "wine/module.h"
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
22
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
23 #include <stdio.h>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 #include "win32.h"
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
25
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
26 #include "registry.h"
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
27 #include "loader.h"
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
28 #include "com.h"
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
29
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
30 #include <stdlib.h>
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
31 #include <stdarg.h>
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
32 #include <ctype.h>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 #include <pthread.h>
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
34 #include <errno.h>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 #ifdef HAVE_MALLOC_H
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 #include <malloc.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 #endif
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 #include <time.h>
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
39 #include <unistd.h>
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
40 #include <fcntl.h>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 #include <sys/types.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 #include <sys/time.h>
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43 #include <sys/timeb.h>
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
44 #ifdef HAVE_KSTAT
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
45 #include <kstat.h>
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
46 #endif
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47
1416
8e841fe5668b partial avifile-CVS merge
arpi
parents: 1307
diff changeset
48
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
49 char* def_path=WIN32_PATH;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
50
1923
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
51 static void do_cpuid(unsigned int ax, unsigned int *regs)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
52 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
53 __asm__ __volatile__(
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
54 "pushl %%ebx; pushl %%ecx; pushl %%edx;"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
55 ".byte 0x0f, 0xa2;"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
56 "movl %%eax, (%2);"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
57 "movl %%ebx, 4(%2);"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
58 "movl %%ecx, 8(%2);"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
59 "movl %%edx, 12(%2);"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
60 "popl %%edx; popl %%ecx; popl %%ebx;"
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
61 : "=a" (ax)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
62 : "0" (ax), "S" (regs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
63 );
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
64 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
65 static unsigned int c_localcount_tsc()
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 int a;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68 __asm__ __volatile__("rdtsc\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 :"=a"(a)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 :
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 :"edx");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 return a;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
74 static void c_longcount_tsc(long long* z)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
76 __asm__ __volatile__(
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
77 "pushl %%ebx\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
78 "movl %%eax, %%ebx\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79 "rdtsc\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
80 "movl %%eax, 0(%%ebx)\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
81 "movl %%edx, 4(%%ebx)\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
82 "popl %%ebx\n\t"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
83 ::"a"(z));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
84 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
85 static unsigned int c_localcount_notsc()
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
86 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
87 struct timeval tv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
88 unsigned limit=~0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
89 limit/=1000000;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
90 gettimeofday(&tv, 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
91 return limit*tv.tv_usec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
92 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
93 static void c_longcount_notsc(long long* z)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
94 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
95 struct timeval tv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
96 unsigned long long result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97 unsigned limit=~0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
98 if(!z)return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
99 limit/=1000000;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
100 gettimeofday(&tv, 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
101 result=tv.tv_sec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102 result<<=32;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
103 result+=limit*tv.tv_usec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
104 *z=result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
105 }
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
106 static unsigned int localcount_stub(void);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
107 static void longcount_stub(long long*);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
108 static unsigned int (*localcount)()=localcount_stub;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
109 static void (*longcount)(long long*)=longcount_stub;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
110
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
111 static unsigned int localcount_stub(void)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
112 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
113 unsigned int regs[4];
1923
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
114 do_cpuid(1, regs);
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
115 if ((regs[3] & 0x00000010) != 0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
116 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
117 localcount=c_localcount_tsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
118 longcount=c_longcount_tsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
119 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
120 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
121 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
122 localcount=c_localcount_notsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
123 longcount=c_longcount_notsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
124 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
125 return localcount();
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
126 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
127 static void longcount_stub(long long* z)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
128 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
129 unsigned int regs[4];
1923
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
130 do_cpuid(1, regs);
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
131 if ((regs[3] & 0x00000010) != 0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
132 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
133 localcount=c_localcount_tsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
134 longcount=c_longcount_tsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
135 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
136 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
137 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
138 localcount=c_localcount_notsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
139 longcount=c_longcount_notsc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
140 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
141 longcount(z);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
142 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
143
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
144 int LOADER_DEBUG=1; // active only if compiled with -DDETAILED_OUT
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
145 static inline void dbgprintf(char* fmt, ...)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
146 {
235
6f96d4143806 verbose output changed
arpi_esp
parents: 130
diff changeset
147 #ifdef DETAILED_OUT
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
148 if(LOADER_DEBUG)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
149 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
150 FILE* f;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
151 va_list va;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
152 va_start(va, fmt);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
153 f=fopen("./log", "a");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
154 vprintf(fmt, va);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
155 if(f)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
156 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
157 vfprintf(f, fmt, va);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
158 fsync(fileno(f));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
159 fclose(f);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
160 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
161 va_end(va);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
162 }
235
6f96d4143806 verbose output changed
arpi_esp
parents: 130
diff changeset
163 #endif
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
164 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
165 char export_names[500][30]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
166 "name1",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
167 //"name2",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
168 //"name3"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
169 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
170 //#define min(x,y) ((x)<(y)?(x):(y))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
171
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
172 static unsigned char* heap=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
173 static int heap_counter=0;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
174 static void test_heap(void)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
175 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
176 int offset=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
177 if(heap==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
178 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
179 while(offset<heap_counter)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
180 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
181 if(*(int*)(heap+offset)!=0x433476)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
182 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
183 printf("Heap corruption at address %d\n", offset);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
184 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
185 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
186 offset+=8+*(int*)(heap+offset+4);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
187 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
188 for(;offset<min(offset+1000, 20000000); offset++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
189 if(heap[offset]!=0xCC)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
190 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
191 printf("Free heap corruption at address %d\n", offset);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
192 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
193 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
194 #undef MEMORY_DEBUG
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
195
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
196 #ifdef MEMORY_DEBUG
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
197
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
198 void* my_mreq(int size, int to_zero)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
199 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
200 static int test=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
201 test++;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
202 if(test%10==0)printf("Memory: %d bytes allocated\n", heap_counter);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
203 // test_heap();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
204 if(heap==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
205 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
206 heap=malloc(20000000);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
207 memset(heap, 0xCC,20000000);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
208 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
209 if(heap==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
210 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
211 printf("No enough memory\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
212 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
213 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
214 if(heap_counter+size>20000000)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
215 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
216 printf("No enough memory\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
217 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
218 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
219 *(int*)(heap+heap_counter)=0x433476;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
220 heap_counter+=4;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
221 *(int*)(heap+heap_counter)=size;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
222 heap_counter+=4;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
223 printf("Allocated %d bytes of memory: sys %d, user %d-%d\n", size, heap_counter-8, heap_counter, heap_counter+size);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
224 if(to_zero)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
225 memset(heap+heap_counter, 0, size);
1543
228bb6a3e76d UnregisterComClass added
arpi
parents: 1416
diff changeset
226 else
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
227 memset(heap+heap_counter, 0xcc, size); // make crash reproducable
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
228 heap_counter+=size;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
229 return heap+heap_counter-size;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
230 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
231 int my_release(char* memory)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
232 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
233 // test_heap();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
234 if(memory==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
235 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
236 printf("ERROR: free(0)\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
237 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
238 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
239 if(*(int*)(memory-8)!=0x433476)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
240 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
241 printf("MEMORY CORRUPTION !!!!!!!!!!!!!!!!!!!\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
242 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
243 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
244 printf("Freed %d bytes of memory\n", *(int*)(memory-4));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
245 // memset(memory-8, *(int*)(memory-4), 0xCC);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
246 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
247 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
248
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
249 #else
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
250 #define GARBAGE
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
251 #ifdef GARBAGE
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
252 struct alc_list_t;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
253 typedef struct alc_list_t {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
254 int size;
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
255 void *addr;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
256 struct alc_list_t *prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
257 struct alc_list_t *next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
258 }alc_list;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
259 static alc_list *alclist=NULL;
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
260 static int alccnt=0;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
261 #endif
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
262
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
263 void* my_mreq(int size, int to_zero)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
264 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
265 void* answer;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
266 if(to_zero)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
267 answer=calloc(size+4, 1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
268 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
269 answer=malloc(size+4);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
270 *(int*)answer=size;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
271 #ifdef GARBAGE
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
272 if (alclist==NULL) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
273 alclist=malloc(sizeof(alc_list));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
274 alclist->prev=alclist->next=NULL;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
275 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
276 else {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
277 alclist->next=malloc(sizeof(alc_list));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
278 alclist->next->prev=alclist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
279 alclist->next->next=NULL;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
280 alclist=alclist->next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
281 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
282 alclist->size=size;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
283 alclist->addr=answer;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
284 alccnt++;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
285 #endif
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
286 return (int*)((int)answer+sizeof(int));
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
287 }
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
288 int my_release(void* memory)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
289 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
290 #ifdef GARBAGE
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
291 alc_list* pp;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
292 if(memory==0)return 0;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
293 if(alclist!=NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
294 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
295 pp=alclist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
296 if ((pp->prev==NULL) && (pp->next == NULL)){
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
297 free(pp);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
298 alclist=NULL;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
299 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
300 else {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
301 for(;pp;pp=pp->prev) {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
302 if (pp->addr == (char*)memory-4) {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
303 if (pp->prev)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
304 pp->prev->next=pp->next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
305 if (pp->next)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
306 pp->next->prev=pp->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
307 if (pp == alclist)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
308 alclist=pp->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
309 free(pp);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
310 alccnt--;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
311 break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
312 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
313 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
314 if (pp == NULL) {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
315 printf("Not Found %p %d\n",(char*)memory-4,alccnt);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
316 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
317 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
318 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
319 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
320 #endif
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
321 free((char*)memory-4);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
322 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
323 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
324 #endif
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
325 int my_size(void* memory)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
326 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
327 return *(int*)((char*)memory-4);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
328 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
329 void* my_realloc(void* memory,int size)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
330 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
331 void *ans;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
332 #ifdef GARBAGE
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
333 alc_list* pp;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
334 if(memory == NULL)return 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
335 pp=alclist;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
336 if(pp == NULL) return 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
337 ans=NULL;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
338 for(;pp;pp=pp->prev) {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
339 if (pp->addr == (char*)memory-4) {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
340 ans = realloc(memory-4,size+4);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
341 if (ans == 0) return 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
342 pp->size = size;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
343 pp->addr = ans;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
344 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
345 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
346 #else
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
347 ans = realloc(memory-4,size+4);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
348 #endif
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
349 return ans;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
350 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
351
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
352 extern int unk_exp1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
353 char extcode[20000];// place for 200 unresolved exports
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
354 int pos=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
355
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
356 int WINAPI ext_unknown()
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
357 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
358 printf("Unknown func called\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
359 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
360 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
361 int WINAPI expIsBadWritePtr(void* ptr, unsigned int count)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
362 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
363 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
364 if(count==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
365 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
366 else
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
367 if(ptr==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
368 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
369 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
370 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
371 dbgprintf("IsBadWritePtr(0x%x, 0x%x) => %d\n", ptr, count, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
372 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
373 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
374 int WINAPI expIsBadReadPtr(void* ptr, unsigned int count)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
375 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
376 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
377 if(count==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
378 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
379 else
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
380 if(ptr==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
381 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
382 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
383 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
384 dbgprintf("IsBadReadPtr(0x%x, 0x%x) => %d\n", ptr, count, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
385 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
386 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
387 void* CDECL expmalloc(int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
388 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
389 //printf("malloc");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
390 // return malloc(size);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
391 void* result=my_mreq(size,0);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
392 dbgprintf("malloc(0x%x) => 0x%x\n", size,result);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
393 if(result==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
394 printf("WARNING: malloc() failed\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
395 return result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
396 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
397 void CDECL expfree(void* mem)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
398 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
399 // return free(mem);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
400 dbgprintf("free(0x%x)\n", mem);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
401 my_release(mem);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
402 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
403 void* CDECL expnew(int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
404 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
405 // printf("NEW:: Call from address %08x\n STACK DUMP:\n", *(-1+(int*)&size));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
406 // printf("%08x %08x %08x %08x\n",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
407 // size, *(1+(int*)&size),
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
408 // *(2+(int*)&size),*(3+(int*)&size));
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
409 void* result=my_mreq(size,0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
410 dbgprintf("new(0x%x) => 0x%x\n", size, result);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
411 if(result==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
412 printf("WARNING: new() failed\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
413 return result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
414
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
415 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
416 int CDECL expdelete(void* memory)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
417 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
418 dbgprintf("delete(0x%x)\n", memory);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
419 my_release(memory);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
420 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
421 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
422 int WINAPI expDisableThreadLibraryCalls(int module)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
423 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
424 dbgprintf("DisableThreadLibraryCalls(0x%x) => 0\n", module);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
425 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
426 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
427 int CDECL exp_initterm(int v1, int v2)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
428 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
429 dbgprintf("_initterm(0x%x, 0x%x) => 0\n", v1, v2);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
430 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
431 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
432
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
433 HMODULE WINAPI expGetDriverModuleHandle(DRVR* pdrv)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
434 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
435 HMODULE result;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
436 if (pdrv==NULL)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
437 result=0;
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
438 else
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
439 result=pdrv->hDriverModule;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
440 dbgprintf("GetDriverModuleHandle(%p) => %p\n", pdrv, result);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
441 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
442 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
443
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
444 #define MODULE_HANDLE_kernel32 ((HMODULE)0x120)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
445
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
446 HMODULE WINAPI expGetModuleHandleA(const char* name)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
447 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
448 WINE_MODREF* wm;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
449 HMODULE result;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
450 if(!name)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
451 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
452 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
453 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
454 wm=MODULE_FindModule(name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
455 if(wm==0)result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
456 else
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
457 result=(HMODULE)(wm->module);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
458 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
459 if(!result)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
460 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
461 if(strcasecmp(name, "kernel32")==0)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
462 result=MODULE_HANDLE_kernel32;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
463 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
464 dbgprintf("GetModuleHandleA('%s') => 0x%x\n", name, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
465 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
466 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
467
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
468 struct th_list_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
469 typedef struct th_list_t{
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
470 int id;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
471 void* thread;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
472 struct th_list_t* next;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
473 struct th_list_t* prev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
474 }th_list;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
475
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
476 static th_list* list=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
477
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
478
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
479
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
480 void* WINAPI expCreateThread(void* pSecAttr, long dwStackSize, void* lpStartAddress,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
481 void* lpParameter, long dwFlags, long* dwThreadId)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
482 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
483 pthread_t *pth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
484 // printf("CreateThread:");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
485 pth=my_mreq(sizeof(pthread_t), 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
486 pthread_create(pth, NULL, (void*(*)(void*))lpStartAddress, lpParameter);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
487 if(dwFlags)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
488 printf( "WARNING: CreateThread flags not supported\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
489 if(dwThreadId)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
490 *dwThreadId=(long)pth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
491 if(list==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
492 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
493 list=my_mreq(sizeof(th_list), 1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
494 list->next=list->prev=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
495 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
496 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
497 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
498 list->next=my_mreq(sizeof(th_list), 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
499 list->next->prev=list;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
500 list->next->next=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
501 list=list->next;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
502 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
503 list->thread=pth;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
504 dbgprintf("CreateThread(0x%x, 0x%x, 0x%x, 0x%x, 0x%x, 0x%x) => 0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
505 pSecAttr, dwStackSize, lpStartAddress, lpParameter, dwFlags, dwThreadId, pth);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
506 return pth;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
507 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
508
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
509 struct mutex_list_t;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
510
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
511 struct mutex_list_t
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
512 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
513 char type;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
514 pthread_mutex_t *pm;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
515 pthread_cond_t *pc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
516 char state;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
517 char reset;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
518 char name[64];
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
519 int semaphore;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
520 struct mutex_list_t* next;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
521 struct mutex_list_t* prev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
522 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
523 typedef struct mutex_list_t mutex_list;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
524 static mutex_list* mlist=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
525 void* WINAPI expCreateEventA(void* pSecAttr, char bManualReset,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
526 char bInitialState, const char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
527 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
528 pthread_mutex_t *pm;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
529 pthread_cond_t *pc;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
530 if(mlist!=NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
531 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
532 mutex_list* pp=mlist;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
533 if(name!=NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
534 do
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
535 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
536 if((strcmp(pp->name, name)==0) && (pp->type==0))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
537 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
538 dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, 0x%x='%s') => 0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
539 pSecAttr, bManualReset, bInitialState, name, name, pp->pm);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
540 return pp->pm;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
541 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
542 }while((pp=pp->prev) != NULL);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
543 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
544 pm=my_mreq(sizeof(pthread_mutex_t), 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
545 pthread_mutex_init(pm, NULL);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
546 pc=my_mreq(sizeof(pthread_cond_t), 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
547 pthread_cond_init(pc, NULL);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
548 if(mlist==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
549 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
550 mlist=my_mreq(sizeof(mutex_list), 00);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
551 mlist->next=mlist->prev=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
552 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
553 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
554 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
555 mlist->next=my_mreq(sizeof(mutex_list), 00);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
556 mlist->next->prev=mlist;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
557 mlist->next->next=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
558 mlist=mlist->next;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
559 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
560 mlist->type=0; /* Type Event */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
561 mlist->pm=pm;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
562 mlist->pc=pc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
563 mlist->state=bInitialState;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
564 mlist->reset=bManualReset;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
565 if(name!=NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
566 strncpy(mlist->name, name, 64);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
567 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
568 mlist->name[0]=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
569 if(pm==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
570 dbgprintf("ERROR::: CreateEventA failure\n");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
571 /*
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
572 if(bInitialState)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
573 pthread_mutex_lock(pm);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
574 */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
575 if(name)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
576 dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, 0x%x='%s') => 0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
577 pSecAttr, bManualReset, bInitialState, name, name, mlist);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
578 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
579 dbgprintf("CreateEventA(0x%x, 0x%x, 0x%x, NULL) => 0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
580 pSecAttr, bManualReset, bInitialState, mlist);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
581 return mlist;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
582 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
583
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
584 void* WINAPI expSetEvent(void* event)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
585 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
586 mutex_list *ml = (mutex_list *)event;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
587 dbgprintf("SetEvent(%x) => 0x1\n", event);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
588 pthread_mutex_lock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
589 if (ml->state == 0) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
590 ml->state = 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
591 pthread_cond_signal(ml->pc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
592 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
593 pthread_mutex_unlock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
594
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
595 return (void *)1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
596 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
597 void* WINAPI expResetEvent(void* event)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
598 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
599 mutex_list *ml = (mutex_list *)event;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
600 dbgprintf("ResetEvent(0x%x) => 0x1\n", event);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
601 pthread_mutex_lock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
602 ml->state = 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
603 pthread_mutex_unlock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
604
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
605 return (void *)1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
606 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
607
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
608 void* WINAPI expWaitForSingleObject(void* object, int duration)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
609 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
610 mutex_list *ml = (mutex_list *)object;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
611 // FIXME FIXME FIXME - this value is sometime unititialize !!!
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
612 int ret = WAIT_FAILED;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
613 mutex_list* pp=mlist;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
614 dbgprintf("WaitForSingleObject(0x%x, duration %d) =>\n",object, duration);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
615
718
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
616 // loop below was slightly fixed - its used just for checking if
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
617 // this object really exists in our list
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
618 if (!ml)
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
619 return (void*) ret;
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
620 while (pp && (pp->pm != ml->pm))
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
621 pp = pp->prev;
718
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
622 if (!pp) {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
623 dbgprintf("WaitForSingleObject: NotFound\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
624 return (void*)ret;
718
3156ab0adffe Applies kabis changes to avifile 0.6 cvs
atmosfear
parents: 713
diff changeset
625 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
626
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
627 pthread_mutex_lock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
628
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
629 switch(ml->type) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
630 case 0: /* Event */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
631 if (duration == 0) { /* Check Only */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
632 if (ml->state == 1) ret = WAIT_FAILED;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
633 else ret = WAIT_OBJECT_0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
634 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
635 if (duration == -1) { /* INFINITE */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
636 if (ml->state == 0)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
637 pthread_cond_wait(ml->pc,ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
638 if (ml->reset)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
639 ml->state = 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
640 ret = WAIT_OBJECT_0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
641 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
642 if (duration > 0) { /* Timed Wait */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
643 struct timespec abstime;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
644 struct timeval now;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
645 gettimeofday(&now, 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
646 abstime.tv_sec = now.tv_sec + (now.tv_usec+duration)/1000000;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
647 abstime.tv_nsec = ((now.tv_usec+duration)%1000000)*1000;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
648 if (ml->state == 0)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
649 ret=pthread_cond_timedwait(ml->pc,ml->pm,&abstime);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
650 if (ret == ETIMEDOUT) ret = WAIT_TIMEOUT;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
651 else ret = WAIT_OBJECT_0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
652 if (ml->reset)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
653 ml->state = 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
654 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
655 break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
656 case 1: /* Semaphore */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
657 if (duration == 0) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
658 if(ml->semaphore==0) ret = WAIT_FAILED;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
659 else {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
660 ml->semaphore++;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
661 ret = WAIT_OBJECT_0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
662 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
663 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
664 if (duration == -1) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
665 if (ml->semaphore==0)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
666 pthread_cond_wait(ml->pc,ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
667 ml->semaphore--;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
668 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
669 break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
670 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
671 pthread_mutex_unlock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
672
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
673 dbgprintf("WaitForSingleObject(0x%x, %d): 0x%x => 0x%x \n",object,duration,ml,ret);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
674 return (void *)ret;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
675 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
676
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
677 static BYTE PF[64] = {0,};
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
678
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
679 WIN_BOOL WINAPI expIsProcessorFeaturePresent(DWORD v)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
680 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
681 WIN_BOOL result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
682 if(v>63)result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
683 else result=PF[v];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
684 dbgprintf("IsProcessorFeaturePresent(0x%x) => 0x%x\n", v, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
685 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
686 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
687
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
688 static void DumpSystemInfo(const SYSTEM_INFO* si)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
689 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
690 dbgprintf(" Processor architecture %d\n", si->u.s.wProcessorArchitecture);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
691 dbgprintf(" Page size: %d\n", si->dwPageSize);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
692 dbgprintf(" Minimum app address: %d\n", si->lpMinimumApplicationAddress);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
693 dbgprintf(" Maximum app address: %d\n", si->lpMaximumApplicationAddress);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
694 dbgprintf(" Active processor mask: 0x%x\n", si->dwActiveProcessorMask);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
695 dbgprintf(" Number of processors: %d\n", si->dwNumberOfProcessors);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
696 dbgprintf(" Processor type: 0x%x\n", si->dwProcessorType);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
697 dbgprintf(" Allocation granularity: 0x%x\n", si->dwAllocationGranularity);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
698 dbgprintf(" Processor level: 0x%x\n", si->wProcessorLevel);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
699 dbgprintf(" Processor revision: 0x%x\n", si->wProcessorRevision);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
700 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
701
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
702 void WINAPI expGetSystemInfo(SYSTEM_INFO* si)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
703 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
704 /* FIXME: better values for the two entries below... */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
705 static int cache = 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
706 static SYSTEM_INFO cachedsi;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
707 unsigned int regs[4];
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
708 dbgprintf("GetSystemInfo(%p) =>\n", si);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
709
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
710 if (cache) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
711 memcpy(si,&cachedsi,sizeof(*si));
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
712 DumpSystemInfo(si);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
713 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
714 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
715 memset(PF,0,sizeof(PF));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
716
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
717 cachedsi.u.s.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_INTEL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
718 cachedsi.dwPageSize = getpagesize();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
719
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
720 /* FIXME: better values for the two entries below... */
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
721 cachedsi.lpMinimumApplicationAddress = (void *)0x00000000;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
722 cachedsi.lpMaximumApplicationAddress = (void *)0x7FFFFFFF;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
723 cachedsi.dwActiveProcessorMask = 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
724 cachedsi.dwNumberOfProcessors = 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
725 cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
726 cachedsi.dwAllocationGranularity = 0x10000;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
727 cachedsi.wProcessorLevel = 5; /* pentium */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
728 cachedsi.wProcessorRevision = 0x0101;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
729
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
730 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__)
1923
40084ad62591 do_cpuid stored the results of the cpuid instruction in the wrong place
jkeil
parents: 1679
diff changeset
731 do_cpuid(1, regs);
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
732 switch ((regs[0] >> 8) & 0xf) { // cpu family
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
733 case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
734 cachedsi.wProcessorLevel= 3;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
735 break;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
736 case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
737 cachedsi.wProcessorLevel= 4;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
738 break;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
739 case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
740 cachedsi.wProcessorLevel= 5;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
741 break;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
742 case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
743 cachedsi.wProcessorLevel= 5;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
744 break;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
745 default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
746 cachedsi.wProcessorLevel= 5;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
747 break;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
748 }
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
749 cachedsi.wProcessorRevision = regs[0] & 0xf; // stepping
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
750 if (regs[3] & (1 << 8))
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
751 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J«ärgen Keil <jk@tools.de>
arpi_esp
parents: 718
diff changeset
752 if (regs[3] & (1 << 23))
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
753 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
754 cachedsi.dwNumberOfProcessors=1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
755 #else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
756 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
757 char buf[20];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
758 char line[200];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
759 FILE *f = fopen ("/proc/cpuinfo", "r");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
760
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
761 if (!f)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
762 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
763 while (fgets(line,200,f)!=NULL) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
764 char *s,*value;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
765
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
766 /* NOTE: the ':' is the only character we can rely on */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
767 if (!(value = strchr(line,':')))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
768 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
769 /* terminate the valuename */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
770 *value++ = '\0';
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
771 /* skip any leading spaces */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
772 while (*value==' ') value++;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
773 if ((s=strchr(value,'\n')))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
774 *s='\0';
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
775
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
776 /* 2.1 method */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
777 if (!lstrncmpiA(line, "cpu family",strlen("cpu family"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
778 if (isdigit (value[0])) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
779 switch (value[0] - '0') {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
780 case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
781 cachedsi.wProcessorLevel= 3;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
782 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
783 case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
784 cachedsi.wProcessorLevel= 4;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
785 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
786 case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
787 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
788 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
789 case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
790 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
791 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
792 default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
793 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
794 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
795 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
796 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
797 /* set the CPU type of the current processor */
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
798 sprintf(buf,"CPU %ld",cachedsi.dwProcessorType);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
799 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
800 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
801 /* old 2.0 method */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
802 if (!lstrncmpiA(line, "cpu",strlen("cpu"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
803 if ( isdigit (value[0]) && value[1] == '8' &&
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
804 value[2] == '6' && value[3] == 0
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
805 ) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
806 switch (value[0] - '0') {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
807 case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
808 cachedsi.wProcessorLevel= 3;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
809 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
810 case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
811 cachedsi.wProcessorLevel= 4;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
812 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
813 case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
814 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
815 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
816 case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
817 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
818 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
819 default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
820 cachedsi.wProcessorLevel= 5;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
821 break;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
822 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
823 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
824 /* set the CPU type of the current processor */
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
825 sprintf(buf,"CPU %ld",cachedsi.dwProcessorType);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
826 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
827 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
828 if (!lstrncmpiA(line,"fdiv_bug",strlen("fdiv_bug"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
829 if (!lstrncmpiA(value,"yes",3))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
830 PF[PF_FLOATING_POINT_PRECISION_ERRATA] = TRUE;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
831
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
832 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
833 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
834 if (!lstrncmpiA(line,"fpu",strlen("fpu"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
835 if (!lstrncmpiA(value,"no",2))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
836 PF[PF_FLOATING_POINT_EMULATED] = TRUE;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
837
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
838 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
839 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
840 if (!lstrncmpiA(line,"processor",strlen("processor"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
841 /* processor number counts up...*/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
842 int x;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
843
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
844 if (sscanf(value,"%d",&x))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
845 if (x+1>cachedsi.dwNumberOfProcessors)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
846 cachedsi.dwNumberOfProcessors=x+1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
847
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
848 /* Create a new processor subkey on a multiprocessor
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
849 * system
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
850 */
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
851 sprintf(buf,"%d",x);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
852 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
853 if (!lstrncmpiA(line,"stepping",strlen("stepping"))) {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
854 int x;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
855
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
856 if (sscanf(value,"%d",&x))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
857 cachedsi.wProcessorRevision = x;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
858 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
859 if
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
860 ( (!lstrncmpiA(line,"flags",strlen("flags")))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
861 || (!lstrncmpiA(line,"features",strlen("features"))) )
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
862 {
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
863 if (strstr(value,"cx8"))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
864 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
865 if (strstr(value,"mmx"))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
866 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
867
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
868 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
869 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
870 fclose (f);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
871 /*
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
872 * ad hoc fix for smp machines.
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
873 * some problems on WaitForSingleObject,CreateEvent,SetEvent
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
874 * CreateThread ...etc..
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
875 *
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
876 */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
877 cachedsi.dwNumberOfProcessors=1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
878 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
879 #endif /* __FreeBSD__ */
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
880 cache = 1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
881 memcpy(si,&cachedsi,sizeof(*si));
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
882 DumpSystemInfo(si);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
883 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
884
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
885 long WINAPI expGetVersion()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
886 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
887 dbgprintf("GetVersion() => 0xC0000004\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
888 return 0xC0000004;//Windows 95
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
889 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
890
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
891 HANDLE WINAPI expHeapCreate(long flags, long init_size, long max_size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
892 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
893 // printf("HeapCreate:");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
894 HANDLE result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
895 if(init_size==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
896 result=(HANDLE)my_mreq(0x110000, 0);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
897 else
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
898 result=(HANDLE)my_mreq(init_size, 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
899 dbgprintf("HeapCreate(flags 0x%x, initial size %d, maximum size %d) => 0x%x\n", flags, init_size, max_size, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
900 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
901 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
902 void* WINAPI expHeapAlloc(HANDLE heap, int flags, int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
903 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
904 void* z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
905 // printf("HeapAlloc:");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
906 /**
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
907 Morgan's m3jpeg32.dll v. 2.0 encoder expects that request for
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
908 HeapAlloc returns area larger than size argument :-/
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
909 **/
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
910 z=my_mreq(((size+4095)/4096)*4096, flags&8);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
911 // z=HeapAlloc(heap,flags,size);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
912 if(z==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
913 printf("HeapAlloc failure\n");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
914 dbgprintf("HeapAlloc(heap 0x%x, flags 0x%x, size 0x%x) => 0x%x\n", heap, flags, size, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
915 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
916 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
917 long WINAPI expHeapDestroy(void* heap)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
918 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
919 dbgprintf("HeapDestroy(heap 0x%x) => 1\n", heap);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
920 my_release(heap);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
921 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
922 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
923
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
924 long WINAPI expHeapFree(int arg1, int arg2, void* ptr)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
925 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
926 dbgprintf("HeapFree(0x%x, 0x%x, pointer 0x%x) => 1\n", arg1, arg2, ptr);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
927 my_release(ptr);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
928 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
929 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
930 long WINAPI expHeapSize(int heap, int flags, void* pointer)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
931 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
932 long result=my_size(pointer);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
933 dbgprintf("HeapSize(heap 0x%x, flags 0x%x, pointer 0x%x) => %d\n", heap, flags, pointer, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
934 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
935 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
936 void* WINAPI expHeapReAlloc(HANDLE heap,int flags,void *lpMem,int size)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
937 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
938 long orgsize;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
939 void *newp;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
940 orgsize = my_size(lpMem);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
941 dbgprintf("HeapReAlloc() Size %ld org %d\n",orgsize,size);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
942 if (size < orgsize)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
943 return lpMem;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
944 newp=my_mreq(size, flags & 8);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
945 memcpy(newp, lpMem, orgsize);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
946 my_release(lpMem);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
947 return newp;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
948 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
949 long WINAPI expGetProcessHeap(void)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
950 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
951 dbgprintf("GetProcessHeap() => 1\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
952 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
953 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
954 void* WINAPI expVirtualAlloc(void* v1, long v2, long v3, long v4)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
955 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
956 void* z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
957 z=VirtualAlloc(v1, v2, v3, v4);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
958 if(z==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
959 printf("VirtualAlloc failure\n");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
960 dbgprintf("VirtualAlloc(0x%x, %d, %d, %d) => 0x%x \n",v1,v2,v3,v4, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
961 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
962 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
963 int WINAPI expVirtualFree(void* v1, int v2, int v3)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
964 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
965 int result=VirtualFree(v1,v2,v3);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
966 dbgprintf("VirtualFree(0x%x, %d, %d) => %d\n",v1,v2,v3, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
967 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
968 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
969 struct CRITSECT
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
970 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
971 pthread_t id;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
972 pthread_mutex_t mutex;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
973 int locked;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
974 };
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
975
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
976 void WINAPI expInitializeCriticalSection(CRITICAL_SECTION* c)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
977 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
978 struct CRITSECT cs;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
979 dbgprintf("InitializeCriticalSection(0x%x)\n", c);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
980 /* if(sizeof(pthread_mutex_t)>sizeof(CRITICAL_SECTION))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
981 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
982 printf(" ERROR:::: sizeof(pthread_mutex_t) is %d, expected <=%d!\n",
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
983 sizeof(pthread_mutex_t), sizeof(CRITICAL_SECTION));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
984 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
985 }*/
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
986 /* pthread_mutex_init((pthread_mutex_t*)c, NULL); */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
987 pthread_mutex_init(&cs.mutex, NULL);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
988 cs.locked=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
989 *(void**)c=malloc(sizeof cs);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
990 memcpy(*(void**)c, &cs, sizeof cs);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
991 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
992 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
993 void WINAPI expEnterCriticalSection(CRITICAL_SECTION* c)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
994 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
995 struct CRITSECT* cs=*(struct CRITSECT**)c;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
996 dbgprintf("EnterCriticalSection(0x%x)\n",c);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
997 if (!cs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
998 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
999 expInitializeCriticalSection(c);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1000 cs=*(struct CRITSECT**)c;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1001 printf("Win32 Warning: Accessed uninitialized Critical Section (%p)!\n", c);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1002 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1003 // cs.id=pthread_self();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1004 if(cs->locked)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1005 if(cs->id==pthread_self())
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1006 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1007 pthread_mutex_lock(&(cs->mutex));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1008 cs->locked=1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1009 cs->id=pthread_self();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1010 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1011 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1012 void WINAPI expLeaveCriticalSection(CRITICAL_SECTION* c)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1013 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1014 struct CRITSECT* cs=*(struct CRITSECT**)c;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1015 // struct CRITSECT* cs=(struct CRITSECT*)c;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1016 dbgprintf("LeaveCriticalSection(0x%x)\n",c);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1017 if (!cs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1018 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1019 printf("Win32 Warning: Leaving noninitialized Critical Section %p!!\n", c);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1020 return;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1021 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1022 cs->locked=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1023 pthread_mutex_unlock(&(cs->mutex));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1024 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1025 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1026 void WINAPI expDeleteCriticalSection(CRITICAL_SECTION *c)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1027 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1028 struct CRITSECT* cs=*(struct CRITSECT**)c;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1029 // struct CRITSECT* cs=(struct CRITSECT*)c;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1030 dbgprintf("DeleteCriticalSection(0x%x)\n",c);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1031 pthread_mutex_destroy(&(cs->mutex));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1032 free(cs);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1033 return;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1034 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1035 int WINAPI expGetCurrentThreadId()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1036 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1037 dbgprintf("GetCurrentThreadId() => %d\n", getpid());
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1038 return getpid();
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1039 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1040 int WINAPI expGetCurrentProcess()
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1041 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1042 dbgprintf("GetCurrentProcess() => %d\n", getpid());
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1043 return getpid();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1044 }
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1045
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1046 struct tls_s {
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1047 void* value;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1048 int used;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1049 struct tls_s* prev;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1050 struct tls_s* next;
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1051 };
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1052
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1053 tls_t* g_tls=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1054
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1055 void* WINAPI expTlsAlloc()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1056 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1057 if(g_tls==NULL)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1058 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1059 g_tls=my_mreq(sizeof(tls_t), 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1060 g_tls->next=g_tls->prev=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1061 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1062 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1063 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1064 g_tls->next=my_mreq(sizeof(tls_t), 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1065 g_tls->next->prev=g_tls;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1066 g_tls->next->next=NULL;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1067 g_tls=g_tls->next;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1068 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1069 dbgprintf("TlsAlloc() => 0x%x\n", g_tls);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1070 g_tls->value=0; /* XXX For Divx.dll */
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1071 return g_tls;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1072 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1073
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1074 int WINAPI expTlsSetValue(tls_t* index, void* value)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1075 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1076 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1077 if(index==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1078 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1079 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1080 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1081 index->value=value;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1082 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1083 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1084 dbgprintf("TlsSetValue(index 0x%x, value 0x%x) => %d \n", index, value, result );
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1085 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1086 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1087 void* WINAPI expTlsGetValue(tls_t* index)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1088 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1089 void* result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1090 if(index==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1091 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1092 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1093 result=index->value;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1094 dbgprintf("TlsGetValue(index 0x%x) => 0x%x\n", index, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1095 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1096 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1097 int WINAPI expTlsFree(tls_t* index)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1098 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1099 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1100 if(index==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1101 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1102 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1103 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1104 if(index->next)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1105 index->next->prev=index->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1106 if(index->prev)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1107 index->prev->next=index->next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1108 my_release((void*)index);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1109 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1110 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1111 dbgprintf("TlsFree(index 0x%x) => %d\n", index, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1112 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1113 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1114 void* WINAPI expLocalAlloc(int flags, int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1115 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1116 void* z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1117 if(flags&GMEM_ZEROINIT)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1118 z=my_mreq(size, 1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1119 else
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1120 z=my_mreq(size, 0);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1121 if(z==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1122 printf("LocalAlloc() failed\n");
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1123 dbgprintf("LocalAlloc(%d, flags 0x%x) => 0x%x\n", size, flags, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1124 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1125 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1126
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1127 void* WINAPI expLocalReAlloc(int handle,int size, int flags)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1128 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1129 void *newpointer;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1130 int oldsize;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1131
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1132 newpointer=NULL;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1133 if (flags & LMEM_MODIFY) {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1134 dbgprintf("LocalReAlloc MODIFY\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1135 return (void *)handle;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1136 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1137 oldsize = my_size((void *)handle);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1138 if (size > oldsize) {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1139 newpointer=my_realloc((void *)handle,size);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1140 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1141 else {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1142 newpointer=(void *)handle;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1143 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1144 dbgprintf("LocalReAlloc(%x %d(old %d), flags 0x%x) => 0x%x\n", handle,size,oldsize, flags,newpointer);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1145
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1146 return newpointer;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1147
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1148 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1149
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1150 void* WINAPI expLocalLock(void* z)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1151 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1152 dbgprintf("LocalLock(0x%x) => 0x%x\n", z, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1153 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1154 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1155
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1156 void* WINAPI expGlobalAlloc(int flags, int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1157 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1158 void* z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1159 dbgprintf("GlobalAlloc(%d, flags 0x%X)\n", size, flags);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1160 if(flags&GMEM_ZEROINIT)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1161 z=calloc(size, 1);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1162 // z=my_mreq(size, 1);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1163 else
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1164 z=malloc(size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1165 // z=my_mreq(size, 0);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1166 if(z==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1167 printf("GlobalAlloc() failed\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1168 dbgprintf("GlobalAlloc(%d, flags 0x%x) => 0x%x\n", size, flags, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1169 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1170 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1171 void* WINAPI expGlobalLock(void* z)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1172 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1173 dbgprintf("GlobalLock(0x%x) => 0x%x\n", z, z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1174 return z;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1175 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1176 int WINAPI expLoadStringA(long instance, long id, void* buf, long size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1177 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1178 int result=LoadStringA(instance, id, buf, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1179 // if(buf)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1180 dbgprintf("LoadStringA(instance 0x%x, id 0x%x, buffer 0x%x, size %d) => %d ( %s )\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1181 instance, id, buf, size, result, buf);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1182 // else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1183 // dbgprintf("LoadStringA(instance 0x%x, id 0x%x, buffer 0x%x, size %d) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1184 // instance, id, buf, size, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1185 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1186 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1187
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1188 long WINAPI expMultiByteToWideChar(long v1, long v2, char* s1, long siz1, short* s2, int siz2)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1189 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1190 #warning FIXME
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1191 int i;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1192 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1193 if(s2==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1194 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1195 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1196 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1197 if(siz1>siz2/2)siz1=siz2/2;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1198 for(i=1; i<=siz1; i++)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1199 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1200 *s2=*s1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1201 if(!*s1)break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1202 s2++;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1203 s1++;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1204 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1205 result=i;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1206 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1207 if(s1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1208 dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string 0x%x='%s',
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1209 size %d, dest buffer 0x%x, dest size %d) => %d\n",
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1210 v1, v2, s1, s1, siz1, s2, siz2, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1211 else
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1212 dbgprintf("MultiByteToWideChar(codepage %d, flags 0x%x, string NULL,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1213 size %d, dest buffer 0x%x, dest size %d) =>\n",
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1214 v1, v2, siz1, s2, siz2, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1215 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1216 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1217 static void wch_print(const short* str)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1218 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1219 dbgprintf(" src: ");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1220 while(*str)dbgprintf("%c", *str++);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1221 dbgprintf("\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1222 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1223 long WINAPI expWideCharToMultiByte(long v1, long v2, short* s1, long siz1, char* s2, int siz2, char* c3, int* siz3)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1224 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1225 int result;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1226 dbgprintf("WideCharToMultiByte(codepage %d, flags 0x%x, src 0x%x, src size %d, "
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1227 "dest 0x%x, dest size %d, defch 0x%x, used_defch 0x%x)", v1, v2, s1, siz1, s2, siz2, c3, siz3);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1228 result=WideCharToMultiByte(v1, v2, s1, siz1, s2, siz2, c3, siz3);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1229 dbgprintf("=> %d\n", result);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1230 //if(s1)wch_print(s1);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1231 if(s2)dbgprintf(" dest: %s\n", s2);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1232 return result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1233 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1234 long WINAPI expGetVersionExA(OSVERSIONINFOA* c)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1235 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1236 dbgprintf("GetVersionExA(0x%x) => 1\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1237 c->dwOSVersionInfoSize=sizeof(*c);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1238 c->dwMajorVersion=4;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1239 c->dwMinorVersion=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1240 c->dwBuildNumber=0x4000457;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1241 #if 0
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1242 // leave it here for testing win9x-only codecs
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1243 c->dwPlatformId=VER_PLATFORM_WIN32_WINDOWS;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1244 strcpy(c->szCSDVersion, " B");
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1245 #else
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1246 c->dwPlatformId=VER_PLATFORM_WIN32_NT; // let's not make DLL assume that it can read CR* registers
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1247 strcpy(c->szCSDVersion, "Service Pack 3");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1248 #endif
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1249 dbgprintf(" Major version: 4\n Minor version: 0\n Build number: 0x4000457\n"
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1250 " Platform Id: VER_PLATFORM_WIN32_NT\n Version string: 'Service Pack 3'\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1251 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1252 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1253 HANDLE WINAPI expCreateSemaphoreA(char* v1, long init_count, long max_count, char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1254 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1255 pthread_mutex_t *pm;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1256 pthread_cond_t *pc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1257 if(mlist!=NULL)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1258 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1259 mutex_list* pp=mlist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1260 if(name!=NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1261 do
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1262 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1263 if((strcmp(pp->name, name)==0) && (pp->type==1))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1264 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1265 dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0x%x='%s') => 0x%x",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1266 v1, init_count, max_count, name, name, mlist);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1267 return (HANDLE)mlist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1268 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1269 }while((pp=pp->prev) != NULL);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1270 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1271 pm=my_mreq(sizeof(pthread_mutex_t), 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1272 pthread_mutex_init(pm, NULL);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1273 pc=my_mreq(sizeof(pthread_cond_t), 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1274 pthread_cond_init(pc, NULL);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1275 if(mlist==NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1276 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1277 mlist=my_mreq(sizeof(mutex_list), 00);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1278 mlist->next=mlist->prev=NULL;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1279 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1280 else
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1281 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1282 mlist->next=my_mreq(sizeof(mutex_list), 00);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1283 mlist->next->prev=mlist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1284 mlist->next->next=NULL;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1285 mlist=mlist->next;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1286 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1287 mlist->type=1; /* Type Semaphore */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1288 mlist->pm=pm;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1289 mlist->pc=pc;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1290 mlist->state=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1291 mlist->reset=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1292 mlist->semaphore=init_count;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1293 if(name!=NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1294 strncpy(mlist->name, name, 64);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1295 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1296 mlist->name[0]=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1297 if(pm==NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1298 dbgprintf("ERROR::: CreateSemaphoreA failure\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1299 if(name)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1300 dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0x%x='%s') => 0x%x",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1301 v1, init_count, max_count, name, name, mlist);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1302 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1303 dbgprintf("CreateSemaphoreA(0x%x, init_count %d, max_count %d, name 0) => 0x%x",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1304 v1, init_count, max_count, mlist);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1305 return (HANDLE)mlist;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1306 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1307
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1308 long WINAPI expReleaseSemaphore(long hsem, long increment, long* prev_count)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1309 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1310 // The state of a semaphore object is signaled when its count
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1311 // is greater than zero and nonsignaled when its count is equal to zero
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1312 // Each time a waiting thread is released because of the semaphore's signaled
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1313 // state, the count of the semaphore is decreased by one.
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1314 mutex_list *ml = (mutex_list *)hsem;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1315
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1316 pthread_mutex_lock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1317 if (prev_count != 0) *prev_count = ml->semaphore;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1318 if (ml->semaphore == 0) pthread_cond_signal(ml->pc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1319 ml->semaphore += increment;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1320 pthread_mutex_unlock(ml->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1321 dbgprintf("ReleaseSemaphore(semaphore 0x%x, increment %d, prev_count 0x%x) => 1\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1322 hsem, increment, prev_count);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1323 return 1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1324 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1325
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1326
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1327 long WINAPI expRegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1328 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1329 long result=RegOpenKeyExA(key, subkey, reserved, access, newkey);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1330 dbgprintf("RegOpenKeyExA(key 0x%x, subkey %s, reserved %d, access 0x%x, pnewkey 0x%x) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1331 key, subkey, reserved, access, newkey, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1332 if(newkey)dbgprintf(" New key: 0x%x\n", *newkey);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1333 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1334 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1335 long WINAPI expRegCloseKey(long key)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1336 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1337 long result=RegCloseKey(key);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1338 dbgprintf("RegCloseKey(0x%x) => %d\n", key, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1339 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1340 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1341 long WINAPI expRegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1342 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1343 long result=RegQueryValueExA(key, value, reserved, type, data, count);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1344 dbgprintf("RegQueryValueExA(key 0x%x, value %s, reserved 0x%x, data 0x%x, count 0x%x)"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1345 " => 0x%x\n", key, value, reserved, data, count, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1346 if(data && count)dbgprintf(" read %d bytes: '%s'\n", *count, data);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1347 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1348 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1349 long WINAPI expRegCreateKeyExA(long key, const char* name, long reserved,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1350 void* classs, long options, long security,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1351 void* sec_attr, int* newkey, int* status)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1352 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1353 long result=RegCreateKeyExA(key, name, reserved, classs, options, security, sec_attr, newkey, status);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1354 dbgprintf("RegCreateKeyExA(key 0x%x, name 0x%x='%s', reserved=0x%x,"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1355 " 0x%x, 0x%x, 0x%x, newkey=0x%x, status=0x%x) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1356 key, name, name, reserved, classs, options, security, sec_attr, newkey, status, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1357 if(!result && newkey) dbgprintf(" New key: 0x%x\n", *newkey);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1358 if(!result && status) dbgprintf(" New key status: 0x%x\n", *status);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1359 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1360 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1361 long WINAPI expRegSetValueExA(long key, const char* name, long v1, long v2, void* data, long size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1362 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1363 long result=RegSetValueExA(key, name, v1, v2, data, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1364 dbgprintf("RegSetValueExA(key 0x%x, name '%s', 0x%x, 0x%x, data 0x%x -> 0x%x '%s', size=%d) => %d",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1365 key, name, v1, v2, data, *(int*)data, data, size, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1366 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1367 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1368
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1369 long WINAPI expRegOpenKeyA (
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1370 long hKey,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1371 LPCSTR lpSubKey,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1372 int* phkResult
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1373 ){
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1374 long result=RegOpenKeyExA(hKey, lpSubKey, 0, 0, phkResult);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1375 dbgprintf("RegOpenKeyExA(key 0x%x, subkey '%s', 0x%x) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1376 hKey, lpSubKey, phkResult, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1377 if(!result && phkResult) dbgprintf(" New key: 0x%x\n", *phkResult);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1378 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1379 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1380
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1381 DWORD WINAPI expRegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1382 LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1383 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1384 return RegEnumValueA(hkey, index, value, val_count,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1385 reserved, type, data, count);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1386 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1387
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1388 long WINAPI expQueryPerformanceCounter(long long* z)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1389 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1390 longcount(z);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1391 dbgprintf("QueryPerformanceCounter(0x%x) => 1 ( %Ld )\n", z, *z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1392 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1393 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1394
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1395 /*
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1396 * return CPU clock (in kHz), using linux's /proc filesystem (/proc/cpuinfo)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1397 */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1398 static double linux_cpuinfo_freq()
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1399 {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1400 double freq=-1;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1401 FILE *f;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1402 char line[200];
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1403 char *s,*value;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1404
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1405 f = fopen ("/proc/cpuinfo", "r");
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1406 if (f != NULL) {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1407 while (fgets(line,sizeof(line),f)!=NULL) {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1408 /* NOTE: the ':' is the only character we can rely on */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1409 if (!(value = strchr(line,':')))
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1410 continue;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1411 /* terminate the valuename */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1412 *value++ = '\0';
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1413 /* skip any leading spaces */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1414 while (*value==' ') value++;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1415 if ((s=strchr(value,'\n')))
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1416 *s='\0';
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1417
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1418 if (!strncasecmp(line, "cpu MHz",strlen("cpu MHz"))
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1419 && sscanf(value, "%lf", &freq) == 1) {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1420 freq*=1000;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1421 break;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1422 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1423 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1424 fclose(f);
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1425 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1426 return freq;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1427 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1428
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1429
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1430 static double
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1431 solaris_kstat_freq()
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1432 {
1679
73c8f54305b1 Add a few ifdefs, so that the code compiles on old solaris releases (2.6 and 7)
jkeil
parents: 1543
diff changeset
1433 #if defined(HAVE_LIBKSTAT) && defined(KSTAT_DATA_INT32)
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1434 /*
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1435 * try to extract the CPU speed from the solaris kernel's kstat data
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1436 */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1437 kstat_ctl_t *kc;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1438 kstat_t *ksp;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1439 kstat_named_t *kdata;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1440 int mhz = 0;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1441
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1442 kc = kstat_open();
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1443 if (kc != NULL)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1444 {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1445 ksp = kstat_lookup(kc, "cpu_info", 0, "cpu_info0");
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1446
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1447 /* kstat found and name/value pairs? */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1448 if (ksp != NULL && ksp->ks_type == KSTAT_TYPE_NAMED)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1449 {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1450 /* read the kstat data from the kernel */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1451 if (kstat_read(kc, ksp, NULL) != -1)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1452 {
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1453 /*
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1454 * lookup desired "clock_MHz" entry, check the expected
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1455 * data type
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1456 */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1457 kdata = (kstat_named_t *)kstat_data_lookup(ksp, "clock_MHz");
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1458 if (kdata != NULL && kdata->data_type == KSTAT_DATA_INT32)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1459 mhz = kdata->value.i32;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1460 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1461 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1462 kstat_close(kc);
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1463 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1464
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1465 if (mhz > 0)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1466 return mhz * 1000.;
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1467 #endif /* HAVE_LIBKSTAT */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1468 return -1; // kstat stuff is not available, CPU freq is unknown
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1469 }
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1470
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1471 /*
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1472 * Measure CPU freq using the pentium's time stamp counter register (TSC)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1473 */
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1474 static double tsc_freq()
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1475 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1476 static double ofreq=0.0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1477 int i;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1478 int x,y;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1479 i=time(NULL);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1480 if (ofreq != 0.0) return ofreq;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1481 while(i==time(NULL));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1482 x=localcount();
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1483 i++;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1484 while(i==time(NULL));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1485 y=localcount();
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1486 ofreq = (double)(y-x)/1000.;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1487 return ofreq;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1488 }
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1489
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1490 static double CPU_Freq()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1491 {
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1492 double freq;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1493
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1494 if ((freq = linux_cpuinfo_freq()) > 0)
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1495 return freq;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1496
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1497 if ((freq = solaris_kstat_freq()) > 0)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1498 return freq;
1307
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1499
d8c1b0b38edc Add prototypes to wine/loader stuff, so that we can catch __stdcall function
jkeil
parents: 1096
diff changeset
1500 return tsc_freq();
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1501 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1502
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1503 long WINAPI expQueryPerformanceFrequency(long long* z)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1504 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1505 *z=(long long)CPU_Freq();
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1506 dbgprintf("QueryPerformanceFrequency(0x%x) => 1 ( %Ld )\n", z, *z);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1507 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1508 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1509 long WINAPI exptimeGetTime()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1510 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1511 struct timeval t;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1512 long result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1513 gettimeofday(&t, 0);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1514 result=1000*t.tv_sec+t.tv_usec/1000;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1515 dbgprintf("timeGetTime() => %d\n", result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1516 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1517 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1518 void* WINAPI expLocalHandle(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1519 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1520 dbgprintf("LocalHandle(0x%x) => 0x%x\n", v, v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1521 return v;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1522 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1523 void* WINAPI expGlobalHandle(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1524 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1525 dbgprintf("GlobalHandle(0x%x) => 0x%x\n", v, v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1526 return v;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1527 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1528 int WINAPI expGlobalUnlock(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1529 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1530 dbgprintf("GlobalUnlock(0x%x) => 1\n", v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1531 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1532 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1533 //
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1534 void* WINAPI expGlobalFree(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1535 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1536 dbgprintf("GlobalFree(0x%x) => 0\n", v);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1537 //my_release(v);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1538 free(v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1539 return 0;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1540 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1541
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1542
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1543 void* WINAPI expGlobalReAlloc(void* v, int size, int flags)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1544 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1545 void* result=realloc(v, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1546 dbgprintf("GlobalReAlloc(0x%x, size %d, flags 0x%x) => 0x%x\n", v,size,flags,result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1547 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1548 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1549
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1550 int WINAPI expLocalUnlock(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1551 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1552 dbgprintf("LocalUnlock(0x%x) => 1\n", v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1553 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1554 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1555 //
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1556 void* WINAPI expLocalFree(void* v)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1557 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1558 dbgprintf("LocalFree(0x%x) => 0\n", v);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1559 my_release(v);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1560 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1561 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1562 HRSRC WINAPI expFindResourceA(HMODULE module, char* name, char* type)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1563 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1564 HRSRC result=FindResourceA(module, name, type);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1565 dbgprintf("FindResourceA(module 0x%x, name 0x%x, type 0x%x) => 0x%x\n", module, name, type, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1566 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1567 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1568 extern HRSRC WINAPI LoadResource(HMODULE, HRSRC);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1569 HGLOBAL WINAPI expLoadResource(HMODULE module, HRSRC res)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1570 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1571 HGLOBAL result=LoadResource(module, res);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1572 dbgprintf("LoadResource(module 0x%x, resource 0x%x) => 0x%x\n", module, res, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1573 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1574 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1575 void* WINAPI expLockResource(long res)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1576 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1577 void* result=LockResource(res);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1578 dbgprintf("LockResource(0x%x) => 0x%x\n", res, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1579 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1580 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1581 int WINAPI expFreeResource(long res)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1582 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1583 int result=FreeResource(res);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1584 dbgprintf("FreeResource(0x%x) => %d\n", res, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1585 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1586 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1587 //bool fun(HANDLE)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1588 //!0 on success
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1589 int WINAPI expCloseHandle(long v1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1590 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1591 dbgprintf("CloseHandle(0x%x) => 1\n", v1);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1592 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1593 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1594
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1595 const char* WINAPI expGetCommandLineA()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1596 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1597 dbgprintf("GetCommandLineA() => \"c:\\aviplay.exe\"\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1598 return "c:\\aviplay.exe";
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1599 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1600 static short envs[]={'p', 'a', 't', 'h', ' ', 'c', ':', '\\', 0, 0};
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1601 LPWSTR WINAPI expGetEnvironmentStringsW()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1602 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1603 dbgprintf("GetEnvironmentStringsW() => 0\n", envs);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1604 return 0;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1605 }
121
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1606 void * WINAPI expRtlZeroMemory(void *p, size_t len)
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1607 {
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1608 void* result=memset(p,0,len);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1609 dbgprintf("RtlZeroMemory(0x%x, len %d) => 0x%x\n",p,len,result);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1610 return result;
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1611 }
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1612 void * WINAPI expRtlMoveMemory(void *dst, void *src, size_t len)
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1613 {
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1614 void* result=memmove(dst,src,len);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1615 dbgprintf("RtlMoveMemory (dest 0x%x, src 0x%x, len %d) => 0x%x\n",dst,src,len,result);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1616 return result;
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1617 }
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1618
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1619 void * WINAPI expRtlFillMemory(void *p, int ch, size_t len)
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1620 {
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1621 void* result=memset(p,ch,len);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1622 dbgprintf("RtlFillMemory(0x%x, char 0x%x, len %d) => 0x%x\n",p,ch,len,result);
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1623 return result;
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
1624 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1625 int WINAPI expFreeEnvironmentStringsW(short* strings)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1626 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1627 dbgprintf("FreeEnvironmentStringsW(0x%x) => 1\n", strings);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1628 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1629 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1630 int WINAPI expFreeEnvironmentStringsA(char* strings)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1631 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1632 dbgprintf("FreeEnvironmentStringsA(0x%x) => 1\n", strings);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1633 return 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1634 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1635 static const char ch_envs[]=
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1636 "__MSVCRT_HEAP_SELECT=__GLOBAL_HEAP_SELECTED,1\r\n"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1637 "PATH=C:\\;C:\\windows\\;C:\\windows\\system\r\n";
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1638 LPCSTR WINAPI expGetEnvironmentStrings()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1639 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1640 dbgprintf("GetEnvironmentStrings() => 0x%x\n", ch_envs);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1641 return (LPCSTR)ch_envs;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1642 // dbgprintf("GetEnvironmentStrings() => 0\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1643 // return 0;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1644 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1645
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1646 int WINAPI expGetStartupInfoA(STARTUPINFOA *s)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1647 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1648 int i;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1649 dbgprintf("GetStartupInfoA(0x%x) => 1\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1650 memset(s, 0, sizeof(*s));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1651 s->cb=sizeof(*s);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1652 // s->lpReserved="Reserved";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1653 // s->lpDesktop="Desktop";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1654 // s->lpTitle="Title";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1655 // s->dwX=s->dwY=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1656 // s->dwXSize=s->dwYSize=200;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1657 s->dwFlags=s->wShowWindow=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1658 // s->hStdInput=s->hStdOutput=s->hStdError=0x1234;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1659 dbgprintf(" cb=%d\n", s->cb);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1660 dbgprintf(" lpReserved='%s'\n", s->lpReserved);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1661 dbgprintf(" lpDesktop='%s'\n", s->lpDesktop);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1662 dbgprintf(" lpTitle='%s'\n", s->lpTitle);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1663 dbgprintf(" dwX=%d dwY=%d dwXSize=%d dwYSize=%d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1664 s->dwX, s->dwY, s->dwXSize, s->dwYSize);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1665 dbgprintf(" dwXCountChars=%d dwYCountChars=%d dwFillAttribute=%d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1666 s->dwXCountChars, s->dwYCountChars, s->dwFillAttribute);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1667 dbgprintf(" dwFlags=0x%x wShowWindow=0x%x cbReserved2=0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1668 s->dwFlags, s->wShowWindow, s->cbReserved2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1669 dbgprintf(" lpReserved2=0x%x hStdInput=0x%x hStdOutput=0x%x hStdError=0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1670 s->lpReserved2, s->hStdInput, s->hStdOutput, s->hStdError);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1671 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1672 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1673
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1674 int WINAPI expGetStdHandle(int z)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1675 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1676 dbgprintf("GetStdHandle(0x%x) => 0x%x\n", z+0x1234);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1677 return z+0x1234;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1678 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1679 int WINAPI expGetFileType(int handle)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1680 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1681 dbgprintf("GetFileType(0x%x) => 0x3 = pipe\n", handle);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1682 return 0x3;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1683 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1684 int WINAPI expSetHandleCount(int count)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1685 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1686 dbgprintf("SetHandleCount(0x%x) => 1\n", count);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1687 return 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1688 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1689 int WINAPI expGetACP()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1690 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1691 dbgprintf("GetACP() => 0\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1692 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1693 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1694 extern WINE_MODREF *MODULE32_LookupHMODULE(HMODULE m);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1695 int WINAPI expGetModuleFileNameA(int module, char* s, int len)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1696 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1697 WINE_MODREF *mr;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1698 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1699 // printf("File name of module %X requested\n", module);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1700 if(s==0)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1701 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1702 else
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1703 if(len<35)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1704 result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1705 else
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1706 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1707 result=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1708 strcpy(s, "c:\\windows\\system\\");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1709 mr=MODULE32_LookupHMODULE(module);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1710 if(mr==0)//oops
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1711 strcat(s, "aviplay.dll");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1712 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1713 if(strrchr(mr->filename, '/')==NULL)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1714 strcat(s, mr->filename);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1715 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1716 strcat(s, strrchr(mr->filename, '/')+1);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1717 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1718 if(!s)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1719 dbgprintf("GetModuleFileNameA(0x%x, 0x%x, %d) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1720 module, s, len, result);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1721 else
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1722 dbgprintf("GetModuleFileNameA(0x%x, 0x%x, %d) => %d ( '%s' )",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1723 module, s, len, result, s);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1724 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1725 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1726
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1727 int WINAPI expSetUnhandledExceptionFilter(void* filter)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1728 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1729 dbgprintf("SetUnhandledExceptionFilter(0x%x) => 1\n", filter);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1730 return 1;//unsupported and probably won't ever be supported
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1731 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1732
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1733 int WINAPI expLoadLibraryA(char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1734 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1735 int result = 0;
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1736 char* lastbc;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1737 int i;
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1738 if (!name)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1739 return -1;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1740 // we skip to the last backslash
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1741 // this is effectively eliminating weird characters in
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1742 // the text output windows
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1743
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1744 lastbc = strrchr(name, '\\');
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1745 if (lastbc)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1746 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1747 int i;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1748 lastbc++;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1749 for (i = 0; 1 ;i++)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1750 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1751 name[i] = *lastbc++;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1752 if (!name[i])
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1753 break;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1754 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
1755 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1756 if(strncmp(name, "c:\\windows\\", 11)==0) name += 11;
1416
8e841fe5668b partial avifile-CVS merge
arpi
parents: 1307
diff changeset
1757 if(strncmp(name, ".\\", 2)==0) name += 2;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1758
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1759 dbgprintf("Entering LoadLibraryA(%s)\n", name);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1760 result=LoadLibraryA(name);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1761 dbgprintf("Returned LoadLibraryA(0x%x='%s'), def_path=%s => 0x%x\n", name, name, def_path, result);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1762
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1763 return result;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1764 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1765 int WINAPI expFreeLibrary(int module)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1766 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1767 int result=FreeLibrary(module);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1768 dbgprintf("FreeLibrary(0x%x) => %d\n", module, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1769 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1770 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1771 void* WINAPI expGetProcAddress(HMODULE mod, char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1772 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1773 void* result;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1774 if(mod!=MODULE_HANDLE_kernel32)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1775 result=GetProcAddress(mod, name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1776 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1777 result=LookupExternalByName("kernel32.dll", name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1778 dbgprintf("GetProcAddress(0x%x, '%s') => 0x%x\n", mod, name, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1779 return result;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1780 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1781
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1782 long WINAPI expCreateFileMappingA(int hFile, void* lpAttr,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1783 long flProtect, long dwMaxHigh, long dwMaxLow, const char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1784 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1785 long result=CreateFileMappingA(hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1786 if(!name)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1787 dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1788 flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0) => %d\n",
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1789 hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1790 else
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1791 dbgprintf("CreateFileMappingA(file 0x%x, lpAttr 0x%x,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1792 flProtect 0x%x, dwMaxHigh 0x%x, dwMaxLow 0x%x, name 0x%x='%s') => %d\n",
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1793 hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name, name, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1794 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1795 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1796
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1797 long WINAPI expOpenFileMappingA(long hFile, long hz, const char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1798 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1799 long result=OpenFileMappingA(hFile, hz, name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1800 if(!name)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1801 dbgprintf("OpenFileMappingA(0x%x, 0x%x, 0) => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1802 hFile, hz, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1803 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1804 dbgprintf("OpenFileMappingA(0x%x, 0x%x, 0x%x='%s') => %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1805 hFile, hz, name, name, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1806 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1807 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1808
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1809 void* WINAPI expMapViewOfFile(HANDLE file, DWORD mode, DWORD offHigh, DWORD offLow, DWORD size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1810 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1811 dbgprintf("MapViewOfFile(0x%x, 0x%x, 0x%x, 0x%x, size %d) => 0x%x\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1812 file,mode,offHigh,offLow,size,(char*)file+offLow);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1813 return (char*)file+offLow;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1814 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1815
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1816 void* WINAPI expUnmapViewOfFile(void* view)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1817 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1818 dbgprintf("UnmapViewOfFile(0x%x) => 0\n", view);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1819 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1820 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1821
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1822 void* WINAPI expSleep(int time)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1823 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1824 // extern int avm_usleep(int);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1825 dbgprintf("Sleep(%d) => 0\n", time);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
1826 // avm_usleep(time);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1827 usleep(time);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1828 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1829 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1830 // why does IV32 codec want to call this? I don't know ...
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1831 void* WINAPI expCreateCompatibleDC(int hdc)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1832 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1833 dbgprintf("CreateCompatibleDC(%d) => 0x81\n", hdc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1834 return (void*)0x81;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1835 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1836
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1837 int WINAPI expGetDeviceCaps(int hdc, int unk)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1838 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1839 dbgprintf("GetDeviceCaps(0x%x, %d) => 0\n", hdc, unk);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1840 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1841 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1842
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1843 WIN_BOOL WINAPI expDeleteDC(int hdc)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1844 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1845 dbgprintf("DeleteDC(0x%x) => 0\n", hdc);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1846 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1847 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1848
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1849 int expwsprintfA(char* string, char* format, ...)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1850 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1851 va_list va;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1852 int result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1853 va_start(va, format);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1854 result=vsprintf(string, format, va);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1855 dbgprintf("wsprintfA(0x%x, '%s', ...) => %d\n", string, format, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1856 va_end(va);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1857 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1858 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1859
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1860 int WINAPI expGetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1861 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1862 int size=255;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1863 char buffer[256];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1864 char* fullname;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1865 int result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1866
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1867 buffer[255]=0;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1868 if(!(appname && keyname && filename) )
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1869 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1870 dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, default_value );
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1871 return default_value;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1872 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1873 fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1874 strcpy(fullname, "Software\\IniFileMapping\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1875 strcat(fullname, appname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1876 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1877 strcat(fullname, keyname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1878 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1879 strcat(fullname, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1880 result=RegQueryValueExA(HKEY_LOCAL_MACHINE, fullname, NULL, NULL, (int*)buffer, &size);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1881 if((size>=0)&&(size<256))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1882 buffer[size]=0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1883 // printf("GetPrivateProfileIntA(%s, %s, %s) -> %s\n", appname, keyname, filename, buffer);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1884 free(fullname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1885 if(result)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1886 result=default_value;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1887 else
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1888 result=atoi(buffer);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1889 dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1890 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1891 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1892 int WINAPI expGetProfileIntA(const char* appname, const char* keyname, int default_value)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1893 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1894 dbgprintf("GetProfileIntA -> ");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1895 // dbgprintf("GetProfileIntA(%s, %s, %d)\n", appname, keyname, default_value);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1896 return expGetPrivateProfileIntA(appname, keyname, default_value, "default");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1897 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1898
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1899 int WINAPI expGetPrivateProfileStringA(const char* appname, const char* keyname,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1900 const char* def_val, char* dest, unsigned int len, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1901 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1902 int result;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1903 int size;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1904 char* fullname;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1905 dbgprintf("GetPrivateProfileStringA('%s', '%s', def_val '%s', 0x%x, 0x%x, '%s')", appname, keyname, def_val, dest, len, filename );
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1906 if(!(appname && keyname && filename) ) return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1907 fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1908 strcpy(fullname, "Software\\IniFileMapping\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1909 strcat(fullname, appname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1910 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1911 strcat(fullname, keyname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1912 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1913 strcat(fullname, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1914 size=len;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1915 result=RegQueryValueExA(HKEY_LOCAL_MACHINE, fullname, NULL, NULL, (int*)dest, &size);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1916 // printf("GetPrivateProfileStringA(%s, %s, %s, %X, %X, %s)\n", appname, keyname, def_val, dest, len, filename );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1917 free(fullname);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1918 if(result)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1919 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1920 strncpy(dest, def_val, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1921 if (strlen(def_val)< size) size = strlen(def_val);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1922 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1923 dbgprintf(" => %d ( '%s' )\n", size, dest);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1924 return size;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1925 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1926 int WINAPI expWritePrivateProfileStringA(const char* appname, const char* keyname,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1927 const char* string, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1928 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1929 int size=256;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1930 char* fullname;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1931 dbgprintf("WritePrivateProfileStringA('%s', '%s', '%s', '%s')", appname, keyname, string, filename );
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1932 if(!(appname && keyname && filename) )
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1933 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1934 dbgprintf(" => -1\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1935 return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1936 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1937 fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1938 strcpy(fullname, "Software\\IniFileMapping\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1939 strcat(fullname, appname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1940 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1941 strcat(fullname, keyname);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1942 strcat(fullname, "\\");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1943 strcat(fullname, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1944 RegSetValueExA(HKEY_LOCAL_MACHINE, fullname, 0, REG_SZ, (int*)string, strlen(string));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1945 // printf("RegSetValueExA(%s,%d)\n", string, strlen(string));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1946 // printf("WritePrivateProfileStringA(%s, %s, %s, %s)\n", appname, keyname, string, filename );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1947 free(fullname);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1948 dbgprintf(" => 0\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1949 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1950 }
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1951 int expsprintf(char* str, const char* format, ...)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1952 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1953 va_list args;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1954 int r;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1955 dbgprintf("sprintf(%s, %s)\n", str, format);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1956 va_start(args, format);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1957 r = vsprintf(str, format, args);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1958 va_end(args);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1959 return r;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1960 }
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1961 int expsscanf(const char* str, const char* format, ...)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1962 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1963 va_list args;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1964 int r;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1965 dbgprintf("sscanf(%s, %s)\n", str, format);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1966 va_start(args, format);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1967 r = vsscanf(str, format, args);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1968 va_end(args);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1969 return r;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1970 }
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1971 void* expfopen(const char* path, const char* mode)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1972 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1973 //fails
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1974 printf("fopen: \"%s\" mode:%s\n", path, mode);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1975 //return fopen(path, mode);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1976 return 0;
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
1977 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1978 unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, INT default_value, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1979 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1980 return expGetPrivateProfileIntA(appname, keyname, default_value, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1981 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1982 int _GetPrivateProfileStringA(const char* appname, const char* keyname,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1983 const char* def_val, char* dest, unsigned int len, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1984 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1985 return expGetPrivateProfileStringA(appname, keyname, def_val, dest, len, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1986 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1987 int _WritePrivateProfileStringA(const char* appname, const char* keyname,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1988 const char* string, const char* filename)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1989 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1990 return expWritePrivateProfileStringA(appname, keyname, string, filename);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1991 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1992
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1993
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1994
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1995 int WINAPI expDefDriverProc(int _private, int id, int msg, int arg1, int arg2)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1996 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
1997 dbgprintf("DefDriverProc(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) => 0\n", _private, id, msg, arg1, arg2);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1998 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1999 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2000
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2001 int WINAPI expSizeofResource(int v1, int v2)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2002 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2003 int result=SizeofResource(v1, v2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2004 dbgprintf("SizeofResource(0x%x, 0x%x) => %d\n", v1, v2, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2005 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2006 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2007
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2008 int WINAPI expGetLastError()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2009 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2010 int result=GetLastError();
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2011 dbgprintf("GetLastError() => 0x%x\n", result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2012 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2013 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2014
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2015 void WINAPI expSetLastError(int error)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2016 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2017 dbgprintf("SetLastError(0x%x)\n", error);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2018 SetLastError(error);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2019 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2020
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2021 char* expstrrchr(char* string, int value)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2022 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2023 char* result=strrchr(string, value);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2024 if(result)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2025 dbgprintf("strrchr(0x%x='%s', %d) => 0x%x='%s'", string, string, value, result, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2026 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2027 dbgprintf("strrchr(0x%x='%s', %d) => 0", string, string, value);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2028 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2029 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2030
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2031 char* expstrchr(char* string, int value)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2032 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2033 char* result=strchr(string, value);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2034 if(result)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2035 dbgprintf("strchr(0x%x='%s', %d) => 0x%x='%s'", string, string, value, result, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2036 else
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2037 dbgprintf("strchr(0x%x='%s', %d) => 0", string, string, value);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2038 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2039 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2040 int expstrlen(char* str)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2041 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2042 int result=strlen(str);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2043 dbgprintf("strlen(0x%x='%s') => %d\n", str, str, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2044 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2045 }
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2046 int expstrcpy(char* str1, const char* str2)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2047 {
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2048 int result= (int) strcpy(str1, str2);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2049 dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2050 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2051 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2052 int expstrcmp(const char* str1, const char* str2)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2053 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2054 int result=strcmp(str1, str2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2055 dbgprintf("strcmp(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2056 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2057 }
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2058 int expstrcat(char* str1, const char* str2)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2059 {
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2060 int result= (int) strcat(str1, str2);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2061 dbgprintf("strcat(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2062 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2063 }
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2064 int expisalnum(int c)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2065 {
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2066 int result= (int) isalnum(c);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2067 dbgprintf("isalnum(0x%x='%c' => %d\n", c, c, result);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2068 return result;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2069 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2070 int expmemmove(void* dest, void* src, int n)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2071 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2072 int result= (int) memmove(dest, src, n);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2073 dbgprintf("memmove(0x%x, 0x%x, %d) => %d\n", dest, src, n, result);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2074 return result;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2075 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2076 int expmemcmp(void* dest, void* src, int n)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2077 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2078 int result=memcmp(dest, src, n);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2079 dbgprintf("memcmp(0x%x, 0x%x, %d) => %d\n", dest, src, n, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2080 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2081 }
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
2082 void *expmemcpy(void* dest, void* src, int n)
130
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2083 {
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
2084 void *result=memcpy(dest, src, n);
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
2085 dbgprintf("memcpy(0x%x, 0x%x, %d) => %p\n", dest, src, n, result);
130
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2086 return result;
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2087 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2088 time_t exptime(time_t* t)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2089 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2090 time_t result=time(t);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2091 dbgprintf("time(0x%x) => %d\n", t, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2092 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2093 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2094
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2095 int exprand()
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2096 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2097 return rand();
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2098 }
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2099
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2100 void expsrand(int seed)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2101 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2102 srand(seed);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2103 }
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2104
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2105 int exp_ftol(float f)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2106 {
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2107 return (int)(f+.5);
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2108 }
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2109
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2110 int WINAPI expStringFromGUID2(GUID* guid, char* str, int cbMax)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2111 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2112 int result=snprintf(str, cbMax, "%.8x-%.4x-%.4x-%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x",
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2113 guid->f1, guid->f2, guid->f3,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2114 (unsigned char)guid->f4[0], (unsigned char)guid->f4[1],
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2115 (unsigned char)guid->f4[2], (unsigned char)guid->f4[3],
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2116 (unsigned char)guid->f4[4], (unsigned char)guid->f4[5],
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2117 (unsigned char)guid->f4[6], (unsigned char)guid->f4[7]);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2118 dbgprintf("StringFromGUID2(0x%x, 0x%x='%s', %d) => %d\n", guid, str, str, cbMax, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2119 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2120 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2121
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2122
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2123 int WINAPI expGetFileVersionInfoSizeA(const char* name, int* lpHandle)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2124 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2125 dbgprintf("GetFileVersionInfoSizeA(0x%x='%s', 0x%X) => 0\n", name, name, lpHandle);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2126 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2127 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2128
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2129 int WINAPI expIsBadStringPtrW(const short* string, int nchars)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2130 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2131 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2132 if(string==0)result=1; else result=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2133 dbgprintf("IsBadStringPtrW(0x%x, %d) => %d", string, nchars, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2134 if(string)wch_print(string);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2135 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2136 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2137 extern long WINAPI InterlockedExchangeAdd( long* dest, long incr )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2138 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2139 long ret;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2140 __asm__ __volatile__( "lock; xaddl %0,(%1)"
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2141 : "=r" (ret) : "r" (dest), "0" (incr) : "memory" );
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2142 return ret;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2143 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2144
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2145 extern long WINAPI expInterlockedIncrement( long* dest )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2146 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2147 long result=InterlockedExchangeAdd( dest, 1 ) + 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2148 dbgprintf("InterlockedIncrement(0x%x => %d) => %d\n", dest, *dest, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2149 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2150 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2151 extern long WINAPI expInterlockedDecrement( long* dest )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2152 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2153 long result=InterlockedExchangeAdd( dest, -1 ) - 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2154 dbgprintf("InterlockedDecrement(0x%x => %d) => %d\n", dest, *dest, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2155 return result;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2156 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2157
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2158 extern void WINAPI expOutputDebugStringA( const char* string )
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2159 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2160 dbgprintf("OutputDebugStringA(0x%x='%s')\n", string);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2161 fprintf(stderr, "DEBUG: %s\n", string);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2162 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2163
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2164 int WINAPI expGetDC(int hwnd)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2165 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2166 dbgprintf("GetDC(0x%x) => 0\n", hwnd);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2167 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2168 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2169
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2170 int WINAPI expGetDesktopWindow()
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2171 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2172 dbgprintf("GetDesktopWindow() => 0\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2173 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2174 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2175
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2176 int WINAPI expReleaseDC(int hwnd, int hdc)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2177 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2178 dbgprintf("ReleaseDC(0x%x, 0x%x) => 0\n", hwnd, hdc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2179 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2180 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2181 static int cursor[100];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2182
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2183 int WINAPI expLoadCursorA(int handle,LPCSTR name)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2184 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2185 dbgprintf("LoadCursorA(%d, 0x%x='%s') => 0x%x\n", handle, name, (int)&cursor[0]);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2186 return (int)&cursor[0];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2187 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2188 int WINAPI expSetCursor(void *cursor)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2189 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2190 dbgprintf("SetCursor(0x%x) => 0x%x\n", cursor, cursor);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2191 return (int)cursor;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2192 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2193 int WINAPI expGetCursorPos(void *cursor)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2194 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2195 dbgprintf("GetCursorPos(0x%x) => 0x%x\n", cursor, cursor);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2196 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2197 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2198 int WINAPI expRegisterWindowMessageA(char *message)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2199 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2200 dbgprintf("RegisterWindowMessageA(%s)\n", message);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2201 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2202 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2203 int WINAPI expGetProcessVersion(int pid)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2204 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2205 dbgprintf("GetProcessVersion(%d)\n", pid);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2206 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2207 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2208 int WINAPI expGetCurrentThread(void)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2209 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2210 dbgprintf("GetCurrentThread()\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2211 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2212 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2213 int WINAPI expGetOEMCP(void)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2214 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2215 dbgprintf("GetOEMCP()\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2216 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2217 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2218 int WINAPI expGetCPInfo(int cp,void *info)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2219 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2220 dbgprintf("GetCPInfo()\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2221 return 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2222 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2223 int WINAPI expGetSystemMetrics(int index)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2224 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2225 dbgprintf("GetSystemMetrics(%d)\n", index);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2226 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2227 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2228 int WINAPI expGetSysColor(int index)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2229 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2230 dbgprintf("GetSysColor(%d)\n", index);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2231 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2232 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2233 int WINAPI expGetSysColorBrush(int index)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2234 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2235 dbgprintf("GetSysColorBrush(%d)\n", index);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2236 return 1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2237 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2238
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2239
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2240
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2241 int WINAPI expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntries, void* lppe)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2242 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2243 dbgprintf("GetSystemPaletteEntries(0x%x, 0x%x, 0x%x, 0x%x) => 0\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2244 hdc, iStartIndex, nEntries, lppe);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2245 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2246 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2247
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2248 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2249 typedef struct _TIME_ZONE_INFORMATION {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2250 long Bias;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2251 char StandardName[32];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2252 SYSTEMTIME StandardDate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2253 long StandardBias;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2254 char DaylightName[32];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2255 SYSTEMTIME DaylightDate;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2256 long DaylightBias;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2257 } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2258 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2259
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2260 int WINAPI expGetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2261 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2262 const short name[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'S', 't', 'a',
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2263 'n', 'd', 'a', 'r', 'd', ' ', 'T', 'i', 'm', 'e', 0};
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2264 const short pname[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'D', 'a', 'y',
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2265 'l', 'i', 'g', 'h', 't', ' ', 'T', 'i', 'm', 'e', 0};
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2266 dbgprintf("GetTimeZoneInformation(0x%x) => TIME_ZONE_ID_STANDARD\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2267 memset(lpTimeZoneInformation, 0, sizeof(TIME_ZONE_INFORMATION));
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2268 lpTimeZoneInformation->Bias=360;//GMT-6
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2269 memcpy(lpTimeZoneInformation->StandardName, name, sizeof(name));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2270 lpTimeZoneInformation->StandardDate.wMonth=10;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2271 lpTimeZoneInformation->StandardDate.wDay=5;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2272 lpTimeZoneInformation->StandardDate.wHour=2;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2273 lpTimeZoneInformation->StandardBias=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2274 memcpy(lpTimeZoneInformation->DaylightName, pname, sizeof(pname));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2275 lpTimeZoneInformation->DaylightDate.wMonth=4;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2276 lpTimeZoneInformation->DaylightDate.wDay=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2277 lpTimeZoneInformation->DaylightDate.wHour=2;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2278 lpTimeZoneInformation->DaylightBias=-60;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2279 return TIME_ZONE_ID_STANDARD;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2280 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2281
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2282 void WINAPI expGetLocalTime(SYSTEMTIME* systime)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2283 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2284 time_t local_time;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2285 struct tm *local_tm;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2286 struct timeval tv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2287
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2288 dbgprintf("GetLocalTime(0x%x)\n");
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2289 gettimeofday(&tv, NULL);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2290 local_time=tv.tv_sec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2291 local_tm=localtime(&local_time);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2292
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2293 systime->wYear = local_tm->tm_year + 1900;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2294 systime->wMonth = local_tm->tm_mon + 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2295 systime->wDayOfWeek = local_tm->tm_wday;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2296 systime->wDay = local_tm->tm_mday;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2297 systime->wHour = local_tm->tm_hour;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2298 systime->wMinute = local_tm->tm_min;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2299 systime->wSecond = local_tm->tm_sec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2300 systime->wMilliseconds = (tv.tv_usec / 1000) % 1000;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2301 dbgprintf(" Year: %d\n Month: %d\n Day of week: %d\n"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2302 " Day: %d\n Hour: %d\n Minute: %d\n Second: %d\n"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2303 " Milliseconds: %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2304 systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2305 systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2306 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2307
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2308 int WINAPI expGetSystemTime(SYSTEMTIME* systime)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2309 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2310 time_t local_time;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2311 struct tm *local_tm;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2312 struct timeval tv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2313
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2314 dbgprintf("GetSystemTime(0x%x)\n", systime);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2315 gettimeofday(&tv, NULL);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2316 local_time=tv.tv_sec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2317 local_tm=gmtime(&local_time);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2318
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2319 systime->wYear = local_tm->tm_year + 1900;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2320 systime->wMonth = local_tm->tm_mon + 1;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2321 systime->wDayOfWeek = local_tm->tm_wday;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2322 systime->wDay = local_tm->tm_mday;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2323 systime->wHour = local_tm->tm_hour;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2324 systime->wMinute = local_tm->tm_min;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2325 systime->wSecond = local_tm->tm_sec;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2326 systime->wMilliseconds = (tv.tv_usec / 1000) % 1000;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2327 dbgprintf(" Year: %d\n Month: %d\n Day of week: %d\n"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2328 " Day: %d\n Hour: %d\n Minute: %d\n Second: %d\n"
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2329 " Milliseconds: %d\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2330 systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2331 systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds);
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2332 return 0;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2333 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2334
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2335 int WINAPI expGetEnvironmentVariableA(const char* name, char* field, int size)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2336 {
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2337 char *p;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2338 // printf("%s %x %x\n", name, field, size);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2339 if(field)field[0]=0;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2340 /*
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2341 p = getenv(name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2342 if (p) strncpy(field,p,size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2343 */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2344 if (strcmp(name,"__MSVCRT_HEAP_SELECT")==0)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2345 strcpy(field,"__GLOBAL_HEAP_SELECTED,1");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2346 dbgprintf("GetEnvironmentVariableA(0x%x='%s', 0x%x, %d) => %d\n", name, name, field, size, strlen(field));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2347 return strlen(field);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2348 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2349
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2350 void* WINAPI expCoTaskMemAlloc(ULONG cb)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2351 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2352 return my_mreq(cb, 0);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2353 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2354 void WINAPI expCoTaskMemFree(void* cb)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2355 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2356 my_release(cb);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2357 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2358
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2359 void* CoTaskMemAlloc(ULONG cb){return expCoTaskMemAlloc(cb);}
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2360 void CoTaskMemFree(void* cb){expCoTaskMemFree(cb);}
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2361
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2362 struct COM_OBJECT_INFO
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2363 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2364 GUID clsid;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2365 long (*GetClassObject) (GUID* clsid, GUID* iid, void** ppv);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2366 };
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2367
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2368 static struct COM_OBJECT_INFO* com_object_table=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2369 static int com_object_size=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2370 int RegisterComClass(GUID* clsid, GETCLASSOBJECT gcs)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2371 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2372 if(!clsid || !gcs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2373 return -1;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2374 com_object_table=realloc(com_object_table, sizeof(struct COM_OBJECT_INFO)*(++com_object_size));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2375 com_object_table[com_object_size-1].clsid=*clsid;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2376 com_object_table[com_object_size-1].GetClassObject=gcs;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2377 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2378 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2379
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2380 int UnregisterComClass(GUID* clsid, GETCLASSOBJECT gcs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2381 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2382 int found = 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2383 int i = 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2384 if(!clsid || !gcs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2385 return -1;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2386
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2387 if (com_object_table == 0)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2388 printf("Warning: UnregisterComClass() called without any registered class\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2389 while (i < com_object_size)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2390 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2391 if (found && i > 0)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2392 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2393 memcpy(&com_object_table[i - 1].clsid,
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2394 &com_object_table[i].clsid, sizeof(GUID));
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2395 com_object_table[i - 1].GetClassObject =
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2396 com_object_table[i].GetClassObject;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2397 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2398 else if (memcmp(&com_object_table[i].clsid, clsid, sizeof(GUID)) == 0
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2399 && com_object_table[i].GetClassObject == gcs)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2400 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2401 found++;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2402 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2403 i++;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2404 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2405 if (found)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2406 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2407 if (--com_object_size == 0)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2408 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2409 free(com_object_table);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2410 com_object_table = 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2411 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2412 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2413 return 0;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2414 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2415
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2416
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2417 GUID IID_IUnknown={0x00000000, 0x0000, 0x0000,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2418 {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2419 GUID IID_IClassFactory={0x00000001, 0x0000, 0x0000,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2420 {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2421
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2422 long WINAPI expCoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2423 long dwClsContext, GUID* riid, void** ppv)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2424 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2425 int i;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2426 struct COM_OBJECT_INFO* ci=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2427 for(i=0; i<com_object_size; i++)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2428 if(!memcmp(rclsid, &com_object_table[i].clsid, sizeof(GUID)))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2429 ci=&com_object_table[i];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2430 if(!ci)return 0x80040154;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2431 // in 'real' world we should mess with IClassFactory here
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2432 i=ci->GetClassObject(rclsid, riid, ppv);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2433 return i;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2434 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2435
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2436 long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2437 long dwClsContext, GUID* riid, void** ppv)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2438 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2439 return expCoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2440 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2441
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2442 int WINAPI
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2443 expIsRectEmpty(
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2444 CONST RECT *lprc)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2445 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2446 dbgprintf("IsRectEmpty(0x%x)");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2447 if((!lprc) || (lprc->right==lprc->left) || (lprc->top==lprc->bottom))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2448 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2449 dbgprintf(" => TRUE\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2450 return TRUE;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2451 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2452 dbgprintf(" => FALSE\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2453 return FALSE;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2454 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2455
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2456 int _adjust_fdiv=0; //what's this?
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2457
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2458
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2459
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2460
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2461 unsigned int WINAPI expGetTempPathA(unsigned int len, char* path)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2462 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2463 dbgprintf("GetTempPathA(%d, 0x%x)", len, path);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2464 if(len<5)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2465 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2466 dbgprintf(" => 0\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2467 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2468 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2469 strcpy(path, "/tmp");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2470 dbgprintf(" => 5 ( '/tmp' )\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2471 return 5;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2472 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2473 /*
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2474 FYI:
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2475 typedef struct
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2476 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2477 DWORD dwFileAttributes;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2478 FILETIME ftCreationTime;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2479 FILETIME ftLastAccessTime;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2480 FILETIME ftLastWriteTime;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2481 DWORD nFileSizeHigh;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2482 DWORD nFileSizeLow;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2483 DWORD dwReserved0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2484 DWORD dwReserved1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2485 CHAR cFileName[260];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2486 CHAR cAlternateFileName[14];
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2487 } WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2488 */
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2489
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2490 HANDLE WINAPI expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2491 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2492 dbgprintf("FindFirstFileA(0x%x='%s', 0x%x) => 0\n", s, s, lpfd);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2493 strcpy(lpfd->cFileName, "msms001.vwp");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2494 strcpy(lpfd->cAlternateFileName, "msms001.vwp");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2495 return (HANDLE)0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2496 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2497 WIN_BOOL WINAPI expFindNextFileA(HANDLE h,LPWIN32_FIND_DATAA p)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2498 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2499 dbgprintf("FindNextFileA(0x%x, 0x%x) => 0\n", h, p);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2500 return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2501 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2502 WIN_BOOL WINAPI expFindClose(HANDLE h)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2503 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2504 dbgprintf("FindClose(0x%x) => 0\n", h);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2505 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2506 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2507 UINT WINAPI expSetErrorMode(UINT i)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2508 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2509 dbgprintf("SetErrorMode(%d) => 0\n", i);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2510 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2511 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2512 UINT WINAPI expGetWindowsDirectoryA(LPSTR s,UINT c)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2513 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2514 char windir[]="c:\\windows";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2515 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2516 strncpy(s, windir, c);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2517 result=1+((c<strlen(windir))?c:strlen(windir));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2518 dbgprintf("GetWindowsDirectoryA(0x%x, %d) => %d\n", s, c, result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2519 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2520 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2521
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2522 WIN_BOOL WINAPI expDeleteFileA(LPCSTR s)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2523 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2524 dbgprintf("DeleteFileA(0x%x='%s') => 0\n", s, s);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2525 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2526 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2527 WIN_BOOL WINAPI expFileTimeToLocalFileTime(const FILETIME* cpf, LPFILETIME pf)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2528 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2529 dbgprintf("FileTimeToLocalFileTime(0x%x, 0x%x) => 0\n", cpf, pf);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2530 return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2531 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2532
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2533 UINT WINAPI expGetTempFileNameA(LPCSTR cs1,LPCSTR cs2,UINT i,LPSTR ps)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2534 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2535 char mask[16]="/tmp/AP_XXXXXX";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2536 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2537 dbgprintf("GetTempFileNameA(0x%x='%s', 0x%x='%s', %d, 0x%x)", cs1, cs1, cs2, cs2, i, ps);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2538 if(i && i<10)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2539 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2540 dbgprintf(" => -1\n");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2541 return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2542 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2543 result=mkstemp(mask);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2544 sprintf(ps, "AP%d", result);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2545 dbgprintf(" => %d\n", strlen(ps));
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2546 return strlen(ps);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2547 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2548 //
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2549 // This func might need proper implementation if we want AngelPotion codec.
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2550 // They try to open APmpeg4v1.apl with it.
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2551 // DLL will close opened file with CloseHandle().
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2552 //
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2553 HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2554 LPSECURITY_ATTRIBUTES p1, DWORD i3,DWORD i4,HANDLE i5)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2555 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2556 dbgprintf("CreateFileA(0x%x='%s', %d, %d, 0x%x, %d, %d, 0x%x)\n", cs1, cs1, i1,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2557 i2, p1, i3, i4, i5);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2558 if((!cs1) || (strlen(cs1)<2))return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2559 if(strncmp(cs1, "AP", 2))
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2560 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2561 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2562 char* tmp=(char*)malloc(strlen(def_path)+50);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2563 strcpy(tmp, def_path);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2564 strcat(tmp, "/");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2565 strcat(tmp, "APmpg4v1.apl");
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2566 result=open(tmp, O_RDONLY);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2567 free(tmp);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2568 return result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2569 };
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2570 return atoi(cs1+2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2571 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2572 static char sysdir[]=".";
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2573 LPCSTR WINAPI expGetSystemDirectoryA()
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2574 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2575 dbgprintf("GetSystemDirectoryA() => 0x%x='%s'\n", sysdir, sysdir);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2576 return sysdir;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2577 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2578 WIN_BOOL WINAPI expReadFile(HANDLE h,LPVOID pv,DWORD size,LPDWORD rd,LPOVERLAPPED unused)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2579 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2580 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2581 dbgprintf("ReadFile(%d, 0x%x, %d -> 0x%x)\n", h, pv, size, rd);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2582 result=read(h, pv, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2583 if(rd)*rd=result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2584 if(!result)return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2585 return 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2586 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2587
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2588 WIN_BOOL WINAPI expWriteFile(HANDLE h,LPCVOID pv,DWORD size,LPDWORD wr,LPOVERLAPPED unused)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2589 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2590 int result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2591 dbgprintf("WriteFile(%d, 0x%x, %d -> 0x%x)\n", h, pv, size, wr);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2592 if(h==1234)h=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2593 result=write(h, pv, size);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2594 if(wr)*wr=result;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2595 if(!result)return 0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2596 return 1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2597 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2598 DWORD WINAPI expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whence)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2599 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2600 int wh;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2601 dbgprintf("SetFilePointer(%d, %d, 0x%x, %d)\n", h, val, ext, whence);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2602 //why would DLL want temporary file with >2Gb size?
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2603 switch(whence)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2604 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2605 case FILE_BEGIN:
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2606 wh=SEEK_SET;break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2607 case FILE_END:
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2608 wh=SEEK_END;break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2609 case FILE_CURRENT:
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2610 wh=SEEK_CUR;break;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2611 default:
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2612 return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2613 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2614 return lseek(h, val, wh);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2615 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2616
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2617 HDRVR WINAPI expOpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2618 LPARAM lParam2)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2619 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2620 dbgprintf("OpenDriverA(0x%x='%s', 0x%x='%s', 0x%x) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2621 return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2622 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2623 HDRVR WINAPI expOpenDriver(LPCSTR szDriverName, LPCSTR szSectionName,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2624 LPARAM lParam2)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2625 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2626 dbgprintf("OpenDriver(0x%x='%s', 0x%x='%s', 0x%x) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2627 return -1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2628 }
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2629
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2630
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2631 WIN_BOOL
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2632 WINAPI
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2633 expGetProcessAffinityMask(
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2634 HANDLE hProcess,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2635 LPDWORD lpProcessAffinityMask,
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2636 LPDWORD lpSystemAffinityMask
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2637 )
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2638 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2639 dbgprintf("GetProcessAffinityMask(0x%x, 0x%x, 0x%x) => 1\n",
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2640 hProcess, lpProcessAffinityMask, lpSystemAffinityMask);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2641 if(lpProcessAffinityMask)*lpProcessAffinityMask=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2642 if(lpSystemAffinityMask)*lpSystemAffinityMask=1;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2643 return 1;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2644 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2645
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2646 int WINAPI expMulDiv(int nNumber, int nNumerator, int nDenominator)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2647 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2648 static const long long max_int=0x7FFFFFFFLL;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2649 static const long long min_int=-0x80000000LL;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2650 long long tmp=(long long)nNumber*(long long)nNumerator;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2651 if(!nDenominator)return 1;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2652 tmp/=nDenominator;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2653 if(tmp<min_int) return 1;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2654 if(tmp>max_int) return 1;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2655 return (int)tmp;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2656 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2657
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2658 LONG WINAPI explstrcmpiA(const char* str1, const char* str2)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2659 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2660 LONG result=strcasecmp(str1, str2);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2661 dbgprintf("strcmpi(0x%x='%s', 0x%x='%s') => %d\n", str1, str1, str2, str2, result);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2662 return result;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2663 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2664
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2665 LONG WINAPI explstrlenA(const char* str1)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2666 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2667 LONG result=strlen(str1);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2668 dbgprintf("strlen(0x%x='%s') => %d\n", str1, str1, result);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2669 return result;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2670 }
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2671
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2672 LONG WINAPI explstrcpyA(char* str1, const char* str2)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2673 {
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2674 int result= (int) strcpy(str1, str2);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2675 dbgprintf("strcpy(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result);
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2676 return result;
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2677 }
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2678 LONG WINAPI explstrcpynA(char* str1, const char* str2,int len)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2679 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2680 int result;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2681 if (strlen(str2)>len)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2682 result = (int) strncpy(str1, str2,len);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2683 else
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2684 result = (int) strcpy(str1,str2);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2685 dbgprintf("strncpy(0x%x, 0x%x='%s' len %d strlen %d) => %x\n", str1, str2, str2,len, strlen(str2),result);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2686 return result;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2687 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2688 LONG WINAPI explstrcatA(char* str1, const char* str2)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2689 {
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2690 int result= (int) strcat(str1, str2);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2691 dbgprintf("strcat(0x%x, 0x%x='%s') => %d\n", str1, str2, str2, result);
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2692 return result;
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2693 }
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2694
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2695
497
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2696 LONG WINAPI expInterlockedExchange(long *dest, long l)
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2697 {
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2698 long retval;
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2699 retval = *dest;
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2700 *dest = l;
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2701 return retval;
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2702 }
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2703
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2704 void WINAPI expInitCommonControls()
1543
228bb6a3e76d UnregisterComClass added
arpi
parents: 1416
diff changeset
2705 {
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2706 printf("InitCommonControls called!\n");
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2707 return;
1543
228bb6a3e76d UnregisterComClass added
arpi
parents: 1416
diff changeset
2708 }
228bb6a3e76d UnregisterComClass added
arpi
parents: 1416
diff changeset
2709
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2710 struct exports
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2711 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2712 char name[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2713 int id;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2714 void* func;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2715 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2716 struct libs
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2717 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2718 char name[64];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2719 int length;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2720 struct exports* exps;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2721 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2722
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2723 #define FF(X,Y) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2724 {#X, Y, (void*)exp##X},
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2725
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2726 struct exports exp_kernel32[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2727 FF(IsBadWritePtr, 357)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2728 FF(IsBadReadPtr, 354)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2729 FF(IsBadStringPtrW, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2730 FF(DisableThreadLibraryCalls, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2731 FF(CreateThread, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2732 FF(CreateEventA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2733 FF(SetEvent, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2734 FF(ResetEvent, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2735 FF(WaitForSingleObject, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2736 FF(GetSystemInfo, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2737 FF(GetVersion, 332)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2738 FF(HeapCreate, 461)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2739 FF(HeapAlloc, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2740 FF(HeapDestroy, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2741 FF(HeapFree, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2742 FF(HeapSize, -1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2743 FF(HeapReAlloc,-1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2744 FF(GetProcessHeap, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2745 FF(VirtualAlloc, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2746 FF(VirtualFree, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2747 FF(InitializeCriticalSection, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2748 FF(EnterCriticalSection, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2749 FF(LeaveCriticalSection, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2750 FF(DeleteCriticalSection, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2751 FF(TlsAlloc, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2752 FF(TlsFree, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2753 FF(TlsGetValue, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2754 FF(TlsSetValue, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2755 FF(GetCurrentThreadId, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2756 FF(GetCurrentProcess, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2757 FF(LocalAlloc, -1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2758 FF(LocalReAlloc,-1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2759 FF(LocalLock, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2760 FF(GlobalAlloc, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2761 FF(GlobalReAlloc, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2762 FF(GlobalLock, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2763 FF(MultiByteToWideChar, 427)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2764 FF(WideCharToMultiByte, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2765 FF(GetVersionExA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2766 FF(CreateSemaphoreA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2767 FF(QueryPerformanceCounter, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2768 FF(QueryPerformanceFrequency, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2769 FF(LocalHandle, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2770 FF(LocalUnlock, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2771 FF(LocalFree, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2772 FF(GlobalHandle, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2773 FF(GlobalUnlock, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2774 FF(GlobalFree, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2775 FF(LoadResource, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2776 FF(ReleaseSemaphore, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2777 FF(FindResourceA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2778 FF(LockResource, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2779 FF(FreeResource, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2780 FF(SizeofResource, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2781 FF(CloseHandle, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2782 FF(GetCommandLineA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2783 FF(GetEnvironmentStringsW, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2784 FF(FreeEnvironmentStringsW, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2785 FF(FreeEnvironmentStringsA, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2786 FF(GetEnvironmentStrings, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2787 FF(GetStartupInfoA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2788 FF(GetStdHandle, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2789 FF(GetFileType, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2790 FF(SetHandleCount, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2791 FF(GetACP, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2792 FF(GetModuleFileNameA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2793 FF(SetUnhandledExceptionFilter, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2794 FF(LoadLibraryA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2795 FF(GetProcAddress, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2796 FF(FreeLibrary, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2797 FF(CreateFileMappingA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2798 FF(OpenFileMappingA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2799 FF(MapViewOfFile, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2800 FF(UnmapViewOfFile, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2801 FF(Sleep, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2802 FF(GetModuleHandleA, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2803 FF(GetProfileIntA, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2804 FF(GetPrivateProfileIntA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2805 FF(GetPrivateProfileStringA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2806 FF(WritePrivateProfileStringA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2807 FF(GetLastError, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2808 FF(SetLastError, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2809 FF(InterlockedIncrement, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2810 FF(InterlockedDecrement, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2811 FF(GetTimeZoneInformation, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2812 FF(OutputDebugStringA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2813 FF(GetLocalTime, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2814 FF(GetSystemTime, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2815 FF(GetEnvironmentVariableA, -1)
121
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
2816 FF(RtlZeroMemory,-1)
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
2817 FF(RtlMoveMemory,-1)
94a1a9f52050 added RtlMoveMem (for CRAM support)
arpi_esp
parents: 1
diff changeset
2818 FF(RtlFillMemory,-1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2819 FF(GetTempPathA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2820 FF(FindFirstFileA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2821 FF(FindNextFileA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2822 FF(FindClose,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2823 FF(FileTimeToLocalFileTime,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2824 FF(DeleteFileA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2825 FF(ReadFile,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2826 FF(WriteFile,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2827 FF(SetFilePointer,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2828 FF(GetTempFileNameA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2829 FF(CreateFileA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2830 FF(GetSystemDirectoryA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2831 FF(GetWindowsDirectoryA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2832 FF(SetErrorMode, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2833 FF(IsProcessorFeaturePresent, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2834 FF(GetProcessAffinityMask, -1)
497
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2835 FF(InterlockedExchange, -1)
f776e51e531c added MulDiv -> should fix Acelp.net audio
arpi_esp
parents: 341
diff changeset
2836 FF(MulDiv, -1)
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2837 FF(lstrcmpiA, -1)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2838 FF(lstrlenA, -1)
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2839 FF(lstrcpyA, -1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2840 FF(lstrcatA, -1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2841 FF(GetProcessVersion,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2842 FF(GetCurrentThread,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2843 FF(GetOEMCP,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2844 FF(GetCPInfo,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2845 FF(lstrcpynA,-1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2846 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2847
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2848 struct exports exp_msvcrt[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2849 FF(malloc, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2850 FF(_initterm, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2851 FF(free, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2852 {"??3@YAXPAX@Z", -1, expdelete},
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2853 {"??2@YAPAXI@Z", -1, expnew},
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2854 {"_adjust_fdiv", -1, (void*)&_adjust_fdiv},
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2855 FF(strrchr, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2856 FF(strchr, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2857 FF(strlen, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2858 FF(strcpy, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2859 FF(strcmp, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2860 FF(strcat, -1)
713
9355b2ae634e avifile-0.6-CVS merge
arpi_esp
parents: 597
diff changeset
2861 FF(isalnum, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2862 FF(memmove, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2863 FF(memcmp, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2864 FF(time, -1)
2139
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2865 FF(_ftol,-1)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2866 FF(rand, -1)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2867 FF(srand, -1)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2868 FF(sprintf,-1)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2869 FF(sscanf,-1)
e06cabbd1a9b changes merged back from avifile cvs
arpi
parents: 2069
diff changeset
2870 FF(fopen,-1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2871 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2872 struct exports exp_winmm[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2873 FF(GetDriverModuleHandle, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2874 FF(timeGetTime, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2875 FF(DefDriverProc, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2876 FF(OpenDriverA, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2877 FF(OpenDriver, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2878 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2879 struct exports exp_user32[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2880 FF(LoadStringA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2881 FF(wsprintfA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2882 FF(GetDC, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2883 FF(GetDesktopWindow, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2884 FF(ReleaseDC, -1)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2885 FF(IsRectEmpty, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2886 FF(LoadCursorA,-1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2887 FF(SetCursor,-1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2888 FF(GetCursorPos,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2889 FF(GetCursorPos,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2890 FF(RegisterWindowMessageA,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2891 FF(GetSystemMetrics,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2892 FF(GetSysColor,-1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2893 FF(GetSysColorBrush,-1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2894 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2895 struct exports exp_advapi32[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2896 FF(RegOpenKeyA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2897 FF(RegOpenKeyExA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2898 FF(RegCreateKeyExA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2899 FF(RegQueryValueExA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2900 FF(RegSetValueExA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2901 FF(RegCloseKey, -1)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2902 FF(RegEnumValueA, -1)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2903 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2904 struct exports exp_gdi32[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2905 FF(CreateCompatibleDC, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2906 FF(GetDeviceCaps, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2907 FF(DeleteDC, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2908 FF(GetSystemPaletteEntries, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2909 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2910 struct exports exp_version[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2911 FF(GetFileVersionInfoSizeA, -1)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2912 };
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2913 struct exports exp_ole32[]={
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2914 FF(CoTaskMemAlloc, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2915 FF(CoTaskMemFree, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2916 FF(CoCreateInstance, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2917 FF(StringFromGUID2, -1)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2918 };
130
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2919 struct exports exp_crtdll[]={
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2920 FF(memcpy, -1)
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2921 };
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2922 struct exports exp_comctl32[]={
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2923 FF(StringFromGUID2, -1)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2924 FF(InitCommonControls, 17)
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2925 };
130
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2926
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2927 #define LL(X) \
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2928 {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2929
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2930 struct libs libraries[]={
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2931 LL(kernel32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2932 LL(msvcrt)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2933 LL(winmm)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2934 LL(user32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2935 LL(advapi32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2936 LL(gdi32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2937 LL(version)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
2938 LL(ole32)
130
39ceb7a5a9e2 crtdll/memcpy added (req for MJPEG)
arpi_esp
parents: 128
diff changeset
2939 LL(crtdll)
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2940 LL(comctl32)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2941 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2942
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2943
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2944 void* LookupExternal(const char* library, int ordinal)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2945 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2946 char* answ;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2947 int i,j;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2948 if(library==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2949 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2950 printf("ERROR: library=0\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2951 return (void*)ext_unknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2952 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2953 printf("External func %s:%d\n", library, ordinal);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2954 // printf("%x %x\n", &unk_exp1, &unk_exp2);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2955
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2956 for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2957 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2958 if(strcasecmp(library, libraries[i].name))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2959 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2960 for(j=0; j<libraries[i].length; j++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2961 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2962 if(ordinal!=libraries[i].exps[j].id)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2963 continue;
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
2964 printf("Hit: 0x%p\n", libraries[i].exps[j].func);
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2965 return libraries[i].exps[j].func;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2966 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2967 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2968 if(pos>150)return 0;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2969 answ=(char*)extcode+pos*0x64;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2970 memcpy(answ, &unk_exp1, 0x64);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2971 *(int*)(answ+9)=pos;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2972 *(int*)(answ+47)-=((int)answ-(int)&unk_exp1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2973 sprintf(export_names[pos], "%s:%d", library, ordinal);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2974 pos++;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2975 return (void*)answ;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2976 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2977
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2978 void* LookupExternalByName(const char* library, const char* name)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2979 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2980 char* answ;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2981 int i,j;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2982 // return (void*)ext_unknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2983 if(library==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2984 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2985 printf("ERROR: library=0\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2986 return (void*)ext_unknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2987 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2988 if(name==0)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2989 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2990 printf("ERROR: name=0\n");
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2991 return (void*)ext_unknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2992 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2993 // printf("External func %s:%s\n", library, name);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2994 for(i=0; i<sizeof(libraries)/sizeof(struct libs); i++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2995 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2996 if(strcasecmp(library, libraries[i].name))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2997 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2998 for(j=0; j<libraries[i].length; j++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2999 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3000 if(strcmp(name, libraries[i].exps[j].name))
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3001 continue;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3002 // printf("Hit: 0x%08X\n", libraries[i].exps[j].func);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3003 return libraries[i].exps[j].func;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3004 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3005 }
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3006 // printf("%s %s\n", library, name);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3007 if(pos>150)return 0;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3008 strcpy(export_names[pos], name);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3009 answ=(char*)extcode+pos*0x64;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3010 memcpy(answ, &unk_exp1, 0x64);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3011 *(int*)(answ+9)=pos;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3012 *(int*)(answ+47)-=((int)answ-(int)&unk_exp1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3013 pos++;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3014 return (void*)answ;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3015 // memcpy(extcode, &unk_exp1, 0x64);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3016 // *(int*)(extcode+52)-=((int)extcode-(int)&unk_exp1);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3017 // return (void*)extcode;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3018 // printf("Unknown func %s:%s\n", library, name);
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3019 // return (void*)ext_unknown;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3020 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3021
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
3022 void my_garbagecollection(void)
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3023 {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3024 #ifdef GARBAGE
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3025 alc_list* pp,*ppsv;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3026 mutex_list* pm,*pmsv;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3027 int unfree,unfreecnt;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3028 if (mlist != NULL) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3029 pm=mlist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3030 for(;pm;) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3031 if (pm->prev) pm->prev->next=pm->next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3032 if (pm->next) pm->next->prev=pm->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3033 if (pm == mlist) mlist=pm->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3034 if (pm->pm) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3035 pthread_mutex_destroy(pm->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3036 my_release(pm->pm);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3037 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3038 if (pm->pc) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3039 pthread_cond_destroy(pm->pc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3040 my_release(pm->pc);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3041 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3042 pmsv = pm;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3043 pm=pm->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3044 my_release(pmsv);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3045 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3046 }
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3047
2069
ce45cce7f7a5 sync with avifile
arpi
parents: 1923
diff changeset
3048 if (alclist==NULL) return;
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3049
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3050 pp=alclist;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3051 unfree=unfreecnt=0;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3052 for(;pp;) {
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3053 unfree+=pp->size;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3054 unfreecnt++;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3055 if (pp->prev)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3056 pp->prev->next=pp->next;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3057 if (pp->next)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3058 pp->next->prev=pp->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3059 if (pp == alclist)
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3060 alclist=pp->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3061 free(pp->addr);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3062 ppsv = pp;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3063 pp=pp->prev;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3064 free(ppsv);
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3065 alccnt--;
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3066 }
597
d751f549f29f no more warnings...
szabii
parents: 497
diff changeset
3067 printf("Total Unfree %d bytes cnt %d [%p,%d]\n",unfree,unfreecnt,alclist,alccnt);
128
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3068 #endif
28091b3caff9 DLL loader updated from avifile-0.60beta4
arpi_esp
parents: 121
diff changeset
3069 }