summaryrefslogtreecommitdiffstats
path: root/loader/registry.c
diff options
context:
space:
mode:
Diffstat (limited to 'loader/registry.c')
-rw-r--r--loader/registry.c29
1 files changed, 26 insertions, 3 deletions
diff --git a/loader/registry.c b/loader/registry.c
index cab63ceb72..4a41911cdf 100644
--- a/loader/registry.c
+++ b/loader/registry.c
@@ -400,9 +400,32 @@ long __stdcall RegQueryValueExA(long key, const char* value, int* reserved, int*
if (!c)
return 1;
t=find_value_by_name(c);
+ if (t==0) {
+ // Hacks for CineForm.
+ if (strcmp(c, "HKCU\\SOFTWARE\\CineForm\\DecoderProperties\\Resolution") == 0) {
+ if (data)
+ *data = 1000;
+ if (type)
+ *type = REG_DWORD;
+ if (count)
+ *count = sizeof(DWORD);
+ free(c);
+ return ERROR_SUCCESS;
+ }
+ if (strcmp(c, "HKCU\\SOFTWARE\\CineForm\\DecoderProperties\\PixelFormats") == 0) {
+ if (data)
+ *data = 0xffff;
+ if (type)
+ *type = REG_DWORD;
+ if (count)
+ *count = sizeof(DWORD);
+ free(c);
+ return ERROR_SUCCESS;
+ }
+ free(c);
+ return ERROR_FILE_NOT_FOUND;
+ }
free(c);
- if (t==0)
- return 2;
if (type)
*type=t->type;
if (data)
@@ -419,7 +442,7 @@ long __stdcall RegQueryValueExA(long key, const char* value, int* reserved, int*
{
*count=t->len;
}
- return 0;
+ return ERROR_SUCCESS;
}
long __stdcall RegCreateKeyExA(long key, const char* name, long reserved,
void* classs, long options, long security,