summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-09-01 20:42:13 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-09-01 20:42:13 +0000
commit1e1ee8b7b0272e9d0b03966e166e6875c34d7e62 (patch)
tree4484fc7aae8de8555e71ba7c1708d7198c296881 /loader
parent9315260e76cabc94fc16bc44e44359c6adc4c1db (diff)
downloadmpv-1e1ee8b7b0272e9d0b03966e166e6875c34d7e62.tar.bz2
mpv-1e1ee8b7b0272e9d0b03966e166e6875c34d7e62.tar.xz
Support On2 VP7 via binary decoder by implementing USER32.RegisterClipboardFormatA,
SHLWAPI.PathFindExtensionA and SHLWAPI.PathFindFileNameA. Tested with http://www.on2.com/vp7_samples/potter-40.vp7. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16339 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/win32.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/loader/win32.c b/loader/win32.c
index b73a3b9ebd..5495f3418f 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -4690,6 +4690,10 @@ static int WINAPI expDialogBoxParamA(void *inst, const char *name,
return 0x42424242;
}
+static void WINAPI expRegisterClipboardFormatA(const char *name) {
+ dbgprintf("RegisterClipboardFormatA(0x%x = %s)\n", name, name);
+}
+
/* needed by imagepower mjpeg2k */
static void *exprealloc(void *ptr, size_t size)
{
@@ -4706,6 +4710,32 @@ static WIN_BOOL WINAPI expGetOpenFileNameA(/*LPOPENFILENAMEA*/ void* lpfn)
return 1;
}
+static char * WINAPI expPathFindExtensionA(const char *path) {
+ char *ext;
+ if (!path)
+ ext = NULL;
+ else {
+ ext = strrchr(path, '.');
+ if (!ext)
+ ext = &path[strlen(path)];
+ }
+ dbgprintf("PathFindExtensionA(0x%x = %s) => 0x%x, %s\n", path, path, ext, ext);
+ return ext;
+}
+
+static char * WINAPI expPathFindFileNameA(const char *path) {
+ char *name;
+ if (!path || strlen(path) < 2)
+ name = path;
+ else {
+ name = strrchr(path - 1, '\\');
+ if (!name)
+ name = path;
+ }
+ dbgprintf("PathFindFileNameA(0x%x = %s) => 0x%x, %s\n", path, path, name, name);
+ return name;
+}
+
static double expfloor(double x)
{
dbgprintf("floor(%lf)\n", x);
@@ -5024,6 +5054,7 @@ struct exports exp_user32[]={
#endif
FF(MessageBeep, -1)
FF(DialogBoxParamA, -1)
+ FF(RegisterClipboardFormatA, -1)
};
struct exports exp_advapi32[]={
FF(RegCloseKey, -1)
@@ -5137,6 +5168,11 @@ struct exports exp_comdlg32[]={
FF(GetOpenFileNameA, -1)
};
+struct exports exp_shlwapi[]={
+ FF(PathFindExtensionA, -1)
+ FF(PathFindFileNameA, -1)
+};
+
#define LL(X) \
{#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X},
@@ -5161,6 +5197,7 @@ struct libs libraries[]={
LL(ddraw)
#endif
LL(comdlg32)
+ LL(shlwapi)
};
static void ext_stubs(void)