system_win32.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #ifndef HEADER_CURL_SYSTEM_WIN32_H
  2. #define HEADER_CURL_SYSTEM_WIN32_H
  3. /***************************************************************************
  4. * _ _ ____ _
  5. * Project ___| | | | _ \| |
  6. * / __| | | | |_) | |
  7. * | (__| |_| | _ <| |___
  8. * \___|\___/|_| \_\_____|
  9. *
  10. * Copyright (C) 2016 - 2019, Steve Holme, <steve_holme@hotmail.com>.
  11. *
  12. * This software is licensed as described in the file COPYING, which
  13. * you should have received as part of this distribution. The terms
  14. * are also available at https://curl.haxx.se/docs/copyright.html.
  15. *
  16. * You may opt to use, copy, modify, merge, publish, distribute and/or sell
  17. * copies of the Software, and permit persons to whom the Software is
  18. * furnished to do so, under the terms of the COPYING file.
  19. *
  20. * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
  21. * KIND, either express or implied.
  22. *
  23. ***************************************************************************/
  24. #include "curl_setup.h"
  25. #if defined(WIN32)
  26. extern LARGE_INTEGER Curl_freq;
  27. extern bool Curl_isVistaOrGreater;
  28. CURLcode Curl_win32_init(long flags);
  29. void Curl_win32_cleanup(long init_flags);
  30. /* Version condition */
  31. typedef enum {
  32. VERSION_LESS_THAN,
  33. VERSION_LESS_THAN_EQUAL,
  34. VERSION_EQUAL,
  35. VERSION_GREATER_THAN_EQUAL,
  36. VERSION_GREATER_THAN
  37. } VersionCondition;
  38. /* Platform identifier */
  39. typedef enum {
  40. PLATFORM_DONT_CARE,
  41. PLATFORM_WINDOWS,
  42. PLATFORM_WINNT
  43. } PlatformIdentifier;
  44. /* We use our own typedef here since some headers might lack this */
  45. typedef unsigned int(WINAPI *IF_NAMETOINDEX_FN)(const char *);
  46. /* This is used instead of if_nametoindex if available on Windows */
  47. extern IF_NAMETOINDEX_FN Curl_if_nametoindex;
  48. /* This is used to verify if we are running on a specific windows version */
  49. bool Curl_verify_windows_version(const unsigned int majorVersion,
  50. const unsigned int minorVersion,
  51. const PlatformIdentifier platform,
  52. const VersionCondition condition);
  53. /* This is used to dynamically load DLLs */
  54. HMODULE Curl_load_library(LPCTSTR filename);
  55. #endif /* WIN32 */
  56. #endif /* HEADER_CURL_SYSTEM_WIN32_H */