From 7c46bc1d7a3ad9fa17d439500e41975f09abf80c Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Thu, 1 May 2008 09:39:37 +0000 Subject: [PATCH] - Add IShellView2 and IShellView3 COM interfaces - Add IBandSite interface - Add COM object typedefs and #defines to shtypes.idl svn path=/trunk/; revision=33207 --- reactos/base/shell/explorer-new/todo.h | 140 --------------------- reactos/include/psdk/shlobj.h | 1 - reactos/include/psdk/shobjidl.idl | 168 ++++++++++++++++++++++++- reactos/include/psdk/shtypes.idl | 56 ++++++++- reactos/lib/sdk/uuid/uuid.c | 1 - 5 files changed, 219 insertions(+), 147 deletions(-) diff --git a/reactos/base/shell/explorer-new/todo.h b/reactos/base/shell/explorer-new/todo.h index 76a5957b9de..d82ac840a1f 100644 --- a/reactos/base/shell/explorer-new/todo.h +++ b/reactos/base/shell/explorer-new/todo.h @@ -46,145 +46,6 @@ static const GUID SID_HACK_SMenuPopup = {0xD1E7AFEB,0x6A2E,0x11D0,{0x8C,0x78,0x0 #define IDeskBarClient_GetSize(T,a,b) (T)->lpVtbl->GetSize(T,a,b) #endif -#include -typedef struct -{ - DWORD dwMask; - DWORD dwState; - DWORD dwStyle; -} BANDSITEINFO; -#include - -#define BSIM_STATE 0x1 -#define BSIM_STYLE 0x2 - -#define BSIS_AUTOGRIPPER 0x0 -#define BSIS_NOGRIPPER 0x1 -#define BSIS_ALWAYSGRIPPER 0x2 -#define BSIS_LOCKED 0x100 - -#define BSSF_UNDELETEABLE 0x1000 - -DEFINE_GUID(IID_IBandSite, 0x4CF504B0, 0xDE96, 0x11D0, 0x8B, 0x3F, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xE5); - -#define INTERFACE IBandSite -DECLARE_INTERFACE_(IBandSite,IUnknown) -{ - /*** IUnknown methods ***/ - STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - /*** IBandSite methods ***/ - STDMETHOD_(HRESULT,AddBand) (THIS_ IUnknown *punk) PURE; - STDMETHOD_(HRESULT,EnumBands) (THIS_ UINT uBand, DWORD *pdwBandID) PURE; - STDMETHOD_(HRESULT,QueryBand) (THIS_ DWORD dwBandID, IDeskBand **ppstb, DWORD *pdwState, LPWSTR pszName, int cchName) PURE; - STDMETHOD_(HRESULT,SetBandState) (THIS_ DWORD dwBandID, DWORD dwMask, DWORD dwState) PURE; - STDMETHOD_(HRESULT,RemoveBand) (THIS_ DWORD dwBandID) PURE; - STDMETHOD_(HRESULT,GetBandObject) (THIS_ DWORD dwBandID, REFIID riid, VOID **ppv) PURE; - STDMETHOD_(HRESULT,SetBandSiteInfo) (THIS_ const BANDSITEINFO *pbsinfo) PURE; - STDMETHOD_(HRESULT,GetBandSiteInfo) (THIS_ BANDSITEINFO *pbsinfo) PURE; -}; -#undef INTERFACE - -#if defined(COBJMACROS) -/*** IUnknown methods ***/ -#define IBandSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) -#define IBandSite_AddRef(p) (p)->lpVtbl->AddRef(p) -#define IBandSite_Release(p) (p)->lpVtbl->Release(p) -/*** IBandSite methods ***/ -#define IBandSite_AddBand(p,a) (p)->lpVtbl->AddBand(p,a) -#define IBandSite_EnumBands(p,a,b) (p)->lpVtbl->EnumBands(p,a,b) -#define IBandSite_QueryBand(p,a,b,c,d,e) (p)->lpVtbl->QueryBand(p,a,b,c,d,e) -#define IBandSite_SetBandState(p,a,b,c) (p)->lpVtbl->SetBandState(p,a,b,c) -#define IBandSite_RemoveBand(p,a) (p)->lpVtbl->RemoveBand(p,a) -#define IBandSite_GetBandObject(p,a,b,c) (p)->lpVtbl->GetBandObject(p,a,b,c) -#define IBandSite_SetBandSiteInfo(p,a) (p)->lpVtbl->SetBandSiteInfo(p,a) -#define IBandSite_GetBandSiteInfo(p,a) (p)->lpVtbl->GetBandSiteInfo(p,a) -#endif - -#include -typedef struct _SV2CVW2_PARAMS -{ - DWORD cbSize; - IShellView *psvPrev; - LPCFOLDERSETTINGS pfs; - IShellBrowser *psbOwner; - RECT *prcView; - SHELLVIEWID const *pvid; - HWND hwndView; -} SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS; -#include - -typedef ITEMIDLIST ITEMID_CHILD; -#define PITEMID_CHILD LPITEMIDLIST -typedef const ITEMID_CHILD /* __unaligned */ *PCUITEMID_CHILD; - -enum tagSV3CVW3 -{ - SV3CVW3_DEFAULT = 0x0, - SV3CVW3_NONINTERACTIVE = 0x1, - SV3CVW3_FORCEVIEWMODE = 0x2, - SV3CVW3_FORCEFOLDERFLAGS = 0x4 -} ; -typedef DWORD SV3CVW3_FLAGS; -#define INTERFACE IShellView3 -DECLARE_INTERFACE_(IShellView3,IShellView) -{ - - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE; -#ifdef _FIX_ENABLEMODELESS_CONFLICT - STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; -#else - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -#endif - STDMETHOD(UIActivate)(THIS_ UINT) PURE; - STDMETHOD(Refresh) (THIS) PURE; - STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; - STDMETHOD(DestroyViewWindow)(THIS) PURE; - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(SaveViewState)(THIS) PURE; - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; - STDMETHOD(GetView)(THIS_ SHELLVIEWID*,ULONG) PURE; - STDMETHOD(CreateViewWindow2)(THIS_ LPSV2CVW2_PARAMS) PURE; - STDMETHOD(HandleRename)(THIS_ PCUITEMID_CHILD) PURE; - STDMETHOD(SelectAndPositionItem)(THIS_ PCUITEMID_CHILD,UINT,POINT*) PURE; - STDMETHOD(CreateViewWindow3)(THIS_ IShellBrowser*,IShellView*,SV3CVW3_FLAGS,FOLDERFLAGS,FOLDERFLAGS,FOLDERVIEWMODE,const SHELLVIEWID*,const RECT*,HWND*) PURE; -}; -#undef INTERFACE -#ifdef COBJMACROS -#define IShellView3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b) -#define IShellView3_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IShellView3_Release(T) (T)->lpVtbl->Release(T) -#define IShellView3_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a) -#define IShellView3_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a) -#define IShellView3_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a) -#ifdef _FIX_ENABLEMODELESS_CONFLICT -#define IShellView3_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a) -#else -#define IShellView3_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a) -#endif -#define IShellView3_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a) -#define IShellView3_Refresh(T) (T)->lpVtbl->Refresh(T) -#define IShellView3_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e) -#define IShellView3_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T) -#define IShellView3_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a) -#define IShellView3_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c) -#define IShellView3_SaveViewState(T) (T)->lpVtbl->SaveViewState(T) -#define IShellView3_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b) -#define IShellView3_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c) -#define IShellView3_GetView(T,a,b) (T)->lpVtbl->GetView(T,a,b) -#define IShellView3_CreateViewWindow2(T,a) (T)->lpVtbl->CreateViewWindow2(T,a) -#define IShellView3_HandleRename(T,a) (T)->lpVtbl->HandleRename(T,a) -#define IShellView3_SelectAndPositionItem(T,a,b,c) (T)->lpVtbl->SelectAndPositionItem(T,a,b,c) -#define IShellView3_CreateViewWindow3(T,a,b,c,d,e,f,g,h,i) (T)->lpVtbl->CreateViewWindow3(T,a,b,c,d,e,f,g,h,i) -#endif #define SHGVSPB_PERUSER 0x1 #define SHGVSPB_PERFOLDER 0x4 @@ -194,7 +55,6 @@ DECLARE_INTERFACE_(IShellView3,IShellView) #define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS) - #define DBC_SHOW 1 #define DBC_HIDE 0 diff --git a/reactos/include/psdk/shlobj.h b/reactos/include/psdk/shlobj.h index d131b611e5a..7bba6cba6ba 100644 --- a/reactos/include/psdk/shlobj.h +++ b/reactos/include/psdk/shlobj.h @@ -145,7 +145,6 @@ typedef struct * IShellView interface */ -typedef GUID SHELLVIEWID; #define SV_CLASS_NAME ("SHELLDLL_DefView") #define FCIDM_SHVIEWFIRST 0x0000 diff --git a/reactos/include/psdk/shobjidl.idl b/reactos/include/psdk/shobjidl.idl index b61975a9b39..f230a733ab8 100644 --- a/reactos/include/psdk/shobjidl.idl +++ b/reactos/include/psdk/shobjidl.idl @@ -388,7 +388,7 @@ typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; /***************************************************************************** * IShellView interface */ -interface IShellBrowser; /* forward declaration */ +interface IShellBrowser; [ object, uuid(000214e3-0000-0000-c000-000000000046), @@ -412,7 +412,7 @@ interface IShellView : IOleWindow typedef UINT SVSIF; - typedef enum + typedef enum tagSVGIO { SVGIO_BACKGROUND = 0x00000000, SVGIO_SELECTION = 0x00000001, @@ -422,7 +422,7 @@ interface IShellView : IOleWindow SVGIO_FLAG_VIEWORDER = 0x80000000, } SVGIO; - typedef enum + typedef enum tagSVUIA_STATUS { SVUIA_DEACTIVATE = 0, SVUIA_ACTIVATE_NOFOCUS = 1, @@ -460,6 +460,80 @@ interface IShellView : IOleWindow } +[ + uuid(88E39E80-3578-11CF-AE69-08002B2E1262), + object, + pointer_default(unique) +] +interface IShellView2 : IShellView +{ + typedef GUID SHELLVIEWID; + + cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)") + cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)") + + cpp_quote("#include ") + typedef struct _SV2CVW2_PARAMS + { + DWORD cbSize; + + IShellView *psvPrev; + LPCFOLDERSETTINGS pfs; + IShellBrowser *psbOwner; + RECT *prcView; + SHELLVIEWID const *pvid; + HWND hwndView; + + } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS; + + cpp_quote("#include ") + + HRESULT GetView( + [in, out] SHELLVIEWID* pvid, + [in] ULONG uView); + + HRESULT CreateViewWindow2( + [in] LPSV2CVW2_PARAMS lpParams); + + HRESULT HandleRename( + [in, unique] PCUITEMID_CHILD pidlNew); + + HRESULT SelectAndPositionItem( + [in] PCUITEMID_CHILD pidlItem, + [in] UINT uFlags, + [in, unique] POINT *ppt); +} + + +[ + uuid(ec39fa88-f8af-41c5-8421-38bed28f4673), + object, + pointer_default(unique) +] +interface IShellView3 : IShellView2 +{ + enum tagSV3CVW3 + { + SV3CVW3_DEFAULT = 0x00000000, + SV3CVW3_NONINTERACTIVE = 0x00000001, + SV3CVW3_FORCEVIEWMODE = 0x00000002, + SV3CVW3_FORCEFOLDERFLAGS = 0x00000004, + }; + typedef DWORD SV3CVW3_FLAGS; + + HRESULT CreateViewWindow3( + [in] IShellBrowser *psbOwner, + [in, unique] IShellView *psvPrev, + [in] SV3CVW3_FLAGS dwViewFlags, + [in] FOLDERFLAGS dwMask, + [in] FOLDERFLAGS dwFlags, + [in] FOLDERVIEWMODE fvMode, + [in, unique] const SHELLVIEWID *pvid, + [in] const RECT *prcView, + [out] HWND *phwndView); +} + + /***************************************************************************** * IShellBrowser interface */ @@ -1583,3 +1657,91 @@ interface IMenuPopup : IDeskBar } cpp_quote("#endif /* _WIN32_IE_IE60 */") + +cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)") + +/***************************************************************************** + * IBandSite interface + */ +cpp_quote("#include ") + +typedef struct tagBANDSITEINFO +{ + DWORD dwMask; + DWORD dwState; + DWORD dwStyle; +} BANDSITEINFO; + +cpp_quote("#include ") + + +enum tagBANDSITECID { + BSID_BANDADDED, + BSID_BANDREMOVED, +}; + +cpp_quote("#define BSIM_STATE 0x00000001") +cpp_quote("#define BSIM_STYLE 0x00000002") + +cpp_quote("#define BSSF_VISIBLE 0x00000001") +cpp_quote("#define BSSF_NOTITLE 0x00000002") +cpp_quote("#define BSSF_UNDELETEABLE 0x00001000") + +cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000") +cpp_quote("#define BSIS_NOGRIPPER 0x00000001") +cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002") +cpp_quote("#define BSIS_LEFTALIGN 0x00000004") +cpp_quote("#define BSIS_SINGLECLICK 0x00000008") +cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010") +cpp_quote("#define BSIS_NODROPTARGET 0x00000020") +cpp_quote("#define BSIS_NOCAPTION 0x00000040") +cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080") +cpp_quote("#define BSIS_LOCKED 0x00000100") +cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)") +cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200") +cpp_quote("#endif /* _WIN32_IE_IE70 */") + +cpp_quote("#define SID_SBandSite IID_IBandSite") +cpp_quote("#define CGID_BandSite IID_IBandSite") + +[ + object, + uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5) +] +interface IBandSite : IUnknown +{ + HRESULT AddBand([in] IUnknown* punk); + + HRESULT EnumBands( + [in] UINT uBand, + [out] DWORD* pdwBandID); + + HRESULT QueryBand( + [in] DWORD dwBandID, + [out] IDeskBand** ppstb, + [out] DWORD* pdwState, + [out, string, size_is(cchName)] LPWSTR pszName, + [in] int cchName); + + HRESULT SetBandState( + [in] DWORD dwBandID, + [in] DWORD dwMask, + [in] DWORD dwState); + + HRESULT RemoveBand([in] DWORD dwBandID); + + HRESULT GetBandObject( + [in] DWORD dwBandID, + [in] REFIID riid, + [out, iid_is(riid)] void **ppv); + + HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo); + + HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo); +} + +cpp_quote("#endif /* _WIN32_IE_IE40 */") + + + + diff --git a/reactos/include/psdk/shtypes.idl b/reactos/include/psdk/shtypes.idl index eb4cb57b944..56ce1465ffe 100644 --- a/reactos/include/psdk/shtypes.idl +++ b/reactos/include/psdk/shtypes.idl @@ -21,6 +21,8 @@ import "wtypes.idl"; + + cpp_quote("#include ") typedef struct { @@ -32,10 +34,60 @@ typedef const SHITEMID *LPCSHITEMID; typedef struct _ITEMIDLIST { SHITEMID mkid; /* first itemid in list */ -} ITEMIDLIST,*LPITEMIDLIST; -typedef const ITEMIDLIST *LPCITEMIDLIST; +} ITEMIDLIST; + +cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)") +cpp_quote("typedef struct _ITEMIDLIST_RELATIVE : ITEMIDLIST {} ITEMIDLIST_RELATIVE;") +cpp_quote("typedef struct _ITEMID_CHILD : ITEMIDLIST_RELATIVE {} ITEMID_CHILD;") +cpp_quote("typedef struct _ITEMIDLIST_ABSOLUTE : ITEMIDLIST_RELATIVE {} ITEMIDLIST_ABSOLUTE;") +cpp_quote("#else /* !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)) */") +typedef ITEMIDLIST ITEMIDLIST_RELATIVE; +typedef ITEMIDLIST ITEMID_CHILD; +typedef ITEMIDLIST ITEMIDLIST_ABSOLUTE; +cpp_quote("#endif /* defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus) */") + cpp_quote("#include ") +typedef [unique] BYTE_BLOB * wirePIDL; +typedef ITEMIDLIST /*__unaligned*/ * LPITEMIDLIST; +typedef const ITEMIDLIST /*__unaligned*/ * LPCITEMIDLIST; + +cpp_quote("#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)") +typedef ITEMIDLIST_ABSOLUTE * PIDLIST_ABSOLUTE; +typedef const ITEMIDLIST_ABSOLUTE * PCIDLIST_ABSOLUTE; +typedef const ITEMIDLIST_ABSOLUTE /*__unaligned*/ * PCUIDLIST_ABSOLUTE; +typedef ITEMIDLIST_RELATIVE * PIDLIST_RELATIVE; +typedef const ITEMIDLIST_RELATIVE * PCIDLIST_RELATIVE; +typedef ITEMIDLIST_RELATIVE /*__unaligned*/ * PUIDLIST_RELATIVE; +typedef const ITEMIDLIST_RELATIVE /*__unaligned*/ * PCUIDLIST_RELATIVE; +typedef ITEMID_CHILD * PITEMID_CHILD; +typedef const ITEMID_CHILD * PCITEMID_CHILD; +typedef ITEMID_CHILD /*__unaligned*/ * PUITEMID_CHILD; +typedef const ITEMID_CHILD /*__unaligned*/ * PCUITEMID_CHILD; + +typedef PCUITEMID_CHILD const *PCUITEMID_CHILD_ARRAY; +typedef PCUIDLIST_RELATIVE const *PCUIDLIST_RELATIVE_ARRAY; +typedef PCIDLIST_ABSOLUTE const *PCIDLIST_ABSOLUTE_ARRAY; +typedef PCUIDLIST_ABSOLUTE const *PCUIDLIST_ABSOLUTE_ARRAY; +cpp_quote("#else // !(defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus))") +cpp_quote("#define PIDLIST_ABSOLUTE LPITEMIDLIST") +cpp_quote("#define PCIDLIST_ABSOLUTE LPCITEMIDLIST") +cpp_quote("#define PCUIDLIST_ABSOLUTE LPCITEMIDLIST") +cpp_quote("#define PIDLIST_RELATIVE LPITEMIDLIST") +cpp_quote("#define PCIDLIST_RELATIVE LPCITEMIDLIST") +cpp_quote("#define PUIDLIST_RELATIVE LPITEMIDLIST") +cpp_quote("#define PCUIDLIST_RELATIVE LPCITEMIDLIST") +cpp_quote("#define PITEMID_CHILD LPITEMIDLIST") +cpp_quote("#define PCITEMID_CHILD LPCITEMIDLIST") +cpp_quote("#define PUITEMID_CHILD LPITEMIDLIST") +cpp_quote("#define PCUITEMID_CHILD LPCITEMIDLIST") +cpp_quote("#define PCUITEMID_CHILD_ARRAY LPCITEMIDLIST *") +cpp_quote("#define PCUIDLIST_RELATIVE_ARRAY LPCITEMIDLIST *") +cpp_quote("#define PCIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *") +cpp_quote("#define PCUIDLIST_ABSOLUTE_ARRAY LPCITEMIDLIST *") +cpp_quote("#endif // defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)") + + #ifndef MAX_PATH #define MAX_PATH 260 #endif diff --git a/reactos/lib/sdk/uuid/uuid.c b/reactos/lib/sdk/uuid/uuid.c index e15070c0d79..525fac872b3 100644 --- a/reactos/lib/sdk/uuid/uuid.c +++ b/reactos/lib/sdk/uuid/uuid.c @@ -122,5 +122,4 @@ DEFINE_GUID(CLSID_ComBinding, 0x00000328,0x0000,0x0000,0xc0,0x00,0x0 DEFINE_GUID(CLSID_StdEvent, 0x0000032b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); DEFINE_GUID(CLSID_ManualResetEvent, 0x0000032c,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); DEFINE_GUID(CLSID_SynchronizeContainer, 0x0000032d,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(IID_IBandSite, 0x4CF504B0, 0xDE96, 0x11D0, 0x8B, 0x3F, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xE5); DEFINE_GUID(CLSID_RebarBandSite, 0xECD4FC4D, 0x521C, 0x11D0, 0xB7, 0x92, 0x00, 0xA0, 0xC9, 0x03, 0x12, 0xE1);