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.

148 lines
5.8 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. //--------------------------------------------------------------------------
  7. cpp_quote("//=--------------------------------------------------------------------------=")
  8. cpp_quote("// chanmgr.h")
  9. cpp_quote("//=--------------------------------------------------------------------------=")
  10. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  11. cpp_quote("//")
  12. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  13. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  14. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  15. cpp_quote("// PARTICULAR PURPOSE.")
  16. cpp_quote("//=--------------------------------------------------------------------------=")
  17. cpp_quote("")
  18. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  19. cpp_quote("")
  20. cpp_quote("//---------------------------------------------------------------------------=")
  21. cpp_quote("// Channel Manager Interfaces.")
  22. cpp_quote("")
  23. #ifndef DO_NO_IMPORTS
  24. import "unknwn.idl";
  25. #endif
  26. interface IChannelMgr;
  27. interface IEnumChannels;
  28. //---------------------------------------------------------------
  29. // Channel Manager
  30. //---------------------------------------------------------------
  31. [
  32. uuid(4804f2e0-d16e-11d0-802b-00c04fd75d13), // LIBID_CHANNELMGR
  33. helpstring("Microsoft Channel Manager 1.0"),
  34. lcid(0x0000),
  35. version(1.0)
  36. ]
  37. library CHANNELMGR
  38. {
  39. // ChannelMgr interface
  40. [
  41. uuid(85BD8E82-0FBA-11d1-90C3-00C04FC2F568), // IID_IChannelMgr
  42. helpstring("Channel Manager interface"),
  43. odl
  44. ]
  45. interface IChannelMgr : IUnknown
  46. {
  47. typedef struct _tagChannelShortcutInfo {
  48. DWORD cbSize; // size of struct, must be specified
  49. LPWSTR pszTitle; // channel title
  50. LPWSTR pszURL; // required url to channel cdf
  51. LPWSTR pszLogo; // optional logo url
  52. LPWSTR pszIcon; // optional icon url
  53. LPWSTR pszWideLogo;// optional wide logo url
  54. BOOL bIsSoftware;// is software update and lives in that folder (normally false)
  55. } CHANNELSHORTCUTINFO;
  56. typedef struct _tagChannelCategoryInfo {
  57. DWORD cbSize; // size of struct, must be specified
  58. LPWSTR pszTitle; // category title
  59. LPWSTR pszURL; // optional url to category html
  60. LPWSTR pszLogo; // optional logo url
  61. LPWSTR pszIcon; // optional icon url
  62. LPWSTR pszWideLogo;// optional wide logo url
  63. } CHANNELCATEGORYINFO;
  64. typedef enum _tagChannelEnumFlags {
  65. CHANENUM_CHANNELFOLDER = 0x00000001,
  66. CHANENUM_SOFTUPDATEFOLDER = 0x00000002,
  67. CHANENUM_DESKTOPFOLDER = 0x00000004,
  68. CHANENUM_TITLE = 0x00010000,
  69. CHANENUM_PATH = 0x00020000,
  70. CHANENUM_URL = 0x00040000,
  71. CHANENUM_SUBSCRIBESTATE = 0x00080000
  72. } CHANNELENUMFLAGS;
  73. cpp_quote("#define CHANENUM_ALLFOLDERS (CHANENUM_CHANNELFOLDER | \\")
  74. cpp_quote(" CHANENUM_SOFTUPDATEFOLDER | \\")
  75. cpp_quote(" CHANENUM_DESKTOPFOLDER )")
  76. cpp_quote("")
  77. cpp_quote("#define CHANENUM_ALLDATA (CHANENUM_TITLE | \\")
  78. cpp_quote(" CHANENUM_PATH | \\")
  79. cpp_quote(" CHANENUM_URL | \\")
  80. cpp_quote(" CHANENUM_SUBSCRIBESTATE )")
  81. cpp_quote("")
  82. cpp_quote("#define CHANENUM_ALL (CHANENUM_CHANNELFOLDER | \\")
  83. cpp_quote(" CHANENUM_SOFTUPDATEFOLDER | \\")
  84. cpp_quote(" CHANENUM_DESKTOPFOLDER | \\")
  85. cpp_quote(" CHANENUM_TITLE | \\")
  86. cpp_quote(" CHANENUM_PATH | \\")
  87. cpp_quote(" CHANENUM_URL | \\")
  88. cpp_quote(" CHANENUM_SUBSCRIBESTATE )")
  89. cpp_quote("")
  90. HRESULT AddChannelShortcut([in]CHANNELSHORTCUTINFO *pChannelInfo);
  91. HRESULT DeleteChannelShortcut([in]LPWSTR pszTitle);
  92. HRESULT AddCategory([in]CHANNELCATEGORYINFO *pCategoryInfo);
  93. HRESULT DeleteCategory([in]LPWSTR pszTitle);
  94. HRESULT EnumChannels([in]DWORD dwEnumFlags,
  95. [in]LPCWSTR pszURL, // optional cdf url
  96. [out]IEnumChannels** pIEnumChannels);
  97. };
  98. // EnumChannels interface
  99. [
  100. uuid(A4C65425-0F82-11d1-90C3-00C04FC2F568), // IID_IEnumChannels
  101. helpstring("Channel Enumerator interface"),
  102. odl
  103. ]
  104. interface IEnumChannels : IUnknown
  105. {
  106. typedef enum _tagSubcriptionState{
  107. SUBSTATE_NOTSUBSCRIBED,
  108. SUBSTATE_PARTIALSUBSCRIPTION,
  109. SUBSTATE_FULLSUBSCRIPTION
  110. } SUBSCRIPTIONSTATE;
  111. typedef struct _tagChannelInfo {
  112. LPOLESTR pszTitle;
  113. LPOLESTR pszPath;
  114. LPOLESTR pszURL;
  115. SUBSCRIPTIONSTATE stSubscriptionState;
  116. } CHANNELENUMINFO;
  117. HRESULT Next(ULONG celt, CHANNELENUMINFO* rgChanInf,
  118. ULONG *pceltFetched);
  119. HRESULT Skip(ULONG celt);
  120. HRESULT Reset(void);
  121. HRESULT Clone(IEnumChannels **ppenum);
  122. };
  123. // ChannelMgr class
  124. [
  125. uuid(b3cdae90-d170-11d0-802b-00c04fd75d13), // CLSID_ChannelMgr
  126. helpstring("ChannelMgr class"),
  127. ]
  128. coclass ChannelMgr
  129. {
  130. [default] interface IChannelMgr;
  131. }
  132. }