Source code of Windows XP (NT5)
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.

95 lines
3.6 KiB

  1. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Contains CD Networking Interfaces and Prototypes
  4. //
  5. // Copyright (c) Microsoft Corporation 1998
  6. //
  7. // 1/6/98 David Stewart / dstewart
  8. //
  9. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. #ifndef _CDNET_PUBLICINTEFACES_
  11. #define _CDNET_PUBLICINTEFACES_
  12. #include <objbase.h>
  13. #include "..\cdopt\cdopt.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #define WM_NET_DONE (WM_USER+1000) //wparam = unused, lparam = discid or status
  18. #define WM_NET_STATUS (WM_USER+1001) //wparam = hinst, lparam = string id
  19. #define WM_NET_CHANGEPROVIDER (WM_USER+1002) //wparam = num to download, lparam = LPCDPROVIDER
  20. #define WM_NET_INCMETER (WM_USER+1003) //wparam = hinst, lparam = discid
  21. #define WM_NET_DB_FAILURE (WM_USER+1004) //wparam = unused, lparam = unused
  22. #define WM_NET_DB_UPDATE_BATCH (WM_USER+1005) //no params, called to update batch with added disc
  23. #define WM_NET_DB_UPDATE_DISC (WM_USER+1006) //lparam = punit, called to update disc info in playlist
  24. #define WM_NET_NET_FAILURE (WM_USER+1007) //wparam = unused, lparam = unused
  25. #define UPLOAD_STATUS_CANCELED 0
  26. #define UPLOAD_STATUS_NO_PROVIDERS 1
  27. #define UPLOAD_STATUS_SOME_PROVIDERS 2
  28. #define UPLOAD_STATUS_ALL_PROVIDERS 3
  29. const CLSID CLSID_CDNet = {0xE5927147,0x521E,0x11D1,{0x9B,0x97,0x00,0xC0,0x4F,0xA3,0xB6,0x0F}};
  30. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. //
  32. // Interface Definitions
  33. //
  34. // Defines the GUIDs / IIDs for this project:
  35. //
  36. // IID_IMMFWNotifySink, IMMComponent, IMMComponentAutomation
  37. //
  38. // These are the three interfaces for Framework / Component communications.
  39. // All other interfaces should be private to the specific project.
  40. //
  41. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  42. #define lCDNETIIDFirst 0xb2cd5bbc
  43. #define DEFINE_CDNETIID(name, x) DEFINE_GUID(name, lCDNETIIDFirst + x, 0x5221,0x11d1,0x9b,0x97,0x0,0xc0,0x4f,0xa3,0xb6,0xc)
  44. DEFINE_CDNETIID(IID_ICDNet, 0);
  45. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  46. //
  47. // Interface Typedefs
  48. //
  49. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  50. typedef interface ICDNet ICDNet;
  51. typedef ICDNet* LPCDNET;
  52. #ifndef LPUNKNOWN
  53. typedef IUnknown* LPUNKNOWN;
  54. #endif
  55. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  56. //
  57. // Interface Definitions
  58. //
  59. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  60. #undef INTERFACE
  61. #define INTERFACE ICDNet
  62. DECLARE_INTERFACE_(ICDNet, IUnknown)
  63. {
  64. //--- IUnknown methods---
  65. STDMETHOD (QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
  66. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  67. STDMETHOD_(ULONG,Release) (THIS) PURE;
  68. //--- ICDNet methods---
  69. STDMETHOD (SetOptionsAndData) (THIS_ void* pOpt, void* pData) PURE;
  70. STDMETHOD (Download) (THIS_ DWORD dwDeviceHandle, TCHAR chDrive, DWORD dwMSID, LPCDTITLE pTitle, BOOL fManual, HWND hwndParent) PURE;
  71. STDMETHOD_(BOOL,IsDownloading) (THIS_) PURE;
  72. STDMETHOD (CancelDownload) (THIS_) PURE;
  73. STDMETHOD (Upload) (THIS_ LPCDTITLE pTitle, HWND hwndParent) PURE;
  74. STDMETHOD_(BOOL,CanUpload) (THIS_) PURE;
  75. };
  76. #ifdef __cplusplus
  77. };
  78. #endif
  79. #endif //_MMFRAMEWORK_PUBLICINTEFACES_