У меня есть следующий код:
void SendRequest(HINTERNET connection, LPCWSTR method, LPCWSTR referer,LPCWSTR path,WINHTTP_STATUS_CALLBACK whCallback){
HINTERNET request;
request=WinHttpOpenRequest( connection, 0,path,0,referer,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
WinHttpSetStatusCallback(request, (WINHTTP_STATUS_CALLBACK)whCallback,WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS,0);
REQUEST_CONTEXT cpContext;
WinHttpSendRequest(request,WINHTTP_NO_ADDITIONAL_HEADERS,0,NULL,NULL,NULL,(DWORD_PTR)&cpContext);
};
WinHttpSendRequest не блокируется, поэтому после выполнения функция завершается. Тем не менее, WinHttpSendRequest обратный вызов другой функции с cpContext в качестве параметра. Итак, мой вопрос: уничтожается ли cpContext после завершения функции? Приводит ли это к утечке памяти, так как нет доступа к cpContext вне функции? Как я могу сделать это в лучших практиках C ++?