windows-nt/Source/XPSP1/NT/shell/published/inc/chanmgr.idl
2020-09-26 16:20:57 +08:00

149 lines
5.7 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// 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;
}
}