Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

150 lines
3.0 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
hutil.cxx
Abstract:
contains outdated c-c++ interface functions
Author:
Madan Appiah (madana) 16-Nov-1994
Environment:
User Mode - Win32
Revision History:
Sophia Chung (sophiac) 14-Feb-1995 (added FTP and Archie class impl.)
(code adopted from madana)
--*/
#include <wininetp.h>
DWORD
RIsHandleLocal(
HINTERNET Handle,
BOOL * IsLocalHandle, // dead
BOOL * IsAsyncHandle,
HINTERNET_HANDLE_TYPE ExpectedHandleType
)
{
INTERNET_HANDLE_OBJECT* HandleObj = (INTERNET_HANDLE_OBJECT*) Handle;
DWORD Error = HandleObj->IsValid(ExpectedHandleType);
if (Error != ERROR_SUCCESS)
return Error;
*IsAsyncHandle = HandleObj->IsAsyncHandle();
return ERROR_SUCCESS;
}
DWORD
RGetHandleType(
HINTERNET Handle,
LPHINTERNET_HANDLE_TYPE HandleType
)
{
HANDLE_OBJECT *HandleObj = (HANDLE_OBJECT *)Handle;
DWORD error;
//
// validate handle before we use it.
//
error = HandleObj->IsValid(TypeWildHandle);
if (error == ERROR_SUCCESS) {
//
// find the handle type.
//
*HandleType = HandleObj->GetHandleType();
}
return error;
}
DWORD
RGetContext(
HINTERNET hInternet,
DWORD_PTR *lpdwContext
)
{
DWORD error;
//
// ensure the handle is valid
//
error = ((HANDLE_OBJECT*)hInternet)->IsValid(TypeWildHandle);
if (error == ERROR_SUCCESS) {
*lpdwContext = ((INTERNET_HANDLE_OBJECT*)hInternet)->GetContext();
}
return error;
}
DWORD
RSetContext(
HINTERNET hInternet,
DWORD_PTR dwContext
)
{
DWORD error;
//
// ensure the handle is valid
//
error = ((HANDLE_OBJECT*)hInternet)->IsValid(TypeWildHandle);
if (error == ERROR_SUCCESS) {
((INTERNET_HANDLE_OBJECT*)hInternet)->SetContext(dwContext);
}
return error;
}
DWORD
RGetStatusCallback(
IN HINTERNET Handle,
OUT LPWINHTTP_STATUS_CALLBACK lpStatusCallback
)
{
//
// NULL handle should have been caught before we got here
// (its in WINHTTPQueryOption())
//
INET_ASSERT(Handle != NULL);
*lpStatusCallback = ((INTERNET_HANDLE_OBJECT *)Handle)->GetStatusCallback();
return ERROR_SUCCESS;
}
DWORD
RExchangeStatusCallback(
IN HINTERNET Handle,
IN OUT LPWINHTTP_STATUS_CALLBACK lpStatusCallback,
IN BOOL fType,
IN DWORD dwFlags)
{
DWORD error;
//
// NULL handle value should have been caught already
// (in WINHTTPSetStatusCallback())
//
INET_ASSERT(Handle != NULL);
error = ((HANDLE_OBJECT *)Handle)->IsValid(TypeWildHandle);
if (error == ERROR_SUCCESS) {
error = ((INTERNET_HANDLE_OBJECT *)Handle)->
ExchangeStatusCallback(lpStatusCallback, fType, dwFlags);
}
return error;
}