//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (c) Microsoft Corporation. All rights reserved. // //-------------------------------------------------------------------------- cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// chanmgr.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.") cpp_quote("//") cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") cpp_quote("// PARTICULAR PURPOSE.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("") cpp_quote("#pragma comment(lib,\"uuid.lib\")") cpp_quote("") cpp_quote("//---------------------------------------------------------------------------=") cpp_quote("// Channel Manager Interfaces.") cpp_quote("") #ifndef DO_NO_IMPORTS import "unknwn.idl"; #endif interface IChannelMgr; interface IEnumChannels; //--------------------------------------------------------------- // Channel Manager //--------------------------------------------------------------- [ uuid(4804f2e0-d16e-11d0-802b-00c04fd75d13), // LIBID_CHANNELMGR helpstring("Microsoft Channel Manager 1.0"), lcid(0x0000), version(1.0) ] library CHANNELMGR { // ChannelMgr interface [ uuid(85BD8E82-0FBA-11d1-90C3-00C04FC2F568), // IID_IChannelMgr helpstring("Channel Manager interface"), odl ] interface IChannelMgr : IUnknown { typedef struct _tagChannelShortcutInfo { DWORD cbSize; // size of struct, must be specified LPWSTR pszTitle; // channel title LPWSTR pszURL; // required url to channel cdf LPWSTR pszLogo; // optional logo url LPWSTR pszIcon; // optional icon url LPWSTR pszWideLogo;// optional wide logo url BOOL bIsSoftware;// is software update and lives in that folder (normally false) } CHANNELSHORTCUTINFO; typedef struct _tagChannelCategoryInfo { DWORD cbSize; // size of struct, must be specified LPWSTR pszTitle; // category title LPWSTR pszURL; // optional url to category html LPWSTR pszLogo; // optional logo url LPWSTR pszIcon; // optional icon url LPWSTR pszWideLogo;// optional wide logo url } CHANNELCATEGORYINFO; typedef enum _tagChannelEnumFlags { CHANENUM_CHANNELFOLDER = 0x00000001, CHANENUM_SOFTUPDATEFOLDER = 0x00000002, CHANENUM_DESKTOPFOLDER = 0x00000004, CHANENUM_TITLE = 0x00010000, CHANENUM_PATH = 0x00020000, CHANENUM_URL = 0x00040000, CHANENUM_SUBSCRIBESTATE = 0x00080000 } CHANNELENUMFLAGS; cpp_quote("#define CHANENUM_ALLFOLDERS (CHANENUM_CHANNELFOLDER | \\") cpp_quote(" CHANENUM_SOFTUPDATEFOLDER | \\") cpp_quote(" CHANENUM_DESKTOPFOLDER )") cpp_quote("") cpp_quote("#define CHANENUM_ALLDATA (CHANENUM_TITLE | \\") cpp_quote(" CHANENUM_PATH | \\") cpp_quote(" CHANENUM_URL | \\") cpp_quote(" CHANENUM_SUBSCRIBESTATE )") cpp_quote("") cpp_quote("#define CHANENUM_ALL (CHANENUM_CHANNELFOLDER | \\") cpp_quote(" CHANENUM_SOFTUPDATEFOLDER | \\") cpp_quote(" CHANENUM_DESKTOPFOLDER | \\") cpp_quote(" CHANENUM_TITLE | \\") cpp_quote(" CHANENUM_PATH | \\") cpp_quote(" CHANENUM_URL | \\") cpp_quote(" CHANENUM_SUBSCRIBESTATE )") cpp_quote("") HRESULT AddChannelShortcut([in]CHANNELSHORTCUTINFO *pChannelInfo); HRESULT DeleteChannelShortcut([in]LPWSTR pszTitle); HRESULT AddCategory([in]CHANNELCATEGORYINFO *pCategoryInfo); HRESULT DeleteCategory([in]LPWSTR pszTitle); HRESULT EnumChannels([in]DWORD dwEnumFlags, [in]LPCWSTR pszURL, // optional cdf url [out]IEnumChannels** pIEnumChannels); }; // EnumChannels interface [ uuid(A4C65425-0F82-11d1-90C3-00C04FC2F568), // IID_IEnumChannels helpstring("Channel Enumerator interface"), odl ] interface IEnumChannels : IUnknown { typedef enum _tagSubcriptionState{ SUBSTATE_NOTSUBSCRIBED, SUBSTATE_PARTIALSUBSCRIPTION, SUBSTATE_FULLSUBSCRIPTION } SUBSCRIPTIONSTATE; typedef struct _tagChannelInfo { LPOLESTR pszTitle; LPOLESTR pszPath; LPOLESTR pszURL; SUBSCRIPTIONSTATE stSubscriptionState; } CHANNELENUMINFO; HRESULT Next(ULONG celt, CHANNELENUMINFO* rgChanInf, ULONG *pceltFetched); HRESULT Skip(ULONG celt); HRESULT Reset(void); HRESULT Clone(IEnumChannels **ppenum); }; // ChannelMgr class [ uuid(b3cdae90-d170-11d0-802b-00c04fd75d13), // CLSID_ChannelMgr helpstring("ChannelMgr class"), ] coclass ChannelMgr { [default] interface IChannelMgr; } }