summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-16 00:43:28 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-08-16 00:43:28 +0000
commite60d1f045304b8d5746e31d8b23bed06b38cff40 (patch)
treeb34be411abdb2389e2f99599d48e3cbd7bcb33a2 /loader
parent50362eb9d490e24dc503ca3f5a991eca9136ad8c (diff)
downloadmpv-e60d1f045304b8d5746e31d8b23bed06b38cff40.tar.bz2
mpv-e60d1f045304b8d5746e31d8b23bed06b38cff40.tar.xz
UnregisterComClass added
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1544 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader')
-rw-r--r--loader/win32.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/loader/win32.c b/loader/win32.c
index 833a6e9339..4941dd6a8f 100644
--- a/loader/win32.c
+++ b/loader/win32.c
@@ -225,6 +225,8 @@ void* my_mreq(int size, int to_zero)
printf("Allocated %d bytes of memory: sys %d, user %d-%d\n", size, heap_counter-8, heap_counter, heap_counter+size);
if(to_zero)
memset(heap+heap_counter, 0, size);
+ else
+ memset(heap+heap_counter, 0xcc, size);
heap_counter+=size;
return heap+heap_counter-size;
}
@@ -2508,6 +2510,57 @@ LONG WINAPI expInterlockedExchange(long *dest, long l)
return retval;
}
+int WINAPI expUnknownMFC42_1176() /* exact number of arguments unknown */
+{
+ dbgprintf("MFC42:1176\n");
+ return 0;
+}
+
+int WINAPI expUnknownMFC42_1243() /* exact number of arguments unknown */
+{
+ dbgprintf("MFC42:1243\n");
+ return 0;
+}
+
+int UnregisterComClass(GUID* clsid, GETCLASSOBJECT gcs)
+{
+ int found = 0;
+ int i = 0;
+ if(!clsid || !gcs)
+ return -1;
+
+ if (com_object_table == 0)
+ printf("Warning: UnregisterComClass() called without any registered class\n");
+ while (i < com_object_size)
+ {
+ if (found && i > 0)
+ {
+ memcpy(&com_object_table[i - 1].clsid,
+ &com_object_table[i].clsid, sizeof(GUID));
+ com_object_table[i - 1].GetClassObject =
+ com_object_table[i].GetClassObject;
+ }
+ else if (memcmp(&com_object_table[i].clsid, clsid, sizeof(GUID)) == 0
+ && com_object_table[i].GetClassObject == gcs)
+ {
+ found++;
+ }
+ i++;
+ }
+ if (found)
+ {
+ if (--com_object_size == 0)
+ {
+ free(com_object_table);
+ com_object_table = 0;
+ }
+ }
+ return 0;
+}
+
+
+
+
struct exports
{
char name[64];
@@ -2698,6 +2751,10 @@ FF(CoTaskMemFree, -1)
FF(CoCreateInstance, -1)
FF(StringFromGUID2, -1)
};
+struct exports exp_mfc42[]={
+FF(UnknownMFC42_1176, 1176)
+FF(UnknownMFC42_1243, 1243)
+};
struct exports exp_crtdll[]={
FF(memcpy, -1)
};
@@ -2714,6 +2771,7 @@ LL(advapi32)
LL(gdi32)
LL(version)
LL(ole32)
+LL(mfc42)
LL(crtdll)
};