/// <summary>
/// Initialize the inflation state with an explicit flag to govern the handling of RFC1950 header bytes.
/// </summary>
/// <remarks>
/// If you want to read a zlib stream
/// you should specify true for expectRfc1950Header. If you have a deflate stream, you will
/// want to specify false.
/// </remarks>
/// <param name="expectRfc1950Header">whether to expect an RFC1950 header byte pair when reading
/// the stream of data to be inflated.</param>
/// <param name="windowBits">The number of window bits to use. If you need to ask what that is,
/// then you shouldn't be calling this initializer.</param>
/// <returns>Z_OK if everything goes well.</returns>
public int InitializeInflate(int windowBits, bool expectRfc1950Header)
{
if (dstate != null) throw new ZlibException("You may not call InitializeInflate() after calling InitializeDeflate().");
istate = new InflateManager(expectRfc1950Header);
return istate.Initialize(this, windowBits);
}