Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.95 KB

File metadata and controls

63 lines (47 loc) · 3.95 KB
title IHttpRequest::InsertEntityBody Method
description Learn how the IHttpRequest::InsertEntityBody method inserts a new entity body into the existing HTTP request body.
ms.date 10/07/2016
ms.assetid 8e30471e-981b-9026-dc07-5dd2c1e81b02

IHttpRequest::InsertEntityBody Method

Inserts a new entity body into the existing HTTP request body.

Syntax

virtual HRESULT InsertEntityBody(  
   IN VOID* pvBuffer,  
   IN DWORD cbBuffer  
) = 0;  

Parameters

pvBuffer
[IN] A pointer to a VOID buffer that contains the request entity body.

cbBuffer
[IN] A DWORD that contains the size, in bytes, of the buffer.

Return Value

An HRESULT. Possible values include, but are not limited to, those in the following table.

Value Description
S_OK Indicates that the operation was successful.

Remarks

The InsertEntityBody method inserts the entity body that is pointed to by the pvBuffer parameter into the HTTP request entity body.

Note

The insertion point of the new entity body is before any remaining unread entity body that can be subsequently retrieved from the Web client.

Important

IIS does not make a copy of the entity body buffer. Your module's entity buffer must be preserved until the end of the request.

This method does not update the Content-Length header value. A module that uses this method must update the Content-Length separately.

Example

The following code example demonstrates how create an HTTP module that calls the IHttpContext::AllocateRequestMemory method to allocate a 1-KB buffer. The module then copies the string "Hello World" into the buffer. Finally, the module calls the InsertEntityBody method to replace the preloaded HTTP request entity body with the buffer and then exits.

[!code-cppIHttpRequestInsertEntityBody#1]

Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.

You can optionally compile the code by using the __stdcall (/Gz) calling convention instead of explicitly declaring the calling convention for each function.

Requirements

Type Description
Client - IIS 7.0 on [!INCLUDEwinvista]
- IIS 7.5 on Windows 7
- IIS 8.0 on Windows 8
- IIS 10.0 on Windows 10
Server - IIS 7.0 on [!INCLUDEwinsrv2008]
- IIS 7.5 on Windows Server 2008 R2
- IIS 8.0 on Windows Server 2012
- IIS 8.5 on Windows Server 2012 R2
- IIS 10.0 on Windows Server 2016
Product - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
- [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100]
Header Httpserv.h

See Also

IHttpRequest Interface