internal PluggableProtocolRequest( PluggableProtocolHandler handler, string url, NativeMethods.IInternetBindInfo bind, NativeMethods.PI_FLAGS startFlags) { m_Url = new Uri(url); int bindf; NativeMethods.BINDINFO bindinfo = new NativeMethods.BINDINFO(); bindinfo.cbSize = Marshal.SizeOf(typeof(NativeMethods.STGMEDIUM)); bindinfo.cbSize = Marshal.SizeOf(typeof(NativeMethods.BINDINFO)); // string userAgent=GetBindString( // bind, // NativeMethods.BINDSTRING.BINDSTRING_USERAGENT ); // // System.Diagnostics.Trace.WriteLine( // "useragent: "+GetBindString(bind,NativeMethods.BINDSTRING.BINDSTRING_USERAGENT)+"\r\n"+ // "url: "+GetBindString(bind,NativeMethods.BINDSTRING.BINDSTRING_URL)+"\r\n"+ // "post cookie: "+GetBindString(bind,NativeMethods.BINDSTRING.BINDSTRING_POST_COOKIE)+"\r\n"+ // "post MIME: "+GetBindString(bind,NativeMethods.BINDSTRING.BINDSTRING_POST_DATA_MIME) ); bind.GetBindInfo(out bindf, ref bindinfo); switch (bindinfo.dwBindVerb) { case NativeMethods.BINDVERB.BINDVERB_GET: // GET m_Verb = "GET"; m_VerbData = null; break; case NativeMethods.BINDVERB.BINDVERB_POST: m_Verb = "POST"; m_VerbData = ExtractVerbData(bindinfo); break; case NativeMethods.BINDVERB.BINDVERB_PUT: m_Verb = "PUT"; m_VerbData = ExtractVerbData(bindinfo); break; case NativeMethods.BINDVERB.BINDVERB_CUSTOM: m_Verb = Marshal.PtrToStringUni(bindinfo.szCustomVerb); m_VerbData = ExtractVerbData(bindinfo); break; } }
void Start( string szUrl, NativeMethods.IInternetProtocolSink pOIProtSink, NativeMethods.IInternetBindInfo pOIBindInfo, NativeMethods.PI_FLAGS grfPI, int dwReserved) { lock ( sync ) { m_Request = new PluggableProtocolRequest(this, szUrl, pOIBindInfo, grfPI); m_Response = new PluggableProtocolResponse(this, pOIProtSink); m_Started = true; } ErrorHandledOnStart(EventArgs.Empty); }
void NativeMethods.IInternetProtocol.Start( string szUrl, NativeMethods.IInternetProtocolSink pOIProtSink, NativeMethods.IInternetBindInfo pOIBindInfo, NativeMethods.PI_FLAGS grfPI, int dwReserved) { #if TRACE_INTERFACE_CALLS try { #endif Start(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved); #if TRACE_INTERFACE_CALLS } catch (Exception err) { throw err; } #endif }
void NativeMethods.IInternetProtocolRoot.Start( string szUrl, NativeMethods.IInternetProtocolSink pOIProtSink, NativeMethods.IInternetBindInfo pOIBindInfo, NativeMethods.PI_FLAGS grfPI, int dwReserved) { #if TRACE_INTERFACE_CALLS TraceHelper.TraceMethod(this, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved); try { #endif Start(szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved); #if TRACE_INTERFACE_CALLS } catch (Exception err) { TraceHelper.TraceException(this, err); throw err; } #endif }