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.

66 lines
2.2 KiB

  1. #include <setupapi.h>
  2. #ifndef _ADVEXT
  3. #define _ADVEXT
  4. typedef struct _DOWNLOAD_FILEINFO DOWNLOAD_FILEINFO;
  5. typedef DOWNLOAD_FILEINFO* PDOWNLOAD_FILEINFO;
  6. struct _DOWNLOAD_FILEINFO
  7. {
  8. LPTSTR lpszFileNameToDownload;
  9. LPTSTR lpszExistingFileToPatchFrom;
  10. LPTSTR lpszExistingFilePatchSignature;
  11. DWORD dwFlags;
  12. };
  13. typedef struct _DOWNLOAD_INFO
  14. {
  15. DWORD dwFilesToDownload;
  16. DWORD dwFilesRemaining;
  17. DWORD dwBytesToDownload;
  18. DWORD dwBytesRemaining;
  19. }DOWNLOAD_INFO, *PDOWNLOAD_INFO;
  20. enum PATCH_DOWNLOAD_REASON
  21. {
  22. PATCH_DOWNLOAD_BEGIN,
  23. PATCH_DOWNLOAD_FINDINGSITE,
  24. PATCH_DOWNLOAD_CONNECTING,
  25. PATCH_DOWNLOAD_DOWNLOADINGDATA,
  26. PATCH_DOWNLOAD_ENDDOWNLOADINGDATA,
  27. PATCH_DOWNLOAD_PROGRESS, // AdditionalInfo is _DOWNLOAD_INFO
  28. PATCH_DOWNLOAD_FILE_COMPLETED, // AdditionalInfo is _DOWNLOAD_FILEINFO
  29. PATCH_DOWNLOAD_FILE_FAILED, // AdditionalInfo is _DOWNLOAD_FILEINFO
  30. PATCH_DOWNLOAD_ABORT
  31. };
  32. #define PATCH_DOWNLOAD_FLAG_CONTINUE 0x00000001
  33. #define PATCH_DOWNLOAD_FLAG_RETRY 0x00010000
  34. #define PATCH_DOWNLOAD_FLAG_FAILED 0x00020000
  35. #define PATCH_DOWNLOAD_FLAG_HASH_INCORRECT 0x00100000
  36. typedef BOOL (WINAPI * PATCH_DOWNLOAD_CALLBACK)(PATCH_DOWNLOAD_REASON Reason, PVOID AdditionalInfo, PVOID CallBackContext);
  37. HRESULT WINAPI ProcessFileSection(HINF hInf, HWND hWnd, BOOL fQuietMode, LPCSTR lpszSection,
  38. LPCSTR lpszSrcDir, PATCH_DOWNLOAD_CALLBACK pfn, LPVOID lpvContext);
  39. HRESULT WINAPI GetFileList(HINF hInf, LPCSTR lpszSection, PDOWNLOAD_FILEINFO* pFileList, DWORD* pdwFileCount);
  40. HRESULT WINAPI DownloadAndPatchFiles(DWORD dwFileCount, DOWNLOAD_FILEINFO* pFileInfo, LPCSTR SourceURLs,
  41. LPCSTR lpszPath, PATCH_DOWNLOAD_CALLBACK pfnCallback, LPVOID lpvContext);
  42. BOOL WINAPI PatchCallback(PATCH_DOWNLOAD_REASON Reason, PVOID AdditionalInfo, PVOID CallBackContext);
  43. int WINAPI CompareHashID(LPCTSTR lpszFile, LPCTSTR lpszHash);
  44. HRESULT PrepareInstallDirectory(HINF hInf, LPCSTR lpszSection);
  45. #endif