> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HCHttpCallRequestGetProgressReportFunction

> Gets the upload or download progress callback that the title set on an HTTP call.

# HCHttpCallRequestGetProgressReportFunction

Gets the upload or download progress callback, minimum report interval, and context that the title set on an HTTP call. Custom HTTP implementations use this function to report transfer progress.

## Syntax

```cpp theme={null}
HRESULT HCHttpCallRequestGetProgressReportFunction(
         HCCallHandle call,
         bool isUploadFunction,
         HCHttpCallProgressReportFunction* progressReportFunction,
         size_t* minimumProgressReportInterval,
         void** context
)
```

### Parameters

*call*   \_In\_\
Type: HCCallHandle

The handle of the HTTP call.

*isUploadFunction*   \_In\_\
Type: bool

`true` to get the upload progress callback; `false` to get the download progress callback.

*progressReportFunction*   \_Out\_\
Type: [HCHttpCallProgressReportFunction](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallprogressreportfunction.md)\*

Receives the progress callback. Receives `nullptr` if the title didn't set one.

*minimumProgressReportInterval*   \_Out\_\
Type: size\_t\*

Receives the minimum interval, in seconds, between progress reports. The default is 2 seconds.

*context*   \_Out\_\
Type: void\*\*

Receives the context pointer that the title passed with the callback.

### Return value

Type: HRESULT

Returns `S_OK` on success, or `E_INVALIDARG` if any pointer parameter is `nullptr`.

## Remarks

The title sets these values with [HCHttpCallRequestSetProgressReportFunction](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallrequestsetprogressreportfunction.md) before it calls [HCHttpCallPerformAsync](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallperformasync.md).

If you implement [HCCallPerformFunction](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hccallperformfunction.md) and the returned callback isn't `nullptr`, call it with the call handle, the bytes transferred so far, the total size, and the returned context. Wait at least `minimumProgressReportInterval` seconds between calls. If the title marked the body as dynamic, use [HCHttpCallRequestGetDynamicBytesWritten](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hchttpcallrequestgetdynamicbyteswritten.md) or [HCHttpCallResponseGetDynamicBytesWritten](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hchttpcallresponsegetdynamicbyteswritten.md) for the values to report. The built-in WinHTTP provider on Windows and XBOX consoles follows this pattern.

## Requirements

**Header:** httpProvider.h

**Library:** libHttpClient.lib

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

## See also

[httpProvider](https://docs.xbox.com/reference/live/httpclient/httpprovider/httpprovider_members.md)\
[HCCallPerformFunction](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hccallperformfunction.md)\
[HCHttpCallProgressReportFunction](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallprogressreportfunction.md)


## Related topics

- [HCHttpCallRequestGetDynamicBytesWritten](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hchttpcallrequestgetdynamicbyteswritten.md)
- [HCHttpCallResponseGetDynamicBytesWritten](https://docs.xbox.com/reference/live/httpclient/httpprovider/functions/hchttpcallresponsegetdynamicbyteswritten.md)
- [httpProvider (contents)](https://docs.xbox.com/reference/live/httpclient/httpprovider/httpprovider_members.md)
- [HCHttpCallRequestSetProgressReportFunction](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallrequestsetprogressreportfunction.md)
- [HCHttpCallProgressReportFunction](https://docs.xbox.com/reference/live/httpclient/httpclient/functions/hchttpcallprogressreportfunction.md)
