|
|
//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992-1997. // // File: shlobj.idl // //----------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------") cpp_quote("//") cpp_quote("// Microsoft Windows") cpp_quote("// Copyright (C) Microsoft Corporation, 1992-1997.") cpp_quote("//") cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 800 )") cpp_quote("#pragma warning(disable:4201)") cpp_quote("#endif")
#ifndef DO_NO_IMPORTS import "objidl.idl"; import "oleidl.idl"; import "commctrl.idl"; import "prsht.idl"; #endif
interface IContextMenu; interface IEnumIDList; interface IPersistFolder; interface IPersistFolder2; interface IShellBrowser; interface IShellExtInit; interface IShellFolder; interface IShellView; interface IExtractIconA; interface IExtractIconW; interface IQueryInfo; interface IExplorerToolbar; interface IShellDetails;
typedef struct _CMINVOKECOMMANDINFO { DWORD cbSize; // sizeof(CMINVOKECOMMANDINFO) DWORD fMask; // any combination of CMIC_MASK_* HWND hwnd; // might be NULL (indicating no owner window) LPCSTR lpVerb; // either a string or MAKEINTRESOURCE(idOffset) LPCSTR lpParameters; // might be NULL (indicating no parameter) LPCSTR lpDirectory; // might be NULL (indicating no specific directory) int nShow; // one of SW_ values for ShowWindow() API
DWORD dwHotKey; HANDLE hIcon; } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO;
// // SHITEMID -- Item ID // typedef struct _SHITEMID // mkid { USHORT cb; // Size of the ID (including cb itself) BYTE abID[1]; // The item ID (variable length) } SHITEMID; typedef SHITEMID *LPSHITEMID; typedef const SHITEMID *LPCSHITEMID;
// // ITEMIDLIST -- List if item IDs (combined with 0-terminator) // typedef struct _ITEMIDLIST // idl { SHITEMID mkid; } ITEMIDLIST; typedef ITEMIDLIST * LPITEMIDLIST; typedef const ITEMIDLIST * LPCITEMIDLIST;
#define MAX_PATH 260
typedef struct _STRRET { UINT uType; // One of the STRRET_* values union { LPWSTR pOleStr; // must be freed by caller of GetDisplayNameOf LPSTR pStr; // NOT USED UINT uOffset; // Offset into SHITEMID char cStr[MAX_PATH]; // Buffer to fill in (ANSI) } DUMMYUNIONNAME; } STRRET, *LPSTRRET;
typedef struct { UINT ViewMode; // View mode (FOLDERVIEWMODE values) UINT fFlags; // View options (FOLDERFLAGS bits) } FOLDERSETTINGS, *LPFOLDERSETTINGS;
typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS;
typedef struct _TBBUTTON { int iBitmap; int idCommand; BYTE fsState; BYTE fsStyle; #ifdef _WIN32 BYTE bReserved[2]; #endif DWORD dwData; int iString; } TBBUTTON, *PTBBUTTON, *LPTBBUTTON; typedef const TBBUTTON* LPCTBBUTTON;
//+--------------------------------------------------------------------------- // IContextMenu - // [ local, object, uuid(000214E4-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IContextMenu : IUnknown { HRESULT QueryContextMenu( HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
HRESULT InvokeCommand( LPCMINVOKECOMMANDINFO lpici);
HRESULT GetCommandString( UINT idCmd, UINT uType, UINT* pwReserved, LPSTR pszName, UINT cchMax);
};
//+--------------------------------------------------------------------------- // IEnumIDList - // [ local, object, uuid(000214F2-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IEnumIDList : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST* rgelt, [out] ULONG* pceltFetched);
HRESULT Skip( [in] ULONG celt);
HRESULT Reset();
HRESULT Clone( [out] IEnumIDList** ppenum); };
//+--------------------------------------------------------------------------- // IPersistFolder - // [ local, object, uuid(000214EA-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IPersistFolder : IPersist { HRESULT Initialize( [in] LPCITEMIDLIST pidl); };
//+--------------------------------------------------------------------------- // IPersistFolder2 - // [ local, object, uuid(1AC3D9F0-175C-11d1-95BE-00609797EA4F), pointer_default(unique) ] interface IPersistFolder2 : IPersistFolder { HRESULT GetCurFolder( [out] LPITEMIDLIST *ppidl); };
//+--------------------------------------------------------------------------- // IShellExtInit - // [ local, object, uuid(000214E8-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IShellExtInit : IUnknown { HRESULT Initialize( [in] LPCITEMIDLIST pidl, [in] LPDATAOBJECT pdobj, [in] HKEY hkeyProgID); };
//+--------------------------------------------------------------------------- // IShellBrowser - // [ local, object, uuid(000214E2-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IShellBrowser : IOleWindow { HRESULT InsertMenusSB( HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths);
HRESULT SetMenuSB( HMENU hmenuShared, HOLEMENU holemenuReserved, HWND hwndActiveObject);
HRESULT RemoveMenusSB( HMENU hmenuShared);
HRESULT SetStatusTextSB( LPCOLESTR lpszStatusText);
HRESULT EnableModelessSB( BOOL fEnable);
HRESULT TranslateAcceleratorSB( LPMSG lpmsg, WORD wID);
HRESULT BrowseObject ( LPCITEMIDLIST pidl, UINT wFlags);
HRESULT GetViewStateStream( DWORD grfMode, LPSTREAM* ppStrm);
HRESULT GetControlWindow( UINT id, HWND* lphwnd);
HRESULT SendControlMsg( UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* pret);
HRESULT QueryActiveShellView( IShellView** ppshv);
HRESULT OnViewWindowActive( IShellView* ppshv);
HRESULT SetToolbarItems( LPTBBUTTON lpButtons, UINT nButtons, UINT uFlags); };
//+--------------------------------------------------------------------------- // IShellFolder - // [ local, object, uuid(000214E6-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IShellFolder : IUnknown { HRESULT ParseDisplayName( HWND hwndOwner, LPBC pbcReserved, LPOLESTR lpszDisplayName, ULONG* pchEaten, LPITEMIDLIST* ppidl, ULONG* pdwAttributes);
HRESULT EnumObjects( HWND hwndOwner, DWORD grfFlags, IEnumIDList** ppenumIDList);
HRESULT BindToObject( LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID* ppvOut);
HRESULT BindToStorage( LPCITEMIDLIST pidl, LPBC pbcReserved, REFIID riid, LPVOID* ppvObj);
HRESULT CompareIDs( LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2);
HRESULT CreateViewObject( HWND hwndOwner, REFIID riid, LPVOID* ppvOut);
HRESULT GetAttributesOf( UINT cidl, LPCITEMIDLIST* apidl, ULONG* rgfInOut);
HRESULT GetUIObjectOf( HWND hwndOwner, UINT cidl, LPCITEMIDLIST* apidl, REFIID riid, UINT* prgfInOut, LPVOID* ppvOut);
HRESULT GetDisplayNameOf( LPCITEMIDLIST pidl, DWORD uFlags, LPSTRRET lpName);
HRESULT SetNameOf( HWND hwndOwner, LPCITEMIDLIST pidl, LPCOLESTR lpszName, DWORD uFlags, LPITEMIDLIST* ppidlOut); };
//+--------------------------------------------------------------------------- // IShellView - // [ local, object, uuid(000214E3-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IShellView : IOleWindow { HRESULT TranslateAccelerator( LPMSG lpmsg);
HRESULT EnableModeless( BOOL fEnable);
HRESULT UIActivate( UINT uState);
HRESULT Refresh();
HRESULT CreateViewWindow( IShellView* lpPrevView, LPCFOLDERSETTINGS lpfs, IShellBrowser* psb, RECT* prcView, HWND* phWnd);
HRESULT DestroyViewWindow();
HRESULT GetCurrentInfo( LPFOLDERSETTINGS lpfs);
HRESULT AddPropertySheetPages( DWORD dwReserved, LPFNADDPROPSHEETPAGE lpfn, LPARAM lparam);
HRESULT SaveViewState();
HRESULT SelectItem( LPCITEMIDLIST pidlItem, UINT uFlags);
HRESULT GetItemObject( UINT uItem, REFIID riid, LPVOID* ppv); };
//+--------------------------------------------------------------------------- // IExtractIconW - // [ local, object, uuid(000214FA-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IExtractIconW : IUnknown { HRESULT GetIconLocation( UINT uFlags, LPWSTR szIconFile, UINT cchMax, int * piIndex, UINT * pwFlags);
HRESULT Extract( LPCWSTR pszFile, UINT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIconSize); };
//+--------------------------------------------------------------------------- // IExtractIconA - // [ local, object, uuid(000214EB-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IExtractIconA : IUnknown { HRESULT GetIconLocation( UINT uFlags, LPWSTR szIconFile, UINT cchMax, int * piIndex, UINT * pwFlags);
HRESULT Extract( LPCWSTR pszFile, UINT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIconSize); };
//+--------------------------------------------------------------------------- // IQueryInfo - // [ local, object, uuid(00021500-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IQueryInfo : IUnknown { HRESULT GetInfoTip( DWORD dwFlags, WCHAR ** ppwszTip); HRESULT GetInfoFlags( DWORD * pdwFlags); };
//+--------------------------------------------------------------------------- // IOleCommandTarget - // // [ // local, // object, // uuid(b722bccb-4e68-101b-a2bc-00aa00404770), // pointer_default(unique) // ] // interface IOleCommandTarget : IUnknown // { // HRESULT QueryStatus( // const GUID * pguidCmdGroup, // ULONG cCmds, // OLECMD prgCmds[], // OLECMDTEXT * pCmdText); // // HRESULT Exec( // const GUID * pguidCmdGroup, // DWORD nCmdID, // DWORD nCmdexecopt, // VARIANTARG * pvaIn, // VARIANTARG * pvaOut); // };
typedef struct tagTBADDBITMAP { HINSTANCE hInst; UINT nID; } TBADDBITMAP, *LPTBADDBITMAP;
//+--------------------------------------------------------------------------- // IExplorerToolbar - // [ local, object, uuid(8455F0C1-158F-11D0-89AE-00A0C90A90AC), pointer_default(unique) ] interface IExplorerToolbar : IUnknown { // *** IExplorerToolbar methods *** HRESULT SetCommandTarget( IUnknown * punkCmdTarget, const GUID * pguidCmdGrp, DWORD dwFlags); HRESULT AddStdBrowserButtons();
HRESULT AddButtons( const GUID * pguidButtonGroup, UINT nButtons, const TBBUTTON * lpButtons); HRESULT AddString( const GUID * pguidButtonGroup, HINSTANCE hInst, UINT uiResID, LRESULT * pOffset); HRESULT GetButton( const GUID * pguidButtonGroup, UINT uiCommand, LPTBBUTTON lpButton); HRESULT GetState( const GUID * pguidButtonGroup, UINT uiCommand, UINT * pfState); HRESULT SetState( const GUID * pguidButtonGroup, UINT uiCommand, UINT fState); HRESULT AddBitmap( const GUID * pguidButtonGroup, UINT uiBMPType, UINT uiCount, TBADDBITMAP * ptb, LRESULT * pOffset, COLORREF rgbMask); HRESULT GetBitmapSize( UINT * uiID); HRESULT SendToolbarMsg( const GUID * pguidButtonGroup, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT * plRes);
HRESULT SetImageList( const GUID* pguidCmdGroup, HIMAGELIST himlNormal, HIMAGELIST himlHot, HIMAGELIST himlDisabled); HRESULT ModifyButton( const GUID * pguidButtonGroup, UINT uiCommand, LPTBBUTTON lpButton); };
//=========================================================================== // Defview related API and interface // // Notes: At this point, we have no plan to publish this mechanism. //===========================================================================
typedef struct _SHELLDETAILS { int fmt; // LVCFMT_* value (header only) int cxChar; // Number of "average" characters (header only) STRRET str; // String information } SHELLDETAILS, *LPSHELLDETAILS;
//+--------------------------------------------------------------------------- // IShellDetails // [ local, object, uuid(000214EC-0000-0000-0000-C00000000046), pointer_default(unique) ] interface IShellDetails : IUnknown { // *** IShellDetails methods *** HRESULT GetDetailsOf( LPCITEMIDLIST pidl, UINT iColumn, LPSHELLDETAILS pDetails); HRESULT ColumnClick( UINT iColumn); };
|