int IInternetProtocolEx.Continue(ref PROTOCOLDATA protocolData)
 {
     return Continue(ref protocolData);
 }
 private int Continue(ref PROTOCOLDATA protocolData)
 {
     return DoBind();
 }
        private int Start(string szUrl, IInternetProtocolSink protocolSink, IInternetBindInfo bindInfo, PI_FLAGS grfPI, uint dwReserved)
        {
            ClearData();

            currentProtocolSink = protocolSink;
            currentUrl = szUrl;

            BINDINFO bindInfoData = new BINDINFO();
            bindInfoData.cbSize = (uint)Marshal.SizeOf(bindInfoData);
            bindInfo.GetBindInfo(out currentBindFlags, ref bindInfoData);

            if ((grfPI & PI_FLAGS.PI_FORCE_ASYNC) != 0)
            {
                PROTOCOLDATA protocolData = new PROTOCOLDATA();
                protocolData.grfFlags = PI_FLAGS.PI_FORCE_ASYNC;
                protocolSink.Switch(ref protocolData);
                return NativeConstants.E_PENDING;
            }
            else
            {
                return DoBind();
            }
        }