You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
397 lines
11 KiB
397 lines
11 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1995.
|
|
//
|
|
// File: webchk.idl
|
|
//
|
|
// Contents:
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History: 11-17-1996 JohannP (Johann Posch) Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
import "objidl.idl";
|
|
import "oleidl.idl";
|
|
|
|
interface IOInetItem;
|
|
interface IOInetDestination;
|
|
|
|
// the client exposes this interfaces
|
|
interface IOInetItemSink;
|
|
interface IOInetItemFilter;
|
|
|
|
// the core of the webcheck agent
|
|
interface IOInetAgent;
|
|
//interface IOInetSpooler;
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetItem interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// An item is an object which might be delivered by
|
|
// a protocol or the client which should be delivered
|
|
// to a destination at a given "WHEN"
|
|
//
|
|
// The data for an item might not be available as the item
|
|
// gets announced for availability.
|
|
//
|
|
// Many items will in fact arrive with all data.
|
|
//
|
|
// The same object will expose I(Async)Moniker and the client
|
|
// can call BindToXXX to bind to the object of the data.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKITEM")
|
|
cpp_quote("#define _LPWCHKITEM")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbe1-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetItem : IUnknown
|
|
{
|
|
typedef [unique] IOInetItem *LPWCHKITEM;
|
|
|
|
typedef enum _tagITEMDATA_FLAGS
|
|
{
|
|
ID_FROMCACHE = 0x00000001
|
|
} ITEMDATA_FLAGS;
|
|
|
|
typedef enum _tagITEM_TYPE
|
|
{
|
|
IT_ANOUNCMENT = 1
|
|
,IT_ALERT
|
|
,IT_ALERT_NO_ITEM
|
|
,IT_DATA
|
|
} ITEMTYPE;
|
|
|
|
typedef struct _tagItemData
|
|
{
|
|
ULONG cbSize;
|
|
// more info about category etc.
|
|
ITEMDATA_FLAGS grfItem;
|
|
// the prefered tymed the client wants the data
|
|
TYMED tymedPrefered;
|
|
STGMEDIUM stgmed;
|
|
} ITEMDATA, *LPITEMDATA;
|
|
|
|
HRESULT GetURL(
|
|
[out] LPOLESTR *ppwzUrl
|
|
);
|
|
|
|
HRESULT GetInfo(
|
|
[in] DWORD dwOptions,
|
|
[out] LPOLESTR *ppwzItemMime,
|
|
[out] LPCLSID *pclsidItem,
|
|
[out] LPOLESTR *ppwzProtocol,
|
|
[out] LPCLSID *pclsidProtocol,
|
|
[out] DWORD *pdwOut
|
|
);
|
|
|
|
HRESULT GetItemData(
|
|
[in, out] DWORD *grfITEMF,
|
|
[in, out, unique] ITEMDATA * pitemdata
|
|
);
|
|
|
|
// new hresult: data might not be available
|
|
//
|
|
|
|
// Question: is the following method needed or is QI enough?
|
|
//HRESULT GetMoniker(
|
|
// [out, unique] IMoniker **ppMoniker
|
|
// );
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetItemSink interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// The item sink is the interface where an item gets consumed or added to
|
|
// the agent where it might be downloaded later and put to the destination.
|
|
//
|
|
// The ItemSink migh also act as the item filter, hence it can drop an item.
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKITEMSINK_DEFINED")
|
|
cpp_quote("#define _LPWCHKITEMSINK_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbe5-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetItemSink : IUnknown
|
|
{
|
|
typedef [unique] IOInetItemSink *LPWCHKITEMSINK;
|
|
|
|
HRESULT OnItem(
|
|
[in] ITEMTYPE itemtype,
|
|
[in] IOInetItem *pWChkItem,
|
|
[in] DWORD dwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetDestination interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// This interface is the gateway to the item data's destination.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKDESTINATION_DEFINED")
|
|
cpp_quote("#define _LPWCHKDESTINATION_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbea-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetDestination : IUnknown
|
|
{
|
|
typedef [unique] IOInetDestination *LPWCHKDESTINATION;
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetAgent interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// This is the object provide by webcheck will can start listening on
|
|
// different protocols (APP) by using the custom verb "listen".
|
|
//
|
|
// The clien can also add an item to the agents scheduler or spooler which
|
|
// will the item deliver to a distination at a given "WHEN"
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKAGENT_DEFINED")
|
|
cpp_quote("#define _LPWCHKAGENT_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbe7-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetAgent : IUnknown
|
|
{
|
|
typedef [unique] IOInetAgent *LPWCHKAGENT;
|
|
|
|
typedef enum _tagScheduleMode
|
|
{
|
|
SMODE_ONCEAT = 1,
|
|
SMODE_FIRSTAT
|
|
|
|
} SCHEDULEMODE;
|
|
|
|
typedef struct _tagScheduleTime
|
|
{
|
|
ULONG date;
|
|
ULONG time;
|
|
|
|
} SCHEDULETIME;
|
|
|
|
typedef struct _tagScheduleData
|
|
{
|
|
SCHEDULEMODE schMode;
|
|
SCHEDULETIME schtimeFirst;
|
|
SCHEDULETIME schtimeRepeat;
|
|
} SCHEDULEDATA;
|
|
|
|
|
|
// will start a listening protocol (APP) and listen for items
|
|
// eg. mc or alert etc.
|
|
HRESULT StartListen(
|
|
[in] const LPCWSTR szProtocol,
|
|
[in] IOInetItemFilter *pWChkItemFilter,
|
|
[in] DWORD grfMode,
|
|
[out] CLSID *pclsidProtocol,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
// will release the sink passed in at StartListen
|
|
HRESULT StopListen(
|
|
[out] CLSID *pclsidProtocol
|
|
);
|
|
|
|
// add item to the spooler
|
|
HRESULT ScheduleItem(
|
|
[in] IOInetItem *pWChkItem,
|
|
[in] IOInetDestination *pWChkDest,
|
|
[in] SCHEDULEDATA *pschdata,
|
|
[in] DWORD dwMode,
|
|
[out, unique] DWORD *pdwCookie
|
|
);
|
|
|
|
HRESULT RevokeItem(
|
|
[in] DWORD dwCookie
|
|
);
|
|
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetAdvisor interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// This is the object provide by webcheck will can start listening on
|
|
// different protocols (APP) by using the custom verb "listen".
|
|
//
|
|
// The clien can also add an item to the agents scheduler or spooler which
|
|
// will the item deliver to a distination at a given "WHEN"
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKADVISOR_DEFINED")
|
|
cpp_quote("#define _LPWCHKADVISOR_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbe8-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetAdvisor : IUnknown
|
|
{
|
|
typedef [unique] IOInetAdvisor *LPWCHKADVISOR;
|
|
|
|
|
|
// will start a listening protocol (APP) and listen for items
|
|
// eg. mc or alert etc.
|
|
HRESULT StartListen(
|
|
[in] const LPCWSTR szProtocol,
|
|
[in] IOInetItemFilter *pWChkItemFilter,
|
|
[in] DWORD grfMode,
|
|
[out] CLSID *pclsidProtocol,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
// will release the sink passed in at StartListen
|
|
HRESULT StopListen(
|
|
[out] CLSID *pclsidProtocol
|
|
);
|
|
|
|
HRESULT Advise(
|
|
[in] IOInetItemSink *pWChkItemSink,
|
|
[in] DWORD grfMode,
|
|
[in] ULONG cMimes,
|
|
[in] const LPCWSTR *ppwzItemMimes,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
HRESULT Unadvise(
|
|
[in] IOInetItemSink *pWChkItemSink,
|
|
[in] ULONG cMimes,
|
|
[in] const LPCWSTR *ppwzItemMimes
|
|
);
|
|
|
|
HRESULT SendAdvise(
|
|
[in] ITEMTYPE itemtype,
|
|
[in] IOInetItem *pWChkItem,
|
|
[in] DWORD grfMode,
|
|
[in] LPCWSTR pwzItemMimes,
|
|
[in] DWORD dwReserved
|
|
);
|
|
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1995 - 1996.
|
|
//
|
|
// Contents: IOInetItemSink interface definition
|
|
//
|
|
// Description:
|
|
//
|
|
// The item sink is the interface where an item gets consumed or added to
|
|
// the agent where it might be downloaded later and put to the destination.
|
|
//
|
|
// The ItemSink migh also act as the item filter, hence it can drop an item.
|
|
//----------------------------------------------------------------------------
|
|
cpp_quote("#ifndef _LPWCHKITEMFILTER_DEFINED")
|
|
cpp_quote("#define _LPWCHKITEMFILTER_DEFINED")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(79eacbe9-baf9-11ce-8c82-00aa004ba90b),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IOInetItemFilter : IUnknown
|
|
{
|
|
typedef [unique] IOInetItemFilter *LPWCHKITEMFILTER;
|
|
|
|
typedef struct _tagAnouncmentData
|
|
{
|
|
ULONG cbSize;
|
|
// more info about category etc.
|
|
LPWSTR pwzName;
|
|
|
|
} ANOUNCMENTDATA, *LPANOUNCMENTDATA;
|
|
|
|
|
|
HRESULT OnAnouncment(
|
|
[in] ANOUNCMENTDATA *pAnouncementData,
|
|
[in] LPCWSTR pwzUrl,
|
|
[in] DWORD dwReserved
|
|
);
|
|
}
|
|
cpp_quote("#endif")
|
|
|
|
|
|
|
|
// new API
|
|
#pragma midl_echo("STDAPI GetOInetAdvisor(DWORD dwMode, IOInetAdvisor **ppOInetAdvisor, DWORD dwReserved); ")
|
|
|
|
|
|
cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011L) ")
|
|
cpp_quote("#define INET_E_USE_DEFAULT_SETTING _HRESULT_TYPEDEF_(0x800C0012L) ")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|