mirror of https://github.com/UMSKT/xpmgr.git
201 lines
5.8 KiB
Plaintext
201 lines
5.8 KiB
Plaintext
//+----------------------------------------------------------------------------
|
|
//
|
|
// Microsoft (R) Search
|
|
// Copyright (C) Microsoft Corporation, 1998-2000.
|
|
//
|
|
// File: srchprth.idl
|
|
//
|
|
// Contents: Search Protocol Handler Data Structures and Interfaces
|
|
//
|
|
// Structures: TIMEOUT_INFO
|
|
// PROXY_INFO
|
|
// AUTHENTICATION_INFO
|
|
// INCREMENTAL_ACCESS_INFO
|
|
//
|
|
// Interfaces: ISearchProtocol
|
|
// IProtocolHandlerSite
|
|
// ISearchUrlAccessor
|
|
//
|
|
// History: 02/09/00 mcheng Created
|
|
//
|
|
//+----------------------------------------------------------------------------
|
|
|
|
interface IUrlAccessor;
|
|
|
|
#pragma pack(8)
|
|
|
|
typedef struct _TIMEOUT_INFO
|
|
{
|
|
DWORD dwSize; // Actual size of structure (bytes)
|
|
DWORD dwConnectTimeout; // Timeout for connection (seconds)
|
|
DWORD dwDataTimeout; // Timeout for data (seconds)
|
|
} TIMEOUT_INFO;
|
|
|
|
|
|
|
|
typedef enum _PROXY_ACCESS
|
|
{
|
|
PROXY_ACCESS_PRECONFIG = 0,
|
|
PROXY_ACCESS_DIRECT,
|
|
PROXY_ACCESS_PROXY
|
|
} PROXY_ACCESS;
|
|
|
|
|
|
|
|
typedef struct _PROXY_INFO
|
|
{
|
|
DWORD dwSize; // Actual size of structure (bytes)
|
|
LPCWSTR pcwszUserAgent; //
|
|
PROXY_ACCESS paUseProxy; //
|
|
BOOL fLocalBypass; // Bypass proxy for local address
|
|
DWORD dwPortNumber;
|
|
LPCWSTR pcwszProxyName;
|
|
LPCWSTR pcwszBypassList;
|
|
} PROXY_INFO;
|
|
|
|
|
|
|
|
typedef enum _AUTH_TYPE
|
|
{
|
|
eAUTH_TYPE_ANONYMOUS = 0,
|
|
eAUTH_TYPE_NTLM,
|
|
eAUTH_TYPE_BASIC
|
|
} AUTH_TYPE;
|
|
|
|
|
|
|
|
typedef struct _AUTHENTICATION_INFO
|
|
{
|
|
DWORD dwSize; // Actual size of structure (bytes)
|
|
AUTH_TYPE atAuthenticationType; // Anonymous, Basic, or NTLM
|
|
LPCWSTR pcwszUser;
|
|
LPCWSTR pcwszPassword;
|
|
} AUTHENTICATION_INFO;
|
|
|
|
|
|
|
|
typedef struct _INCREMENTAL_ACCESS_INFO
|
|
{
|
|
DWORD dwSize; // Actual size of structure (bytes)
|
|
FILETIME ftLastModifiedTime;
|
|
} INCREMENTAL_ACCESS_INFO;
|
|
|
|
|
|
|
|
typedef struct _ITEM_INFO
|
|
{
|
|
DWORD dwSize; // Actual size of structure (bytes)
|
|
LPCWSTR pcwszFromEMail;
|
|
LPCWSTR pcwszApplicationName;
|
|
LPCWSTR pcwszCatalogName;
|
|
LPCWSTR pcwszContentClass;
|
|
} ITEM_INFO;
|
|
|
|
|
|
|
|
interface ISearchProtocol;
|
|
interface IProtocolHandlerSite;
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Interface: ISearchProtocol
|
|
//
|
|
// Comment: This is the main protocol handler interface where accessors
|
|
// are created. Initialization information is passed in through
|
|
// this interface. Re-using or pooling of accessors are
|
|
// encouraged, if the protocol allows. The CloseAccessor method
|
|
// is there to support this re-use/pooling.
|
|
//
|
|
// History: 02/18/00 mcheng Created
|
|
//
|
|
//+----------------------------------------------------------------------------
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(c73106ba-ac80-11d1-8df3-00c04fb6ef4f),
|
|
helpstring("Protocol Handler Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISearchProtocol : IUnknown
|
|
{
|
|
HRESULT Init([in] TIMEOUT_INFO *pTimeoutInfo,
|
|
[in] IProtocolHandlerSite *pProtocolHandlerSite,
|
|
[in] PROXY_INFO *pProxyInfo);
|
|
|
|
HRESULT CreateAccessor([in] LPCWSTR pcwszURL,
|
|
[in] AUTHENTICATION_INFO *pAuthenticationInfo,
|
|
[in] INCREMENTAL_ACCESS_INFO *pIncrementalAccessInfo,
|
|
[in] ITEM_INFO *pItemInfo,
|
|
[out] IUrlAccessor **ppAccessor);
|
|
// ISSUE: The last step will cause us to return ISearchUrlAccessor
|
|
// [out] ISearchUrlAccessor **ppAccessor);
|
|
|
|
|
|
// ISSUE: Pass ISearchUrlAccessor when we support that
|
|
HRESULT CloseAccessor([in] IUrlAccessor *pAccessor);
|
|
|
|
HRESULT ShutDown();
|
|
}
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Interface: ISearchProtocol2
|
|
//
|
|
// Comment: Protocol handler interface which allows user data that is
|
|
// passed in with notifications to reach the PHs.
|
|
//
|
|
// History: 11/11/05 mabarbis Created
|
|
//
|
|
//+----------------------------------------------------------------------------
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(7789F0B2-B5B2-4722-8B65-5DBD150697A9),
|
|
helpstring("Protocol Handler Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISearchProtocol2 : ISearchProtocol
|
|
{
|
|
HRESULT CreateAccessorEx([in] LPCWSTR pcwszURL,
|
|
[in] AUTHENTICATION_INFO *pAuthenticationInfo,
|
|
[in] INCREMENTAL_ACCESS_INFO *pIncrementalAccessInfo,
|
|
[in] ITEM_INFO *pItemInfo,
|
|
[in] const BLOB *pUserData,
|
|
[out] IUrlAccessor **ppAccessor);
|
|
}
|
|
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Interface: IProtocolHandlerSite
|
|
//
|
|
// Comment: This interface allows protocol handlers to get "services" from
|
|
// the filter daemon. If a protocol handler needs to get an
|
|
// IFilter for an embedded document, it can do so by calling the
|
|
// GetFilter method.
|
|
//
|
|
// History: 02/18/00 mcheng Created
|
|
//
|
|
//+----------------------------------------------------------------------------
|
|
[
|
|
object,
|
|
local,
|
|
uuid(0b63e385-9ccc-11d0-bcdb-00805fccce04),
|
|
helpstring("Protocol Handler Site Interface"),
|
|
pointer_default(unique)
|
|
]
|
|
interface IProtocolHandlerSite : IUnknown
|
|
{
|
|
HRESULT GetFilter([in] CLSID *pclsidObj,
|
|
[in] LPCWSTR pcwszContentType,
|
|
[in] LPCWSTR pcwszExtension,
|
|
[out] IFilter **ppFilter);
|
|
|
|
};
|
|
|
|
|
|
#pragma pack()
|
|
|