368 lines
15 KiB
Plaintext
368 lines
15 KiB
Plaintext
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright 1995-1998 Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// subsmgr.h")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// (C) Copyright 1995-1998 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";
|
|
import "ocidl.idl";
|
|
import "oleidl.idl";
|
|
import "oaidl.idl";
|
|
#endif
|
|
|
|
|
|
typedef GUID SUBSCRIPTIONCOOKIE;
|
|
|
|
[
|
|
uuid(F72C8D96-6DBD-11d1-A1E8-00C04FC2FBE1), // IID_IEnumItemProperties
|
|
helpstring("Enum Item Properties interface")
|
|
]
|
|
interface IEnumItemProperties : IUnknown
|
|
{
|
|
typedef [unique] IEnumItemProperties *LPENUMITEMPROPERTIES;
|
|
|
|
typedef struct _tagITEMPROP
|
|
{
|
|
VARIANT variantValue; // the variant value
|
|
LPWSTR pwszName; // name
|
|
} ITEMPROP, *LPITEMPROP;
|
|
|
|
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)]
|
|
ITEMPROP *rgelt,
|
|
[out] ULONG *pceltFetched);
|
|
HRESULT Skip([in] ULONG celt);
|
|
HRESULT Reset();
|
|
HRESULT Clone([out] IEnumItemProperties **ppenum);
|
|
HRESULT GetCount([out] ULONG *pnCount);
|
|
}
|
|
|
|
cpp_quote("// Subscription item flag values")
|
|
cpp_quote("// Temporary subscription item")
|
|
cpp_quote("#define SI_TEMPORARY 0x80000000")
|
|
|
|
[
|
|
uuid(A97559F8-6C4A-11d1-A1E8-00C04FC2FBE1), // IID_ISubscriptionItem
|
|
helpstring("Subscription Item interface")
|
|
]
|
|
interface ISubscriptionItem : IUnknown
|
|
{
|
|
typedef [unique] ISubscriptionItem *LPSUBSCRIPTIONITEM;
|
|
|
|
cpp_quote("// SUBSCRIPTIONITEMINFO flags ")
|
|
cpp_quote("// To specify that an item should only run on user idle ")
|
|
cpp_quote("// use TASK_FLAG_START_ONLY_IF_IDLE ")
|
|
|
|
typedef struct tagSUBSCRIPTIONITEMINFO {
|
|
ULONG cbSize;
|
|
DWORD dwFlags;
|
|
DWORD dwPriority;
|
|
SUBSCRIPTIONCOOKIE ScheduleGroup;
|
|
CLSID clsidAgent;
|
|
} SUBSCRIPTIONITEMINFO;
|
|
|
|
HRESULT GetCookie([out] SUBSCRIPTIONCOOKIE *pCookie);
|
|
HRESULT GetSubscriptionItemInfo([out] SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
|
|
HRESULT SetSubscriptionItemInfo([in] const SUBSCRIPTIONITEMINFO *pSubscriptionItemInfo);
|
|
HRESULT ReadProperties(ULONG nCount,
|
|
[in, size_is(nCount)] const LPCWSTR rgwszName[],
|
|
[out, size_is(nCount)] VARIANT rgValue[]);
|
|
HRESULT WriteProperties(ULONG nCount,
|
|
[in, size_is(nCount)] const LPCWSTR rgwszName[],
|
|
[in, size_is(nCount)] const VARIANT rgValue[]);
|
|
HRESULT EnumProperties([out] IEnumItemProperties **ppEnumItemProperties);
|
|
HRESULT NotifyChanged();
|
|
}
|
|
|
|
[
|
|
uuid(F72C8D97-6DBD-11d1-A1E8-00C04FC2FBE1), // IID_IEnumSubscription
|
|
helpstring("Enum Subscription interface"),
|
|
odl
|
|
]
|
|
|
|
interface IEnumSubscription : IUnknown
|
|
{
|
|
typedef [unique] IEnumSubscription *LPENUMSUBSCRIPTION;
|
|
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)]
|
|
SUBSCRIPTIONCOOKIE *rgelt,
|
|
[out] ULONG *pceltFetched);
|
|
HRESULT Skip([in] ULONG celt);
|
|
HRESULT Reset();
|
|
HRESULT Clone([out] IEnumSubscription **ppenum);
|
|
HRESULT GetCount([out] ULONG *pnCount);
|
|
}
|
|
|
|
//---------------------------------------------------------------
|
|
// Subscription Manager
|
|
//---------------------------------------------------------------
|
|
[
|
|
uuid(C54FD88A-FFA1-11d0-BC5E-00C04FD929DB), // LIBID_SubscriptionMgr
|
|
helpstring("Microsoft Subscription Manager 1.0"),
|
|
lcid(0x0000),
|
|
version(1.0)
|
|
]
|
|
library SubscriptionMgr
|
|
{
|
|
|
|
//---------------------------------------------------------------
|
|
// Subscription Manager
|
|
//---------------------------------------------------------------
|
|
|
|
[
|
|
uuid(085FB2C0-0DF8-11d1-8F4B-00A0C905413F), // IID_ISubscriptionMgr
|
|
helpstring("Subscription Manager interface"),
|
|
odl
|
|
]
|
|
interface ISubscriptionMgr : IUnknown
|
|
{
|
|
|
|
typedef enum SUBSCRIPTIONTYPE {
|
|
SUBSTYPE_URL = 0,
|
|
SUBSTYPE_CHANNEL = 1,
|
|
SUBSTYPE_DESKTOPURL = 2,
|
|
SUBSTYPE_EXTERNAL = 3,
|
|
SUBSTYPE_DESKTOPCHANNEL = 4
|
|
} SUBSCRIPTIONTYPE;
|
|
|
|
typedef enum SUBSCRIPTIONINFOFLAGS {
|
|
SUBSINFO_SCHEDULE = 0x0001,
|
|
SUBSINFO_RECURSE = 0x0002,
|
|
SUBSINFO_WEBCRAWL = 0x0004,
|
|
SUBSINFO_MAILNOT = 0x0008,
|
|
SUBSINFO_MAXSIZEKB = 0x0010,
|
|
SUBSINFO_USER = 0x0020,
|
|
SUBSINFO_PASSWORD = 0x0040,
|
|
SUBSINFO_TASKFLAGS = 0x0100,
|
|
SUBSINFO_GLEAM = 0x0200,
|
|
SUBSINFO_CHANGESONLY = 0x0400,
|
|
SUBSINFO_CHANNELFLAGS = 0x0800,
|
|
SUBSINFO_FRIENDLYNAME = 0x2000,
|
|
SUBSINFO_NEEDPASSWORD = 0x4000,
|
|
SUBSINFO_TYPE = 0x8000
|
|
} SUBSCRIPTIONINFOFLAGS;
|
|
|
|
cpp_quote("#define SUBSINFO_ALLFLAGS 0x0000EF7F")
|
|
|
|
typedef enum CREATESUBSCRIPTIONFLAGS {
|
|
CREATESUBS_ADDTOFAVORITES = 0x0001,
|
|
CREATESUBS_FROMFAVORITES = 0x0002,
|
|
CREATESUBS_NOUI = 0x0004,
|
|
CREATESUBS_NOSAVE = 0x0008,
|
|
CREATESUBS_SOFTWAREUPDATE = 0x0010,
|
|
} CREATESUBSCRIPTIONFLAGS;
|
|
|
|
typedef enum SUBSCRIPTIONSCHEDULE {
|
|
SUBSSCHED_AUTO = 0,
|
|
SUBSSCHED_DAILY = 1,
|
|
SUBSSCHED_WEEKLY = 2,
|
|
SUBSSCHED_CUSTOM = 3,
|
|
SUBSSCHED_MANUAL = 4
|
|
} SUBSCRIPTIONSCHEDULE;
|
|
|
|
typedef struct _tagSubscriptionInfo {
|
|
DWORD cbSize;
|
|
DWORD fUpdateFlags;
|
|
SUBSCRIPTIONSCHEDULE schedule;
|
|
CLSID customGroupCookie;
|
|
LPVOID pTrigger;
|
|
DWORD dwRecurseLevels;
|
|
DWORD fWebcrawlerFlags;
|
|
BOOL bMailNotification;
|
|
BOOL bGleam;
|
|
BOOL bChangesOnly;
|
|
BOOL bNeedPassword;
|
|
DWORD fChannelFlags;
|
|
BSTR bstrUserName;
|
|
BSTR bstrPassword;
|
|
BSTR bstrFriendlyName;
|
|
DWORD dwMaxSizeKB;
|
|
SUBSCRIPTIONTYPE subType;
|
|
DWORD fTaskFlags;
|
|
DWORD dwReserved;
|
|
} SUBSCRIPTIONINFO, *LPSUBSCRIPTIONINFO, *PSUBSCRIPTIONINFO;
|
|
|
|
HRESULT DeleteSubscription([in] LPCWSTR pwszURL, [in] HWND hwnd);
|
|
HRESULT UpdateSubscription([in] LPCWSTR pwszURL);
|
|
HRESULT UpdateAll();
|
|
HRESULT IsSubscribed([in] LPCWSTR pwszURL, [out] BOOL *pfSubscribed);
|
|
HRESULT GetSubscriptionInfo(
|
|
[in] LPCWSTR pwszURL,
|
|
[out] SUBSCRIPTIONINFO *pInfo);
|
|
HRESULT GetDefaultInfo([in] SUBSCRIPTIONTYPE subType,
|
|
[out] SUBSCRIPTIONINFO *pInfo);
|
|
HRESULT ShowSubscriptionProperties([in] LPCWSTR pwszURL, [in] HWND hwnd);
|
|
HRESULT CreateSubscription([in] HWND hwnd, [in] LPCWSTR pwszURL,
|
|
[in] LPCWSTR pwszFriendlyName, [in] DWORD dwFlags,
|
|
[in] SUBSCRIPTIONTYPE subsType, [in,out] SUBSCRIPTIONINFO *pInfo);
|
|
}
|
|
|
|
[
|
|
uuid(614BC270-AEDF-11d1-A1F9-00C04FC2FBE1), // IID_ISubscriptionMgr2
|
|
helpstring("Subscription Store interface"),
|
|
odl
|
|
]
|
|
interface ISubscriptionMgr2 : ISubscriptionMgr
|
|
{
|
|
|
|
cpp_quote("// Run State flags ")
|
|
cpp_quote("// Item is ready and queued to run ")
|
|
cpp_quote("#define RS_READY 0x00000001 ")
|
|
cpp_quote("// Running item is paused ")
|
|
cpp_quote("#define RS_SUSPENDED 0x00000002 ")
|
|
cpp_quote("// Item is updating ")
|
|
cpp_quote("#define RS_UPDATING 0x00000004 ")
|
|
cpp_quote("// This item will be suspended while the user is not idle ")
|
|
cpp_quote("#define RS_SUSPENDONIDLE 0x00010000 ")
|
|
cpp_quote("// This item is allowed to cause user interaction ")
|
|
cpp_quote("#define RS_MAYBOTHERUSER 0x00020000 ")
|
|
cpp_quote("// Update is done ")
|
|
cpp_quote("#define RS_COMPLETED 0x80000000 ")
|
|
|
|
cpp_quote("// Update flags ")
|
|
cpp_quote("// Update window should start minimized ")
|
|
cpp_quote("#define SUBSMGRUPDATE_MINIMIZE 0x00000001 ")
|
|
cpp_quote("")
|
|
cpp_quote("#define SUBSMGRUPDATE_MASK 0x00000001 ")
|
|
|
|
cpp_quote("// Enumeration flags ")
|
|
cpp_quote("// Include temporary items ")
|
|
cpp_quote("#define SUBSMGRENUM_TEMP 0x00000001 ")
|
|
cpp_quote("")
|
|
cpp_quote("#define SUBSMGRENUM_MASK 0x00000001 ")
|
|
|
|
HRESULT GetItemFromURL([in] LPCWSTR pwszURL,
|
|
[out] ISubscriptionItem **ppSubscriptionItem);
|
|
HRESULT GetItemFromCookie([in] const SUBSCRIPTIONCOOKIE *pSubscriptionCookie,
|
|
[out] ISubscriptionItem **ppSubscriptionItem);
|
|
HRESULT GetSubscriptionRunState([in] DWORD dwNumCookies,
|
|
[in, size_is(dwNumCookies)] const SUBSCRIPTIONCOOKIE *pCookies,
|
|
[out, size_is(dwNumCookies)] DWORD *pdwRunState);
|
|
HRESULT EnumSubscriptions([in] DWORD dwFlags,
|
|
[out] IEnumSubscription **ppEnumSubscriptions);
|
|
HRESULT UpdateItems([in] DWORD dwFlags,
|
|
[in] DWORD dwNumCookies,
|
|
[in, size_is(dwNumCookies)] const SUBSCRIPTIONCOOKIE *pCookies);
|
|
HRESULT AbortItems([in] DWORD dwNumCookies,
|
|
[in, size_is(dwNumCookies)] const SUBSCRIPTIONCOOKIE *pCookies);
|
|
HRESULT AbortAll();
|
|
}
|
|
|
|
|
|
// Subscription Manager object
|
|
[
|
|
uuid(abbe31d0-6dae-11d0-beca-00c04fd940be), // CLSID_SubscriptionMgr
|
|
helpstring("SubscriptionMgr object")
|
|
]
|
|
coclass SubscriptionMgr
|
|
{
|
|
[default] interface ISubscriptionMgr;
|
|
}
|
|
}
|
|
|
|
cpp_quote("")
|
|
cpp_quote("")
|
|
cpp_quote("////////////////////////////////////////////////////////////////////////////")
|
|
cpp_quote("// Information Delivery Agent definitions")
|
|
|
|
cpp_quote("EXTERN_C const CLSID CLSID_WebCrawlerAgent; ")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_ChannelAgent; ")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_DialAgent; ")
|
|
cpp_quote("EXTERN_C const CLSID CLSID_CDLAgent; ")
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// AgentFlags property for all delivery agents")
|
|
// lower 16 bits open for use
|
|
typedef enum DELIVERY_AGENT_FLAGS {
|
|
DELIVERY_AGENT_FLAG_NO_BROADCAST = 0x0004,
|
|
DELIVERY_AGENT_FLAG_NO_RESTRICTIONS = 0x0008,
|
|
DELIVERY_AGENT_FLAG_SILENT_DIAL = 0x0010
|
|
} DELIVERY_AGENT_FLAGS;
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// RecurseFlags property for web crawler")
|
|
typedef enum WEBCRAWL_RECURSEFLAGS {
|
|
WEBCRAWL_DONT_MAKE_STICKY = 0x0001,
|
|
WEBCRAWL_GET_IMAGES = 0x0002,
|
|
WEBCRAWL_GET_VIDEOS = 0x0004,
|
|
WEBCRAWL_GET_BGSOUNDS = 0x0008,
|
|
WEBCRAWL_GET_CONTROLS = 0x0010,
|
|
WEBCRAWL_LINKS_ELSEWHERE = 0x0020,
|
|
WEBCRAWL_IGNORE_ROBOTSTXT = 0x0080,
|
|
WEBCRAWL_ONLY_LINKS_TO_HTML = 0x0100, // Only follows links to html
|
|
} WEBCRAWL_RECURSEFLAGS;
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// ChannelFlags property for channel agent")
|
|
typedef enum CHANNEL_AGENT_FLAGS {
|
|
CHANNEL_AGENT_DYNAMIC_SCHEDULE = 0x0001,
|
|
CHANNEL_AGENT_PRECACHE_SOME = 0x0002, // Download Only Precache=Yes
|
|
CHANNEL_AGENT_PRECACHE_ALL = 0x0004, // Download All except Precache=No
|
|
CHANNEL_AGENT_PRECACHE_SCRNSAVER= 0x0008,
|
|
} CHANNEL_AGENT_FLAGS;
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// Status codes for completed delivery agents")
|
|
cpp_quote("")
|
|
cpp_quote("// Maximum specified subscription size limit reached")
|
|
cpp_quote("#define INET_E_AGENT_MAX_SIZE_EXCEEDED _HRESULT_TYPEDEF_(0x800C0F80L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// A few URLs failed but the base url and most sub-urls succeeded")
|
|
cpp_quote("#define INET_S_AGENT_PART_FAIL _HRESULT_TYPEDEF_(0x000C0F81L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Maximum cache limit reached")
|
|
cpp_quote("#define INET_E_AGENT_CACHE_SIZE_EXCEEDED _HRESULT_TYPEDEF_(0x800C0F82L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Connection to Internet failed")
|
|
cpp_quote("#define INET_E_AGENT_CONNECTION_FAILED _HRESULT_TYPEDEF_(0x800C0F83L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Scheduled updates are disabled")
|
|
cpp_quote("#define INET_E_SCHEDULED_UPDATES_DISABLED _HRESULT_TYPEDEF_(0x800C0F84L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Scheduled updates are restricted")
|
|
cpp_quote("#define INET_E_SCHEDULED_UPDATES_RESTRICTED _HRESULT_TYPEDEF_(0x800C0F85L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Scheduled update occurred before update interval elapse")
|
|
cpp_quote("#define INET_E_SCHEDULED_UPDATE_INTERVAL _HRESULT_TYPEDEF_(0x800C0F86L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Scheduled update occurred during a restricted time")
|
|
cpp_quote("#define INET_E_SCHEDULED_EXCLUDE_RANGE _HRESULT_TYPEDEF_(0x800C0F87L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// Status codes used during updates")
|
|
cpp_quote("")
|
|
cpp_quote("// We are about to exceed our size limit during operation")
|
|
cpp_quote("#define INET_E_AGENT_EXCEEDING_CACHE_SIZE _HRESULT_TYPEDEF_(0x800C0F90L) ")
|
|
cpp_quote("")
|
|
cpp_quote("// We extended the cache size")
|
|
cpp_quote("#define INET_S_AGENT_INCREASED_CACHE_SIZE _HRESULT_TYPEDEF_(0x000C0F90L) ")
|
|
|
|
|
|
cpp_quote("")
|
|
cpp_quote("// End Information Delivery Agent definitions")
|
|
cpp_quote("////////////////////////////////////////////////////////////////////////////")
|
|
cpp_quote("")
|
|
cpp_quote("")
|