public static NInchiInputData GetInputFromAuxInfo(string auxInfo) { if (auxInfo == null) { throw new ArgumentNullException(nameof(auxInfo), "Null AuxInfo"); } var native_output = new InchiInpData(); var iiii = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Inchi_Input))); try { native_output.pInp = iiii; int ret; ret = Get_inchi_Input_FromAuxInfo(auxInfo, 0, 0, out native_output); NInchiInput oos = new NInchiInput(); Inchi_Input *pii = (Inchi_Input *)native_output.pInp.ToPointer(); { CreateAtoms(oos, pii->num_atoms, pii->atom); CreateBonds(oos, pii->num_atoms, pii->atom); CreateStereos(oos, pii->num_stereo0D, pii->stereo0D); } var oo = new NInchiInputData(ret, oos, native_output.bChiral, new string(native_output.szErrMsg)); return(oo); } finally { Free_inchi_Input((Inchi_Input *)iiii.ToPointer()); } }
internal static extern int Get_inchi_Input_FromAuxInfo([MarshalAs(UnmanagedType.LPStr)] string szInchiAuxInfo, int bDoNotAddH, int bDiffUnkUndfStereo, [Out] out InchiInpData pInchiInp);