blob: 07c3059221cfdba7f6f6af9549cd2ece6358abed [file] [log] [blame]
/*
* 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 <shdispid.h>
/*****************************************************************************
* 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);
}