/* * COM interfaces for shell objects * * Copyright (C) 2004 Maxime Bellengé * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ import "objidl.idl"; import "oleidl.idl"; import "oaidl.idl"; import "shtypes.idl"; import "servprov.idl"; import "comcat.idl"; #include /***************************************************************************** * IAutoComplete interface */ [ object, uuid(00bb2762-6a77-11d0-a535-00c04fd7d062), pointer_default(unique) ] interface IAutoComplete : IUnknown { typedef IAutoComplete *LPAUTOCOMPLETE; HRESULT Init( [in] HWND hwndEdit, [in] IUnknown *punkACL, [in] LPCOLESTR pwszRegKeyPath, [in] LPCOLESTR pwszQuickComplete); HRESULT Enable( [in] BOOL fEnable ); } /***************************************************************************** * IAutoComplete2 interface */ [ object, uuid(eac04bc0-3791-11d2-bb95-0060977b464c), pointer_default(unique) ] interface IAutoComplete2 : IAutoComplete { typedef IAutoComplete2 *LPAUTOCOMPLETE2; typedef enum _tagAUTOCOMPLETEOPTIONS { ACO_NONE = 0x00, /* No AutoComplete */ ACO_AUTOSUGGEST = 0x01, /* enable autosuggest dropdown */ ACO_AUTOAPPEND = 0x02, /* enable autoappend */ ACO_SEARCH = 0x04, /* add search entry to completion list */ ACO_FILTERPREFIXES = 0x08, /* don't match common prefixes (www., http://, etc) */ ACO_USETAB = 0x10, /* use tab to select autosuggest entries */ ACO_UPDOWNKEYDROPSLIST = 0x20, /* up/down arrow key invokes autosuggest dropdown (if enabled) */ ACO_RTLREADING = 0x40, /* enable RTL reading order for dropdown */ } AUTOCOMPLETEOPTIONS; HRESULT SetOptions( [in] DWORD dwFlag); HRESULT GetOptions( [out] DWORD *pdwFlag); } [ object, uuid(9ba05970-f6a8-11cf-a442-00a0c90a8f39), pointer_default(unique) ] interface IFolderViewOC : IDispatch { HRESULT SetFolderView( [in] IDispatch *pdisp ); } [ uuid(62112aa2-ebe4-11cf-a5fb-0020afe7292d) ] dispinterface DShellFolderViewEvents { properties: methods: [id(DISPID_SELECTIONCHANGED)] void SelectionChanged(); [id(DISPID_FILELISTENUMDONE)] void EnumDone(); [id(DISPID_VERBINVOKED)] VARIANT_BOOL VerbInvoked(); [id(DISPID_DEFAULTVERBINVOKED)] VARIANT_BOOL DefaultVerbInvoked(); [id(DISPID_BEGINDRAG)] VARIANT_BOOL BeginDrag(); } [ uuid(9ba05971-f6a8-11cf-a442-00a0c90a8f39), hidden ] coclass ShellFolderViewOC { [default] interface IFolderViewOC; [default, source] dispinterface DShellFolderViewEvents; } /***************************************************************************** * IAsyncOperation interface */ [ uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4), object, ] interface IAsyncOperation : IUnknown { typedef [unique] IAsyncOperation *LPASYNCOPERATION; HRESULT SetAsyncMode([in] BOOL fDoOpAsync); HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync); HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved); HRESULT InOperation([out] BOOL *pfInAsyncOp); HRESULT EndOperation( [in] HRESULT hResult, [in, unique] IBindCtx *pbcReserved, [in] DWORD dwEffects); }