Esempio n. 1
0
        public Int32 GetFilesOfType(String type, out List <LoaderFile> file_list)
        {
            var numFiles = GetNumberOfFilesOfType(type);

            FILE_C[] files  = new FILE_C[numFiles];
            var      result = GetFilesOfType_C(loader, type, Marshal.UnsafeAddrOfPinnedArrayElement(files, 0), numFiles);

            file_list = new List <LoaderFile>();
            if (result != 0)
            {
                return(result);
            }

            for (UInt32 i = 0; i < numFiles; i++)
            {
                file_list.Add(new LoaderFile
                {
                    guid     = files[i].guid,
                    guid_str = Marshal.PtrToStringAnsi(files[i].guid_str),
                    type     = files[i].type,
                    type_str = Marshal.PtrToStringAnsi(files[i].type_str)
                });
            }
            return(result);
        }
Esempio n. 2
0
        public Int32 GetFile(out LoaderFile file, String name, String type)
        {
            FILE_C cFile = new FILE_C();
            var    r     = GetFile_C(loader, ref cFile, name, type);

            if (r != 0)
            {
                file = new LoaderFile();
                return(r);
            }

            file = new LoaderFile
            {
                guid     = cFile.guid,
                guid_str = Marshal.PtrToStringAnsi(cFile.guid_str),
                type     = cFile.type,
                type_str = Marshal.PtrToStringAnsi(cFile.type_str)
            };
            return(r);
        }
Esempio n. 3
0
        public Error GetFiles(out List <LoaderFile> file_list)
        {
            var numFiles = GetNumberOfFiles();

            FILE_C[] files  = new FILE_C[numFiles];
            var      result = GetFiles_C(loader, Marshal.UnsafeAddrOfPinnedArrayElement(files, 0), numFiles);

            file_list = new List <LoaderFile>();
            if (result.errornr != 469503388u) // 469503388u == "Success"_hash
            {
                return(result);
            }
            for (UInt32 i = 0; i < numFiles; i++)
            {
                file_list.Add(new LoaderFile
                {
                    guid     = files[i].guid,
                    guid_str = Marshal.PtrToStringAnsi(files[i].guid_str),
                    type     = files[i].type,
                    type_str = Marshal.PtrToStringAnsi(files[i].type_str)
                });
            }
            return(result);
        }
Esempio n. 4
0
 static extern Int32 GetFile_C(UIntPtr loader, ref FILE_C file, String name, String type);