Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 2
0
 internal static extern int Get_inchi_Input_FromAuxInfo([MarshalAs(UnmanagedType.LPStr)] string szInchiAuxInfo,
                                                        int bDoNotAddH,
                                                        int bDiffUnkUndfStereo,
                                                        [Out] out InchiInpData pInchiInp);