[PATCH 3/8] include: Add INameSpaceTreeControl, INameSpaceTreeControl2 and INameSpaceTreeControlEvents interface declarations.

David Hedberg david.hedberg at gmail.com
Tue Jul 20 09:39:08 CDT 2010


---
 include/shobjidl.idl |  293 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 293 insertions(+), 0 deletions(-)

diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index 288e62c..eb472de 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -1903,3 +1903,296 @@ interface IExplorerBrowser : IUnknown
         [in] REFIID riid,
         [out, iid_is(riid)] void **ppv);
 }
+
+/*****************************************************************************
+ * INameSpaceTreeControl interface
+ */
+[
+ object,
+ uuid(028212A3-B627-47E9-8856-C14265554E4F)
+]
+interface INameSpaceTreeControl : IUnknown
+{
+    [v1_enum] enum _NSTCSTYLE {
+        NSTCS_HASEXPANDOS                 = 0x00000001,
+        NSTCS_HASLINES                    = 0x00000002,
+        NSTCS_SINGLECLICKEXPAND           = 0x00000004,
+        NSTCS_FULLROWSELECT               = 0x00000008,
+        NSTCS_SPRINGEXPAND                = 0x00000010,
+        NSTCS_HORIZONTALSCROLL            = 0x00000020,
+        NSTCS_ROOTHASEXPANDO              = 0x00000040,
+        NSTCS_SHOWSELECTIONALWAYS         = 0x00000080,
+        NSTCS_NOINFOTIP                   = 0x00000200,
+        NSTCS_EVENHEIGHT                  = 0x00000400,
+        NSTCS_NOREPLACEOPEN               = 0x00000800,
+        NSTCS_DISABLEDRAGDROP             = 0x00001000,
+        NSTCS_NOORDERSTREAM               = 0x00002000,
+        NSTCS_RICHTOOLTIP                 = 0x00004000,
+        NSTCS_BORDER                      = 0x00008000,
+        NSTCS_NOEDITLABELS                = 0x00010000,
+        NSTCS_TABSTOP                     = 0x00020000,
+        NSTCS_FAVORITESMODE               = 0x00080000,
+        NSTCS_AUTOHSCROLL                 = 0x00100000,
+        NSTCS_FADEINOUTEXPANDOS           = 0x00200000,
+        NSTCS_EMPTYTEXT                   = 0x00400000,
+        NSTCS_CHECKBOXES                  = 0x00800000,
+        NSTCS_PARTIALCHECKBOXES           = 0x01000000,
+        NSTCS_EXCLUSIONCHECKBOXES         = 0x02000000,
+        NSTCS_DIMMEDCHECKBOXES            = 0x04000000,
+        NSTCS_NOINDENTCHECKS              = 0x08000000,
+        NSTCS_ALLOWJUNCTIONS              = 0x10000000,
+        NSTCS_SHOWTABSBUTTON              = 0x20000000,
+        NSTCS_SHOWDELETEBUTTON            = 0x40000000,
+        NSTCS_SHOWREFRESHBUTTON      = (int)0x80000000
+    };
+    typedef DWORD NSTCSTYLE;
+
+    [v1_enum] enum _NSTCROOTSTYLE {
+        NSTCRS_VISIBLE                    = 0x0000,
+        NSTCRS_HIDDEN                     = 0x0001,
+        NSTCRS_EXPANDED                   = 0x0002
+    };
+    typedef DWORD NSTCROOTSTYLE;
+
+    [v1_enum] enum _NSTCITEMSTATE {
+        NSTCIS_NONE                       = 0x0000,
+        NSTCIS_SELECTED                   = 0x0001,
+        NSTCIS_EXPANDED                   = 0x0002,
+        NSTCIS_BOLD                       = 0x0004,
+        NSTCIS_DISABLED                   = 0x0008,
+        NSTCIS_SELECTEDNOEXPAND           = 0x0010
+    };
+    typedef DWORD NSTCITEMSTATE;
+
+    typedef [v1_enum] enum NSTCGNI {
+        NSTCGNI_NEXT                      = 0,
+        NSTCGNI_NEXTVISIBLE               = 1,
+        NSTCGNI_PREV                      = 2,
+        NSTCGNI_PREVVISIBLE               = 3,
+        NSTCGNI_PARENT                    = 4,
+        NSTCGNI_CHILD                     = 5,
+        NSTCGNI_FIRSTVISIBLE              = 6,
+        NSTCGNI_LASTVISIBLE               = 7
+    } NSTCGNI;
+
+    HRESULT Initialize(
+        [in] HWND hwndParent,
+        [in, unique] RECT *prc,
+        [in] NSTCSTYLE nstcsFlags);
+
+    HRESULT TreeAdvise(
+        [in] IUnknown *punk,
+        [out] DWORD *pdwCookie);
+
+    HRESULT TreeUnadvise(
+        [in] DWORD dwCookie);
+
+    HRESULT AppendRoot(
+        [in] IShellItem *psiRoot,
+        [in] SHCONTF grfEnumFlags,
+        [in] NSTCROOTSTYLE grfRootStyle,
+        [in, unique] IShellItemFilter *pif);
+
+    HRESULT InsertRoot(
+        [in] int iIndex,
+        [in] IShellItem *psiRoot,
+        [in] SHCONTF grfEnumFlags,
+        [in] NSTCROOTSTYLE grfRootStyle,
+        [in, unique] IShellItemFilter *pif);
+
+    HRESULT RemoveRoot(
+        [in] IShellItem *psiRoot);
+
+    HRESULT RemoveAllRoots();
+
+    HRESULT GetRootItems(
+        [out] IShellItemArray **ppsiaRootItems);
+
+    HRESULT SetItemState(
+        [in] IShellItem *psi,
+        [in] NSTCITEMSTATE nstcisMask,
+        [in] NSTCITEMSTATE nstcisFlags);
+
+    HRESULT GetItemState(
+        [in] IShellItem *psi,
+        [in] NSTCITEMSTATE nstcismask,
+        [out] NSTCITEMSTATE *pnstcisFlags);
+
+    HRESULT GetSelectedItems(
+        [out] IShellItemArray **psiaItems);
+
+    HRESULT GetItemCustomState(
+        [in] IShellItem *psi,
+        [out] int *piStateNumber);
+
+    HRESULT SetItemCustomState(
+        [in] IShellItem *psi,
+        [in] int iStateNumber);
+
+    HRESULT EnsureItemVisible(
+        [in] IShellItem *psi);
+
+    HRESULT SetTheme(
+        [in, string] LPCWSTR pszTheme);
+
+    HRESULT GetNextItem(
+        [in, unique] IShellItem *psi,
+        [in] NSTCGNI nstcgi,
+        [out] IShellItem **ppsiNext);
+
+    HRESULT HitTest(
+        [in] POINT *ppt,
+        [out] IShellItem **ppsiOut);
+
+    HRESULT GetItemRect(
+        [in] IShellItem *psi,
+        [out] RECT *prect);
+
+    HRESULT CollapseAll();
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControl2 interface
+ */
+[
+ object,
+ uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C)
+]
+interface INameSpaceTreeControl2 : INameSpaceTreeControl
+{
+    typedef [v1_enum] enum NSTCSTYLE2 {
+        NSTCS2_DEFAULT                     = 0x00,
+        NSTCS2_INTERRUPTNOTIFICATIONS      = 0x01,
+        NSTCS2_SHOWNULLSPACEMENU           = 0x02,
+        NSTCS2_DISPLAYPADDING              = 0x04,
+        NSTCS2_DISPLAYPINNEDONLY           = 0x08,
+        NTSCS2_NOSINGLETONAUTOEXPAND       = 0x10,  /* The apparent typo here is   */
+        NTSCS2_NEVERINSERTNONENUMERATED    = 0x20   /* present also in the Win SDK */
+    } NSTCSTYLE2;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)")
+
+    HRESULT SetControlStyle(
+        [in] NSTCSTYLE nstcsMask,
+        [in] NSTCSTYLE nstcsStyle);
+
+    HRESULT GetControlStyle(
+        [in] NSTCSTYLE nstcsMask,
+        [out] NSTCSTYLE *pnstcsStyle);
+
+    HRESULT SetControlStyle2(
+        [in] NSTCSTYLE2 nstcsMask,
+        [in] NSTCSTYLE2 nstcsStyle);
+
+    HRESULT GetControlStyle2(
+        [in] NSTCSTYLE2 nstcsMask,
+        [out] NSTCSTYLE2 *pnstcsStyle);
+}
+
+/*****************************************************************************
+ * INameSpaceTreeControlEvents interface
+ */
+
+[
+ object,
+ uuid(93D77985-B3D8-4484-8318-672CDDA002CE),
+ local
+]
+interface INameSpaceTreeControlEvents : IUnknown
+{
+    [v1_enum] enum _NSTCEHITTEST {
+        NSTCEHT_NOWHERE                    = 0x0001,
+        NSTCEHT_ONITEMICON                 = 0x0002,
+        NSTCEHT_ONITEMLABEL                = 0x0004,
+        NSTCEHT_ONITEMIDENT                = 0x0008,
+        NSTCEHT_ONITEMBUTTON               = 0x0010,
+        NSTCEHT_ONITEMRIGHT                = 0x0020,
+        NSTCEHT_ONITEMSTATEICON            = 0x0040,
+        NSTCEHT_ONITEM                     = 0x0046,
+        NSTCEHT_ONITEMTABBUTTON            = 0x1000
+    };
+    typedef DWORD NSTCEHITTEST;
+
+    [v1_enum] enum _NSTCECLICKTYPE {
+        NSTCECT_LBUTTON                    = 0x1,
+        NSTCECT_MBUTTON                    = 0x2,
+        NSTCECT_RBUTTON                    = 0x3,
+        NSTCECT_BUTTON                     = 0x3,
+        NSTCECT_DBLCLICK                   = 0x4
+    };
+    typedef DWORD NSTCECLICKTYPE;
+
+    HRESULT OnItemClick(
+        [in] IShellItem *psi,
+        [in] NSTCEHITTEST nstceHitTest,
+        [in] NSTCECLICKTYPE nstceClickType);
+
+    HRESULT OnPropertyItemCommit(
+        [in] IShellItem *psi);
+
+    HRESULT OnItemStateChanging(
+        [in] IShellItem *psi,
+        [in] NSTCITEMSTATE nstcisMask,
+        [in] NSTCITEMSTATE nstcisState);
+
+    HRESULT OnItemStateChanged(
+        [in] IShellItem *psi,
+        [in] NSTCITEMSTATE nstcisMask,
+        [in] NSTCITEMSTATE nstcisState);
+
+    HRESULT OnSelectionChanged(
+        [in] IShellItemArray *psiaSelection);
+
+    HRESULT OnKeyboardInput(
+        [in] UINT uMsg,
+        [in] WPARAM wParam,
+        [in] LPARAM lParam);
+
+    HRESULT OnBeforeExpand(
+        [in] IShellItem *psi);
+
+    HRESULT OnAfterExpand(
+        [in] IShellItem *psi);
+
+    HRESULT OnBeginLabelEdit(
+        [in] IShellItem *psi);
+
+    HRESULT OnEndLabelEdit(
+        [in] IShellItem *psi);
+
+    HRESULT OnGetToolTip(
+        [in] IShellItem *psi,
+        [out, string, size_is(cchTip), annotation("__out_ecount(cchTip)")] LPWSTR pszTip,
+        [in] int cchTip);
+
+    HRESULT OnBeforeItemDelete(
+        [in] IShellItem *psi);
+
+    HRESULT OnItemAdded(
+        [in] IShellItem *psi,
+        [in] BOOL fIsRoot);
+
+    HRESULT OnItemDeleted(
+        [in] IShellItem *psi,
+        [in] BOOL fIsRoot);
+
+    HRESULT OnBeforeContextMenu(
+        [in, unique, annotation("__in_opt")] IShellItem *psi,
+        [in] REFIID riid,
+        [out, iid_is(riid), annotation("__deref_out")] void **ppv);
+
+    HRESULT OnAfterContextMenu(
+        [in, annotation("__in_opt")] IShellItem *psi,
+        [in] IContextMenu *pcmIn,
+        [in] REFIID riid,
+        [out, iid_is(riid), annotation("__deref_out")] void **ppv);
+
+    HRESULT OnBeforeStateImageChange(
+        [in] IShellItem *psi,
+        [out] int *piDefaultIcon,
+        [out] int *piOpenIcon);
+
+    HRESULT OnGetDefaultIconIndex(
+        [in] IShellItem *psi,
+        [out] int *piDefaultIcon,
+        [out] int *piOpenIcon);
+}
-- 
1.7.1.1




More information about the wine-patches mailing list