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

83 lines
4.1 KiB
C

//
// Private channel manager include file.
//
#undef INTERFACE
#define INTERFACE IChannelMgrPriv
DECLARE_INTERFACE_(IChannelMgrPriv, IUnknown)
{
typedef enum _tagCHANNELFOLDERLOCATION { CF_CHANNEL, CF_SOFTWAREUPDATE } CHANNELFOLDERLOCATION;
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IChannelMgrPriv ***
STDMETHOD(GetBaseChannelPath) (THIS_ LPSTR pszPath, int cch) PURE;
STDMETHOD(InvalidateCdfCache) (THIS) PURE;
STDMETHOD(PreUpdateChannelImage) (THIS_ LPCSTR pszPath, LPSTR pszHashItem,
int* piIndex, UINT* puFlags,
int* piImageIndex) PURE;
STDMETHOD(UpdateChannelImage) (THIS_ LPCWSTR pszHashItem, int iIndex,
UINT uFlags, int iImageIndex) PURE;
STDMETHOD(GetChannelFolderPath) (THIS_ LPSTR pszPath, int cch, CHANNELFOLDERLOCATION cflChannel) PURE;
STDMETHOD(GetChannelFolder) (THIS_ LPITEMIDLIST* ppidl, CHANNELFOLDERLOCATION cflChannel) PURE;
STDMETHOD(DownloadMinCDF) (THIS_ HWND hwnd, LPCWSTR pwszURL, LPWSTR pwszTitle,
DWORD cchTitle, SUBSCRIPTIONINFO *pSubInfo, BOOL *pfIsSoftware) PURE;
STDMETHOD(ShowChannel) (THIS_ IWebBrowser2 *pWebBrowser2, LPWSTR pwszURL, HWND hwnd) PURE;
STDMETHOD(IsChannelInstalled) (THIS_ LPCWSTR pwszURL) PURE;
STDMETHOD(IsChannelPreinstalled) (THIS_ LPCWSTR pwszURL, BSTR * bstrFile) PURE;
STDMETHOD(RemovePreinstalledMapping) (THIS_ LPCWSTR pwszURL) PURE;
STDMETHOD(SetupPreinstalledMapping) (THIS_ LPCWSTR pwszURL, LPCWSTR pwszFile) PURE;
// WARNING! BEFORE CALLING THE AddAndSubscribe METHOD YOU MUST DETECT
// THE CDFVIEW VERSION BECAUSE IE 4.00 WILL CRASH IF YOU TRY
// TO CALL IT
// pSubscriptionMgr can be NULL
STDMETHOD(AddAndSubscribe) (THIS_ HWND hwnd, LPCWSTR pwszURL,
ISubscriptionMgr *pSubscriptionMgr) PURE;
};
#undef INTERFACE
#define INTERFACE IChannelMgrPriv2
DECLARE_INTERFACE_(IChannelMgrPriv2, IChannelMgrPriv)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
// *** IChannelMgrPriv ***
STDMETHOD(GetBaseChannelPath) (THIS_ LPSTR pszPath, int cch) PURE;
STDMETHOD(InvalidateCdfCache) (THIS) PURE;
STDMETHOD(PreUpdateChannelImage) (THIS_ LPCSTR pszPath, LPSTR pszHashItem,
int* piIndex, UINT* puFlags,
int* piImageIndex) PURE;
STDMETHOD(UpdateChannelImage) (THIS_ LPCWSTR pszHashItem, int iIndex,
UINT uFlags, int iImageIndex) PURE;
STDMETHOD(GetChannelFolderPath) (THIS_ LPSTR pszPath, int cch, CHANNELFOLDERLOCATION cflChannel) PURE;
STDMETHOD(GetChannelFolder) (THIS_ LPITEMIDLIST* ppidl, CHANNELFOLDERLOCATION cflChannel) PURE;
STDMETHOD(DownloadMinCDF) (THIS_ HWND hwnd, LPCWSTR pwszURL, LPWSTR pwszTitle,
DWORD cchTitle, SUBSCRIPTIONINFO *pSubInfo, BOOL *pfIsSoftware) PURE;
STDMETHOD(ShowChannel) (THIS_ IWebBrowser2 *pWebBrowser2, LPWSTR pwszURL, HWND hwnd) PURE;
STDMETHOD(IsChannelInstalled) (THIS_ LPCWSTR pwszURL) PURE;
STDMETHOD(IsChannelPreinstalled) (THIS_ LPCWSTR pwszURL, BSTR * bstrFile) PURE;
STDMETHOD(RemovePreinstalledMapping) (THIS_ LPCWSTR pwszURL) PURE;
STDMETHOD(SetupPreinstalledMapping) (THIS_ LPCWSTR pwszURL, LPCWSTR pwszFile) PURE;
// WARNING! BEFORE CALLING THE AddAndSubscribe METHOD YOU MUST DETECT
// THE CDFVIEW VERSION BECAUSE IE 4.00 WILL CRASH IF YOU TRY
// TO CALL IT
// pSubscriptionMgr can be NULL
STDMETHOD(AddAndSubscribe) (THIS_ HWND hwnd, LPCWSTR pwszURL,
ISubscriptionMgr *pSubscriptionMgr) PURE;
// *** IChannelMgrPriv2 ***
STDMETHOD(WriteScreenSaverURL) (THIS_ LPCWSTR pwszURL, LPCWSTR pwszScreenSaverURL) PURE;
STDMETHOD(RefreshScreenSaverURLs) (THIS) PURE;
};