コード例 #1
0
        public static ILibrary load()
        {
            System.IntPtr libraryAsIInterfaceIntermediate;
            getLibraryInterface(System.IntPtr.Zero, out libraryAsIInterfaceIntermediate);
            Antilatency.InterfaceContract.IInterface libraryAsIInterface = new Antilatency.InterfaceContract.Details.IInterfaceWrapper(libraryAsIInterfaceIntermediate);
            var library = libraryAsIInterface.QueryInterface <ILibrary>();

            libraryAsIInterface.Dispose();
            return(library);
        }
コード例 #2
0
        public T createFactory()
        {
            var        unloaderInterface = this.QueryInterface <ILibraryUnloader>();
            var        entry             = getEntryPoint();
            IInterface result;
            IntPtr     resultIntermediate;

            entry(System.IntPtr.Zero, out resultIntermediate);
            result = new Antilatency.InterfaceContract.Details.IInterfaceWrapper(resultIntermediate);
            unloaderInterface.Dispose();

            var factory = result.QueryInterface <T>();

            result.Dispose();
            return(factory);
        }