public XofFileEnumObject CreateEnumObject(byte[] bytes) { if (bytes == null) { throw new ArgumentNullException(nameof(bytes)); } if (bytes.Length == 0) { throw new ArgumentOutOfRangeException(nameof(bytes)); } XofFileLoadMemory memory = new XofFileLoadMemory { Memory = Marshal.UnsafeAddrOfPinnedArrayElement(bytes, 0), Size = new IntPtr(bytes.Length) }; GCHandle memoryHandle = GCHandle.Alloc(memory, GCHandleType.Pinned); try { IXofFileEnumObject enumObject = _file.CreateEnumObject(memoryHandle.AddrOfPinnedObject(), XofFileLoadOptions.FromMemory); return(new XofFileEnumObject(enumObject)); } finally { memoryHandle.Free(); } }
public XofFileEnumObject CreateEnumObject(string path) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException(nameof(path)); } IntPtr pathPtr = Marshal.StringToHGlobalUni(path); try { IXofFileEnumObject enumObject = _file.CreateEnumObject(pathPtr, XofFileLoadOptions.FromWFile); return(new XofFileEnumObject(enumObject)); } finally { Marshal.FreeHGlobal(pathPtr); } }
internal XofFileEnumObject(IXofFileEnumObject enumObject) { _enumObject = enumObject; }