Windows2003-3790/inetcore/urlmon/idl/webchk.idl
2020-09-30 16:53:55 +02:00

398 lines
11 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// 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) ")