GetSPFFHeaderItem
Syntax
public const string enginedll = @"engine.dll"; [DllImport(enginedll, EntryPoint = "GetSPFFHeaderItem")] public static extern Int64 x86_GetSPFFHeaderItem(Int32 model, Int32 itemIndex, Int32 itemSubIndex, Int32 valueType, out IntPtr value); [DllImport(enginedll, EntryPoint = "GetSPFFHeaderItem")] public static extern Int64 x64_GetSPFFHeaderItem(Int64 model, Int64 itemIndex, Int64 itemSubIndex, Int64 valueType, out IntPtr value); public static Int64 GetSPFFHeaderItem(Int64 model, Int64 itemIndex, Int64 itemSubIndex, Int64 valueType, out IntPtr value) { if (IntPtr.Size == 4) { var _result = x86_GetSPFFHeaderItem((Int32)model, (Int32)itemIndex, (Int32)itemSubIndex, (Int32)valueType, out IntPtr _value); value = _value; return _result; } else { return x64_GetSPFFHeaderItem(model, itemIndex, itemSubIndex, valueType, out value); } }
Property model
Size: 64 bit / 8 byte (value)Property itemIndex
Size: 64 bit / 8 byte (value)Property itemSubIndex
Size: 64 bit / 8 byte (value)Property valueType
Size: 64 bit / 8 byte (value)Property value
Size: 64 bit / 8 byte (reference)
Example (based on pure API calls)
Here you can find code snippits that show how the API call GetSPFFHeaderItem can be used.
using RDF; // include at least engine.cs within your solution //... using System.Runtime.InteropServices; // To support Marshal namespace abc { public class myClass { void GetHeaderDescription(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; if (ifcengine.GetSPFFHeaderItem(model, 0, i, ifcengine.sdaiUNICODE, out textPtr) != 0) { while (ifcengine.GetSPFFHeaderItem(model, 0, i++, ifcengine.sdaiUNICODE, out textPtr) != 0) { string text = Marshal.PtrToStringUni(textPtr); } } } void GetImplementationLevel(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 1, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetName(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 2, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetTimeStamp(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 3, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetAuthor(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; if (ifcengine.GetSPFFHeaderItem(model, 4, i, ifcengine.sdaiUNICODE, out textPtr) != 0) { while (ifcengine.GetSPFFHeaderItem(model, 4, i++, ifcengine.sdaiUNICODE, out textPtr) != 0) { string text = Marshal.PtrToStringUni(textPtr); } } } void GetOrganization(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; if (ifcengine.GetSPFFHeaderItem(model, 5, i, ifcengine.sdaiUNICODE, out textPtr) != 0) { while (ifcengine.GetSPFFHeaderItem(model, 5, i++, ifcengine.sdaiUNICODE, out textPtr) != 0) { string text = Marshal.PtrToStringUni(textPtr); } } } void GetPreprocessorVersion(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 6, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetOriginatingSystem(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 7, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetAuthorization(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; ifcengine.GetSPFFHeaderItem(model, 8, 0, ifcengine.sdaiUNICODE, out textPtr); string text = Marshal.PtrToStringUni(textPtr); } void GetFileSchema(Int64 model) { Int64 i = 0; IntPtr textPtr = IntPtr.Zero; if (ifcengine.GetSPFFHeaderItem(model, 9, i, ifcengine.sdaiUNICODE, out textPtr) != 0) { while (ifcengine.GetSPFFHeaderItem(model, 9, i++, ifcengine.sdaiUNICODE, out textPtr) != 0) { string text = Marshal.PtrToStringUni(textPtr); } } } ...