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