Mercurial > hg > vboxdotnet
diff VBoxFrontend/VBoxXPCOM.cs @ 2:f1deea9c97a0
Cleaned up the interop code generator, added wrapper application to initialize kernel driver and run mono
author | Ivo Smits |
---|---|
date | Wed, 04 May 2011 16:10:08 +0200 |
parents | e1ec7bf71313 |
children |
line wrap: on
line diff
--- a/VBoxFrontend/VBoxXPCOM.cs Wed May 04 01:06:22 2011 +0200 +++ b/VBoxFrontend/VBoxXPCOM.cs Wed May 04 16:10:08 2011 +0200 @@ -6,13 +6,10 @@ namespace ConsoleApplication1 { public class VBoxXPCOM { private delegate UInt32 pfnGetVersionDelegate(); - private unsafe delegate void pfnComInitializeDelegate( - [MarshalAs(UnmanagedType.LPStr)] String pszVirtualBoxIID, - out IntPtr ppVirtualBox, - [MarshalAs(UnmanagedType.LPStr)] String pszSessionIID, - out IntPtr ppSession); + private unsafe delegate void pfnComInitializeDelegate([MarshalAs(UnmanagedType.LPStr)] String pszVirtualBoxIID, out IntPtr ppVirtualBox, [MarshalAs(UnmanagedType.LPStr)] String pszSessionIID, out IntPtr ppSession); private delegate void pfnComUninitializeDelegate(); private delegate void pfnGetEventQueueDelegate(out IntPtr eventQueue); //void (*pfnGetEventQueue)(nsIEventQueue **eventQueue); + private delegate void pfnComUnallocMem(IntPtr pv); //void (*pfnComUnallocMem)(void *pv); private struct VBOXXPCOMC { public UInt32 cb; //The size of the structure. @@ -24,11 +21,11 @@ [MarshalAs(UnmanagedType.FunctionPtr)] public pfnComUninitializeDelegate pfnComUninitialize; [MarshalAs(UnmanagedType.FunctionPtr)] - private pfnComUninitializeDelegate pfnComUnallocMem; //void (*pfnComUnallocMem)(void *pv); + private pfnComUnallocMem pfnComUnallocMem; [MarshalAs(UnmanagedType.FunctionPtr)] - private pfnComUninitializeDelegate pfnUtf16Free; //void (*pfnUtf16Free)(PRUnichar *pwszString); + private pfnComUnallocMem pfnUtf16Free; //void (*pfnUtf16Free)(PRUnichar *pwszString); [MarshalAs(UnmanagedType.FunctionPtr)] - private pfnComUninitializeDelegate pfnUtf8Free; //void (*pfnUtf8Free)(char *pszString); + private pfnComUnallocMem pfnUtf8Free; //void (*pfnUtf8Free)(char *pszString); [MarshalAs(UnmanagedType.FunctionPtr)] private pfnComUninitializeDelegate pfnUtf16ToUtf8; //int (*pfnUtf16ToUtf8)(const PRUnichar *pwszString, char **ppszString); [MarshalAs(UnmanagedType.FunctionPtr)] @@ -118,6 +115,7 @@ Session = null; EventQueue = null; GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); + GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); FunctionTable.pfnComUninitialize(); } }