public BindContext()
 {
     if (Ole32Methods.CreateBindCtx(0, out _bindCtx) != 0)
     {
         throw new InvalidOperationException();
     }
     // TODO: throw?
 }
        public static RunningObjectTable Get()
        {
            IRunningObjectTable rot;
            int retVal = Ole32Methods.GetRunningObjectTable(0, out rot);

            if (retVal != 0)
            {
                throw new InvalidOperationException("Failed to obtain ROT from Ole32");
            }
            return(new RunningObjectTable(rot));
        }