public ActivationContextHelper()
        {
            Activated = false;

            var assembly = Assembly.GetAssembly(typeof(ActivationContextHelper));

            _contextInfo        = new ActivationContextInfo();
            _contextInfo.Source = assembly.Location + ".manifest";
            _contextInfo.Size   = Marshal.SizeOf(typeof(ActivationContextInfo));

            _contextHandle = CreateActCtx(ref _contextInfo);
            _contextCookie = 0;

            const int INVALID_POINTER = -1;

            if (_contextHandle == (IntPtr)INVALID_POINTER)
            {
                throw new Exception("Unable to create activation context");
            }
        }
 public static extern IntPtr CreateActCtx(ref ActivationContextInfo info);