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.

151 lines
3.0 KiB

  1. /*++
  2. Copyright (c) 1994 Microsoft Corporation
  3. Module Name:
  4. hutil.cxx
  5. Abstract:
  6. contains outdated c-c++ interface functions
  7. Author:
  8. Madan Appiah (madana) 16-Nov-1994
  9. Environment:
  10. User Mode - Win32
  11. Revision History:
  12. Sophia Chung (sophiac) 14-Feb-1995 (added FTP and Archie class impl.)
  13. (code adopted from madana)
  14. --*/
  15. #include <wininetp.h>
  16. DWORD
  17. RIsHandleLocal(
  18. HINTERNET Handle,
  19. BOOL * IsLocalHandle, // dead
  20. BOOL * IsAsyncHandle,
  21. HINTERNET_HANDLE_TYPE ExpectedHandleType
  22. )
  23. {
  24. INTERNET_HANDLE_OBJECT* HandleObj = (INTERNET_HANDLE_OBJECT*) Handle;
  25. DWORD Error = HandleObj->IsValid(ExpectedHandleType);
  26. UNREFERENCED_PARAMETER(IsLocalHandle);
  27. if (Error != ERROR_SUCCESS)
  28. return Error;
  29. *IsAsyncHandle = HandleObj->IsAsyncHandle();
  30. return ERROR_SUCCESS;
  31. }
  32. DWORD
  33. RGetHandleType(
  34. HINTERNET Handle,
  35. LPHINTERNET_HANDLE_TYPE HandleType
  36. )
  37. {
  38. HANDLE_OBJECT *HandleObj = (HANDLE_OBJECT *)Handle;
  39. DWORD error;
  40. //
  41. // validate handle before we use it.
  42. //
  43. error = HandleObj->IsValid(TypeWildHandle);
  44. if (error == ERROR_SUCCESS) {
  45. //
  46. // find the handle type.
  47. //
  48. *HandleType = HandleObj->GetHandleType();
  49. }
  50. return error;
  51. }
  52. DWORD
  53. RGetContext(
  54. HINTERNET hInternet,
  55. DWORD_PTR *lpdwContext
  56. )
  57. {
  58. DWORD error;
  59. //
  60. // ensure the handle is valid
  61. //
  62. error = ((HANDLE_OBJECT*)hInternet)->IsValid(TypeWildHandle);
  63. if (error == ERROR_SUCCESS) {
  64. *lpdwContext = ((INTERNET_HANDLE_OBJECT*)hInternet)->GetContext();
  65. }
  66. return error;
  67. }
  68. DWORD
  69. RSetContext(
  70. HINTERNET hInternet,
  71. DWORD_PTR dwContext
  72. )
  73. {
  74. DWORD error;
  75. //
  76. // ensure the handle is valid
  77. //
  78. error = ((HANDLE_OBJECT*)hInternet)->IsValid(TypeWildHandle);
  79. if (error == ERROR_SUCCESS) {
  80. ((INTERNET_HANDLE_OBJECT*)hInternet)->SetContext(dwContext);
  81. }
  82. return error;
  83. }
  84. DWORD
  85. RGetStatusCallback(
  86. IN HINTERNET Handle,
  87. OUT LPWINHTTP_STATUS_CALLBACK lpStatusCallback
  88. )
  89. {
  90. //
  91. // NULL handle should have been caught before we got here
  92. // (its in WINHTTPQueryOption())
  93. //
  94. INET_ASSERT(Handle != NULL);
  95. *lpStatusCallback = ((INTERNET_HANDLE_OBJECT *)Handle)->GetStatusCallback();
  96. return ERROR_SUCCESS;
  97. }
  98. DWORD
  99. RExchangeStatusCallback(
  100. IN HINTERNET Handle,
  101. IN OUT LPWINHTTP_STATUS_CALLBACK lpStatusCallback,
  102. IN BOOL fType,
  103. IN DWORD dwFlags)
  104. {
  105. DWORD error;
  106. //
  107. // NULL handle value should have been caught already
  108. // (in WINHTTPSetStatusCallback())
  109. //
  110. INET_ASSERT(Handle != NULL);
  111. error = ((HANDLE_OBJECT *)Handle)->IsValid(TypeWildHandle);
  112. if (error == ERROR_SUCCESS) {
  113. error = ((INTERNET_HANDLE_OBJECT *)Handle)->
  114. ExchangeStatusCallback(lpStatusCallback, fType, dwFlags);
  115. }
  116. return error;
  117. }