⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 todo.h

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 H
📖 第 1 页 / 共 2 页
字号:
	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
#define SHGVSPB_ROAM    0x00000020
#define SHGVSPB_NOAUTODEFAULTS  0x80000000
#define SHGVSPB_FOLDER  (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)
#define SHGVSPB_FOLDERNODEFAULTS    (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)


/*
 * DeskBand Command IDs
 */
enum tagDESKBANDCID
{
    DBID_BANDINFOCHANGED = 0,
    DBID_SHOWONLY,
    DBID_MAXIMIZEBAND,
    DBID_PUSHCHEVRON,
    DBID_DELAYINIT,
    DBID_FINISHINIT,
    DBID_SETWINDOWTHEME,
    DBID_PERMITAUTOHIDE
};

#define DBC_SHOW    1
#define DBC_HIDE    0

static const GUID IID_HACK_IShellService = {0x5836FB00,0x8187,0x11CF,{0xA1,0x2B,0x00,0xAA,0x00,0x4A,0xE8,0x37}};
#define IID_IShellService IID_HACK_IShellService

#define INTERFACE IShellService
DECLARE_INTERFACE_(IShellService,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IShellService methods ***/
    STDMETHOD_(HRESULT,SetOwner)(THIS_ IUnknown*) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IShellService_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IShellService_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IShellService_Release(T) (T)->lpVtbl->Release(T)
#define IShellService_SetOwner(T,a) (T)->lpVtbl->SetOwner(T,a)
#endif

#if 0
HRESULT WINAPI SHGetViewStatePropertyBag(LPCITEMIDLIST,LPCWSTR,DWORD,REFIID,PVOID*);/* FIXME: Parameter should be PCIDLIST_ABSOLUTE */
#else
typedef HRESULT (WINAPI *PSHGetViewStatePropertyBag)(LPCITEMIDLIST,LPCWSTR,DWORD,REFIID,PVOID*);
static HRESULT __inline
SHGetViewStatePropertyBag(IN LPCITEMIDLIST pidl,
                          IN LPCWSTR pszBagName,
                          IN DWORD dwFlags,
                          IN REFIID riid,
                          OUT PVOID* ppv)
{
    static PSHGetViewStatePropertyBag Func = NULL;

    if (Func == NULL)
    {
        HMODULE hShlwapi;
        hShlwapi = LoadLibrary(TEXT("SHLWAPI.DLL"));
        if (hShlwapi != NULL)
        {
            Func = (PSHGetViewStatePropertyBag)GetProcAddress(hShlwapi, "SHGetViewStatePropertyBag");
        }
    }

    if (Func != NULL)
    {
        return Func(pidl, pszBagName, dwFlags, riid, ppv);
    }

    MessageBox(NULL, TEXT("SHGetViewStatePropertyBag not available"), NULL, 0);
    return E_NOTIMPL;
}
#endif

#define PIDLIST_ABSOLUTE LPITEMIDLIST
PIDLIST_ABSOLUTE WINAPI SHCloneSpecialIDList(HWND hwnd, int csidl, BOOL fCreate);

enum
{
    BMICON_LARGE = 0,
    BMICON_SMALL
};
#define INTERFACE IBanneredBar
DECLARE_INTERFACE_(IBanneredBar,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IBanneredBar methods ***/
    STDMETHOD_(HRESULT,SetIconSize)(THIS_ DWORD) PURE;
    STDMETHOD_(HRESULT,GetIconSize)(THIS_ DWORD*) PURE;
    STDMETHOD_(HRESULT,SetBitmap)(THIS_ HBITMAP) PURE;
    STDMETHOD_(HRESULT,GetBitmap)(THIS_ HBITMAP*) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IBanneredBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IBanneredBar_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IBanneredBar_Release(T) (T)->lpVtbl->Release(T)
#define IBanneredBar_SetIconSize(T,a) (T)->lpVtbl->SetIconSize(T,a)
#define IBanneredBar_GetIconSize(T,a) (T)->lpVtbl->GetIconSize(T,a)
#define IBanneredBar_SetBitmap(T,a) (T)->lpVtbl->SetBitmap(T,a)
#define IBanneredBar_GetBitmap(T,a) (T)->lpVtbl->GetBitmap(T,a)
#endif

enum tagMENUPOPUPPOPUPFLAGS
{
    MPPF_SETFOCUS = 0x1,
    MPPF_INITIALSELECT = 0x2,
    MPPF_NOANIMATE = 0x4,
    MPPF_KEYBOARD = 0x10,
    MPPF_REPOSITION = 0x20,
    MPPF_FORCEZORDER = 0x40,
    MPPF_FINALSELECT = 0x80,
    MPPF_TOP = 0x20000000,
    MPPF_LEFT = 0x40000000,
    MPPF_RIGHT = 0x60000000,
    MPPF_BOTTOM = 0x80000000,
    MPPF_POS_MASK = 0xE0000000,
    MPPF_ALIGN_LEFT = 0x2000000,
    MPPF_ALIGN_RIGHT = 0x4000000,
};
typedef int MP_POPUPFLAGS;

#define INTERFACE IMenuPopup
DECLARE_INTERFACE_(IMenuPopup,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleWindow methods ***/
    STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE;
    STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
    /*** IDeskBar methods ***/
    STDMETHOD_(HRESULT,SetClient)(THIS_ IUnknown*) PURE;
    STDMETHOD_(HRESULT,GetClient)(THIS_ IUnknown**) PURE;
    STDMETHOD_(HRESULT,OnPosRectChangeDB)(THIS_ RECT*) PURE;
    /*** IMenuPopup methods ***/
    STDMETHOD_(HRESULT,Popup)(THIS_ POINTL*,RECTL*,MP_POPUPFLAGS) PURE;
    STDMETHOD_(HRESULT,OnSelect)(THIS_ DWORD) PURE;
    STDMETHOD_(HRESULT,SetSubMenu)(THIS_ IMenuPopup*,BOOL) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IMenuPopup_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IMenuPopup_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IMenuPopup_Release(T) (T)->lpVtbl->Release(T)
#define IMenuPopup_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
#define IMenuPopup_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
#define IMenuPopup_SetClient(T,a) (T)->lpVtbl->SetClient(T,a)
#define IMenuPopup_GetClient(T,a) (T)->lpVtbl->GetClient(T,a)
#define IMenuPopup_OnPosRectChangeDB(T,a) (T)->lpVtbl->OnPosRectChangeDB(T,a)
#define IMenuPopup_Popup(T,a,b,c) (T)->lpVtbl->Popup(T,a,b,c)
#define IMenuPopup_OnSelect(T,a) (T)->lpVtbl->OnSelect(T,a)
#define IMenuPopup_SetSubMenu(T,a,b) (T)->lpVtbl->SetSubMenu(T,a,b)
#endif

#define INTERFACE IMenuBand
DECLARE_INTERFACE_(IMenuBand,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IMenuBand methods ***/
    STDMETHOD_(HRESULT,IsMenuMessage)(THIS_ MSG*) PURE;
    STDMETHOD_(HRESULT,TranslateMenuMessage)(THIS_ MSG*,LRESULT*) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IMenuBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IMenuBand_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IMenuBand_Release(T) (T)->lpVtbl->Release(T)
#define IMenuBand_IsMenuMessage(T,a) (T)->lpVtbl->IsMenuMessage(T,a)
#define IMenuBand_TranslateMenuMessage(T,a,b) (T)->lpVtbl->TranslateMenuMessage(T,a,b)
#endif

#define INTERFACE IInitializeObject
DECLARE_INTERFACE_(IInitializeObject,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IInitializeObject methods ***/
    STDMETHOD_(HRESULT,Initialize)(THIS) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IInitializeObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IInitializeObject_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IInitializeObject_Release(T) (T)->lpVtbl->Release(T)
#define IInitializeObject_Initialize(T) (T)->lpVtbl->Initialize(T)
#endif

#endif /* __TODO_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -