home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / chanmgr.idl < prev    next >
Text File  |  1998-04-25  |  6KB  |  149 lines

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