//+---------------------------------------------------------------------------- // defines SearchFolder data structure //+---------------------------------------------------------------------------- typedef struct tagSearchFolder { BSTR bstrDisplayName; // Display name of this folder ex: "foo" BSTR bstrPhysicalURL; // physical url ex: "mail://localhost/bar/blat/foo/" BSTR bstrTooltipText; // Text to display in a folder picker dialog DWORD dwAttributes; // SFGAOF flags } DesktopSearchFolder; //+---------------------------------------------------------------------------- // // Interface: IEnumSearchFolder // // this defines an interface to return SearchFolder objects // //+---------------------------------------------------------------------------- [ object, uuid(9C590DA1-8109-43cf-A2AF-2DB94A0EAF62), pointer_default(unique) ] interface IEnumSearchFolder : IUnknown { typedef [unique] IEnumSearchFolder *LPENUMFOLDERENTRY; HRESULT Next([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] DesktopSearchFolder *rgelt, [out] ULONG *pceltFetched); HRESULT Skip([in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IEnumSearchFolder **ppenum); } //+---------------------------------------------------------------------------- // // Interface: ISearchProtocolOptions // // Comment: Defines information for a PH to interact with options page // //+---------------------------------------------------------------------------- cpp_quote("#define PRTH_E_NO_APPLICATION ((DWORD)PRTH_E_ACL_TOO_BIG+1)") cpp_quote("#define PRTH_E_MIN_VERSION ((DWORD)PRTH_E_ACL_TOO_BIG+2)") cpp_quote("#define PRTH_E_NOT_CONFIGURED ((DWORD)PRTH_E_ACL_TOO_BIG+3)") [ object, local, uuid(3C158646-6AA0-4a43-B4F6-2419E05A7B4B), helpstring("ISearchProtocolOptions interface"), pointer_default(unique) ] interface ISearchProtocolOptions : IUnknown { // // return user-friendly localized description of requirements for this protocol handler // example: "Microsoft Outlook 2000 or greater" // [helpstring("method GetRequirements")] HRESULT GetRequirements([out, retval] BSTR *pbstrDescription); // return if the requirements for using the protocol handler are met. // this allows a options UI to blank out protocols which are not appropraite based // on whatever resource the protocol handler needs // return values: // S_OK == everything OK // PRTH_E_NO_APPLICATION = application is not installed // PRTH_E_MIN_VERSION = version is earlier then minimum // [helpstring("method CheckRequirements")] HRESULT CheckRequirements(); // // EnumSearchFolder // // Enumerates the sub-folders off of the current item // NOT USED YET HRESULT EnumSearchFolder([in,string] LPCOLESTR pwszUrl, [out,retval]IEnumSearchFolder **ppEnumSearchFolder); HRESULT GetDefaultCrawlScope([in]ISearchCrawlScopeManager *pCrawlScopeManager); }