System.Net.Http.WinHttpResponseParser.QueryHeaders C# (CSharp) Method

QueryHeaders() private static method

private static QueryHeaders ( Interop.WinHttp.SafeWinHttpHandle requestHandle, uint infoLevel, char buffer, int &bufferLength, uint &index ) : bool
requestHandle Interop.WinHttp.SafeWinHttpHandle
infoLevel uint
buffer char
bufferLength int
index uint
return bool
        private unsafe static bool QueryHeaders(
            SafeWinHttpHandle requestHandle,
            uint infoLevel,
            char* buffer,
            ref int bufferLength,
            ref uint index)
        {
            Debug.Assert(bufferLength >= 0, "bufferLength must not be negative.");

            // Convert the char buffer length to the length in bytes.
            uint bufferLengthInBytes = (uint)bufferLength * sizeof(char);

            // The WinHttpQueryHeaders buffer length is in bytes,
            // but the API actually returns Unicode characters.
            bool result = Interop.WinHttp.WinHttpQueryHeaders(
                requestHandle,
                infoLevel,
                Interop.WinHttp.WINHTTP_HEADER_NAME_BY_INDEX,
                new IntPtr(buffer),
                ref bufferLengthInBytes,
                ref index);

            // Convert the byte buffer length back to the length in chars.
            bufferLength = (int)bufferLengthInBytes / sizeof(char);

            return result;
        }