ChanMgr.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:6k
- //+-------------------------------------------------------------------------
- //
- // 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;
- }
- }